Blockchain Ride4Dapps:TypeError无法读取属性';长度';在invokeScript中未定义的

Blockchain Ride4Dapps:TypeError无法读取属性';长度';在invokeScript中未定义的,blockchain,smartcontracts,wavesplatform,ride,Blockchain,Smartcontracts,Wavesplatform,Ride,我正在尝试执行wallet.ride示例,我对此有一些问题: 广播(invokeScript({contractAddress:address(env.accounts[1]),调用:{函数:“存款”,参数:[]},付款:[{金额:300000000,资产:null}]})) TypeError:无法读取未定义的属性“length” 如何解决这个问题 #在本例中,多个账户可以存入资金并安全收回,没有人可以干预。 #内部状态保持为映射“address=>waves”。 #您可以通过在IDE(IDE

我正在尝试执行wallet.ride示例,我对此有一些问题:

广播(invokeScript({contractAddress:address(env.accounts[1]),调用:{函数:“存款”,参数:[]},付款:[{金额:300000000,资产:null}]}))

TypeError:无法读取未定义的属性“length”

如何解决这个问题

#在本例中,多个账户可以存入资金并安全收回,没有人可以干预。
#内部状态保持为映射“address=>waves”。
#您可以通过在IDE(IDE.wavesplatform.com)中执行以下命令来尝试此约定
#按下面列出的方式运行命令
#从帐户#0:
#广播(传输({收件人:地址(环境账户[1]),金额:100000000}))
#广播(传输({收件人:地址(环境账户[2]),金额:100000000}))
#从账户#1:
#部署()
#从账户#2:
#广播(invokeScript({contractAddress:address(env.accounts[1]),调用:{函数:“存款”,参数:[]},付款:[{金额:300000000,资产:null}]}))
##观察账户状态和余额(1)
#广播(invokeScript({contractAddress:address(env.accounts[1]),调用:{函数:“存款”,参数:[]},付款:[{金额:200000000,资产:null}]}))
##观察账户状态和余额(1)
#广播(invokeScript({contractAddress:address(env.accounts[1]),调用:{function:“draw”,args:[{type:“integer”,value:600000000}}}},payment:[]}))
##观察错误,无变化
#广播(invokeScript({contractAddress:address(env.accounts[1]),调用:{function:“draw”,args:[{type:“integer”,value:400000000}]},payment:[]}))
##观察账户状态和余额(1)
{-#STDLIB#U版本3}
{-#内容#U型DAPP#-}
{-#脚本类型帐户#-}
@可调用(i)
func存款()={
让付款=提取(即付款)
如果(定义为(pmt.assetId)),则抛出(“只能在此时发出hodl波”)
否则{
让currentKey=toBase58String(i.caller.bytes)
让currentAmount=匹配getInteger(此,currentKey){
案例a:Int=>a
大小写=>0
}
新金额=当前金额+付款金额
WriteSet([DataEntry(currentKey,newAmount)])
}
}
@可调用(i)
func取款(金额:整数)={
让currentKey=toBase58String(i.caller.bytes)
让currentAmount=匹配getInteger(此,currentKey){
案例a:Int=>a
大小写=>0
}
让newAmount=currentAmount-amount
如果(金额<0)
然后抛出(“不能提取负金额”)
否则如果(新金额<0)
然后抛出(“没有足够的平衡”)
其他脚本结果(
WriteSet([DataEntry(currentKey,newAmount)]),
TransferSet([ScriptTransfer(即调用方、金额、单位)])
)
}
@验证器(tx)
func verify()={
真的
}
已解决! 查看:费用=100000000和dappAddress而不是合同地址

#您可以通过在IDE(IDE.wavesplatform.com)中执行以下命令来尝试此契约
#按下面列出的方式运行命令
#从帐户#0:
#广播(传输({收件人:地址(环境账户[1]),金额:100000000,费用:100000000}))
#广播(传输({收件人:地址(环境账户[2]),金额:100000000,费用:100000000}))
#从账户#1:
#部署()
#从账户#2:
#广播(invokeScript({dappAddress:address(env.accounts[1]),调用:{函数:“存款”,参数:[]},付款:[{金额:300000000,资产:null}]}))
##观察账户状态和余额(1)

我正在使用ide.wavesplatform.com,所以看起来env.SEED有时可能是“未定义的”。为了防止任何其他“env”故障,我将尝试使用node.js在本地重复这一点