Web3 + Solidity:将参数传递给合同的构造函数

时间:2018-04-06 15:42:32

标签: node.js solidity web3js

我正在尝试为我写的智能合约编写一些单元测试,但是在确定如何在创建时将参数传递给我的合同构造函数时遇到困难。以下是我的代码:

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', () => { ... });

根据这个设置,如何将参数传递给合约?我通过坚实的课程来实现这一目标,但是课程中的合同对于它的构造函数没有任何选择,因此它从未涵盖应该去的地方。谢谢你的帮助!

1 个答案:

答案 0 :(得分:2)

好吧,我自己想出来了:在你传递给deploy函数的对象中添加一个属性作为参数数组。

.deploy({ data: bytecode, arguments: [ ... ] })