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

スマートコントラクトを呼び出す方法

次のコンテンツは,いくつかのスマートコントラクト方法の呼び出しの例です.

  • 十進数 について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: ウォレットアドレスは例の文字列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: 許可された契約の住所,例は文字列で置き換えられます 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方法の呼び出しは,一般の参照してくださいUniswap V3 トレーディングクラスライブラリ テンプレート私たちのプラットフォームの

    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 V3のルーター v2契約の ABIは,実際の状況に応じて記入する必要があります.contractV3SwapRouterV2Uniswap V3のルーターv2アドレスで,実際の使用には特定のアドレスが記入される必要があります...valueETHの金額を 0 に設定します.tokenIn取引のトークンはETHではありません 実際の状況に応じて記入する必要がありますdeadline: 設定できます(new Date().getTime() / 1000) + 36001時間有効です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システムデフォルトの値をすべて使います

    この例では,stateMutabilitymulticall(uint256,bytes[])方法としてpayableそして,valueパラメータを入力する必要があります. その属性stateMutability":"payable"視界から見ることができますABI.....exchange.IO要求されるパラメータを決定します.stateMutabilityの属性ABI登録されたものです もしstateMutability属性はnonpayable,パラメータvalue送信する必要はありません.

プライベート キー を 切り替える サポート 他の関数呼び出し