├── .DS_Store ├── .envrc.example ├── .github └── workflows │ └── main.yml ├── .gitignore ├── .husky └── pre-commit ├── .nvmrc ├── .prettierignore ├── .prettierrc ├── .solcover.js ├── .solhint.json ├── PRIVATE_KEYS.md ├── README.md ├── contracts ├── Delegatable │ ├── Delegatable.sol │ ├── ECRecovery.sol │ ├── TypesAndDecoders.sol │ └── caveat-enforcers │ │ ├── AbstractRevocationEnforcer.sol │ │ ├── AllowedMethods.sol │ │ ├── CaveatEnforcer.sol │ │ ├── ERC20Allowance.sol │ │ ├── ExpirationEnforcer.sol │ │ ├── LimitedCalls.sol │ │ ├── RevocationEnforcer.sol │ │ ├── RevokableOwnableDelegatable.sol │ │ ├── index.test.js │ │ ├── limitedCalls.test.js │ │ └── revocationEnforcer.test.js └── EIP4430Prototype.sol ├── hardhat.config.bsc.js ├── hardhat.config.polygon.js ├── hardhat.config.ts ├── hardhat.network.ts ├── package.json ├── scripts └── verify.js ├── templates └── contract.hbs ├── test └── EIP4430Prototype.test.ts ├── tsconfig.json ├── types.js ├── utils ├── createTypedMessage.js ├── createTypedMessage.ts ├── delegatable-utils.ts ├── deploy.js ├── friendlyTypes.js ├── fromHexString.ts ├── publish.js ├── types.js ├── typesToCode.js ├── typesToCode.test.js ├── typesToCodeCli.js └── watch.js └── yarn.lock /.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eth-experiments/eip-4430-sol/HEAD/.DS_Store -------------------------------------------------------------------------------- /.envrc.example: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eth-experiments/eip-4430-sol/HEAD/.envrc.example -------------------------------------------------------------------------------- /.github/workflows/main.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eth-experiments/eip-4430-sol/HEAD/.github/workflows/main.yml -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eth-experiments/eip-4430-sol/HEAD/.gitignore -------------------------------------------------------------------------------- /.husky/pre-commit: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env sh 2 | . "$(dirname -- "$0")/_/husky.sh" 3 | 4 | yarn format 5 | -------------------------------------------------------------------------------- /.nvmrc: -------------------------------------------------------------------------------- 1 | 16.9.0 2 | -------------------------------------------------------------------------------- /.prettierignore: -------------------------------------------------------------------------------- 1 | coverage 2 | types 3 | -------------------------------------------------------------------------------- /.prettierrc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eth-experiments/eip-4430-sol/HEAD/.prettierrc -------------------------------------------------------------------------------- /.solcover.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eth-experiments/eip-4430-sol/HEAD/.solcover.js -------------------------------------------------------------------------------- /.solhint.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eth-experiments/eip-4430-sol/HEAD/.solhint.json -------------------------------------------------------------------------------- /PRIVATE_KEYS.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eth-experiments/eip-4430-sol/HEAD/PRIVATE_KEYS.md -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eth-experiments/eip-4430-sol/HEAD/README.md -------------------------------------------------------------------------------- /contracts/Delegatable/Delegatable.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eth-experiments/eip-4430-sol/HEAD/contracts/Delegatable/Delegatable.sol -------------------------------------------------------------------------------- /contracts/Delegatable/ECRecovery.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eth-experiments/eip-4430-sol/HEAD/contracts/Delegatable/ECRecovery.sol -------------------------------------------------------------------------------- /contracts/Delegatable/TypesAndDecoders.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eth-experiments/eip-4430-sol/HEAD/contracts/Delegatable/TypesAndDecoders.sol -------------------------------------------------------------------------------- /contracts/Delegatable/caveat-enforcers/AbstractRevocationEnforcer.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eth-experiments/eip-4430-sol/HEAD/contracts/Delegatable/caveat-enforcers/AbstractRevocationEnforcer.sol -------------------------------------------------------------------------------- /contracts/Delegatable/caveat-enforcers/AllowedMethods.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eth-experiments/eip-4430-sol/HEAD/contracts/Delegatable/caveat-enforcers/AllowedMethods.sol -------------------------------------------------------------------------------- /contracts/Delegatable/caveat-enforcers/CaveatEnforcer.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eth-experiments/eip-4430-sol/HEAD/contracts/Delegatable/caveat-enforcers/CaveatEnforcer.sol -------------------------------------------------------------------------------- /contracts/Delegatable/caveat-enforcers/ERC20Allowance.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eth-experiments/eip-4430-sol/HEAD/contracts/Delegatable/caveat-enforcers/ERC20Allowance.sol -------------------------------------------------------------------------------- /contracts/Delegatable/caveat-enforcers/ExpirationEnforcer.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eth-experiments/eip-4430-sol/HEAD/contracts/Delegatable/caveat-enforcers/ExpirationEnforcer.sol -------------------------------------------------------------------------------- /contracts/Delegatable/caveat-enforcers/LimitedCalls.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eth-experiments/eip-4430-sol/HEAD/contracts/Delegatable/caveat-enforcers/LimitedCalls.sol -------------------------------------------------------------------------------- /contracts/Delegatable/caveat-enforcers/RevocationEnforcer.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eth-experiments/eip-4430-sol/HEAD/contracts/Delegatable/caveat-enforcers/RevocationEnforcer.sol -------------------------------------------------------------------------------- /contracts/Delegatable/caveat-enforcers/RevokableOwnableDelegatable.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eth-experiments/eip-4430-sol/HEAD/contracts/Delegatable/caveat-enforcers/RevokableOwnableDelegatable.sol -------------------------------------------------------------------------------- /contracts/Delegatable/caveat-enforcers/index.test.js: -------------------------------------------------------------------------------- 1 | require('./limitedCalls.test.js'); 2 | -------------------------------------------------------------------------------- /contracts/Delegatable/caveat-enforcers/limitedCalls.test.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eth-experiments/eip-4430-sol/HEAD/contracts/Delegatable/caveat-enforcers/limitedCalls.test.js -------------------------------------------------------------------------------- /contracts/Delegatable/caveat-enforcers/revocationEnforcer.test.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eth-experiments/eip-4430-sol/HEAD/contracts/Delegatable/caveat-enforcers/revocationEnforcer.test.js -------------------------------------------------------------------------------- /contracts/EIP4430Prototype.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eth-experiments/eip-4430-sol/HEAD/contracts/EIP4430Prototype.sol -------------------------------------------------------------------------------- /hardhat.config.bsc.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eth-experiments/eip-4430-sol/HEAD/hardhat.config.bsc.js -------------------------------------------------------------------------------- /hardhat.config.polygon.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eth-experiments/eip-4430-sol/HEAD/hardhat.config.polygon.js -------------------------------------------------------------------------------- /hardhat.config.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eth-experiments/eip-4430-sol/HEAD/hardhat.config.ts -------------------------------------------------------------------------------- /hardhat.network.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eth-experiments/eip-4430-sol/HEAD/hardhat.network.ts -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eth-experiments/eip-4430-sol/HEAD/package.json -------------------------------------------------------------------------------- /scripts/verify.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eth-experiments/eip-4430-sol/HEAD/scripts/verify.js -------------------------------------------------------------------------------- /templates/contract.hbs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eth-experiments/eip-4430-sol/HEAD/templates/contract.hbs -------------------------------------------------------------------------------- /test/EIP4430Prototype.test.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eth-experiments/eip-4430-sol/HEAD/test/EIP4430Prototype.test.ts -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eth-experiments/eip-4430-sol/HEAD/tsconfig.json -------------------------------------------------------------------------------- /types.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eth-experiments/eip-4430-sol/HEAD/types.js -------------------------------------------------------------------------------- /utils/createTypedMessage.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eth-experiments/eip-4430-sol/HEAD/utils/createTypedMessage.js -------------------------------------------------------------------------------- /utils/createTypedMessage.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eth-experiments/eip-4430-sol/HEAD/utils/createTypedMessage.ts -------------------------------------------------------------------------------- /utils/delegatable-utils.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eth-experiments/eip-4430-sol/HEAD/utils/delegatable-utils.ts -------------------------------------------------------------------------------- /utils/deploy.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eth-experiments/eip-4430-sol/HEAD/utils/deploy.js -------------------------------------------------------------------------------- /utils/friendlyTypes.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eth-experiments/eip-4430-sol/HEAD/utils/friendlyTypes.js -------------------------------------------------------------------------------- /utils/fromHexString.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eth-experiments/eip-4430-sol/HEAD/utils/fromHexString.ts -------------------------------------------------------------------------------- /utils/publish.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eth-experiments/eip-4430-sol/HEAD/utils/publish.js -------------------------------------------------------------------------------- /utils/types.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eth-experiments/eip-4430-sol/HEAD/utils/types.js -------------------------------------------------------------------------------- /utils/typesToCode.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eth-experiments/eip-4430-sol/HEAD/utils/typesToCode.js -------------------------------------------------------------------------------- /utils/typesToCode.test.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eth-experiments/eip-4430-sol/HEAD/utils/typesToCode.test.js -------------------------------------------------------------------------------- /utils/typesToCodeCli.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eth-experiments/eip-4430-sol/HEAD/utils/typesToCodeCli.js -------------------------------------------------------------------------------- /utils/watch.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eth-experiments/eip-4430-sol/HEAD/utils/watch.js -------------------------------------------------------------------------------- /yarn.lock: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eth-experiments/eip-4430-sol/HEAD/yarn.lock --------------------------------------------------------------------------------