Last active
April 5, 2020 14:16
-
-
Save w3kim/64a3cf5da58250474f046d4dd7f85cc8 to your computer and use it in GitHub Desktop.
Klaytn: deploying smart contract with fee delegation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
const Caver = require('caver-js'); | |
const caver = new Caver('https://api.baobab.klaytn.net:8651/'); | |
const sender = caver.klay.accounts.wallet.add('sender_private_key'); | |
const payer = caver.klay.accounts.wallet.add('fee_payer_key', 'target_address'); | |
// an arbitrary contract is used | |
async function run() { | |
// make sure `data` starts with 0x | |
const { rawTransaction: senderRawTransaction } = await caver.klay.accounts.signTransaction({ | |
type: 'FEE_DELEGATED_SMART_CONTRACT_DEPLOY', | |
from: sender.address, | |
data: "0x60806040526000805534801561001457600080fd5b5060e8806100236000396000f3fe6080604052348015600f57600080fd5b5060043610603c5760003560e01c806306661abd14604157806342cbb15c14605d578063d14e62b8146079575b600080fd5b604760a4565b6040518082815260200191505060405180910390f35b606360aa565b6040518082815260200191505060405180910390f35b60a260048036036020811015608d57600080fd5b810190808035906020019092919050505060b2565b005b60005481565b600043905090565b806000819055505056fea165627a7a7230582087453d981a85f80c5262508e1fe5abe94dc38b1167c49b6e3477b74293e9e7000029", | |
gas: '3000000', | |
value: 0, | |
}, sender.privateKey); | |
// signed raw transaction | |
console.log("Raw TX:\n", senderRawTransaction); | |
// send fee delegated transaction with fee payer information | |
caver.klay.sendTransaction({ | |
senderRawTransaction: senderRawTransaction, | |
feePayer: payer.address | |
}) | |
.on('transactionHash', function (hash) { | |
console.log(">>> tx_hash for deploy =", hash); | |
}) | |
.on('receipt', function (receipt) { | |
console.log(">>> receipt arrived: ", receipt); | |
}) | |
.on('error', function (err) { | |
console.error(">>> error: ", err); | |
}); | |
} | |
run(); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment