I hereby claim:
- I am 0age on github.
- I am 0age (https://keybase.io/0age) on keybase.
- I have a public key whose fingerprint is EC35 AB0B 6C4A D409 0FEF 81D5 50F4 5C3C 02E6 FD2F
To claim this, I am signing this object:
I hereby claim:
To claim this, I am signing this object:
#!/usr/bin/env node | |
var Decimal = require('decimal.js') // $ yarn add decimal.js | |
// pulling out the big guns (maybe a tad excessive...) | |
Decimal.config( | |
{ | |
precision: 500, | |
toExpNeg: -500 | |
} | |
) |
* @title Metamorphic Contract | |
* @author 0age, derived from cloner contract by @mhswende | |
* @notice This contract will create a metamorphic contract, or an upgradeable | |
* contract that does not rely on a transparent proxy, when deployed using | |
* CREATE2. It expects the deployer to provide a getImplementation() function | |
* that will return an implementation address, which it will then clone and | |
* deploy. Unlike with upgradeable transparent proxies, the state of a | |
* metamorphic contract will be wiped clean with each upgrade. With great power | |
* comes great responsibility - implement appropriate controls and educate the | |
* users of your contract if it will be interacted with! |
pragma solidity 0.5.8; | |
/** | |
* @title Metamorphic Delegator Factory | |
* @author 0age | |
* @notice This contract creates metamorphic contracts, or contracts that can be | |
* redeployed with new code to the same address. First, it deploys a contract | |
* with the initialization code of the contract you want to deploy stored in its | |
* RUNTIME code. Then, it deploys the contract, which retrieves the address of |
pragma solidity 0.5.9; // optimization enabled, runs: 10000, evm: constantinople | |
/** | |
* @title HomeWork Interface (version 1) - EIP165 ID 0xe5399799 | |
* @author 0age | |
* @notice Homework is a utility to find, share, and reuse "home" addresses for | |
* contracts. Anyone can work to find a new home address by searching for keys, | |
* a 32-byte value with the first 20 bytes equal to the finder's calling address | |
* (or derived by hashing an arbitrary 32-byte salt and the caller's address), |
STATICCALL
DELEGATECALL
to implementationDELEGATECALL
status, supplying return buffer in either case0x59595959365960205959596e<upgrade_beacon_last_15_bytes>5afa1551368280375af43d3d93803e602e57fd5bf3
pc op name [stack] <memory> {return_buffer} *return* ~revert~
eip: title: ENS Wildcard Resolution author: Nick Johnson (@arachnid), 0age (@0age) discussions-to: https://github.com/ethereum/EIPs/issues/xxxx status: Draft type: Standards Track category: ERC status: Draft created: 2020-02-25
Authors: @0age & @d1ll0n
This spec outlines an initial implementation of a simple Layer Two construction based on fraud proofs (i.e., Optimistic Rollup). It endeavors to remain as simple as possible while still affording important security guarantees and significant efficiency improvements. It is designed to support scalable token transfers in the near term, with an expectation that eventually more mature, generic L2 as production-ready platforms will become available.
{ | |
"merkleRoot": "0x5742a126030bb1883ceea917fcf0c83ae453aefcd3a681c41481435c8a4beb88", | |
"tokenTotal": "0x042b42f28d278eee000000", | |
"claims": { | |
"0x00038783c2DD7325329d38a247C39515C6d4D696": { | |
"amount": "0x15af1d78b58c400000", | |
"index": 0, | |
"proof": [ | |
"0xdfddeb287e097336de7b55dfac5a9374cbafadd19e6b34f5cc97caf85562c7e1", | |
"0xd302d40d8fa1cbf59290369c613ef2d7ee1750a7f50f019dbb3a298007e22370", |
const Web3 = require('web3'); | |
const fs = require('fs'); | |
process.chdir(__dirname); | |
const PROPOSAL_ID = 2; | |
const QUORUM = 40_000_000; | |
// Be sure to use a provider that can retrieve all required events. | |
const web3Provider = `https://eth-mainnet.alchemyapi.io/jsonrpc/${process.env.WEB3_API_KEY}`; | |
const web3 = new Web3(web3Provider); |