我创建了一个促进代币销售的智能合约。我希望用户能够按下一个按钮,自动生成可以发送令牌的ERC20钱包。
我正在使用松露HDWallet Provider和Infura。我不希望用户必须使用MetaMask或其他任何东西。我将使用用户生成的钱包的私钥在后端签署交易。
我将如何实现这一点,以便为每个想要执行交易的新用户创建一个新的钱包?
这是允许我按下按钮创建钱包的代码。我现在需要找到一种方法来存储这些钱包的凭证,以便我可以签署交易并将令牌转移给他们。
var bip39 = require('bip39');
const EthereumUtil = require('ethereumjs-util');
const hdkey = require('hdkey');
const mnemonic = bip39.generateMnemonic(); //generates string
const seed = bip39.mnemonicToSeed(mnemonic); //creates seed buffer
const root = hdkey.fromMasterSeed(seed);
const masterPrivateKey = root.privateKey.toString('hex');
const addrNode = root.derive("m/44'/60'/0'/0/0");
const pubKey = EthereumUtil.privateToPublic(addrNode._privateKey);
const addr = EthereumUtil.publicToAddress(pubKey).toString('hex');
const address = EthereumUtil.toChecksumAddress(addr);