Per this post: https://forum.yam.finance/t/my-concerns-around-the-yambassadors-silo/1678, I am proposing that we send 2 UMA to the 2-key Delegate contract I recently deployed in order to test it. In the same transaction we would also withdraw 1 UMA to confirm that we can do so.
2 key contract address: 0x8348c5EC31D486e6E4207fC0B17a906A0806550d https://etherscan.io/address/0x8348c5ec31d486e6e4207fc0b17a906a0806550d
The code to be added to the monthly contract is a simple ERC-20 transfer to the 2-key contract and would look like this:
IERC20 internal constant UMA = IERC20(0x04Fa0d235C4abf4BcF4787aF4CF447DE572eF828);
UMA.transfer(2keyContract, 2 * (10**18));
the code used in the propose transaction to add the UMA would look like this:
targets[2] = address(reserves);
signatures[2] = "whitelistWithdrawals(address[],uint256[],address[])";
address[] memory whos = new address[](1);
uint256[] memory amounts = new uint256[](1);
address[] memory tokens = new address[](1);
whos[0] = address(proposal);
amounts[0] = testAmount*(10**18);
tokens[0] = address(UMA);
calldatas[2] = abi.encode(whos, amounts, tokens);
The code used in the propose transaction to remove the UMA would look like this:
targets[0] = address(2keyContract);
signatures[0] = "withdrawErc20(address,uint256)";
calldatas[0] = abi.encode(address(UMA), 1 * (10**18));
All code should be adjusted and/or tweaked as necessary by the person writing the on-chain transaction to assure proper execution. Code should be re-checked before submitting the on-chain transaction.