如何从角度签署智能合约交易

时间:2020-12-24 17:39:58

标签: angular angular8 ethereum angular9 web3

我正在尝试从 Angular 应用程序执行签名事务。

我正在使用这个 ethers 包来初始化智能合约的实例。这里我要为函数签名---method1(string, unit256, unit256).

  import abi from "ethereumjs-abi";
  import {toBuffer} from "ethereumjs-util";
  import { ethers } from 'ethers';

    
  instance = new ethers.Contract(ADDRESS, ABI, provider.getSigner());
  functionSignature = await instance.method1("abc",123,456).encodedABI(); //Here it fails, saying encodedABI is not a function. But same line works fine on nodejs.
  let messageToSign = this.constructTransactionMessage(nonce, chainId, functionSignature, contractAddress);
  let hex = "0x" + messageToSign.toString("hex");
  let signature = await provider.signTransaction(hex); // I don't know is it right or not.
  console.log(signature); //Final step


  async constructTransactionMessage(nonce, chainId, functionSignature, contractAddress) {
   return abi.soliditySHA3(
      ["uint256","address","uint256","bytes"],
      [nonce, contractAddress, chainId, toBuffer(functionSignature)]
   );
  }

我在 functionSignature 处收到错误,说 encodeABI 不是函数。

需要帮助。非常感谢!!

0 个答案:

没有答案