diff --git a/src/chain/BlockChain.ts b/src/chain/BlockChain.ts index e2a1af9..1b19ccc 100644 --- a/src/chain/BlockChain.ts +++ b/src/chain/BlockChain.ts @@ -111,6 +111,21 @@ export class BlockChain { return abi } + public async sendEth({ from, to, amount }: { from: string; to: string; amount: number }) { + const amountToSend = this.web3.utils.toWei(amount + '', 'ether') + let gas = await this.web3.eth.estimateGas({ + from, + to, + value: '0', + }) + return this.web3.eth.sendTransaction({ + from, + to, + gas: 21000, + value: amountToSend, + }) + } + public async generateGasShow(gas: any): Promise { let price = await new PriceSvr().refreshGasPrice() let ehtBN = safeNumberToBN(price).mul(safeNumberToBN(gas)) diff --git a/src/models/RequestTask.ts b/src/models/RequestTask.ts index 9c72937..a459d46 100644 --- a/src/models/RequestTask.ts +++ b/src/models/RequestTask.ts @@ -11,6 +11,7 @@ export enum TaskType { TRANSFER_FT = 3, TRANSFER_NFT = 4, PUBLISH_AIRDROP_LIST = 5, + TRANSFER_ETH = 6, } export const TaskTypeMap = new Map([ @@ -20,6 +21,7 @@ export const TaskTypeMap = new Map([ [TaskType.TRANSFER_FT, 'Ft转账'], [TaskType.TRANSFER_NFT, 'NFT转账'], [TaskType.PUBLISH_AIRDROP_LIST, '公布空投名单'], + [TaskType.TRANSFER_ETH, 'ETH转账'], ]) export enum ReqTaskStatus { @@ -110,6 +112,9 @@ export class RequestTaskClass extends BaseModule { case TaskType.PUBLISH_AIRDROP_LIST: result = await new BlockChain().distributorReactor.mintNft(self.reqData) break + case TaskType.TRANSFER_ETH: + result = await new BlockChain().sendEth(self.reqData) + break } logger.info(result) let { transactionHash, gasUsed } = result