eztz呼び出しでスマートコントラクトのエントリポイントを指定するにはどうすればよいですか?
1 回答
- 投票
現在、Michelsonは複数のエントリポイントをサポートしていません.流動性はこれを補うためにユニオン(またはタイプ変数)を使用します.ユニオンには左側と右側がありますが、ネストすることもできます.
提供されたスクリプトのパラメータを分析しましょう:
parameter
(or :_entries
(int %_Liq_entry_create) <-- Left Side
(int %_Liq_entry_main)) <-- Right Side
;
したがって、最初のエントリポイントを呼び出すには、eztzで次を使用します.
eztz.contract.send(contract,from, keys, amoun, "(Left 1)", gasLimit,storageLimit)
2番目のエントリポイントにアクセスするには、次を使用します.
eztz.contract.send(contract,from, keys, amoun, "(Right 1)", gasLimit,storageLimit)
これはeztzに固有のものではありませんが、すべてのウォレットから、さらにはtezos-clientからスマートコントラクトを呼び出す場合にも当てはまります.
Michelson doesn't support multiple entry points right now. Liquidity uses unions (or type variables) to make up for this. A union has a Left and Right side, but can also be nested.
Let's analyse the parameter of the script provided:
parameter
(or :_entries
(int %_Liq_entry_create) <-- Left Side
(int %_Liq_entry_main)) <-- Right Side
;
So, to call the first entry point, you would use the following in eztz:
eztz.contract.send(contract,from, keys, amoun, "(Left 1)", gasLimit,storageLimit)
To access the second entry point, you would use:
eztz.contract.send(contract,from, keys, amoun, "(Right 1)", gasLimit,storageLimit)
This is not specific to eztz, but applies to calling smart contracts from all wallets and even the tezos-client.
eztzとのスマートコントラクトを呼び出したい:
エントリポイントを指定する方法、私のスマートコントラクトには複数のエントリポイントがあります: