資源の読み込みに... 荷物...

exchange.IO(アピ)

についてexchange.IO("api", ...)スマートコントラクトのメソッドを呼び出すのに使われます.

についてexchange.IO("api", ...)この関数は"スマートコントラクト"と呼ばれるメソッドの返却値を返します. 文字列,数, bool,オブジェクト,配列,null,およびシステムでサポートされる他のすべてのタイプ

exchange.IO(k,住所,方法)exchange.IO(k,アドレス,方法,... args)exchange.IO(k,アドレス,方法,値,... args)

についてkパラメータは,機能の設定に使用されますexchange.IO()設定されている"api"呼び出し要求を拡張するために使用されていることを示します. k 本当 文字列 についてaddressパラメータはスマートコントラクトのアドレスを指定するために使用されます. アドレス 本当 文字列 についてmethodこのパラメータは,呼び出すスマートコントラクトのメソッドを指定するために使用されます. 方法 本当 文字列 についてvalue送信されるETHの量を設定するために使用されます.stateMutability実行されるスマートコントラクトメソッドの属性はpayableそしてvalueパラメータをパスする必要があります."stateMutability": "payable"ABI から見ることができます.exchange.IO()必要なパラメータを決定します.stateMutability登録されたABIの属性.stateMutability属性はnonpayableそしてvalueパラメータは渡す必要はありません. 価値 偽り 数、文字列 についてargパラメータは,呼び出されるスマートコントラクトのメソッドのパラメータを指定するために使用されます.argパラメータ,およびarg呼び出すためのスマートコントラクトの方法に依存します アルグ 偽り 文字列,数, bool,およびシステムによってサポートされる他のすべてのタイプ

function main(){
    var tokenAddress = "0x111111111117dC0aa78b770fA6A738034120C302"    // The contract address of the token, the token is 1INCH in the example
    Log(exchange.IO("api", tokenAddress, "decimals"))                  // Query, print 1INCH tokens with precision index of 18
}

についてdecimals方法としてconstantERC20 の方法で,ガス消費を発生せず,トークンの精度データをクエリすることができます.decimals方法にはパラメータがない.返却値:トークンの精度データ.

function main(){
    // The contract address of the token, in the example the token is 1INCH
    var tokenAddress = "0x111111111117dC0aa78b770fA6A738034120C302"                          

    // For example, the query yields 1000000000000000000, divided by the precision unit of the token 1e18, the wallet to which the current exchange object is bound has authorized 1 1INCH to the spender address
    Log(exchange.IO("api", tokenAddress, "allowance", "owner", "spender"))   
}

についてallowance方法としてconstant特定の契約アドレスに対するトークンの許可された金額をクエリすることができます.allowanceこの方法には2つのパラメータがあります.最初のパラメータはウォレットアドレスで,もう1つは認証アドレスです.返却値:トークンの認証金額です.
owner: 財布の住所,例は文字列ownerに置き換えられ,実際の使用は特定の住所を記入する必要があります.spender: 許可された契約の住所,例は文字列で置き換えられます spender,実際の使用は,特定の住所を記入する必要があります.Uniswap V3 router v1 address.

function main(){
    // The contract address of the token, the token is 1INCH in the example
    var tokenAddress = "0x111111111117dC0aa78b770fA6A738034120C302"                 

    // 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", "0xde0b6b3a7640000"))  
}```
The ```approve``` method is a non-```constant``` method of ERC20, which generates gas consumption and is used to authorize the operation amount of a token to a contract address. The ```approve``` method takes 2 parameters, the first one is the address to be authorized and the second one is the amount to be authorized. Return value: txid.  
```spender```: the address of the authorized contract, the example is replaced by the string "spender", the actual use needs to fill in the specific address, for example, it can be ```Uniswap V3 router v1``` address. ```0xde0b6b3a7640000```: the number of authorizations, here is the hexadecimal string, the corresponding decimal value is 1e18, divided by the token precision unit in the example (i.e. 1e18). The result is that 1 token is authorized. The third parameter of the ```exchange.IO()``` function is passed to the method name ```approve```, which can also be written in the form of methodId, such as "0x571ac8b0". It is also possible to write the full standard method name, for example: "approve(address,uint256)".
```javascript
function main() {
    var ContractV3SwapRouterV2 = "0x68b3465833fb72A70ecDF485E0e4C7bD8665Fc45"
    var tokenInName = "ETH"
    var amountIn = 0.01
    var options = {gasPrice: 5000000000, gasLimit: 21000, nonce: 100}   // This is an example, depending on the actual scene settings
    var data = ""                                                       // The encoded data, here is the empty string, depending on the actual scene settings
    var tx = exchange.IO("api", ContractV3SwapRouterV2, "multicall(uint256,bytes[])", (tokenInName == 'ETH' ? amountIn : 0), (new Date().getTime() / 1000) + 3600, data, options || {})
}

についてmulticallこの方法はconstant方法Uniswap V3複数の方法でトークンを換算するために使用されます についてmulticall方法にはパラメータをパスする様々な方法がある場合,特定の方法を含む ABI をチェックできます.メソッドを呼び出す前に ABI を登録する必要があります.返回値: txid.

具体例についてはmulticall公開されているプラットフォームを参照できます.Uniswap V3 Trade テンプレート

いくつかの詳細は 擬似コードで説明されています


exchange.IO("api", ContractV3SwapRouterV2, "multicall(uint256,bytes[])", value, deadline, data)

ContractV3SwapRouterV2: Uniswap V3のルーター v2のアドレスvalue: 交換取引のトークンはETHでない場合,転送するETHの金額を0に設定します.deadline: deadlineは,このパラメータです.multicall(new Date().getTime() / 1000) + 3600 に設定できる方法で,1時間有効であることを示します.data: dataは,このパラメータです.multicall方法,行なわれる梱包作業のデータ

似たものexchange.IO("api", "eth", "send", "toAddress", toAmount)についてgasLimit/gasPrice/nonce呼び出すときに指定できます.multicall方法について 偽コードを使って説明します


exchange.IO("api", ContractV3SwapRouterV2, "multicall(uint256,bytes[])", value, deadline, data, {gasPrice: 123456, gasLimit: 21000})

パラメータ{gasPrice: 11, gasLimit: 111, nonce: 111}特定の必要に応じて設定することができます.exchange.IO()機能 省略してもいいnonceシステムデフォルト値を使用するgasLimit/gasPrice/nonceシステムデフォルト値をすべてに有効にします

交換する.IO (("キー",...) 交換する.IO (("住所")