@etherisc/gif-next 0.0.2-96b5b72-170 → 0.0.2-97aac30-275
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 +2 -1
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +193 -164
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +114 -321
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +120 -82
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +72 -108
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +22 -48
- package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +1 -1
- package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +2 -2
- package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstance.sol/IInstance.json +25 -6
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +56 -22
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +53 -18
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +4 -0
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +708 -0
- package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.json +132 -28
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +458 -331
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +133 -59
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +110 -32
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +1103 -308
- package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +4 -0
- package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +318 -0
- package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +4 -0
- package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +10 -0
- package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.json +2 -2
- package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +8 -116
- package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
- 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/mock/Dip.sol/Dip.dbg.json +4 -0
- package/artifacts/contracts/mock/Dip.sol/Dip.json +376 -0
- package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +4 -0
- package/artifacts/contracts/{instance/module/ISetup.sol/ISetup.json → oracle/IOracle.sol/IOracle.json} +2 -2
- package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +4 -0
- package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +759 -0
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +4 -0
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +662 -0
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +4 -0
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +1146 -0
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +4 -0
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +997 -0
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +4 -0
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +718 -0
- package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleService.sol/BundleService.json +69 -252
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +105 -55
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +8 -53
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +134 -86
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +121 -133
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
- package/artifacts/contracts/pool/Pool.sol/Pool.json +239 -92
- package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolService.sol/PoolService.json +170 -368
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +98 -72
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +69 -153
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +105 -31
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +95 -203
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +118 -56
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +7 -1
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +7 -1
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +81 -25
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +27 -1
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +230 -107
- package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +1 -1
- package/artifacts/contracts/product/IProductService.sol/IProductService.json +0 -55
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +164 -299
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +106 -92
- package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
- package/artifacts/contracts/product/PricingService.sol/PricingService.json +139 -160
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +130 -40
- package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
- package/artifacts/contracts/product/Product.sol/Product.json +334 -146
- package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +1 -1
- package/artifacts/contracts/product/ProductService.sol/ProductService.json +29 -214
- package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +88 -34
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +2 -2
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +163 -61
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +256 -65
- package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
- package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
- package/artifacts/contracts/registry/Registry.sol/Registry.json +378 -67
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +4 -0
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +407 -0
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +272 -68
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +87 -35
- package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +1 -1
- package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +799 -127
- package/artifacts/contracts/registry/ServiceAuthorizationsLib.sol/ServiceAuthorizationsLib.dbg.json +4 -0
- package/artifacts/contracts/registry/ServiceAuthorizationsLib.sol/ServiceAuthorizationsLib.json +137 -0
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +314 -138
- package/artifacts/contracts/shared/AccessManagerCustom.sol/AccessManagerCustom.dbg.json +4 -0
- package/artifacts/contracts/shared/AccessManagerCustom.sol/AccessManagerCustom.json +1193 -0
- package/artifacts/contracts/shared/AccessManagerExtended.sol/AccessManagerExtended.dbg.json +4 -0
- package/artifacts/contracts/shared/AccessManagerExtended.sol/AccessManagerExtended.json +1715 -0
- package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.dbg.json +4 -0
- package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.json +1728 -0
- package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.dbg.json +4 -0
- package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.json +1806 -0
- package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.dbg.json +4 -0
- package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.json +1824 -0
- package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
- package/artifacts/contracts/shared/Component.sol/Component.json +184 -11
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +908 -49
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +4 -0
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +792 -0
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +4 -0
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +526 -0
- package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +1 -1
- package/artifacts/contracts/shared/ERC165.sol/ERC165.json +2 -2
- package/artifacts/contracts/shared/IAccessManagerExtended.sol/IAccessManagerExtended.dbg.json +4 -0
- package/artifacts/contracts/shared/IAccessManagerExtended.sol/IAccessManagerExtended.json +1562 -0
- package/artifacts/contracts/shared/IAccessManagerExtendedWithDisable.sol/IAccessManagerExtendedWithDisable.dbg.json +4 -0
- package/artifacts/contracts/shared/IAccessManagerExtendedWithDisable.sol/IAccessManagerExtendedWithDisable.json +1600 -0
- package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponent.sol/IComponent.json +172 -4
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +4 -0
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +867 -0
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +80 -22
- package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +4 -0
- package/artifacts/contracts/{instance/base → shared}/IKeyValueStore.sol/IKeyValueStore.json +1 -11
- package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +4 -0
- package/artifacts/contracts/{instance/base → shared}/ILifecycle.sol/ILifecycle.json +1 -1
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +7 -1
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +21 -3
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +7 -1
- package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
- package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
- package/artifacts/contracts/shared/IService.sol/IService.json +7 -1
- package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +1 -1
- package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.dbg.json +4 -0
- package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.json +39 -0
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +176 -24
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +4 -0
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +571 -0
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +4 -0
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +194 -0
- package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.dbg.json +4 -0
- package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.json +306 -0
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +13 -7
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +31 -13
- package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +1 -1
- package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +64 -16
- package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
- package/artifacts/contracts/shared/Registerable.sol/Registerable.json +21 -7
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -2
- package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
- package/artifacts/contracts/shared/Service.sol/Service.json +7 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +2 -2
- package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
- package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +2 -2
- package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +1 -1
- package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
- package/artifacts/contracts/staking/IStaking.sol/IStaking.json +1103 -172
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +497 -49
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +4 -0
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +444 -0
- package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
- package/artifacts/contracts/staking/Staking.sol/Staking.json +1247 -56
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +167 -30
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +592 -0
- package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingService.sol/StakingService.json +605 -78
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +122 -28
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +2189 -0
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +4 -0
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +571 -0
- package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
- package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.json +2 -2
- package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
- package/artifacts/contracts/type/Amount.sol/AmountLib.json +68 -4
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +53 -2
- package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +2 -2
- package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
- package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +2 -2
- package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
- package/artifacts/contracts/type/Fee.sol/FeeLib.json +34 -34
- package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +1 -1
- package/artifacts/contracts/type/Key32.sol/Key32Lib.json +2 -2
- package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/NftId.sol/NftIdLib.json +47 -4
- package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
- package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +2 -2
- package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
- package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +15 -2
- package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +2 -2
- package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
- package/artifacts/contracts/type/Referral.sol/ReferralLib.json +2 -2
- package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +4 -0
- package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +204 -0
- package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +2 -2
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +2 -2
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +76 -2
- package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/StateId.sol/StateIdLib.json +2 -2
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +17 -4
- package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +1 -1
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
- package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
- package/artifacts/contracts/type/Version.sol/VersionLib.json +2 -2
- package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
- package/artifacts/contracts/type/Version.sol/VersionPartLib.json +2 -2
- package/contracts/distribution/Distribution.sol +27 -51
- package/contracts/distribution/DistributionService.sol +55 -106
- package/contracts/distribution/DistributionServiceManager.sol +9 -18
- package/contracts/distribution/IDistributionComponent.sol +3 -8
- package/contracts/distribution/IDistributionService.sol +2 -8
- package/contracts/instance/IInstance.sol +12 -7
- package/contracts/instance/IInstanceService.sol +13 -5
- package/contracts/instance/Instance.sol +30 -23
- package/contracts/instance/InstanceAdmin.sol +331 -0
- package/contracts/instance/InstanceAuthorizationsLib.sol +210 -141
- package/contracts/instance/InstanceReader.sol +64 -42
- package/contracts/instance/InstanceService.sol +141 -87
- package/contracts/instance/InstanceServiceManager.sol +10 -20
- package/contracts/instance/InstanceStore.sol +125 -55
- package/contracts/instance/base/BalanceStore.sol +118 -0
- package/contracts/instance/base/ObjectCounter.sol +21 -0
- package/contracts/instance/module/IAccess.sol +2 -10
- package/contracts/instance/module/IBundle.sol +1 -4
- package/contracts/instance/module/IComponents.sol +15 -4
- package/contracts/instance/module/IPolicy.sol +8 -2
- package/contracts/mock/Dip.sol +26 -0
- package/contracts/oracle/IOracle.sol +20 -0
- package/contracts/oracle/IOracleComponent.sol +32 -0
- package/contracts/oracle/IOracleService.sol +65 -0
- package/contracts/oracle/Oracle.sol +145 -0
- package/contracts/oracle/OracleService.sol +277 -0
- package/contracts/oracle/OracleServiceManager.sol +42 -0
- package/contracts/pool/BundleService.sol +63 -149
- package/contracts/pool/BundleServiceManager.sol +9 -18
- package/contracts/pool/IBundleService.sol +4 -16
- package/contracts/pool/IPoolComponent.sol +2 -4
- package/contracts/pool/IPoolService.sol +45 -9
- package/contracts/pool/Pool.sol +37 -40
- package/contracts/pool/PoolService.sol +195 -145
- package/contracts/pool/PoolServiceManager.sol +9 -18
- package/contracts/product/ApplicationService.sol +111 -43
- package/contracts/product/ApplicationServiceManager.sol +9 -6
- package/contracts/product/ClaimService.sol +21 -21
- package/contracts/product/ClaimServiceManager.sol +9 -6
- package/contracts/product/IApplicationService.sol +1 -1
- package/contracts/product/IClaimService.sol +7 -1
- package/contracts/product/IPolicyService.sol +6 -8
- package/contracts/product/IPricingService.sol +3 -1
- package/contracts/product/IProductComponent.sol +5 -4
- package/contracts/product/IProductService.sol +1 -8
- package/contracts/product/PolicyService.sol +226 -127
- package/contracts/product/PolicyServiceManager.sol +9 -21
- package/contracts/product/PricingService.sol +74 -48
- package/contracts/product/PricingServiceManager.sol +9 -18
- package/contracts/product/Product.sol +45 -47
- package/contracts/product/ProductService.sol +26 -112
- package/contracts/product/ProductServiceManager.sol +9 -21
- package/contracts/registry/ChainNft.sol +1 -0
- package/contracts/registry/IRegistry.sol +38 -24
- package/contracts/registry/IRegistryService.sol +31 -31
- package/contracts/registry/Registry.sol +176 -105
- package/contracts/registry/RegistryAdmin.sol +237 -0
- package/contracts/registry/RegistryService.sol +44 -82
- package/contracts/registry/RegistryServiceManager.sol +21 -23
- package/contracts/registry/ReleaseManager.sol +450 -210
- package/contracts/registry/ServiceAuthorizationsLib.sol +173 -0
- package/contracts/registry/TokenRegistry.sol +261 -62
- package/contracts/shared/AccessManagerCustom.sol +736 -0
- package/contracts/shared/AccessManagerExtended.sol +470 -0
- package/contracts/shared/AccessManagerExtendedInitializeable.sol +13 -0
- package/contracts/shared/AccessManagerExtendedWithDisable.sol +137 -0
- package/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol +14 -0
- package/contracts/shared/Component.sol +153 -49
- package/contracts/shared/ComponentService.sol +561 -93
- package/contracts/shared/ComponentServiceManager.sol +35 -0
- package/contracts/shared/ComponentVerifyingService.sol +117 -0
- package/contracts/shared/ERC165.sol +1 -1
- package/contracts/shared/IAccessManagerExtended.sol +74 -0
- package/contracts/shared/IAccessManagerExtendedWithDisable.sol +18 -0
- package/contracts/shared/IComponent.sol +20 -8
- package/contracts/shared/IComponentService.sol +102 -0
- package/contracts/shared/IInstanceLinkedComponent.sol +5 -11
- package/contracts/{instance/base → shared}/IKeyValueStore.sol +6 -6
- package/contracts/{instance/base → shared}/ILifecycle.sol +3 -3
- package/contracts/shared/INftOwnable.sol +1 -1
- package/contracts/shared/IPolicyHolder.sol +6 -1
- package/contracts/shared/IService.sol +1 -1
- package/contracts/shared/InitializableCustom.sol +177 -0
- package/contracts/shared/InstanceLinkedComponent.sol +51 -178
- package/contracts/{instance/base → shared}/KeyValueStore.sol +30 -72
- package/contracts/{instance/base → shared}/Lifecycle.sol +12 -3
- package/contracts/shared/NftIdSetManager.sol +65 -0
- package/contracts/shared/NftOwnable.sol +2 -13
- package/contracts/shared/PolicyHolder.sol +21 -13
- package/contracts/shared/ProxyManager.sol +31 -1
- package/contracts/shared/Registerable.sol +2 -2
- package/contracts/shared/Service.sol +7 -2
- package/contracts/staking/IStaking.sol +146 -8
- package/contracts/staking/IStakingService.sol +83 -39
- package/contracts/staking/StakeManagerLib.sol +179 -0
- package/contracts/staking/Staking.sol +503 -17
- package/contracts/staking/StakingManager.sol +22 -14
- package/contracts/staking/StakingReader.sol +187 -0
- package/contracts/staking/StakingService.sol +246 -44
- package/contracts/staking/StakingServiceManager.sol +8 -4
- package/contracts/staking/StakingStore.sol +572 -0
- package/contracts/staking/TargetManagerLib.sol +207 -0
- package/contracts/type/AddressSet.sol +1 -1
- package/contracts/type/Amount.sol +20 -1
- package/contracts/type/Blocknumber.sol +20 -3
- package/contracts/type/Fee.sol +17 -16
- package/contracts/type/NftId.sol +14 -16
- package/contracts/type/NftIdSet.sol +1 -1
- package/contracts/type/ObjectType.sol +12 -10
- package/contracts/type/Referral.sol +1 -1
- package/contracts/type/RequestId.sol +75 -0
- package/contracts/type/RiskId.sol +1 -1
- package/contracts/type/RoleId.sol +18 -4
- package/contracts/type/Seconds.sol +27 -0
- package/contracts/type/StateId.sol +27 -2
- package/contracts/type/Timestamp.sol +6 -2
- package/contracts/type/Version.sol +1 -1
- package/package.json +4 -3
- package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +0 -4
- package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +0 -1348
- package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +0 -4
- package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +0 -4
- package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +0 -4
- package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +0 -581
- package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +0 -4
- package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +0 -194
- package/artifacts/contracts/instance/module/ISetup.sol/ISetup.dbg.json +0 -4
- package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.dbg.json +0 -4
- package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.json +0 -10
- package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.dbg.json +0 -4
- package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.json +0 -285
- package/artifacts/contracts/shared/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.dbg.json +0 -4
- package/artifacts/contracts/shared/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.json +0 -1206
- package/contracts/instance/InstanceAccessManager.sol +0 -543
- package/contracts/instance/module/ISetup.sol +0 -33
- package/contracts/instance/module/ITreasury.sol +0 -23
- package/contracts/registry/RegistryAccessManager.sol +0 -207
- package/contracts/shared/AccessManagerUpgradeableInitializeable.sol +0 -13
@@ -0,0 +1,35 @@
|
|
1
|
+
// SPDX-License-Identifier: Apache-2.0
|
2
|
+
pragma solidity ^0.8.20;
|
3
|
+
|
4
|
+
import {IVersionable} from "./IVersionable.sol";
|
5
|
+
import {ProxyManager} from "./ProxyManager.sol";
|
6
|
+
import {ComponentService} from "./ComponentService.sol";
|
7
|
+
|
8
|
+
contract ComponentServiceManager is ProxyManager {
|
9
|
+
|
10
|
+
ComponentService private _componentService;
|
11
|
+
|
12
|
+
/// @dev initializes proxy manager with service implementation
|
13
|
+
constructor(
|
14
|
+
address registryAddress
|
15
|
+
)
|
16
|
+
ProxyManager(registryAddress)
|
17
|
+
{
|
18
|
+
ComponentService svc = new ComponentService();
|
19
|
+
bytes memory data = abi.encode(registryAddress, address(this));
|
20
|
+
IVersionable versionable = deploy(
|
21
|
+
address(svc),
|
22
|
+
data);
|
23
|
+
|
24
|
+
_componentService = ComponentService(address(versionable));
|
25
|
+
}
|
26
|
+
|
27
|
+
//--- view functions ----------------------------------------------------//
|
28
|
+
function getComponentService()
|
29
|
+
external
|
30
|
+
view
|
31
|
+
returns (ComponentService)
|
32
|
+
{
|
33
|
+
return _componentService;
|
34
|
+
}
|
35
|
+
}
|
@@ -0,0 +1,117 @@
|
|
1
|
+
// SPDX-License-Identifier: Apache-2.0
|
2
|
+
pragma solidity ^0.8.20;
|
3
|
+
|
4
|
+
import {IInstance} from "../instance/IInstance.sol";
|
5
|
+
import {InstanceReader} from "../instance/InstanceReader.sol";
|
6
|
+
import {IRegistry} from "../registry/IRegistry.sol";
|
7
|
+
import {NftId} from "../type/NftId.sol";
|
8
|
+
import {ObjectType, COMPONENT, DISTRIBUTION, ORACLE, POOL, PRODUCT} from "../type/ObjectType.sol";
|
9
|
+
import {Service} from "../shared/Service.sol";
|
10
|
+
|
11
|
+
|
12
|
+
abstract contract ComponentVerifyingService is
|
13
|
+
Service
|
14
|
+
{
|
15
|
+
|
16
|
+
error ErrorComponentVerifyingServiceComponentTypeInvalid(NftId componentNftId, ObjectType expectedType, ObjectType actualType);
|
17
|
+
error ErrorComponentVerifyingServiceComponentIsLocked(NftId componentNftId);
|
18
|
+
|
19
|
+
/// @dev based on the sender address returns the corresponding components nft id, info and instance.
|
20
|
+
/// the function reverts iff:
|
21
|
+
/// - there is no such component
|
22
|
+
/// - the component has the wrong object type
|
23
|
+
/// - the component is locked
|
24
|
+
function _getAndVerifyActiveComponent(
|
25
|
+
ObjectType expectedType // assume always of `component` type
|
26
|
+
)
|
27
|
+
internal
|
28
|
+
view
|
29
|
+
returns(
|
30
|
+
NftId componentNftId,
|
31
|
+
IRegistry.ObjectInfo memory componentInfo,
|
32
|
+
IInstance instance
|
33
|
+
)
|
34
|
+
{
|
35
|
+
componentNftId = getRegistry().getNftId(msg.sender);
|
36
|
+
(componentInfo, instance) = _getAndVerifyComponentInfo(
|
37
|
+
componentNftId,
|
38
|
+
expectedType,
|
39
|
+
true); // only active
|
40
|
+
}
|
41
|
+
|
42
|
+
|
43
|
+
/// @dev returns the component info and instance contract reference given a component nft id
|
44
|
+
/// the function reverts iff:
|
45
|
+
/// - there is no such component
|
46
|
+
/// - the component has the wrong object type
|
47
|
+
function _getAndVerifyComponentInfo(
|
48
|
+
NftId componentNftId,
|
49
|
+
ObjectType expectedType, // assume always of `component` type
|
50
|
+
bool onlyActive
|
51
|
+
)
|
52
|
+
internal
|
53
|
+
virtual
|
54
|
+
view
|
55
|
+
returns(
|
56
|
+
IRegistry.ObjectInfo memory info,
|
57
|
+
IInstance instance
|
58
|
+
)
|
59
|
+
{
|
60
|
+
IRegistry registry = getRegistry();
|
61
|
+
info = registry.getObjectInfo(componentNftId);
|
62
|
+
|
63
|
+
// if not COMPONENT require exact match
|
64
|
+
if(expectedType != COMPONENT()) {
|
65
|
+
// ensure component is of expected type
|
66
|
+
if(info.objectType != expectedType) {
|
67
|
+
revert ErrorComponentVerifyingServiceComponentTypeInvalid(
|
68
|
+
componentNftId,
|
69
|
+
expectedType,
|
70
|
+
info.objectType);
|
71
|
+
}
|
72
|
+
} else {
|
73
|
+
if(!(info.objectType == PRODUCT()
|
74
|
+
|| info.objectType == POOL()
|
75
|
+
|| info.objectType == DISTRIBUTION()
|
76
|
+
|| info.objectType == ORACLE()
|
77
|
+
))
|
78
|
+
{
|
79
|
+
revert ErrorComponentVerifyingServiceComponentTypeInvalid(
|
80
|
+
componentNftId,
|
81
|
+
expectedType,
|
82
|
+
info.objectType);
|
83
|
+
}
|
84
|
+
}
|
85
|
+
|
86
|
+
instance = _getInstance(info.parentNftId);
|
87
|
+
|
88
|
+
// ensure component is not locked
|
89
|
+
if (onlyActive) {
|
90
|
+
if (instance.getInstanceAccessManager().isTargetClosed(info.objectAddress)) {
|
91
|
+
revert ErrorComponentVerifyingServiceComponentIsLocked(componentNftId);
|
92
|
+
}
|
93
|
+
}
|
94
|
+
}
|
95
|
+
|
96
|
+
|
97
|
+
/// @dev returns the linked product nft id for the specified component
|
98
|
+
function _getProductNftId(
|
99
|
+
InstanceReader instanceReader,
|
100
|
+
NftId componentNftId
|
101
|
+
)
|
102
|
+
internal
|
103
|
+
virtual
|
104
|
+
view
|
105
|
+
returns (NftId productNftId)
|
106
|
+
{
|
107
|
+
return instanceReader.getComponentInfo(componentNftId).productNftId;
|
108
|
+
}
|
109
|
+
|
110
|
+
|
111
|
+
/// @dev returns an IInstance contract reference for the specified instance nft id
|
112
|
+
function _getInstance(NftId instanceNftId) internal view returns (IInstance) {
|
113
|
+
return IInstance(
|
114
|
+
getRegistry().getObjectInfo(
|
115
|
+
instanceNftId).objectAddress);
|
116
|
+
}
|
117
|
+
}
|
@@ -1,5 +1,5 @@
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
2
|
-
pragma solidity ^0.8.
|
2
|
+
pragma solidity ^0.8.20;
|
3
3
|
|
4
4
|
import {IERC165} from "@openzeppelin/contracts/utils/introspection/IERC165.sol";
|
5
5
|
import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";
|
@@ -0,0 +1,74 @@
|
|
1
|
+
// SPDX-License-Identifier: MIT
|
2
|
+
// OpenZeppelin Contracts (last updated v5.0.0) (access/manager/IAccessManager.sol)
|
3
|
+
|
4
|
+
pragma solidity ^0.8.20;
|
5
|
+
|
6
|
+
import {IAccessManager} from "@openzeppelin/contracts/access/manager/IAccessManager.sol";
|
7
|
+
|
8
|
+
import {Timestamp} from "../type/Timestamp.sol";
|
9
|
+
|
10
|
+
interface IAccessManagerExtended is IAccessManager {
|
11
|
+
// Structure that stores the details for a target contract.
|
12
|
+
struct TargetInfo {
|
13
|
+
address taddress;
|
14
|
+
//IAccess.Type ttype;
|
15
|
+
string name;
|
16
|
+
Timestamp createdAt;
|
17
|
+
//Timestamp updatedAt;
|
18
|
+
}
|
19
|
+
|
20
|
+
// Structure that stores the details of a role.
|
21
|
+
struct RoleInfo {
|
22
|
+
uint64 id;
|
23
|
+
//IAccess.Type rtype;
|
24
|
+
string name;
|
25
|
+
Timestamp createdAt;
|
26
|
+
}
|
27
|
+
|
28
|
+
event LogRoleCreation(uint64 roleId, string name);// IAccess.Type rtype);
|
29
|
+
event LogTargetCreation(address target, string name);// IAccess.Type ttype);
|
30
|
+
|
31
|
+
error AccessManagerRoleIdNotExists(uint64 roleId);
|
32
|
+
error AccessManagerRoleIdAlreadyExists(uint64 roleId);
|
33
|
+
error AccessManagerRoleNameAlreadyExists(uint64 newRoleId, uint64 existingRoleId, string duplicateName);
|
34
|
+
error AccessManagerRoleIdZero();
|
35
|
+
error AccessManagerRoleNameEmpty(uint64 roleId);
|
36
|
+
error AccessManagerRoleIdTooBig(uint64 roleId);
|
37
|
+
|
38
|
+
error AccessManagerTargetAlreadyExists(address target);
|
39
|
+
error AccessManagerTargetNotExists(address target);
|
40
|
+
error AccessManagerTargetNameAlreadyExists(address newTarget, address existingTarget, string duplicateName);
|
41
|
+
error AccessManagerTargetAddressZero();
|
42
|
+
error AccessManagerTargetNameEmpty(address target);
|
43
|
+
error AccessManagerTargetAuthorityInvalid(address target, address targetAuthority);
|
44
|
+
|
45
|
+
function getRoleMembers(uint64 roleId) external view returns (uint256 numberOfMembers);
|
46
|
+
|
47
|
+
function getRoleMember(uint64 roleId, uint256 idx) external view returns (address member);
|
48
|
+
|
49
|
+
function getRoleId(uint256 idx) external view returns (uint64 roleId);
|
50
|
+
|
51
|
+
// TODO returns ADMIN_ROLE id for non existent name
|
52
|
+
function getRoleId(string memory name) external view returns (uint64 roleId);
|
53
|
+
|
54
|
+
function getRoles() external view returns (uint256 numberOfRoles);
|
55
|
+
|
56
|
+
function isRoleExists(uint64 roleId) external view returns (bool exists);
|
57
|
+
|
58
|
+
function getRoleInfo(uint64 roleId) external view returns (RoleInfo memory);
|
59
|
+
|
60
|
+
function isRoleNameExists(string memory name) external view returns (bool);
|
61
|
+
|
62
|
+
function isTargetExists(address target) external view returns (bool);
|
63
|
+
|
64
|
+
function isTargetNameExists(string memory name) external view returns (bool);
|
65
|
+
|
66
|
+
function getTargetAddress(string memory name) external view returns(address targetAddress);
|
67
|
+
|
68
|
+
function getTargetInfo(address target) external view returns (TargetInfo memory);
|
69
|
+
|
70
|
+
|
71
|
+
function createRole(uint64 roleId, string memory roleName/*, IAccess.Type rtype*/) external;
|
72
|
+
|
73
|
+
function createTarget(address target, string memory name/*, IAccess.Type.Custom*/) external;
|
74
|
+
}
|
@@ -0,0 +1,18 @@
|
|
1
|
+
// SPDX-License-Identifier: MIT
|
2
|
+
|
3
|
+
pragma solidity ^0.8.20;
|
4
|
+
|
5
|
+
import {IAccessManagerExtended} from "./IAccessManagerExtended.sol";
|
6
|
+
|
7
|
+
import {Timestamp} from "../type/Timestamp.sol";
|
8
|
+
import {VersionPart} from "../type/Version.sol";
|
9
|
+
import {Seconds} from "../type/Seconds.sol";
|
10
|
+
|
11
|
+
interface IAccessManagerExtendedWithDisable is IAccessManagerExtended {
|
12
|
+
|
13
|
+
error AccessManagerDisabled();
|
14
|
+
|
15
|
+
function disable(Seconds delay) external;
|
16
|
+
function enable() external;
|
17
|
+
function getVersion() external view returns (VersionPart version);
|
18
|
+
}
|
@@ -4,24 +4,23 @@ pragma solidity ^0.8.20;
|
|
4
4
|
import {IAccessManaged} from "@openzeppelin/contracts/access/manager/IAccessManaged.sol";
|
5
5
|
import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol";
|
6
6
|
|
7
|
+
import {Amount} from "../type/Amount.sol";
|
7
8
|
import {IComponents} from "../instance/module/IComponents.sol";
|
8
|
-
import {IInstance} from "../instance/IInstance.sol";
|
9
|
-
import {IInstanceService} from "../instance/IInstanceService.sol";
|
10
|
-
import {IProductService} from "../product/IProductService.sol";
|
11
9
|
import {IRegisterable} from "../shared/IRegisterable.sol";
|
12
10
|
import {ITransferInterceptor} from "../registry/ITransferInterceptor.sol";
|
13
|
-
import {NftId} from "../type/NftId.sol";
|
14
|
-
import {ObjectType} from "../type/ObjectType.sol";
|
15
11
|
import {TokenHandler} from "../shared/TokenHandler.sol";
|
16
12
|
|
17
13
|
/// @dev component base class
|
18
14
|
/// component examples are staking, product, distribution, pool and oracle
|
19
15
|
interface IComponent is
|
16
|
+
IAccessManaged,
|
20
17
|
IRegisterable,
|
21
|
-
|
18
|
+
ITransferInterceptor
|
22
19
|
{
|
23
20
|
error ErrorComponentNotChainNft(address caller);
|
21
|
+
|
24
22
|
error ErrorComponentTokenAddressZero();
|
23
|
+
error ErrorComponentNameLengthZero();
|
25
24
|
error ErrorComponentWalletAddressZero();
|
26
25
|
error ErrorComponentWalletAddressIsSameAsCurrent();
|
27
26
|
error ErrorComponentWalletAllowanceTooSmall(address oldWallet, address newWallet, uint256 allowance, uint256 balance);
|
@@ -29,12 +28,12 @@ interface IComponent is
|
|
29
28
|
|
30
29
|
event LogComponentWalletAddressChanged(address oldWallet, address newWallet);
|
31
30
|
event LogComponentWalletTokensTransferred(address from, address to, uint256 amount);
|
32
|
-
event LogComponentTokenHandlerApproved(address token,
|
31
|
+
event LogComponentTokenHandlerApproved(address token, Amount limit);
|
33
32
|
|
34
33
|
/// @dev approves token hanlder to spend up to the specified amount of tokens
|
35
34
|
/// reverts if component wallet is not component itself
|
36
35
|
/// only component owner (nft holder) is authorizes to call this function
|
37
|
-
function approveTokenHandler(
|
36
|
+
function approveTokenHandler(Amount spendingLimitAmount) external;
|
38
37
|
|
39
38
|
/// @dev sets the wallet address for the component
|
40
39
|
/// if the current wallet has tokens, these will be transferred
|
@@ -55,4 +54,17 @@ interface IComponent is
|
|
55
54
|
/// @dev defines the wallet address used to hold the ERC20 tokens related to this component
|
56
55
|
/// the default address is the component token address
|
57
56
|
function getWallet() external view returns (address walletAddress);
|
57
|
+
|
58
|
+
/// @dev returns true iff this compoent intercepts nft minting and transfers for objects registered by this component
|
59
|
+
function isNftInterceptor() external view returns(bool isInterceptor);
|
60
|
+
|
61
|
+
/// @dev returns true iff this component is registered with the registry
|
62
|
+
function isRegistered() external view returns (bool);
|
63
|
+
|
64
|
+
/// @dev returns the component infos for this component
|
65
|
+
/// for a non registered component the function returns getInitialComponentInfo()
|
66
|
+
function getComponentInfo() external view returns (IComponents.ComponentInfo memory info);
|
67
|
+
|
68
|
+
/// @dev returns the iniital component infos for this component
|
69
|
+
function getInitialComponentInfo() external view returns (IComponents.ComponentInfo memory info);
|
58
70
|
}
|
@@ -0,0 +1,102 @@
|
|
1
|
+
// SPDX-License-Identifier: Apache-2.0
|
2
|
+
pragma solidity ^0.8.20;
|
3
|
+
|
4
|
+
import {IAccessManaged} from "@openzeppelin/contracts/access/manager/IAccessManaged.sol";
|
5
|
+
import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol";
|
6
|
+
|
7
|
+
import {Amount} from "../type/Amount.sol";
|
8
|
+
import {Fee} from "../type/Fee.sol";
|
9
|
+
import {IComponents} from "../instance/module/IComponents.sol";
|
10
|
+
import {IInstance} from "../instance/IInstance.sol";
|
11
|
+
import {IInstanceService} from "../instance/IInstanceService.sol";
|
12
|
+
import {InstanceStore} from "../instance/InstanceStore.sol";
|
13
|
+
import {IProductService} from "../product/IProductService.sol";
|
14
|
+
import {IRegisterable} from "../shared/IRegisterable.sol";
|
15
|
+
import {IService} from "../shared/IService.sol";
|
16
|
+
import {NftId} from "../type/NftId.sol";
|
17
|
+
import {ObjectType} from "../type/ObjectType.sol";
|
18
|
+
import {TokenHandler} from "../shared/TokenHandler.sol";
|
19
|
+
import {UFixed} from "../type/UFixed.sol";
|
20
|
+
|
21
|
+
/// @dev component base class
|
22
|
+
/// component examples are staking, product, distribution, pool and oracle
|
23
|
+
interface IComponentService is
|
24
|
+
IService
|
25
|
+
{
|
26
|
+
error ErrorComponentServiceNewWalletAddressZero();
|
27
|
+
error ErrorComponentServiceWalletAddressZero();
|
28
|
+
error ErrorComponentServiceWalletAddressIsSameAsCurrent();
|
29
|
+
|
30
|
+
event LogComponentServiceWalletAddressChanged(NftId componentNftId, address currentWallet, address newWallet);
|
31
|
+
event LogComponentServiceProductFeesUpdated(NftId productNftId);
|
32
|
+
event LogComponentServiceDistributionFeesUpdated(NftId distributionNftId);
|
33
|
+
event LogComponentServicePoolFeesUpdated(NftId poolNftId);
|
34
|
+
event LogComponentServiceUpdateFee(
|
35
|
+
NftId nftId,
|
36
|
+
string feeName,
|
37
|
+
UFixed previousFractionalFee,
|
38
|
+
uint256 previousFixedFee,
|
39
|
+
UFixed newFractionalFee,
|
40
|
+
uint256 newFixedFee
|
41
|
+
);
|
42
|
+
|
43
|
+
//-------- component ----------------------------------------------------//
|
44
|
+
|
45
|
+
/// @dev sets the components associated wallet address
|
46
|
+
function setWallet(address newWallet) external;
|
47
|
+
|
48
|
+
/// @dev locks the component associated with the caller
|
49
|
+
function lock() external;
|
50
|
+
|
51
|
+
/// @dev unlocks the component associated with the caller
|
52
|
+
function unlock() external;
|
53
|
+
|
54
|
+
//-------- product ------------------------------------------------------//
|
55
|
+
|
56
|
+
/// @dev registers the sending component as a product component
|
57
|
+
function registerProduct() external;
|
58
|
+
|
59
|
+
function setProductFees(
|
60
|
+
Fee memory productFee, // product fee on net premium
|
61
|
+
Fee memory processingFee // product fee on payout amounts
|
62
|
+
) external;
|
63
|
+
|
64
|
+
function increaseProductFees(InstanceStore instanceStore, NftId productNftId, Amount feeAmount) external;
|
65
|
+
function decreaseProductFees(InstanceStore instanceStore, NftId productNftId, Amount feeAmount) external;
|
66
|
+
|
67
|
+
//-------- distribution -------------------------------------------------//
|
68
|
+
|
69
|
+
/// @dev registers the sending component as a distribution component
|
70
|
+
function registerDistribution() external;
|
71
|
+
|
72
|
+
function setDistributionFees(
|
73
|
+
Fee memory distributionFee, // distribution fee for sales that do not include commissions
|
74
|
+
Fee memory minDistributionOwnerFee // min fee required by distribution owner (not including commissions for distributors)
|
75
|
+
) external;
|
76
|
+
|
77
|
+
function increaseDistributionBalance(InstanceStore instanceStore, NftId distributionNftId, Amount amount, Amount feeAmount) external;
|
78
|
+
function decreaseDistributionBalance(InstanceStore instanceStore, NftId distributionNftId, Amount amount, Amount feeAmount) external;
|
79
|
+
|
80
|
+
//-------- oracle -------------------------------------------------------//
|
81
|
+
|
82
|
+
/// @dev registers the sending component as an oracle component
|
83
|
+
function registerOracle() external;
|
84
|
+
|
85
|
+
//-------- pool ---------------------------------------------------------//
|
86
|
+
|
87
|
+
/// @dev registers the sending component as a pool component
|
88
|
+
function registerPool() external;
|
89
|
+
|
90
|
+
function setPoolFees(
|
91
|
+
Fee memory poolFee, // pool fee on net premium
|
92
|
+
Fee memory stakingFee, // pool fee on staked capital from investor
|
93
|
+
Fee memory performanceFee // pool fee on profits from capital investors
|
94
|
+
) external;
|
95
|
+
|
96
|
+
function increasePoolBalance(InstanceStore instanceStore, NftId poolNftId, Amount amount, Amount feeAmount) external;
|
97
|
+
function decreasePoolBalance(InstanceStore instanceStore, NftId poolNftId, Amount amount, Amount feeAmount) external;
|
98
|
+
|
99
|
+
//-------- bundle -------------------------------------------------------//
|
100
|
+
function increaseBundleBalance(InstanceStore instanceStore, NftId bundleNftId, Amount amount, Amount feeAmount) external;
|
101
|
+
function decreaseBundleBalance(InstanceStore instanceStore, NftId bundleNftId, Amount amount, Amount feeAmount) external;
|
102
|
+
}
|
@@ -10,7 +10,6 @@ import {IInstance} from "../instance/IInstance.sol";
|
|
10
10
|
import {IInstanceService} from "../instance/IInstanceService.sol";
|
11
11
|
import {IProductService} from "../product/IProductService.sol";
|
12
12
|
import {IRegisterable} from "../shared/IRegisterable.sol";
|
13
|
-
import {ITransferInterceptor} from "../registry/ITransferInterceptor.sol";
|
14
13
|
import {NftId} from "../type/NftId.sol";
|
15
14
|
import {ObjectType} from "../type/ObjectType.sol";
|
16
15
|
import {TokenHandler} from "../shared/TokenHandler.sol";
|
@@ -18,13 +17,17 @@ import {TokenHandler} from "../shared/TokenHandler.sol";
|
|
18
17
|
/// @dev component base class
|
19
18
|
/// component examples are product, distribution, pool and oracle
|
20
19
|
interface IInstanceLinkedComponent is
|
21
|
-
ITransferInterceptor,
|
22
20
|
IComponent
|
23
21
|
{
|
24
22
|
error ErrorComponentNotProductService(address caller);
|
25
23
|
error ErrorComponentNotInstance(NftId instanceNftId);
|
26
24
|
error ErrorComponentProductNftAlreadySet();
|
27
25
|
|
26
|
+
/// @dev registers this component with the registry and instance.
|
27
|
+
/// a component may only be linked once
|
28
|
+
/// only initial component owner (nft holder) is authorizes to call this function
|
29
|
+
function register() external;
|
30
|
+
|
28
31
|
/// @dev locks component to disable functions that may change state related to this component, the only exception is function "unlock"
|
29
32
|
/// only component owner (nft holder) is authorizes to call this function
|
30
33
|
function lock() external;
|
@@ -33,9 +36,6 @@ interface IInstanceLinkedComponent is
|
|
33
36
|
/// only component owner (nft holder) is authorizes to call this function
|
34
37
|
function unlock() external;
|
35
38
|
|
36
|
-
/// @dev only product service may set product nft id during registration of product setup
|
37
|
-
function setProductNftId(NftId productNftId) external;
|
38
|
-
|
39
39
|
/// @dev defines the instance to which this component is linked to
|
40
40
|
function getInstance() external view returns (IInstance instance);
|
41
41
|
|
@@ -43,10 +43,4 @@ interface IInstanceLinkedComponent is
|
|
43
43
|
/// this is only relevant for pool and distribution components
|
44
44
|
function getProductNftId() external view returns (NftId productNftId);
|
45
45
|
|
46
|
-
function isNftInterceptor() external view returns(bool isInterceptor);
|
47
|
-
|
48
|
-
/// @dev returns component infos for this pool
|
49
|
-
/// when registered with an instance the info is obtained from the data stored in the instance
|
50
|
-
/// when not registered the function returns the info from the component contract
|
51
|
-
function getComponentInfo() external view returns (IComponents.ComponentInfo memory info);
|
52
46
|
}
|
@@ -1,11 +1,11 @@
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
2
2
|
pragma solidity ^0.8.20;
|
3
3
|
|
4
|
-
import {Blocknumber, blockBlocknumber, zeroBlocknumber} from "
|
5
|
-
import {Key32, KeyId} from "
|
6
|
-
import {NftId} from "
|
7
|
-
import {ObjectType} from "
|
8
|
-
import {StateId} from "
|
4
|
+
import {Blocknumber, blockBlocknumber, zeroBlocknumber} from "../type/Blocknumber.sol";
|
5
|
+
import {Key32, KeyId} from "../type/Key32.sol";
|
6
|
+
import {NftId} from "../type/NftId.sol";
|
7
|
+
import {ObjectType} from "../type/ObjectType.sol";
|
8
|
+
import {StateId} from "../type/StateId.sol";
|
9
9
|
|
10
10
|
import {ILifecycle} from "./ILifecycle.sol";
|
11
11
|
|
@@ -32,7 +32,7 @@ interface IKeyValueStore is ILifecycle {
|
|
32
32
|
// eg account outside gif objects that initiated the tx
|
33
33
|
// implies the caller needs to be propagated through all calls up to key values store itself
|
34
34
|
// to always have the instance address there doesn't seem to make sense
|
35
|
-
address updatedBy;
|
35
|
+
// address updatedBy;
|
36
36
|
Blocknumber updatedIn;
|
37
37
|
Blocknumber createdIn;
|
38
38
|
}
|
@@ -1,9 +1,9 @@
|
|
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 {StateId} from "
|
4
|
+
import {NftId} from "../type/NftId.sol";
|
5
|
+
import {ObjectType} from "../type/ObjectType.sol";
|
6
|
+
import {StateId} from "../type/StateId.sol";
|
7
7
|
|
8
8
|
interface ILifecycle {
|
9
9
|
|
@@ -16,7 +16,7 @@ interface INftOwnable is
|
|
16
16
|
error ErrorNftOwnableAlreadyLinked(NftId nftId);
|
17
17
|
error ErrorNftOwnableContractNotRegistered(address contractAddress);
|
18
18
|
|
19
|
-
function linkToRegisteredNftId() external;
|
19
|
+
function linkToRegisteredNftId() external returns (NftId);
|
20
20
|
|
21
21
|
function getNftId() external view returns (NftId);
|
22
22
|
function getOwner() external view returns (address);
|
@@ -27,6 +27,11 @@ interface IPolicyHolder is
|
|
27
27
|
/// it is optional for products to notifiy policy holder of expired claims
|
28
28
|
function policyExpired(NftId policyNftId) external;
|
29
29
|
|
30
|
+
/// @dev request for a payout by the requesting policy
|
31
|
+
/// the contract implements its use case specific handling for such requests.
|
32
|
+
/// eg. creation of a pending payout, a corresponding claim against one of the policies held by the IPolicyHolder
|
33
|
+
function requestPayout(NftId requestingPolicyNftId, Amount requestedPayoutAmount) external;
|
34
|
+
|
30
35
|
/// @dev callback function to notify the confirmation of the specified claim
|
31
36
|
/// active policies may open claims under the activated policy
|
32
37
|
function claimConfirmed(NftId policyNftId, ClaimId claimId, Amount amount) external;
|
@@ -36,5 +41,5 @@ interface IPolicyHolder is
|
|
36
41
|
|
37
42
|
/// @dev determines policy and claim specific beneficiary address
|
38
43
|
/// returned address will override GIF default where the policy nft holder is treated as beneficiary
|
39
|
-
function getBeneficiary(NftId policyNftId,
|
44
|
+
function getBeneficiary(NftId policyNftId, PayoutId payoutId) external view returns (address beneficiary);
|
40
45
|
}
|