├── .eslintrc.json ├── .gitattributes ├── .github └── workflows │ └── run-tests.yml ├── .gitignore ├── .npmignore ├── .nvmrc ├── .solhint.json ├── CHANGELOG.md ├── CODEOWNERS ├── LICENSE ├── README.md ├── assets └── ContractDiagram.jpg ├── contracts ├── ERC20.sol ├── Hub.sol ├── Migrations.sol ├── Token.sol ├── interfaces │ ├── ERC20Interface.sol │ └── HubI.sol └── mocks │ └── MockHub.sol ├── migrations ├── 1_initial_migration.js ├── 2_deploy_contracts.js ├── 3_deploy_safe.js └── 4_deploy_safe_1.3.0.js ├── package.json ├── scripts └── test.sh ├── test ├── 1-UBI.js ├── Hub.Math.test.js ├── Hub.TransitiveTx.test.js ├── Hub.Trust.test.js ├── Hub.test.js ├── PaymentToken.test.js ├── StandardERC20.test.js └── helpers │ ├── assertRevert.js │ ├── constants.js │ ├── createSafeWithProxy.js │ ├── estimateGas.js │ ├── executeSafeTx.js │ ├── expectEvent.js │ ├── formatTypedData.js │ ├── getTimestamp.js │ ├── increaseTime.js │ ├── math.js │ └── signTypedData.js └── truffle-config.js /.eslintrc.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CirclesUBI/circles-contracts/HEAD/.eslintrc.json -------------------------------------------------------------------------------- /.gitattributes: -------------------------------------------------------------------------------- 1 | *.sol linguist-language=Solidity 2 | -------------------------------------------------------------------------------- /.github/workflows/run-tests.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CirclesUBI/circles-contracts/HEAD/.github/workflows/run-tests.yml -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CirclesUBI/circles-contracts/HEAD/.gitignore -------------------------------------------------------------------------------- /.npmignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CirclesUBI/circles-contracts/HEAD/.npmignore -------------------------------------------------------------------------------- /.nvmrc: -------------------------------------------------------------------------------- 1 | 16 2 | -------------------------------------------------------------------------------- /.solhint.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "solhint:default" 3 | } 4 | -------------------------------------------------------------------------------- /CHANGELOG.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CirclesUBI/circles-contracts/HEAD/CHANGELOG.md -------------------------------------------------------------------------------- /CODEOWNERS: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CirclesUBI/circles-contracts/HEAD/CODEOWNERS -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CirclesUBI/circles-contracts/HEAD/LICENSE -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CirclesUBI/circles-contracts/HEAD/README.md -------------------------------------------------------------------------------- /assets/ContractDiagram.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CirclesUBI/circles-contracts/HEAD/assets/ContractDiagram.jpg -------------------------------------------------------------------------------- /contracts/ERC20.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CirclesUBI/circles-contracts/HEAD/contracts/ERC20.sol -------------------------------------------------------------------------------- /contracts/Hub.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CirclesUBI/circles-contracts/HEAD/contracts/Hub.sol -------------------------------------------------------------------------------- /contracts/Migrations.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CirclesUBI/circles-contracts/HEAD/contracts/Migrations.sol -------------------------------------------------------------------------------- /contracts/Token.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CirclesUBI/circles-contracts/HEAD/contracts/Token.sol -------------------------------------------------------------------------------- /contracts/interfaces/ERC20Interface.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CirclesUBI/circles-contracts/HEAD/contracts/interfaces/ERC20Interface.sol -------------------------------------------------------------------------------- /contracts/interfaces/HubI.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CirclesUBI/circles-contracts/HEAD/contracts/interfaces/HubI.sol -------------------------------------------------------------------------------- /contracts/mocks/MockHub.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CirclesUBI/circles-contracts/HEAD/contracts/mocks/MockHub.sol -------------------------------------------------------------------------------- /migrations/1_initial_migration.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CirclesUBI/circles-contracts/HEAD/migrations/1_initial_migration.js -------------------------------------------------------------------------------- /migrations/2_deploy_contracts.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CirclesUBI/circles-contracts/HEAD/migrations/2_deploy_contracts.js -------------------------------------------------------------------------------- /migrations/3_deploy_safe.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CirclesUBI/circles-contracts/HEAD/migrations/3_deploy_safe.js -------------------------------------------------------------------------------- /migrations/4_deploy_safe_1.3.0.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CirclesUBI/circles-contracts/HEAD/migrations/4_deploy_safe_1.3.0.js -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CirclesUBI/circles-contracts/HEAD/package.json -------------------------------------------------------------------------------- /scripts/test.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CirclesUBI/circles-contracts/HEAD/scripts/test.sh -------------------------------------------------------------------------------- /test/1-UBI.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CirclesUBI/circles-contracts/HEAD/test/1-UBI.js -------------------------------------------------------------------------------- /test/Hub.Math.test.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CirclesUBI/circles-contracts/HEAD/test/Hub.Math.test.js -------------------------------------------------------------------------------- /test/Hub.TransitiveTx.test.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CirclesUBI/circles-contracts/HEAD/test/Hub.TransitiveTx.test.js -------------------------------------------------------------------------------- /test/Hub.Trust.test.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CirclesUBI/circles-contracts/HEAD/test/Hub.Trust.test.js -------------------------------------------------------------------------------- /test/Hub.test.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CirclesUBI/circles-contracts/HEAD/test/Hub.test.js -------------------------------------------------------------------------------- /test/PaymentToken.test.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CirclesUBI/circles-contracts/HEAD/test/PaymentToken.test.js -------------------------------------------------------------------------------- /test/StandardERC20.test.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CirclesUBI/circles-contracts/HEAD/test/StandardERC20.test.js -------------------------------------------------------------------------------- /test/helpers/assertRevert.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CirclesUBI/circles-contracts/HEAD/test/helpers/assertRevert.js -------------------------------------------------------------------------------- /test/helpers/constants.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CirclesUBI/circles-contracts/HEAD/test/helpers/constants.js -------------------------------------------------------------------------------- /test/helpers/createSafeWithProxy.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CirclesUBI/circles-contracts/HEAD/test/helpers/createSafeWithProxy.js -------------------------------------------------------------------------------- /test/helpers/estimateGas.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CirclesUBI/circles-contracts/HEAD/test/helpers/estimateGas.js -------------------------------------------------------------------------------- /test/helpers/executeSafeTx.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CirclesUBI/circles-contracts/HEAD/test/helpers/executeSafeTx.js -------------------------------------------------------------------------------- /test/helpers/expectEvent.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CirclesUBI/circles-contracts/HEAD/test/helpers/expectEvent.js -------------------------------------------------------------------------------- /test/helpers/formatTypedData.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CirclesUBI/circles-contracts/HEAD/test/helpers/formatTypedData.js -------------------------------------------------------------------------------- /test/helpers/getTimestamp.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CirclesUBI/circles-contracts/HEAD/test/helpers/getTimestamp.js -------------------------------------------------------------------------------- /test/helpers/increaseTime.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CirclesUBI/circles-contracts/HEAD/test/helpers/increaseTime.js -------------------------------------------------------------------------------- /test/helpers/math.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CirclesUBI/circles-contracts/HEAD/test/helpers/math.js -------------------------------------------------------------------------------- /test/helpers/signTypedData.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CirclesUBI/circles-contracts/HEAD/test/helpers/signTypedData.js -------------------------------------------------------------------------------- /truffle-config.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CirclesUBI/circles-contracts/HEAD/truffle-config.js --------------------------------------------------------------------------------