@etherisc/gif-next 0.0.2-fe88ad7-208 → 0.0.2-ff282a4-523
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 +8 -13
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +4 -0
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +1376 -0
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +4 -0
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +1556 -0
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +4 -0
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +780 -0
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +4 -0
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +1000 -0
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +4 -0
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +840 -0
- package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +1 -1
- package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +73 -83
- package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstance.sol/IInstance.json +275 -1359
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +264 -218
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +441 -2539
- package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +479 -178
- 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 +432 -280
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +399 -383
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +295 -99
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +4 -0
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +2847 -0
- package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +4 -0
- package/artifacts/contracts/instance/{Cloneable.sol → base/Cloneable.sol}/Cloneable.json +6 -1
- package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
- package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.json +49 -0
- 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 +93 -14
- package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +1 -1
- package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +38 -13
- package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.dbg.json +4 -0
- package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.json +256 -0
- package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +58 -75
- 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/pool/BundleService.sol/BundleService.dbg.json +4 -0
- package/artifacts/contracts/pool/BundleService.sol/BundleService.json +1288 -0
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +4 -0
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +696 -0
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +4 -0
- package/artifacts/contracts/{instance/service → pool}/IBundleService.sol/IBundleService.json +316 -250
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +4 -0
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +1095 -0
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +4 -0
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +1077 -0
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +4 -0
- package/artifacts/contracts/pool/Pool.sol/Pool.json +1407 -0
- package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +4 -0
- package/artifacts/contracts/pool/PoolService.sol/PoolService.json +1622 -0
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +4 -0
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +708 -0
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +4 -0
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +918 -0
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +648 -0
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +4 -0
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +1386 -0
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +748 -0
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +4 -0
- package/artifacts/contracts/{instance/service/IComponentOwnerService.sol/IComponentOwnerService.json → product/IApplicationService.sol/IApplicationService.json} +218 -191
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +4 -0
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +753 -0
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +4 -0
- package/artifacts/contracts/{instance/service → product}/IPolicyService.sol/IPolicyService.json +264 -277
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +4 -0
- package/artifacts/contracts/{instance/service/IPoolService.sol/IPoolService.json → product/IPricingService.sol/IPricingService.json} +241 -230
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +4 -0
- package/artifacts/contracts/{components/Product.sol/Product.json → product/IProductComponent.sol/IProductComponent.json} +254 -168
- package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +4 -0
- package/artifacts/contracts/{instance/service → product}/IProductService.sol/IProductService.json +72 -166
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +4 -0
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +1281 -0
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +740 -0
- package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +4 -0
- package/artifacts/contracts/product/PricingService.sol/PricingService.json +1004 -0
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +688 -0
- package/artifacts/contracts/product/Product.sol/Product.dbg.json +4 -0
- package/artifacts/contracts/product/Product.sol/Product.json +1198 -0
- package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +4 -0
- package/artifacts/contracts/product/ProductService.sol/ProductService.json +864 -0
- package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/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 +15 -2
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +165 -5
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +158 -215
- 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 +196 -31
- package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.json +20 -20
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +270 -254
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +291 -85
- package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +1 -1
- package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +151 -77
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +142 -54
- 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/Component.sol/Component.dbg.json +4 -0
- package/artifacts/contracts/{components/Pool.sol/Pool.json → shared/Component.sol/Component.json} +358 -327
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +4 -0
- package/artifacts/contracts/{instance/base/ComponentServiceBase.sol/ComponentServiceBase.json → shared/ComponentService.sol/ComponentService.json} +263 -164
- 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/IComponent.sol/IComponent.dbg.json +4 -0
- package/artifacts/contracts/{components/Distribution.sol/Distribution.json → shared/IComponent.sol/IComponent.json} +173 -212
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +27 -29
- 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 +1 -1
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +8 -34
- package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +4 -0
- package/artifacts/contracts/{experiment/inheritance/IA.sol/ISharedA.json → shared/IRegistryLinked.sol/IRegistryLinked.json} +15 -17
- package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
- package/artifacts/contracts/shared/IService.sol/IService.json +71 -165
- 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 +109 -29
- 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 +1 -1
- package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +285 -65
- package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
- package/artifacts/contracts/shared/Registerable.sol/Registerable.json +118 -53
- 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 +1 -1
- package/artifacts/contracts/shared/Service.sol/Service.json +173 -153
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +24 -6
- 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/staking/IStaking.sol/IStaking.dbg.json +4 -0
- package/artifacts/contracts/{components/IBaseComponent.sol/IBaseComponent.json → staking/IStaking.sol/IStaking.json} +62 -150
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +4 -0
- package/artifacts/contracts/{components/BaseComponent.sol/BaseComponent.json → staking/IStakingService.sol/IStakingService.json} +232 -169
- package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +4 -0
- package/artifacts/contracts/staking/Staking.sol/Staking.json +497 -0
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +623 -0
- package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingService.sol/StakingService.json +797 -0
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +632 -0
- package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +4 -0
- package/artifacts/contracts/{types → type}/AddressSet.sol/LibAddressSet.json +3 -3
- package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +4 -0
- package/artifacts/contracts/type/Amount.sol/AmountLib.json +281 -0
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +4 -0
- package/artifacts/contracts/{types → type}/Blocknumber.sol/BlocknumberLib.json +3 -3
- package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +4 -0
- package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +179 -0
- package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +4 -0
- package/artifacts/contracts/{types → type}/DistributorType.sol/DistributorTypeLib.json +5 -5
- package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +4 -0
- package/artifacts/contracts/type/Fee.sol/FeeLib.json +312 -0
- package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +4 -0
- package/artifacts/contracts/{types → type}/Key32.sol/Key32Lib.json +3 -3
- package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +4 -0
- package/artifacts/contracts/type/NftId.sol/NftIdLib.json +166 -0
- package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +4 -0
- package/artifacts/contracts/{types → type}/NftIdSet.sol/LibNftIdSet.json +3 -3
- package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +4 -0
- package/artifacts/contracts/{types → type}/ObjectType.sol/ObjectTypeLib.json +3 -3
- package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +4 -0
- package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +209 -0
- package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +4 -0
- package/artifacts/contracts/type/Referral.sol/ReferralLib.json +142 -0
- package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +4 -0
- package/artifacts/contracts/{types → type}/RiskId.sol/RiskIdLib.json +5 -5
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +4 -0
- package/artifacts/contracts/{types → type}/RoleId.sol/RoleIdLib.json +5 -5
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +4 -0
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +124 -0
- package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +4 -0
- package/artifacts/contracts/{types → type}/StateId.sol/StateIdLib.json +3 -3
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +4 -0
- package/artifacts/contracts/{types → type}/Timestamp.sol/TimestampLib.json +39 -8
- package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +4 -0
- package/artifacts/contracts/{types → type}/UFixed.sol/MathLib.json +3 -3
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +4 -0
- package/artifacts/contracts/{types → type}/UFixed.sol/UFixedLib.json +3 -3
- package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +4 -0
- package/artifacts/contracts/{types → type}/Version.sol/VersionLib.json +3 -3
- package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +4 -0
- package/artifacts/contracts/{types → type}/Version.sol/VersionPartLib.json +3 -3
- package/contracts/distribution/Distribution.sol +285 -0
- package/contracts/distribution/DistributionService.sol +349 -0
- package/contracts/{instance/service → distribution}/DistributionServiceManager.sol +6 -6
- package/contracts/distribution/IDistributionComponent.sol +71 -0
- package/contracts/distribution/IDistributionService.sol +87 -0
- package/contracts/instance/BundleManager.sol +22 -25
- package/contracts/instance/IInstance.sol +56 -41
- package/contracts/instance/IInstanceService.sol +49 -16
- package/contracts/instance/Instance.sol +149 -196
- package/contracts/instance/InstanceAccessManager.sol +406 -166
- package/contracts/instance/InstanceAuthorizationsLib.sol +308 -0
- package/contracts/instance/InstanceReader.sol +102 -49
- package/contracts/instance/InstanceService.sol +206 -248
- package/contracts/instance/InstanceServiceManager.sol +2 -2
- package/contracts/instance/InstanceStore.sol +211 -0
- package/contracts/instance/{Cloneable.sol → base/Cloneable.sol} +8 -3
- package/contracts/instance/base/IKeyValueStore.sol +14 -10
- package/contracts/instance/base/ILifecycle.sol +3 -3
- package/contracts/instance/base/KeyValueStore.sol +44 -47
- package/contracts/instance/base/Lifecycle.sol +28 -7
- package/contracts/instance/{ObjectManager.sol → base/ObjectManager.sol} +16 -35
- package/contracts/instance/module/IAccess.sol +24 -18
- package/contracts/instance/module/IBundle.sol +11 -8
- package/contracts/instance/module/IComponents.sol +41 -0
- package/contracts/instance/module/IDistribution.sol +7 -4
- package/contracts/instance/module/IPolicy.sol +50 -17
- package/contracts/instance/module/IRisk.sol +1 -1
- package/contracts/instance/module/ISetup.sol +9 -22
- package/contracts/instance/module/ITreasury.sol +2 -2
- package/contracts/pool/BundleService.sol +382 -0
- package/contracts/{instance/service → pool}/BundleServiceManager.sol +6 -6
- package/contracts/pool/IBundleService.sol +118 -0
- package/contracts/pool/IPoolComponent.sol +114 -0
- package/contracts/pool/IPoolService.sol +114 -0
- package/contracts/pool/Pool.sol +302 -0
- package/contracts/pool/PoolService.sol +403 -0
- package/contracts/{instance/service → pool}/PoolServiceManager.sol +6 -6
- package/contracts/product/ApplicationService.sol +186 -0
- package/contracts/product/ApplicationServiceManager.sol +35 -0
- package/contracts/product/ClaimService.sol +442 -0
- package/contracts/product/ClaimServiceManager.sol +35 -0
- package/contracts/product/IApplicationService.sol +62 -0
- package/contracts/product/IClaimService.sol +93 -0
- package/contracts/product/IPolicyService.sol +80 -0
- package/contracts/product/IPricingService.sol +37 -0
- package/contracts/product/IProductComponent.sol +41 -0
- package/contracts/{instance/service → product}/IProductService.sol +10 -10
- package/contracts/product/PolicyService.sol +376 -0
- package/contracts/{instance/service → product}/PolicyServiceManager.sol +7 -7
- package/contracts/product/PricingService.sol +275 -0
- package/contracts/product/PricingServiceManager.sol +51 -0
- package/contracts/product/Product.sol +379 -0
- package/contracts/product/ProductService.sol +210 -0
- package/contracts/{instance/service → product}/ProductServiceManager.sol +7 -7
- package/contracts/registry/ChainNft.sol +15 -1
- package/contracts/registry/IRegistry.sol +33 -14
- package/contracts/registry/IRegistryService.sol +28 -17
- package/contracts/registry/ITransferInterceptor.sol +1 -0
- package/contracts/registry/Registry.sol +184 -75
- package/contracts/registry/RegistryAccessManager.sol +32 -35
- package/contracts/registry/RegistryService.sol +126 -145
- package/contracts/registry/RegistryServiceManager.sol +13 -15
- package/contracts/registry/ReleaseManager.sol +157 -145
- package/contracts/registry/TokenRegistry.sol +21 -15
- package/contracts/shared/AccessManagerUpgradeableInitializeable.sol +13 -0
- package/contracts/shared/Component.sol +271 -0
- package/contracts/shared/ComponentService.sol +150 -0
- package/contracts/shared/ERC165.sol +14 -12
- package/contracts/shared/IComponent.sol +90 -0
- package/contracts/shared/INftOwnable.sol +12 -11
- package/contracts/shared/IPolicyHolder.sol +40 -0
- package/contracts/shared/IRegisterable.sol +4 -6
- package/contracts/shared/IRegistryLinked.sol +11 -0
- package/contracts/shared/IService.sol +6 -4
- package/contracts/shared/IVersionable.sol +5 -48
- package/contracts/shared/NftOwnable.sol +64 -80
- package/contracts/shared/PolicyHolder.sol +94 -0
- package/contracts/shared/ProxyManager.sol +100 -25
- package/contracts/shared/Registerable.sol +26 -41
- package/contracts/shared/RegistryLinked.sol +43 -0
- package/contracts/shared/Service.sol +37 -23
- package/contracts/shared/TokenHandler.sol +14 -6
- package/contracts/shared/Versionable.sol +4 -92
- package/contracts/staking/IStaking.sol +15 -0
- package/contracts/staking/IStakingService.sol +105 -0
- package/contracts/staking/Staking.sol +64 -0
- package/contracts/staking/StakingManager.sol +44 -0
- package/contracts/staking/StakingService.sol +204 -0
- package/contracts/staking/StakingServiceManager.sol +41 -0
- package/contracts/type/Amount.sol +109 -0
- package/contracts/{types → type}/Blocknumber.sol +1 -0
- package/contracts/type/ClaimId.sol +75 -0
- package/contracts/{types → type}/DistributorType.sol +2 -2
- package/contracts/{types → type}/Fee.sol +17 -8
- package/contracts/{types → type}/NftId.sol +8 -0
- package/contracts/{types → type}/NftIdSet.sol +1 -1
- package/contracts/{types → type}/ObjectType.sol +21 -7
- package/contracts/type/PayoutId.sol +82 -0
- package/contracts/{types → type}/Referral.sol +4 -0
- package/contracts/{types → type}/RoleId.sol +56 -14
- package/contracts/type/Seconds.sol +54 -0
- package/contracts/{types → type}/StateId.sol +7 -2
- package/contracts/{types → type}/Timestamp.sol +18 -13
- package/contracts/{types → type}/UFixed.sol +1 -0
- package/contracts/{types → type}/Version.sol +1 -0
- package/package.json +3 -3
- package/artifacts/contracts/components/BaseComponent.sol/BaseComponent.dbg.json +0 -4
- package/artifacts/contracts/components/Distribution.sol/Distribution.dbg.json +0 -4
- package/artifacts/contracts/components/IBaseComponent.sol/IBaseComponent.dbg.json +0 -4
- package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.dbg.json +0 -4
- package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.json +0 -152
- package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +0 -4
- package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.json +0 -275
- package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +0 -4
- package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.json +0 -157
- package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +0 -4
- package/artifacts/contracts/components/Product.sol/Product.dbg.json +0 -4
- 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/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/experiment/types/TypeB.sol/TypeBLib.json +0 -10
- package/artifacts/contracts/instance/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.dbg.json +0 -4
- package/artifacts/contracts/instance/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.json +0 -1206
- package/artifacts/contracts/instance/Cloneable.sol/Cloneable.dbg.json +0 -4
- package/artifacts/contracts/instance/IInstanceBase.sol/IInstanceBase.dbg.json +0 -4
- package/artifacts/contracts/instance/IInstanceBase.sol/IInstanceBase.json +0 -448
- package/artifacts/contracts/instance/InstanceBase.sol/InstanceBase.dbg.json +0 -4
- package/artifacts/contracts/instance/InstanceBase.sol/InstanceBase.json +0 -763
- package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.dbg.json +0 -4
- package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.json +0 -285
- package/artifacts/contracts/instance/base/ComponentServiceBase.sol/ComponentServiceBase.dbg.json +0 -4
- package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.dbg.json +0 -4
- package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.json +0 -113
- package/artifacts/contracts/instance/service/BundleService.sol/BundleService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/BundleService.sol/BundleService.json +0 -945
- package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.dbg.json +0 -4
- package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.json +0 -432
- package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.json +0 -814
- package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +0 -693
- package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +0 -4
- package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.json +0 -420
- package/artifacts/contracts/instance/service/IBundleService.sol/IBundleService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/IComponentOwnerService.sol/IComponentOwnerService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.json +0 -446
- package/artifacts/contracts/instance/service/IPolicyService.sol/IPolicyService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/IProductService.sol/IProductService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.json +0 -993
- package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +0 -4
- package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.json +0 -464
- package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +0 -727
- package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.dbg.json +0 -4
- package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.json +0 -420
- package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +0 -777
- package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
- package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.json +0 -420
- package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.dbg.json +0 -4
- package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.json +0 -107
- package/artifacts/contracts/shared/RegisterableUpgradable.sol/RegisterableUpgradable.dbg.json +0 -4
- package/artifacts/contracts/shared/RegisterableUpgradable.sol/RegisterableUpgradable.json +0 -442
- package/artifacts/contracts/test/TestFee.sol/TestFee.dbg.json +0 -4
- package/artifacts/contracts/test/TestFee.sol/TestFee.json +0 -119
- package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.dbg.json +0 -4
- package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.json +0 -305
- package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.dbg.json +0 -4
- package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.json +0 -116
- package/artifacts/contracts/test/TestService.sol/TestService.dbg.json +0 -4
- package/artifacts/contracts/test/TestService.sol/TestService.json +0 -600
- package/artifacts/contracts/test/TestToken.sol/TestUsdc.dbg.json +0 -4
- package/artifacts/contracts/test/TestToken.sol/TestUsdc.json +0 -376
- package/artifacts/contracts/test/TestVersion.sol/TestVersion.dbg.json +0 -4
- package/artifacts/contracts/test/TestVersion.sol/TestVersion.json +0 -218
- package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.dbg.json +0 -4
- package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.json +0 -286
- package/artifacts/contracts/test/Usdc.sol/USDC.dbg.json +0 -4
- package/artifacts/contracts/test/Usdc.sol/USDC.json +0 -376
- package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.dbg.json +0 -4
- package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +0 -4
- package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +0 -4
- package/artifacts/contracts/types/ChainId.sol/ChainIdLib.json +0 -10
- package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.dbg.json +0 -4
- package/artifacts/contracts/types/Fee.sol/FeeLib.dbg.json +0 -4
- package/artifacts/contracts/types/Fee.sol/FeeLib.json +0 -257
- package/artifacts/contracts/types/Key32.sol/Key32Lib.dbg.json +0 -4
- package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +0 -4
- package/artifacts/contracts/types/NftId.sol/NftIdLib.json +0 -153
- package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.dbg.json +0 -4
- package/artifacts/contracts/types/NumberId.sol/NumberIdLib.dbg.json +0 -4
- package/artifacts/contracts/types/NumberId.sol/NumberIdLib.json +0 -100
- package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.dbg.json +0 -4
- package/artifacts/contracts/types/Referral.sol/ReferralLib.dbg.json +0 -4
- package/artifacts/contracts/types/Referral.sol/ReferralLib.json +0 -123
- package/artifacts/contracts/types/RiskId.sol/RiskIdLib.dbg.json +0 -4
- package/artifacts/contracts/types/RoleId.sol/RoleIdLib.dbg.json +0 -4
- package/artifacts/contracts/types/StateId.sol/StateIdLib.dbg.json +0 -4
- package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +0 -4
- package/artifacts/contracts/types/UFixed.sol/MathLib.dbg.json +0 -4
- package/artifacts/contracts/types/UFixed.sol/UFixedLib.dbg.json +0 -4
- package/artifacts/contracts/types/Version.sol/VersionLib.dbg.json +0 -4
- package/artifacts/contracts/types/Version.sol/VersionPartLib.dbg.json +0 -4
- package/contracts/components/BaseComponent.sol +0 -159
- package/contracts/components/Distribution.sol +0 -163
- package/contracts/components/IBaseComponent.sol +0 -34
- package/contracts/components/IDistributionComponent.sol +0 -44
- package/contracts/components/IPoolComponent.sol +0 -66
- package/contracts/components/IProductComponent.sol +0 -35
- package/contracts/components/Pool.sol +0 -271
- package/contracts/components/Product.sol +0 -292
- 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/AccessManagerUpgradeableInitializeable.sol +0 -23
- package/contracts/instance/IInstanceBase.sol +0 -26
- package/contracts/instance/InstanceBase.sol +0 -41
- package/contracts/instance/base/ComponentServiceBase.sol +0 -82
- package/contracts/instance/base/IInstanceBase.sol +0 -23
- package/contracts/instance/service/BundleService.sol +0 -260
- package/contracts/instance/service/ComponentOwnerService.sol +0 -315
- package/contracts/instance/service/DistributionService.sol +0 -113
- package/contracts/instance/service/IBundleService.sol +0 -45
- package/contracts/instance/service/IComponentOwnerService.sol +0 -20
- package/contracts/instance/service/IDistributionService.sol +0 -12
- package/contracts/instance/service/IPolicyService.sol +0 -87
- package/contracts/instance/service/IPoolService.sol +0 -20
- package/contracts/instance/service/PolicyService.sol +0 -503
- package/contracts/instance/service/PoolService.sol +0 -124
- package/contracts/instance/service/ProductService.sol +0 -170
- package/contracts/shared/ContractDeployerLib.sol +0 -72
- package/contracts/shared/RegisterableUpgradable.sol +0 -16
- package/contracts/test/TestFee.sol +0 -25
- package/contracts/test/TestRegisterable.sol +0 -18
- package/contracts/test/TestRoleId.sol +0 -14
- package/contracts/test/TestService.sol +0 -25
- package/contracts/test/TestToken.sol +0 -26
- package/contracts/test/TestVersion.sol +0 -44
- package/contracts/test/TestVersionable.sol +0 -17
- package/contracts/test/Usdc.sol +0 -26
- package/contracts/types/ChainId.sol +0 -38
- package/contracts/types/NumberId.sol +0 -52
- /package/contracts/{types → type}/AddressSet.sol +0 -0
- /package/contracts/{types → type}/Key32.sol +0 -0
- /package/contracts/{types → type}/RiskId.sol +0 -0
@@ -1,62 +1,77 @@
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
2
2
|
pragma solidity ^0.8.20;
|
3
3
|
|
4
|
-
import {
|
4
|
+
import {IAccessManaged} from "@openzeppelin/contracts/access/manager/IAccessManaged.sol";
|
5
5
|
|
6
|
+
import {ClaimId} from "../type/ClaimId.sol";
|
7
|
+
import {DistributorType} from "../type/DistributorType.sol";
|
8
|
+
import {PayoutId} from "../type/PayoutId.sol";
|
9
|
+
import {NftId} from "../type/NftId.sol";
|
10
|
+
import {StateId} from "../type/StateId.sol";
|
11
|
+
import {ReferralId} from "../type/Referral.sol";
|
12
|
+
import {RiskId} from "../type/RiskId.sol";
|
13
|
+
import {VersionPart} from "../type/Version.sol";
|
14
|
+
import {Key32} from "../type/Key32.sol";
|
15
|
+
import {RoleId} from "../type/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";
|
6
22
|
import {BundleManager} from "./BundleManager.sol";
|
7
23
|
import {InstanceReader} from "./InstanceReader.sol";
|
24
|
+
import {InstanceStore} from "./InstanceStore.sol";
|
8
25
|
|
9
|
-
import {InstanceAccessManager} from "./InstanceAccessManager.sol";
|
10
|
-
import {IComponentOwnerService} from "./service/IComponentOwnerService.sol";
|
11
|
-
import {IDistributionService} from "./service/IDistributionService.sol";
|
12
|
-
import {IPoolService} from "./service/IPoolService.sol";
|
13
|
-
import {IProductService} from "./service/IProductService.sol";
|
14
|
-
import {IPolicyService} from "./service/IPolicyService.sol";
|
15
|
-
import {IBundleService} from "./service/IBundleService.sol";
|
16
|
-
import {IBundle} from "./module/IBundle.sol";
|
17
|
-
import {ISetup} from "./module/ISetup.sol";
|
18
|
-
import {NftId} from "../types/NftId.sol";
|
19
|
-
import {StateId} from "../types/StateId.sol";
|
20
|
-
import {RiskId} from "../types/RiskId.sol";
|
21
|
-
import {IRisk} from "./module/IRisk.sol";
|
22
|
-
import {IPolicy} from "./module/IPolicy.sol";
|
23
26
|
import {IKeyValueStore} from "./base/IKeyValueStore.sol";
|
24
27
|
|
28
|
+
import {IAccess} from "./module/IAccess.sol";
|
25
29
|
|
26
|
-
|
30
|
+
import {IBundleService} from "../pool/IBundleService.sol";
|
31
|
+
import {IDistributionService} from "../distribution/IDistributionService.sol";
|
32
|
+
import {IPolicyService} from "../product/IPolicyService.sol";
|
33
|
+
import {IPoolService} from "../pool/IPoolService.sol";
|
34
|
+
import {IProductService} from "../product/IProductService.sol";
|
35
|
+
import {IPolicyService} from "../product/IPolicyService.sol";
|
36
|
+
import {IBundleService} from "../pool/IBundleService.sol";
|
27
37
|
|
28
|
-
function getComponentOwnerService() external view returns (IComponentOwnerService);
|
29
|
-
function getDistributionService() external view returns (IDistributionService);
|
30
|
-
function getProductService() external view returns (IProductService);
|
31
|
-
function getPoolService() external view returns (IPoolService);
|
32
|
-
function getPolicyService() external view returns (IPolicyService);
|
33
|
-
function getBundleService() external view returns (IBundleService);
|
34
38
|
|
35
|
-
function createDistributionSetup(NftId distributionNftId, ISetup.DistributionSetupInfo memory setup) external;
|
36
|
-
function updateDistributionSetup(NftId distributionNftId, ISetup.DistributionSetupInfo memory setup, StateId newState) external;
|
37
|
-
function updateDistributionSetupState(NftId distributionNftId, StateId newState) external;
|
38
39
|
|
39
|
-
|
40
|
-
|
41
|
-
|
40
|
+
interface IInstance is
|
41
|
+
IRegisterable,
|
42
|
+
ITransferInterceptor,
|
43
|
+
IAccessManaged
|
44
|
+
{
|
45
|
+
error ErrorInstanceInstanceAccessManagerZero();
|
46
|
+
error ErrorInstanceInstanceAccessManagerAlreadySet(address instanceAccessManager);
|
47
|
+
error ErrorInstanceInstanceAccessManagerAuthorityMismatch(address instanceAuthority);
|
42
48
|
|
43
|
-
|
44
|
-
|
45
|
-
|
49
|
+
error ErrorInstanceBundleManagerAlreadySet(address instanceBundleManager);
|
50
|
+
error ErrorInstanceBundleManagerInstanceMismatch(address instance);
|
51
|
+
error ErrorInstanceBundleManagerAuthorityMismatch(address instanceAuthority);
|
46
52
|
|
47
|
-
|
48
|
-
function updateProductSetup(NftId productNftId, ISetup.ProductSetupInfo memory setup, StateId newState) external;
|
49
|
-
function updateProductSetupState(NftId productNftId, StateId newState) external;
|
53
|
+
error ErrorInstanceInstanceReaderInstanceMismatch(address instanceAuthority);
|
50
54
|
|
51
|
-
|
52
|
-
|
53
|
-
function updateRiskState(RiskId riskId, StateId newState) external;
|
55
|
+
error ErrorInstanceInstanceStoreAlreadySet(address instanceStore);
|
56
|
+
error ErrorInstanceInstanceStoreAuthorityMismatch(address instanceAuthority);
|
54
57
|
|
55
|
-
function
|
56
|
-
function
|
57
|
-
function
|
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;
|
58
61
|
|
59
|
-
function
|
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);
|
71
|
+
|
72
|
+
function getMajorVersion() external pure returns (VersionPart majorVersion);
|
60
73
|
function getInstanceReader() external view returns (InstanceReader);
|
61
74
|
function getBundleManager() external view returns (BundleManager);
|
75
|
+
function getInstanceAccessManager() external view returns (InstanceAccessManager);
|
76
|
+
function getInstanceStore() external view returns (InstanceStore);
|
62
77
|
}
|
@@ -1,40 +1,73 @@
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
2
2
|
pragma solidity ^0.8.20;
|
3
3
|
|
4
|
-
import {NftId} from "../
|
5
|
-
import {ObjectType} from "../
|
6
|
-
import {RoleId} from "../
|
4
|
+
import {NftId} from "../type/NftId.sol";
|
5
|
+
import {ObjectType} from "../type/ObjectType.sol";
|
6
|
+
import {RoleId} from "../type/RoleId.sol";
|
7
7
|
import {IService} from "../shared/IService.sol";
|
8
|
-
import {IRegistry} from "../registry/IRegistry.sol";
|
9
|
-
|
10
|
-
import {IRegisterable} from "../shared/IRegisterable.sol";
|
11
|
-
import {IBaseComponent} from "../components/IBaseComponent.sol";
|
12
8
|
|
9
|
+
import {AccessManagerUpgradeableInitializeable} from "../shared/AccessManagerUpgradeableInitializeable.sol";
|
13
10
|
import {InstanceAccessManager} from "./InstanceAccessManager.sol";
|
14
11
|
import {Instance} from "./Instance.sol";
|
15
12
|
import {InstanceReader} from "./InstanceReader.sol";
|
16
13
|
import {BundleManager} from "./BundleManager.sol";
|
14
|
+
import {InstanceStore} from "./InstanceStore.sol";
|
17
15
|
|
18
16
|
interface IInstanceService is IService {
|
19
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
|
+
|
20
40
|
error ErrorInstanceServiceRequestUnauhorized(address caller);
|
21
41
|
error ErrorInstanceServiceNotInstanceOwner(address caller, NftId instanceNftId);
|
42
|
+
error ErrorInstanceServiceNotInstance(NftId nftId);
|
22
43
|
error ErrorInstanceServiceComponentNotRegistered(address componentAddress);
|
44
|
+
error ErrorInstanceServiceInstanceComponentMismatch(NftId instanceNftId, NftId componentNftId);
|
45
|
+
error ErrorInstanceServiceInvalidComponentType(address componentAddress, ObjectType expectedType, ObjectType componentType);
|
23
46
|
|
24
|
-
event LogInstanceCloned(
|
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
|
+
);
|
25
56
|
|
26
57
|
function createInstanceClone()
|
27
58
|
external
|
28
59
|
returns (
|
29
|
-
InstanceAccessManager clonedAccessManager,
|
30
60
|
Instance clonedInstance,
|
31
|
-
NftId instanceNftId
|
32
|
-
InstanceReader clonedInstanceReader,
|
33
|
-
BundleManager clonedBundleManager
|
61
|
+
NftId instanceNftId
|
34
62
|
);
|
35
63
|
|
36
|
-
function
|
37
|
-
|
38
|
-
|
39
|
-
|
64
|
+
function createGifTarget(
|
65
|
+
NftId instanceNftId,
|
66
|
+
address targetAddress,
|
67
|
+
string memory targetName,
|
68
|
+
bytes4[][] memory selectors,
|
69
|
+
RoleId[] memory roles
|
70
|
+
) external;
|
40
71
|
|
72
|
+
function setComponentLocked(bool locked) external;
|
73
|
+
}
|
@@ -1,276 +1,229 @@
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
2
2
|
pragma solidity ^0.8.20;
|
3
3
|
|
4
|
-
import {EnumerableSet} from "@openzeppelin/contracts/utils/structs/EnumerableSet.sol";
|
5
|
-
import {ShortString, ShortStrings} from "@openzeppelin/contracts/utils/ShortStrings.sol";
|
6
|
-
import {Initializable} from "@openzeppelin/contracts/proxy/utils/Initializable.sol";
|
7
4
|
import {AccessManagedUpgradeable} from "@openzeppelin/contracts-upgradeable/access/manager/AccessManagedUpgradeable.sol";
|
8
5
|
|
9
|
-
import {
|
10
|
-
import {
|
11
|
-
import {
|
12
|
-
import {
|
13
|
-
import {
|
14
|
-
import {
|
15
|
-
import {
|
6
|
+
import {Key32} from "../type/Key32.sol";
|
7
|
+
import {NftId} from "../type/NftId.sol";
|
8
|
+
import {RiskId} from "../type/RiskId.sol";
|
9
|
+
import {ObjectType, BUNDLE, DISTRIBUTION, INSTANCE, POLICY, POOL, ROLE, PRODUCT, TARGET, COMPONENT, DISTRIBUTOR, DISTRIBUTOR_TYPE} from "../type/ObjectType.sol";
|
10
|
+
import {RoleId, RoleIdLib, eqRoleId, ADMIN_ROLE, INSTANCE_ROLE, INSTANCE_OWNER_ROLE} from "../type/RoleId.sol";
|
11
|
+
import {VersionPart, VersionPartLib} from "../type/Version.sol";
|
12
|
+
import {ClaimId} from "../type/ClaimId.sol";
|
13
|
+
import {ReferralId} from "../type/Referral.sol";
|
14
|
+
import {PayoutId} from "../type/PayoutId.sol";
|
15
|
+
import {DistributorType} from "../type/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
|
+
|
16
22
|
import {IInstance} from "./IInstance.sol";
|
17
23
|
import {InstanceReader} from "./InstanceReader.sol";
|
18
24
|
import {InstanceAccessManager} from "./InstanceAccessManager.sol";
|
19
25
|
import {BundleManager} from "./BundleManager.sol";
|
20
|
-
import {
|
21
|
-
|
22
|
-
import {
|
23
|
-
|
24
|
-
import {
|
25
|
-
import {
|
26
|
-
import {
|
27
|
-
import {
|
28
|
-
import {
|
29
|
-
import {
|
30
|
-
|
31
|
-
import {IDistributionService} from "
|
32
|
-
import {IPoolService} from "
|
33
|
-
import {IProductService} from "
|
34
|
-
import {IPolicyService} from "
|
35
|
-
import {IBundleService} from "
|
36
|
-
import {VersionPart} from "../types/Version.sol";
|
37
|
-
import {InstanceBase} from "./InstanceBase.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 "../distribution/IDistributionService.sol";
|
38
|
+
import {IPoolService} from "../pool/IPoolService.sol";
|
39
|
+
import {IProductService} from "../product/IProductService.sol";
|
40
|
+
import {IPolicyService} from "../product/IPolicyService.sol";
|
41
|
+
import {IBundleService} from "../pool/IBundleService.sol";
|
38
42
|
|
39
43
|
contract Instance is
|
40
|
-
AccessManagedUpgradeable,
|
41
44
|
IInstance,
|
42
|
-
|
43
|
-
|
45
|
+
AccessManagedUpgradeable,
|
46
|
+
Registerable
|
44
47
|
{
|
45
|
-
|
46
|
-
uint64 public constant ADMIN_ROLE = type(uint64).min;
|
47
|
-
uint64 public constant PUBLIC_ROLE = type(uint64).max;
|
48
|
-
uint64 public constant CUSTOM_ROLE_ID_MIN = 10000;
|
49
|
-
|
50
|
-
uint32 public constant EXECUTION_DELAY = 0;
|
48
|
+
uint256 public constant GIF_MAJOR_VERSION = 3;
|
51
49
|
|
52
50
|
bool private _initialized;
|
53
51
|
|
54
52
|
InstanceAccessManager internal _accessManager;
|
55
53
|
InstanceReader internal _instanceReader;
|
56
54
|
BundleManager internal _bundleManager;
|
55
|
+
InstanceStore internal _instanceStore;
|
57
56
|
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
__AccessManaged_init(accessManagerAddress);
|
65
|
-
|
66
|
-
_accessManager = InstanceAccessManager(accessManagerAddress);
|
67
|
-
|
68
|
-
_initializeRegisterable(registryAddress, registryNftId, INSTANCE(), false, initialOwner, "");
|
69
|
-
|
70
|
-
_registerInterface(type(IInstance).interfaceId);
|
71
|
-
_initialized = true;
|
72
|
-
}
|
73
|
-
|
74
|
-
//--- ProductSetup ------------------------------------------------------//
|
75
|
-
function createProductSetup(NftId productNftId, ISetup.ProductSetupInfo memory setup) external restricted() {
|
76
|
-
create(_toNftKey32(productNftId, PRODUCT()), abi.encode(setup));
|
77
|
-
}
|
78
|
-
|
79
|
-
function updateProductSetup(NftId productNftId, ISetup.ProductSetupInfo memory setup, StateId newState) external restricted() {
|
80
|
-
update(_toNftKey32(productNftId, PRODUCT()), abi.encode(setup), newState);
|
81
|
-
}
|
82
|
-
|
83
|
-
function updateProductSetupState(NftId productNftId, StateId newState) external restricted() {
|
84
|
-
updateState(_toNftKey32(productNftId, PRODUCT()), newState);
|
85
|
-
}
|
86
|
-
|
87
|
-
//--- DistributionSetup ------------------------------------------------------//
|
88
|
-
function createDistributionSetup(NftId distributionNftId, ISetup.DistributionSetupInfo memory setup) external restricted() {
|
89
|
-
create(_toNftKey32(distributionNftId, DISTRIBUTION()), abi.encode(setup));
|
90
|
-
}
|
91
|
-
|
92
|
-
function updateDistributionSetup(NftId distributionNftId, ISetup.DistributionSetupInfo memory setup, StateId newState) external restricted() {
|
93
|
-
update(_toNftKey32(distributionNftId, DISTRIBUTION()), abi.encode(setup), newState);
|
94
|
-
}
|
95
|
-
|
96
|
-
function updateDistributionSetupState(NftId distributionNftId, StateId newState) external restricted() {
|
97
|
-
updateState(_toNftKey32(distributionNftId, DISTRIBUTION()), newState);
|
98
|
-
}
|
99
|
-
|
100
|
-
//--- PoolSetup ------------------------------------------------------//
|
101
|
-
function createPoolSetup(NftId poolNftId, ISetup.PoolSetupInfo memory setup) external restricted() {
|
102
|
-
create(_toNftKey32(poolNftId, POOL()), abi.encode(setup));
|
103
|
-
}
|
104
|
-
|
105
|
-
function updatePoolSetup(NftId poolNftId, ISetup.PoolSetupInfo memory setup, StateId newState) external restricted() {
|
106
|
-
update(_toNftKey32(poolNftId, POOL()), abi.encode(setup), newState);
|
107
|
-
}
|
108
|
-
|
109
|
-
function updatePoolSetupState(NftId poolNftId, StateId newState) external restricted() {
|
110
|
-
updateState(_toNftKey32(poolNftId, POOL()), newState);
|
111
|
-
}
|
112
|
-
|
113
|
-
//--- DistributorType ---------------------------------------------------//
|
114
|
-
function createDistributorType(NftId policyNftId, NumberId payoutId, IPolicy.PayoutInfo memory payout) external restricted() {
|
115
|
-
create(toPolicyKey32(policyNftId), abi.encode(payout));
|
57
|
+
modifier onlyChainNft() {
|
58
|
+
if(msg.sender != getRegistry().getChainNftAddress()) {
|
59
|
+
revert();
|
60
|
+
}
|
61
|
+
_;
|
116
62
|
}
|
117
63
|
|
118
|
-
function
|
119
|
-
|
120
|
-
|
121
|
-
|
122
|
-
|
123
|
-
|
124
|
-
|
64
|
+
function initialize(address authority, address registryAddress, address initialOwner)
|
65
|
+
external
|
66
|
+
initializer()
|
67
|
+
{
|
68
|
+
if(authority == address(0)) {
|
69
|
+
revert ErrorInstanceInstanceAccessManagerZero();
|
70
|
+
}
|
125
71
|
|
126
|
-
|
127
|
-
|
128
|
-
|
129
|
-
|
72
|
+
__AccessManaged_init(authority);
|
73
|
+
|
74
|
+
IRegistry registry = IRegistry(registryAddress);
|
75
|
+
initializeRegisterable(registryAddress, registry.getNftId(), INSTANCE(), true, initialOwner, "");
|
130
76
|
|
131
|
-
|
132
|
-
update(toPolicyKey32(policyNftId), abi.encode(payout), newState);
|
77
|
+
registerInterface(type(IInstance).interfaceId);
|
133
78
|
}
|
134
79
|
|
135
|
-
|
136
|
-
updateState(toPolicyKey32(policyNftId), newState);
|
137
|
-
}
|
80
|
+
//--- Roles ------------------------------------------------------------//
|
138
81
|
|
139
|
-
|
140
|
-
|
141
|
-
|
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);
|
142
88
|
}
|
143
89
|
|
144
|
-
function
|
145
|
-
|
90
|
+
function grantRole(RoleId roleId, address account)
|
91
|
+
external
|
92
|
+
restricted // INSTANCE_OWNER_ROLE
|
93
|
+
{
|
94
|
+
_accessManager.grantRole(roleId, account);
|
146
95
|
}
|
147
96
|
|
148
|
-
function
|
149
|
-
|
97
|
+
function revokeRole(RoleId roleId, address account)
|
98
|
+
external
|
99
|
+
restricted // INSTANCE_OWNER_ROLE
|
100
|
+
{
|
101
|
+
_accessManager.revokeRole(roleId, account);
|
150
102
|
}
|
151
103
|
|
152
|
-
//---
|
153
|
-
function createBundle(NftId bundleNftId, IBundle.BundleInfo memory bundle) external restricted() {
|
154
|
-
create(toBundleKey32(bundleNftId), abi.encode(bundle));
|
155
|
-
}
|
104
|
+
//--- Targets ------------------------------------------------------------//
|
156
105
|
|
157
|
-
function
|
158
|
-
|
106
|
+
function createTarget(address target, string memory name)
|
107
|
+
external
|
108
|
+
restricted // INSTANCE_OWNER_ROLE
|
109
|
+
{
|
110
|
+
_accessManager.createTarget(target, name);
|
159
111
|
}
|
160
112
|
|
161
|
-
function
|
162
|
-
|
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);
|
163
122
|
}
|
164
123
|
|
165
|
-
|
166
|
-
|
167
|
-
|
124
|
+
function setTargetLocked(address target, bool locked)
|
125
|
+
external
|
126
|
+
restricted // INSTANCE_OWNER_ROLE
|
127
|
+
{
|
128
|
+
_accessManager.setTargetLockedByInstance(target, locked);
|
168
129
|
}
|
169
130
|
|
170
|
-
|
171
|
-
update(riskId.toKey32(), abi.encode(risk), newState);
|
172
|
-
}
|
131
|
+
//--- ITransferInterceptor ------------------------------------------------------------//
|
173
132
|
|
174
|
-
function
|
175
|
-
|
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);
|
176
136
|
}
|
177
137
|
|
178
|
-
|
179
|
-
|
180
|
-
|
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);
|
181
141
|
}
|
182
142
|
|
183
|
-
|
184
|
-
update(toPolicyKey32(policyNftId), abi.encode(policy), newState);
|
185
|
-
}
|
143
|
+
//--- initial setup functions -------------------------------------------//
|
186
144
|
|
187
|
-
function
|
188
|
-
|
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;
|
189
153
|
}
|
190
|
-
|
191
|
-
|
192
|
-
|
193
|
-
|
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;
|
194
166
|
}
|
195
167
|
|
196
|
-
function
|
197
|
-
|
198
|
-
|
168
|
+
function setInstanceReader(InstanceReader instanceReader) external restricted() {
|
169
|
+
if(instanceReader.getInstance() != Instance(this)) {
|
170
|
+
revert ErrorInstanceInstanceReaderInstanceMismatch(address(this));
|
171
|
+
}
|
199
172
|
|
200
|
-
|
201
|
-
updateState(toPolicyKey32(policyNftId), newState);
|
173
|
+
_instanceReader = instanceReader;
|
202
174
|
}
|
203
175
|
|
204
|
-
//---
|
205
|
-
function createPayout(NftId policyNftId, NumberId payoutId, IPolicy.PayoutInfo memory payout) external restricted() {
|
206
|
-
create(toPolicyKey32(policyNftId), abi.encode(payout));
|
207
|
-
}
|
176
|
+
//--- external view functions -------------------------------------------//
|
208
177
|
|
209
|
-
function
|
210
|
-
|
178
|
+
function getInstanceReader() external view returns (InstanceReader) {
|
179
|
+
return _instanceReader;
|
211
180
|
}
|
212
181
|
|
213
|
-
function
|
214
|
-
|
182
|
+
function getBundleManager() external view returns (BundleManager) {
|
183
|
+
return _bundleManager;
|
215
184
|
}
|
216
185
|
|
217
|
-
|
218
|
-
|
219
|
-
return nftId.toKey32(objectType);
|
186
|
+
function getInstanceAccessManager() external view returns (InstanceAccessManager) {
|
187
|
+
return _accessManager;
|
220
188
|
}
|
221
189
|
|
222
|
-
function
|
223
|
-
|
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;
|
224
198
|
}
|
225
199
|
|
226
|
-
function
|
227
|
-
return
|
200
|
+
function getInstanceStore() external view returns (InstanceStore) {
|
201
|
+
return _instanceStore;
|
228
202
|
}
|
229
203
|
|
230
|
-
function
|
231
|
-
return
|
204
|
+
function getMajorVersion() external pure returns (VersionPart majorVersion) {
|
205
|
+
return VersionPartLib.toVersionPart(GIF_MAJOR_VERSION);
|
232
206
|
}
|
233
207
|
|
234
208
|
function getDistributionService() external view returns (IDistributionService) {
|
235
|
-
return IDistributionService(
|
209
|
+
return IDistributionService(getRegistry().getServiceAddress(DISTRIBUTION(), VersionPart.wrap(3)));
|
236
210
|
}
|
237
211
|
|
238
212
|
function getProductService() external view returns (IProductService) {
|
239
|
-
return IProductService(
|
213
|
+
return IProductService(getRegistry().getServiceAddress(PRODUCT(), VersionPart.wrap(3)));
|
240
214
|
}
|
241
215
|
|
242
216
|
function getPoolService() external view returns (IPoolService) {
|
243
|
-
return IPoolService(
|
217
|
+
return IPoolService(getRegistry().getServiceAddress(POOL(), VersionPart.wrap(3)));
|
244
218
|
}
|
245
219
|
|
246
220
|
function getPolicyService() external view returns (IPolicyService) {
|
247
|
-
return IPolicyService(
|
221
|
+
return IPolicyService(getRegistry().getServiceAddress(POLICY(), VersionPart.wrap(3)));
|
248
222
|
}
|
249
223
|
|
250
224
|
function getBundleService() external view returns (IBundleService) {
|
251
|
-
return IBundleService(
|
252
|
-
}
|
253
|
-
|
254
|
-
function getInstanceAccessManager() external view returns (InstanceAccessManager) {
|
255
|
-
return _accessManager;
|
256
|
-
}
|
257
|
-
|
258
|
-
function setInstanceReader(InstanceReader instanceReader) external restricted() {
|
259
|
-
require(instanceReader.getInstanceNftId() == getNftId(), "NFT ID of InstanceReader does not match");
|
260
|
-
_instanceReader = instanceReader;
|
225
|
+
return IBundleService(getRegistry().getServiceAddress(BUNDLE(), VersionPart.wrap(3)));
|
261
226
|
}
|
262
227
|
|
263
|
-
|
264
|
-
|
265
|
-
}
|
266
|
-
|
267
|
-
function setBundleManager(BundleManager bundleManager) external restricted() {
|
268
|
-
require(address(_bundleManager) == address(0), "BundleManager is set");
|
269
|
-
require(bundleManager.getInstanceNftId() == getNftId(), "NFT ID of BundleManager does not match");
|
270
|
-
_bundleManager = bundleManager;
|
271
|
-
}
|
272
|
-
|
273
|
-
function getBundleManager() external view returns (BundleManager) {
|
274
|
-
return _bundleManager;
|
275
|
-
}
|
276
|
-
}
|
228
|
+
//--- internal view/pure functions --------------------------------------//
|
229
|
+
}
|