одной? я пробую, и получается все равно несколько отдельных транзакций. что я делаю не так? каким образом я могу это сделать?
можно ли замутить что-то типа этого? то есть отправить список значений туда, где пересекаются
const txObject = {
value: 10000000000,
nonce: web3.utils.toHex(txCount),
gasLimit: gas_limit,
gasPrice: gas_price,
to: [contract1, contract2],
data: [data_function_contract1, data_function_contract2]
}
и потом
const tx = new Tx(txObject)
tx3.sign(PRIVATE_KEY)
const serializedTx = tx.serialize()
const raw = '0x' + serializedTx.toString('hex')
web3.eth.sendSignedTransaction.request([raw], (err,txHash) =>{
console.log('err:', err, 'txHash:', txHash)
Batch не позволяет сделать несколько транзакции в одной, он просто вызывает окна для подтверждения транзакции. Челать несколько транзакции в одной можно только на стороне смарт контракта
Попробуй https://github.com/makerdao/multicall.js
Спасибо. То есть это можно сделать, допустим, написав Смарт контракт на солидити что-то типа contract mycontract{ function multitrans (arg1, arg2...) { ContractA.transfer_in(arg1...) ContractB.transfer_out(arg2...) } } задеплоить его и уже через web3js вызывать одной транзакцией функцию multitrans? Если нет, то как тогда, а если да, то это рациональный вариант или можно лучше?
спасибо, да, видел, тоже решил, что только для колов и не подходит
Да, запихнуть логику в функцию контракта и потом через web3 вызывать эту функцию. Помните ещё про block gas limit, если будет много логики в одной функции, то это может не сработать. Что конкретно Вы хотите сделать ?
спасибо. эфир поменять на токен в одном контракте и этот токен поменять на эфир в другом
Обсуждают сегодня