@etherisc/gif-next 0.0.2-c34d8ab-035 → 0.0.2-c47e74c-707
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 +75 -14
- package/artifacts/contracts/components/Component.sol/Component.dbg.json +4 -0
- package/artifacts/contracts/components/Component.sol/Component.json +842 -0
- package/artifacts/contracts/components/Distribution.sol/Distribution.dbg.json +1 -1
- package/artifacts/contracts/components/Distribution.sol/Distribution.json +954 -219
- package/artifacts/contracts/components/IComponent.sol/IComponent.dbg.json +4 -0
- package/artifacts/contracts/{instance/service/IComponentOwnerService.sol/IComponentOwnerService.json → components/IComponent.sol/IComponent.json} +303 -164
- package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
- package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.json +848 -31
- package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
- package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.json +864 -49
- package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +1 -1
- package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.json +682 -9
- package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +1 -1
- package/artifacts/contracts/components/Pool.sol/Pool.json +849 -247
- package/artifacts/contracts/components/Product.sol/Product.dbg.json +1 -1
- package/artifacts/contracts/components/Product.sol/Product.json +637 -224
- package/artifacts/contracts/instance/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.dbg.json +4 -0
- package/artifacts/contracts/instance/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.json +1206 -0
- package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +4 -0
- package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +778 -0
- package/artifacts/contracts/instance/Cloneable.sol/Cloneable.dbg.json +4 -0
- package/artifacts/contracts/instance/{AccessManagedSimple.sol/AccessManagedSimple.json → Cloneable.sol/Cloneable.json} +79 -3
- package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstance.sol/IInstance.json +2444 -184
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +321 -168
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +1013 -1253
- package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +593 -193
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +342 -222
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +622 -237
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +386 -77
- package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.dbg.json +4 -0
- package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.json +256 -0
- package/artifacts/contracts/instance/base/ComponentService.sol/ComponentService.dbg.json +4 -0
- package/artifacts/contracts/instance/base/{ComponentServiceBase.sol/ComponentServiceBase.json → ComponentService.sol/ComponentService.json} +276 -150
- package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +1 -1
- package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
- package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +40 -10
- package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +1 -1
- package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +36 -11
- package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +71 -45
- package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +4 -0
- package/artifacts/contracts/instance/module/IComponents.sol/IComponents.json +10 -0
- package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
- package/artifacts/contracts/instance/module/ISetup.sol/ISetup.dbg.json +1 -1
- package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.dbg.json +1 -1
- package/artifacts/contracts/instance/service/ApplicationService.sol/ApplicationService.dbg.json +4 -0
- package/artifacts/contracts/instance/service/ApplicationService.sol/ApplicationService.json +1060 -0
- package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +4 -0
- package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.json +681 -0
- package/artifacts/contracts/instance/service/BundleService.sol/BundleService.dbg.json +4 -0
- package/artifacts/contracts/instance/service/BundleService.sol/BundleService.json +1266 -0
- package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.dbg.json +4 -0
- package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.json +725 -0
- package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.dbg.json +4 -0
- package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.json +1040 -0
- package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +4 -0
- package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.json +685 -0
- package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +4 -0
- package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +1774 -0
- package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +4 -0
- package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.json +793 -0
- package/artifacts/contracts/instance/service/IApplicationService.sol/IApplicationService.dbg.json +4 -0
- package/artifacts/contracts/instance/service/IApplicationService.sol/IApplicationService.json +627 -0
- package/artifacts/contracts/instance/service/IBundleService.sol/IBundleService.dbg.json +4 -0
- package/artifacts/contracts/instance/service/IBundleService.sol/IBundleService.json +686 -0
- package/artifacts/contracts/instance/service/IClaimService.sol/IClaimService.dbg.json +4 -0
- package/artifacts/contracts/instance/service/IClaimService.sol/IClaimService.json +602 -0
- package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.json +804 -160
- package/artifacts/contracts/instance/service/IPolicyService.sol/IPolicyService.dbg.json +4 -0
- package/artifacts/contracts/instance/service/IPolicyService.sol/IPolicyService.json +937 -0
- package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.json +437 -154
- package/artifacts/contracts/instance/service/IProductService.sol/IProductService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/IProductService.sol/IProductService.json +90 -391
- package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.dbg.json +4 -0
- package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.json +1511 -0
- package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +4 -0
- package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.json +741 -0
- package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +4 -0
- package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +1237 -0
- package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.dbg.json +4 -0
- package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.json +661 -0
- package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +4 -0
- package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +840 -0
- package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.dbg.json +4 -0
- package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.json +653 -0
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +15 -2
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +373 -61
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +223 -229
- package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
- package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +18 -0
- package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
- package/artifacts/contracts/registry/Registry.sol/Registry.json +333 -188
- package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.dbg.json +4 -0
- package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.json +285 -0
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +227 -330
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +304 -138
- package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +4 -0
- package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +559 -0
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +4 -0
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +498 -0
- package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.dbg.json +1 -1
- package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +1 -1
- package/artifacts/contracts/shared/ERC165.sol/ERC165.json +41 -3
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +40 -29
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +4 -0
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +129 -0
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +21 -34
- package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +4 -0
- package/artifacts/contracts/{experiment/inheritance/IB.sol/IB.json → shared/IRegistryLinked.sol/IRegistryLinked.json} +18 -20
- package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
- package/artifacts/contracts/shared/IService.sol/IService.json +86 -172
- package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +1 -1
- package/artifacts/contracts/shared/IVersionable.sol/IVersionable.json +2 -152
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +120 -27
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +4 -0
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +248 -0
- package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +1 -1
- package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +294 -61
- package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
- package/artifacts/contracts/shared/Registerable.sol/Registerable.json +129 -51
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +4 -0
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +84 -0
- package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
- package/artifacts/contracts/shared/Service.sol/Service.json +191 -163
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +2 -2
- package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
- package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +2 -2
- package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +1 -1
- package/artifacts/contracts/shared/Versionable.sol/Versionable.json +2 -152
- package/artifacts/contracts/test/TestFee.sol/TestFee.dbg.json +1 -1
- package/artifacts/contracts/test/TestFee.sol/TestFee.json +2 -2
- package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.dbg.json +1 -1
- package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.json +129 -51
- package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.dbg.json +1 -1
- package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.json +6 -6
- package/artifacts/contracts/test/TestService.sol/TestService.dbg.json +1 -1
- package/artifacts/contracts/test/TestService.sol/TestService.json +210 -214
- package/artifacts/contracts/test/TestToken.sol/TestUsdc.dbg.json +1 -1
- package/artifacts/contracts/test/TestVersion.sol/TestVersion.dbg.json +1 -1
- package/artifacts/contracts/test/TestVersion.sol/TestVersion.json +2 -2
- package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.dbg.json +1 -1
- package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.json +8 -190
- package/artifacts/contracts/test/Usdc.sol/USDC.dbg.json +1 -1
- package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.dbg.json +1 -1
- package/artifacts/contracts/types/Amount.sol/AmountLib.dbg.json +4 -0
- package/artifacts/contracts/types/Amount.sol/AmountLib.json +185 -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/ClaimId.sol/ClaimIdLib.dbg.json +4 -0
- package/artifacts/contracts/types/ClaimId.sol/ClaimIdLib.json +179 -0
- package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
- package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.json +2 -2
- package/artifacts/contracts/types/Fee.sol/FeeLib.dbg.json +1 -1
- package/artifacts/contracts/types/Fee.sol/FeeLib.json +40 -9
- package/artifacts/contracts/types/Key32.sol/Key32Lib.dbg.json +1 -1
- package/artifacts/contracts/types/Key32.sol/Key32Lib.json +2 -2
- package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +1 -1
- package/artifacts/contracts/types/NftId.sol/NftIdLib.json +17 -4
- package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
- package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.json +26 -3
- package/artifacts/contracts/types/NumberId.sol/NumberIdLib.dbg.json +1 -1
- 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/PayoutId.sol/PayoutIdLib.dbg.json +4 -0
- package/artifacts/contracts/types/PayoutId.sol/PayoutIdLib.json +209 -0
- package/artifacts/contracts/types/Referral.sol/ReferralLib.dbg.json +1 -1
- package/artifacts/contracts/types/Referral.sol/ReferralLib.json +23 -4
- package/artifacts/contracts/types/RiskId.sol/RiskIdLib.dbg.json +1 -1
- package/artifacts/contracts/types/RiskId.sol/RiskIdLib.json +2 -2
- package/artifacts/contracts/types/RoleId.sol/RoleIdLib.dbg.json +1 -1
- package/artifacts/contracts/types/RoleId.sol/RoleIdLib.json +2 -2
- package/artifacts/contracts/types/Seconds.sol/SecondsLib.dbg.json +4 -0
- package/artifacts/contracts/types/Seconds.sol/SecondsLib.json +124 -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 +38 -7
- package/artifacts/contracts/types/UFixed.sol/MathLib.dbg.json +1 -1
- package/artifacts/contracts/types/UFixed.sol/MathLib.json +2 -2
- package/artifacts/contracts/types/UFixed.sol/UFixedLib.dbg.json +1 -1
- package/artifacts/contracts/types/UFixed.sol/UFixedLib.json +2 -2
- package/artifacts/contracts/types/Version.sol/VersionLib.dbg.json +1 -1
- package/artifacts/contracts/types/Version.sol/VersionLib.json +2 -2
- package/artifacts/contracts/types/Version.sol/VersionPartLib.dbg.json +1 -1
- package/artifacts/contracts/types/Version.sol/VersionPartLib.json +22 -3
- package/contracts/components/Component.sol +253 -0
- package/contracts/components/Distribution.sol +204 -86
- package/contracts/components/IComponent.sol +76 -0
- package/contracts/components/IDistributionComponent.sol +44 -16
- package/contracts/components/IPoolComponent.sol +88 -37
- package/contracts/components/IProductComponent.sol +10 -5
- package/contracts/components/Pool.sol +224 -181
- package/contracts/components/Product.sol +249 -175
- package/contracts/instance/AccessManagerUpgradeableInitializeable.sol +13 -0
- package/contracts/instance/BundleManager.sol +126 -0
- package/contracts/instance/Cloneable.sol +51 -0
- package/contracts/instance/IInstance.sol +88 -14
- package/contracts/instance/IInstanceService.sol +46 -8
- package/contracts/instance/Instance.sol +154 -286
- package/contracts/instance/InstanceAccessManager.sol +414 -175
- package/contracts/instance/InstanceReader.sol +64 -37
- package/contracts/instance/InstanceService.sol +421 -81
- package/contracts/instance/InstanceServiceManager.sol +11 -13
- package/contracts/instance/ObjectManager.sol +82 -0
- package/contracts/instance/base/ComponentService.sol +121 -0
- package/contracts/instance/base/KeyValueStore.sol +13 -5
- package/contracts/instance/base/Lifecycle.sol +23 -6
- package/contracts/instance/module/IAccess.sol +36 -20
- package/contracts/instance/module/IBundle.sol +8 -4
- package/contracts/instance/module/IComponents.sol +41 -0
- package/contracts/instance/module/IDistribution.sol +2 -0
- package/contracts/instance/module/IPolicy.sol +41 -9
- package/contracts/instance/module/ISetup.sol +9 -19
- package/contracts/instance/service/ApplicationService.sol +355 -0
- package/contracts/instance/service/ApplicationServiceManager.sol +35 -0
- package/contracts/instance/service/BundleService.sol +436 -0
- package/contracts/instance/service/BundleServiceManager.sol +51 -0
- package/contracts/instance/service/ClaimService.sol +239 -0
- package/contracts/instance/service/ClaimServiceManager.sol +35 -0
- package/contracts/instance/service/DistributionService.sol +431 -0
- package/contracts/instance/service/DistributionServiceManager.sol +51 -0
- package/contracts/instance/service/IApplicationService.sol +78 -0
- package/contracts/instance/service/IBundleService.sol +96 -0
- package/contracts/instance/service/IClaimService.sol +92 -0
- package/contracts/instance/service/IDistributionService.sol +87 -0
- package/contracts/instance/service/IPolicyService.sol +137 -0
- package/contracts/instance/service/IPoolService.sol +79 -17
- package/contracts/instance/service/IProductService.sol +6 -73
- package/contracts/instance/service/PolicyService.sol +541 -0
- package/contracts/instance/service/PolicyServiceManager.sol +54 -0
- package/contracts/instance/service/PoolService.sol +303 -0
- package/contracts/instance/service/PoolServiceManager.sol +51 -0
- package/contracts/instance/service/ProductService.sol +210 -0
- package/contracts/instance/service/ProductServiceManager.sol +54 -0
- package/contracts/registry/ChainNft.sol +9 -1
- package/contracts/registry/IRegistry.sol +51 -8
- package/contracts/registry/IRegistryService.sol +47 -14
- package/contracts/registry/ITransferInterceptor.sol +1 -0
- package/contracts/registry/Registry.sol +270 -226
- package/contracts/registry/RegistryAccessManager.sol +216 -0
- package/contracts/registry/RegistryService.sol +113 -275
- package/contracts/registry/RegistryServiceManager.sol +24 -26
- package/contracts/registry/ReleaseManager.sol +324 -0
- package/contracts/registry/TokenRegistry.sol +116 -0
- package/contracts/shared/ERC165.sol +14 -8
- package/contracts/shared/INftOwnable.sol +11 -10
- package/contracts/shared/IPolicyHolder.sol +26 -0
- package/contracts/shared/IRegisterable.sol +4 -6
- package/contracts/shared/IRegistryLinked.sol +12 -0
- package/contracts/shared/IService.sol +5 -4
- package/contracts/shared/IVersionable.sol +4 -47
- package/contracts/shared/NftOwnable.sol +67 -83
- package/contracts/shared/PolicyHolder.sol +81 -0
- package/contracts/shared/ProxyManager.sol +100 -25
- package/contracts/shared/Registerable.sol +16 -31
- package/contracts/shared/RegistryLinked.sol +48 -0
- package/contracts/shared/Service.sol +42 -24
- package/contracts/shared/TokenHandler.sol +11 -5
- package/contracts/shared/Versionable.sol +4 -92
- package/contracts/test/TestRegisterable.sol +1 -1
- package/contracts/test/TestService.sol +4 -3
- package/contracts/types/Amount.sol +65 -0
- package/contracts/types/Blocknumber.sol +1 -0
- package/contracts/types/ClaimId.sol +75 -0
- package/contracts/types/DistributorType.sol +2 -2
- package/contracts/types/Fee.sol +13 -5
- package/contracts/types/NftId.sol +8 -0
- package/contracts/types/NftIdSet.sol +26 -24
- package/contracts/types/ObjectType.sol +11 -6
- package/contracts/types/PayoutId.sol +82 -0
- package/contracts/types/Referral.sol +4 -0
- package/contracts/types/RoleId.sol +26 -11
- package/contracts/types/Seconds.sol +54 -0
- package/contracts/types/StateId.sol +11 -2
- package/contracts/types/Timestamp.sol +18 -13
- package/contracts/types/UFixed.sol +1 -0
- package/contracts/types/Version.sol +5 -1
- package/package.json +3 -3
- package/artifacts/contracts/components/BaseComponent.sol/BaseComponent.dbg.json +0 -4
- package/artifacts/contracts/components/BaseComponent.sol/BaseComponent.json +0 -314
- package/artifacts/contracts/components/IBaseComponent.sol/IBaseComponent.dbg.json +0 -4
- package/artifacts/contracts/components/IBaseComponent.sol/IBaseComponent.json +0 -267
- package/artifacts/contracts/experiment/cloning/Cloner.sol/Cloner.dbg.json +0 -4
- package/artifacts/contracts/experiment/cloning/Cloner.sol/Cloner.json +0 -66
- package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock1.dbg.json +0 -4
- package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock1.json +0 -24
- package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock2.dbg.json +0 -4
- package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock2.json +0 -42
- package/artifacts/contracts/experiment/errors/Require.sol/Require.dbg.json +0 -4
- package/artifacts/contracts/experiment/errors/Require.sol/Require.json +0 -105
- package/artifacts/contracts/experiment/errors/Revert.sol/Revert.dbg.json +0 -4
- package/artifacts/contracts/experiment/errors/Revert.sol/Revert.json +0 -105
- package/artifacts/contracts/experiment/inheritance/A.sol/A.dbg.json +0 -4
- package/artifacts/contracts/experiment/inheritance/A.sol/A.json +0 -128
- package/artifacts/contracts/experiment/inheritance/A.sol/AShared.dbg.json +0 -4
- package/artifacts/contracts/experiment/inheritance/A.sol/AShared.json +0 -42
- package/artifacts/contracts/experiment/inheritance/B.sol/B.dbg.json +0 -4
- package/artifacts/contracts/experiment/inheritance/B.sol/B.json +0 -76
- package/artifacts/contracts/experiment/inheritance/C.sol/C.dbg.json +0 -4
- package/artifacts/contracts/experiment/inheritance/C.sol/C.json +0 -89
- package/artifacts/contracts/experiment/inheritance/IA.sol/IA.dbg.json +0 -4
- package/artifacts/contracts/experiment/inheritance/IA.sol/IA.json +0 -128
- package/artifacts/contracts/experiment/inheritance/IA.sol/ISharedA.dbg.json +0 -4
- package/artifacts/contracts/experiment/inheritance/IA.sol/ISharedA.json +0 -37
- package/artifacts/contracts/experiment/inheritance/IB.sol/IB.dbg.json +0 -4
- package/artifacts/contracts/experiment/inheritance/IC.sol/IC.dbg.json +0 -4
- package/artifacts/contracts/experiment/inheritance/IC.sol/IC.json +0 -63
- package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.dbg.json +0 -4
- package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.json +0 -59
- package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.dbg.json +0 -4
- package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.json +0 -124
- package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.dbg.json +0 -4
- package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.json +0 -74
- package/artifacts/contracts/experiment/statemachine/SM.sol/SM.dbg.json +0 -4
- package/artifacts/contracts/experiment/statemachine/SM.sol/SM.json +0 -124
- package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.dbg.json +0 -4
- package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.json +0 -207
- package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.dbg.json +0 -4
- package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.json +0 -10
- package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.dbg.json +0 -4
- package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.json +0 -10
- package/artifacts/contracts/instance/AccessManagedSimple.sol/AccessManagedSimple.dbg.json +0 -4
- package/artifacts/contracts/instance/AccessManagerSimple.sol/AccessManagerSimple.dbg.json +0 -4
- package/artifacts/contracts/instance/AccessManagerSimple.sol/AccessManagerSimple.json +0 -1132
- package/artifacts/contracts/instance/IAccessManagerSimple.sol/IAccessManagerSimple.dbg.json +0 -4
- package/artifacts/contracts/instance/IAccessManagerSimple.sol/IAccessManagerSimple.json +0 -1082
- package/artifacts/contracts/instance/base/ComponentServiceBase.sol/ComponentServiceBase.dbg.json +0 -4
- package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.dbg.json +0 -4
- package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.json +0 -113
- package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.json +0 -827
- package/artifacts/contracts/instance/service/IComponentOwnerService.sol/IComponentOwnerService.dbg.json +0 -4
- package/artifacts/contracts/shared/RegisterableUpgradable.sol/RegisterableUpgradable.dbg.json +0 -4
- package/artifacts/contracts/shared/RegisterableUpgradable.sol/RegisterableUpgradable.json +0 -442
- package/contracts/components/BaseComponent.sol +0 -86
- package/contracts/components/IBaseComponent.sol +0 -24
- package/contracts/experiment/cloning/Cloner.sol +0 -47
- package/contracts/experiment/errors/Require.sol +0 -38
- package/contracts/experiment/errors/Revert.sol +0 -44
- package/contracts/experiment/inheritance/A.sol +0 -53
- package/contracts/experiment/inheritance/B.sol +0 -28
- package/contracts/experiment/inheritance/C.sol +0 -34
- package/contracts/experiment/inheritance/IA.sol +0 -13
- package/contracts/experiment/inheritance/IB.sol +0 -10
- package/contracts/experiment/inheritance/IC.sol +0 -12
- package/contracts/experiment/statemachine/Dummy.sol +0 -27
- package/contracts/experiment/statemachine/ISM.sol +0 -25
- package/contracts/experiment/statemachine/SM.sol +0 -57
- package/contracts/experiment/statemachine/SimpleStateMachine.sol +0 -31
- package/contracts/experiment/types/TypeA.sol +0 -47
- package/contracts/experiment/types/TypeB.sol +0 -29
- package/contracts/instance/AccessManagedSimple.sol +0 -122
- package/contracts/instance/AccessManagerSimple.sol +0 -692
- package/contracts/instance/IAccessManagerSimple.sol +0 -391
- package/contracts/instance/base/ComponentServiceBase.sol +0 -49
- package/contracts/instance/base/IInstanceBase.sol +0 -23
- package/contracts/instance/service/ComponentOwnerService.sol +0 -317
- package/contracts/instance/service/IComponentOwnerService.sol +0 -20
- package/contracts/shared/RegisterableUpgradable.sol +0 -16
@@ -1,40 +1,49 @@
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
2
2
|
pragma solidity ^0.8.20;
|
3
3
|
|
4
|
-
import {
|
5
|
-
|
4
|
+
import {AccessManagedUpgradeable} from "@openzeppelin/contracts-upgradeable/access/manager/AccessManagedUpgradeable.sol";
|
5
|
+
|
6
|
+
import {Key32} from "../types/Key32.sol";
|
7
|
+
import {NftId} from "../types/NftId.sol";
|
8
|
+
import {ClaimId} from "../types/ClaimId.sol";
|
9
|
+
import {DistributorType} from "../types/DistributorType.sol";
|
10
|
+
import {PayoutId} from "../types/PayoutId.sol";
|
11
|
+
import {ObjectType, BUNDLE, DISTRIBUTION, INSTANCE, POLICY, POOL, PRODUCT, DISTRIBUTOR} from "../types/ObjectType.sol";
|
12
|
+
import {ReferralId} from "../types/Referral.sol";
|
13
|
+
import {RiskId} from "../types/RiskId.sol";
|
14
|
+
import {INSTANCE_OWNER_ROLE} from "../types/RoleId.sol";
|
15
|
+
import {StateId} from "../types/StateId.sol";
|
16
|
+
import {VersionPart, VersionPartLib} from "../types/Version.sol";
|
17
|
+
|
18
|
+
import {Registerable} from "../shared/Registerable.sol";
|
19
|
+
|
20
|
+
import {IRegistry} from "../registry/IRegistry.sol";
|
21
|
+
|
22
|
+
import {IInstance} from "./IInstance.sol";
|
23
|
+
import {InstanceReader} from "./InstanceReader.sol";
|
24
|
+
import {InstanceAccessManager} from "./InstanceAccessManager.sol";
|
25
|
+
import {BundleManager} from "./BundleManager.sol";
|
26
|
+
|
27
|
+
import {KeyValueStore} from "./base/KeyValueStore.sol";
|
6
28
|
|
7
|
-
import {AccessManagedSimple} from "./AccessManagedSimple.sol";
|
8
|
-
import {AccessManagerSimple} from "./AccessManagerSimple.sol";
|
9
|
-
import {IAccess} from "./module/IAccess.sol";
|
10
29
|
import {IBundle} from "./module/IBundle.sol";
|
30
|
+
import {IComponents} from "./module/IComponents.sol";
|
31
|
+
import {IDistribution} from "./module/IDistribution.sol";
|
11
32
|
import {IPolicy} from "./module/IPolicy.sol";
|
12
33
|
import {IRisk} from "./module/IRisk.sol";
|
13
34
|
import {ISetup} from "./module/ISetup.sol";
|
14
|
-
|
15
|
-
import {
|
16
|
-
import {IInstance} from "./IInstance.sol";
|
17
|
-
import {InstanceReader} from "./InstanceReader.sol";
|
18
|
-
import {NftId} from "../types/NftId.sol";
|
19
|
-
import {NumberId} from "../types/NumberId.sol";
|
20
|
-
import {ObjectType, BUNDLE, DISTRIBUTION, INSTANCE, POLICY, POOL, ROLE, PRODUCT, TARGET} from "../types/ObjectType.sol";
|
21
|
-
import {RiskId, RiskIdLib} from "../types/RiskId.sol";
|
22
|
-
import {RoleId, RoleIdLib} from "../types/RoleId.sol";
|
23
|
-
import {StateId, ACTIVE} from "../types/StateId.sol";
|
24
|
-
import {ERC165} from "../shared/ERC165.sol";
|
25
|
-
import {Registerable} from "../shared/Registerable.sol";
|
26
|
-
import {ComponentOwnerService} from "./service/ComponentOwnerService.sol";
|
27
|
-
import {IComponentOwnerService} from "./service/IComponentOwnerService.sol";
|
28
|
-
import {VersionPart} from "../types/Version.sol";
|
35
|
+
|
36
|
+
import {VersionPart, VersionPartLib} from "../types/Version.sol";
|
29
37
|
|
30
38
|
contract Instance is
|
31
|
-
AccessManagedSimple,
|
32
|
-
KeyValueStore,
|
33
39
|
IInstance,
|
34
|
-
|
35
|
-
Registerable
|
40
|
+
AccessManagedUpgradeable,
|
41
|
+
Registerable,
|
42
|
+
KeyValueStore
|
36
43
|
{
|
37
44
|
|
45
|
+
uint256 public constant GIF_MAJOR_VERSION = 3;
|
46
|
+
|
38
47
|
uint64 public constant ADMIN_ROLE = type(uint64).min;
|
39
48
|
uint64 public constant PUBLIC_ROLE = type(uint64).max;
|
40
49
|
uint64 public constant CUSTOM_ROLE_ID_MIN = 10000;
|
@@ -43,152 +52,28 @@ contract Instance is
|
|
43
52
|
|
44
53
|
bool private _initialized;
|
45
54
|
|
46
|
-
|
47
|
-
mapping(RoleId roleId => EnumerableSet.AddressSet roleMembers) internal _roleMembers;
|
48
|
-
RoleId [] internal _roles;
|
49
|
-
|
50
|
-
mapping(ShortString name => address target) internal _target;
|
51
|
-
|
52
|
-
AccessManagerSimple internal _accessManager;
|
55
|
+
InstanceAccessManager internal _accessManager;
|
53
56
|
InstanceReader internal _instanceReader;
|
57
|
+
BundleManager internal _bundleManager;
|
54
58
|
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
initialize(accessManagerAddress, registryAddress, registryNftId, msg.sender);
|
59
|
-
}
|
60
|
-
|
61
|
-
function initialize(address accessManagerAddress, address registryAddress, NftId registryNftId, address initialOwner) public {
|
62
|
-
require(!_initialized, "Contract instance has already been initialized");
|
63
|
-
|
64
|
-
_accessManager = AccessManagerSimple(accessManagerAddress);
|
65
|
-
_createRole(RoleIdLib.toRoleId(ADMIN_ROLE), "AdminRole", false, false);
|
66
|
-
_createRole(RoleIdLib.toRoleId(PUBLIC_ROLE), "PublicRole", false, false);
|
67
|
-
|
68
|
-
_initializeRegisterable(registryAddress, registryNftId, INSTANCE(), false, initialOwner, "");
|
69
|
-
|
70
|
-
_registerInterface(type(IInstance).interfaceId);
|
71
|
-
_initialized = true;
|
72
|
-
}
|
73
|
-
|
74
|
-
//--- Role ------------------------------------------------------//
|
75
|
-
function createStandardRole(RoleId roleId, string memory name) external restricted() {
|
76
|
-
_createRole(roleId, name, false, true);
|
77
|
-
}
|
78
|
-
|
79
|
-
function createCustomRole(RoleId roleId, string memory name) external restricted() {
|
80
|
-
_createRole(roleId, name, true, true);
|
81
|
-
}
|
82
|
-
|
83
|
-
function updateRole(RoleId roleId, string memory name, StateId newState) external restricted() {
|
84
|
-
(bool isCustom,) = _validateRoleParameters(roleId, name, false);
|
85
|
-
IAccess.RoleInfo memory role = _toRole(roleId, name, isCustom);
|
86
|
-
update(toRoleKey32(roleId), abi.encode(role), newState);
|
87
|
-
}
|
88
|
-
|
89
|
-
function updateRoleState(RoleId roleId, StateId newState) external restricted() {
|
90
|
-
updateState(toRoleKey32(roleId), newState);
|
91
|
-
}
|
92
|
-
|
93
|
-
function grantRole(RoleId roleId, address member) external restricted() returns (bool granted) {
|
94
|
-
Key32 roleKey = toRoleKey32(roleId);
|
95
|
-
|
96
|
-
if (!exists(roleKey)) {
|
97
|
-
revert IAccess.ErrorGrantNonexstentRole(roleId);
|
98
|
-
}
|
99
|
-
|
100
|
-
if (getState(roleKey) != ACTIVE()) {
|
101
|
-
revert IAccess.ErrorRoleIdNotActive(roleId);
|
59
|
+
modifier onlyChainNft() {
|
60
|
+
if(msg.sender != getRegistry().getChainNftAddress()) {
|
61
|
+
revert();
|
102
62
|
}
|
103
|
-
|
104
|
-
if (!EnumerableSet.contains(_roleMembers[roleId], member)) {
|
105
|
-
_accessManager.grantRole(roleId.toInt(), member, EXECUTION_DELAY);
|
106
|
-
EnumerableSet.add(_roleMembers[roleId], member);
|
107
|
-
return true;
|
108
|
-
}
|
109
|
-
|
110
|
-
return false;
|
63
|
+
_;
|
111
64
|
}
|
112
65
|
|
113
|
-
function
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
|
122
|
-
EnumerableSet.remove(_roleMembers[roleId], member);
|
123
|
-
return true;
|
124
|
-
}
|
125
|
-
|
126
|
-
return false;
|
127
|
-
}
|
128
|
-
|
129
|
-
/// @dev not restricted function by intention
|
130
|
-
/// the restriction to role members is already enforced by the call to the access manger
|
131
|
-
function renounceRole(RoleId roleId) external returns (bool revoked) {
|
132
|
-
address member = msg.sender;
|
133
|
-
Key32 roleKey = toRoleKey32(roleId);
|
134
|
-
|
135
|
-
if (!exists(roleKey)) {
|
136
|
-
revert IAccess.ErrorRenounceNonexstentRole(roleId);
|
137
|
-
}
|
138
|
-
|
139
|
-
if (EnumerableSet.contains(_roleMembers[roleId], member)) {
|
140
|
-
_accessManager.renounceRole(roleId.toInt(), member);
|
141
|
-
EnumerableSet.remove(_roleMembers[roleId], member);
|
142
|
-
return true;
|
143
|
-
}
|
144
|
-
|
145
|
-
return false;
|
146
|
-
}
|
147
|
-
|
148
|
-
function roles() external view returns (uint256 numberOfRoles) {
|
149
|
-
return _roles.length;
|
150
|
-
}
|
151
|
-
|
152
|
-
function getRoleId(uint256 idx) external view returns (RoleId roleId) {
|
153
|
-
return _roles[idx];
|
154
|
-
}
|
155
|
-
|
156
|
-
function getRole(RoleId roleId) external view returns (IAccess.RoleInfo memory role) {
|
157
|
-
return abi.decode(getData(roleId.toKey32()), (IAccess.RoleInfo));
|
158
|
-
}
|
159
|
-
|
160
|
-
function roleMembers(RoleId roleId) external view returns (uint256 numberOfMembers) {
|
161
|
-
return EnumerableSet.length(_roleMembers[roleId]);
|
162
|
-
}
|
163
|
-
|
164
|
-
function getRoleMember(RoleId roleId, uint256 idx) external view returns (address roleMember) {
|
165
|
-
return EnumerableSet.at(_roleMembers[roleId], idx);
|
166
|
-
}
|
167
|
-
|
168
|
-
function _createRole(RoleId roleId, string memory name, bool isCustom, bool validateParameters) internal {
|
169
|
-
if (validateParameters) {
|
170
|
-
_validateRoleParameters(roleId, name, isCustom);
|
171
|
-
}
|
172
|
-
|
173
|
-
IAccess.RoleInfo memory role = _toRole(roleId, name, isCustom);
|
174
|
-
_role[role.name] = roleId;
|
175
|
-
_roles.push(roleId);
|
176
|
-
|
177
|
-
create(toRoleKey32(roleId), abi.encode(role));
|
178
|
-
}
|
179
|
-
|
180
|
-
//--- Target ------------------------------------------------------//
|
181
|
-
function createTarget(address target, IAccess.TargetInfo memory targetInfo) external restricted() {
|
182
|
-
_validateTargetParameters(target, targetInfo);
|
183
|
-
create(toTargetKey32(target), abi.encode(targetInfo));
|
184
|
-
}
|
185
|
-
|
186
|
-
function setTargetClosed(address target, bool closed) external restricted() {
|
187
|
-
if (!exists(toTargetKey32(target))) {
|
188
|
-
revert IAccess.ErrorTargetDoesNotExist(target);
|
189
|
-
}
|
66
|
+
function initialize(address authority, address registryAddress, address initialOwner)
|
67
|
+
public
|
68
|
+
initializer()
|
69
|
+
{
|
70
|
+
__AccessManaged_init(authority);
|
71
|
+
|
72
|
+
IRegistry registry = IRegistry(registryAddress);
|
73
|
+
initializeRegisterable(registryAddress, registry.getNftId(), INSTANCE(), true, initialOwner, "");
|
74
|
+
initializeLifecycle();
|
190
75
|
|
191
|
-
|
76
|
+
registerInterface(type(IInstance).interfaceId);
|
192
77
|
}
|
193
78
|
|
194
79
|
//--- ProductSetup ------------------------------------------------------//
|
@@ -218,68 +103,68 @@ contract Instance is
|
|
218
103
|
}
|
219
104
|
|
220
105
|
//--- PoolSetup ------------------------------------------------------//
|
221
|
-
function createPoolSetup(NftId
|
222
|
-
create(_toNftKey32(
|
106
|
+
function createPoolSetup(NftId poolNftId, IComponents.ComponentInfo memory info) external restricted() {
|
107
|
+
create(_toNftKey32(poolNftId, POOL()), abi.encode(info));
|
223
108
|
}
|
224
109
|
|
225
|
-
function updatePoolSetup(NftId
|
226
|
-
update(_toNftKey32(
|
110
|
+
function updatePoolSetup(NftId poolNftId, IComponents.ComponentInfo memory info, StateId newState) external restricted() {
|
111
|
+
update(_toNftKey32(poolNftId, POOL()), abi.encode(info), newState);
|
227
112
|
}
|
228
113
|
|
229
|
-
function updatePoolSetupState(NftId
|
230
|
-
updateState(_toNftKey32(
|
114
|
+
function updatePoolSetupState(NftId poolNftId, StateId newState) external restricted() {
|
115
|
+
updateState(_toNftKey32(poolNftId, POOL()), newState);
|
231
116
|
}
|
232
117
|
|
233
|
-
//--- DistributorType
|
234
|
-
function createDistributorType(
|
235
|
-
create(
|
118
|
+
//--- DistributorType -------------------------------------------------------//
|
119
|
+
function createDistributorType(DistributorType distributorType, IDistribution.DistributorTypeInfo memory info) external restricted() {
|
120
|
+
create(distributorType.toKey32(), abi.encode(info));
|
236
121
|
}
|
237
122
|
|
238
|
-
function updateDistributorType(
|
239
|
-
update(
|
123
|
+
function updateDistributorType(DistributorType distributorType, IDistribution.DistributorTypeInfo memory info, StateId newState) external restricted() {
|
124
|
+
update(distributorType.toKey32(), abi.encode(info), newState);
|
240
125
|
}
|
241
126
|
|
242
|
-
function updateDistributorTypeState(
|
243
|
-
updateState(
|
127
|
+
function updateDistributorTypeState(DistributorType distributorType, StateId newState) external restricted() {
|
128
|
+
updateState(distributorType.toKey32(), newState);
|
244
129
|
}
|
245
130
|
|
246
131
|
//--- Distributor -------------------------------------------------------//
|
247
|
-
function createDistributor(NftId
|
248
|
-
create(
|
132
|
+
function createDistributor(NftId distributorNftId, IDistribution.DistributorInfo memory info) external restricted() {
|
133
|
+
create(_toNftKey32(distributorNftId, DISTRIBUTOR()), abi.encode(info));
|
249
134
|
}
|
250
135
|
|
251
|
-
function updateDistributor(NftId
|
252
|
-
update(
|
136
|
+
function updateDistributor(NftId distributorNftId, IDistribution.DistributorInfo memory info, StateId newState) external restricted() {
|
137
|
+
update(_toNftKey32(distributorNftId, DISTRIBUTOR()), abi.encode(info), newState);
|
253
138
|
}
|
254
139
|
|
255
|
-
function updateDistributorState(NftId
|
256
|
-
updateState(
|
140
|
+
function updateDistributorState(NftId distributorNftId, StateId newState) external restricted() {
|
141
|
+
updateState(_toNftKey32(distributorNftId, DISTRIBUTOR()), newState);
|
257
142
|
}
|
258
143
|
|
259
144
|
//--- Referral ----------------------------------------------------------//
|
260
|
-
function createReferral(
|
261
|
-
create(
|
145
|
+
function createReferral(ReferralId referralId, IDistribution.ReferralInfo memory referralInfo) external restricted() {
|
146
|
+
create(referralId.toKey32(), abi.encode(referralInfo));
|
262
147
|
}
|
263
148
|
|
264
|
-
function updateReferral(
|
265
|
-
update(
|
149
|
+
function updateReferral(ReferralId referralId, IDistribution.ReferralInfo memory referralInfo, StateId newState) external restricted() {
|
150
|
+
update(referralId.toKey32(), abi.encode(referralInfo), newState);
|
266
151
|
}
|
267
152
|
|
268
|
-
function updateReferralState(
|
269
|
-
updateState(
|
153
|
+
function updateReferralState(ReferralId referralId, StateId newState) external restricted() {
|
154
|
+
updateState(referralId.toKey32(), newState);
|
270
155
|
}
|
271
156
|
|
272
157
|
//--- Bundle ------------------------------------------------------------//
|
273
158
|
function createBundle(NftId bundleNftId, IBundle.BundleInfo memory bundle) external restricted() {
|
274
|
-
create(
|
159
|
+
create(_toNftKey32(bundleNftId, BUNDLE()), abi.encode(bundle));
|
275
160
|
}
|
276
161
|
|
277
162
|
function updateBundle(NftId bundleNftId, IBundle.BundleInfo memory bundle, StateId newState) external restricted() {
|
278
|
-
update(
|
163
|
+
update(_toNftKey32(bundleNftId, BUNDLE()), abi.encode(bundle), newState);
|
279
164
|
}
|
280
165
|
|
281
166
|
function updateBundleState(NftId bundleNftId, StateId newState) external restricted() {
|
282
|
-
updateState(
|
167
|
+
updateState(_toNftKey32(bundleNftId, BUNDLE()), newState);
|
283
168
|
}
|
284
169
|
|
285
170
|
//--- Risk --------------------------------------------------------------//
|
@@ -295,148 +180,131 @@ contract Instance is
|
|
295
180
|
updateState(riskId.toKey32(), newState);
|
296
181
|
}
|
297
182
|
|
298
|
-
//--- Policy
|
299
|
-
function
|
300
|
-
create(
|
183
|
+
//--- Application (Policy) ----------------------------------------------//
|
184
|
+
function createApplication(NftId applicationNftId, IPolicy.PolicyInfo memory policy) external restricted() {
|
185
|
+
create(_toNftKey32(applicationNftId, POLICY()), abi.encode(policy));
|
301
186
|
}
|
302
187
|
|
188
|
+
function updateApplication(NftId applicationNftId, IPolicy.PolicyInfo memory policy, StateId newState) external restricted() {
|
189
|
+
update(_toNftKey32(applicationNftId, POLICY()), abi.encode(policy), newState);
|
190
|
+
}
|
191
|
+
|
192
|
+
function updateApplicationState(NftId applicationNftId, StateId newState) external restricted() {
|
193
|
+
updateState(_toNftKey32(applicationNftId, POLICY()), newState);
|
194
|
+
}
|
195
|
+
|
196
|
+
//--- Policy ------------------------------------------------------------//
|
303
197
|
function updatePolicy(NftId policyNftId, IPolicy.PolicyInfo memory policy, StateId newState) external restricted() {
|
304
|
-
update(
|
198
|
+
update(_toNftKey32(policyNftId, POLICY()), abi.encode(policy), newState);
|
305
199
|
}
|
306
200
|
|
307
201
|
function updatePolicyState(NftId policyNftId, StateId newState) external restricted() {
|
308
|
-
updateState(
|
202
|
+
updateState(_toNftKey32(policyNftId, POLICY()), newState);
|
309
203
|
}
|
310
204
|
|
311
205
|
//--- Claim -------------------------------------------------------------//
|
312
|
-
function createClaim(NftId policyNftId,
|
313
|
-
create(
|
206
|
+
function createClaim(NftId policyNftId, ClaimId claimId, IPolicy.ClaimInfo memory claim) external restricted() {
|
207
|
+
create(_toClaimKey32(policyNftId, claimId), abi.encode(claim));
|
314
208
|
}
|
315
209
|
|
316
|
-
function updateClaim(NftId policyNftId,
|
317
|
-
update(
|
210
|
+
function updateClaim(NftId policyNftId, ClaimId claimId, IPolicy.ClaimInfo memory claim, StateId newState) external restricted() {
|
211
|
+
update(_toClaimKey32(policyNftId, claimId), abi.encode(claim), newState);
|
318
212
|
}
|
319
213
|
|
320
|
-
function updateClaimState(NftId policyNftId, StateId newState) external restricted() {
|
321
|
-
updateState(
|
214
|
+
function updateClaimState(NftId policyNftId, ClaimId claimId, StateId newState) external restricted() {
|
215
|
+
updateState(_toClaimKey32(policyNftId, claimId), newState);
|
322
216
|
}
|
323
217
|
|
324
218
|
//--- Payout ------------------------------------------------------------//
|
325
|
-
function createPayout(NftId policyNftId,
|
326
|
-
create(
|
219
|
+
function createPayout(NftId policyNftId, PayoutId payoutId, IPolicy.PayoutInfo memory payout) external restricted() {
|
220
|
+
create(_toPayoutKey32(policyNftId, payoutId), abi.encode(payout));
|
327
221
|
}
|
328
222
|
|
329
|
-
function
|
330
|
-
update(
|
223
|
+
function updatePayout(NftId policyNftId, PayoutId payoutId, IPolicy.PayoutInfo memory payout, StateId newState) external restricted() {
|
224
|
+
update(_toPayoutKey32(policyNftId, payoutId), abi.encode(payout), newState);
|
331
225
|
}
|
332
226
|
|
333
|
-
function updatePayoutState(NftId policyNftId, StateId newState) external restricted() {
|
334
|
-
updateState(
|
227
|
+
function updatePayoutState(NftId policyNftId, PayoutId payoutId, StateId newState) external restricted() {
|
228
|
+
updateState(_toPayoutKey32(policyNftId, payoutId), newState);
|
335
229
|
}
|
336
230
|
|
337
|
-
//---
|
338
|
-
function
|
339
|
-
|
340
|
-
|
341
|
-
|
342
|
-
|
343
|
-
|
344
|
-
|
345
|
-
|
346
|
-
}
|
347
|
-
|
348
|
-
|
349
|
-
|
350
|
-
|
351
|
-
|
352
|
-
|
353
|
-
internal
|
354
|
-
view
|
355
|
-
returns (
|
356
|
-
bool roleExists,
|
357
|
-
bool roleIsCustom
|
358
|
-
)
|
359
|
-
{
|
360
|
-
Key32 roleKey = toRoleKey32(roleId);
|
361
|
-
roleExists = exists(roleKey);
|
362
|
-
if (roleExists) {
|
363
|
-
roleIsCustom = abi.decode(getData(roleKey), (IAccess.RoleInfo)).isCustom;
|
364
|
-
} else {
|
365
|
-
roleIsCustom = isCustom;
|
231
|
+
//--- ITransferInterceptor ------------------------------------------------------------//
|
232
|
+
function nftMint(address to, uint256 tokenId) external onlyChainNft {
|
233
|
+
assert(_accessManager.roleMembers(INSTANCE_OWNER_ROLE()) == 0);// temp
|
234
|
+
assert(_accessManager.grantRole(INSTANCE_OWNER_ROLE(), to) == true);
|
235
|
+
}
|
236
|
+
|
237
|
+
function nftTransferFrom(address from, address to, uint256 tokenId) external onlyChainNft {
|
238
|
+
assert(_accessManager.revokeRole(INSTANCE_OWNER_ROLE(), from) == true);
|
239
|
+
assert(_accessManager.grantRole(INSTANCE_OWNER_ROLE(), to) == true);
|
240
|
+
}
|
241
|
+
|
242
|
+
//--- initial setup functions -------------------------------------------//
|
243
|
+
|
244
|
+
function setInstanceAccessManager(InstanceAccessManager accessManager) external restricted {
|
245
|
+
if(address(_accessManager) != address(0)) {
|
246
|
+
revert ErrorInstanceInstanceAccessManagerAlreadySet(address(_accessManager));
|
366
247
|
}
|
367
248
|
|
368
|
-
|
369
|
-
|
370
|
-
if(roleIdInt == ADMIN_ROLE || roleIdInt == PUBLIC_ROLE) {
|
371
|
-
revert IAccess.ErrorRoleIdInvalid(roleId);
|
249
|
+
if(accessManager.authority() != authority()) {
|
250
|
+
revert ErrorInstanceInstanceAccessManagerAuthorityMismatch(authority());
|
372
251
|
}
|
373
252
|
|
374
|
-
|
375
|
-
|
376
|
-
|
377
|
-
|
253
|
+
_accessManager = accessManager;
|
254
|
+
}
|
255
|
+
|
256
|
+
function setBundleManager(BundleManager bundleManager) external restricted() {
|
257
|
+
if(address(_bundleManager) != address(0)) {
|
258
|
+
revert ErrorInstanceBundleManagerAlreadySet(address(_bundleManager));
|
378
259
|
}
|
379
260
|
|
380
|
-
|
381
|
-
|
382
|
-
if (ShortStrings.byteLength(nameShort) == 0) {
|
383
|
-
revert IAccess.ErrorRoleNameEmpty(roleId);
|
261
|
+
if(bundleManager.getInstance() != Instance(this)) {
|
262
|
+
revert ErrorInstanceBundleManagerInstanceMismatch(address(this));
|
384
263
|
}
|
385
264
|
|
386
|
-
if
|
387
|
-
revert
|
265
|
+
if(bundleManager.authority() != authority()) {
|
266
|
+
revert ErrorInstanceBundleManagerAuthorityMismatch(authority());
|
388
267
|
}
|
268
|
+
|
269
|
+
_bundleManager = bundleManager;
|
389
270
|
}
|
390
271
|
|
391
|
-
function
|
272
|
+
function setInstanceReader(InstanceReader instanceReader) external restricted() {
|
273
|
+
if(instanceReader.getInstance() != Instance(this)) {
|
274
|
+
revert ErrorInstanceInstanceReaderInstanceMismatch(address(this));
|
275
|
+
}
|
392
276
|
|
277
|
+
_instanceReader = instanceReader;
|
393
278
|
}
|
394
279
|
|
395
|
-
|
396
|
-
return roleId.toKey32();
|
397
|
-
}
|
280
|
+
//--- external view functions -------------------------------------------//
|
398
281
|
|
399
|
-
function
|
400
|
-
return
|
282
|
+
function getInstanceReader() external view returns (InstanceReader) {
|
283
|
+
return _instanceReader;
|
401
284
|
}
|
402
285
|
|
403
|
-
function
|
404
|
-
return
|
286
|
+
function getBundleManager() external view returns (BundleManager) {
|
287
|
+
return _bundleManager;
|
405
288
|
}
|
406
289
|
|
407
|
-
function
|
408
|
-
return
|
290
|
+
function getInstanceAccessManager() external view returns (InstanceAccessManager) {
|
291
|
+
return _accessManager;
|
409
292
|
}
|
410
293
|
|
411
|
-
function
|
412
|
-
return
|
294
|
+
function getMajorVersion() external pure returns (VersionPart majorVersion) {
|
295
|
+
return VersionPartLib.toVersionPart(GIF_MAJOR_VERSION);
|
413
296
|
}
|
414
297
|
|
415
|
-
|
416
|
-
|
298
|
+
//--- internal view/pure functions --------------------------------------//
|
299
|
+
function _toNftKey32(NftId nftId, ObjectType objectType) private pure returns (Key32) {
|
300
|
+
return nftId.toKey32(objectType);
|
417
301
|
}
|
418
302
|
|
419
|
-
|
420
|
-
|
421
|
-
// return DistributionService(_registry.getServiceAddress("DistributionService", VersionPart.wrap(3)));
|
422
|
-
// }
|
423
|
-
|
424
|
-
// TODO reactivate when services are available
|
425
|
-
// function getProductService() external view returns (IProductService) {
|
426
|
-
// return ProductService(_registry.getServiceAddress("ProductService", VersionPart.wrap(3)));
|
427
|
-
// }
|
428
|
-
|
429
|
-
// TODO reactivate when services are available
|
430
|
-
// function getPoolService() external view returns (IPoolService) {
|
431
|
-
// return PoolService(_registry.getServiceAddress("PoolService", VersionPart.wrap(3)));
|
432
|
-
// }
|
433
|
-
|
434
|
-
function setInstanceReader(InstanceReader instanceReader) external restricted() {
|
435
|
-
require(address(_instanceReader) == address(0), "InstanceReader is set");
|
436
|
-
_instanceReader = instanceReader;
|
303
|
+
function _toClaimKey32(NftId policyNftId, ClaimId claimId) private pure returns (Key32) {
|
304
|
+
return claimId.toKey32(policyNftId);
|
437
305
|
}
|
438
306
|
|
439
|
-
function
|
440
|
-
return
|
307
|
+
function _toPayoutKey32(NftId policyNftId, PayoutId payoutId) private pure returns (Key32) {
|
308
|
+
return payoutId.toKey32(policyNftId);
|
441
309
|
}
|
442
310
|
}
|