@etherisc/gif-next 0.0.2-f7be756-963 → 0.0.2-f7bec40-735
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 +337 -19
- package/artifacts/contracts/components/Component.sol/Component.dbg.json +1 -1
- package/artifacts/contracts/components/Component.sol/Component.json +698 -30
- package/artifacts/contracts/components/Distribution.sol/Distribution.dbg.json +4 -0
- package/artifacts/contracts/components/Distribution.sol/Distribution.json +1376 -0
- package/artifacts/contracts/components/IComponent.sol/IComponent.dbg.json +4 -0
- package/artifacts/contracts/components/IComponent.sol/IComponent.json +636 -0
- package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.dbg.json +4 -0
- package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.json +1000 -0
- package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +4 -0
- package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.json +1095 -0
- package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +4 -0
- package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.json +861 -0
- package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +1 -1
- package/artifacts/contracts/components/Pool.sol/Pool.json +1214 -135
- package/artifacts/contracts/components/Product.sol/Product.dbg.json +1 -1
- package/artifacts/contracts/components/Product.sol/Product.json +1008 -156
- 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/Cloneable.sol/Cloneable.json +190 -0
- package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstance.sol/IInstance.json +312 -1138
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +4 -0
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +616 -0
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +441 -1229
- package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +4 -0
- package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +1348 -0
- 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 +4 -0
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +1569 -0
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +4 -0
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +979 -0
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +4 -0
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +656 -0
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +4 -0
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +2788 -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 +631 -0
- package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +4 -0
- package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.json +429 -0
- package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +4 -0
- package/artifacts/contracts/instance/{lifecycle/ILifecycle.sol/ILifecycleModule.json → base/ILifecycle.sol/ILifecycle.json} +10 -77
- package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +4 -0
- package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +532 -0
- package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +4 -0
- package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +194 -0
- package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +4 -0
- package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +237 -0
- package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +4 -0
- package/artifacts/contracts/instance/{access/IAccess.sol/IAccess.json → module/IBundle.sol/IBundle.json} +2 -2
- package/artifacts/contracts/instance/module/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 +4 -0
- package/artifacts/contracts/instance/{component/IComponent.sol/IComponent.json → module/IDistribution.sol/IDistribution.json} +2 -2
- package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +4 -0
- package/artifacts/contracts/instance/{policy → module}/IPolicy.sol/IPolicy.json +1 -1
- package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +4 -0
- package/artifacts/contracts/instance/{pool/IPoolModule.sol/IPool.json → module/IRisk.sol/IRisk.json} +2 -2
- package/artifacts/contracts/instance/module/ISetup.sol/ISetup.dbg.json +4 -0
- package/artifacts/contracts/instance/module/ISetup.sol/ISetup.json +10 -0
- package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.dbg.json +4 -0
- package/artifacts/contracts/instance/{treasury → module}/ITreasury.sol/ITreasury.json +1 -1
- package/artifacts/contracts/instance/service/ApplicationService.sol/ApplicationService.dbg.json +4 -0
- package/artifacts/contracts/instance/service/ApplicationService.sol/ApplicationService.json +918 -0
- package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +4 -0
- package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.json +648 -0
- package/artifacts/contracts/instance/service/BundleService.sol/BundleService.dbg.json +4 -0
- package/artifacts/contracts/instance/service/BundleService.sol/BundleService.json +1288 -0
- package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.dbg.json +4 -0
- package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.json +696 -0
- package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.dbg.json +4 -0
- package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.json +1384 -0
- package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +4 -0
- package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.json +752 -0
- package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +4 -0
- package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +1556 -0
- package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +4 -0
- package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.json +780 -0
- package/artifacts/contracts/instance/service/IApplicationService.sol/IApplicationService.dbg.json +4 -0
- package/artifacts/contracts/instance/service/IApplicationService.sol/IApplicationService.json +493 -0
- package/artifacts/contracts/instance/service/IBundleService.sol/IBundleService.dbg.json +4 -0
- package/artifacts/contracts/instance/service/IBundleService.sol/IBundleService.json +735 -0
- package/artifacts/contracts/instance/service/IClaimService.sol/IClaimService.dbg.json +4 -0
- package/artifacts/contracts/instance/service/IClaimService.sol/IClaimService.json +743 -0
- package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.dbg.json +4 -0
- package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.json +840 -0
- package/artifacts/contracts/instance/service/IPolicyService.sol/IPolicyService.dbg.json +4 -0
- package/artifacts/contracts/instance/service/IPolicyService.sol/IPolicyService.json +651 -0
- package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +4 -0
- package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.json +1077 -0
- package/artifacts/contracts/instance/service/IPricingService.sol/IPricingService.dbg.json +4 -0
- package/artifacts/contracts/instance/service/IPricingService.sol/IPricingService.json +510 -0
- package/artifacts/contracts/instance/service/IProductService.sol/IProductService.dbg.json +4 -0
- package/artifacts/contracts/instance/service/IProductService.sol/IProductService.json +442 -0
- package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.dbg.json +4 -0
- package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.json +1281 -0
- package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +4 -0
- package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.json +740 -0
- package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +4 -0
- package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +1622 -0
- package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.dbg.json +4 -0
- package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.json +708 -0
- package/artifacts/contracts/instance/service/PricingService.sol/PricingService.dbg.json +4 -0
- package/artifacts/contracts/instance/service/PricingService.sol/PricingService.json +1004 -0
- package/artifacts/contracts/instance/service/PricingServiceManager.sol/PricingServiceManager.dbg.json +4 -0
- package/artifacts/contracts/instance/service/PricingServiceManager.sol/PricingServiceManager.json +688 -0
- package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +4 -0
- package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +864 -0
- package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.dbg.json +4 -0
- package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.json +640 -0
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +252 -2
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +595 -27
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +4 -0
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +858 -0
- package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +4 -0
- package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +52 -0
- package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
- package/artifacts/contracts/registry/Registry.sol/Registry.json +652 -50
- 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 +4 -0
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +1150 -0
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +4 -0
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +657 -0
- 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 +485 -0
- package/artifacts/contracts/shared/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.dbg.json +4 -0
- package/artifacts/contracts/shared/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.json +1206 -0
- package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.dbg.json +4 -0
- package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.json +107 -0
- package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +4 -0
- package/artifacts/contracts/shared/ERC165.sol/ERC165.json +73 -0
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +4 -0
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +125 -0
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +4 -0
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +189 -0
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +4 -0
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +175 -0
- package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +4 -0
- package/artifacts/contracts/{instance/access/IAccess.sol/IAccessCheckRole.json → shared/IRegistryLinked.sol/IRegistryLinked.json} +11 -11
- package/artifacts/contracts/shared/IService.sol/IService.dbg.json +4 -0
- package/artifacts/contracts/shared/IService.sol/IService.json +327 -0
- package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +4 -0
- package/artifacts/contracts/shared/IVersionable.sol/IVersionable.json +55 -0
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +4 -0
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +238 -0
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +4 -0
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +302 -0
- package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +4 -0
- package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +569 -0
- package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +4 -0
- package/artifacts/contracts/shared/Registerable.sol/Registerable.json +339 -0
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +4 -0
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +71 -0
- package/artifacts/contracts/shared/Service.sol/Service.dbg.json +4 -0
- package/artifacts/contracts/{registry/IChainNft.sol/IChainNft.json → shared/Service.sol/Service.json} +256 -220
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +4 -0
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +114 -0
- package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
- package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +129 -0
- package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +4 -0
- package/artifacts/contracts/shared/Versionable.sol/Versionable.json +78 -0
- package/artifacts/contracts/test/TestFee.sol/TestFee.dbg.json +4 -0
- package/artifacts/contracts/test/TestFee.sol/TestFee.json +119 -0
- package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.dbg.json +4 -0
- package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.json +370 -0
- package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.dbg.json +4 -0
- package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.json +116 -0
- package/artifacts/contracts/test/TestService.sol/TestService.dbg.json +4 -0
- package/artifacts/contracts/test/TestService.sol/TestService.json +588 -0
- package/artifacts/contracts/test/TestToken.sol/TestUsdc.dbg.json +4 -0
- package/artifacts/contracts/test/TestToken.sol/TestUsdc.json +376 -0
- package/artifacts/contracts/test/TestVersion.sol/TestVersion.dbg.json +4 -0
- package/artifacts/contracts/test/TestVersion.sol/TestVersion.json +218 -0
- package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.dbg.json +4 -0
- package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.json +104 -0
- package/artifacts/contracts/test/Usdc.sol/USDC.dbg.json +4 -0
- package/artifacts/contracts/test/Usdc.sol/USDC.json +376 -0
- package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.dbg.json +4 -0
- package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.json +10 -0
- package/artifacts/contracts/types/Amount.sol/AmountLib.dbg.json +4 -0
- package/artifacts/contracts/types/Amount.sol/AmountLib.json +281 -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 +4 -0
- package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.json +104 -0
- package/artifacts/contracts/types/Fee.sol/FeeLib.dbg.json +4 -0
- package/artifacts/contracts/types/Fee.sol/FeeLib.json +312 -0
- package/artifacts/contracts/types/Key32.sol/Key32Lib.dbg.json +4 -0
- package/artifacts/contracts/types/Key32.sol/Key32Lib.json +125 -0
- package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +1 -1
- package/artifacts/contracts/types/NftId.sol/NftIdLib.json +78 -4
- package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.dbg.json +4 -0
- package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.json +33 -0
- package/artifacts/contracts/types/NumberId.sol/NumberIdLib.dbg.json +4 -0
- package/artifacts/contracts/types/NumberId.sol/NumberIdLib.json +100 -0
- package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
- package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.json +2 -2
- package/artifacts/contracts/types/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 +4 -0
- package/artifacts/contracts/types/Referral.sol/ReferralLib.json +142 -0
- package/artifacts/contracts/types/RiskId.sol/RiskIdLib.dbg.json +4 -0
- package/artifacts/contracts/types/RiskId.sol/RiskIdLib.json +86 -0
- package/artifacts/contracts/types/RoleId.sol/RoleIdLib.dbg.json +4 -0
- package/artifacts/contracts/types/RoleId.sol/RoleIdLib.json +156 -0
- package/artifacts/contracts/types/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 +110 -4
- package/artifacts/contracts/types/UFixed.sol/MathLib.dbg.json +4 -0
- package/artifacts/contracts/{experiment/types/TypeB.sol/TypeBLib.json → types/UFixed.sol/MathLib.json} +4 -4
- package/artifacts/contracts/types/UFixed.sol/UFixedLib.dbg.json +4 -0
- package/artifacts/contracts/types/UFixed.sol/UFixedLib.json +479 -0
- package/artifacts/contracts/types/Version.sol/VersionLib.dbg.json +4 -0
- package/artifacts/contracts/types/Version.sol/VersionLib.json +177 -0
- package/artifacts/contracts/types/Version.sol/VersionPartLib.dbg.json +4 -0
- package/artifacts/contracts/types/Version.sol/VersionPartLib.json +49 -0
- package/contracts/components/Component.sol +245 -50
- package/contracts/components/Distribution.sol +285 -0
- package/contracts/components/IComponent.sol +90 -0
- package/contracts/components/IDistributionComponent.sol +71 -0
- package/contracts/components/IPoolComponent.sol +114 -0
- package/contracts/components/IProductComponent.sol +41 -0
- package/contracts/components/Pool.sol +280 -30
- package/contracts/components/Product.sol +337 -51
- package/contracts/instance/BundleManager.sol +126 -0
- package/contracts/instance/Cloneable.sol +51 -0
- package/contracts/instance/IInstance.sol +74 -22
- package/contracts/instance/IInstanceService.sol +73 -0
- package/contracts/instance/Instance.sol +210 -53
- package/contracts/instance/InstanceAccessManager.sol +541 -0
- package/contracts/instance/InstanceAuthorizationsLib.sol +308 -0
- package/contracts/instance/InstanceReader.sol +368 -0
- package/contracts/instance/InstanceService.sol +308 -0
- package/contracts/instance/InstanceServiceManager.sol +54 -0
- package/contracts/instance/InstanceStore.sol +212 -0
- package/contracts/instance/ObjectManager.sol +82 -0
- package/contracts/instance/base/ComponentService.sol +148 -0
- package/contracts/instance/base/IKeyValueStore.sol +49 -0
- package/contracts/instance/base/ILifecycle.sol +30 -0
- package/contracts/instance/base/KeyValueStore.sol +149 -0
- package/contracts/instance/base/Lifecycle.sol +120 -0
- package/contracts/instance/module/IAccess.sol +54 -0
- package/contracts/instance/module/IBundle.sol +23 -0
- package/contracts/instance/module/IComponents.sol +41 -0
- package/contracts/instance/module/IDistribution.sol +42 -0
- package/contracts/instance/module/IPolicy.sol +77 -0
- package/contracts/instance/module/IRisk.sol +11 -0
- package/contracts/instance/module/ISetup.sol +33 -0
- package/contracts/instance/module/ITreasury.sol +23 -0
- package/contracts/instance/service/ApplicationService.sol +186 -0
- package/contracts/instance/service/ApplicationServiceManager.sol +35 -0
- package/contracts/instance/service/BundleService.sol +382 -0
- package/contracts/instance/service/BundleServiceManager.sol +51 -0
- package/contracts/instance/service/ClaimService.sol +437 -0
- package/contracts/instance/service/ClaimServiceManager.sol +35 -0
- package/contracts/instance/service/DistributionService.sol +348 -0
- package/contracts/instance/service/DistributionServiceManager.sol +51 -0
- package/contracts/instance/service/IApplicationService.sol +62 -0
- package/contracts/instance/service/IBundleService.sol +118 -0
- package/contracts/instance/service/IClaimService.sol +90 -0
- package/contracts/instance/service/IDistributionService.sol +87 -0
- package/contracts/instance/service/IPolicyService.sol +80 -0
- package/contracts/instance/service/IPoolService.sol +114 -0
- package/contracts/instance/service/IPricingService.sol +37 -0
- package/contracts/instance/service/IProductService.sol +40 -0
- package/contracts/instance/service/PolicyService.sol +376 -0
- package/contracts/instance/service/PolicyServiceManager.sol +54 -0
- package/contracts/instance/service/PoolService.sol +403 -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 +137 -62
- package/contracts/registry/IRegistry.sol +75 -41
- package/contracts/registry/IRegistryService.sol +66 -0
- package/contracts/registry/ITransferInterceptor.sol +7 -0
- package/contracts/registry/Registry.sol +413 -128
- package/contracts/registry/RegistryAccessManager.sol +216 -0
- package/contracts/registry/RegistryService.sol +286 -0
- package/contracts/registry/RegistryServiceManager.sol +62 -0
- package/contracts/registry/ReleaseManager.sol +324 -0
- package/contracts/registry/TokenRegistry.sol +116 -0
- package/contracts/shared/AccessManagerUpgradeableInitializeable.sol +13 -0
- package/contracts/shared/ContractDeployerLib.sol +72 -0
- package/contracts/shared/ERC165.sol +27 -0
- package/contracts/shared/INftOwnable.sol +23 -0
- package/contracts/shared/IPolicyHolder.sol +40 -0
- package/contracts/shared/IRegisterable.sol +15 -0
- package/contracts/shared/IRegistryLinked.sol +11 -0
- package/contracts/shared/IService.sol +18 -0
- package/contracts/shared/IVersionable.sol +53 -0
- package/contracts/shared/NftOwnable.sol +118 -0
- package/contracts/shared/PolicyHolder.sol +94 -0
- package/contracts/shared/ProxyManager.sol +169 -0
- package/contracts/shared/Registerable.sol +75 -0
- package/contracts/shared/RegistryLinked.sol +43 -0
- package/contracts/shared/Service.sol +72 -0
- package/contracts/shared/TokenHandler.sol +35 -0
- package/contracts/shared/UpgradableProxyWithAdmin.sol +16 -0
- package/contracts/shared/Versionable.sol +59 -0
- package/contracts/test/TestFee.sol +25 -0
- package/contracts/test/TestRegisterable.sol +18 -0
- package/contracts/test/TestRoleId.sol +14 -0
- package/contracts/test/TestService.sol +25 -0
- package/contracts/{mock/Dip.sol → test/TestToken.sol} +5 -5
- package/contracts/test/TestVersion.sol +44 -0
- package/contracts/test/TestVersionable.sol +17 -0
- package/contracts/{mock → test}/Usdc.sol +1 -1
- package/contracts/types/AddressSet.sol +58 -0
- package/contracts/types/Amount.sol +109 -0
- package/contracts/types/Blocknumber.sol +1 -0
- package/contracts/types/ClaimId.sol +75 -0
- package/contracts/types/DistributorType.sol +55 -0
- package/contracts/types/Fee.sol +53 -20
- package/contracts/types/Key32.sol +50 -0
- package/contracts/types/NftId.sol +30 -1
- package/contracts/types/NftIdSet.sol +62 -0
- package/contracts/types/NumberId.sol +52 -0
- package/contracts/types/ObjectType.sol +69 -15
- package/contracts/types/PayoutId.sol +82 -0
- package/contracts/types/Referral.sol +89 -0
- package/contracts/types/RiskId.sol +43 -0
- package/contracts/types/RoleId.sol +97 -0
- package/contracts/types/Seconds.sol +54 -0
- package/contracts/types/StateId.sol +23 -4
- package/contracts/types/Timestamp.sol +36 -6
- package/contracts/types/UFixed.sol +139 -23
- package/contracts/types/Version.sol +108 -0
- package/package.json +11 -5
- package/artifacts/contracts/components/Component.sol/InstanceLinked.dbg.json +0 -4
- package/artifacts/contracts/components/Component.sol/InstanceLinked.json +0 -35
- package/artifacts/contracts/components/IPool.sol/IPoolComponent.dbg.json +0 -4
- package/artifacts/contracts/components/IPool.sol/IPoolComponent.json +0 -255
- package/artifacts/contracts/components/IProduct.sol/IProductComponent.dbg.json +0 -4
- package/artifacts/contracts/components/IProduct.sol/IProductComponent.json +0 -74
- 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/IB.sol/IB.json +0 -50
- 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/instance/access/Access.sol/AccessModule.dbg.json +0 -4
- package/artifacts/contracts/instance/access/Access.sol/AccessModule.json +0 -400
- package/artifacts/contracts/instance/access/IAccess.sol/IAccess.dbg.json +0 -4
- package/artifacts/contracts/instance/access/IAccess.sol/IAccessCheckRole.dbg.json +0 -4
- package/artifacts/contracts/instance/access/IAccess.sol/IAccessComponentTypeRoles.dbg.json +0 -4
- package/artifacts/contracts/instance/access/IAccess.sol/IAccessComponentTypeRoles.json +0 -50
- package/artifacts/contracts/instance/access/IAccess.sol/IAccessModule.dbg.json +0 -4
- package/artifacts/contracts/instance/access/IAccess.sol/IAccessModule.json +0 -336
- package/artifacts/contracts/instance/component/ComponentModule.sol/ComponentModule.dbg.json +0 -4
- package/artifacts/contracts/instance/component/ComponentModule.sol/ComponentModule.json +0 -299
- package/artifacts/contracts/instance/component/ComponentModule.sol/ComponentOwnerService.dbg.json +0 -4
- package/artifacts/contracts/instance/component/ComponentModule.sol/ComponentOwnerService.json +0 -202
- package/artifacts/contracts/instance/component/IComponent.sol/IComponent.dbg.json +0 -4
- package/artifacts/contracts/instance/component/IComponent.sol/IComponentContract.dbg.json +0 -4
- package/artifacts/contracts/instance/component/IComponent.sol/IComponentContract.json +0 -205
- package/artifacts/contracts/instance/component/IComponent.sol/IComponentModule.dbg.json +0 -4
- package/artifacts/contracts/instance/component/IComponent.sol/IComponentModule.json +0 -217
- package/artifacts/contracts/instance/component/IComponent.sol/IComponentOwnerService.dbg.json +0 -4
- package/artifacts/contracts/instance/component/IComponent.sol/IComponentOwnerService.json +0 -141
- package/artifacts/contracts/instance/component/IComponent.sol/IInstanceLinked.dbg.json +0 -4
- package/artifacts/contracts/instance/component/IComponent.sol/IInstanceLinked.json +0 -24
- package/artifacts/contracts/instance/lifecycle/ILifecycle.sol/ILifecycle.dbg.json +0 -4
- package/artifacts/contracts/instance/lifecycle/ILifecycle.sol/ILifecycle.json +0 -134
- package/artifacts/contracts/instance/lifecycle/ILifecycle.sol/ILifecycleModule.dbg.json +0 -4
- package/artifacts/contracts/instance/lifecycle/LifecycleModule.sol/LifecycleModule.dbg.json +0 -4
- package/artifacts/contracts/instance/lifecycle/LifecycleModule.sol/LifecycleModule.json +0 -221
- package/artifacts/contracts/instance/policy/IPolicy.sol/IPolicy.dbg.json +0 -4
- package/artifacts/contracts/instance/policy/IPolicy.sol/IPolicyModule.dbg.json +0 -4
- package/artifacts/contracts/instance/policy/IPolicy.sol/IPolicyModule.json +0 -254
- package/artifacts/contracts/instance/policy/PolicyModule.sol/PolicyModule.dbg.json +0 -4
- package/artifacts/contracts/instance/policy/PolicyModule.sol/PolicyModule.json +0 -254
- package/artifacts/contracts/instance/pool/IPoolModule.sol/IPool.dbg.json +0 -4
- package/artifacts/contracts/instance/pool/IPoolModule.sol/IPoolModule.dbg.json +0 -4
- package/artifacts/contracts/instance/pool/IPoolModule.sol/IPoolModule.json +0 -129
- package/artifacts/contracts/instance/pool/PoolModule.sol/PoolModule.dbg.json +0 -4
- package/artifacts/contracts/instance/pool/PoolModule.sol/PoolModule.json +0 -155
- package/artifacts/contracts/instance/product/IProductService.sol/IProductModule.dbg.json +0 -4
- package/artifacts/contracts/instance/product/IProductService.sol/IProductModule.json +0 -75
- package/artifacts/contracts/instance/product/IProductService.sol/IProductService.dbg.json +0 -4
- package/artifacts/contracts/instance/product/IProductService.sol/IProductService.json +0 -127
- package/artifacts/contracts/instance/product/ProductService.sol/ProductModule.dbg.json +0 -4
- package/artifacts/contracts/instance/product/ProductService.sol/ProductModule.json +0 -75
- package/artifacts/contracts/instance/product/ProductService.sol/ProductService.dbg.json +0 -4
- package/artifacts/contracts/instance/product/ProductService.sol/ProductService.json +0 -196
- package/artifacts/contracts/instance/treasury/ITreasury.sol/ITreasury.dbg.json +0 -4
- package/artifacts/contracts/instance/treasury/ITreasury.sol/ITreasuryModule.dbg.json +0 -4
- package/artifacts/contracts/instance/treasury/ITreasury.sol/ITreasuryModule.json +0 -490
- package/artifacts/contracts/instance/treasury/TokenHandler.sol/TokenHandler.dbg.json +0 -4
- package/artifacts/contracts/instance/treasury/TokenHandler.sol/TokenHandler.json +0 -45
- package/artifacts/contracts/instance/treasury/TreasuryModule.sol/TreasuryModule.dbg.json +0 -4
- package/artifacts/contracts/instance/treasury/TreasuryModule.sol/TreasuryModule.json +0 -490
- package/artifacts/contracts/mock/Dip.sol/DIP.dbg.json +0 -4
- package/artifacts/contracts/mock/Dip.sol/DIP.json +0 -338
- package/artifacts/contracts/mock/TestPool.sol/TestPool.dbg.json +0 -4
- package/artifacts/contracts/mock/TestPool.sol/TestPool.json +0 -294
- package/artifacts/contracts/mock/TestProduct.sol/TestProduct.dbg.json +0 -4
- package/artifacts/contracts/mock/TestProduct.sol/TestProduct.json +0 -384
- package/artifacts/contracts/mock/Usdc.sol/USDC.dbg.json +0 -4
- package/artifacts/contracts/mock/Usdc.sol/USDC.json +0 -338
- package/artifacts/contracts/registry/IChainNft.sol/IChainNft.dbg.json +0 -4
- package/artifacts/contracts/registry/IRegistry.sol/IOwnable.dbg.json +0 -4
- package/artifacts/contracts/registry/IRegistry.sol/IOwnable.json +0 -24
- package/artifacts/contracts/registry/IRegistry.sol/IRegisterable.dbg.json +0 -4
- package/artifacts/contracts/registry/IRegistry.sol/IRegisterable.json +0 -166
- package/artifacts/contracts/registry/IRegistry.sol/IRegistryLinked.dbg.json +0 -4
- package/artifacts/contracts/registry/IRegistry.sol/IRegistryLinked.json +0 -49
- package/artifacts/contracts/registry/Registry.sol/Registerable.dbg.json +0 -4
- package/artifacts/contracts/registry/Registry.sol/Registerable.json +0 -166
- package/artifacts/contracts/registry/Registry.sol/RegistryLinked.dbg.json +0 -4
- package/artifacts/contracts/registry/Registry.sol/RegistryLinked.json +0 -60
- package/artifacts/contracts/types/UFixed.sol/UFixedMathLib.dbg.json +0 -4
- package/artifacts/contracts/types/UFixed.sol/UFixedMathLib.json +0 -479
- package/contracts/components/IPool.sol +0 -15
- package/contracts/components/IProduct.sol +0 -16
- 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/README.md +0 -112
- 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/access/Access.sol +0 -165
- package/contracts/instance/access/IAccess.sol +0 -63
- package/contracts/instance/component/ComponentModule.sol +0 -274
- package/contracts/instance/component/IComponent.sol +0 -74
- package/contracts/instance/lifecycle/ILifecycle.sol +0 -47
- package/contracts/instance/lifecycle/LifecycleModule.sol +0 -88
- package/contracts/instance/policy/IPolicy.sol +0 -50
- package/contracts/instance/policy/PolicyModule.sol +0 -114
- package/contracts/instance/pool/IPoolModule.sol +0 -23
- package/contracts/instance/pool/PoolModule.sol +0 -81
- package/contracts/instance/product/IProductService.sol +0 -36
- package/contracts/instance/product/ProductService.sol +0 -136
- package/contracts/instance/treasury/ITreasury.sol +0 -91
- package/contracts/instance/treasury/TokenHandler.sol +0 -24
- package/contracts/instance/treasury/TreasuryModule.sol +0 -168
- package/contracts/mock/TestPool.sol +0 -16
- package/contracts/mock/TestProduct.sol +0 -39
- package/contracts/registry/IChainNft.sol +0 -21
@@ -1,25 +1,77 @@
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
2
|
-
pragma solidity ^0.8.
|
3
|
-
|
4
|
-
import {
|
5
|
-
|
6
|
-
import {
|
7
|
-
import {
|
8
|
-
import {
|
9
|
-
import {
|
10
|
-
import {
|
11
|
-
import {
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
2
|
+
pragma solidity ^0.8.20;
|
3
|
+
|
4
|
+
import {IAccessManaged} from "@openzeppelin/contracts/access/manager/IAccessManaged.sol";
|
5
|
+
|
6
|
+
import {ClaimId} from "../types/ClaimId.sol";
|
7
|
+
import {DistributorType} from "../types/DistributorType.sol";
|
8
|
+
import {PayoutId} from "../types/PayoutId.sol";
|
9
|
+
import {NftId} from "../types/NftId.sol";
|
10
|
+
import {StateId} from "../types/StateId.sol";
|
11
|
+
import {ReferralId} from "../types/Referral.sol";
|
12
|
+
import {RiskId} from "../types/RiskId.sol";
|
13
|
+
import {VersionPart} from "../types/Version.sol";
|
14
|
+
import {Key32} from "../types/Key32.sol";
|
15
|
+
import {RoleId} from "../types/RoleId.sol";
|
16
|
+
|
17
|
+
import {IRegisterable} from "../shared/IRegisterable.sol";
|
18
|
+
|
19
|
+
import {ITransferInterceptor} from "../registry/ITransferInterceptor.sol";
|
20
|
+
|
21
|
+
import {InstanceAccessManager} from "./InstanceAccessManager.sol";
|
22
|
+
import {BundleManager} from "./BundleManager.sol";
|
23
|
+
import {InstanceReader} from "./InstanceReader.sol";
|
24
|
+
import {InstanceStore} from "./InstanceStore.sol";
|
25
|
+
|
26
|
+
import {IKeyValueStore} from "./base/IKeyValueStore.sol";
|
27
|
+
|
28
|
+
import {IAccess} from "./module/IAccess.sol";
|
29
|
+
|
30
|
+
import {IBundleService} from "./service/IBundleService.sol";
|
31
|
+
import {IDistributionService} from "./service/IDistributionService.sol";
|
32
|
+
import {IPolicyService} from "./service/IPolicyService.sol";
|
33
|
+
import {IPoolService} from "./service/IPoolService.sol";
|
34
|
+
import {IProductService} from "./service/IProductService.sol";
|
35
|
+
import {IPolicyService} from "./service/IPolicyService.sol";
|
36
|
+
import {IBundleService} from "./service/IBundleService.sol";
|
37
|
+
|
38
|
+
|
39
|
+
|
40
|
+
interface IInstance is
|
41
|
+
IRegisterable,
|
42
|
+
ITransferInterceptor,
|
43
|
+
IAccessManaged
|
23
44
|
{
|
45
|
+
error ErrorInstanceInstanceAccessManagerZero();
|
46
|
+
error ErrorInstanceInstanceAccessManagerAlreadySet(address instanceAccessManager);
|
47
|
+
error ErrorInstanceInstanceAccessManagerAuthorityMismatch(address instanceAuthority);
|
48
|
+
|
49
|
+
error ErrorInstanceBundleManagerAlreadySet(address instanceBundleManager);
|
50
|
+
error ErrorInstanceBundleManagerInstanceMismatch(address instance);
|
51
|
+
error ErrorInstanceBundleManagerAuthorityMismatch(address instanceAuthority);
|
52
|
+
|
53
|
+
error ErrorInstanceInstanceReaderInstanceMismatch(address instanceAuthority);
|
54
|
+
|
55
|
+
error ErrorInstanceInstanceStoreAlreadySet(address instanceStore);
|
56
|
+
error ErrorInstanceInstanceStoreAuthorityMismatch(address instanceAuthority);
|
57
|
+
|
58
|
+
function createRole(string memory roleName, string memory adminName) external returns (RoleId roleId, RoleId admin);
|
59
|
+
function grantRole(RoleId roleId, address account) external;
|
60
|
+
function revokeRole(RoleId roleId, address account) external;
|
61
|
+
|
62
|
+
function createTarget(address target, string memory name) external;
|
63
|
+
function setTargetFunctionRole(string memory targetName, bytes4[] calldata selectors, RoleId roleId) external;
|
64
|
+
function setTargetLocked(address target, bool locked) external;
|
65
|
+
|
66
|
+
function getDistributionService() external view returns (IDistributionService);
|
67
|
+
function getProductService() external view returns (IProductService);
|
68
|
+
function getPoolService() external view returns (IPoolService);
|
69
|
+
function getPolicyService() external view returns (IPolicyService);
|
70
|
+
function getBundleService() external view returns (IBundleService);
|
24
71
|
|
25
|
-
|
72
|
+
function getMajorVersion() external pure returns (VersionPart majorVersion);
|
73
|
+
function getInstanceReader() external view returns (InstanceReader);
|
74
|
+
function getBundleManager() external view returns (BundleManager);
|
75
|
+
function getInstanceAccessManager() external view returns (InstanceAccessManager);
|
76
|
+
function getInstanceStore() external view returns (InstanceStore);
|
77
|
+
}
|
@@ -0,0 +1,73 @@
|
|
1
|
+
// SPDX-License-Identifier: Apache-2.0
|
2
|
+
pragma solidity ^0.8.20;
|
3
|
+
|
4
|
+
import {NftId} from "../types/NftId.sol";
|
5
|
+
import {ObjectType} from "../types/ObjectType.sol";
|
6
|
+
import {RoleId} from "../types/RoleId.sol";
|
7
|
+
import {IService} from "../shared/IService.sol";
|
8
|
+
|
9
|
+
import {AccessManagerUpgradeableInitializeable} from "../shared/AccessManagerUpgradeableInitializeable.sol";
|
10
|
+
import {InstanceAccessManager} from "./InstanceAccessManager.sol";
|
11
|
+
import {Instance} from "./Instance.sol";
|
12
|
+
import {InstanceReader} from "./InstanceReader.sol";
|
13
|
+
import {BundleManager} from "./BundleManager.sol";
|
14
|
+
import {InstanceStore} from "./InstanceStore.sol";
|
15
|
+
|
16
|
+
interface IInstanceService is IService {
|
17
|
+
|
18
|
+
error ErrorInstanceServiceMasterInstanceAlreadySet();
|
19
|
+
error ErrorInstanceServiceMasterOzAccessManagerAlreadySet();
|
20
|
+
error ErrorInstanceServiceMasterInstanceAccessManagerAlreadySet();
|
21
|
+
error ErrorInstanceServiceMasterBundleManagerAlreadySet();
|
22
|
+
error ErrorInstanceServiceInstanceAddressZero();
|
23
|
+
|
24
|
+
error ErrorInstanceServiceMasterInstanceReaderNotSet();
|
25
|
+
error ErrorInstanceServiceInstanceReaderAddressZero();
|
26
|
+
error ErrorInstanceServiceInstanceReaderSameAsMasterInstanceReader();
|
27
|
+
error ErrorInstanceServiceInstanceReaderInstanceMismatch();
|
28
|
+
|
29
|
+
error ErrorInstanceServiceInstanceAccessManagerZero();
|
30
|
+
error ErrorInstanceServiceInstanceReaderZero();
|
31
|
+
error ErrorInstanceServiceBundleManagerZero();
|
32
|
+
error ErrorInstanceServiceInstanceStoreZero();
|
33
|
+
|
34
|
+
error ErrorInstanceServiceInstanceAuthorityMismatch();
|
35
|
+
error ErrorInstanceServiceBundleManagerAuthorityMismatch();
|
36
|
+
error ErrorInstanceServiceInstanceReaderInstanceMismatch2();
|
37
|
+
error ErrorInstanceServiceBundleMangerInstanceMismatch();
|
38
|
+
error ErrorInstanceServiceInstanceStoreAuthorityMismatch();
|
39
|
+
|
40
|
+
error ErrorInstanceServiceRequestUnauhorized(address caller);
|
41
|
+
error ErrorInstanceServiceNotInstanceOwner(address caller, NftId instanceNftId);
|
42
|
+
error ErrorInstanceServiceNotInstance(NftId nftId);
|
43
|
+
error ErrorInstanceServiceComponentNotRegistered(address componentAddress);
|
44
|
+
error ErrorInstanceServiceInstanceComponentMismatch(NftId instanceNftId, NftId componentNftId);
|
45
|
+
error ErrorInstanceServiceInvalidComponentType(address componentAddress, ObjectType expectedType, ObjectType componentType);
|
46
|
+
|
47
|
+
event LogInstanceCloned(
|
48
|
+
address clonedOzAccessManager,
|
49
|
+
address clonedInstanceAccessManager,
|
50
|
+
address clonedInstance,
|
51
|
+
address clonedInstanceStore,
|
52
|
+
address clonedBundleManager,
|
53
|
+
address clonedInstanceReader,
|
54
|
+
NftId clonedInstanceNftId
|
55
|
+
);
|
56
|
+
|
57
|
+
function createInstanceClone()
|
58
|
+
external
|
59
|
+
returns (
|
60
|
+
Instance clonedInstance,
|
61
|
+
NftId instanceNftId
|
62
|
+
);
|
63
|
+
|
64
|
+
function createGifTarget(
|
65
|
+
NftId instanceNftId,
|
66
|
+
address targetAddress,
|
67
|
+
string memory targetName,
|
68
|
+
bytes4[][] memory selectors,
|
69
|
+
RoleId[] memory roles
|
70
|
+
) external;
|
71
|
+
|
72
|
+
function setComponentLocked(bool locked) external;
|
73
|
+
}
|
@@ -1,72 +1,229 @@
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
2
|
-
pragma solidity ^0.8.
|
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";
|
6
16
|
|
7
|
-
import {
|
8
|
-
import {
|
9
|
-
|
10
|
-
import {
|
11
|
-
import {PolicyModule} from "./policy/PolicyModule.sol";
|
12
|
-
import {PoolModule} from "./pool/PoolModule.sol";
|
13
|
-
import {TreasuryModule} from "./treasury/TreasuryModule.sol";
|
17
|
+
import {Registerable} from "../shared/Registerable.sol";
|
18
|
+
import {TokenHandler} from "../shared/TokenHandler.sol";
|
19
|
+
|
20
|
+
import {IRegistry} from "../registry/IRegistry.sol";
|
14
21
|
|
15
22
|
import {IInstance} from "./IInstance.sol";
|
16
|
-
import {
|
17
|
-
import {
|
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";
|
29
|
+
|
30
|
+
import {IBundle} from "./module/IBundle.sol";
|
31
|
+
import {IComponents} from "./module/IComponents.sol";
|
32
|
+
import {IDistribution} from "./module/IDistribution.sol";
|
33
|
+
import {IPolicy} from "./module/IPolicy.sol";
|
34
|
+
import {IRisk} from "./module/IRisk.sol";
|
35
|
+
import {ISetup} from "./module/ISetup.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";
|
18
42
|
|
19
43
|
contract Instance is
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
ComponentModule,
|
24
|
-
PolicyModule,
|
25
|
-
PoolModule,
|
26
|
-
ProductModule,
|
27
|
-
TreasuryModule,
|
28
|
-
IInstance
|
44
|
+
IInstance,
|
45
|
+
AccessManagedUpgradeable,
|
46
|
+
Registerable
|
29
47
|
{
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
48
|
+
uint256 public constant GIF_MAJOR_VERSION = 3;
|
49
|
+
|
50
|
+
bool private _initialized;
|
51
|
+
|
52
|
+
InstanceAccessManager internal _accessManager;
|
53
|
+
InstanceReader internal _instanceReader;
|
54
|
+
BundleManager internal _bundleManager;
|
55
|
+
InstanceStore internal _instanceStore;
|
56
|
+
|
57
|
+
modifier onlyChainNft() {
|
58
|
+
if(msg.sender != getRegistry().getChainNftAddress()) {
|
59
|
+
revert();
|
60
|
+
}
|
61
|
+
_;
|
62
|
+
}
|
63
|
+
|
64
|
+
function initialize(address authority, address registryAddress, address initialOwner)
|
65
|
+
external
|
66
|
+
initializer()
|
42
67
|
{
|
68
|
+
if(authority == address(0)) {
|
69
|
+
revert ErrorInstanceInstanceAccessManagerZero();
|
70
|
+
}
|
43
71
|
|
72
|
+
__AccessManaged_init(authority);
|
73
|
+
|
74
|
+
IRegistry registry = IRegistry(registryAddress);
|
75
|
+
initializeRegisterable(registryAddress, registry.getNftId(), INSTANCE(), true, initialOwner, "");
|
76
|
+
|
77
|
+
registerInterface(type(IInstance).interfaceId);
|
44
78
|
}
|
45
79
|
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
)
|
52
|
-
|
80
|
+
//--- Roles ------------------------------------------------------------//
|
81
|
+
|
82
|
+
function createRole(string memory roleName, string memory adminName)
|
83
|
+
external
|
84
|
+
restricted // INSTANCE_OWNER_ROLE
|
85
|
+
returns (RoleId roleId, RoleId admin)
|
86
|
+
{
|
87
|
+
(roleId, admin) = _accessManager.createRole(roleName, adminName);
|
53
88
|
}
|
54
89
|
|
55
|
-
|
56
|
-
|
57
|
-
//
|
58
|
-
|
59
|
-
|
60
|
-
return toNftId(0);
|
90
|
+
function grantRole(RoleId roleId, address account)
|
91
|
+
external
|
92
|
+
restricted // INSTANCE_OWNER_ROLE
|
93
|
+
{
|
94
|
+
_accessManager.grantRole(roleId, account);
|
61
95
|
}
|
62
96
|
|
63
|
-
|
64
|
-
|
65
|
-
|
97
|
+
function revokeRole(RoleId roleId, address account)
|
98
|
+
external
|
99
|
+
restricted // INSTANCE_OWNER_ROLE
|
100
|
+
{
|
101
|
+
_accessManager.revokeRole(roleId, account);
|
102
|
+
}
|
103
|
+
|
104
|
+
//--- Targets ------------------------------------------------------------//
|
105
|
+
|
106
|
+
function createTarget(address target, string memory name)
|
107
|
+
external
|
108
|
+
restricted // INSTANCE_OWNER_ROLE
|
109
|
+
{
|
110
|
+
_accessManager.createTarget(target, name);
|
66
111
|
}
|
67
112
|
|
68
|
-
|
69
|
-
|
70
|
-
|
113
|
+
function setTargetFunctionRole(
|
114
|
+
string memory targetName,
|
115
|
+
bytes4[] calldata selectors,
|
116
|
+
RoleId roleId
|
117
|
+
)
|
118
|
+
external
|
119
|
+
restricted // INSTANCE_OWNER_ROLE
|
120
|
+
{
|
121
|
+
_accessManager.setTargetFunctionRole(targetName, selectors, roleId);
|
71
122
|
}
|
72
|
-
|
123
|
+
|
124
|
+
function setTargetLocked(address target, bool locked)
|
125
|
+
external
|
126
|
+
restricted // INSTANCE_OWNER_ROLE
|
127
|
+
{
|
128
|
+
_accessManager.setTargetLockedByInstance(target, locked);
|
129
|
+
}
|
130
|
+
|
131
|
+
//--- ITransferInterceptor ------------------------------------------------------------//
|
132
|
+
|
133
|
+
function nftMint(address to, uint256 tokenId) external onlyChainNft {
|
134
|
+
assert(_accessManager.roleMembers(INSTANCE_OWNER_ROLE()) == 0);// temp
|
135
|
+
assert(_accessManager.grantRole(INSTANCE_OWNER_ROLE(), to) == true);
|
136
|
+
}
|
137
|
+
|
138
|
+
function nftTransferFrom(address from, address to, uint256 tokenId) external onlyChainNft {
|
139
|
+
assert(_accessManager.revokeRole(INSTANCE_OWNER_ROLE(), from) == true);
|
140
|
+
assert(_accessManager.grantRole(INSTANCE_OWNER_ROLE(), to) == true);
|
141
|
+
}
|
142
|
+
|
143
|
+
//--- initial setup functions -------------------------------------------//
|
144
|
+
|
145
|
+
function setInstanceAccessManager(InstanceAccessManager accessManager) external restricted {
|
146
|
+
if(address(_accessManager) != address(0)) {
|
147
|
+
revert ErrorInstanceInstanceAccessManagerAlreadySet(address(_accessManager));
|
148
|
+
}
|
149
|
+
if(accessManager.authority() != authority()) {
|
150
|
+
revert ErrorInstanceInstanceAccessManagerAuthorityMismatch(authority());
|
151
|
+
}
|
152
|
+
_accessManager = accessManager;
|
153
|
+
}
|
154
|
+
|
155
|
+
function setBundleManager(BundleManager bundleManager) external restricted() {
|
156
|
+
if(address(_bundleManager) != address(0)) {
|
157
|
+
revert ErrorInstanceBundleManagerAlreadySet(address(_bundleManager));
|
158
|
+
}
|
159
|
+
if(bundleManager.getInstance() != Instance(this)) {
|
160
|
+
revert ErrorInstanceBundleManagerInstanceMismatch(address(this));
|
161
|
+
}
|
162
|
+
if(bundleManager.authority() != authority()) {
|
163
|
+
revert ErrorInstanceBundleManagerAuthorityMismatch(authority());
|
164
|
+
}
|
165
|
+
_bundleManager = bundleManager;
|
166
|
+
}
|
167
|
+
|
168
|
+
function setInstanceReader(InstanceReader instanceReader) external restricted() {
|
169
|
+
if(instanceReader.getInstance() != Instance(this)) {
|
170
|
+
revert ErrorInstanceInstanceReaderInstanceMismatch(address(this));
|
171
|
+
}
|
172
|
+
|
173
|
+
_instanceReader = instanceReader;
|
174
|
+
}
|
175
|
+
|
176
|
+
//--- external view functions -------------------------------------------//
|
177
|
+
|
178
|
+
function getInstanceReader() external view returns (InstanceReader) {
|
179
|
+
return _instanceReader;
|
180
|
+
}
|
181
|
+
|
182
|
+
function getBundleManager() external view returns (BundleManager) {
|
183
|
+
return _bundleManager;
|
184
|
+
}
|
185
|
+
|
186
|
+
function getInstanceAccessManager() external view returns (InstanceAccessManager) {
|
187
|
+
return _accessManager;
|
188
|
+
}
|
189
|
+
|
190
|
+
function setInstanceStore(InstanceStore instanceStore) external restricted {
|
191
|
+
if(address(_instanceStore) != address(0)) {
|
192
|
+
revert ErrorInstanceInstanceStoreAlreadySet(address(_instanceStore));
|
193
|
+
}
|
194
|
+
if(instanceStore.authority() != authority()) {
|
195
|
+
revert ErrorInstanceInstanceStoreAuthorityMismatch(authority());
|
196
|
+
}
|
197
|
+
_instanceStore = instanceStore;
|
198
|
+
}
|
199
|
+
|
200
|
+
function getInstanceStore() external view returns (InstanceStore) {
|
201
|
+
return _instanceStore;
|
202
|
+
}
|
203
|
+
|
204
|
+
function getMajorVersion() external pure returns (VersionPart majorVersion) {
|
205
|
+
return VersionPartLib.toVersionPart(GIF_MAJOR_VERSION);
|
206
|
+
}
|
207
|
+
|
208
|
+
function getDistributionService() external view returns (IDistributionService) {
|
209
|
+
return IDistributionService(getRegistry().getServiceAddress(DISTRIBUTION(), VersionPart.wrap(3)));
|
210
|
+
}
|
211
|
+
|
212
|
+
function getProductService() external view returns (IProductService) {
|
213
|
+
return IProductService(getRegistry().getServiceAddress(PRODUCT(), VersionPart.wrap(3)));
|
214
|
+
}
|
215
|
+
|
216
|
+
function getPoolService() external view returns (IPoolService) {
|
217
|
+
return IPoolService(getRegistry().getServiceAddress(POOL(), VersionPart.wrap(3)));
|
218
|
+
}
|
219
|
+
|
220
|
+
function getPolicyService() external view returns (IPolicyService) {
|
221
|
+
return IPolicyService(getRegistry().getServiceAddress(POLICY(), VersionPart.wrap(3)));
|
222
|
+
}
|
223
|
+
|
224
|
+
function getBundleService() external view returns (IBundleService) {
|
225
|
+
return IBundleService(getRegistry().getServiceAddress(BUNDLE(), VersionPart.wrap(3)));
|
226
|
+
}
|
227
|
+
|
228
|
+
//--- internal view/pure functions --------------------------------------//
|
229
|
+
}
|