Der folgende Inhalt ist ein Beispiel für einige Aufrufe von Smart Contract-Methoden.
Dezimalstellen
Diedecimals
Methode ist eineconstant
Verfahren derERC20
die nicht erzeugtgas
Die Daten werden von einemtoken
- Ich weiß.
Diedecimals
Rü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
Dieallowance
Methode ist eineconstant
Verfahren derERC20
die nicht erzeugtgas
Die Verbraucher können sich über die Anzahl dertoken
für eine bestimmte Vertragsadresse.
Dieallowance
Die 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 spender
: Die autorisierte Vertragsadresse wird im Beispiel durch die Zeichenfolge Uniswap V3 router v1
.
genehmigen
Dieapprove
Die Methode ist nichtconstant
Verfahren derERC20
Das erzeugtgas
Verbrauch, der verwendet wird, um einetoken
die Transaktion auf eine bestimmte Vertragsadresse erstreckt.
Dieapprove
Die 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 Uniswap V3 router v1
address.
amount
: Die Zahl der Genehmigungen, hier mit einer hexadezimalen Zeichenfolge dargestellt, entspricht einem Dezimalwert von1e18
, geteilt durch dietoken
Präzisionseinheit im Beispiel (d. h. 1e18), die 1 ergibttoken
authorized.
Der dritte Parameter derexchange.IO
Funktion wird übergeben, Methodenameapprove
, die auch in Form vonmethodId
, z. B.:
mehrfachgerufen
Diemulticall
Methode ist eine nicht konstante Methode derUniswap V3
, diegas
Verbrauch und werden verwendet, um Token auf verschiedene Arten auszutauschen.
Diemulticall
Methode 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 Beispielemulticall
Methodenanrufe, bitte beziehen Sie sich auf die Öffentlichkeit
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 V3contractV3SwapRouterV2
: 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 dietokenIn
Das 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/nonce
Einstellung 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.IO
Funktion.
Sie können dienonce
und verwenden Sie die Systemeinstellungen, oder nicht setzengasLimit/gasPrice/nonce
und verwenden Sie alle System-Standardwerte.
Es ist zu beachten, daß im Beispiel das AttributstateMutability
inmulticall(uint256,bytes[])
Methode istpayable
, und dievalue
Parameter muss eingegeben werden.
Das Attribut derstateMutability":"payable"
Sie können von derABI
. Dieexchange.IO
Diese Funktion wird die erforderlichen Parameter entsprechend derstateMutability
Attribut in derABI
die registriert wurde.
Wenn diestateMutability
Attribut istnonpayable
, der Parametervalue
nicht eingereicht werden muss.