次のコンテンツは,いくつかのスマートコントラクト方法の呼び出しの例です.
十進数
についてdecimals
方法としてconstant
方法ERC20
発生しないgas
精度データに問い合わせることができます.token
- わかった
についてdecimals
返信値: 精度データtoken
.
function main(){
var tokenAddress = "0x111111111117dC0aa78b770fA6A738034120C302" // The contract address of the token, in the example the token is 1INCH
Log(exchange.IO("api", tokenAddress, "decimals")) // Query, print 1INCH tokens with precision index of 18
}
給付金
についてallowance
方法としてconstant
方法ERC20
発生しないgas
消費量について質問することができます.token
特定の契約住所についてです
についてallowance
返回値: 許可金額の 返却値: 返却値: 返却値: 返却値: 返却値: 返却値: 返却値: 返却値: 返却値: 返却値:token
.
function main(){
// The contract address of the token, in the example the token is 1INCH
var tokenAddress = "0x111111111117dC0aa78b770fA6A738034120C302"
var owner = ""
var spender = ""
// For example, the query yields 1000000000000000000, divided by the precision unit of the token 1e18, the current exchange object bound to the wallet to the spender address authorized 1 1INCH.
Log(exchange.IO("api", tokenAddress, "allowance", owner, spender))
}
owner
: ウォレットアドレスは例の文字列spender
: 許可された契約アドレスは,例の文字列"spender"に置き換えられます.実際の使用では,アドレスを具体的に記入する必要があります.例えば,アドレスは,Uniswap V3 router v1
.
承認する
についてapprove
この方法はconstant
方法ERC20
生産するgas
消費を許可するために使用されます.token
取引額が特定の契約アドレスに
についてapprove
方法が2つのパラメータを通過する必要があります.最初のものは許可されるアドレスであり,第二は許可された金額です.txid
.
function main(){
// The contract address of the token, in the example the token is 1INCH
var tokenAddress = "0x111111111117dC0aa78b770fA6A738034120C302"
var spender = ""
var amount = "0xde0b6b3a7640000"
// The hexadecimal string of the authorization amount: 0xde0b6b3a7640000 , the corresponding decimal string: 1e18 , 1e18 divided by the precision unit of the token, i.e. 1 token amount, so this refers to the authorization of one token.
Log(exchange.IO("api", tokenAddress, "approve", spender, amount))
}
spender
: 許可された契約の住所,例は文字列で置き換えられます Uniswap V3 router v1
address.
amount
: 十六進数文字列で表される許可数は,1e18
, で割ったtoken
例の精度単位 (すなわち 1e18) で,1 を得ます.token
authorized.
基準の3番目のパラメータはexchange.IO
方法の名前が渡されるapprove
形式でも書ける.methodId
標準メソッドの名前も書ける.例えば"approve ((address,uint256) "など.
複数通話
についてmulticall
定数でない方法である.Uniswap V3
発生するgas
複数の方法でトークンを交換するために使用されます.
についてmulticall
方法にはパラメータを転送する複数の方法がある可能性があります.詳細については,方法を含む ABI に問い合わせることができます.メソッドを呼び出す前に ABI を登録する必要があります.返回値:txid
.
具体例についてはmulticall
方法の呼び出しは,一般の参照してください
function main() {
var ABI_Route = ""
var contractV3SwapRouterV2 = ""
var value = 0
var deadline = (new Date().getTime() / 1000) + 3600
var data = ""
exchange.IO("abi", contractV3SwapRouterV2, ABI_Route)
exchange.IO("api", contractV3SwapRouterV2, "multicall(uint256,bytes[])", value, deadline, data)
}
ABI_Route
: Uniswap V3contractV3SwapRouterV2
Uniswap V3のルーターv2アドレスで,実際の使用には特定のアドレスが記入される必要があります...value
ETHの金額を 0 に設定します.tokenIn
取引のトークンはETHではありません 実際の状況に応じて記入する必要がありますdeadline
: 設定できます(new Date().getTime() / 1000) + 3600
1時間有効ですdata
: 実行される梱包操作のデータ,実際の状況に応じて記入する必要があります.
指定することも可能です.gasLimit/gasPrice/nonce
メソッド呼び出しの設定:
exchange.IO("api", contractV3SwapRouterV2, "multicall(uint256,bytes[])", value, deadline, data, {gasPrice: 5000000000, gasLimit: 21000})
パラメータを設定できます{gasPrice: 5000000000, gasLimit: 21000, nonce: 100}
パラメータは,あなたの特定のニーズに応じて,最後のパラメータに設定されますexchange.IO
機能
省略してもいいnonce
設定しないgasLimit/gasPrice/nonce
システムデフォルトの値をすべて使います
この例では,stateMutability
中multicall(uint256,bytes[])
方法としてpayable
そして,value
パラメータを入力する必要があります.
その属性stateMutability":"payable"
視界から見ることができますABI
.....exchange.IO
要求されるパラメータを決定します.stateMutability
の属性ABI
登録されたものです
もしstateMutability
属性はnonpayable
,パラメータvalue
送信する必要はありません.