@etherisc/gif-next 0.0.2-f99f1d2-109 → 0.0.2-fb8d07b-779
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 +268 -7
- package/artifacts/contracts/components/BaseComponent.sol/BaseComponent.dbg.json +4 -0
- package/artifacts/contracts/{instance/component/ComponentModule.sol/ComponentModule.json → components/BaseComponent.sol/BaseComponent.json} +171 -143
- package/artifacts/contracts/components/Distribution.sol/Distribution.dbg.json +4 -0
- package/artifacts/contracts/components/Distribution.sol/Distribution.json +618 -0
- package/artifacts/contracts/components/IBaseComponent.sol/IBaseComponent.dbg.json +4 -0
- package/artifacts/contracts/components/{IPool.sol/IPoolComponent.json → IBaseComponent.sol/IBaseComponent.json} +136 -111
- package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.dbg.json +4 -0
- package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.json +152 -0
- package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +4 -0
- package/artifacts/contracts/{instance/policy/IPolicy.sol/IPolicyModule.json → components/IPoolComponent.sol/IPoolComponent.json} +124 -129
- package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +4 -0
- package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.json +157 -0
- package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +1 -1
- package/artifacts/contracts/components/Pool.sol/Pool.json +531 -77
- package/artifacts/contracts/components/Product.sol/Product.dbg.json +1 -1
- package/artifacts/contracts/components/Product.sol/Product.json +526 -97
- package/artifacts/contracts/experiment/cloning/Cloner.sol/Cloner.dbg.json +4 -0
- package/artifacts/contracts/experiment/cloning/Cloner.sol/Cloner.json +66 -0
- package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock1.dbg.json +4 -0
- package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock1.json +24 -0
- package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock2.dbg.json +4 -0
- package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock2.json +42 -0
- package/artifacts/contracts/experiment/errors/Require.sol/Require.dbg.json +1 -1
- package/artifacts/contracts/experiment/errors/Require.sol/Require.json +2 -2
- package/artifacts/contracts/experiment/errors/Revert.sol/Revert.dbg.json +1 -1
- package/artifacts/contracts/experiment/errors/Revert.sol/Revert.json +2 -2
- package/artifacts/contracts/experiment/inheritance/A.sol/A.dbg.json +1 -1
- package/artifacts/contracts/experiment/inheritance/A.sol/A.json +2 -2
- package/artifacts/contracts/experiment/inheritance/A.sol/AShared.dbg.json +1 -1
- package/artifacts/contracts/experiment/inheritance/A.sol/AShared.json +2 -2
- package/artifacts/contracts/experiment/inheritance/B.sol/B.dbg.json +1 -1
- package/artifacts/contracts/experiment/inheritance/C.sol/C.dbg.json +1 -1
- package/artifacts/contracts/experiment/inheritance/IA.sol/IA.dbg.json +1 -1
- package/artifacts/contracts/experiment/inheritance/IA.sol/ISharedA.dbg.json +1 -1
- package/artifacts/contracts/experiment/inheritance/IB.sol/IB.dbg.json +1 -1
- package/artifacts/contracts/experiment/inheritance/IC.sol/IC.dbg.json +1 -1
- package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.dbg.json +1 -1
- package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.json +2 -2
- package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.dbg.json +1 -1
- package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.dbg.json +1 -1
- package/artifacts/contracts/experiment/statemachine/SM.sol/SM.dbg.json +1 -1
- package/artifacts/contracts/experiment/statemachine/SM.sol/SM.json +2 -2
- package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.dbg.json +1 -1
- package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.json +2 -2
- package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.dbg.json +1 -1
- package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.json +2 -2
- package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.dbg.json +1 -1
- package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.json +2 -2
- package/artifacts/contracts/instance/AccessManagedSimple.sol/AccessManagedSimple.dbg.json +4 -0
- package/artifacts/contracts/instance/AccessManagedSimple.sol/AccessManagedSimple.json +101 -0
- package/artifacts/contracts/instance/AccessManagerSimple.sol/AccessManagerSimple.dbg.json +4 -0
- package/artifacts/contracts/instance/AccessManagerSimple.sol/AccessManagerSimple.json +1132 -0
- package/artifacts/contracts/instance/IAccessManagerSimple.sol/IAccessManagerSimple.dbg.json +4 -0
- package/artifacts/contracts/instance/IAccessManagerSimple.sol/IAccessManagerSimple.json +1082 -0
- package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstance.sol/IInstance.json +386 -1112
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +4 -0
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +480 -0
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +2794 -980
- package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +4 -0
- package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +917 -0
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +4 -0
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +1388 -0
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +4 -0
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +891 -0
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +4 -0
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +492 -0
- package/artifacts/contracts/instance/base/ComponentServiceBase.sol/ComponentServiceBase.dbg.json +4 -0
- package/artifacts/contracts/instance/base/ComponentServiceBase.sol/ComponentServiceBase.json +540 -0
- package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.dbg.json +4 -0
- package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.json +113 -0
- package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +4 -0
- package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.json +429 -0
- package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +4 -0
- package/artifacts/contracts/instance/{lifecycle/ILifecycle.sol/ILifecycleModule.json → base/ILifecycle.sol/ILifecycle.json} +10 -77
- package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +4 -0
- package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +502 -0
- package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +4 -0
- package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +169 -0
- package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +4 -0
- package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +211 -0
- package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +4 -0
- package/artifacts/contracts/instance/{access/IAccess.sol/IAccess.json → module/IBundle.sol/IBundle.json} +2 -2
- package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +4 -0
- package/artifacts/contracts/instance/{component/IComponent.sol/IComponent.json → module/IDistribution.sol/IDistribution.json} +2 -2
- package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +4 -0
- package/artifacts/contracts/instance/{policy → module}/IPolicy.sol/IPolicy.json +1 -1
- package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +4 -0
- package/artifacts/contracts/instance/{pool/IPoolModule.sol/IPool.json → module/IRisk.sol/IRisk.json} +2 -2
- package/artifacts/contracts/instance/module/ISetup.sol/ISetup.dbg.json +4 -0
- package/artifacts/contracts/instance/module/ISetup.sol/ISetup.json +10 -0
- package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.dbg.json +4 -0
- package/artifacts/contracts/instance/{treasury → module}/ITreasury.sol/ITreasury.json +1 -1
- package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.dbg.json +4 -0
- package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.json +827 -0
- package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +4 -0
- package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +716 -0
- package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +4 -0
- package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.json +448 -0
- package/artifacts/contracts/instance/service/IComponentOwnerService.sol/IComponentOwnerService.dbg.json +4 -0
- package/artifacts/contracts/instance/service/IComponentOwnerService.sol/IComponentOwnerService.json +466 -0
- package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.dbg.json +4 -0
- package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.json +446 -0
- package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +4 -0
- package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.json +561 -0
- package/artifacts/contracts/instance/service/IProductService.sol/IProductService.dbg.json +4 -0
- package/artifacts/contracts/instance/service/IProductService.sol/IProductService.json +751 -0
- package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +4 -0
- package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +855 -0
- package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.dbg.json +4 -0
- package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.json +460 -0
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +239 -2
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +589 -24
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +4 -0
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +853 -0
- package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +4 -0
- package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +34 -0
- package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
- package/artifacts/contracts/registry/Registry.sol/Registry.json +741 -50
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +4 -0
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +1237 -0
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +4 -0
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +525 -0
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +4 -0
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +410 -0
- package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.dbg.json +4 -0
- package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.json +107 -0
- package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +4 -0
- package/artifacts/contracts/shared/ERC165.sol/ERC165.json +35 -0
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +4 -0
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +127 -0
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +4 -0
- package/artifacts/contracts/{components/Component.sol/Component.json → shared/IRegisterable.sol/IRegisterable.json} +98 -102
- package/artifacts/contracts/shared/IService.sol/IService.dbg.json +4 -0
- package/artifacts/contracts/shared/IService.sol/IService.json +421 -0
- package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +4 -0
- package/artifacts/contracts/shared/IVersionable.sol/IVersionable.json +205 -0
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +4 -0
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +158 -0
- package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +4 -0
- package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +349 -0
- package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +4 -0
- package/artifacts/contracts/shared/Registerable.sol/Registerable.json +274 -0
- package/artifacts/contracts/shared/RegisterableUpgradable.sol/RegisterableUpgradable.dbg.json +4 -0
- package/artifacts/contracts/shared/RegisterableUpgradable.sol/RegisterableUpgradable.json +442 -0
- package/artifacts/contracts/shared/Service.sol/Service.dbg.json +4 -0
- package/artifacts/contracts/shared/Service.sol/Service.json +468 -0
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +4 -0
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +96 -0
- package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
- package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +129 -0
- package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +4 -0
- package/artifacts/contracts/shared/Versionable.sol/Versionable.json +228 -0
- package/artifacts/contracts/test/TestFee.sol/TestFee.dbg.json +4 -0
- package/artifacts/contracts/test/TestFee.sol/TestFee.json +119 -0
- package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.dbg.json +4 -0
- package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.json +305 -0
- package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.dbg.json +4 -0
- package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.json +116 -0
- package/artifacts/contracts/test/TestService.sol/TestService.dbg.json +4 -0
- package/artifacts/contracts/test/TestService.sol/TestService.json +600 -0
- package/artifacts/contracts/test/TestToken.sol/TestUsdc.dbg.json +4 -0
- package/artifacts/contracts/test/TestToken.sol/TestUsdc.json +376 -0
- package/artifacts/contracts/test/TestVersion.sol/TestVersion.dbg.json +4 -0
- package/artifacts/contracts/test/TestVersion.sol/TestVersion.json +218 -0
- package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.dbg.json +4 -0
- package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.json +286 -0
- package/artifacts/contracts/test/Usdc.sol/USDC.dbg.json +4 -0
- package/artifacts/contracts/test/Usdc.sol/USDC.json +376 -0
- package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.dbg.json +4 -0
- package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.json +10 -0
- package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
- package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.json +2 -2
- package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +1 -1
- package/artifacts/contracts/types/ChainId.sol/ChainIdLib.json +2 -2
- package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.dbg.json +4 -0
- package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.json +104 -0
- package/artifacts/contracts/types/Fee.sol/FeeLib.dbg.json +4 -0
- package/artifacts/contracts/types/Fee.sol/FeeLib.json +257 -0
- package/artifacts/contracts/types/Key32.sol/Key32Lib.dbg.json +4 -0
- package/artifacts/contracts/types/Key32.sol/Key32Lib.json +125 -0
- package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +1 -1
- package/artifacts/contracts/types/NftId.sol/NftIdLib.json +65 -4
- package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.dbg.json +4 -0
- package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.json +10 -0
- package/artifacts/contracts/types/NumberId.sol/NumberIdLib.dbg.json +4 -0
- package/artifacts/contracts/types/NumberId.sol/NumberIdLib.json +100 -0
- package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
- package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.json +2 -2
- package/artifacts/contracts/types/Referral.sol/ReferralLib.dbg.json +4 -0
- package/artifacts/contracts/types/Referral.sol/ReferralLib.json +123 -0
- package/artifacts/contracts/types/RiskId.sol/RiskIdLib.dbg.json +4 -0
- package/artifacts/contracts/types/RiskId.sol/RiskIdLib.json +86 -0
- package/artifacts/contracts/types/RoleId.sol/RoleIdLib.dbg.json +4 -0
- package/artifacts/contracts/types/RoleId.sol/RoleIdLib.json +156 -0
- package/artifacts/contracts/types/StateId.sol/StateIdLib.dbg.json +1 -1
- package/artifacts/contracts/types/StateId.sol/StateIdLib.json +2 -2
- package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +1 -1
- package/artifacts/contracts/types/Timestamp.sol/TimestampLib.json +77 -2
- package/artifacts/contracts/types/UFixed.sol/MathLib.dbg.json +4 -0
- package/artifacts/contracts/types/UFixed.sol/MathLib.json +10 -0
- package/artifacts/contracts/types/UFixed.sol/UFixedLib.dbg.json +4 -0
- package/artifacts/contracts/types/UFixed.sol/UFixedLib.json +479 -0
- package/artifacts/contracts/types/Version.sol/VersionLib.dbg.json +4 -0
- package/artifacts/contracts/types/Version.sol/VersionLib.json +177 -0
- package/artifacts/contracts/types/Version.sol/VersionPartLib.dbg.json +4 -0
- package/artifacts/contracts/types/Version.sol/VersionPartLib.json +49 -0
- package/contracts/components/BaseComponent.sol +91 -0
- package/contracts/components/Distribution.sol +160 -0
- package/contracts/components/IBaseComponent.sol +25 -0
- package/contracts/components/IDistributionComponent.sol +44 -0
- package/contracts/components/IPoolComponent.sol +62 -0
- package/contracts/components/IProductComponent.sol +35 -0
- package/contracts/components/Pool.sol +216 -25
- package/contracts/components/Product.sol +254 -46
- package/contracts/experiment/cloning/Cloner.sol +47 -0
- package/contracts/instance/AccessManagedSimple.sol +115 -0
- package/contracts/instance/AccessManagerSimple.sol +692 -0
- package/contracts/instance/IAccessManagerSimple.sol +391 -0
- package/contracts/instance/IInstance.sol +38 -24
- package/contracts/instance/IInstanceService.sol +30 -0
- package/contracts/instance/Instance.sol +423 -52
- package/contracts/instance/InstanceAccessManager.sol +288 -0
- package/contracts/instance/InstanceReader.sol +306 -0
- package/contracts/instance/InstanceService.sol +182 -0
- package/contracts/instance/InstanceServiceManager.sol +56 -0
- package/contracts/instance/base/ComponentServiceBase.sol +125 -0
- package/contracts/instance/base/IInstanceBase.sol +23 -0
- package/contracts/instance/base/IKeyValueStore.sol +49 -0
- package/contracts/instance/base/ILifecycle.sol +30 -0
- package/contracts/instance/base/KeyValueStore.sol +172 -0
- package/contracts/instance/base/Lifecycle.sol +100 -0
- package/contracts/instance/module/IAccess.sol +38 -0
- package/contracts/instance/module/IBundle.sol +20 -0
- package/contracts/instance/module/IDistribution.sol +39 -0
- package/contracts/instance/module/IPolicy.sol +45 -0
- package/contracts/instance/module/IRisk.sol +11 -0
- package/contracts/instance/module/ISetup.sol +44 -0
- package/contracts/instance/module/ITreasury.sol +23 -0
- package/contracts/instance/service/ComponentOwnerService.sol +317 -0
- package/contracts/instance/service/DistributionService.sol +87 -0
- package/contracts/instance/service/DistributionServiceManager.sol +53 -0
- package/contracts/instance/service/IComponentOwnerService.sol +20 -0
- package/contracts/instance/service/IDistributionService.sol +12 -0
- package/contracts/instance/service/IPoolService.sol +37 -0
- package/contracts/instance/service/IProductService.sol +107 -0
- package/contracts/instance/service/PoolService.sol +193 -0
- package/contracts/instance/service/PoolServiceManager.sol +53 -0
- package/contracts/registry/ChainNft.sol +129 -62
- package/contracts/registry/IRegistry.sol +70 -43
- package/contracts/registry/IRegistryService.sol +33 -0
- package/contracts/registry/ITransferInterceptor.sol +6 -0
- package/contracts/registry/Registry.sol +432 -125
- package/contracts/registry/RegistryService.sol +399 -0
- package/contracts/registry/RegistryServiceManager.sol +80 -0
- package/contracts/registry/TokenRegistry.sol +111 -0
- package/contracts/shared/ContractDeployerLib.sol +72 -0
- package/contracts/shared/ERC165.sol +25 -0
- package/contracts/shared/INftOwnable.sol +22 -0
- package/contracts/shared/IRegisterable.sol +17 -0
- package/contracts/shared/IService.sol +15 -0
- package/contracts/shared/IVersionable.sol +96 -0
- package/contracts/shared/NftOwnable.sol +136 -0
- package/contracts/shared/ProxyManager.sol +94 -0
- package/contracts/shared/Registerable.sol +90 -0
- package/contracts/shared/RegisterableUpgradable.sol +16 -0
- package/contracts/shared/Service.sol +55 -0
- package/contracts/shared/TokenHandler.sol +27 -0
- package/contracts/shared/UpgradableProxyWithAdmin.sol +16 -0
- package/contracts/shared/Versionable.sol +147 -0
- package/contracts/test/TestFee.sol +25 -0
- package/contracts/test/TestRegisterable.sol +18 -0
- package/contracts/test/TestRoleId.sol +14 -0
- package/contracts/test/TestService.sol +24 -0
- package/contracts/test/TestToken.sol +26 -0
- package/contracts/test/TestVersion.sol +44 -0
- package/contracts/test/TestVersionable.sol +17 -0
- package/contracts/test/Usdc.sol +26 -0
- package/contracts/types/AddressSet.sol +58 -0
- package/contracts/types/DistributorType.sol +55 -0
- package/contracts/types/Fee.sol +44 -20
- package/contracts/types/Key32.sol +50 -0
- package/contracts/types/NftId.sol +22 -1
- package/contracts/types/NftIdSet.sol +60 -0
- package/contracts/types/NumberId.sol +52 -0
- package/contracts/types/ObjectType.sol +60 -15
- package/contracts/types/Referral.sol +85 -0
- package/contracts/types/RiskId.sol +43 -0
- package/contracts/types/RoleId.sol +89 -0
- package/contracts/types/StateId.sol +18 -4
- package/contracts/types/Timestamp.sol +29 -4
- package/contracts/types/UFixed.sol +150 -31
- package/contracts/types/Version.sol +107 -0
- package/package.json +12 -5
- package/artifacts/contracts/components/Component.sol/Component.dbg.json +0 -4
- package/artifacts/contracts/components/Component.sol/InstanceLinked.dbg.json +0 -4
- package/artifacts/contracts/components/Component.sol/InstanceLinked.json +0 -35
- package/artifacts/contracts/components/IPool.sol/IPoolComponent.dbg.json +0 -4
- package/artifacts/contracts/components/IProduct.sol/IProductComponent.dbg.json +0 -4
- package/artifacts/contracts/components/IProduct.sol/IProductComponent.json +0 -74
- package/artifacts/contracts/instance/access/Access.sol/AccessModule.dbg.json +0 -4
- package/artifacts/contracts/instance/access/Access.sol/AccessModule.json +0 -400
- package/artifacts/contracts/instance/access/IAccess.sol/IAccess.dbg.json +0 -4
- package/artifacts/contracts/instance/access/IAccess.sol/IAccessCheckRole.dbg.json +0 -4
- package/artifacts/contracts/instance/access/IAccess.sol/IAccessCheckRole.json +0 -35
- package/artifacts/contracts/instance/access/IAccess.sol/IAccessComponentTypeRoles.dbg.json +0 -4
- package/artifacts/contracts/instance/access/IAccess.sol/IAccessComponentTypeRoles.json +0 -50
- package/artifacts/contracts/instance/access/IAccess.sol/IAccessModule.dbg.json +0 -4
- package/artifacts/contracts/instance/access/IAccess.sol/IAccessModule.json +0 -336
- package/artifacts/contracts/instance/component/ComponentModule.sol/ComponentModule.dbg.json +0 -4
- package/artifacts/contracts/instance/component/ComponentModule.sol/ComponentOwnerService.dbg.json +0 -4
- package/artifacts/contracts/instance/component/ComponentModule.sol/ComponentOwnerService.json +0 -202
- package/artifacts/contracts/instance/component/IComponent.sol/IComponent.dbg.json +0 -4
- package/artifacts/contracts/instance/component/IComponent.sol/IComponentContract.dbg.json +0 -4
- package/artifacts/contracts/instance/component/IComponent.sol/IComponentContract.json +0 -205
- package/artifacts/contracts/instance/component/IComponent.sol/IComponentModule.dbg.json +0 -4
- package/artifacts/contracts/instance/component/IComponent.sol/IComponentModule.json +0 -217
- package/artifacts/contracts/instance/component/IComponent.sol/IComponentOwnerService.dbg.json +0 -4
- package/artifacts/contracts/instance/component/IComponent.sol/IComponentOwnerService.json +0 -141
- package/artifacts/contracts/instance/component/IComponent.sol/IInstanceLinked.dbg.json +0 -4
- package/artifacts/contracts/instance/component/IComponent.sol/IInstanceLinked.json +0 -24
- package/artifacts/contracts/instance/lifecycle/ILifecycle.sol/ILifecycle.dbg.json +0 -4
- package/artifacts/contracts/instance/lifecycle/ILifecycle.sol/ILifecycle.json +0 -134
- package/artifacts/contracts/instance/lifecycle/ILifecycle.sol/ILifecycleModule.dbg.json +0 -4
- package/artifacts/contracts/instance/lifecycle/LifecycleModule.sol/LifecycleModule.dbg.json +0 -4
- package/artifacts/contracts/instance/lifecycle/LifecycleModule.sol/LifecycleModule.json +0 -221
- package/artifacts/contracts/instance/policy/IPolicy.sol/IPolicy.dbg.json +0 -4
- package/artifacts/contracts/instance/policy/IPolicy.sol/IPolicyModule.dbg.json +0 -4
- package/artifacts/contracts/instance/policy/PolicyModule.sol/PolicyModule.dbg.json +0 -4
- package/artifacts/contracts/instance/policy/PolicyModule.sol/PolicyModule.json +0 -254
- package/artifacts/contracts/instance/pool/IPoolModule.sol/IPool.dbg.json +0 -4
- package/artifacts/contracts/instance/pool/IPoolModule.sol/IPoolModule.dbg.json +0 -4
- package/artifacts/contracts/instance/pool/IPoolModule.sol/IPoolModule.json +0 -129
- package/artifacts/contracts/instance/pool/PoolModule.sol/PoolModule.dbg.json +0 -4
- package/artifacts/contracts/instance/pool/PoolModule.sol/PoolModule.json +0 -155
- package/artifacts/contracts/instance/product/IProductService.sol/IProductModule.dbg.json +0 -4
- package/artifacts/contracts/instance/product/IProductService.sol/IProductModule.json +0 -75
- package/artifacts/contracts/instance/product/IProductService.sol/IProductService.dbg.json +0 -4
- package/artifacts/contracts/instance/product/IProductService.sol/IProductService.json +0 -127
- package/artifacts/contracts/instance/product/ProductService.sol/ProductModule.dbg.json +0 -4
- package/artifacts/contracts/instance/product/ProductService.sol/ProductModule.json +0 -75
- package/artifacts/contracts/instance/product/ProductService.sol/ProductService.dbg.json +0 -4
- package/artifacts/contracts/instance/product/ProductService.sol/ProductService.json +0 -196
- package/artifacts/contracts/instance/treasury/ITreasury.sol/ITreasury.dbg.json +0 -4
- package/artifacts/contracts/instance/treasury/ITreasury.sol/ITreasuryModule.dbg.json +0 -4
- package/artifacts/contracts/instance/treasury/ITreasury.sol/ITreasuryModule.json +0 -490
- package/artifacts/contracts/instance/treasury/TokenHandler.sol/TokenHandler.dbg.json +0 -4
- package/artifacts/contracts/instance/treasury/TokenHandler.sol/TokenHandler.json +0 -45
- package/artifacts/contracts/instance/treasury/TreasuryModule.sol/TreasuryModule.dbg.json +0 -4
- package/artifacts/contracts/instance/treasury/TreasuryModule.sol/TreasuryModule.json +0 -490
- package/artifacts/contracts/registry/IChainNft.sol/IChainNft.dbg.json +0 -4
- package/artifacts/contracts/registry/IChainNft.sol/IChainNft.json +0 -452
- package/artifacts/contracts/registry/IRegistry.sol/IOwnable.dbg.json +0 -4
- package/artifacts/contracts/registry/IRegistry.sol/IOwnable.json +0 -24
- package/artifacts/contracts/registry/IRegistry.sol/IRegisterable.dbg.json +0 -4
- package/artifacts/contracts/registry/IRegistry.sol/IRegisterable.json +0 -166
- package/artifacts/contracts/registry/IRegistry.sol/IRegistryLinked.dbg.json +0 -4
- package/artifacts/contracts/registry/IRegistry.sol/IRegistryLinked.json +0 -49
- package/artifacts/contracts/registry/Registry.sol/Registerable.dbg.json +0 -4
- package/artifacts/contracts/registry/Registry.sol/Registerable.json +0 -166
- package/artifacts/contracts/registry/Registry.sol/RegistryLinked.dbg.json +0 -4
- package/artifacts/contracts/registry/Registry.sol/RegistryLinked.json +0 -60
- package/artifacts/contracts/types/UFixed.sol/UFixedMathLib.dbg.json +0 -4
- package/artifacts/contracts/types/UFixed.sol/UFixedMathLib.json +0 -453
- package/contracts/components/Component.sol +0 -77
- package/contracts/components/IPool.sol +0 -15
- package/contracts/components/IProduct.sol +0 -16
- package/contracts/experiment/statemachine/README.md +0 -112
- package/contracts/instance/access/Access.sol +0 -165
- package/contracts/instance/access/IAccess.sol +0 -63
- package/contracts/instance/component/ComponentModule.sol +0 -274
- package/contracts/instance/component/IComponent.sol +0 -74
- package/contracts/instance/lifecycle/ILifecycle.sol +0 -47
- package/contracts/instance/lifecycle/LifecycleModule.sol +0 -88
- package/contracts/instance/policy/IPolicy.sol +0 -50
- package/contracts/instance/policy/PolicyModule.sol +0 -114
- package/contracts/instance/pool/IPoolModule.sol +0 -23
- package/contracts/instance/pool/PoolModule.sol +0 -81
- package/contracts/instance/product/IProductService.sol +0 -36
- package/contracts/instance/product/ProductService.sol +0 -136
- package/contracts/instance/treasury/ITreasury.sol +0 -91
- package/contracts/instance/treasury/TokenHandler.sol +0 -24
- package/contracts/instance/treasury/TreasuryModule.sol +0 -168
- package/contracts/registry/IChainNft.sol +0 -21
@@ -0,0 +1,60 @@
|
|
1
|
+
// SPDX-License-Identifier: Apache-2.0
|
2
|
+
pragma solidity ^0.8.19;
|
3
|
+
|
4
|
+
import {NftId} from "../types/NftId.sol";
|
5
|
+
|
6
|
+
// based on https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/utils/structs/EnumerableSet.sol
|
7
|
+
library LibNftIdSet {
|
8
|
+
|
9
|
+
struct Set {
|
10
|
+
NftId[] ids;
|
11
|
+
mapping(NftId nftid => uint256 index) at;
|
12
|
+
}
|
13
|
+
|
14
|
+
function add(Set storage set, NftId nftId) external returns(bool added) {
|
15
|
+
if (set.at[nftId] == 0) {
|
16
|
+
set.ids.push(nftId);
|
17
|
+
set.at[nftId] = set.ids.length;
|
18
|
+
return true;
|
19
|
+
} else {
|
20
|
+
return false;
|
21
|
+
}
|
22
|
+
}
|
23
|
+
|
24
|
+
function remove(Set storage set, NftId nftId) external returns(bool removed) {
|
25
|
+
uint256 nftIdIndex = set.at[nftId];
|
26
|
+
|
27
|
+
if (nftIdIndex > 0) {
|
28
|
+
uint256 toDeleteIndex = nftIdIndex - 1;
|
29
|
+
uint256 lastIndex = set.ids.length - 1;
|
30
|
+
|
31
|
+
if (lastIndex != toDeleteIndex) {
|
32
|
+
NftId lastId = set.ids[lastIndex];
|
33
|
+
set.ids[toDeleteIndex] = lastId;
|
34
|
+
set.at[lastId] = nftIdIndex; // Replace lastValue's index to valueIndex
|
35
|
+
}
|
36
|
+
|
37
|
+
set.ids.pop();
|
38
|
+
delete set.at[nftId];
|
39
|
+
return true;
|
40
|
+
} else {
|
41
|
+
return false;
|
42
|
+
}
|
43
|
+
}
|
44
|
+
|
45
|
+
function isEmpty(Set storage set) external view returns(bool empty) {
|
46
|
+
return set.ids.length == 0;
|
47
|
+
}
|
48
|
+
|
49
|
+
function contains(Set storage set, NftId nftId) external view returns(bool inSet) {
|
50
|
+
return set.at[nftId] > 0;
|
51
|
+
}
|
52
|
+
|
53
|
+
function getLength(Set storage set) external view returns(uint256 length) {
|
54
|
+
return set.ids.length;
|
55
|
+
}
|
56
|
+
|
57
|
+
function getElementAt(Set storage set, uint256 index) external view returns(NftId nftId) {
|
58
|
+
return set.ids[index];
|
59
|
+
}
|
60
|
+
}
|
@@ -0,0 +1,52 @@
|
|
1
|
+
// SPDX-License-Identifier: Apache-2.0
|
2
|
+
pragma solidity ^0.8.20;
|
3
|
+
|
4
|
+
// uint32 allows for 4'294'967'296 individual items
|
5
|
+
type NumberId is uint32;
|
6
|
+
|
7
|
+
// type bindings
|
8
|
+
using {
|
9
|
+
eqNumberId as ==,
|
10
|
+
neNumberId as !=,
|
11
|
+
NumberIdLib.eqz,
|
12
|
+
NumberIdLib.gtz,
|
13
|
+
NumberIdLib.toInt
|
14
|
+
} for NumberId global;
|
15
|
+
|
16
|
+
|
17
|
+
// pure free functions for operators
|
18
|
+
function eqNumberId(NumberId a, NumberId b) pure returns (bool isSame) {
|
19
|
+
return NumberId.unwrap(a) == NumberId.unwrap(b);
|
20
|
+
}
|
21
|
+
|
22
|
+
function neNumberId(NumberId a, NumberId b) pure returns (bool isDifferent) {
|
23
|
+
return NumberId.unwrap(a) != NumberId.unwrap(b);
|
24
|
+
}
|
25
|
+
|
26
|
+
// library functions that operate on user defined type
|
27
|
+
library NumberIdLib {
|
28
|
+
/// @dev Converts the NumberId to a uint.
|
29
|
+
function zero() public pure returns (NumberId) {
|
30
|
+
return NumberId.wrap(0);
|
31
|
+
}
|
32
|
+
|
33
|
+
/// @dev Converts an uint into a NumberId.
|
34
|
+
function toNumberId(uint256 a) public pure returns (NumberId) {
|
35
|
+
return NumberId.wrap(uint32(a));
|
36
|
+
}
|
37
|
+
|
38
|
+
/// @dev Converts the NumberId to a uint.
|
39
|
+
function toInt(NumberId a) public pure returns (uint32) {
|
40
|
+
return uint32(NumberId.unwrap(a));
|
41
|
+
}
|
42
|
+
|
43
|
+
/// @dev Returns true if the value is non-zero (> 0).
|
44
|
+
function gtz(NumberId a) public pure returns (bool) {
|
45
|
+
return NumberId.unwrap(a) > 0;
|
46
|
+
}
|
47
|
+
|
48
|
+
/// @dev Returns true if the value is zero (== 0).
|
49
|
+
function eqz(NumberId a) public pure returns (bool) {
|
50
|
+
return NumberId.unwrap(a) == 0;
|
51
|
+
}
|
52
|
+
}
|
@@ -1,14 +1,14 @@
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
2
|
-
pragma solidity ^0.8.
|
2
|
+
pragma solidity ^0.8.20;
|
3
3
|
|
4
|
-
// uint96 allows for chain ids up to 13 digits
|
5
4
|
type ObjectType is uint8;
|
6
5
|
|
7
6
|
// type bindings
|
8
7
|
using {
|
9
8
|
eqObjectType as ==,
|
10
9
|
neObjectType as !=,
|
11
|
-
ObjectTypeLib.toInt
|
10
|
+
ObjectTypeLib.toInt,
|
11
|
+
ObjectTypeLib.gtz
|
12
12
|
} for ObjectType global;
|
13
13
|
|
14
14
|
// general pure free functions
|
@@ -17,48 +17,93 @@ function PROTOCOL() pure returns (ObjectType) {
|
|
17
17
|
return toObjectType(10);
|
18
18
|
}
|
19
19
|
|
20
|
-
function
|
20
|
+
function ROLE() pure returns (ObjectType) {
|
21
21
|
return toObjectType(20);
|
22
22
|
}
|
23
23
|
|
24
|
-
function
|
24
|
+
function TARGET() pure returns (ObjectType) {
|
25
25
|
return toObjectType(30);
|
26
26
|
}
|
27
27
|
|
28
|
-
function
|
28
|
+
function REGISTRY() pure returns (ObjectType) {
|
29
29
|
return toObjectType(40);
|
30
30
|
}
|
31
31
|
|
32
|
-
function
|
32
|
+
function TOKEN() pure returns (ObjectType) {
|
33
33
|
return toObjectType(50);
|
34
34
|
}
|
35
35
|
|
36
|
-
function
|
36
|
+
function SERVICE() pure returns (ObjectType) {
|
37
37
|
return toObjectType(60);
|
38
38
|
}
|
39
39
|
|
40
|
-
function
|
40
|
+
function INSTANCE() pure returns (ObjectType) {
|
41
41
|
return toObjectType(70);
|
42
42
|
}
|
43
43
|
|
44
|
-
function
|
44
|
+
function STAKE() pure returns (ObjectType) {
|
45
45
|
return toObjectType(80);
|
46
46
|
}
|
47
47
|
|
48
|
-
function
|
49
|
-
return toObjectType(
|
48
|
+
function COMPONENT() pure returns (ObjectType) {
|
49
|
+
return toObjectType(100);
|
50
|
+
}
|
51
|
+
|
52
|
+
// TODO replace by PRODUCT_SETUP
|
53
|
+
function TREASURY() pure returns (ObjectType) {
|
54
|
+
return toObjectType(101);
|
55
|
+
}
|
56
|
+
|
57
|
+
function PRODUCT_SETUP() pure returns (ObjectType) {
|
58
|
+
return toObjectType(101);
|
59
|
+
}
|
60
|
+
|
61
|
+
function PRODUCT() pure returns (ObjectType) {
|
62
|
+
return toObjectType(110);
|
63
|
+
}
|
64
|
+
|
65
|
+
function DISTRIBUTION() pure returns (ObjectType) {
|
66
|
+
return toObjectType(120);
|
67
|
+
}
|
68
|
+
|
69
|
+
function DISTRIBUTION_TYPE() pure returns (ObjectType) {
|
70
|
+
return toObjectType(121);
|
71
|
+
}
|
72
|
+
|
73
|
+
function DISTRIBUTOR() pure returns (ObjectType) {
|
74
|
+
return toObjectType(122);
|
75
|
+
}
|
76
|
+
|
77
|
+
function REFERRAL() pure returns (ObjectType) {
|
78
|
+
return toObjectType(123);
|
79
|
+
}
|
80
|
+
|
81
|
+
function ORACLE() pure returns (ObjectType) {
|
82
|
+
return toObjectType(130);
|
83
|
+
}
|
84
|
+
|
85
|
+
function POOL() pure returns (ObjectType) {
|
86
|
+
return toObjectType(140);
|
87
|
+
}
|
88
|
+
|
89
|
+
function RISK() pure returns (ObjectType) {
|
90
|
+
return toObjectType(200);
|
50
91
|
}
|
51
92
|
|
52
93
|
function POLICY() pure returns (ObjectType) {
|
53
|
-
return toObjectType(
|
94
|
+
return toObjectType(210);
|
95
|
+
}
|
96
|
+
|
97
|
+
function BUNDLE() pure returns (ObjectType) {
|
98
|
+
return toObjectType(220);
|
54
99
|
}
|
55
100
|
|
56
101
|
function CLAIM() pure returns (ObjectType) {
|
57
|
-
return toObjectType(
|
102
|
+
return toObjectType(211);
|
58
103
|
}
|
59
104
|
|
60
105
|
function PAYOUT() pure returns (ObjectType) {
|
61
|
-
return toObjectType(
|
106
|
+
return toObjectType(212);
|
62
107
|
}
|
63
108
|
|
64
109
|
/// @dev Converts the uint8 to a ObjectType.
|
@@ -0,0 +1,85 @@
|
|
1
|
+
// SPDX-License-Identifier: Apache-2.0
|
2
|
+
pragma solidity ^0.8.19;
|
3
|
+
|
4
|
+
import {Key32, KeyId, Key32Lib} from "./Key32.sol";
|
5
|
+
import {NftId} from "./NftId.sol";
|
6
|
+
import {REFERRAL} from "./ObjectType.sol";
|
7
|
+
|
8
|
+
type ReferralId is bytes8;
|
9
|
+
type ReferralStatus is uint8;
|
10
|
+
|
11
|
+
// type bindings
|
12
|
+
using {
|
13
|
+
eqReferralId as ==,
|
14
|
+
neReferralId as !=,
|
15
|
+
ReferralLib.toKey32
|
16
|
+
} for ReferralId global;
|
17
|
+
|
18
|
+
using {
|
19
|
+
eqReferralStatus as ==,
|
20
|
+
neReferralStatus as !=
|
21
|
+
} for ReferralStatus global;
|
22
|
+
|
23
|
+
// general pure free functions
|
24
|
+
|
25
|
+
// @dev Returns true iff a and b are identical
|
26
|
+
function eqReferralId(ReferralId a, ReferralId b) pure returns (bool isSame) {
|
27
|
+
return ReferralId.unwrap(a) == ReferralId.unwrap(b);
|
28
|
+
}
|
29
|
+
|
30
|
+
// @dev Returns true iff a and b are different
|
31
|
+
function neReferralId(ReferralId a, ReferralId b) pure returns (bool isDifferent) {
|
32
|
+
return ReferralId.unwrap(a) != ReferralId.unwrap(b);
|
33
|
+
}
|
34
|
+
|
35
|
+
// @dev Returns true iff a and b are identical
|
36
|
+
function eqReferralStatus(ReferralStatus a, ReferralStatus b) pure returns (bool isSame) {
|
37
|
+
return ReferralStatus.unwrap(a) == ReferralStatus.unwrap(b);
|
38
|
+
}
|
39
|
+
|
40
|
+
// @dev Returns true iff a and b are different
|
41
|
+
function neReferralStatus(ReferralStatus a, ReferralStatus b) pure returns (bool isDifferent) {
|
42
|
+
return ReferralStatus.unwrap(a) != ReferralStatus.unwrap(b);
|
43
|
+
}
|
44
|
+
|
45
|
+
function REFERRAL_OK() pure returns (ReferralStatus) {
|
46
|
+
return ReferralStatus.wrap(10);
|
47
|
+
}
|
48
|
+
|
49
|
+
function REFERRAL_ERROR_UNKNOWN() pure returns (ReferralStatus) {
|
50
|
+
return ReferralStatus.wrap(100);
|
51
|
+
}
|
52
|
+
|
53
|
+
function REFERRAL_ERROR_EXPIRED() pure returns (ReferralStatus) {
|
54
|
+
return ReferralStatus.wrap(110);
|
55
|
+
}
|
56
|
+
|
57
|
+
function REFERRAL_ERROR_EXHAUSTED() pure returns (ReferralStatus) {
|
58
|
+
return ReferralStatus.wrap(120);
|
59
|
+
}
|
60
|
+
|
61
|
+
library ReferralLib {
|
62
|
+
|
63
|
+
function zero() public pure returns (ReferralId) {
|
64
|
+
return ReferralId.wrap(bytes8(0));
|
65
|
+
}
|
66
|
+
|
67
|
+
// @dev Converts a referral string into an id.
|
68
|
+
function toReferralId(NftId distributionNftId, string memory referral) public pure returns (ReferralId) {
|
69
|
+
return ReferralId.wrap(bytes8(keccak256(abi.encode(distributionNftId, referral))));
|
70
|
+
}
|
71
|
+
|
72
|
+
function toReferralStatus(uint8 status) public pure returns (ReferralStatus) {
|
73
|
+
return ReferralStatus.wrap(status);
|
74
|
+
}
|
75
|
+
|
76
|
+
/// @dev Returns the key32 value for the specified nft id and object type.
|
77
|
+
function toKey32(ReferralId id) public pure returns (Key32 key) {
|
78
|
+
return Key32Lib.toKey32(REFERRAL(), toKeyId(id));
|
79
|
+
}
|
80
|
+
|
81
|
+
/// @dev Returns the key id value for the specified nft id
|
82
|
+
function toKeyId(ReferralId id) public pure returns (KeyId keyId) {
|
83
|
+
return KeyId.wrap(bytes31(ReferralId.unwrap(id)));
|
84
|
+
}
|
85
|
+
}
|
@@ -0,0 +1,43 @@
|
|
1
|
+
// SPDX-License-Identifier: Apache-2.0
|
2
|
+
pragma solidity ^0.8.19;
|
3
|
+
|
4
|
+
import {Key32, KeyId, Key32Lib} from "./Key32.sol";
|
5
|
+
import {RISK} from "./ObjectType.sol";
|
6
|
+
|
7
|
+
type RiskId is bytes8;
|
8
|
+
|
9
|
+
// type bindings
|
10
|
+
using {
|
11
|
+
eqRiskId as ==,
|
12
|
+
neRiskId as !=,
|
13
|
+
RiskIdLib.toKey32
|
14
|
+
} for RiskId global;
|
15
|
+
|
16
|
+
// general pure free functions
|
17
|
+
|
18
|
+
// @dev Returns true iff risk ids a and b are identical
|
19
|
+
function eqRiskId(RiskId a, RiskId b) pure returns (bool isSame) {
|
20
|
+
return RiskId.unwrap(a) == RiskId.unwrap(b);
|
21
|
+
}
|
22
|
+
|
23
|
+
// @dev Returns true iff risk ids a and b are different
|
24
|
+
function neRiskId(RiskId a, RiskId b) pure returns (bool isDifferent) {
|
25
|
+
return RiskId.unwrap(a) != RiskId.unwrap(b);
|
26
|
+
}
|
27
|
+
|
28
|
+
library RiskIdLib {
|
29
|
+
// @dev Converts a role string into a role id.
|
30
|
+
function toRiskId(string memory risk) public pure returns (RiskId) {
|
31
|
+
return RiskId.wrap(bytes8(keccak256(abi.encode(risk))));
|
32
|
+
}
|
33
|
+
|
34
|
+
/// @dev Returns the key32 value for the specified nft id and object type.
|
35
|
+
function toKey32(RiskId id) public pure returns (Key32 key) {
|
36
|
+
return Key32Lib.toKey32(RISK(), toKeyId(id));
|
37
|
+
}
|
38
|
+
|
39
|
+
/// @dev Returns the key id value for the specified nft id
|
40
|
+
function toKeyId(RiskId id) public pure returns (KeyId keyId) {
|
41
|
+
return KeyId.wrap(bytes31(RiskId.unwrap(id)));
|
42
|
+
}
|
43
|
+
}
|
@@ -0,0 +1,89 @@
|
|
1
|
+
// SPDX-License-Identifier: Apache-2.0
|
2
|
+
pragma solidity ^0.8.19;
|
3
|
+
|
4
|
+
import {Key32, KeyId, Key32Lib} from "./Key32.sol";
|
5
|
+
import {ROLE} from "./ObjectType.sol";
|
6
|
+
|
7
|
+
type RoleId is uint64;
|
8
|
+
|
9
|
+
// type bindings
|
10
|
+
using {
|
11
|
+
eqRoleId as ==,
|
12
|
+
neRoleId as !=,
|
13
|
+
RoleIdLib.eqz,
|
14
|
+
RoleIdLib.gtz,
|
15
|
+
RoleIdLib.toInt,
|
16
|
+
RoleIdLib.toKey32
|
17
|
+
} for RoleId global;
|
18
|
+
|
19
|
+
// general pure free functions
|
20
|
+
function DISTRIBUTION_OWNER_ROLE_NAME() pure returns (string memory) { return "DistributionOwnerRole"; }
|
21
|
+
function ORACLE_OWNER_ROLE_NAME() pure returns (string memory) { return "OracleOwnerRole"; }
|
22
|
+
function POOL_OWNER_ROLE_NAME() pure returns (string memory) { return "PoolOwnerRole"; }
|
23
|
+
function PRODUCT_OWNER_ROLE_NAME() pure returns (string memory) { return "ProductOwnerRole"; }
|
24
|
+
|
25
|
+
function ADMIN_ROLE() pure returns (RoleId) { return RoleIdLib.toRoleId(0); }
|
26
|
+
|
27
|
+
// TODO correct numbers (maybe they are already defined in RegistryService)
|
28
|
+
function DISTRIBUTION_OWNER_ROLE() pure returns (RoleId) { return RoleIdLib.toRoleId(100); }
|
29
|
+
function ORACLE_OWNER_ROLE() pure returns (RoleId) { return RoleIdLib.toRoleId(200); }
|
30
|
+
function POOL_OWNER_ROLE() pure returns (RoleId) { return RoleIdLib.toRoleId(300); }
|
31
|
+
function PRODUCT_OWNER_ROLE() pure returns (RoleId) { return RoleIdLib.toRoleId(400); }
|
32
|
+
|
33
|
+
function DISTRIBUTION_REGISTRAR_ROLE() pure returns (RoleId) { return RoleIdLib.toRoleId(1000); }
|
34
|
+
function POLICY_REGISTRAR_ROLE() pure returns (RoleId) { return RoleIdLib.toRoleId(1100); }
|
35
|
+
function BUNDLE_REGISTRAR_ROLE() pure returns (RoleId) { return RoleIdLib.toRoleId(1200); }
|
36
|
+
function POOL_REGISTRAR_ROLE() pure returns (RoleId) { return RoleIdLib.toRoleId(1300); }
|
37
|
+
function PRODUCT_REGISTRAR_ROLE() pure returns (RoleId) { return RoleIdLib.toRoleId(1400); }
|
38
|
+
|
39
|
+
function DISTRIBUTION_SERVICE_ROLE() pure returns (RoleId) { return RoleIdLib.toRoleId(10000); }
|
40
|
+
function POOL_SERVICE_ROLE() pure returns (RoleId) { return RoleIdLib.toRoleId(10100); }
|
41
|
+
|
42
|
+
function INSTANCE_SERVICE_ROLE() pure returns (RoleId) { return RoleIdLib.toRoleId(11000); }
|
43
|
+
|
44
|
+
// @dev Returns true iff role ids a and b are identical
|
45
|
+
function eqRoleId(RoleId a, RoleId b) pure returns (bool isSame) {
|
46
|
+
return RoleId.unwrap(a) == RoleId.unwrap(b);
|
47
|
+
}
|
48
|
+
|
49
|
+
// @dev Returns true iff role ids a and b are different
|
50
|
+
function neRoleId(RoleId a, RoleId b) pure returns (bool isDifferent) {
|
51
|
+
return RoleId.unwrap(a) != RoleId.unwrap(b);
|
52
|
+
}
|
53
|
+
|
54
|
+
library RoleIdLib {
|
55
|
+
/// @dev Converts the RoleId to a uint.
|
56
|
+
function zero() public pure returns (RoleId) {
|
57
|
+
return RoleId.wrap(0);
|
58
|
+
}
|
59
|
+
|
60
|
+
/// @dev Converts an uint into a RoleId.
|
61
|
+
function toRoleId(uint256 a) public pure returns (RoleId) {
|
62
|
+
return RoleId.wrap(uint64(a));
|
63
|
+
}
|
64
|
+
|
65
|
+
/// @dev Converts the RoleId to a uint.
|
66
|
+
function toInt(RoleId a) public pure returns (uint64) {
|
67
|
+
return uint64(RoleId.unwrap(a));
|
68
|
+
}
|
69
|
+
|
70
|
+
/// @dev Returns true if the value is non-zero (> 0).
|
71
|
+
function gtz(RoleId a) public pure returns (bool) {
|
72
|
+
return RoleId.unwrap(a) > 0;
|
73
|
+
}
|
74
|
+
|
75
|
+
/// @dev Returns true if the value is zero (== 0).
|
76
|
+
function eqz(RoleId a) public pure returns (bool) {
|
77
|
+
return RoleId.unwrap(a) == 0;
|
78
|
+
}
|
79
|
+
|
80
|
+
/// @dev Returns the key32 value for the specified id and object type.
|
81
|
+
function toKey32(RoleId a) public pure returns (Key32 key) {
|
82
|
+
return Key32Lib.toKey32(ROLE(), toKeyId(a));
|
83
|
+
}
|
84
|
+
|
85
|
+
/// @dev Returns the key id value for the specified id
|
86
|
+
function toKeyId(RoleId a) public pure returns (KeyId keyId) {
|
87
|
+
return KeyId.wrap(bytes31(uint248(RoleId.unwrap(a))));
|
88
|
+
}
|
89
|
+
}
|
@@ -1,11 +1,17 @@
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
2
|
-
pragma solidity ^0.8.
|
2
|
+
pragma solidity ^0.8.20;
|
3
3
|
|
4
4
|
// uint96 allows for chain ids up to 13 digits
|
5
5
|
type StateId is uint8;
|
6
6
|
|
7
7
|
// type bindings
|
8
|
-
using {
|
8
|
+
using {
|
9
|
+
eqStateId as ==,
|
10
|
+
neStateId as !=,
|
11
|
+
StateIdLib.eqz,
|
12
|
+
StateIdLib.gtz,
|
13
|
+
StateIdLib.toInt
|
14
|
+
} for StateId global;
|
9
15
|
|
10
16
|
// general pure free functions
|
11
17
|
function APPLIED() pure returns (StateId) {
|
@@ -20,14 +26,18 @@ function DECLINED() pure returns (StateId) {
|
|
20
26
|
return toStateId(30);
|
21
27
|
}
|
22
28
|
|
23
|
-
function
|
29
|
+
function UNDERWRITTEN() pure returns (StateId) {
|
24
30
|
return toStateId(40);
|
25
31
|
}
|
26
32
|
|
27
|
-
function
|
33
|
+
function CONFIRMED() pure returns (StateId) {
|
28
34
|
return toStateId(50);
|
29
35
|
}
|
30
36
|
|
37
|
+
function EXPECTED() pure returns (StateId) {
|
38
|
+
return toStateId(60);
|
39
|
+
}
|
40
|
+
|
31
41
|
function ACTIVE() pure returns (StateId) {
|
32
42
|
return toStateId(100);
|
33
43
|
}
|
@@ -48,6 +58,10 @@ function PAID() pure returns (StateId) {
|
|
48
58
|
return toStateId(220);
|
49
59
|
}
|
50
60
|
|
61
|
+
function KEEP_STATE() pure returns (StateId) {
|
62
|
+
return toStateId(type(uint8).max);
|
63
|
+
}
|
64
|
+
|
51
65
|
/// @dev Converts the uint8 to a StateId.
|
52
66
|
function toStateId(uint256 id) pure returns (StateId) {
|
53
67
|
return StateId.wrap(uint8(id));
|
@@ -9,7 +9,10 @@ using {
|
|
9
9
|
ltTimestamp as <,
|
10
10
|
lteTimestamp as <=,
|
11
11
|
eqTimestamp as ==,
|
12
|
-
neTimestamp as
|
12
|
+
neTimestamp as !=,
|
13
|
+
TimestampLib.gtz,
|
14
|
+
TimestampLib.eqz,
|
15
|
+
TimestampLib.addSeconds
|
13
16
|
} for Timestamp global;
|
14
17
|
|
15
18
|
/// @dev return true if Timestamp a is after Timestamp b
|
@@ -47,9 +50,9 @@ function toTimestamp(uint256 timestamp) pure returns (Timestamp) {
|
|
47
50
|
return Timestamp.wrap(uint40(timestamp));
|
48
51
|
}
|
49
52
|
|
50
|
-
function blockTimestamp() view returns (Timestamp) {
|
51
|
-
|
52
|
-
}
|
53
|
+
// function blockTimestamp() view returns (Timestamp) {
|
54
|
+
// return toTimestamp(block.timestamp);
|
55
|
+
// }
|
53
56
|
|
54
57
|
/// @dev Return the Timestamp zero (0)
|
55
58
|
function zeroTimestamp() pure returns (Timestamp) {
|
@@ -57,6 +60,10 @@ function zeroTimestamp() pure returns (Timestamp) {
|
|
57
60
|
}
|
58
61
|
|
59
62
|
library TimestampLib {
|
63
|
+
function blockTimestamp() public view returns (Timestamp) {
|
64
|
+
return Timestamp.wrap(uint40(block.timestamp));
|
65
|
+
}
|
66
|
+
|
60
67
|
/// @dev return true if Timestamp a is after Timestamp b
|
61
68
|
function gt(Timestamp a, Timestamp b) public pure returns (bool isAfter) {
|
62
69
|
return gtTimestamp(a, b);
|
@@ -96,6 +103,24 @@ library TimestampLib {
|
|
96
103
|
return neTimestamp(a, b);
|
97
104
|
}
|
98
105
|
|
106
|
+
/// @dev return true if Timestamp is larger than 0
|
107
|
+
function gtz(Timestamp timestamp) public pure returns (bool) {
|
108
|
+
return Timestamp.unwrap(timestamp) > 0;
|
109
|
+
}
|
110
|
+
|
111
|
+
/// @dev return true if Timestamp equals 0
|
112
|
+
function eqz(Timestamp timestamp) public pure returns (bool) {
|
113
|
+
return Timestamp.unwrap(timestamp) == 0;
|
114
|
+
}
|
115
|
+
|
116
|
+
/// @dev return true if Timestamp a is not equal to Timestamp b
|
117
|
+
function addSeconds(
|
118
|
+
Timestamp timestamp,
|
119
|
+
uint256 timeDelta
|
120
|
+
) public pure returns (Timestamp) {
|
121
|
+
return toTimestamp(Timestamp.unwrap(timestamp) + uint40(timeDelta));
|
122
|
+
}
|
123
|
+
|
99
124
|
function toInt(Timestamp timestamp) public pure returns (uint256) {
|
100
125
|
return uint256(uint40(Timestamp.unwrap(timestamp)));
|
101
126
|
}
|