hdwallet提供商为用户创建钱包

问题描述 投票:0回答:1

我创建了一个促进代币销售的智能合约。我希望用户能够按下一个按钮,自动生成可以发送令牌的ERC20钱包。

我正在使用松露HDWallet Provider和Infura。我不希望用户必须使用MetaMask或其他任何东西。我将使用用户生成的钱包的私钥在后端签署交易。

我将如何实现这一点,以便为每个想要执行交易的新用户创建一个新的钱包?

javascript html ethereum solidity truffle
1个回答
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);
© www.soinside.com 2019 - 2024. All rights reserved.