@etherisc/gif-next 0.0.2-d288ca9-933 → 0.0.2-d30275e-758
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/base/IService.sol/IService.json → components/IComponent.sol/IComponent.json} +317 -133
- 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 +556 -246
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +389 -156
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +451 -3017
- package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +597 -179
- package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.dbg.json +4 -0
- package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.json +124 -0
- 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 +510 -209
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +316 -75
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +4 -0
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +2663 -0
- 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/ComponentService.sol/ComponentService.json +639 -0
- 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 +902 -0
- package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +4 -0
- package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.json +649 -0
- package/artifacts/contracts/instance/service/BundleService.sol/BundleService.dbg.json +4 -0
- package/artifacts/contracts/instance/service/BundleService.sol/BundleService.json +1326 -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 +1072 -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 +1515 -0
- package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +4 -0
- package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.json +757 -0
- package/artifacts/contracts/instance/service/IApplicationService.sol/IApplicationService.dbg.json +4 -0
- package/artifacts/contracts/instance/service/{IComponentOwnerService.sol/IComponentOwnerService.json → IApplicationService.sol/IApplicationService.json} +235 -200
- package/artifacts/contracts/instance/service/IBundleService.sol/IBundleService.dbg.json +4 -0
- package/artifacts/contracts/instance/service/IBundleService.sol/IBundleService.json +714 -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 +585 -160
- package/artifacts/contracts/instance/service/IPolicyService.sol/IPolicyService.dbg.json +4 -0
- package/artifacts/contracts/instance/service/IPolicyService.sol/IPolicyService.json +969 -0
- package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.json +544 -145
- package/artifacts/contracts/instance/service/IPricingService.sol/IPricingService.dbg.json +4 -0
- package/artifacts/contracts/instance/{base/ServiceBase.sol/ServiceBase.json → service/IPricingService.sol/IPricingService.json} +248 -198
- 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 +1575 -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 +1481 -0
- package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.dbg.json +4 -0
- package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.json +709 -0
- package/artifacts/contracts/instance/service/PricingService.sol/PricingService.dbg.json +4 -0
- package/artifacts/contracts/instance/service/PricingService.sol/PricingService.json +988 -0
- package/artifacts/contracts/instance/service/PricingServiceManager.sol/PricingServiceManager.dbg.json +4 -0
- package/artifacts/contracts/instance/service/PricingServiceManager.sol/PricingServiceManager.json +689 -0
- package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +4 -0
- package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +872 -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 +4 -0
- package/artifacts/contracts/{components/BaseComponent.sol/BaseComponent.json → shared/IService.sol/IService.json} +98 -77
- 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 +4 -0
- package/artifacts/contracts/{instance/base/ComponentServiceBase.sol/ComponentServiceBase.json → shared/Service.sol/Service.json} +185 -170
- 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 +209 -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 +253 -176
- 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 +65 -13
- package/contracts/instance/IInstanceService.sol +70 -8
- package/contracts/instance/Instance.sol +158 -363
- package/contracts/instance/InstanceAccessManager.sol +430 -177
- package/contracts/instance/InstanceAuthorizationsLib.sol +300 -0
- package/contracts/instance/InstanceReader.sol +69 -39
- package/contracts/instance/InstanceService.sol +257 -84
- package/contracts/instance/InstanceServiceManager.sol +11 -13
- package/contracts/instance/InstanceStore.sol +208 -0
- package/contracts/instance/ObjectManager.sol +82 -0
- package/contracts/instance/base/ComponentService.sol +148 -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 +185 -0
- package/contracts/instance/service/ApplicationServiceManager.sol +35 -0
- package/contracts/instance/service/BundleService.sol +440 -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 +342 -0
- package/contracts/instance/service/DistributionServiceManager.sol +51 -0
- package/contracts/instance/service/IApplicationService.sol +61 -0
- package/contracts/instance/service/IBundleService.sol +102 -0
- package/contracts/instance/service/IClaimService.sol +92 -0
- package/contracts/instance/service/IDistributionService.sol +75 -2
- package/contracts/instance/service/IPolicyService.sol +139 -0
- package/contracts/instance/service/IPoolService.sol +83 -18
- package/contracts/instance/service/IPricingService.sol +36 -0
- package/contracts/instance/service/IProductService.sol +7 -74
- package/contracts/instance/service/PolicyService.sol +577 -0
- package/contracts/instance/service/PolicyServiceManager.sol +54 -0
- package/contracts/instance/service/PoolService.sol +336 -0
- package/contracts/instance/service/PoolServiceManager.sol +51 -0
- package/contracts/instance/service/PricingService.sol +275 -0
- package/contracts/instance/service/PricingServiceManager.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 +52 -8
- package/contracts/registry/IRegistryService.sol +53 -20
- 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 +118 -271
- 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 +16 -0
- 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 +72 -0
- 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 +6 -7
- package/contracts/types/Amount.sol +70 -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 +16 -7
- 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/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/base/IService.sol/IService.dbg.json +0 -4
- package/artifacts/contracts/instance/base/ServiceBase.sol/ServiceBase.dbg.json +0 -4
- 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/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/base/IService.sol +0 -15
- package/contracts/instance/base/ServiceBase.sol +0 -44
- package/contracts/instance/service/ComponentOwnerService.sol +0 -317
- package/contracts/instance/service/IComponentOwnerService.sol +0 -20
@@ -1,442 +1,237 @@
|
|
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 {RiskId} from "../types/RiskId.sol";
|
9
|
+
import {ObjectType, BUNDLE, DISTRIBUTION, INSTANCE, POLICY, POOL, ROLE, PRODUCT, TARGET, COMPONENT, DISTRIBUTOR, DISTRIBUTOR_TYPE} from "../types/ObjectType.sol";
|
10
|
+
import {RoleId, RoleIdLib, eqRoleId, ADMIN_ROLE, INSTANCE_ROLE, INSTANCE_OWNER_ROLE} from "../types/RoleId.sol";
|
11
|
+
import {VersionPart, VersionPartLib} from "../types/Version.sol";
|
12
|
+
import {ClaimId} from "../types/ClaimId.sol";
|
13
|
+
import {ReferralId} from "../types/Referral.sol";
|
14
|
+
import {PayoutId} from "../types/PayoutId.sol";
|
15
|
+
import {DistributorType} from "../types/DistributorType.sol";
|
16
|
+
|
17
|
+
import {Registerable} from "../shared/Registerable.sol";
|
18
|
+
import {TokenHandler} from "../shared/TokenHandler.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
|
+
import {InstanceStore} from "./InstanceStore.sol";
|
27
|
+
|
28
|
+
import {KeyValueStore} from "./base/KeyValueStore.sol";
|
6
29
|
|
7
|
-
import {AccessManagedSimple} from "./AccessManagedSimple.sol";
|
8
|
-
import {AccessManagerSimple} from "./AccessManagerSimple.sol";
|
9
|
-
import {IAccess} from "./module/IAccess.sol";
|
10
30
|
import {IBundle} from "./module/IBundle.sol";
|
31
|
+
import {IComponents} from "./module/IComponents.sol";
|
32
|
+
import {IDistribution} from "./module/IDistribution.sol";
|
11
33
|
import {IPolicy} from "./module/IPolicy.sol";
|
12
34
|
import {IRisk} from "./module/IRisk.sol";
|
13
35
|
import {ISetup} from "./module/ISetup.sol";
|
14
|
-
|
15
|
-
import {
|
16
|
-
import {
|
17
|
-
import {
|
18
|
-
import {
|
19
|
-
import {
|
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";
|
36
|
+
|
37
|
+
import {IDistributionService} from "./service/IDistributionService.sol";
|
38
|
+
import {IPoolService} from "./service/IPoolService.sol";
|
39
|
+
import {IProductService} from "./service/IProductService.sol";
|
40
|
+
import {IPolicyService} from "./service/IPolicyService.sol";
|
41
|
+
import {IBundleService} from "./service/IBundleService.sol";
|
29
42
|
|
30
43
|
contract Instance is
|
31
|
-
AccessManagedSimple,
|
32
|
-
KeyValueStore,
|
33
44
|
IInstance,
|
34
|
-
|
45
|
+
AccessManagedUpgradeable,
|
35
46
|
Registerable
|
36
47
|
{
|
48
|
+
/* error ErrorInstanceInstanceReaderInstanceMismatch(address expectedInstance, address foundInstance);
|
37
49
|
|
38
|
-
|
39
|
-
|
40
|
-
|
50
|
+
error InstanceErrorBundleManagerAlreadySet();
|
51
|
+
error InstanceErrorBundleManagerAuthorityMismatch();
|
52
|
+
error InstanceErrorBundleManagerInstanceMismatch(address expectedInstance, address foundInstance);
|
41
53
|
|
42
|
-
|
54
|
+
error InstanceErrorAccessManagerAlreadySet();
|
55
|
+
error InstanceErrorAccessManagerAuthorityMismatch();
|
43
56
|
|
44
|
-
|
57
|
+
error InstanceErrorInstanceStoreAlreadySet();
|
58
|
+
error InstanceErrorInstanceStoreAuthorityMismatch();*/
|
45
59
|
|
46
|
-
|
47
|
-
mapping(RoleId roleId => EnumerableSet.AddressSet roleMembers) internal _roleMembers;
|
48
|
-
RoleId [] internal _roles;
|
60
|
+
uint256 public constant GIF_MAJOR_VERSION = 3;
|
49
61
|
|
50
|
-
|
62
|
+
bool private _initialized;
|
51
63
|
|
52
|
-
|
64
|
+
InstanceAccessManager internal _accessManager;
|
53
65
|
InstanceReader internal _instanceReader;
|
66
|
+
BundleManager internal _bundleManager;
|
67
|
+
InstanceStore internal _instanceStore;
|
54
68
|
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
69
|
+
modifier onlyChainNft() {
|
70
|
+
if(msg.sender != getRegistry().getChainNftAddress()) {
|
71
|
+
revert();
|
72
|
+
}
|
73
|
+
_;
|
59
74
|
}
|
60
75
|
|
61
|
-
function initialize(address
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
_registerInterface(type(IInstance).interfaceId);
|
71
|
-
_initialized = true;
|
72
|
-
}
|
76
|
+
function initialize(address authority, address registryAddress, address initialOwner)
|
77
|
+
external
|
78
|
+
initializer()
|
79
|
+
{
|
80
|
+
__AccessManaged_init(authority);
|
81
|
+
|
82
|
+
IRegistry registry = IRegistry(registryAddress);
|
83
|
+
initializeRegisterable(registryAddress, registry.getNftId(), INSTANCE(), true, initialOwner, "");
|
73
84
|
|
74
|
-
|
75
|
-
function createStandardRole(RoleId roleId, string memory name) external restricted() {
|
76
|
-
_createRole(roleId, name, false, true);
|
85
|
+
registerInterface(type(IInstance).interfaceId);
|
77
86
|
}
|
78
87
|
|
79
|
-
|
80
|
-
_createRole(roleId, name, true, true);
|
81
|
-
}
|
88
|
+
//--- Roles ------------------------------------------------------------//
|
82
89
|
|
83
|
-
function
|
84
|
-
|
85
|
-
|
86
|
-
|
90
|
+
function createRole(string memory roleName, string memory adminName)
|
91
|
+
external
|
92
|
+
restricted // INSTANCE_OWNER_ROLE
|
93
|
+
returns (RoleId roleId, RoleId admin)
|
94
|
+
{
|
95
|
+
(roleId, admin) = _accessManager.createRole(roleName, adminName);
|
87
96
|
}
|
88
97
|
|
89
|
-
function
|
90
|
-
|
98
|
+
function grantRole(RoleId roleId, address account)
|
99
|
+
external
|
100
|
+
restricted // INSTANCE_OWNER_ROLE
|
101
|
+
{
|
102
|
+
_accessManager.grantRole(roleId, account);
|
91
103
|
}
|
92
104
|
|
93
|
-
function
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
}
|
99
|
-
|
100
|
-
if (getState(roleKey) != ACTIVE()) {
|
101
|
-
revert IAccess.ErrorRoleIdNotActive(roleId);
|
102
|
-
}
|
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;
|
105
|
+
function revokeRole(RoleId roleId, address account)
|
106
|
+
external
|
107
|
+
restricted // INSTANCE_OWNER_ROLE
|
108
|
+
{
|
109
|
+
_accessManager.revokeRole(roleId, account);
|
111
110
|
}
|
112
111
|
|
113
|
-
|
114
|
-
Key32 roleKey = toRoleKey32(roleId);
|
112
|
+
//--- Targets ------------------------------------------------------------//
|
115
113
|
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
_accessManager.revokeRole(roleId.toInt(), member);
|
122
|
-
EnumerableSet.remove(_roleMembers[roleId], member);
|
123
|
-
return true;
|
124
|
-
}
|
125
|
-
|
126
|
-
return false;
|
114
|
+
function createTarget(address target, string memory name)
|
115
|
+
external
|
116
|
+
restricted // INSTANCE_OWNER_ROLE
|
117
|
+
{
|
118
|
+
_accessManager.createTarget(target, name);
|
127
119
|
}
|
128
120
|
|
129
|
-
|
130
|
-
|
131
|
-
|
132
|
-
|
133
|
-
|
134
|
-
|
135
|
-
|
136
|
-
|
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;
|
121
|
+
function setTargetFunctionRole(
|
122
|
+
string memory targetName,
|
123
|
+
bytes4[] calldata selectors,
|
124
|
+
RoleId roleId
|
125
|
+
)
|
126
|
+
external
|
127
|
+
restricted // INSTANCE_OWNER_ROLE
|
128
|
+
{
|
129
|
+
_accessManager.setTargetFunctionRole(targetName, selectors, roleId);
|
146
130
|
}
|
147
131
|
|
148
|
-
function
|
149
|
-
|
132
|
+
function setTargetLocked(address target, bool locked)
|
133
|
+
external
|
134
|
+
restricted // INSTANCE_OWNER_ROLE
|
135
|
+
{
|
136
|
+
_accessManager.setTargetLockedByInstance(target, locked);
|
150
137
|
}
|
151
138
|
|
152
|
-
|
153
|
-
return _roles[idx];
|
154
|
-
}
|
139
|
+
//--- ITransferInterceptor ------------------------------------------------------------//
|
155
140
|
|
156
|
-
function
|
157
|
-
|
141
|
+
function nftMint(address to, uint256 tokenId) external onlyChainNft {
|
142
|
+
assert(_accessManager.roleMembers(INSTANCE_OWNER_ROLE()) == 0);// temp
|
143
|
+
assert(_accessManager.grantRole(INSTANCE_OWNER_ROLE(), to) == true);
|
158
144
|
}
|
159
145
|
|
160
|
-
function
|
161
|
-
|
146
|
+
function nftTransferFrom(address from, address to, uint256 tokenId) external onlyChainNft {
|
147
|
+
assert(_accessManager.revokeRole(INSTANCE_OWNER_ROLE(), from) == true);
|
148
|
+
assert(_accessManager.grantRole(INSTANCE_OWNER_ROLE(), to) == true);
|
162
149
|
}
|
163
150
|
|
164
|
-
|
165
|
-
return EnumerableSet.at(_roleMembers[roleId], idx);
|
166
|
-
}
|
151
|
+
//--- initial setup functions -------------------------------------------//
|
167
152
|
|
168
|
-
function
|
169
|
-
if (
|
170
|
-
|
153
|
+
function setInstanceAccessManager(InstanceAccessManager accessManager) external restricted {
|
154
|
+
if(address(_accessManager) != address(0)) {
|
155
|
+
revert ErrorInstanceInstanceAccessManagerAlreadySet(address(_accessManager));
|
171
156
|
}
|
172
|
-
|
173
|
-
|
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);
|
157
|
+
if(accessManager.authority() != authority()) {
|
158
|
+
revert ErrorInstanceInstanceAccessManagerAuthorityMismatch(authority());
|
189
159
|
}
|
190
|
-
|
191
|
-
_accessManager.setTargetClosed(target, closed);
|
192
|
-
}
|
193
|
-
|
194
|
-
//--- ProductSetup ------------------------------------------------------//
|
195
|
-
function createProductSetup(NftId productNftId, ISetup.ProductSetupInfo memory setup) external restricted() {
|
196
|
-
create(_toNftKey32(productNftId, PRODUCT()), abi.encode(setup));
|
197
|
-
}
|
198
|
-
|
199
|
-
function updateProductSetup(NftId productNftId, ISetup.ProductSetupInfo memory setup, StateId newState) external restricted() {
|
200
|
-
update(_toNftKey32(productNftId, PRODUCT()), abi.encode(setup), newState);
|
201
|
-
}
|
202
|
-
|
203
|
-
function updateProductSetupState(NftId productNftId, StateId newState) external restricted() {
|
204
|
-
updateState(_toNftKey32(productNftId, PRODUCT()), newState);
|
205
|
-
}
|
206
|
-
|
207
|
-
//--- DistributionSetup ------------------------------------------------------//
|
208
|
-
function createDistributionSetup(NftId distributionNftId, ISetup.DistributionSetupInfo memory setup) external restricted() {
|
209
|
-
create(_toNftKey32(distributionNftId, DISTRIBUTION()), abi.encode(setup));
|
210
|
-
}
|
211
|
-
|
212
|
-
function updateDistributionSetup(NftId distributionNftId, ISetup.DistributionSetupInfo memory setup, StateId newState) external restricted() {
|
213
|
-
update(_toNftKey32(distributionNftId, DISTRIBUTION()), abi.encode(setup), newState);
|
214
|
-
}
|
215
|
-
|
216
|
-
function updateDistributionSetupState(NftId distributionNftId, StateId newState) external restricted() {
|
217
|
-
updateState(_toNftKey32(distributionNftId, DISTRIBUTION()), newState);
|
218
|
-
}
|
219
|
-
|
220
|
-
//--- PoolSetup ------------------------------------------------------//
|
221
|
-
function createPoolSetup(NftId distributionNftId, ISetup.PoolSetupInfo memory setup) external restricted() {
|
222
|
-
create(_toNftKey32(distributionNftId, POOL()), abi.encode(setup));
|
223
|
-
}
|
224
|
-
|
225
|
-
function updatePoolSetup(NftId distributionNftId, ISetup.PoolSetupInfo memory setup, StateId newState) external restricted() {
|
226
|
-
update(_toNftKey32(distributionNftId, POOL()), abi.encode(setup), newState);
|
227
|
-
}
|
228
|
-
|
229
|
-
function updatePoolSetupState(NftId distributionNftId, StateId newState) external restricted() {
|
230
|
-
updateState(_toNftKey32(distributionNftId, POOL()), newState);
|
231
|
-
}
|
232
|
-
|
233
|
-
//--- DistributorType ---------------------------------------------------//
|
234
|
-
function createDistributorType(NftId policyNftId, NumberId payoutId, IPolicy.PayoutInfo memory payout) external restricted() {
|
235
|
-
create(toPolicyKey32(policyNftId), abi.encode(payout));
|
236
|
-
}
|
237
|
-
|
238
|
-
function updateDistributorType(NftId policyNftId, NumberId payoutId, IPolicy.PayoutInfo memory payout, StateId newState) external restricted() {
|
239
|
-
update(toPolicyKey32(policyNftId), abi.encode(payout), newState);
|
240
|
-
}
|
241
|
-
|
242
|
-
function updateDistributorTypeState(NftId policyNftId, StateId newState) external restricted() {
|
243
|
-
updateState(toPolicyKey32(policyNftId), newState);
|
244
|
-
}
|
245
|
-
|
246
|
-
//--- Distributor -------------------------------------------------------//
|
247
|
-
function createDistributor(NftId policyNftId, NumberId payoutId, IPolicy.PayoutInfo memory payout) external restricted() {
|
248
|
-
create(toPolicyKey32(policyNftId), abi.encode(payout));
|
249
|
-
}
|
250
|
-
|
251
|
-
function updateDistributor(NftId policyNftId, NumberId payoutId, IPolicy.PayoutInfo memory payout, StateId newState) external restricted() {
|
252
|
-
update(toPolicyKey32(policyNftId), abi.encode(payout), newState);
|
253
|
-
}
|
254
|
-
|
255
|
-
function updateDistributorState(NftId policyNftId, StateId newState) external restricted() {
|
256
|
-
updateState(toPolicyKey32(policyNftId), newState);
|
257
|
-
}
|
258
|
-
|
259
|
-
//--- Referral ----------------------------------------------------------//
|
260
|
-
function createReferral(NftId policyNftId, NumberId payoutId, IPolicy.PayoutInfo memory payout) external restricted() {
|
261
|
-
create(toPolicyKey32(policyNftId), abi.encode(payout));
|
262
|
-
}
|
263
|
-
|
264
|
-
function updateReferral(NftId policyNftId, NumberId payoutId, IPolicy.PayoutInfo memory payout, StateId newState) external restricted() {
|
265
|
-
update(toPolicyKey32(policyNftId), abi.encode(payout), newState);
|
266
|
-
}
|
267
|
-
|
268
|
-
function updateReferralState(NftId policyNftId, StateId newState) external restricted() {
|
269
|
-
updateState(toPolicyKey32(policyNftId), newState);
|
270
|
-
}
|
271
|
-
|
272
|
-
//--- Bundle ------------------------------------------------------------//
|
273
|
-
function createBundle(NftId bundleNftId, IBundle.BundleInfo memory bundle) external restricted() {
|
274
|
-
create(toBundleKey32(bundleNftId), abi.encode(bundle));
|
275
|
-
}
|
276
|
-
|
277
|
-
function updateBundle(NftId bundleNftId, IBundle.BundleInfo memory bundle, StateId newState) external restricted() {
|
278
|
-
update(toBundleKey32(bundleNftId), abi.encode(bundle), newState);
|
279
|
-
}
|
280
|
-
|
281
|
-
function updateBundleState(NftId bundleNftId, StateId newState) external restricted() {
|
282
|
-
updateState(toBundleKey32(bundleNftId), newState);
|
283
|
-
}
|
284
|
-
|
285
|
-
//--- Risk --------------------------------------------------------------//
|
286
|
-
function createRisk(RiskId riskId, IRisk.RiskInfo memory risk) external restricted() {
|
287
|
-
create(riskId.toKey32(), abi.encode(risk));
|
288
|
-
}
|
289
|
-
|
290
|
-
function updateRisk(RiskId riskId, IRisk.RiskInfo memory risk, StateId newState) external restricted() {
|
291
|
-
update(riskId.toKey32(), abi.encode(risk), newState);
|
292
|
-
}
|
293
|
-
|
294
|
-
function updateRiskState(RiskId riskId, StateId newState) external restricted() {
|
295
|
-
updateState(riskId.toKey32(), newState);
|
296
|
-
}
|
297
|
-
|
298
|
-
//--- Policy ------------------------------------------------------------//
|
299
|
-
function createPolicy(NftId policyNftId, IPolicy.PolicyInfo memory policy) external restricted() {
|
300
|
-
create(toPolicyKey32(policyNftId), abi.encode(policy));
|
301
|
-
}
|
302
|
-
|
303
|
-
function updatePolicy(NftId policyNftId, IPolicy.PolicyInfo memory policy, StateId newState) external restricted() {
|
304
|
-
update(toPolicyKey32(policyNftId), abi.encode(policy), newState);
|
305
|
-
}
|
306
|
-
|
307
|
-
function updatePolicyState(NftId policyNftId, StateId newState) external restricted() {
|
308
|
-
updateState(toPolicyKey32(policyNftId), newState);
|
160
|
+
_accessManager = accessManager;
|
309
161
|
}
|
310
|
-
|
311
|
-
|
312
|
-
|
313
|
-
|
162
|
+
|
163
|
+
function setBundleManager(BundleManager bundleManager) external restricted() {
|
164
|
+
if(address(_bundleManager) != address(0)) {
|
165
|
+
revert ErrorInstanceBundleManagerAlreadySet(address(_bundleManager));
|
166
|
+
}
|
167
|
+
if(bundleManager.getInstance() != Instance(this)) {
|
168
|
+
revert ErrorInstanceBundleManagerInstanceMismatch(address(this));
|
169
|
+
}
|
170
|
+
if(bundleManager.authority() != authority()) {
|
171
|
+
revert ErrorInstanceBundleManagerAuthorityMismatch(authority());
|
172
|
+
}
|
173
|
+
_bundleManager = bundleManager;
|
314
174
|
}
|
315
175
|
|
316
|
-
function
|
317
|
-
|
318
|
-
|
176
|
+
function setInstanceReader(InstanceReader instanceReader) external restricted() {
|
177
|
+
if(instanceReader.getInstance() != Instance(this)) {
|
178
|
+
revert ErrorInstanceInstanceReaderInstanceMismatch(address(this));
|
179
|
+
}
|
319
180
|
|
320
|
-
|
321
|
-
updateState(toPolicyKey32(policyNftId), newState);
|
181
|
+
_instanceReader = instanceReader;
|
322
182
|
}
|
323
183
|
|
324
|
-
//---
|
325
|
-
function createPayout(NftId policyNftId, NumberId payoutId, IPolicy.PayoutInfo memory payout) external restricted() {
|
326
|
-
create(toPolicyKey32(policyNftId), abi.encode(payout));
|
327
|
-
}
|
184
|
+
//--- external view functions -------------------------------------------//
|
328
185
|
|
329
|
-
function
|
330
|
-
|
186
|
+
function getInstanceReader() external view returns (InstanceReader) {
|
187
|
+
return _instanceReader;
|
331
188
|
}
|
332
189
|
|
333
|
-
function
|
334
|
-
|
190
|
+
function getBundleManager() external view returns (BundleManager) {
|
191
|
+
return _bundleManager;
|
335
192
|
}
|
336
193
|
|
337
|
-
|
338
|
-
|
339
|
-
internal
|
340
|
-
pure
|
341
|
-
returns (IAccess.RoleInfo memory role)
|
342
|
-
{
|
343
|
-
return IAccess.RoleInfo(
|
344
|
-
ShortStrings.toShortString(name),
|
345
|
-
isCustom);
|
194
|
+
function getInstanceAccessManager() external view returns (InstanceAccessManager) {
|
195
|
+
return _accessManager;
|
346
196
|
}
|
347
197
|
|
348
|
-
function
|
349
|
-
|
350
|
-
|
351
|
-
bool isCustom
|
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;
|
366
|
-
}
|
367
|
-
|
368
|
-
// check role id
|
369
|
-
uint64 roleIdInt = RoleId.unwrap(roleId);
|
370
|
-
if(roleIdInt == ADMIN_ROLE || roleIdInt == PUBLIC_ROLE) {
|
371
|
-
revert IAccess.ErrorRoleIdInvalid(roleId);
|
198
|
+
function setInstanceStore(InstanceStore instanceStore) external restricted {
|
199
|
+
if(address(_instanceStore) != address(0)) {
|
200
|
+
revert ErrorInstanceInstanceStoreAlreadySet(address(_instanceStore));
|
372
201
|
}
|
373
|
-
|
374
|
-
|
375
|
-
revert IAccess.ErrorRoleIdTooSmall(roleId);
|
376
|
-
} else if (roleIsCustom && roleIdInt >= CUSTOM_ROLE_ID_MIN) {
|
377
|
-
revert IAccess.ErrorRoleIdTooBig(roleId);
|
202
|
+
if(instanceStore.authority() != authority()) {
|
203
|
+
revert ErrorInstanceInstanceStoreAuthorityMismatch(authority());
|
378
204
|
}
|
379
|
-
|
380
|
-
// role name checks
|
381
|
-
ShortString nameShort = ShortStrings.toShortString(name);
|
382
|
-
if (ShortStrings.byteLength(nameShort) == 0) {
|
383
|
-
revert IAccess.ErrorRoleNameEmpty(roleId);
|
384
|
-
}
|
385
|
-
|
386
|
-
if (_role[nameShort] != RoleIdLib.zero() && _role[nameShort] != roleId) {
|
387
|
-
revert IAccess.ErrorRoleNameNotUnique(_role[nameShort], nameShort);
|
388
|
-
}
|
389
|
-
}
|
390
|
-
|
391
|
-
function _validateTargetParameters(address target, IAccess.TargetInfo memory targetInfo) internal view {
|
392
|
-
|
205
|
+
_instanceStore = instanceStore;
|
393
206
|
}
|
394
207
|
|
395
|
-
function
|
396
|
-
return
|
208
|
+
function getInstanceStore() external view returns (InstanceStore) {
|
209
|
+
return _instanceStore;
|
397
210
|
}
|
398
211
|
|
399
|
-
function
|
400
|
-
return
|
212
|
+
function getMajorVersion() external pure returns (VersionPart majorVersion) {
|
213
|
+
return VersionPartLib.toVersionPart(GIF_MAJOR_VERSION);
|
401
214
|
}
|
402
215
|
|
403
|
-
function
|
404
|
-
return
|
216
|
+
function getDistributionService() external view returns (IDistributionService) {
|
217
|
+
return IDistributionService(getRegistry().getServiceAddress(DISTRIBUTION(), VersionPart.wrap(3)));
|
405
218
|
}
|
406
219
|
|
407
|
-
function
|
408
|
-
return
|
220
|
+
function getProductService() external view returns (IProductService) {
|
221
|
+
return IProductService(getRegistry().getServiceAddress(PRODUCT(), VersionPart.wrap(3)));
|
409
222
|
}
|
410
223
|
|
411
|
-
function
|
412
|
-
return
|
224
|
+
function getPoolService() external view returns (IPoolService) {
|
225
|
+
return IPoolService(getRegistry().getServiceAddress(POOL(), VersionPart.wrap(3)));
|
413
226
|
}
|
414
227
|
|
415
|
-
function
|
416
|
-
return
|
228
|
+
function getPolicyService() external view returns (IPolicyService) {
|
229
|
+
return IPolicyService(getRegistry().getServiceAddress(POLICY(), VersionPart.wrap(3)));
|
417
230
|
}
|
418
231
|
|
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;
|
232
|
+
function getBundleService() external view returns (IBundleService) {
|
233
|
+
return IBundleService(getRegistry().getServiceAddress(BUNDLE(), VersionPart.wrap(3)));
|
437
234
|
}
|
438
235
|
|
439
|
-
|
440
|
-
|
441
|
-
}
|
442
|
-
}
|
236
|
+
//--- internal view/pure functions --------------------------------------//
|
237
|
+
}
|