Web3 + Solidity:将参数传递给合约的构造函数
Web3 + Solidity: Passing in arguments to a contract's constructor
我正在尝试为我正在编写的智能合约编写一些单元测试,但在弄清楚如何在创建时将参数传递给我的合约构造函数时遇到困难。下面是我的代码:
const assert = require('assert');
const ganache = require('ganache-cli');
const provider = ganache.provider();
const Web3 = require('web3');
const web3 = new Web3(provider);
const { interface, bytecode } = require('../ethereum/compile');
let token;
let accounts;
beforeEach(async () => {
accounts = await web3.eth.getAccounts();
token = await new web3.eth.Contract(JSON.parse(interface))
.deploy({ data: bytecode })
.send({ from: accounts[0], gas: '1000000' });
token.setProvider(provider);
});
describe('Token Contract', () => { ... });
基于此设置,我如何向合约传递参数?我通过遵循 solidity 课程走到了这一步,但是课程中的合约没有任何构造函数选项,所以它从来没有涵盖它们应该去哪里。感谢您的帮助!
好吧,我自己想出来了:将一个 属性 添加到您传递给 deploy
函数的对象,作为您的参数数组。
.deploy({ data: bytecode, arguments: [ ... ] })
我正在尝试为我正在编写的智能合约编写一些单元测试,但在弄清楚如何在创建时将参数传递给我的合约构造函数时遇到困难。下面是我的代码:
const assert = require('assert');
const ganache = require('ganache-cli');
const provider = ganache.provider();
const Web3 = require('web3');
const web3 = new Web3(provider);
const { interface, bytecode } = require('../ethereum/compile');
let token;
let accounts;
beforeEach(async () => {
accounts = await web3.eth.getAccounts();
token = await new web3.eth.Contract(JSON.parse(interface))
.deploy({ data: bytecode })
.send({ from: accounts[0], gas: '1000000' });
token.setProvider(provider);
});
describe('Token Contract', () => { ... });
基于此设置,我如何向合约传递参数?我通过遵循 solidity 课程走到了这一步,但是课程中的合约没有任何构造函数选项,所以它从来没有涵盖它们应该去哪里。感谢您的帮助!
好吧,我自己想出来了:将一个 属性 添加到您传递给 deploy
函数的对象,作为您的参数数组。
.deploy({ data: bytecode, arguments: [ ... ] })