리소스 로딩... 로딩...

스마트 컨트랙트를 호출하는 방법

다음 컨텐츠는 일부 스마트 계약 방법 호출의 예입니다.

  • 소수 의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이 방법은 2개의 매개 변수를 통과해야 합니다. 첫 번째는 지갑 주소이고 두 번째는 승인 주소입니다. 반환 값: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: 허가 계약 주소는 문자열에 의해 대체됩니다. 실제 사용에서, 당신은 예를 들어 주소를 구체적으로 채워야 합니다.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: 여기 hexadecimal 문자열을 사용하여 표시 된 권한의 수는 decimal 값에 해당합니다.1e18,token예제에서의 정밀 단위 (즉, 1e18) 는 1을 낸다.token authorized.

    세 번째 매개 변수는exchange.IO함수가 전달됩니다 방법 이름approve, 이 또한 형태로 작성 될 수 있습니다methodId, 예를 들어: 0x571ac8b0. 또한 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는 실제 상황에 따라 채워져야 합니다.contractV3SwapRouterV2: Uniswap V3의 라우터 v2 주소, 실제 사용은 특정 주소를 입력해야 합니다...value: ETH의 양을 전송, 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그리고 모든 시스템 기본값을 사용하세요.

    이 예제에서,stateMutability안쪽multicall(uint256,bytes[])방법은payable, 그리고value매개 변수를 입력해야 합니다. 그 속성stateMutability":"payable"이 부분의 본문은ABI.exchange.IO함수는 요구되는 매개 변수를stateMutability속성ABI등록됐습니다. 만약stateMutability속성은nonpayable, 매개 변수value전달할 필요가 없습니다.

개인 키를 변경할 수 있는 지원 다른 함수 호출