I hereby claim:
- I am bjoveski on github.
- I am bojan (https://keybase.io/bojan) on keybase.
- I have a public key whose fingerprint is 64DF DE8A EA00 6E84 3CFE D463 F06E ADBF AAE2 BD23
To claim this, I am signing this object:
contract ForwarderFactory { | |
function cloneForwarder(address forwarder, uint256 salt) | |
public returns (Forwarder clonedForwarder) { | |
address clonedAddress = createClone(forwarder, salt); | |
Forwarder parentForwarder = Forwarder(forwarder); | |
clonedForwarder = Forwarder(clonedAddress); | |
clonedForwarder.init(parentForwarder.destination()); | |
} | |
function createClone(address target, uint256 salt) private returns (address result) { |
function buildCreate2Address(senderAddress, saltHex, bytecode) { | |
return web3.utils.toChecksumAddress(`0x${web3.utils.sha3(`0x${[ | |
'ff', | |
senderAddress, | |
saltHex, | |
web3.utils.sha3(bytecode) | |
].map(x => x.replace(/0x/, '')) | |
.join('')}`).slice(-40)}`); | |
} |
import "./Forwarder.sol"; | |
contract ForwarderFactory { | |
function initForwarder(address destination, uint256 salt) public returns (Forwarder forwarder) { | |
bytes memory deploymentData = abi.encodePacked( | |
type(Forwarder).creationCode, | |
uint256(destination) | |
); | |
assembly { |
import "./Forwarder.sol"; | |
contract ForwarderFactory { | |
function initForwarder(address destination) public returns (Forwarder forwarder) { | |
forwarder = Forwarder.new(destination); | |
} | |
} |
contract Forwarder { | |
address public destination; | |
constructor(address _destination) public { | |
destination = _destination; | |
} | |
function flushERC20(address tokenContractAddress) public { | |
IERC20 tokenContract = ERC20(tokenContractAddress); | |
uint256 forwarderBalance = tokenContract.balanceOf(address(this)); |
I hereby claim:
To claim this, I am signing this object:
I hereby claim:
To claim this, I am signing this object: