pay-lobster 1.0.0 → 1.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +36 -371
- package/bin/cli.js +95 -0
- package/dist/agent.d.ts +19 -11
- package/dist/agent.d.ts.map +1 -1
- package/dist/agent.js +282 -50
- package/dist/agent.js.map +1 -1
- package/dist/contracts.d.ts +19 -0
- package/dist/contracts.d.ts.map +1 -0
- package/dist/contracts.js +58 -0
- package/dist/contracts.js.map +1 -0
- package/lib/agent.ts +313 -50
- package/lib/contracts.ts +58 -0
- package/lib/forge-std/.gitattributes +1 -0
- package/lib/forge-std/.github/CODEOWNERS +1 -0
- package/lib/forge-std/.github/dependabot.yml +6 -0
- package/lib/forge-std/.github/workflows/ci.yml +125 -0
- package/lib/forge-std/.github/workflows/sync.yml +36 -0
- package/lib/forge-std/CONTRIBUTING.md +193 -0
- package/lib/forge-std/LICENSE-APACHE +203 -0
- package/lib/forge-std/LICENSE-MIT +25 -0
- package/lib/forge-std/README.md +268 -0
- package/lib/forge-std/RELEASE_CHECKLIST.md +12 -0
- package/lib/forge-std/foundry.toml +18 -0
- package/lib/forge-std/package.json +16 -0
- package/lib/forge-std/scripts/vm.py +636 -0
- package/lib/forge-std/src/Base.sol +48 -0
- package/lib/forge-std/src/Config.sol +60 -0
- package/lib/forge-std/src/LibVariable.sol +477 -0
- package/lib/forge-std/src/Script.sol +28 -0
- package/lib/forge-std/src/StdAssertions.sol +779 -0
- package/lib/forge-std/src/StdChains.sol +303 -0
- package/lib/forge-std/src/StdCheats.sol +825 -0
- package/lib/forge-std/src/StdConfig.sol +632 -0
- package/lib/forge-std/src/StdConstants.sol +30 -0
- package/lib/forge-std/src/StdError.sol +15 -0
- package/lib/forge-std/src/StdInvariant.sol +120 -0
- package/lib/forge-std/src/StdJson.sol +275 -0
- package/lib/forge-std/src/StdMath.sol +47 -0
- package/lib/forge-std/src/StdStorage.sol +475 -0
- package/lib/forge-std/src/StdStyle.sol +333 -0
- package/lib/forge-std/src/StdToml.sol +275 -0
- package/lib/forge-std/src/StdUtils.sol +200 -0
- package/lib/forge-std/src/Test.sol +32 -0
- package/lib/forge-std/src/Vm.sol +2503 -0
- package/lib/forge-std/src/console.sol +1551 -0
- package/lib/forge-std/src/console2.sol +4 -0
- package/lib/forge-std/src/interfaces/IERC1155.sol +105 -0
- package/lib/forge-std/src/interfaces/IERC165.sol +12 -0
- package/lib/forge-std/src/interfaces/IERC20.sol +43 -0
- package/lib/forge-std/src/interfaces/IERC4626.sol +190 -0
- package/lib/forge-std/src/interfaces/IERC6909.sol +72 -0
- package/lib/forge-std/src/interfaces/IERC721.sol +164 -0
- package/lib/forge-std/src/interfaces/IERC7540.sol +144 -0
- package/lib/forge-std/src/interfaces/IERC7575.sol +241 -0
- package/lib/forge-std/src/interfaces/IMulticall3.sol +68 -0
- package/lib/forge-std/src/safeconsole.sol +13248 -0
- package/lib/forge-std/test/CommonBase.t.sol +44 -0
- package/lib/forge-std/test/Config.t.sol +381 -0
- package/lib/forge-std/test/LibVariable.t.sol +452 -0
- package/lib/forge-std/test/StdAssertions.t.sol +141 -0
- package/lib/forge-std/test/StdChains.t.sol +227 -0
- package/lib/forge-std/test/StdCheats.t.sol +638 -0
- package/lib/forge-std/test/StdConstants.t.sol +38 -0
- package/lib/forge-std/test/StdError.t.sol +119 -0
- package/lib/forge-std/test/StdJson.t.sol +49 -0
- package/lib/forge-std/test/StdMath.t.sol +202 -0
- package/lib/forge-std/test/StdStorage.t.sol +485 -0
- package/lib/forge-std/test/StdStyle.t.sol +110 -0
- package/lib/forge-std/test/StdToml.t.sol +49 -0
- package/lib/forge-std/test/StdUtils.t.sol +342 -0
- package/lib/forge-std/test/Vm.t.sol +18 -0
- package/lib/forge-std/test/compilation/CompilationScript.sol +8 -0
- package/lib/forge-std/test/compilation/CompilationScriptBase.sol +8 -0
- package/lib/forge-std/test/compilation/CompilationTest.sol +8 -0
- package/lib/forge-std/test/compilation/CompilationTestBase.sol +8 -0
- package/lib/forge-std/test/fixtures/broadcast.log.json +187 -0
- package/lib/forge-std/test/fixtures/config.toml +81 -0
- package/lib/forge-std/test/fixtures/test.json +8 -0
- package/lib/forge-std/test/fixtures/test.toml +6 -0
- package/lib/openzeppelin-contracts/.changeset/config.json +12 -0
- package/lib/openzeppelin-contracts/.codecov.yml +12 -0
- package/lib/openzeppelin-contracts/.editorconfig +21 -0
- package/lib/openzeppelin-contracts/.eslintrc +20 -0
- package/lib/openzeppelin-contracts/.github/ISSUE_TEMPLATE/bug_report.md +21 -0
- package/lib/openzeppelin-contracts/.github/ISSUE_TEMPLATE/config.yml +4 -0
- package/lib/openzeppelin-contracts/.github/ISSUE_TEMPLATE/feature_request.md +14 -0
- package/lib/openzeppelin-contracts/.github/PULL_REQUEST_TEMPLATE.md +20 -0
- package/lib/openzeppelin-contracts/.github/actions/gas-compare/action.yml +49 -0
- package/lib/openzeppelin-contracts/.github/actions/setup/action.yml +21 -0
- package/lib/openzeppelin-contracts/.github/actions/storage-layout/action.yml +55 -0
- package/lib/openzeppelin-contracts/.github/workflows/actionlint.yml +18 -0
- package/lib/openzeppelin-contracts/.github/workflows/changeset.yml +28 -0
- package/lib/openzeppelin-contracts/.github/workflows/checks.yml +118 -0
- package/lib/openzeppelin-contracts/.github/workflows/docs.yml +19 -0
- package/lib/openzeppelin-contracts/.github/workflows/formal-verification.yml +68 -0
- package/lib/openzeppelin-contracts/.github/workflows/release-cycle.yml +214 -0
- package/lib/openzeppelin-contracts/.github/workflows/upgradeable.yml +34 -0
- package/lib/openzeppelin-contracts/.gitmodules +7 -0
- package/lib/openzeppelin-contracts/.mocharc.js +4 -0
- package/lib/openzeppelin-contracts/.prettierrc +15 -0
- package/lib/openzeppelin-contracts/.solcover.js +13 -0
- package/lib/openzeppelin-contracts/CHANGELOG.md +972 -0
- package/lib/openzeppelin-contracts/CODE_OF_CONDUCT.md +73 -0
- package/lib/openzeppelin-contracts/CONTRIBUTING.md +36 -0
- package/lib/openzeppelin-contracts/GUIDELINES.md +148 -0
- package/lib/openzeppelin-contracts/LICENSE +22 -0
- package/lib/openzeppelin-contracts/README.md +107 -0
- package/lib/openzeppelin-contracts/RELEASING.md +45 -0
- package/lib/openzeppelin-contracts/SECURITY.md +42 -0
- package/lib/openzeppelin-contracts/audits/2017-03.md +292 -0
- package/lib/openzeppelin-contracts/audits/2018-10.pdf +0 -0
- package/lib/openzeppelin-contracts/audits/2022-10-Checkpoints.pdf +0 -0
- package/lib/openzeppelin-contracts/audits/2022-10-ERC4626.pdf +0 -0
- package/lib/openzeppelin-contracts/audits/2023-05-v4.9.pdf +0 -0
- package/lib/openzeppelin-contracts/audits/2023-10-v5.0.pdf +0 -0
- package/lib/openzeppelin-contracts/audits/README.md +17 -0
- package/lib/openzeppelin-contracts/certora/Makefile +54 -0
- package/lib/openzeppelin-contracts/certora/README.md +60 -0
- package/lib/openzeppelin-contracts/certora/diff/access_manager_AccessManager.sol.patch +97 -0
- package/lib/openzeppelin-contracts/certora/harnesses/AccessControlDefaultAdminRulesHarness.sol +46 -0
- package/lib/openzeppelin-contracts/certora/harnesses/AccessControlHarness.sol +6 -0
- package/lib/openzeppelin-contracts/certora/harnesses/DoubleEndedQueueHarness.sol +58 -0
- package/lib/openzeppelin-contracts/certora/harnesses/ERC20FlashMintHarness.sol +36 -0
- package/lib/openzeppelin-contracts/certora/harnesses/ERC20PermitHarness.sol +16 -0
- package/lib/openzeppelin-contracts/certora/harnesses/ERC20WrapperHarness.sol +34 -0
- package/lib/openzeppelin-contracts/certora/harnesses/ERC3156FlashBorrowerHarness.sol +13 -0
- package/lib/openzeppelin-contracts/certora/harnesses/ERC721Harness.sol +33 -0
- package/lib/openzeppelin-contracts/certora/harnesses/ERC721ReceiverHarness.sol +11 -0
- package/lib/openzeppelin-contracts/certora/harnesses/EnumerableMapHarness.sol +55 -0
- package/lib/openzeppelin-contracts/certora/harnesses/EnumerableSetHarness.sol +35 -0
- package/lib/openzeppelin-contracts/certora/harnesses/InitializableHarness.sol +23 -0
- package/lib/openzeppelin-contracts/certora/harnesses/Ownable2StepHarness.sol +10 -0
- package/lib/openzeppelin-contracts/certora/harnesses/OwnableHarness.sol +10 -0
- package/lib/openzeppelin-contracts/certora/harnesses/PausableHarness.sol +18 -0
- package/lib/openzeppelin-contracts/certora/harnesses/TimelockControllerHarness.sol +13 -0
- package/lib/openzeppelin-contracts/certora/reports/2021-10.pdf +0 -0
- package/lib/openzeppelin-contracts/certora/reports/2022-03.pdf +0 -0
- package/lib/openzeppelin-contracts/certora/reports/2022-05.pdf +0 -0
- package/lib/openzeppelin-contracts/certora/run.js +160 -0
- package/lib/openzeppelin-contracts/certora/specs/AccessControl.spec +119 -0
- package/lib/openzeppelin-contracts/certora/specs/AccessControlDefaultAdminRules.spec +464 -0
- package/lib/openzeppelin-contracts/certora/specs/DoubleEndedQueue.spec +300 -0
- package/lib/openzeppelin-contracts/certora/specs/ERC20.spec +352 -0
- package/lib/openzeppelin-contracts/certora/specs/ERC20FlashMint.spec +55 -0
- package/lib/openzeppelin-contracts/certora/specs/ERC20Wrapper.spec +198 -0
- package/lib/openzeppelin-contracts/certora/specs/ERC721.spec +679 -0
- package/lib/openzeppelin-contracts/certora/specs/EnumerableMap.spec +333 -0
- package/lib/openzeppelin-contracts/certora/specs/EnumerableSet.spec +246 -0
- package/lib/openzeppelin-contracts/certora/specs/Initializable.spec +165 -0
- package/lib/openzeppelin-contracts/certora/specs/Ownable.spec +77 -0
- package/lib/openzeppelin-contracts/certora/specs/Ownable2Step.spec +108 -0
- package/lib/openzeppelin-contracts/certora/specs/Pausable.spec +96 -0
- package/lib/openzeppelin-contracts/certora/specs/TimelockController.spec +274 -0
- package/lib/openzeppelin-contracts/certora/specs/helpers/helpers.spec +7 -0
- package/lib/openzeppelin-contracts/certora/specs/methods/IAccessControl.spec +8 -0
- package/lib/openzeppelin-contracts/certora/specs/methods/IAccessControlDefaultAdminRules.spec +36 -0
- package/lib/openzeppelin-contracts/certora/specs/methods/IERC20.spec +11 -0
- package/lib/openzeppelin-contracts/certora/specs/methods/IERC2612.spec +5 -0
- package/lib/openzeppelin-contracts/certora/specs/methods/IERC3156FlashBorrower.spec +3 -0
- package/lib/openzeppelin-contracts/certora/specs/methods/IERC3156FlashLender.spec +5 -0
- package/lib/openzeppelin-contracts/certora/specs/methods/IERC5313.spec +3 -0
- package/lib/openzeppelin-contracts/certora/specs/methods/IERC721.spec +17 -0
- package/lib/openzeppelin-contracts/certora/specs/methods/IERC721Receiver.spec +3 -0
- package/lib/openzeppelin-contracts/certora/specs/methods/IOwnable.spec +5 -0
- package/lib/openzeppelin-contracts/certora/specs/methods/IOwnable2Step.spec +7 -0
- package/lib/openzeppelin-contracts/certora/specs.json +86 -0
- package/lib/openzeppelin-contracts/contracts/access/AccessControl.sol +209 -0
- package/lib/openzeppelin-contracts/contracts/access/IAccessControl.sol +98 -0
- package/lib/openzeppelin-contracts/contracts/access/Ownable.sol +100 -0
- package/lib/openzeppelin-contracts/contracts/access/Ownable2Step.sol +59 -0
- package/lib/openzeppelin-contracts/contracts/access/README.adoc +43 -0
- package/lib/openzeppelin-contracts/contracts/access/extensions/AccessControlDefaultAdminRules.sol +396 -0
- package/lib/openzeppelin-contracts/contracts/access/extensions/AccessControlEnumerable.sol +70 -0
- package/lib/openzeppelin-contracts/contracts/access/extensions/IAccessControlDefaultAdminRules.sol +192 -0
- package/lib/openzeppelin-contracts/contracts/access/extensions/IAccessControlEnumerable.sol +31 -0
- package/lib/openzeppelin-contracts/contracts/access/manager/AccessManaged.sol +113 -0
- package/lib/openzeppelin-contracts/contracts/access/manager/AccessManager.sol +730 -0
- package/lib/openzeppelin-contracts/contracts/access/manager/AuthorityUtils.sol +32 -0
- package/lib/openzeppelin-contracts/contracts/access/manager/IAccessManaged.sol +32 -0
- package/lib/openzeppelin-contracts/contracts/access/manager/IAccessManager.sol +392 -0
- package/lib/openzeppelin-contracts/contracts/access/manager/IAuthority.sol +14 -0
- package/lib/openzeppelin-contracts/contracts/finance/README.adoc +14 -0
- package/lib/openzeppelin-contracts/contracts/finance/VestingWallet.sol +154 -0
- package/lib/openzeppelin-contracts/contracts/governance/Governor.sol +850 -0
- package/lib/openzeppelin-contracts/contracts/governance/IGovernor.sol +427 -0
- package/lib/openzeppelin-contracts/contracts/governance/README.adoc +167 -0
- package/lib/openzeppelin-contracts/contracts/governance/TimelockController.sol +472 -0
- package/lib/openzeppelin-contracts/contracts/governance/extensions/GovernorCountingSimple.sol +100 -0
- package/lib/openzeppelin-contracts/contracts/governance/extensions/GovernorPreventLateQuorum.sol +102 -0
- package/lib/openzeppelin-contracts/contracts/governance/extensions/GovernorSettings.sol +112 -0
- package/lib/openzeppelin-contracts/contracts/governance/extensions/GovernorStorage.sol +115 -0
- package/lib/openzeppelin-contracts/contracts/governance/extensions/GovernorTimelockAccess.sol +346 -0
- package/lib/openzeppelin-contracts/contracts/governance/extensions/GovernorTimelockCompound.sol +167 -0
- package/lib/openzeppelin-contracts/contracts/governance/extensions/GovernorTimelockControl.sol +173 -0
- package/lib/openzeppelin-contracts/contracts/governance/extensions/GovernorVotes.sol +64 -0
- package/lib/openzeppelin-contracts/contracts/governance/extensions/GovernorVotesQuorumFraction.sol +110 -0
- package/lib/openzeppelin-contracts/contracts/governance/utils/IVotes.sol +59 -0
- package/lib/openzeppelin-contracts/contracts/governance/utils/Votes.sol +251 -0
- package/lib/openzeppelin-contracts/contracts/interfaces/IERC1155.sol +6 -0
- package/lib/openzeppelin-contracts/contracts/interfaces/IERC1155MetadataURI.sol +6 -0
- package/lib/openzeppelin-contracts/contracts/interfaces/IERC1155Receiver.sol +6 -0
- package/lib/openzeppelin-contracts/contracts/interfaces/IERC1271.sol +17 -0
- package/lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol +80 -0
- package/lib/openzeppelin-contracts/contracts/interfaces/IERC1363Receiver.sol +35 -0
- package/lib/openzeppelin-contracts/contracts/interfaces/IERC1363Spender.sol +29 -0
- package/lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol +6 -0
- package/lib/openzeppelin-contracts/contracts/interfaces/IERC1820Implementer.sol +20 -0
- package/lib/openzeppelin-contracts/contracts/interfaces/IERC1820Registry.sol +112 -0
- package/lib/openzeppelin-contracts/contracts/interfaces/IERC1967.sol +24 -0
- package/lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol +6 -0
- package/lib/openzeppelin-contracts/contracts/interfaces/IERC20Metadata.sol +6 -0
- package/lib/openzeppelin-contracts/contracts/interfaces/IERC2309.sol +19 -0
- package/lib/openzeppelin-contracts/contracts/interfaces/IERC2612.sol +8 -0
- package/lib/openzeppelin-contracts/contracts/interfaces/IERC2981.sol +23 -0
- package/lib/openzeppelin-contracts/contracts/interfaces/IERC3156.sol +7 -0
- package/lib/openzeppelin-contracts/contracts/interfaces/IERC3156FlashBorrower.sol +27 -0
- package/lib/openzeppelin-contracts/contracts/interfaces/IERC3156FlashLender.sol +41 -0
- package/lib/openzeppelin-contracts/contracts/interfaces/IERC4626.sol +230 -0
- package/lib/openzeppelin-contracts/contracts/interfaces/IERC4906.sol +20 -0
- package/lib/openzeppelin-contracts/contracts/interfaces/IERC5267.sol +28 -0
- package/lib/openzeppelin-contracts/contracts/interfaces/IERC5313.sol +16 -0
- package/lib/openzeppelin-contracts/contracts/interfaces/IERC5805.sol +9 -0
- package/lib/openzeppelin-contracts/contracts/interfaces/IERC6372.sol +17 -0
- package/lib/openzeppelin-contracts/contracts/interfaces/IERC721.sol +6 -0
- package/lib/openzeppelin-contracts/contracts/interfaces/IERC721Enumerable.sol +6 -0
- package/lib/openzeppelin-contracts/contracts/interfaces/IERC721Metadata.sol +6 -0
- package/lib/openzeppelin-contracts/contracts/interfaces/IERC721Receiver.sol +6 -0
- package/lib/openzeppelin-contracts/contracts/interfaces/IERC777.sol +200 -0
- package/lib/openzeppelin-contracts/contracts/interfaces/IERC777Recipient.sol +35 -0
- package/lib/openzeppelin-contracts/contracts/interfaces/IERC777Sender.sol +35 -0
- package/lib/openzeppelin-contracts/contracts/interfaces/README.adoc +82 -0
- package/lib/openzeppelin-contracts/contracts/interfaces/draft-IERC1822.sol +20 -0
- package/lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol +161 -0
- package/lib/openzeppelin-contracts/contracts/metatx/ERC2771Context.sol +75 -0
- package/lib/openzeppelin-contracts/contracts/metatx/ERC2771Forwarder.sol +370 -0
- package/lib/openzeppelin-contracts/contracts/metatx/README.adoc +12 -0
- package/lib/openzeppelin-contracts/contracts/mocks/AccessManagedTarget.sol +34 -0
- package/lib/openzeppelin-contracts/contracts/mocks/ArraysMock.sol +51 -0
- package/lib/openzeppelin-contracts/contracts/mocks/AuthorityMock.sol +69 -0
- package/lib/openzeppelin-contracts/contracts/mocks/CallReceiverMock.sol +73 -0
- package/lib/openzeppelin-contracts/contracts/mocks/ContextMock.sol +35 -0
- package/lib/openzeppelin-contracts/contracts/mocks/DummyImplementation.sol +65 -0
- package/lib/openzeppelin-contracts/contracts/mocks/EIP712Verifier.sol +16 -0
- package/lib/openzeppelin-contracts/contracts/mocks/ERC1271WalletMock.sol +24 -0
- package/lib/openzeppelin-contracts/contracts/mocks/ERC165/ERC165InterfacesSupported.sol +58 -0
- package/lib/openzeppelin-contracts/contracts/mocks/ERC165/ERC165MaliciousData.sol +12 -0
- package/lib/openzeppelin-contracts/contracts/mocks/ERC165/ERC165MissingData.sol +7 -0
- package/lib/openzeppelin-contracts/contracts/mocks/ERC165/ERC165NotSupported.sol +5 -0
- package/lib/openzeppelin-contracts/contracts/mocks/ERC165/ERC165ReturnBomb.sol +18 -0
- package/lib/openzeppelin-contracts/contracts/mocks/ERC2771ContextMock.sol +23 -0
- package/lib/openzeppelin-contracts/contracts/mocks/ERC3156FlashBorrowerMock.sol +53 -0
- package/lib/openzeppelin-contracts/contracts/mocks/EtherReceiverMock.sol +17 -0
- package/lib/openzeppelin-contracts/contracts/mocks/InitializableMock.sol +130 -0
- package/lib/openzeppelin-contracts/contracts/mocks/MulticallTest.sol +23 -0
- package/lib/openzeppelin-contracts/contracts/mocks/MultipleInheritanceInitializableMocks.sol +131 -0
- package/lib/openzeppelin-contracts/contracts/mocks/PausableMock.sol +31 -0
- package/lib/openzeppelin-contracts/contracts/mocks/ReentrancyAttack.sol +12 -0
- package/lib/openzeppelin-contracts/contracts/mocks/ReentrancyMock.sol +50 -0
- package/lib/openzeppelin-contracts/contracts/mocks/RegressionImplementation.sol +61 -0
- package/lib/openzeppelin-contracts/contracts/mocks/SingleInheritanceInitializableMocks.sol +49 -0
- package/lib/openzeppelin-contracts/contracts/mocks/Stateless.sol +36 -0
- package/lib/openzeppelin-contracts/contracts/mocks/StorageSlotMock.sol +77 -0
- package/lib/openzeppelin-contracts/contracts/mocks/TimelockReentrant.sol +26 -0
- package/lib/openzeppelin-contracts/contracts/mocks/UpgradeableBeaconMock.sol +27 -0
- package/lib/openzeppelin-contracts/contracts/mocks/VotesMock.sol +42 -0
- package/lib/openzeppelin-contracts/contracts/mocks/compound/CompTimelock.sol +174 -0
- package/lib/openzeppelin-contracts/contracts/mocks/docs/ERC20WithAutoMinerReward.sol +22 -0
- package/lib/openzeppelin-contracts/contracts/mocks/docs/ERC4626Fees.sol +103 -0
- package/lib/openzeppelin-contracts/contracts/mocks/docs/MyContractOwnable.sol +17 -0
- package/lib/openzeppelin-contracts/contracts/mocks/docs/governance/MyGovernor.sol +81 -0
- package/lib/openzeppelin-contracts/contracts/mocks/docs/governance/MyToken.sol +21 -0
- package/lib/openzeppelin-contracts/contracts/mocks/docs/governance/MyTokenTimestampBased.sol +32 -0
- package/lib/openzeppelin-contracts/contracts/mocks/docs/governance/MyTokenWrapped.sol +28 -0
- package/lib/openzeppelin-contracts/contracts/mocks/governance/GovernorMock.sol +14 -0
- package/lib/openzeppelin-contracts/contracts/mocks/governance/GovernorPreventLateQuorumMock.sol +46 -0
- package/lib/openzeppelin-contracts/contracts/mocks/governance/GovernorStorageMock.sol +79 -0
- package/lib/openzeppelin-contracts/contracts/mocks/governance/GovernorTimelockAccessMock.sol +70 -0
- package/lib/openzeppelin-contracts/contracts/mocks/governance/GovernorTimelockCompoundMock.sol +69 -0
- package/lib/openzeppelin-contracts/contracts/mocks/governance/GovernorTimelockControlMock.sol +69 -0
- package/lib/openzeppelin-contracts/contracts/mocks/governance/GovernorVoteMock.sol +20 -0
- package/lib/openzeppelin-contracts/contracts/mocks/governance/GovernorWithParamsMock.sol +51 -0
- package/lib/openzeppelin-contracts/contracts/mocks/proxy/BadBeacon.sol +11 -0
- package/lib/openzeppelin-contracts/contracts/mocks/proxy/ClashingImplementation.sol +19 -0
- package/lib/openzeppelin-contracts/contracts/mocks/proxy/UUPSUpgradeableMock.sol +35 -0
- package/lib/openzeppelin-contracts/contracts/mocks/token/ERC1155ReceiverMock.sol +74 -0
- package/lib/openzeppelin-contracts/contracts/mocks/token/ERC20ApprovalMock.sol +10 -0
- package/lib/openzeppelin-contracts/contracts/mocks/token/ERC20DecimalsMock.sol +17 -0
- package/lib/openzeppelin-contracts/contracts/mocks/token/ERC20ExcessDecimalsMock.sol +9 -0
- package/lib/openzeppelin-contracts/contracts/mocks/token/ERC20FlashMintMock.sol +26 -0
- package/lib/openzeppelin-contracts/contracts/mocks/token/ERC20ForceApproveMock.sol +13 -0
- package/lib/openzeppelin-contracts/contracts/mocks/token/ERC20Mock.sol +16 -0
- package/lib/openzeppelin-contracts/contracts/mocks/token/ERC20MulticallMock.sol +8 -0
- package/lib/openzeppelin-contracts/contracts/mocks/token/ERC20NoReturnMock.sol +28 -0
- package/lib/openzeppelin-contracts/contracts/mocks/token/ERC20Reentrant.sol +39 -0
- package/lib/openzeppelin-contracts/contracts/mocks/token/ERC20ReturnFalseMock.sol +19 -0
- package/lib/openzeppelin-contracts/contracts/mocks/token/ERC20VotesLegacyMock.sol +253 -0
- package/lib/openzeppelin-contracts/contracts/mocks/token/ERC4626LimitsMock.sol +23 -0
- package/lib/openzeppelin-contracts/contracts/mocks/token/ERC4626Mock.sol +17 -0
- package/lib/openzeppelin-contracts/contracts/mocks/token/ERC4626OffsetMock.sol +17 -0
- package/lib/openzeppelin-contracts/contracts/mocks/token/ERC4646FeesMock.sol +40 -0
- package/lib/openzeppelin-contracts/contracts/mocks/token/ERC721ConsecutiveEnumerableMock.sol +42 -0
- package/lib/openzeppelin-contracts/contracts/mocks/token/ERC721ConsecutiveMock.sol +61 -0
- package/lib/openzeppelin-contracts/contracts/mocks/token/ERC721ReceiverMock.sol +47 -0
- package/lib/openzeppelin-contracts/contracts/mocks/token/ERC721URIStorageMock.sol +17 -0
- package/lib/openzeppelin-contracts/contracts/mocks/token/VotesTimestamp.sol +29 -0
- package/lib/openzeppelin-contracts/contracts/package.json +32 -0
- package/lib/openzeppelin-contracts/contracts/proxy/Clones.sol +95 -0
- package/lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Proxy.sol +40 -0
- package/lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Utils.sol +193 -0
- package/lib/openzeppelin-contracts/contracts/proxy/Proxy.sol +69 -0
- package/lib/openzeppelin-contracts/contracts/proxy/README.adoc +87 -0
- package/lib/openzeppelin-contracts/contracts/proxy/beacon/BeaconProxy.sol +57 -0
- package/lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol +16 -0
- package/lib/openzeppelin-contracts/contracts/proxy/beacon/UpgradeableBeacon.sol +70 -0
- package/lib/openzeppelin-contracts/contracts/proxy/transparent/ProxyAdmin.sol +45 -0
- package/lib/openzeppelin-contracts/contracts/proxy/transparent/TransparentUpgradeableProxy.sol +116 -0
- package/lib/openzeppelin-contracts/contracts/proxy/utils/Initializable.sol +228 -0
- package/lib/openzeppelin-contracts/contracts/proxy/utils/UUPSUpgradeable.sol +147 -0
- package/lib/openzeppelin-contracts/contracts/token/ERC1155/ERC1155.sol +468 -0
- package/lib/openzeppelin-contracts/contracts/token/ERC1155/IERC1155.sol +128 -0
- package/lib/openzeppelin-contracts/contracts/token/ERC1155/IERC1155Receiver.sol +59 -0
- package/lib/openzeppelin-contracts/contracts/token/ERC1155/README.adoc +41 -0
- package/lib/openzeppelin-contracts/contracts/token/ERC1155/extensions/ERC1155Burnable.sol +28 -0
- package/lib/openzeppelin-contracts/contracts/token/ERC1155/extensions/ERC1155Pausable.sol +38 -0
- package/lib/openzeppelin-contracts/contracts/token/ERC1155/extensions/ERC1155Supply.sol +87 -0
- package/lib/openzeppelin-contracts/contracts/token/ERC1155/extensions/ERC1155URIStorage.sol +61 -0
- package/lib/openzeppelin-contracts/contracts/token/ERC1155/extensions/IERC1155MetadataURI.sol +20 -0
- package/lib/openzeppelin-contracts/contracts/token/ERC1155/utils/ERC1155Holder.sol +42 -0
- package/lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol +316 -0
- package/lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol +79 -0
- package/lib/openzeppelin-contracts/contracts/token/ERC20/README.adoc +67 -0
- package/lib/openzeppelin-contracts/contracts/token/ERC20/extensions/ERC20Burnable.sol +39 -0
- package/lib/openzeppelin-contracts/contracts/token/ERC20/extensions/ERC20Capped.sol +56 -0
- package/lib/openzeppelin-contracts/contracts/token/ERC20/extensions/ERC20FlashMint.sol +134 -0
- package/lib/openzeppelin-contracts/contracts/token/ERC20/extensions/ERC20Pausable.sol +33 -0
- package/lib/openzeppelin-contracts/contracts/token/ERC20/extensions/ERC20Permit.sol +83 -0
- package/lib/openzeppelin-contracts/contracts/token/ERC20/extensions/ERC20Votes.sol +83 -0
- package/lib/openzeppelin-contracts/contracts/token/ERC20/extensions/ERC20Wrapper.sol +86 -0
- package/lib/openzeppelin-contracts/contracts/token/ERC20/extensions/ERC4626.sol +286 -0
- package/lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol +26 -0
- package/lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol +90 -0
- package/lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol +118 -0
- package/lib/openzeppelin-contracts/contracts/token/ERC721/ERC721.sol +483 -0
- package/lib/openzeppelin-contracts/contracts/token/ERC721/IERC721.sol +135 -0
- package/lib/openzeppelin-contracts/contracts/token/ERC721/IERC721Receiver.sol +28 -0
- package/lib/openzeppelin-contracts/contracts/token/ERC721/README.adoc +67 -0
- package/lib/openzeppelin-contracts/contracts/token/ERC721/extensions/ERC721Burnable.sol +26 -0
- package/lib/openzeppelin-contracts/contracts/token/ERC721/extensions/ERC721Consecutive.sol +176 -0
- package/lib/openzeppelin-contracts/contracts/token/ERC721/extensions/ERC721Enumerable.sol +172 -0
- package/lib/openzeppelin-contracts/contracts/token/ERC721/extensions/ERC721Pausable.sol +37 -0
- package/lib/openzeppelin-contracts/contracts/token/ERC721/extensions/ERC721Royalty.sol +27 -0
- package/lib/openzeppelin-contracts/contracts/token/ERC721/extensions/ERC721URIStorage.sol +61 -0
- package/lib/openzeppelin-contracts/contracts/token/ERC721/extensions/ERC721Votes.sol +47 -0
- package/lib/openzeppelin-contracts/contracts/token/ERC721/extensions/ERC721Wrapper.sol +102 -0
- package/lib/openzeppelin-contracts/contracts/token/ERC721/extensions/IERC721Enumerable.sol +29 -0
- package/lib/openzeppelin-contracts/contracts/token/ERC721/extensions/IERC721Metadata.sol +27 -0
- package/lib/openzeppelin-contracts/contracts/token/ERC721/utils/ERC721Holder.sol +24 -0
- package/lib/openzeppelin-contracts/contracts/token/common/ERC2981.sol +137 -0
- package/lib/openzeppelin-contracts/contracts/token/common/README.adoc +10 -0
- package/lib/openzeppelin-contracts/contracts/utils/Address.sol +159 -0
- package/lib/openzeppelin-contracts/contracts/utils/Arrays.sol +127 -0
- package/lib/openzeppelin-contracts/contracts/utils/Base64.sol +90 -0
- package/lib/openzeppelin-contracts/contracts/utils/Context.sol +24 -0
- package/lib/openzeppelin-contracts/contracts/utils/Create2.sol +96 -0
- package/lib/openzeppelin-contracts/contracts/utils/Multicall.sol +23 -0
- package/lib/openzeppelin-contracts/contracts/utils/Nonces.sol +46 -0
- package/lib/openzeppelin-contracts/contracts/utils/Pausable.sol +119 -0
- package/lib/openzeppelin-contracts/contracts/utils/README.adoc +88 -0
- package/lib/openzeppelin-contracts/contracts/utils/ReentrancyGuard.sol +84 -0
- package/lib/openzeppelin-contracts/contracts/utils/ShortStrings.sol +123 -0
- package/lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol +135 -0
- package/lib/openzeppelin-contracts/contracts/utils/Strings.sol +94 -0
- package/lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol +174 -0
- package/lib/openzeppelin-contracts/contracts/utils/cryptography/EIP712.sol +160 -0
- package/lib/openzeppelin-contracts/contracts/utils/cryptography/MerkleProof.sol +232 -0
- package/lib/openzeppelin-contracts/contracts/utils/cryptography/MessageHashUtils.sol +86 -0
- package/lib/openzeppelin-contracts/contracts/utils/cryptography/SignatureChecker.sol +48 -0
- package/lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol +27 -0
- package/lib/openzeppelin-contracts/contracts/utils/introspection/ERC165Checker.sol +124 -0
- package/lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol +25 -0
- package/lib/openzeppelin-contracts/contracts/utils/math/Math.sol +415 -0
- package/lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol +1153 -0
- package/lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol +43 -0
- package/lib/openzeppelin-contracts/contracts/utils/structs/BitMaps.sol +60 -0
- package/lib/openzeppelin-contracts/contracts/utils/structs/Checkpoints.sol +603 -0
- package/lib/openzeppelin-contracts/contracts/utils/structs/DoubleEndedQueue.sol +169 -0
- package/lib/openzeppelin-contracts/contracts/utils/structs/EnumerableMap.sol +533 -0
- package/lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol +378 -0
- package/lib/openzeppelin-contracts/contracts/utils/types/Time.sol +130 -0
- package/lib/openzeppelin-contracts/contracts/vendor/compound/ICompoundTimelock.sol +86 -0
- package/lib/openzeppelin-contracts/contracts/vendor/compound/LICENSE +11 -0
- package/lib/openzeppelin-contracts/docs/README.md +16 -0
- package/lib/openzeppelin-contracts/docs/antora.yml +7 -0
- package/lib/openzeppelin-contracts/docs/config.js +21 -0
- package/lib/openzeppelin-contracts/docs/modules/ROOT/images/erc4626-attack-3a.png +0 -0
- package/lib/openzeppelin-contracts/docs/modules/ROOT/images/erc4626-attack-3b.png +0 -0
- package/lib/openzeppelin-contracts/docs/modules/ROOT/images/erc4626-attack-6.png +0 -0
- package/lib/openzeppelin-contracts/docs/modules/ROOT/images/erc4626-attack.png +0 -0
- package/lib/openzeppelin-contracts/docs/modules/ROOT/images/erc4626-deposit.png +0 -0
- package/lib/openzeppelin-contracts/docs/modules/ROOT/images/erc4626-mint.png +0 -0
- package/lib/openzeppelin-contracts/docs/modules/ROOT/images/erc4626-rate-linear.png +0 -0
- package/lib/openzeppelin-contracts/docs/modules/ROOT/images/erc4626-rate-loglog.png +0 -0
- package/lib/openzeppelin-contracts/docs/modules/ROOT/images/erc4626-rate-loglogext.png +0 -0
- package/lib/openzeppelin-contracts/docs/modules/ROOT/images/tally-exec.png +0 -0
- package/lib/openzeppelin-contracts/docs/modules/ROOT/images/tally-vote.png +0 -0
- package/lib/openzeppelin-contracts/docs/modules/ROOT/nav.adoc +23 -0
- package/lib/openzeppelin-contracts/docs/modules/ROOT/pages/access-control.adoc +204 -0
- package/lib/openzeppelin-contracts/docs/modules/ROOT/pages/backwards-compatibility.adoc +48 -0
- package/lib/openzeppelin-contracts/docs/modules/ROOT/pages/crowdsales.adoc +11 -0
- package/lib/openzeppelin-contracts/docs/modules/ROOT/pages/drafts.adoc +19 -0
- package/lib/openzeppelin-contracts/docs/modules/ROOT/pages/erc1155.adoc +145 -0
- package/lib/openzeppelin-contracts/docs/modules/ROOT/pages/erc20-supply.adoc +71 -0
- package/lib/openzeppelin-contracts/docs/modules/ROOT/pages/erc20.adoc +77 -0
- package/lib/openzeppelin-contracts/docs/modules/ROOT/pages/erc4626.adoc +214 -0
- package/lib/openzeppelin-contracts/docs/modules/ROOT/pages/erc721.adoc +79 -0
- package/lib/openzeppelin-contracts/docs/modules/ROOT/pages/extending-contracts.adoc +77 -0
- package/lib/openzeppelin-contracts/docs/modules/ROOT/pages/faq.adoc +13 -0
- package/lib/openzeppelin-contracts/docs/modules/ROOT/pages/governance.adoc +240 -0
- package/lib/openzeppelin-contracts/docs/modules/ROOT/pages/index.adoc +79 -0
- package/lib/openzeppelin-contracts/docs/modules/ROOT/pages/tokens.adoc +31 -0
- package/lib/openzeppelin-contracts/docs/modules/ROOT/pages/upgradeable.adoc +77 -0
- package/lib/openzeppelin-contracts/docs/modules/ROOT/pages/utilities.adoc +185 -0
- package/lib/openzeppelin-contracts/docs/modules/ROOT/pages/wizard.adoc +15 -0
- package/lib/openzeppelin-contracts/docs/templates/contract.hbs +111 -0
- package/lib/openzeppelin-contracts/docs/templates/helpers.js +46 -0
- package/lib/openzeppelin-contracts/docs/templates/page.hbs +4 -0
- package/lib/openzeppelin-contracts/docs/templates/properties.js +64 -0
- package/lib/openzeppelin-contracts/foundry.toml +10 -0
- package/lib/openzeppelin-contracts/hardhat/env-artifacts.js +24 -0
- package/lib/openzeppelin-contracts/hardhat/env-contract.js +25 -0
- package/lib/openzeppelin-contracts/hardhat/ignore-unreachable-warnings.js +45 -0
- package/lib/openzeppelin-contracts/hardhat/skip-foundry-tests.js +6 -0
- package/lib/openzeppelin-contracts/hardhat/task-test-get-files.js +25 -0
- package/lib/openzeppelin-contracts/hardhat.config.js +131 -0
- package/lib/openzeppelin-contracts/lib/erc4626-tests/ERC4626.prop.sol +404 -0
- package/lib/openzeppelin-contracts/lib/erc4626-tests/ERC4626.test.sol +349 -0
- package/lib/openzeppelin-contracts/lib/erc4626-tests/LICENSE +661 -0
- package/lib/openzeppelin-contracts/lib/erc4626-tests/README.md +116 -0
- package/lib/openzeppelin-contracts/lib/forge-std/.github/workflows/ci.yml +92 -0
- package/lib/openzeppelin-contracts/lib/forge-std/.gitmodules +3 -0
- package/lib/openzeppelin-contracts/lib/forge-std/LICENSE-APACHE +203 -0
- package/lib/openzeppelin-contracts/lib/forge-std/LICENSE-MIT +25 -0
- package/lib/openzeppelin-contracts/lib/forge-std/README.md +250 -0
- package/lib/openzeppelin-contracts/lib/forge-std/foundry.toml +21 -0
- package/lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/LICENSE +674 -0
- package/lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/Makefile +14 -0
- package/lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/default.nix +4 -0
- package/lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/demo/demo.sol +222 -0
- package/lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/package.json +15 -0
- package/lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/test.sol +469 -0
- package/lib/openzeppelin-contracts/lib/forge-std/package.json +16 -0
- package/lib/openzeppelin-contracts/lib/forge-std/src/Base.sol +31 -0
- package/lib/openzeppelin-contracts/lib/forge-std/src/Script.sol +26 -0
- package/lib/openzeppelin-contracts/lib/forge-std/src/StdAssertions.sol +209 -0
- package/lib/openzeppelin-contracts/lib/forge-std/src/StdChains.sol +189 -0
- package/lib/openzeppelin-contracts/lib/forge-std/src/StdCheats.sol +565 -0
- package/lib/openzeppelin-contracts/lib/forge-std/src/StdError.sol +15 -0
- package/lib/openzeppelin-contracts/lib/forge-std/src/StdJson.sol +179 -0
- package/lib/openzeppelin-contracts/lib/forge-std/src/StdMath.sol +43 -0
- package/lib/openzeppelin-contracts/lib/forge-std/src/StdStorage.sol +327 -0
- package/lib/openzeppelin-contracts/lib/forge-std/src/StdUtils.sol +123 -0
- package/lib/openzeppelin-contracts/lib/forge-std/src/Test.sol +28 -0
- package/lib/openzeppelin-contracts/lib/forge-std/src/Vm.sol +385 -0
- package/lib/openzeppelin-contracts/lib/forge-std/src/console.sol +1533 -0
- package/lib/openzeppelin-contracts/lib/forge-std/src/console2.sol +1546 -0
- package/lib/openzeppelin-contracts/lib/forge-std/src/interfaces/IERC1155.sol +105 -0
- package/lib/openzeppelin-contracts/lib/forge-std/src/interfaces/IERC165.sol +12 -0
- package/lib/openzeppelin-contracts/lib/forge-std/src/interfaces/IERC20.sol +43 -0
- package/lib/openzeppelin-contracts/lib/forge-std/src/interfaces/IERC4626.sol +190 -0
- package/lib/openzeppelin-contracts/lib/forge-std/src/interfaces/IERC721.sol +164 -0
- package/lib/openzeppelin-contracts/lib/forge-std/test/StdAssertions.t.sol +587 -0
- package/lib/openzeppelin-contracts/lib/forge-std/test/StdChains.t.sol +123 -0
- package/lib/openzeppelin-contracts/lib/forge-std/test/StdCheats.t.sol +305 -0
- package/lib/openzeppelin-contracts/lib/forge-std/test/StdError.t.sol +118 -0
- package/lib/openzeppelin-contracts/lib/forge-std/test/StdMath.t.sol +197 -0
- package/lib/openzeppelin-contracts/lib/forge-std/test/StdStorage.t.sol +283 -0
- package/lib/openzeppelin-contracts/lib/forge-std/test/StdUtils.t.sol +191 -0
- package/lib/openzeppelin-contracts/lib/forge-std/test/compilation/CompilationScript.sol +10 -0
- package/lib/openzeppelin-contracts/lib/forge-std/test/compilation/CompilationScriptBase.sol +10 -0
- package/lib/openzeppelin-contracts/lib/forge-std/test/compilation/CompilationTest.sol +10 -0
- package/lib/openzeppelin-contracts/lib/forge-std/test/compilation/CompilationTestBase.sol +10 -0
- package/lib/openzeppelin-contracts/lib/forge-std/test/fixtures/broadcast.log.json +187 -0
- package/lib/openzeppelin-contracts/logo.svg +15 -0
- package/lib/openzeppelin-contracts/netlify.toml +3 -0
- package/lib/openzeppelin-contracts/package-lock.json +16544 -0
- package/lib/openzeppelin-contracts/package.json +96 -0
- package/lib/openzeppelin-contracts/remappings.txt +1 -0
- package/lib/openzeppelin-contracts/renovate.json +4 -0
- package/lib/openzeppelin-contracts/requirements.txt +1 -0
- package/lib/openzeppelin-contracts/scripts/checks/compare-layout.js +20 -0
- package/lib/openzeppelin-contracts/scripts/checks/compareGasReports.js +243 -0
- package/lib/openzeppelin-contracts/scripts/checks/extract-layout.js +38 -0
- package/lib/openzeppelin-contracts/scripts/checks/generation.sh +6 -0
- package/lib/openzeppelin-contracts/scripts/checks/inheritance-ordering.js +54 -0
- package/lib/openzeppelin-contracts/scripts/gen-nav.js +41 -0
- package/lib/openzeppelin-contracts/scripts/generate/format-lines.js +16 -0
- package/lib/openzeppelin-contracts/scripts/generate/run.js +49 -0
- package/lib/openzeppelin-contracts/scripts/generate/templates/Checkpoints.js +247 -0
- package/lib/openzeppelin-contracts/scripts/generate/templates/Checkpoints.opts.js +17 -0
- package/lib/openzeppelin-contracts/scripts/generate/templates/Checkpoints.t.js +146 -0
- package/lib/openzeppelin-contracts/scripts/generate/templates/EnumerableMap.js +283 -0
- package/lib/openzeppelin-contracts/scripts/generate/templates/EnumerableSet.js +250 -0
- package/lib/openzeppelin-contracts/scripts/generate/templates/SafeCast.js +126 -0
- package/lib/openzeppelin-contracts/scripts/generate/templates/StorageSlot.js +78 -0
- package/lib/openzeppelin-contracts/scripts/generate/templates/conversion.js +30 -0
- package/lib/openzeppelin-contracts/scripts/git-user-config.sh +6 -0
- package/lib/openzeppelin-contracts/scripts/helpers.js +37 -0
- package/lib/openzeppelin-contracts/scripts/prepack.sh +23 -0
- package/lib/openzeppelin-contracts/scripts/prepare-docs.sh +26 -0
- package/lib/openzeppelin-contracts/scripts/release/format-changelog.js +33 -0
- package/lib/openzeppelin-contracts/scripts/release/synchronize-versions.js +15 -0
- package/lib/openzeppelin-contracts/scripts/release/update-comment.js +34 -0
- package/lib/openzeppelin-contracts/scripts/release/version.sh +11 -0
- package/lib/openzeppelin-contracts/scripts/release/workflow/exit-prerelease.sh +8 -0
- package/lib/openzeppelin-contracts/scripts/release/workflow/github-release.js +48 -0
- package/lib/openzeppelin-contracts/scripts/release/workflow/integrity-check.sh +20 -0
- package/lib/openzeppelin-contracts/scripts/release/workflow/pack.sh +26 -0
- package/lib/openzeppelin-contracts/scripts/release/workflow/publish.sh +26 -0
- package/lib/openzeppelin-contracts/scripts/release/workflow/rerun.js +7 -0
- package/lib/openzeppelin-contracts/scripts/release/workflow/set-changesets-pr-title.js +17 -0
- package/lib/openzeppelin-contracts/scripts/release/workflow/start.sh +35 -0
- package/lib/openzeppelin-contracts/scripts/release/workflow/state.js +112 -0
- package/lib/openzeppelin-contracts/scripts/remove-ignored-artifacts.js +45 -0
- package/lib/openzeppelin-contracts/scripts/solhint-custom/index.js +84 -0
- package/lib/openzeppelin-contracts/scripts/solhint-custom/package.json +5 -0
- package/lib/openzeppelin-contracts/scripts/update-docs-branch.js +65 -0
- package/lib/openzeppelin-contracts/scripts/upgradeable/README.md +21 -0
- package/lib/openzeppelin-contracts/scripts/upgradeable/patch-apply.sh +19 -0
- package/lib/openzeppelin-contracts/scripts/upgradeable/patch-save.sh +18 -0
- package/lib/openzeppelin-contracts/scripts/upgradeable/transpile-onto.sh +54 -0
- package/lib/openzeppelin-contracts/scripts/upgradeable/transpile.sh +47 -0
- package/lib/openzeppelin-contracts/scripts/upgradeable/upgradeable.patch +360 -0
- package/lib/openzeppelin-contracts/slither.config.json +5 -0
- package/lib/openzeppelin-contracts/solhint.config.js +20 -0
- package/lib/openzeppelin-contracts/test/TESTING.md +3 -0
- package/lib/openzeppelin-contracts/test/access/AccessControl.behavior.js +909 -0
- package/lib/openzeppelin-contracts/test/access/AccessControl.test.js +12 -0
- package/lib/openzeppelin-contracts/test/access/Ownable.test.js +72 -0
- package/lib/openzeppelin-contracts/test/access/Ownable2Step.test.js +70 -0
- package/lib/openzeppelin-contracts/test/access/extensions/AccessControlDefaultAdminRules.test.js +26 -0
- package/lib/openzeppelin-contracts/test/access/extensions/AccessControlEnumerable.test.js +17 -0
- package/lib/openzeppelin-contracts/test/access/manager/AccessManaged.test.js +142 -0
- package/lib/openzeppelin-contracts/test/access/manager/AccessManager.behavior.js +711 -0
- package/lib/openzeppelin-contracts/test/access/manager/AccessManager.test.js +2683 -0
- package/lib/openzeppelin-contracts/test/access/manager/AuthorityUtils.test.js +91 -0
- package/lib/openzeppelin-contracts/test/finance/VestingWallet.behavior.js +59 -0
- package/lib/openzeppelin-contracts/test/finance/VestingWallet.test.js +69 -0
- package/lib/openzeppelin-contracts/test/governance/Governor.t.sol +55 -0
- package/lib/openzeppelin-contracts/test/governance/Governor.test.js +1024 -0
- package/lib/openzeppelin-contracts/test/governance/TimelockController.test.js +1286 -0
- package/lib/openzeppelin-contracts/test/governance/extensions/GovernorERC721.test.js +116 -0
- package/lib/openzeppelin-contracts/test/governance/extensions/GovernorPreventLateQuorum.test.js +195 -0
- package/lib/openzeppelin-contracts/test/governance/extensions/GovernorStorage.test.js +150 -0
- package/lib/openzeppelin-contracts/test/governance/extensions/GovernorTimelockAccess.test.js +777 -0
- package/lib/openzeppelin-contracts/test/governance/extensions/GovernorTimelockCompound.test.js +441 -0
- package/lib/openzeppelin-contracts/test/governance/extensions/GovernorTimelockControl.test.js +515 -0
- package/lib/openzeppelin-contracts/test/governance/extensions/GovernorVotesQuorumFraction.test.js +167 -0
- package/lib/openzeppelin-contracts/test/governance/extensions/GovernorWithParams.test.js +277 -0
- package/lib/openzeppelin-contracts/test/governance/utils/EIP6372.behavior.js +23 -0
- package/lib/openzeppelin-contracts/test/governance/utils/Votes.behavior.js +360 -0
- package/lib/openzeppelin-contracts/test/governance/utils/Votes.test.js +92 -0
- package/lib/openzeppelin-contracts/test/helpers/access-manager.js +69 -0
- package/lib/openzeppelin-contracts/test/helpers/account.js +14 -0
- package/lib/openzeppelin-contracts/test/helpers/chainid.js +10 -0
- package/lib/openzeppelin-contracts/test/helpers/constants.js +7 -0
- package/lib/openzeppelin-contracts/test/helpers/create.js +22 -0
- package/lib/openzeppelin-contracts/test/helpers/customError.js +43 -0
- package/lib/openzeppelin-contracts/test/helpers/eip712.js +67 -0
- package/lib/openzeppelin-contracts/test/helpers/enums.js +11 -0
- package/lib/openzeppelin-contracts/test/helpers/erc1967.js +43 -0
- package/lib/openzeppelin-contracts/test/helpers/governance.js +253 -0
- package/lib/openzeppelin-contracts/test/helpers/iterate.js +16 -0
- package/lib/openzeppelin-contracts/test/helpers/math.js +11 -0
- package/lib/openzeppelin-contracts/test/helpers/methods.js +5 -0
- package/lib/openzeppelin-contracts/test/helpers/sign.js +63 -0
- package/lib/openzeppelin-contracts/test/helpers/time.js +17 -0
- package/lib/openzeppelin-contracts/test/helpers/txpool.js +38 -0
- package/lib/openzeppelin-contracts/test/metatx/ERC2771Context.test.js +134 -0
- package/lib/openzeppelin-contracts/test/metatx/ERC2771Forwarder.t.sol +165 -0
- package/lib/openzeppelin-contracts/test/metatx/ERC2771Forwarder.test.js +541 -0
- package/lib/openzeppelin-contracts/test/proxy/Clones.behaviour.js +136 -0
- package/lib/openzeppelin-contracts/test/proxy/Clones.test.js +62 -0
- package/lib/openzeppelin-contracts/test/proxy/ERC1967/ERC1967Proxy.test.js +12 -0
- package/lib/openzeppelin-contracts/test/proxy/ERC1967/ERC1967Utils.test.js +172 -0
- package/lib/openzeppelin-contracts/test/proxy/Proxy.behaviour.js +182 -0
- package/lib/openzeppelin-contracts/test/proxy/beacon/BeaconProxy.test.js +152 -0
- package/lib/openzeppelin-contracts/test/proxy/beacon/UpgradeableBeacon.test.js +54 -0
- package/lib/openzeppelin-contracts/test/proxy/transparent/ProxyAdmin.test.js +103 -0
- package/lib/openzeppelin-contracts/test/proxy/transparent/TransparentUpgradeableProxy.behaviour.js +413 -0
- package/lib/openzeppelin-contracts/test/proxy/transparent/TransparentUpgradeableProxy.test.js +24 -0
- package/lib/openzeppelin-contracts/test/proxy/utils/Initializable.test.js +220 -0
- package/lib/openzeppelin-contracts/test/proxy/utils/UUPSUpgradeable.test.js +131 -0
- package/lib/openzeppelin-contracts/test/token/ERC1155/ERC1155.behavior.js +905 -0
- package/lib/openzeppelin-contracts/test/token/ERC1155/ERC1155.test.js +252 -0
- package/lib/openzeppelin-contracts/test/token/ERC1155/extensions/ERC1155Burnable.test.js +71 -0
- package/lib/openzeppelin-contracts/test/token/ERC1155/extensions/ERC1155Pausable.test.js +113 -0
- package/lib/openzeppelin-contracts/test/token/ERC1155/extensions/ERC1155Supply.test.js +116 -0
- package/lib/openzeppelin-contracts/test/token/ERC1155/extensions/ERC1155URIStorage.test.js +66 -0
- package/lib/openzeppelin-contracts/test/token/ERC1155/utils/ERC1155Holder.test.js +64 -0
- package/lib/openzeppelin-contracts/test/token/ERC20/ERC20.behavior.js +340 -0
- package/lib/openzeppelin-contracts/test/token/ERC20/ERC20.test.js +202 -0
- package/lib/openzeppelin-contracts/test/token/ERC20/extensions/ERC20Burnable.behavior.js +116 -0
- package/lib/openzeppelin-contracts/test/token/ERC20/extensions/ERC20Burnable.test.js +20 -0
- package/lib/openzeppelin-contracts/test/token/ERC20/extensions/ERC20Capped.behavior.js +31 -0
- package/lib/openzeppelin-contracts/test/token/ERC20/extensions/ERC20Capped.test.js +24 -0
- package/lib/openzeppelin-contracts/test/token/ERC20/extensions/ERC20FlashMint.test.js +210 -0
- package/lib/openzeppelin-contracts/test/token/ERC20/extensions/ERC20Pausable.test.js +136 -0
- package/lib/openzeppelin-contracts/test/token/ERC20/extensions/ERC20Permit.test.js +118 -0
- package/lib/openzeppelin-contracts/test/token/ERC20/extensions/ERC20Votes.test.js +593 -0
- package/lib/openzeppelin-contracts/test/token/ERC20/extensions/ERC20Wrapper.test.js +211 -0
- package/lib/openzeppelin-contracts/test/token/ERC20/extensions/ERC4626.t.sol +41 -0
- package/lib/openzeppelin-contracts/test/token/ERC20/extensions/ERC4626.test.js +1109 -0
- package/lib/openzeppelin-contracts/test/token/ERC20/utils/SafeERC20.test.js +240 -0
- package/lib/openzeppelin-contracts/test/token/ERC721/ERC721.behavior.js +978 -0
- package/lib/openzeppelin-contracts/test/token/ERC721/ERC721.test.js +15 -0
- package/lib/openzeppelin-contracts/test/token/ERC721/ERC721Enumerable.test.js +20 -0
- package/lib/openzeppelin-contracts/test/token/ERC721/extensions/ERC721Burnable.test.js +82 -0
- package/lib/openzeppelin-contracts/test/token/ERC721/extensions/ERC721Consecutive.t.sol +181 -0
- package/lib/openzeppelin-contracts/test/token/ERC721/extensions/ERC721Consecutive.test.js +221 -0
- package/lib/openzeppelin-contracts/test/token/ERC721/extensions/ERC721Pausable.test.js +90 -0
- package/lib/openzeppelin-contracts/test/token/ERC721/extensions/ERC721Royalty.test.js +47 -0
- package/lib/openzeppelin-contracts/test/token/ERC721/extensions/ERC721URIStorage.test.js +114 -0
- package/lib/openzeppelin-contracts/test/token/ERC721/extensions/ERC721Votes.test.js +183 -0
- package/lib/openzeppelin-contracts/test/token/ERC721/extensions/ERC721Wrapper.test.js +289 -0
- package/lib/openzeppelin-contracts/test/token/ERC721/utils/ERC721Holder.test.js +22 -0
- package/lib/openzeppelin-contracts/test/token/common/ERC2981.behavior.js +169 -0
- package/lib/openzeppelin-contracts/test/utils/Address.test.js +340 -0
- package/lib/openzeppelin-contracts/test/utils/Arrays.test.js +123 -0
- package/lib/openzeppelin-contracts/test/utils/Base64.test.js +33 -0
- package/lib/openzeppelin-contracts/test/utils/Context.behavior.js +42 -0
- package/lib/openzeppelin-contracts/test/utils/Context.test.js +17 -0
- package/lib/openzeppelin-contracts/test/utils/Create2.test.js +102 -0
- package/lib/openzeppelin-contracts/test/utils/Multicall.test.js +69 -0
- package/lib/openzeppelin-contracts/test/utils/Nonces.test.js +71 -0
- package/lib/openzeppelin-contracts/test/utils/Pausable.test.js +86 -0
- package/lib/openzeppelin-contracts/test/utils/ReentrancyGuard.test.js +44 -0
- package/lib/openzeppelin-contracts/test/utils/ShortStrings.t.sol +55 -0
- package/lib/openzeppelin-contracts/test/utils/ShortStrings.test.js +55 -0
- package/lib/openzeppelin-contracts/test/utils/StorageSlot.test.js +210 -0
- package/lib/openzeppelin-contracts/test/utils/Strings.test.js +153 -0
- package/lib/openzeppelin-contracts/test/utils/cryptography/ECDSA.test.js +245 -0
- package/lib/openzeppelin-contracts/test/utils/cryptography/EIP712.test.js +111 -0
- package/lib/openzeppelin-contracts/test/utils/cryptography/MerkleProof.test.js +207 -0
- package/lib/openzeppelin-contracts/test/utils/cryptography/MessageHashUtils.test.js +55 -0
- package/lib/openzeppelin-contracts/test/utils/cryptography/SignatureChecker.test.js +87 -0
- package/lib/openzeppelin-contracts/test/utils/introspection/ERC165.test.js +11 -0
- package/lib/openzeppelin-contracts/test/utils/introspection/ERC165Checker.test.js +300 -0
- package/lib/openzeppelin-contracts/test/utils/introspection/SupportsInterface.behavior.js +144 -0
- package/lib/openzeppelin-contracts/test/utils/math/Math.t.sol +216 -0
- package/lib/openzeppelin-contracts/test/utils/math/Math.test.js +469 -0
- package/lib/openzeppelin-contracts/test/utils/math/SafeCast.test.js +161 -0
- package/lib/openzeppelin-contracts/test/utils/math/SignedMath.test.js +95 -0
- package/lib/openzeppelin-contracts/test/utils/structs/BitMap.test.js +145 -0
- package/lib/openzeppelin-contracts/test/utils/structs/Checkpoints.t.sol +332 -0
- package/lib/openzeppelin-contracts/test/utils/structs/Checkpoints.test.js +158 -0
- package/lib/openzeppelin-contracts/test/utils/structs/DoubleEndedQueue.test.js +99 -0
- package/lib/openzeppelin-contracts/test/utils/structs/EnumerableMap.behavior.js +178 -0
- package/lib/openzeppelin-contracts/test/utils/structs/EnumerableMap.test.js +149 -0
- package/lib/openzeppelin-contracts/test/utils/structs/EnumerableSet.behavior.js +129 -0
- package/lib/openzeppelin-contracts/test/utils/structs/EnumerableSet.test.js +79 -0
- package/lib/openzeppelin-contracts/test/utils/types/Time.test.js +140 -0
- package/package.json +12 -5
package/README.md
CHANGED
|
@@ -1,401 +1,66 @@
|
|
|
1
|
-
|
|
1
|
+
## Foundry
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
**Foundry is a blazing fast, portable and modular toolkit for Ethereum application development written in Rust.**
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
Foundry consists of:
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
- **Forge**: Ethereum testing framework (like Truffle, Hardhat and DappTools).
|
|
8
|
+
- **Cast**: Swiss army knife for interacting with EVM smart contracts, sending transactions and getting chain data.
|
|
9
|
+
- **Anvil**: Local Ethereum node, akin to Ganache, Hardhat Network.
|
|
10
|
+
- **Chisel**: Fast, utilitarian, and verbose solidity REPL.
|
|
8
11
|
|
|
9
|
-
|
|
12
|
+
## Documentation
|
|
10
13
|
|
|
11
|
-
|
|
12
|
-
|---------|--------------|---------------------|
|
|
13
|
-
| **AI Developer** | "My agent needs to pay for APIs" | One-line wallet setup, auto-pay |
|
|
14
|
-
| **Agent Builder** | "How do I monetize my agent?" | Accept payments, tips, subscriptions |
|
|
15
|
-
| **Business** | "I don't trust AI agents" | Escrow + trust scores verify reliability |
|
|
16
|
-
| **Freelancer** | "Clients don't pay on time" | Smart escrow auto-releases on milestones |
|
|
17
|
-
| **API Provider** | "I want per-request pricing" | x402 micropayments ($0.001/call) |
|
|
14
|
+
https://book.getfoundry.sh/
|
|
18
15
|
|
|
19
|
-
|
|
16
|
+
## Usage
|
|
20
17
|
|
|
21
|
-
|
|
18
|
+
### Build
|
|
22
19
|
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
- **Escrow as a Service** — Pre-built templates for any industry
|
|
26
|
-
- **Agent-to-Agent Commerce** — Autonomous payments between bots with trust verification
|
|
27
|
-
- **Multi-Chain Support** — Ethereum, Polygon, Avalanche, Arbitrum, Base
|
|
28
|
-
|
|
29
|
-
## Features
|
|
30
|
-
|
|
31
|
-
### 🆔 ERC-8004 Trustless Agents (NEW)
|
|
32
|
-
- 🪪 **On-Chain Identity** — NFT-based agent registration
|
|
33
|
-
- ⭐ **Reputation System** — Feedback & ratings after transactions
|
|
34
|
-
- 🔍 **Agent Discovery** — Find trusted agents by capability
|
|
35
|
-
- ✅ **Trust Verification** — Verify agents before paying them
|
|
36
|
-
- 📊 **Payment Safety** — Risk-based payment limits by trust score
|
|
37
|
-
- 🤝 **Post-Transaction Feedback** — Build reputation through use
|
|
38
|
-
|
|
39
|
-
### 🔐 x402 Payment Protocol (NEW)
|
|
40
|
-
- 💳 **HTTP-Native Payments** — `402 Payment Required` → automatic USDC payment
|
|
41
|
-
- 🤖 **Agent Commerce** — Bots pay bots for API calls, data, services
|
|
42
|
-
- 🧾 **Payment Receipts** — On-chain proof of payment
|
|
43
|
-
- 🔄 **Automatic Retry** — Handle payment challenges seamlessly
|
|
44
|
-
- 📊 **Usage Tracking** — Track spend by endpoint, recipient, time
|
|
45
|
-
|
|
46
|
-
### 🏦 Escrow as a Service (NEW)
|
|
47
|
-
- 🏠 **Real Estate** — Earnest money, security deposits, rent
|
|
48
|
-
- 💼 **Freelance** — Milestone payments, hourly billing
|
|
49
|
-
- 🛒 **Commerce** — Buyer protection, marketplace escrow
|
|
50
|
-
- 🤝 **P2P** — Peer-to-peer trades with trusted release
|
|
51
|
-
- ⚙️ **Custom** — Build your own with condition DSL
|
|
52
|
-
|
|
53
|
-
### Core Wallet Operations
|
|
54
|
-
- 💰 **Check USDC balances** across multiple chains
|
|
55
|
-
- 📤 **Send USDC** to any address or contact name
|
|
56
|
-
- 📥 **Receive USDC** with generated addresses
|
|
57
|
-
- 🌉 **Cross-chain transfers** via Circle's CCTP
|
|
58
|
-
- 🤖 **Agent-to-agent payments** for autonomous commerce
|
|
59
|
-
|
|
60
|
-
### Invoicing & Billing
|
|
61
|
-
- 📄 **Invoice Creation** — Professional invoices with line items, tax
|
|
62
|
-
- 📧 **Invoice Delivery** — Send via email, Telegram, etc.
|
|
63
|
-
- ✅ **Payment Tracking** — Draft → Sent → Viewed → Paid lifecycle
|
|
64
|
-
- 🔗 **Payment Links** — EIP-681 style payment request URLs
|
|
65
|
-
- ⏰ **Overdue Detection** — Automatic status updates
|
|
66
|
-
|
|
67
|
-
### Recurring Payments
|
|
68
|
-
- 🔄 **Subscriptions** — Daily, weekly, biweekly, monthly, quarterly, yearly
|
|
69
|
-
- ⏸️ **Flexible Control** — Pause, resume, cancel anytime
|
|
70
|
-
- 📊 **Payment History** — Full execution history with tx hashes
|
|
71
|
-
|
|
72
|
-
### Address Book
|
|
73
|
-
- 👥 **Contacts** — Store names with multiple chain addresses
|
|
74
|
-
- 🏷️ **Tags & Search** — Organize and find contacts
|
|
75
|
-
- 🎯 **Name Resolution** — Send to "Alice" instead of 0x addresses
|
|
76
|
-
- 📋 **Import/Export** — CSV support for bulk operations
|
|
77
|
-
|
|
78
|
-
### Security & Approvals
|
|
79
|
-
- 🛡️ **Approval Policies** — Require approval for large transactions
|
|
80
|
-
- 👥 **Multi-Approver** — Configurable number of required approvals
|
|
81
|
-
- 💵 **Daily Limits** — Auto-trigger approval when limit exceeded
|
|
82
|
-
- ⏰ **Timeout Handling** — Auto-cancel or auto-approve on expiry
|
|
83
|
-
|
|
84
|
-
### Notifications
|
|
85
|
-
- 🔔 **Real-Time Alerts** — Incoming payments, large outgoing, etc.
|
|
86
|
-
- 🌐 **Webhook Support** — POST to external URLs with HMAC signatures
|
|
87
|
-
- 💬 **Clawdbot Integration** — Notifications via Telegram, etc.
|
|
88
|
-
- ⏱️ **Rate Limiting** — Configurable cooldowns to prevent spam
|
|
89
|
-
|
|
90
|
-
### Analytics & Reporting
|
|
91
|
-
- 📊 **Daily Summaries** — Sent, received, net per day
|
|
92
|
-
- 📈 **Category Breakdown** — Spending analysis by category
|
|
93
|
-
- 👤 **Contact Analysis** — Volume by contact, top recipients
|
|
94
|
-
- 🔗 **Chain Distribution** — Activity breakdown across chains
|
|
95
|
-
- 📤 **CSV Export** — Export transactions for accounting
|
|
96
|
-
|
|
97
|
-
### Tip Jar / Creator Economy
|
|
98
|
-
- 💰 **Tip Jars** — Let your community tip you in USDC
|
|
99
|
-
- 🏆 **Leaderboards** — Top tippers weekly/monthly/all-time
|
|
100
|
-
- 🎉 **Real-Time Notifications** — Get notified instantly on tips
|
|
101
|
-
- 🤖 **Agent-to-Agent Tips** — Clawdbots can tip each other
|
|
102
|
-
|
|
103
|
-
### Real Estate Escrow
|
|
104
|
-
- 🏠 **Earnest Money** — Hold deposits with condition-based release
|
|
105
|
-
- 🔑 **Security Deposits** — Rental deposits with move-out inspection
|
|
106
|
-
- 📋 **Conditions** — Inspection, financing, title, custom conditions
|
|
107
|
-
- ✍️ **Multi-Party Approval** — Buyer + seller sign-off for release
|
|
108
|
-
- 📄 **Document Tracking** — Attach contracts, inspection reports
|
|
109
|
-
|
|
110
|
-
## Quick Start
|
|
111
|
-
|
|
112
|
-
### 1. Get Circle Credentials
|
|
113
|
-
|
|
114
|
-
Sign up at [console.circle.com](https://console.circle.com) and create:
|
|
115
|
-
- API Key (Keys → Create a key → API key → Standard Key)
|
|
116
|
-
- Entity Secret
|
|
117
|
-
|
|
118
|
-
### 2. Set Environment Variables
|
|
119
|
-
|
|
120
|
-
```bash
|
|
121
|
-
export CIRCLE_API_KEY="your-api-key"
|
|
122
|
-
export CIRCLE_ENTITY_SECRET="your-entity-secret"
|
|
20
|
+
```shell
|
|
21
|
+
$ forge build
|
|
123
22
|
```
|
|
124
23
|
|
|
125
|
-
###
|
|
24
|
+
### Test
|
|
126
25
|
|
|
127
|
-
```
|
|
128
|
-
|
|
129
|
-
npm install
|
|
130
|
-
npm run setup
|
|
26
|
+
```shell
|
|
27
|
+
$ forge test
|
|
131
28
|
```
|
|
132
29
|
|
|
133
|
-
###
|
|
134
|
-
|
|
135
|
-
```bash
|
|
136
|
-
# Check balance
|
|
137
|
-
npm run balance
|
|
138
|
-
|
|
139
|
-
# Send USDC
|
|
140
|
-
npx ts-node scripts/usdc-cli.ts send 10 to 0x1234...
|
|
141
|
-
|
|
142
|
-
# Get receive address
|
|
143
|
-
npm run receive
|
|
30
|
+
### Format
|
|
144
31
|
|
|
145
|
-
|
|
146
|
-
|
|
32
|
+
```shell
|
|
33
|
+
$ forge fmt
|
|
147
34
|
```
|
|
148
35
|
|
|
149
|
-
|
|
36
|
+
### Gas Snapshots
|
|
150
37
|
|
|
38
|
+
```shell
|
|
39
|
+
$ forge snapshot
|
|
151
40
|
```
|
|
152
|
-
lobster-pay/
|
|
153
|
-
├── SKILL.md # OpenClaw skill documentation
|
|
154
|
-
├── README.md # This file
|
|
155
|
-
├── package.json # Dependencies
|
|
156
|
-
├── lib/
|
|
157
|
-
│ ├── circle-client.ts # Circle Programmable Wallets API client
|
|
158
|
-
│ ├── x402-client.ts # x402 payment protocol client
|
|
159
|
-
│ ├── x402-server.ts # x402 payment verification middleware
|
|
160
|
-
│ ├── escrow.ts # Escrow management & multi-party release
|
|
161
|
-
│ ├── escrow-templates.ts # Pre-built escrow templates
|
|
162
|
-
│ ├── condition-builder.ts # Flexible condition DSL
|
|
163
|
-
│ └── erc8004/ # ERC-8004 Trustless Agents
|
|
164
|
-
│ ├── index.ts # Main client & helpers
|
|
165
|
-
│ ├── identity.ts # Identity Registry (agent registration)
|
|
166
|
-
│ ├── reputation.ts # Reputation Registry (feedback)
|
|
167
|
-
│ ├── discovery.ts # Agent discovery service
|
|
168
|
-
│ └── constants.ts # Contract addresses & types
|
|
169
|
-
│ ├── invoices.ts # Invoice & recurring payment management
|
|
170
|
-
│ ├── contacts.ts # Address book & contact resolution
|
|
171
|
-
│ ├── approvals.ts # Multi-sig style approval workflows
|
|
172
|
-
│ ├── notifications.ts # Real-time alerts & webhooks
|
|
173
|
-
│ └── analytics.ts # Transaction analytics & reporting
|
|
174
|
-
├── scripts/
|
|
175
|
-
│ └── usdc-cli.ts # CLI tool for testing
|
|
176
|
-
├── docs/
|
|
177
|
-
│ ├── erc8004-integration.md # ERC-8004 Trustless Agents guide
|
|
178
|
-
│ ├── x402-integration.md # x402 protocol documentation
|
|
179
|
-
│ ├── x402-quickstart.md # Quick start guide
|
|
180
|
-
│ ├── escrow-templates.md # Escrow template reference
|
|
181
|
-
│ └── ARCHITECTURE.md # Technical architecture
|
|
182
|
-
├── examples/
|
|
183
|
-
│ ├── x402-client-example.ts
|
|
184
|
-
│ └── x402-server-example.ts
|
|
185
|
-
└── data/ # Local data storage (created at runtime)
|
|
186
|
-
```
|
|
187
|
-
|
|
188
|
-
## Supported Networks (Testnet)
|
|
189
|
-
|
|
190
|
-
| Network | Chain ID | USDC Contract |
|
|
191
|
-
|---------|----------|---------------|
|
|
192
|
-
| Ethereum Sepolia | ETH-SEPOLIA | Circle managed |
|
|
193
|
-
| Polygon Amoy | MATIC-AMOY | Circle managed |
|
|
194
|
-
| Avalanche Fuji | AVAX-FUJI | Circle managed |
|
|
195
|
-
| Arbitrum Sepolia | ARB-SEPOLIA | Circle managed |
|
|
196
|
-
|
|
197
|
-
## API Overview
|
|
198
41
|
|
|
199
|
-
###
|
|
42
|
+
### Anvil
|
|
200
43
|
|
|
201
|
-
```
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
const client = new CircleClient({
|
|
205
|
-
apiKey: process.env.CIRCLE_API_KEY!,
|
|
206
|
-
entitySecret: process.env.CIRCLE_ENTITY_SECRET!,
|
|
207
|
-
});
|
|
208
|
-
|
|
209
|
-
// Get balances
|
|
210
|
-
const balances = await client.getAllUSDCBalances();
|
|
211
|
-
|
|
212
|
-
// Send USDC
|
|
213
|
-
const tx = await client.sendUSDC({
|
|
214
|
-
fromWalletId: 'wallet-id',
|
|
215
|
-
toAddress: '0x...',
|
|
216
|
-
amount: '100',
|
|
217
|
-
});
|
|
218
|
-
|
|
219
|
-
// Bridge via CCTP
|
|
220
|
-
const bridge = await client.bridgeUSDC({
|
|
221
|
-
fromWalletId: 'wallet-id',
|
|
222
|
-
toAddress: '0x...',
|
|
223
|
-
fromChain: 'ETH-SEPOLIA',
|
|
224
|
-
toChain: 'AVAX-FUJI',
|
|
225
|
-
amount: '50',
|
|
226
|
-
});
|
|
44
|
+
```shell
|
|
45
|
+
$ anvil
|
|
227
46
|
```
|
|
228
47
|
|
|
229
|
-
###
|
|
48
|
+
### Deploy
|
|
230
49
|
|
|
231
|
-
```
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
const invoices = new InvoiceManager();
|
|
235
|
-
|
|
236
|
-
// Create invoice
|
|
237
|
-
const invoice = await invoices.create({
|
|
238
|
-
from: { name: 'My Business', walletAddress: '0x...' },
|
|
239
|
-
to: { name: 'Client Corp', email: 'billing@client.com' },
|
|
240
|
-
items: [
|
|
241
|
-
{ description: 'Web Development', quantity: 1, unitPrice: '500' },
|
|
242
|
-
{ description: 'Hosting (monthly)', quantity: 3, unitPrice: '50' },
|
|
243
|
-
],
|
|
244
|
-
taxRate: 8.25,
|
|
245
|
-
dueDate: '2026-03-01',
|
|
246
|
-
});
|
|
247
|
-
|
|
248
|
-
// Track payments
|
|
249
|
-
await invoices.markPaid(invoice.id, '0xtxhash...');
|
|
50
|
+
```shell
|
|
51
|
+
$ forge script script/Counter.s.sol:CounterScript --rpc-url <your_rpc_url> --private-key <your_private_key>
|
|
250
52
|
```
|
|
251
53
|
|
|
252
|
-
###
|
|
253
|
-
|
|
254
|
-
```typescript
|
|
255
|
-
import { ContactManager } from './lib/contacts';
|
|
54
|
+
### Cast
|
|
256
55
|
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
// Add contact
|
|
260
|
-
await contacts.add({
|
|
261
|
-
name: 'Alice Smith',
|
|
262
|
-
alias: 'alice',
|
|
263
|
-
addresses: [
|
|
264
|
-
{ chain: 'ETH-SEPOLIA', address: '0x...' },
|
|
265
|
-
{ chain: 'AVAX-FUJI', address: '0x...' },
|
|
266
|
-
],
|
|
267
|
-
tags: ['vendor', 'priority'],
|
|
268
|
-
});
|
|
269
|
-
|
|
270
|
-
// Resolve recipient (by name or address)
|
|
271
|
-
const recipient = await contacts.resolveRecipient('alice', 'ETH-SEPOLIA');
|
|
272
|
-
```
|
|
273
|
-
|
|
274
|
-
### ApprovalManager
|
|
275
|
-
|
|
276
|
-
```typescript
|
|
277
|
-
import { ApprovalManager } from './lib/approvals';
|
|
278
|
-
|
|
279
|
-
const approvals = new ApprovalManager();
|
|
280
|
-
|
|
281
|
-
// Create policy
|
|
282
|
-
await approvals.createPolicy({
|
|
283
|
-
name: 'Large Transactions',
|
|
284
|
-
conditions: { minAmount: '1000' },
|
|
285
|
-
approvers: ['owner-session-id'],
|
|
286
|
-
requiredApprovals: 1,
|
|
287
|
-
});
|
|
288
|
-
|
|
289
|
-
// Submit for approval
|
|
290
|
-
const pending = await approvals.submitForApproval({
|
|
291
|
-
type: 'send',
|
|
292
|
-
fromWalletId: '...',
|
|
293
|
-
toAddress: '0x...',
|
|
294
|
-
amount: '5000',
|
|
295
|
-
chain: 'ETH-SEPOLIA',
|
|
296
|
-
requestedBy: 'agent',
|
|
297
|
-
});
|
|
298
|
-
|
|
299
|
-
// Approve
|
|
300
|
-
await approvals.decide(pending.id, 'owner-session-id', 'approve');
|
|
301
|
-
```
|
|
302
|
-
|
|
303
|
-
### x402Client
|
|
304
|
-
|
|
305
|
-
```typescript
|
|
306
|
-
import { X402Client } from './lib/x402-client';
|
|
307
|
-
|
|
308
|
-
const x402 = new X402Client({
|
|
309
|
-
circleClient,
|
|
310
|
-
walletId: 'your-wallet-id',
|
|
311
|
-
chain: 'ETH-SEPOLIA',
|
|
312
|
-
});
|
|
313
|
-
|
|
314
|
-
// Make a paid API call (auto-handles 402 responses)
|
|
315
|
-
const response = await x402.fetch('https://api.example.com/premium-data', {
|
|
316
|
-
method: 'GET',
|
|
317
|
-
maxPayment: '1.00', // Max USDC willing to pay
|
|
318
|
-
});
|
|
319
|
-
|
|
320
|
-
// Check payment history
|
|
321
|
-
const receipts = x402.getPaymentReceipts();
|
|
322
|
-
```
|
|
323
|
-
|
|
324
|
-
### ERC8004Client (Trustless Agents)
|
|
325
|
-
|
|
326
|
-
```typescript
|
|
327
|
-
import { createERC8004Client } from './lib/erc8004';
|
|
328
|
-
|
|
329
|
-
const erc8004 = createERC8004Client('BASE-SEPOLIA', privateKey, {
|
|
330
|
-
paymentAddress: '0x...',
|
|
331
|
-
x402Endpoint: 'https://my-agent.com/x402',
|
|
332
|
-
});
|
|
333
|
-
|
|
334
|
-
// Register your agent
|
|
335
|
-
const agentId = await erc8004.registerAgent({
|
|
336
|
-
name: 'My Pay Lobster',
|
|
337
|
-
description: 'AI agent accepting USDC payments',
|
|
338
|
-
capabilities: ['payments', 'escrow', 'invoicing'],
|
|
339
|
-
});
|
|
340
|
-
|
|
341
|
-
// Verify another agent before paying
|
|
342
|
-
const verification = await erc8004.verifyAgent(targetAgentId);
|
|
343
|
-
if (verification.verified && verification.recommendation === 'safe') {
|
|
344
|
-
// Proceed with payment
|
|
345
|
-
}
|
|
346
|
-
|
|
347
|
-
// Check payment safety
|
|
348
|
-
const safety = await erc8004.isPaymentSafe(targetAgentId, 500);
|
|
349
|
-
// => { safe: true, maxRecommendedAmount: 1000, trustScore: 82 }
|
|
350
|
-
|
|
351
|
-
// Post feedback after transaction
|
|
352
|
-
await erc8004.postPaymentSuccess(targetAgentId, txHash, '100');
|
|
56
|
+
```shell
|
|
57
|
+
$ cast <subcommand>
|
|
353
58
|
```
|
|
354
59
|
|
|
355
|
-
###
|
|
356
|
-
|
|
357
|
-
```typescript
|
|
358
|
-
import { EscrowManager } from './lib/escrow';
|
|
359
|
-
import { EscrowTemplates } from './lib/escrow-templates';
|
|
60
|
+
### Help
|
|
360
61
|
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
EscrowTemplates.freelance.milestone({
|
|
366
|
-
client: '0xClient...',
|
|
367
|
-
freelancer: '0xFreelancer...',
|
|
368
|
-
milestones: [
|
|
369
|
-
{ name: 'Design', amount: '500' },
|
|
370
|
-
{ name: 'Development', amount: '1500' },
|
|
371
|
-
{ name: 'Launch', amount: '500' },
|
|
372
|
-
],
|
|
373
|
-
})
|
|
374
|
-
);
|
|
375
|
-
|
|
376
|
-
// Or build custom conditions
|
|
377
|
-
import { ConditionBuilder } from './lib/condition-builder';
|
|
378
|
-
|
|
379
|
-
const conditions = new ConditionBuilder()
|
|
380
|
-
.requireSignatures(['buyer', 'seller'])
|
|
381
|
-
.requireDocument('inspection_report')
|
|
382
|
-
.addTimelock(7 * 24 * 60 * 60 * 1000) // 7 days
|
|
383
|
-
.build();
|
|
384
|
-
|
|
385
|
-
const customEscrow = await escrow.create({
|
|
386
|
-
buyer: '0x...',
|
|
387
|
-
seller: '0x...',
|
|
388
|
-
amount: '10000',
|
|
389
|
-
conditions,
|
|
390
|
-
});
|
|
62
|
+
```shell
|
|
63
|
+
$ forge --help
|
|
64
|
+
$ anvil --help
|
|
65
|
+
$ cast --help
|
|
391
66
|
```
|
|
392
|
-
|
|
393
|
-
## Testnet Faucets
|
|
394
|
-
|
|
395
|
-
Get testnet USDC:
|
|
396
|
-
- **Circle Faucet**: https://faucet.circle.com/
|
|
397
|
-
- **Sepolia ETH**: https://sepoliafaucet.com/
|
|
398
|
-
|
|
399
|
-
## License
|
|
400
|
-
|
|
401
|
-
MIT - Built with ❤️ for Circle USDC Hackathon 2026
|
package/bin/cli.js
ADDED
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
/**
|
|
3
|
+
* Pay Lobster CLI 🦞
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
const { execSync } = require('child_process');
|
|
7
|
+
const path = require('path');
|
|
8
|
+
|
|
9
|
+
const args = process.argv.slice(2);
|
|
10
|
+
const command = args[0];
|
|
11
|
+
|
|
12
|
+
const WALLET = '0xf775f0224A680E2915a066e53A389d0335318b7B';
|
|
13
|
+
const USDC = '0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913';
|
|
14
|
+
const RPC = 'https://mainnet.base.org';
|
|
15
|
+
|
|
16
|
+
async function getBalance(address) {
|
|
17
|
+
const addr = address || WALLET;
|
|
18
|
+
const data = '0x70a08231' + addr.slice(2).padStart(64, '0');
|
|
19
|
+
|
|
20
|
+
const response = await fetch(RPC, {
|
|
21
|
+
method: 'POST',
|
|
22
|
+
headers: { 'Content-Type': 'application/json' },
|
|
23
|
+
body: JSON.stringify({
|
|
24
|
+
jsonrpc: '2.0',
|
|
25
|
+
id: 1,
|
|
26
|
+
method: 'eth_call',
|
|
27
|
+
params: [{ to: USDC, data }, 'latest']
|
|
28
|
+
})
|
|
29
|
+
});
|
|
30
|
+
|
|
31
|
+
const result = await response.json();
|
|
32
|
+
const balance = parseInt(result.result || '0', 16) / 1e6;
|
|
33
|
+
return balance.toFixed(2);
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
async function main() {
|
|
37
|
+
console.log('🦞 Pay Lobster CLI\n');
|
|
38
|
+
|
|
39
|
+
switch (command) {
|
|
40
|
+
case 'balance':
|
|
41
|
+
const address = args[1] || WALLET;
|
|
42
|
+
console.log(`Checking balance for ${address}...`);
|
|
43
|
+
const balance = await getBalance(address);
|
|
44
|
+
console.log(`\n💰 USDC Balance: $${balance}`);
|
|
45
|
+
console.log(`Network: Base Mainnet`);
|
|
46
|
+
break;
|
|
47
|
+
|
|
48
|
+
case 'update':
|
|
49
|
+
console.log('Checking for updates...\n');
|
|
50
|
+
try {
|
|
51
|
+
const current = require('../package.json').version;
|
|
52
|
+
console.log(`Current version: ${current}`);
|
|
53
|
+
|
|
54
|
+
const latest = execSync('npm view pay-lobster version', { encoding: 'utf8' }).trim();
|
|
55
|
+
console.log(`Latest version: ${latest}`);
|
|
56
|
+
|
|
57
|
+
if (current === latest) {
|
|
58
|
+
console.log('\n✅ Already up to date!');
|
|
59
|
+
} else {
|
|
60
|
+
console.log('\n📦 Updating...');
|
|
61
|
+
execSync('npm update pay-lobster -g', { stdio: 'inherit' });
|
|
62
|
+
console.log('\n✅ Updated to v' + latest);
|
|
63
|
+
}
|
|
64
|
+
} catch (e) {
|
|
65
|
+
console.error('Update check failed:', e.message);
|
|
66
|
+
}
|
|
67
|
+
break;
|
|
68
|
+
|
|
69
|
+
case 'version':
|
|
70
|
+
case '-v':
|
|
71
|
+
case '--version':
|
|
72
|
+
const pkg = require('../package.json');
|
|
73
|
+
console.log(`v${pkg.version}`);
|
|
74
|
+
break;
|
|
75
|
+
|
|
76
|
+
case 'help':
|
|
77
|
+
case '-h':
|
|
78
|
+
case '--help':
|
|
79
|
+
default:
|
|
80
|
+
console.log('Usage: pay-lobster <command> [options]\n');
|
|
81
|
+
console.log('Commands:');
|
|
82
|
+
console.log(' balance [address] Check USDC balance');
|
|
83
|
+
console.log(' update Update to latest version');
|
|
84
|
+
console.log(' version Show version');
|
|
85
|
+
console.log(' help Show this help');
|
|
86
|
+
console.log('\nExamples:');
|
|
87
|
+
console.log(' pay-lobster balance');
|
|
88
|
+
console.log(' pay-lobster balance 0x1234...');
|
|
89
|
+
console.log(' pay-lobster update');
|
|
90
|
+
console.log('\nDocs: https://paylobster.com/docs');
|
|
91
|
+
break;
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
main().catch(console.error);
|
package/dist/agent.d.ts
CHANGED
|
@@ -1,10 +1,13 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* LobsterAgent - Main class for Pay Lobster SDK
|
|
3
|
+
* Now with REAL on-chain contracts! 🦞
|
|
3
4
|
*/
|
|
4
5
|
import type { LobsterConfig, Wallet, Transfer, Escrow, TrustScore, Agent, TransferOptions, EscrowOptions, DiscoverOptions, AutonomousConfig } from './types';
|
|
5
6
|
export declare class LobsterAgent {
|
|
6
7
|
private config;
|
|
7
8
|
private wallet?;
|
|
9
|
+
private signer?;
|
|
10
|
+
private provider?;
|
|
8
11
|
private autonomousConfig?;
|
|
9
12
|
constructor(config?: LobsterConfig);
|
|
10
13
|
/**
|
|
@@ -23,12 +26,17 @@ export declare class LobsterAgent {
|
|
|
23
26
|
* Get current USDC balance
|
|
24
27
|
*/
|
|
25
28
|
getBalance(): Promise<string>;
|
|
29
|
+
/**
|
|
30
|
+
* Get ETH balance (needed for gas)
|
|
31
|
+
*/
|
|
32
|
+
getEthBalance(): Promise<string>;
|
|
26
33
|
/**
|
|
27
34
|
* Get deposit address
|
|
28
35
|
*/
|
|
29
36
|
getDepositAddress(): Promise<string>;
|
|
30
37
|
/**
|
|
31
38
|
* Transfer USDC to another address
|
|
39
|
+
* REAL implementation with on-chain signing! 🦞
|
|
32
40
|
*/
|
|
33
41
|
transfer(options: TransferOptions): Promise<Transfer>;
|
|
34
42
|
/**
|
|
@@ -36,31 +44,31 @@ export declare class LobsterAgent {
|
|
|
36
44
|
*/
|
|
37
45
|
send(to: string, amount: number | string): Promise<Transfer>;
|
|
38
46
|
/**
|
|
39
|
-
* Create an escrow
|
|
47
|
+
* Create an escrow - REAL on-chain! 🦞
|
|
40
48
|
*/
|
|
41
49
|
createEscrow(options: EscrowOptions): Promise<Escrow>;
|
|
42
50
|
/**
|
|
43
|
-
* Release escrow funds
|
|
51
|
+
* Release escrow funds - REAL on-chain! 🦞
|
|
44
52
|
*/
|
|
45
53
|
releaseEscrow(escrowId: string, options?: {
|
|
46
54
|
amount?: string;
|
|
47
55
|
}): Promise<void>;
|
|
48
56
|
/**
|
|
49
|
-
* Refund escrow
|
|
57
|
+
* Refund escrow - REAL on-chain! 🦞
|
|
50
58
|
*/
|
|
51
59
|
refundEscrow(escrowId: string): Promise<void>;
|
|
52
60
|
/**
|
|
53
|
-
* Dispute escrow
|
|
61
|
+
* Dispute escrow - REAL on-chain! 🦞
|
|
54
62
|
*/
|
|
55
63
|
disputeEscrow(escrowId: string, options: {
|
|
56
64
|
reason: string;
|
|
57
65
|
}): Promise<void>;
|
|
58
66
|
/**
|
|
59
|
-
* Get trust score for an address
|
|
67
|
+
* Get trust score for an address - REAL on-chain! 🦞
|
|
60
68
|
*/
|
|
61
69
|
getTrustScore(address: string): Promise<TrustScore>;
|
|
62
70
|
/**
|
|
63
|
-
* Rate an agent
|
|
71
|
+
* Rate an agent - REAL on-chain! 🦞
|
|
64
72
|
*/
|
|
65
73
|
rateAgent(options: {
|
|
66
74
|
agent: string;
|
|
@@ -69,11 +77,11 @@ export declare class LobsterAgent {
|
|
|
69
77
|
transactionId?: string;
|
|
70
78
|
}): Promise<void>;
|
|
71
79
|
/**
|
|
72
|
-
* Get agent ratings
|
|
80
|
+
* Get agent ratings - REAL on-chain! 🦞
|
|
73
81
|
*/
|
|
74
82
|
getAgentRatings(address: string): Promise<any[]>;
|
|
75
83
|
/**
|
|
76
|
-
* Register agent in on-chain registry
|
|
84
|
+
* Register agent in on-chain registry - REAL! 🦞
|
|
77
85
|
*/
|
|
78
86
|
registerAgent(options: {
|
|
79
87
|
name: string;
|
|
@@ -82,11 +90,11 @@ export declare class LobsterAgent {
|
|
|
82
90
|
metadata?: Record<string, any>;
|
|
83
91
|
}): Promise<void>;
|
|
84
92
|
/**
|
|
85
|
-
* Discover agents
|
|
93
|
+
* Discover agents - REAL on-chain! 🦞
|
|
86
94
|
*/
|
|
87
95
|
discoverAgents(options: DiscoverOptions): Promise<Agent[]>;
|
|
88
96
|
/**
|
|
89
|
-
* Get agent details
|
|
97
|
+
* Get agent details - REAL on-chain! 🦞
|
|
90
98
|
*/
|
|
91
99
|
getAgent(address: string): Promise<Agent | null>;
|
|
92
100
|
/**
|
|
@@ -121,7 +129,7 @@ export declare class LobsterAgent {
|
|
|
121
129
|
*/
|
|
122
130
|
getTransfer(id: string): Promise<Transfer | null>;
|
|
123
131
|
/**
|
|
124
|
-
* List transfer history
|
|
132
|
+
* List transfer history - queries USDC Transfer events! 🦞
|
|
125
133
|
*/
|
|
126
134
|
listTransfers(options?: {
|
|
127
135
|
limit?: number;
|
package/dist/agent.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../lib/agent.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../lib/agent.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,KAAK,EACV,aAAa,EACb,MAAM,EACN,QAAQ,EACR,MAAM,EACN,UAAU,EACV,KAAK,EACL,eAAe,EACf,aAAa,EACb,eAAe,EACf,gBAAgB,EACjB,MAAM,SAAS,CAAC;AAMjB,qBAAa,YAAY;IACvB,OAAO,CAAC,MAAM,CAAgB;IAC9B,OAAO,CAAC,MAAM,CAAC,CAAS;IACxB,OAAO,CAAC,MAAM,CAAC,CAAgB;IAC/B,OAAO,CAAC,QAAQ,CAAC,CAAyB;IAC1C,OAAO,CAAC,gBAAgB,CAAC,CAAmB;gBAEhC,MAAM,GAAE,aAAkB;IAQtC;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAmBjC;;OAEG;IACG,YAAY,IAAI,OAAO,CAAC,MAAM,CAAC;IAKrC;;OAEG;IACG,SAAS,IAAI,OAAO,CAAC,MAAM,CAAC;IAgBlC;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,MAAM,CAAC;IAuBnC;;OAEG;IACG,aAAa,IAAI,OAAO,CAAC,MAAM,CAAC;IAsBtC;;OAEG;IACG,iBAAiB,IAAI,OAAO,CAAC,MAAM,CAAC;IAI1C;;;OAGG;IACG,QAAQ,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,QAAQ,CAAC;IAqD3D;;OAEG;IACG,IAAI,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC;IAIlE;;OAEG;IACG,YAAY,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC;IA2C3D;;OAEG;IACG,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAUnF;;OAEG;IACG,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAUnD;;OAEG;IACG,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAUjF;;OAEG;IACG,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IAmBzD;;OAEG;IACG,SAAS,CAAC,OAAO,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,aAAa,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAUpH;;OAEG;IACG,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAiBtD;;OAEG;IACG,aAAa,CAAC,OAAO,EAAE;QAC3B,IAAI,EAAE,MAAM,CAAC;QACb,YAAY,EAAE,MAAM,EAAE,CAAC;QACvB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACjC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;KAChC,GAAG,OAAO,CAAC,IAAI,CAAC;IAajB;;OAEG;IACG,cAAc,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC;IAmChE;;OAEG;IACG,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC;IA8BtD;;OAEG;IACH,iBAAiB,CAAC,MAAM,EAAE,gBAAgB,GAAG,IAAI;IAIjD;;OAEG;IACG,SAAS,CAAC,OAAO,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,GAAG,CAAC;IAKzF;;OAEG;IACH,UAAU,CAAC,OAAO,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,EAAE,CAAA;KAAE,GAAG,IAAI;IAI5E;;OAEG;IACG,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,OAAO,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,QAAQ,CAAC;IAW9F;;OAEG;IACG,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC;IAIvD;;OAEG;IACG,aAAa,CAAC,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;CAgD3G"}
|