Die Ressourcen sind geladen. Beförderung...

Methode zum Aufrufen des Smart Contracts

Der folgende Inhalt ist ein Beispiel für einige Aufrufe von Smart Contract-Methoden.

  • Dezimalstellen DiedecimalsMethode ist eineconstantVerfahren derERC20die nicht erzeugtgasDie Daten werden von einemtoken- Ich weiß. DiedecimalsRückgabewert: die Präzisionsdaten vontoken.

    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
    }
    
  • Zulage DieallowanceMethode ist eineconstantVerfahren derERC20die nicht erzeugtgasDie Verbraucher können sich über die Anzahl dertokenfür eine bestimmte Vertragsadresse. DieallowanceDie Methode muss in 2 Parametern übergeben werden, die erste ist die Wallet-Adresse und die zweite ist die autorisierte Adresse.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: Die Wallet-Adresse wird in dem Beispiel durch die Zeichenfolge owner ersetzt.spender: Die autorisierte Vertragsadresse wird im Beispiel durch die Zeichenfolge spender ersetzt.Uniswap V3 router v1.

  • genehmigen DieapproveDie Methode ist nichtconstantVerfahren derERC20Das erzeugtgasVerbrauch, der verwendet wird, um einetokendie Transaktion auf eine bestimmte Vertragsadresse erstreckt. DieapproveDie Methode muss in 2 Parametern übergeben werden, die erste ist die Adresse, die autorisiert werden soll, und die zweite ist der autorisierte Betrag.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: Die Adresse des genehmigten Auftrags, das Beispiel wird durch die Zeichenfolge spender ersetzt, die tatsächliche Verwendung muss die spezifische Adresse ausfüllen, zum Beispiel kann es seinUniswap V3 router v1 address. amount: Die Zahl der Genehmigungen, hier mit einer hexadezimalen Zeichenfolge dargestellt, entspricht einem Dezimalwert von1e18, geteilt durch dietokenPräzisionseinheit im Beispiel (d. h. 1e18), die 1 ergibttoken authorized.

    Der dritte Parameter derexchange.IOFunktion wird übergeben, Methodenameapprove, die auch in Form vonmethodId, z. B.: 0x571ac8b0. Es ist auch möglich, den vollständigen Standardmethodenamen zu schreiben, z. B. approve(address,uint256) .

  • mehrfachgerufen DiemulticallMethode ist eine nicht konstante Methode derUniswap V3, diegasVerbrauch und werden verwendet, um Token auf verschiedene Arten auszutauschen. DiemulticallMethode kann mehrere Methoden zur Übermittlung von Parametern haben. Sie können die ABI abfragen, die die Methode enthält, um Details zu erhalten. Sie müssen die ABI registrieren, bevor Sie die Methode aufrufen.txid.

    Für konkrete BeispielemulticallMethodenanrufe, bitte beziehen Sie sich auf die ÖffentlichkeitUniswap V3 Trading Class Library Vorlagevon unserer Plattform.

    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: Der ABI des Router-V2-Vertrags von Uniswap V3 muss entsprechend der tatsächlichen Situation ausgefüllt werden.contractV3SwapRouterV2: Router v2 Adresse von Uniswap V3, die tatsächliche Verwendung erfordert eine spezifische Adresse ausgefüllt werden...value: Der übertragene ETH-Betrag wird auf 0 gesetzt, wenn dietokenInDas Token für den Austausch ist nicht ETH, es muss entsprechend der tatsächlichen Situation ausgefüllt werden.deadline: Es kann auf(new Date().getTime() / 1000) + 3600, was bedeutet, dass es eine Stunde gültig ist.data: Die Daten des zu durchführenden Verpackungsvorgangs müssen entsprechend der tatsächlichen Situation ausgefüllt werden.

    Es ist auch möglich, diegasLimit/gasPrice/nonceEinstellung für Methodenanrufe:

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

    Sie können Parameter festlegen{gasPrice: 5000000000, gasLimit: 21000, nonce: 100}Nach Ihren spezifischen Bedürfnissen wird der Parameter auf den letzten Parameter desexchange.IOFunktion. Sie können dienonceund verwenden Sie die Systemeinstellungen, oder nicht setzengasLimit/gasPrice/nonceund verwenden Sie alle System-Standardwerte.

    Es ist zu beachten, daß im Beispiel das AttributstateMutabilityinmulticall(uint256,bytes[])Methode istpayable, und dievalueParameter muss eingegeben werden. Das Attribut derstateMutability":"payable"Sie können von derABI. Dieexchange.IODiese Funktion wird die erforderlichen Parameter entsprechend derstateMutabilityAttribut in derABIdie registriert wurde. Wenn diestateMutabilityAttribut istnonpayable, der Parametervaluenicht eingereicht werden muss.

Unterstützung für den Wechsel privater Schlüssel Andere Funktionsanrufe