在javascript web3中将智能合约功能作为字符串调用

时间:2018-12-09 16:42:26

标签: javascript smartcontracts web3

这是我的问题:而不是像这样调用智能合约功能

  implicit class TailCallsExtension[A](t: TailRec[A]) {
    def withFilter(pred: A => Boolean): TailRec[A] = t.flatMap(a => if (pred(a)) t else done(a))
  }

我想知道是否可以这样打电话:

//assuming the name of the contract function is called "balanceOf"
contract.methods.balanceOf("0x", "0x").call(err, balance) => {
      console.log({err, balance});
})

谢谢。

1 个答案:

答案 0 :(得分:0)

使用键作为索引,可以像数组一样访问javascript中的对象。因此,在您的情况下,它将是:

var funcName = "balanceOf";
var parameter = "0x, 0x";
contract.methods[funcName]("0x", "0x").call(err, balance) => {
   console.log({err, balance}];
})

但是,传递参数的方式不会那样工作。您只是传递一个字符串作为参数。将其视为将参数传递给任何其他函数。