Следующее содержание является примером некоторых вызовов методов умных контрактов.
десятичные числа
В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
: Адрес кошелька заменяется строкой 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
: Количество разрешений, представленное здесь с помощью шестой десятичной строки, соответствует десятичному значению1e18
, разделенный наtoken
точная единица в примере (т.е. 1e18), дающая 1token
authorized.
Третий параметрexchange.IO
Функция передается название методаapprove
, который также может быть записан в видеmethodId
, например:
многократный звонок
Вmulticall
метод является неконстантным методомUniswap V3
, что приведет кgas
потребление и использовать для обмена токенами несколькими способами.
Вmulticall
У этого метода может быть несколько способов передачи параметров. Вы можете запросить ABI, содержащий метод, для получения деталей. Вам нужно зарегистрировать ABI перед вызовом метода. Возвращение значения:txid
.
Для конкретных примеровmulticall
методы вызовов, пожалуйста, обратитесь к общественности
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
: ABI Uniswap V3contractV3SwapRouterV2
: маршрутизатор v2 адрес Uniswap V3, фактическое использование требует конкретный адрес, который должен быть заполнен...value
: сумма ETH, перечисленная, установлена на 0, еслиtokenIn
Токен для обменной операции не ETH, он должен быть заполнен в соответствии с фактической ситуацией.deadline
: Он может быть настроен на(new Date().getTime() / 1000) + 3600
Это означает, что она действительна в течение часа.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
не нужно передавать.