이더리움

스마트컨트렉 함수 접근 방법

iesay 2020. 12. 8. 11:03

출처 :  

https://drhot552.github.io/blockchain/%EC%9D%B4%EB%8D%94%EB%A6%AC%EC%9B%80-%EB%B8%94%EB%A1%9D%EC%B2%B4%EC%9D%B8_Web3js%EC%8A%A4%EB%A7%88%ED%8A%B8%EC%BB%A8%ED%8A%B8%EB%9E%99%ED%8A%B8-%EC%8B%A4%ED%96%89%ED%95%98%EA%B8%B0/#%EC%8A%A4%EB%A7%88%ED%8A%B8%EC%BB%A8%ED%8A%B8%EB%9E%99%ED%8A%B8-%EC%8B%A4%ED%96%89


이더리음 스마트컨트렉 함수 실행하기

web3.eth.getTransactionCount(send_account, (err, txCount) => {

  const txObject = {

    nonce:    web3.utils.toHex(txCount),

    gasLimit: web3.utils.toHex(1000000), // Raise the gas limit to a much higher amount

    gasPrice: web3.utils.toHex(web3.utils.toWei('10', 'gwei')),

    to : "0x59c11C4Cc4B92Cc15A35E289F2df961E3E7BF548",

    data : MyContract.methods.setLock("0xAdE01D06890918738Ba85F82cd2BD08128b1E61b", 100).encodeABI()

  };

  const tx = new Tx(txObject);

  tx.sign(privateKey);

  const serializedTx = tx.serialize();

  const raw = '0x' + serializedTx.toString('hex');

  web3.eth.sendSignedTransaction(raw)

     .once('transactionHash', (hash) => {

       console.info('transactionHash', 'https://rinkeby.infura.io/tx/' + hash);

     })

     .once('receipt', (receipt) => {

       console.info('receipt', receipt);

       MyContract.methods.totalbalance().call().then(result => console.log("SmartContract Call: " + result));

    }).on('error', console.error);

  }); 


컨트렉 함수 : setLock

컨트렉 주소 : 0xAdE01D06890918738Ba85F82cd2BD08128b1E61b

대상 주소 : 0x59c11C4Cc4B92Cc15A35E289F2df961E3E7BF548


락걸린 대상의 송금 실패 내역