comment appeler un contrat intelligent déployé avec sendRawTransaction

Akshay Pilankar

comment appeler un contrat intelligent déployé avec sendRawTransaction


avec ce code, je veux appeler la fonction de transfert de mon token smartcontract. selon ma connaissance, je dois ajouter ce « .transfer (adresse, montant) » au champ de données. Ai-je raison? aussi j’utilise web3 0.20. dans cette version, je dois utiliser getData à droite? ce sera donc var dataforTx = mycontract.tranfer.getData (adresse, montant); puis ajouter ce dataforTx au champ de données?

var Tx = require (‘ethereumjs-tx’); var privateKey = nouveau tampon (‘e331b6d69882b4cb4ea581d88e0b604039a3de5967688d3dcffdd2270c0fd109’, ‘hex’)

var rawTx = {nonce: ‘0x00’, gasPrice: ‘0x09184e72a000’,
gasLimit: ‘0x2710’, à: ‘0x0000000000000000000000000000000000000000’, valeur: ‘0x00’,
**** données: ‘0x7f7465737432000000000000000000000000000000000000000000000000000000600057’} ** // comment obtenir la valeur hexadécimale de mes dataforTx ???????? **

var tx = nouveau Tx (rawTx); tx.sign (privateKey);

var serializedTx = tx.serialize ();

//console.log(serializedTx.toString(‘hex ‘));

web3.eth.sendRawTransaction (‘0x’ + serializedTx.toString (‘hex’), fonction (err, hash) {if (! err) console.log (hash); // « 0x7f9fade1c0d57a7af66ab4ead79fade1c0d57a7af66ab4ead7c2c2eb7b11a9) »;

je ne suis toujours pas en mesure de transférer token.it renvoie la valeur de hachage mais ne reflète aucun solde sur un autre compte. et si j’utilise balanceOf alors comment attraper la sortie de la fonction balanceOf dans sendRawTransaction

Réponses


 Puneet Kumar

var abi = [// votre tableau abi];

var contractAddress = « // votre adresse de contrat »;

var contract = web3.eth.contract (abi) .at (contractAddress);

laissez send_add = data.send_public_address;

laissez recv_add = rec_public_address;

let amount = web3.toHex (transfer_amount),

laissez nonce = web3.toHex (web3.eth.getTransactionCount (send_public_address));

var private_key = privatekey_sender.slice (2);

let gas = web3.toHex (data.gas_limit);

laissez gasPrice = web3.toHex (data.gas_price);

var rawTx = {

  from :  send_add , nonce :  nonce , gasLimit :  gas , gasPrice :  gasPrice , amount :  web3 . toHex ( transfer_amount ), to :  recv_add , 

 }; 

var transaction = new tx (rawTx);

var txData = new Buffer (private_key, ‘hex’);

transaction.sign (txData);

var serializedTx = transaction.serialize (). toString (‘hex’);

contract.transfer.sendTransaction (recv_add, montant, {‘0x’ + serializedTx}, fonction (err, txHash) {

      if   ( txHash )   { next ( null ,  txHash ); 

     } 

     else   if   ( err &&  err . message )   { next ( err . message ,   null ); 

     } 

     else   { next ( 'Unable to sendTransaction' ,   null ); 

     } 

 }); 

Ismael

Pouvez-vous expliquer comment cela répond à la question?


 

appeler, avec, comment, contrat, déployé, intelligent, sendRawTransaction, un

 

yahoo

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *