Выполнение функции контракта с необработанной транзакцией

Я пытаюсь создать легкий интерфейс, который может транслировать необработанную транзакцию и выполнять функцию контракта Ethereum. Хотя я могу построить простую транзакцию, мало указаний о том, как выполнять функцию контракта.

У меня есть следующий код для создания транзакции:

function createRawTransacton(){
var privateKey = new Buffer('d3780dd620ef80b3918dfcdb9105f76147fc55a3775ff71805ccec09a89063ed', 'hex')
 var rawTx = {
   nonce: 'CX350',
   gasPrice: 'C350',
   gasLimit: '0x09184e72a000',
   to: '0xc5622be5861b7200cbace14e28b98c4ab77bd9b4',
   value: 'CX350',
   data:    '0x19dacbf83c5de6658e14cbf7bcae5c15eca2eedecf1c66fbca928e4d351bea0f'
}
var tx = new Tx(rawTx)
tx.sign(privateKey)
var serializedTx = tx.serialize()
console.log(serializedTx.toString('hex'))
broadCastTx(serializedTx.toString('hex'))
}
Кросс-пост вопросов на нескольких дочерних сайтах противоречит политике сети обмена стеками. Пожалуйста, для будущих вопросов подумайте, хотите ли вы опубликовать их здесь или в stackoverflow, но не публикуйте их на обоих сайтах.
Как получить закрытый ключ. или может быть любой 32-битный хэш в качестве закрытого ключа.

Ответы (2)

Поле toдолжно быть адресом контракта, который вы хотите вызвать. Затем в dataполе вы кодируете вызываемую функцию и ее аргументы в соответствии с ABI . Будет проще использовать web3.js, такие как методы контракта , вместо необработанной транзакции (поэтому существуют абстракции над необработанным материалом).

Хм, я понимаю, что web3 проще, но мне нужно, чтобы он был легким и не зависел от узла. Web3 требует полного узла, и это не будет работать с моим оборудованием, поэтому необработанная транзакция
@Jim Вам не нужен узел, просто установите расширение Metamask Chrome или запустите geth в облегченном режиме (если вам нужна основная сеть). Для разработки вы можете использовать Truffle и иметь свой локальный узел без особых требований к оборудованию.

https://medium.com/@607ba26a48be/8d6cc8174c5d

Проверьте эту ссылку. У меня есть код, написанный на golang для создания автономных транзакций.

Привет. Можете ли вы резюмировать, что вы сделали в своем ответе? Ответы только по ссылке не приветствуются, потому что ссылка может стать мертвой или отсутствовать в любое время.