我创建了一个促进代币销售的智能合约。我希望用户能够按下一个按钮,该按钮会自动生成可将令牌发送到的ERC20钱包。
我正在使用松露HDWallet Provider和Infura。我不希望用户必须使用MetaMask或其他任何东西。我将使用用户生成的钱包的私钥在后端进行交易签名。
我将如何实现这一目标,以便为每个想要执行交易的新用户创建一个新的钱包?
答案 0 :(得分:0)
这是允许我在按下按钮时创建钱包的代码。现在,我需要找到一种方法来存储这些钱包的凭据,以便我可以签署交易并将令牌传输给它们。
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);