transfer_20220322103203.js 1.08 KB
// eslint-disable-next-line strict
const Subscription = require('egg').Subscription;
const nodeSdk = require('@ddn/node-sdk').default;
class Transfer extends Subscription {
  static get schedule() {
    return {
      interval: '10s',
      type: 'worker',
    };
  }

  async subscribe() {
    const { ctx, config } = this;
    const trsData = await ctx.model.Transfer.findAll({ where: { finish: false } });
    console.log(trsData)
    trsData.map(async item => {
      // if (item.id != "e2475660-9942-11ec-b873-171b64126906") {
      //   return
      // }
      const transaction = await nodeSdk.transaction.createTransaction(item.toAddress, item.amount, item.remark || '网络升级转账', config.naclSecret);
      const trs = JSON.stringify({ transaction });
      // 上链操作
      const data = await this.service.sdk.pushTransaction(trs);
      if (data.success) {
        ctx.model.Transfer.update({ finish: true }, { where: { id: item.id } });
      } else {
        ctx.model.Transfer.update({ finish: false }, { where: { id: item.id } });
      }
    });
  }
}

module.exports = Transfer;