I am testing my Governor with timelock and ERC20 token, using truffle and ganache in js.
I successfully completed the proposal cycle to grant funds from ERC20 token, and am trying to create a proposal where Governor can send native tokens (ETH) to a grant recepient.
FOR ERC20 Token(successful):
calldata = erc.contract.methods.transfer(accounts[5], 2).encodeABI();
bountyProposal = await governor.propose([erc.address], [0], [calldata], "Grant 2 Token to team account5 for his latest bug bounty. ", {from: accounts[2]});
For native token(I have tried)
nativeProposal = await governor.propose([recepientAccountAddr],[3],[],"Grant 3 ETH for marketing to Bob",{from:accounts[4]})
txnCalldata = web3.eth.sendTransaction({from: timelock.address, to: accounts[6], value:3}).encodeABI();
propose_res = await governor.propose([timelock.address],[0],[txnCalldata],"Grant 3 ETH for marketing to Bob",{from:accounts[4]})
I have occasionally found the solution for other contracts to invoke after the proposal is executed, but didn't find any resource on "How to encode native token transfer" using Governor Proposal.