@etherisc/gif-next 0.0.2-f2df3e2-873 → 0.0.2-f347f00-614
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 +4 -0
- package/artifacts/contracts/{components → distribution}/Distribution.sol/Distribution.json +238 -167
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +4 -0
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +1378 -0
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +4 -0
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +826 -0
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +4 -0
- package/artifacts/contracts/{components → distribution}/IDistributionComponent.sol/IDistributionComponent.json +117 -111
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +4 -0
- package/artifacts/contracts/{instance/service → distribution}/IDistributionService.sol/IDistributionService.json +49 -312
- package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +1 -1
- package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +36 -105
- package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstance.sol/IInstance.json +225 -2171
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +177 -41
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +378 -2689
- 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 +4 -0
- package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.json +228 -0
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +643 -345
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +262 -182
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +122 -105
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +4 -0
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +3598 -0
- 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 +4 -0
- package/artifacts/contracts/instance/{Cloneable.sol → base/Cloneable.sol}/Cloneable.json +1 -54
- 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 +4 -0
- package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.json +187 -0
- 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 +675 -0
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +4 -0
- package/artifacts/contracts/{components/Product.sol/Product.json → oracle/Oracle.sol/Oracle.json} +255 -276
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +4 -0
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +1034 -0
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +4 -0
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +730 -0
- package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +4 -0
- package/artifacts/contracts/pool/BundleService.sol/BundleService.json +1134 -0
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +4 -0
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +754 -0
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +4 -0
- package/artifacts/contracts/{instance/service → pool}/IBundleService.sol/IBundleService.json +65 -48
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +4 -0
- package/artifacts/contracts/{components → pool}/IPoolComponent.sol/IPoolComponent.json +193 -103
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +4 -0
- package/artifacts/contracts/{instance/service → pool}/IPoolService.sol/IPoolService.json +290 -56
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +4 -0
- package/artifacts/contracts/{components → pool}/Pool.sol/Pool.json +298 -109
- package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +4 -0
- package/artifacts/contracts/pool/PoolService.sol/PoolService.json +1453 -0
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +4 -0
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +742 -0
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +4 -0
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +863 -0
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +730 -0
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +4 -0
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +1315 -0
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +822 -0
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +4 -0
- package/artifacts/contracts/{instance/service/IClaimService.sol/IClaimService.json → product/IApplicationService.sol/IApplicationService.json} +96 -186
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +4 -0
- package/artifacts/contracts/{instance/service/IPolicyService.sol/IPolicyService.json → product/IClaimService.sol/IClaimService.json} +93 -258
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +4 -0
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +720 -0
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +4 -0
- package/artifacts/contracts/{instance/service/IApplicationService.sol/IApplicationService.json → product/IPricingService.sol/IPricingService.json} +63 -141
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +4 -0
- package/artifacts/contracts/{components → product}/IProductComponent.sol/IProductComponent.json +283 -118
- package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +4 -0
- package/artifacts/contracts/{instance/service → product}/IProductService.sol/IProductService.json +11 -61
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +4 -0
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +1183 -0
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +766 -0
- package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +4 -0
- package/artifacts/contracts/product/PricingService.sol/PricingService.json +1012 -0
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +786 -0
- package/artifacts/contracts/product/Product.sol/Product.dbg.json +4 -0
- package/artifacts/contracts/product/Product.sol/Product.json +1397 -0
- package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +4 -0
- package/artifacts/contracts/product/ProductService.sol/ProductService.json +708 -0
- package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +702 -0
- 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 +179 -29
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +310 -53
- package/artifacts/contracts/registry/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +4 -0
- package/artifacts/contracts/registry/IServiceAuthorization.sol/IServiceAuthorization.json +124 -0
- 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 +415 -43
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +4 -0
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +1896 -0
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +367 -73
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +105 -54
- package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +1 -1
- package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +762 -103
- package/artifacts/contracts/registry/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +4 -0
- package/artifacts/contracts/registry/ServiceAuthorization.sol/ServiceAuthorization.json +166 -0
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +4 -0
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +182 -0
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +316 -153
- package/artifacts/contracts/shared/AccessAdmin.sol/AccessAdmin.dbg.json +4 -0
- package/artifacts/contracts/shared/AccessAdmin.sol/AccessAdmin.json +1554 -0
- 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 +1747 -0
- package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.dbg.json +4 -0
- package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.json +1760 -0
- package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.dbg.json +4 -0
- package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.json +1838 -0
- package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.dbg.json +4 -0
- package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.json +1856 -0
- package/artifacts/contracts/shared/Component.sol/Component.dbg.json +4 -0
- package/artifacts/contracts/{components → shared}/Component.sol/Component.json +139 -85
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +4 -0
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +1511 -0
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +4 -0
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +796 -0
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +4 -0
- package/artifacts/contracts/{instance/base/ComponentService.sol/ComponentService.json → shared/ComponentVerifyingService.sol/ComponentVerifyingService.json} +27 -95
- 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/IAccessAdmin.sol/IAccessAdmin.dbg.json +4 -0
- package/artifacts/contracts/shared/IAccessAdmin.sol/IAccessAdmin.json +1184 -0
- 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 +4 -0
- package/artifacts/contracts/{components → shared}/IComponent.sol/IComponent.json +110 -84
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +4 -0
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +880 -0
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +4 -0
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +705 -0
- package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +4 -0
- package/artifacts/contracts/{instance/base → shared}/IKeyValueStore.sol/IKeyValueStore.json +50 -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 +3 -10
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +87 -9
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +3 -10
- package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.json +0 -13
- package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
- package/artifacts/contracts/shared/IService.sol/IService.json +17 -6
- 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 +4 -0
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +1036 -0
- 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 +15 -22
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +98 -26
- package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +1 -1
- package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +70 -35
- package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
- package/artifacts/contracts/shared/Registerable.sol/Registerable.json +23 -22
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -15
- package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
- package/artifacts/contracts/shared/Service.sol/Service.json +17 -6
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +60 -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/staking/IStaking.sol/IStaking.dbg.json +4 -0
- package/artifacts/contracts/staking/IStaking.sol/IStaking.json +1438 -0
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +4 -0
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +1035 -0
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +4 -0
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +460 -0
- package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +4 -0
- package/artifacts/contracts/staking/Staking.sol/Staking.json +2005 -0
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +761 -0
- 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 +4 -0
- package/artifacts/contracts/staking/StakingService.sol/StakingService.json +1343 -0
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +718 -0
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +2261 -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 +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 +345 -0
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +4 -0
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +225 -0
- package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +4 -0
- package/artifacts/contracts/{types → type}/ClaimId.sol/ClaimIdLib.json +5 -5
- 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 +209 -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/type/ObjectType.sol/ObjectTypeLib.json +186 -0
- package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +4 -0
- package/artifacts/contracts/{types → type}/PayoutId.sol/PayoutIdLib.json +5 -5
- 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/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 +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/type/RoleId.sol/RoleIdLib.json +266 -0
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +4 -0
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +198 -0
- package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +4 -0
- package/artifacts/contracts/type/Selector.sol/SelectorLib.json +129 -0
- package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +4 -0
- package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +10 -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/String.sol/StrLib.dbg.json +4 -0
- package/artifacts/contracts/type/String.sol/StrLib.json +132 -0
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +4 -0
- package/artifacts/contracts/{types → type}/Timestamp.sol/TimestampLib.json +20 -7
- 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/{components → distribution}/Distribution.sol +41 -64
- package/contracts/distribution/DistributionService.sol +297 -0
- package/contracts/distribution/DistributionServiceManager.sol +42 -0
- package/contracts/{components → distribution}/IDistributionComponent.sol +11 -16
- package/contracts/{instance/service → distribution}/IDistributionService.sol +19 -37
- package/contracts/instance/BundleManager.sol +5 -5
- package/contracts/instance/IInstance.sol +51 -66
- package/contracts/instance/IInstanceService.sol +51 -22
- package/contracts/instance/Instance.sol +137 -184
- package/contracts/instance/InstanceAdmin.sol +331 -0
- package/contracts/instance/InstanceAuthorizationsLib.sol +377 -0
- package/contracts/instance/InstanceReader.sol +130 -55
- package/contracts/instance/InstanceService.sol +258 -297
- package/contracts/instance/InstanceServiceManager.sol +11 -21
- package/contracts/instance/InstanceStore.sol +269 -0
- package/contracts/instance/base/BalanceStore.sol +123 -0
- package/contracts/instance/base/Cloneable.sol +28 -0
- package/contracts/instance/base/ObjectCounter.sol +21 -0
- package/contracts/instance/{ObjectManager.sol → base/ObjectManager.sol} +7 -9
- package/contracts/instance/module/IAccess.sol +4 -12
- package/contracts/instance/module/IBundle.sol +6 -9
- package/contracts/instance/module/IComponents.sol +21 -10
- package/contracts/instance/module/IDistribution.sol +7 -6
- package/contracts/instance/module/IPolicy.sol +22 -15
- package/contracts/instance/module/IRisk.sol +1 -1
- package/contracts/{test/TestToken.sol → mock/Dip.sol} +5 -5
- 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 +278 -0
- package/contracts/oracle/OracleServiceManager.sol +42 -0
- package/contracts/pool/BundleService.sol +296 -0
- package/contracts/pool/BundleServiceManager.sol +42 -0
- package/contracts/{instance/service → pool}/IBundleService.sol +33 -23
- package/contracts/{components → pool}/IPoolComponent.sol +16 -17
- package/contracts/{instance/service → pool}/IPoolService.sol +72 -21
- package/contracts/{components → pool}/Pool.sol +52 -55
- package/contracts/pool/PoolService.sol +452 -0
- package/contracts/pool/PoolServiceManager.sol +42 -0
- package/contracts/product/ApplicationService.sol +254 -0
- package/contracts/{instance/service → product}/ApplicationServiceManager.sol +11 -8
- package/contracts/product/ClaimService.sol +442 -0
- package/contracts/{instance/service → product}/ClaimServiceManager.sol +11 -8
- package/contracts/{instance/service → product}/IApplicationService.sol +13 -29
- package/contracts/product/IClaimService.sol +99 -0
- package/contracts/product/IPolicyService.sol +78 -0
- package/contracts/product/IPricingService.sol +39 -0
- package/contracts/product/IProductComponent.sol +42 -0
- package/contracts/product/IProductService.sol +33 -0
- package/contracts/product/PolicyService.sol +475 -0
- package/contracts/product/PolicyServiceManager.sol +42 -0
- package/contracts/product/PricingService.sol +300 -0
- package/contracts/product/PricingServiceManager.sol +42 -0
- package/contracts/{components → product}/Product.sol +89 -83
- package/contracts/product/ProductService.sol +124 -0
- package/contracts/product/ProductServiceManager.sol +42 -0
- package/contracts/registry/ChainNft.sol +8 -1
- package/contracts/registry/IRegistry.sol +44 -21
- package/contracts/registry/IRegistryService.sol +37 -36
- package/contracts/registry/IServiceAuthorization.sol +35 -0
- package/contracts/registry/Registry.sol +192 -83
- package/contracts/registry/RegistryAdmin.sol +333 -0
- package/contracts/registry/RegistryService.sol +71 -87
- package/contracts/registry/RegistryServiceManager.sol +21 -30
- package/contracts/registry/ReleaseManager.sol +394 -197
- package/contracts/registry/ServiceAuthorization.sol +83 -0
- package/contracts/registry/ServiceAuthorizationV3.sol +200 -0
- package/contracts/registry/TokenRegistry.sol +261 -62
- package/contracts/shared/AccessAdmin.sol +750 -0
- package/contracts/shared/AccessManagerCustom.sol +741 -0
- package/contracts/shared/AccessManagerExtended.sol +481 -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 +281 -0
- package/contracts/shared/ComponentService.sol +617 -0
- package/contracts/shared/ComponentServiceManager.sol +35 -0
- package/contracts/shared/ComponentVerifyingService.sol +117 -0
- package/contracts/shared/ERC165.sol +1 -1
- package/contracts/shared/IAccessAdmin.sol +162 -0
- package/contracts/shared/IAccessManagerExtended.sol +74 -0
- package/contracts/shared/IAccessManagerExtendedWithDisable.sol +18 -0
- package/contracts/{components → shared}/IComponent.sol +23 -29
- package/contracts/shared/IComponentService.sol +102 -0
- package/contracts/shared/IInstanceLinkedComponent.sol +46 -0
- package/contracts/{instance/base → shared}/IKeyValueStore.sol +15 -11
- package/contracts/{instance/base → shared}/ILifecycle.sol +3 -3
- package/contracts/shared/INftOwnable.sol +2 -2
- package/contracts/shared/IPolicyHolder.sol +29 -10
- package/contracts/shared/IRegistryLinked.sol +0 -1
- package/contracts/shared/IService.sol +11 -2
- package/contracts/shared/IVersionable.sol +1 -1
- package/contracts/shared/InitializableCustom.sol +177 -0
- package/contracts/shared/InstanceLinkedComponent.sol +144 -0
- package/contracts/shared/KeyValueStore.sol +127 -0
- package/contracts/{instance/base → shared}/Lifecycle.sol +18 -5
- package/contracts/shared/NftIdSetManager.sol +65 -0
- package/contracts/shared/NftOwnable.sol +3 -16
- package/contracts/shared/PolicyHolder.sol +40 -19
- package/contracts/shared/ProxyManager.sol +34 -4
- package/contracts/shared/Registerable.sol +13 -12
- package/contracts/shared/RegistryLinked.sol +0 -5
- package/contracts/shared/Service.sol +32 -21
- package/contracts/shared/TokenHandler.sol +27 -2
- package/contracts/shared/Versionable.sol +1 -1
- package/contracts/staking/IStaking.sol +168 -0
- package/contracts/staking/IStakingService.sol +153 -0
- package/contracts/staking/StakeManagerLib.sol +231 -0
- package/contracts/staking/Staking.sol +513 -0
- package/contracts/staking/StakingManager.sol +54 -0
- package/contracts/staking/StakingReader.sol +187 -0
- package/contracts/staking/StakingService.sol +411 -0
- package/contracts/staking/StakingServiceManager.sol +44 -0
- package/contracts/staking/StakingStore.sol +613 -0
- package/contracts/staking/TargetManagerLib.sol +207 -0
- package/contracts/{types → type}/AddressSet.sol +1 -1
- package/contracts/type/Amount.sol +128 -0
- package/contracts/{types → type}/Blocknumber.sol +20 -3
- package/contracts/{types → type}/Fee.sol +24 -22
- package/contracts/{types → type}/NftId.sol +14 -16
- package/contracts/{types → type}/NftIdSet.sol +2 -2
- package/contracts/type/ObjectType.sol +241 -0
- package/contracts/{types → type}/Referral.sol +1 -1
- package/contracts/type/RequestId.sol +75 -0
- package/contracts/{types → type}/RiskId.sol +1 -1
- package/contracts/type/RoleId.sol +201 -0
- package/contracts/{types → type}/Seconds.sol +27 -0
- package/contracts/type/Selector.sol +102 -0
- package/contracts/{types → type}/StateId.sol +27 -2
- package/contracts/type/String.sol +53 -0
- package/contracts/{types → type}/Timestamp.sol +6 -2
- package/contracts/{types → type}/Version.sol +1 -1
- package/package.json +3 -3
- package/artifacts/contracts/components/Component.sol/Component.dbg.json +0 -4
- package/artifacts/contracts/components/Distribution.sol/Distribution.dbg.json +0 -4
- package/artifacts/contracts/components/IComponent.sol/IComponent.dbg.json +0 -4
- package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.dbg.json +0 -4
- package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +0 -4
- package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +0 -4
- 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/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/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +0 -4
- package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +0 -1330
- package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.dbg.json +0 -4
- package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.json +0 -256
- package/artifacts/contracts/instance/base/ComponentService.sol/ComponentService.dbg.json +0 -4
- 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 -532
- 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/instance/service/ApplicationService.sol/ApplicationService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/ApplicationService.sol/ApplicationService.json +0 -1060
- package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +0 -4
- package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.json +0 -681
- package/artifacts/contracts/instance/service/BundleService.sol/BundleService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/BundleService.sol/BundleService.json +0 -1266
- package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.dbg.json +0 -4
- package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.json +0 -725
- package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.json +0 -1040
- package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +0 -4
- package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.json +0 -685
- package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +0 -1774
- package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +0 -4
- package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.json +0 -793
- package/artifacts/contracts/instance/service/IApplicationService.sol/IApplicationService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/IBundleService.sol/IBundleService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/IClaimService.sol/IClaimService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.dbg.json +0 -4
- 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 -1511
- package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +0 -4
- package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.json +0 -741
- package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +0 -1237
- package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.dbg.json +0 -4
- package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.json +0 -661
- package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +0 -840
- package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
- package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.json +0 -653
- 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/ContractDeployerLib.sol/ContractDeployerLib.dbg.json +0 -4
- package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.json +0 -107
- 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 -383
- 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 -596
- 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 -104
- 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/Amount.sol/AmountLib.dbg.json +0 -4
- package/artifacts/contracts/types/Amount.sol/AmountLib.json +0 -185
- package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +0 -4
- package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.json +0 -174
- 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/ClaimId.sol/ClaimIdLib.dbg.json +0 -4
- 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 -288
- 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 -166
- 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/ObjectType.sol/ObjectTypeLib.json +0 -92
- package/artifacts/contracts/types/PayoutId.sol/PayoutIdLib.dbg.json +0 -4
- package/artifacts/contracts/types/Referral.sol/ReferralLib.dbg.json +0 -4
- package/artifacts/contracts/types/Referral.sol/ReferralLib.json +0 -142
- 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/RoleId.sol/RoleIdLib.json +0 -156
- package/artifacts/contracts/types/Seconds.sol/SecondsLib.dbg.json +0 -4
- package/artifacts/contracts/types/Seconds.sol/SecondsLib.json +0 -124
- 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/Component.sol +0 -253
- package/contracts/components/IProductComponent.sol +0 -40
- package/contracts/instance/AccessManagerUpgradeableInitializeable.sol +0 -13
- package/contracts/instance/Cloneable.sol +0 -51
- package/contracts/instance/InstanceAccessManager.sol +0 -527
- package/contracts/instance/base/ComponentService.sol +0 -121
- package/contracts/instance/base/KeyValueStore.sol +0 -180
- package/contracts/instance/module/ISetup.sol +0 -33
- package/contracts/instance/module/ITreasury.sol +0 -23
- package/contracts/instance/service/ApplicationService.sol +0 -355
- package/contracts/instance/service/BundleService.sol +0 -436
- package/contracts/instance/service/BundleServiceManager.sol +0 -51
- package/contracts/instance/service/ClaimService.sol +0 -239
- package/contracts/instance/service/DistributionService.sol +0 -431
- package/contracts/instance/service/DistributionServiceManager.sol +0 -51
- package/contracts/instance/service/IClaimService.sol +0 -92
- package/contracts/instance/service/IPolicyService.sol +0 -137
- package/contracts/instance/service/IProductService.sol +0 -40
- package/contracts/instance/service/PolicyService.sol +0 -541
- package/contracts/instance/service/PolicyServiceManager.sol +0 -54
- package/contracts/instance/service/PoolService.sol +0 -303
- package/contracts/instance/service/PoolServiceManager.sol +0 -51
- package/contracts/instance/service/ProductService.sol +0 -210
- package/contracts/instance/service/ProductServiceManager.sol +0 -54
- package/contracts/registry/RegistryAccessManager.sol +0 -216
- package/contracts/shared/ContractDeployerLib.sol +0 -72
- 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/TestVersion.sol +0 -44
- package/contracts/test/TestVersionable.sol +0 -17
- package/contracts/test/Usdc.sol +0 -26
- package/contracts/types/Amount.sol +0 -65
- package/contracts/types/ChainId.sol +0 -38
- package/contracts/types/NumberId.sol +0 -52
- package/contracts/types/ObjectType.sol +0 -157
- package/contracts/types/RoleId.sol +0 -97
- /package/contracts/{types → type}/ClaimId.sol +0 -0
- /package/contracts/{types → type}/DistributorType.sol +0 -0
- /package/contracts/{types → type}/Key32.sol +0 -0
- /package/contracts/{types → type}/PayoutId.sol +0 -0
- /package/contracts/{types → type}/UFixed.sol +0 -0
| @@ -1,22 +1,29 @@ | |
| 1 1 | 
             
            // SPDX-License-Identifier: Apache-2.0
         | 
| 2 2 | 
             
            pragma solidity ^0.8.20;
         | 
| 3 3 |  | 
| 4 | 
            -
            import { | 
| 5 | 
            -
            import {ObjectType} from "../types/ObjectType.sol";
         | 
| 6 | 
            -
            import {RoleId} from "../types/RoleId.sol";
         | 
| 7 | 
            -
            import {IService} from "../shared/IService.sol";
         | 
| 8 | 
            -
             | 
| 9 | 
            -
            import {AccessManagerUpgradeableInitializeable} from "./AccessManagerUpgradeableInitializeable.sol";
         | 
| 10 | 
            -
            import {InstanceAccessManager} from "./InstanceAccessManager.sol";
         | 
| 11 | 
            -
            import {Instance} from "./Instance.sol";
         | 
| 12 | 
            -
            import {InstanceReader} from "./InstanceReader.sol";
         | 
| 4 | 
            +
            import {Amount} from "../type/Amount.sol";
         | 
| 13 5 | 
             
            import {BundleManager} from "./BundleManager.sol";
         | 
| 6 | 
            +
            import {Instance} from "./Instance.sol";
         | 
| 7 | 
            +
            import {IService} from "../shared/IService.sol";
         | 
| 8 | 
            +
            import {NftId} from "../type/NftId.sol";
         | 
| 9 | 
            +
            import {ObjectType} from "../type/ObjectType.sol";
         | 
| 10 | 
            +
            import {RoleId} from "../type/RoleId.sol";
         | 
| 11 | 
            +
            import {Seconds} from "../type/Seconds.sol";
         | 
| 12 | 
            +
            import {UFixed} from "../type/UFixed.sol";
         | 
| 13 | 
            +
            import {VersionPart} from "../type/Version.sol";
         | 
| 14 14 |  | 
| 15 15 | 
             
            interface IInstanceService is IService {
         | 
| 16 16 |  | 
| 17 | 
            +
                // onlyInstance
         | 
| 18 | 
            +
                error ErrorInstanceServiceNotRegistered(address instance);
         | 
| 19 | 
            +
                error ErrorInstanceServiceNotInstance(address instance, ObjectType objectType);
         | 
| 20 | 
            +
                error ErrorInstanceServiceInstanceVersionMismatch(address instance, VersionPart instanceVersion);
         | 
| 21 | 
            +
             | 
| 22 | 
            +
                error ErrorInstanceServiceComponentNotInstanceLinked(address component);
         | 
| 23 | 
            +
             | 
| 17 24 | 
             
                error ErrorInstanceServiceMasterInstanceAlreadySet();
         | 
| 18 | 
            -
                error ErrorInstanceServiceMasterOzAccessManagerAlreadySet();
         | 
| 19 25 | 
             
                error ErrorInstanceServiceMasterInstanceAccessManagerAlreadySet();
         | 
| 26 | 
            +
                error ErrorInstanceServiceMasterInstanceAdminAlreadySet();
         | 
| 20 27 | 
             
                error ErrorInstanceServiceMasterBundleManagerAlreadySet();
         | 
| 21 28 | 
             
                error ErrorInstanceServiceInstanceAddressZero();
         | 
| 22 29 |  | 
| @@ -25,36 +32,59 @@ interface IInstanceService is IService { | |
| 25 32 | 
             
                error ErrorInstanceServiceInstanceReaderSameAsMasterInstanceReader();
         | 
| 26 33 | 
             
                error ErrorInstanceServiceInstanceReaderInstanceMismatch();
         | 
| 27 34 |  | 
| 28 | 
            -
                error  | 
| 29 | 
            -
                error ErrorInstanceServiceInstanceAccessManagerZero();
         | 
| 35 | 
            +
                error ErrorInstanceServiceInstanceAdminZero();
         | 
| 30 36 | 
             
                error ErrorInstanceServiceInstanceReaderZero();
         | 
| 31 37 | 
             
                error ErrorInstanceServiceBundleManagerZero();
         | 
| 38 | 
            +
                error ErrorInstanceServiceInstanceStoreZero();
         | 
| 32 39 |  | 
| 33 40 | 
             
                error ErrorInstanceServiceInstanceAuthorityMismatch();
         | 
| 34 41 | 
             
                error ErrorInstanceServiceBundleManagerAuthorityMismatch();
         | 
| 35 42 | 
             
                error ErrorInstanceServiceInstanceReaderInstanceMismatch2();
         | 
| 36 43 | 
             
                error ErrorInstanceServiceBundleMangerInstanceMismatch();
         | 
| 44 | 
            +
                error ErrorInstanceServiceInstanceStoreAuthorityMismatch();
         | 
| 37 45 |  | 
| 38 46 | 
             
                error ErrorInstanceServiceRequestUnauhorized(address caller);
         | 
| 39 | 
            -
                error  | 
| 40 | 
            -
                error ErrorInstanceServiceNotInstance(NftId nftId);
         | 
| 47 | 
            +
                error ErrorInstanceServiceNotInstanceNftId(NftId nftId);
         | 
| 41 48 | 
             
                error ErrorInstanceServiceComponentNotRegistered(address componentAddress);
         | 
| 42 49 | 
             
                error ErrorInstanceServiceInstanceComponentMismatch(NftId instanceNftId, NftId componentNftId);
         | 
| 43 50 | 
             
                error ErrorInstanceServiceInvalidComponentType(address componentAddress, ObjectType expectedType, ObjectType componentType);
         | 
| 44 51 |  | 
| 45 | 
            -
                event LogInstanceCloned( | 
| 52 | 
            +
                event LogInstanceCloned(
         | 
| 53 | 
            +
                    address clonedOzAccessManager,
         | 
| 54 | 
            +
                    address clonedInstanceAccessManager,
         | 
| 55 | 
            +
                    address clonedInstance,
         | 
| 56 | 
            +
                    address clonedInstanceStore,
         | 
| 57 | 
            +
                    address clonedBundleManager, 
         | 
| 58 | 
            +
                    address clonedInstanceReader, 
         | 
| 59 | 
            +
                    NftId clonedInstanceNftId
         | 
| 60 | 
            +
                );
         | 
| 46 61 |  | 
| 47 62 | 
             
                function createInstanceClone()
         | 
| 48 63 | 
             
                    external 
         | 
| 49 64 | 
             
                    returns (
         | 
| 50 | 
            -
                         | 
| 51 | 
            -
                        InstanceAccessManager clonedInstanceAccessManager, 
         | 
| 65 | 
            +
                        // TODO check if Instance can be changed to IInstance
         | 
| 52 66 | 
             
                        Instance clonedInstance,
         | 
| 53 | 
            -
                        NftId instanceNftId | 
| 54 | 
            -
                        InstanceReader clonedInstanceReader,
         | 
| 55 | 
            -
                        BundleManager clonedBundleManager
         | 
| 67 | 
            +
                        NftId instanceNftId
         | 
| 56 68 | 
             
                    );
         | 
| 57 69 |  | 
| 70 | 
            +
             | 
| 71 | 
            +
                function setStakingLockingPeriod(Seconds stakeLockingPeriod) external;
         | 
| 72 | 
            +
                function setStakingRewardRate(UFixed rewardRate) external;
         | 
| 73 | 
            +
                function refillStakingRewardReserves(address rewardProvider, Amount dipAmount) external;
         | 
| 74 | 
            +
             | 
| 75 | 
            +
                /// @dev defunds the staking reward reserves for the specified target
         | 
| 76 | 
            +
                /// permissioned: only the target owner may call this function
         | 
| 77 | 
            +
                function withdrawStakingRewardReserves(Amount dipAmount) external returns (Amount newBalance);
         | 
| 78 | 
            +
             | 
| 79 | 
            +
             | 
| 80 | 
            +
                function createComponentTarget(
         | 
| 81 | 
            +
                    NftId instanceNftId,
         | 
| 82 | 
            +
                    address targetAddress,
         | 
| 83 | 
            +
                    string memory targetName,
         | 
| 84 | 
            +
                    bytes4[][] memory selectors,
         | 
| 85 | 
            +
                    RoleId[] memory roles
         | 
| 86 | 
            +
                ) external;
         | 
| 87 | 
            +
             | 
| 58 88 | 
             
                function createGifTarget(
         | 
| 59 89 | 
             
                    NftId instanceNftId,
         | 
| 60 90 | 
             
                    address targetAddress,
         | 
| @@ -64,5 +94,4 @@ interface IInstanceService is IService { | |
| 64 94 | 
             
                ) external;
         | 
| 65 95 |  | 
| 66 96 | 
             
                function setComponentLocked(bool locked) external;
         | 
| 67 | 
            -
            }
         | 
| 68 | 
            -
             | 
| 97 | 
            +
            }
         | 
| @@ -3,58 +3,61 @@ pragma solidity ^0.8.20; | |
| 3 3 |  | 
| 4 4 | 
             
            import {AccessManagedUpgradeable} from "@openzeppelin/contracts-upgradeable/access/manager/AccessManagedUpgradeable.sol";
         | 
| 5 5 |  | 
| 6 | 
            -
            import { | 
| 7 | 
            -
            import { | 
| 8 | 
            -
            import { | 
| 9 | 
            -
            import { | 
| 10 | 
            -
            import { | 
| 11 | 
            -
            import { | 
| 12 | 
            -
            import { | 
| 13 | 
            -
            import { | 
| 14 | 
            -
            import { | 
| 15 | 
            -
            import { | 
| 16 | 
            -
            import { | 
| 6 | 
            +
            import {Amount} from "../type/Amount.sol";
         | 
| 7 | 
            +
            import {Key32} from "../type/Key32.sol";
         | 
| 8 | 
            +
            import {NftId} from "../type/NftId.sol";
         | 
| 9 | 
            +
            import {RiskId} from "../type/RiskId.sol";
         | 
| 10 | 
            +
            import {ObjectType, BUNDLE, DISTRIBUTION, INSTANCE, POLICY, POOL, ROLE, PRODUCT, TARGET, COMPONENT, DISTRIBUTOR, DISTRIBUTOR_TYPE} from "../type/ObjectType.sol";
         | 
| 11 | 
            +
            import {RoleId, RoleIdLib, eqRoleId, ADMIN_ROLE, INSTANCE_ROLE, INSTANCE_OWNER_ROLE} from "../type/RoleId.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 | 
            +
            import {Seconds} from "../type/Seconds.sol";
         | 
| 17 | 
            +
            import {UFixed} from "../type/UFixed.sol";
         | 
| 18 | 
            +
            import {VersionPart, VersionPartLib} from "../type/Version.sol";
         | 
| 17 19 |  | 
| 18 20 | 
             
            import {Registerable} from "../shared/Registerable.sol";
         | 
| 21 | 
            +
            import {TokenHandler} from "../shared/TokenHandler.sol";
         | 
| 22 | 
            +
            import {AccessManagerExtendedInitializeable} from "../shared/AccessManagerExtendedInitializeable.sol";
         | 
| 19 23 |  | 
| 20 24 | 
             
            import {IRegistry} from "../registry/IRegistry.sol";
         | 
| 21 25 |  | 
| 22 26 | 
             
            import {IInstance} from "./IInstance.sol";
         | 
| 27 | 
            +
            import {IInstanceService} from "./IInstanceService.sol";
         | 
| 23 28 | 
             
            import {InstanceReader} from "./InstanceReader.sol";
         | 
| 24 | 
            -
            import { | 
| 29 | 
            +
            import {InstanceAdmin} from "./InstanceAdmin.sol";
         | 
| 25 30 | 
             
            import {BundleManager} from "./BundleManager.sol";
         | 
| 31 | 
            +
            import {InstanceStore} from "./InstanceStore.sol";
         | 
| 26 32 |  | 
| 27 | 
            -
            import {KeyValueStore} from " | 
| 33 | 
            +
            import {KeyValueStore} from "../shared/KeyValueStore.sol";
         | 
| 28 34 |  | 
| 29 35 | 
             
            import {IBundle} from "./module/IBundle.sol";
         | 
| 30 36 | 
             
            import {IComponents} from "./module/IComponents.sol";
         | 
| 31 37 | 
             
            import {IDistribution} from "./module/IDistribution.sol";
         | 
| 32 38 | 
             
            import {IPolicy} from "./module/IPolicy.sol";
         | 
| 33 39 | 
             
            import {IRisk} from "./module/IRisk.sol";
         | 
| 34 | 
            -
            import {ISetup} from "./module/ISetup.sol";
         | 
| 35 40 |  | 
| 36 | 
            -
            import { | 
| 41 | 
            +
            import {IDistributionService} from "../distribution/IDistributionService.sol";
         | 
| 42 | 
            +
            import {IPoolService} from "../pool/IPoolService.sol";
         | 
| 43 | 
            +
            import {IProductService} from "../product/IProductService.sol";
         | 
| 44 | 
            +
            import {IPolicyService} from "../product/IPolicyService.sol";
         | 
| 45 | 
            +
            import {IBundleService} from "../pool/IBundleService.sol";
         | 
| 37 46 |  | 
| 38 47 | 
             
            contract Instance is
         | 
| 39 48 | 
             
                IInstance,
         | 
| 40 49 | 
             
                AccessManagedUpgradeable,
         | 
| 41 | 
            -
                Registerable | 
| 42 | 
            -
                KeyValueStore
         | 
| 50 | 
            +
                Registerable
         | 
| 43 51 | 
             
            {
         | 
| 44 | 
            -
             | 
| 45 52 | 
             
                uint256 public constant GIF_MAJOR_VERSION = 3;
         | 
| 46 53 |  | 
| 47 | 
            -
                uint64 public constant ADMIN_ROLE = type(uint64).min;
         | 
| 48 | 
            -
                uint64 public constant PUBLIC_ROLE = type(uint64).max;
         | 
| 49 | 
            -
                uint64 public constant CUSTOM_ROLE_ID_MIN = 10000;
         | 
| 50 | 
            -
             | 
| 51 | 
            -
                uint32 public constant EXECUTION_DELAY = 0;
         | 
| 52 | 
            -
             | 
| 53 54 | 
             
                bool private _initialized;
         | 
| 54 55 |  | 
| 55 | 
            -
                 | 
| 56 | 
            +
                IInstanceService internal _instanceService;
         | 
| 57 | 
            +
                InstanceAdmin internal _instanceAdmin;
         | 
| 56 58 | 
             
                InstanceReader internal _instanceReader;
         | 
| 57 59 | 
             
                BundleManager internal _bundleManager;
         | 
| 60 | 
            +
                InstanceStore internal _instanceStore;
         | 
| 58 61 |  | 
| 59 62 | 
             
                modifier onlyChainNft() {
         | 
| 60 63 | 
             
                    if(msg.sender != getRegistry().getChainNftAddress()) {
         | 
| @@ -64,208 +67,151 @@ contract Instance is | |
| 64 67 | 
             
                }
         | 
| 65 68 |  | 
| 66 69 | 
             
                function initialize(address authority, address registryAddress, address initialOwner) 
         | 
| 67 | 
            -
                     | 
| 70 | 
            +
                    external 
         | 
| 68 71 | 
             
                    initializer()
         | 
| 69 72 | 
             
                {
         | 
| 73 | 
            +
                    if(authority == address(0)) {
         | 
| 74 | 
            +
                        revert ErrorInstanceInstanceAdminZero();
         | 
| 75 | 
            +
                    }
         | 
| 76 | 
            +
             | 
| 70 77 | 
             
                    __AccessManaged_init(authority);
         | 
| 71 78 |  | 
| 72 79 | 
             
                    IRegistry registry = IRegistry(registryAddress);
         | 
| 73 80 | 
             
                    initializeRegisterable(registryAddress, registry.getNftId(), INSTANCE(), true, initialOwner, "");
         | 
| 74 | 
            -
                    initializeLifecycle();
         | 
| 75 | 
            -
             | 
| 76 | 
            -
                    registerInterface(type(IInstance).interfaceId);    
         | 
| 77 | 
            -
                }
         | 
| 78 | 
            -
             | 
| 79 | 
            -
                //--- ProductSetup ------------------------------------------------------//
         | 
| 80 | 
            -
                function createProductSetup(NftId productNftId, ISetup.ProductSetupInfo memory setup) external restricted() {
         | 
| 81 | 
            -
                    create(_toNftKey32(productNftId, PRODUCT()), abi.encode(setup));
         | 
| 82 | 
            -
                }
         | 
| 83 | 
            -
             | 
| 84 | 
            -
                function updateProductSetup(NftId productNftId, ISetup.ProductSetupInfo memory setup, StateId newState) external restricted() {
         | 
| 85 | 
            -
                    update(_toNftKey32(productNftId, PRODUCT()), abi.encode(setup), newState);
         | 
| 86 | 
            -
                }
         | 
| 87 | 
            -
             | 
| 88 | 
            -
                function updateProductSetupState(NftId productNftId, StateId newState) external restricted() {
         | 
| 89 | 
            -
                    updateState(_toNftKey32(productNftId, PRODUCT()), newState);
         | 
| 90 | 
            -
                }
         | 
| 91 | 
            -
             | 
| 92 | 
            -
                //--- DistributionSetup ------------------------------------------------------//
         | 
| 93 | 
            -
                function createDistributionSetup(NftId distributionNftId, ISetup.DistributionSetupInfo memory setup) external restricted() {
         | 
| 94 | 
            -
                    create(_toNftKey32(distributionNftId, DISTRIBUTION()), abi.encode(setup));
         | 
| 95 | 
            -
                }
         | 
| 96 | 
            -
             | 
| 97 | 
            -
                function updateDistributionSetup(NftId distributionNftId, ISetup.DistributionSetupInfo memory setup, StateId newState) external restricted() {
         | 
| 98 | 
            -
                    update(_toNftKey32(distributionNftId, DISTRIBUTION()), abi.encode(setup), newState);
         | 
| 99 | 
            -
                }
         | 
| 100 | 
            -
             | 
| 101 | 
            -
                function updateDistributionSetupState(NftId distributionNftId, StateId newState) external restricted() {
         | 
| 102 | 
            -
                    updateState(_toNftKey32(distributionNftId, DISTRIBUTION()), newState);
         | 
| 103 | 
            -
                }
         | 
| 104 | 
            -
             | 
| 105 | 
            -
                //--- PoolSetup ------------------------------------------------------//
         | 
| 106 | 
            -
                function createPoolSetup(NftId poolNftId, IComponents.ComponentInfo memory info) external restricted() {
         | 
| 107 | 
            -
                    create(_toNftKey32(poolNftId, POOL()), abi.encode(info));
         | 
| 108 | 
            -
                }
         | 
| 109 | 
            -
             | 
| 110 | 
            -
                function updatePoolSetup(NftId poolNftId, IComponents.ComponentInfo memory info, StateId newState) external restricted() {
         | 
| 111 | 
            -
                    update(_toNftKey32(poolNftId, POOL()), abi.encode(info), newState);
         | 
| 112 | 
            -
                }
         | 
| 113 | 
            -
             | 
| 114 | 
            -
                function updatePoolSetupState(NftId poolNftId, StateId newState) external restricted() {
         | 
| 115 | 
            -
                    updateState(_toNftKey32(poolNftId, POOL()), newState);
         | 
| 116 | 
            -
                }
         | 
| 117 | 
            -
             | 
| 118 | 
            -
                //--- DistributorType -------------------------------------------------------//
         | 
| 119 | 
            -
                function createDistributorType(DistributorType distributorType, IDistribution.DistributorTypeInfo memory info) external restricted() {
         | 
| 120 | 
            -
                    create(distributorType.toKey32(), abi.encode(info));
         | 
| 121 | 
            -
                }
         | 
| 122 | 
            -
             | 
| 123 | 
            -
                function updateDistributorType(DistributorType distributorType, IDistribution.DistributorTypeInfo memory info, StateId newState) external restricted() {
         | 
| 124 | 
            -
                    update(distributorType.toKey32(), abi.encode(info), newState);
         | 
| 125 | 
            -
                }
         | 
| 126 | 
            -
             | 
| 127 | 
            -
                function updateDistributorTypeState(DistributorType distributorType, StateId newState) external restricted() {
         | 
| 128 | 
            -
                    updateState(distributorType.toKey32(), newState);
         | 
| 129 | 
            -
                }
         | 
| 130 | 
            -
             | 
| 131 | 
            -
                //--- Distributor -------------------------------------------------------//
         | 
| 132 | 
            -
                function createDistributor(NftId distributorNftId, IDistribution.DistributorInfo memory info) external restricted() {
         | 
| 133 | 
            -
                    create(_toNftKey32(distributorNftId, DISTRIBUTOR()), abi.encode(info));
         | 
| 134 | 
            -
                }
         | 
| 135 | 
            -
             | 
| 136 | 
            -
                function updateDistributor(NftId distributorNftId, IDistribution.DistributorInfo memory info, StateId newState) external restricted() {
         | 
| 137 | 
            -
                    update(_toNftKey32(distributorNftId, DISTRIBUTOR()), abi.encode(info), newState);
         | 
| 138 | 
            -
                }
         | 
| 139 | 
            -
             | 
| 140 | 
            -
                function updateDistributorState(NftId distributorNftId, StateId newState) external restricted() {
         | 
| 141 | 
            -
                    updateState(_toNftKey32(distributorNftId, DISTRIBUTOR()), newState);
         | 
| 142 | 
            -
                }
         | 
| 143 | 
            -
             | 
| 144 | 
            -
                //--- Referral ----------------------------------------------------------//
         | 
| 145 | 
            -
                function createReferral(ReferralId referralId, IDistribution.ReferralInfo memory referralInfo) external restricted() {
         | 
| 146 | 
            -
                    create(referralId.toKey32(), abi.encode(referralInfo));
         | 
| 147 | 
            -
                }
         | 
| 148 | 
            -
             | 
| 149 | 
            -
                function updateReferral(ReferralId referralId, IDistribution.ReferralInfo memory referralInfo, StateId newState) external restricted() {
         | 
| 150 | 
            -
                    update(referralId.toKey32(), abi.encode(referralInfo), newState);
         | 
| 151 | 
            -
                }
         | 
| 152 | 
            -
             | 
| 153 | 
            -
                function updateReferralState(ReferralId referralId, StateId newState) external restricted() {
         | 
| 154 | 
            -
                    updateState(referralId.toKey32(), newState);
         | 
| 155 | 
            -
                }
         | 
| 156 81 |  | 
| 157 | 
            -
             | 
| 158 | 
            -
             | 
| 159 | 
            -
             | 
| 160 | 
            -
             | 
| 161 | 
            -
             | 
| 162 | 
            -
                function updateBundle(NftId bundleNftId, IBundle.BundleInfo memory bundle, StateId newState) external restricted() {
         | 
| 163 | 
            -
                    update(_toNftKey32(bundleNftId, BUNDLE()), abi.encode(bundle), newState);
         | 
| 164 | 
            -
                }
         | 
| 82 | 
            +
                    _instanceService = IInstanceService(
         | 
| 83 | 
            +
                        getRegistry().getServiceAddress(
         | 
| 84 | 
            +
                            INSTANCE(), 
         | 
| 85 | 
            +
                            getMajorVersion()));
         | 
| 165 86 |  | 
| 166 | 
            -
             | 
| 167 | 
            -
                    updateState(_toNftKey32(bundleNftId, BUNDLE()), newState);
         | 
| 87 | 
            +
                    registerInterface(type(IInstance).interfaceId);    
         | 
| 168 88 | 
             
                }
         | 
| 169 89 |  | 
| 170 | 
            -
                //---  | 
| 171 | 
            -
                function createRisk(RiskId riskId, IRisk.RiskInfo memory risk) external restricted() {
         | 
| 172 | 
            -
                    create(riskId.toKey32(), abi.encode(risk));
         | 
| 173 | 
            -
                }
         | 
| 90 | 
            +
                //--- Staking ----------------------------------------------------------//
         | 
| 174 91 |  | 
| 175 | 
            -
                function  | 
| 176 | 
            -
                     | 
| 92 | 
            +
                function setStakingLockingPeriod(Seconds stakeLockingPeriod)
         | 
| 93 | 
            +
                    external
         | 
| 94 | 
            +
                    // TODO decide if onlyOwner or restricted to instance owner role is better
         | 
| 95 | 
            +
                    onlyOwner()
         | 
| 96 | 
            +
                {
         | 
| 97 | 
            +
                    _instanceService.setStakingLockingPeriod(stakeLockingPeriod);
         | 
| 177 98 | 
             
                }
         | 
| 178 99 |  | 
| 179 | 
            -
                function  | 
| 180 | 
            -
                     | 
| 100 | 
            +
                function setStakingRewardRate(UFixed rewardRate)
         | 
| 101 | 
            +
                    external
         | 
| 102 | 
            +
                    onlyOwner()
         | 
| 103 | 
            +
                {
         | 
| 104 | 
            +
                    _instanceService.setStakingRewardRate(rewardRate);
         | 
| 181 105 | 
             
                }
         | 
| 182 106 |  | 
| 183 | 
            -
                 | 
| 184 | 
            -
             | 
| 185 | 
            -
                     | 
| 107 | 
            +
                function refillStakingRewardReserves(Amount dipAmount)
         | 
| 108 | 
            +
                    external
         | 
| 109 | 
            +
                    onlyOwner()
         | 
| 110 | 
            +
                {
         | 
| 111 | 
            +
                    address instanceOwner = msg.sender;
         | 
| 112 | 
            +
                    _instanceService.refillStakingRewardReserves(instanceOwner, dipAmount);
         | 
| 186 113 | 
             
                }
         | 
| 187 114 |  | 
| 188 | 
            -
                function  | 
| 189 | 
            -
                     | 
| 115 | 
            +
                function withdrawStakingRewardReserves(Amount dipAmount)
         | 
| 116 | 
            +
                    external
         | 
| 117 | 
            +
                    onlyOwner()
         | 
| 118 | 
            +
                    returns (Amount newBalance)
         | 
| 119 | 
            +
                {
         | 
| 120 | 
            +
                    return _instanceService.withdrawStakingRewardReserves(dipAmount);
         | 
| 190 121 | 
             
                }
         | 
| 191 122 |  | 
| 192 | 
            -
                 | 
| 193 | 
            -
                    updateState(_toNftKey32(applicationNftId, POLICY()), newState);
         | 
| 194 | 
            -
                }
         | 
| 123 | 
            +
                //--- Roles ------------------------------------------------------------//
         | 
| 195 124 |  | 
| 196 | 
            -
                 | 
| 197 | 
            -
             | 
| 198 | 
            -
                     | 
| 125 | 
            +
                function createRole(string memory roleName, string memory adminName)
         | 
| 126 | 
            +
                    external
         | 
| 127 | 
            +
                    // TODO decide if onlyOwner or restricted to instance owner role is better
         | 
| 128 | 
            +
                    restricted // INSTANCE_OWNER_ROLE
         | 
| 129 | 
            +
                    returns (RoleId roleId, RoleId admin)
         | 
| 130 | 
            +
                {
         | 
| 131 | 
            +
                    (roleId, admin) = _instanceAdmin.createRole(roleName, adminName);
         | 
| 199 132 | 
             
                }
         | 
| 200 133 |  | 
| 201 | 
            -
                function  | 
| 202 | 
            -
                     | 
| 134 | 
            +
                function grantRole(RoleId roleId, address account) 
         | 
| 135 | 
            +
                    external 
         | 
| 136 | 
            +
                    // TODO decide if onlyOwner or restricted to instance owner role is better
         | 
| 137 | 
            +
                    restricted // INSTANCE_OWNER_ROLE
         | 
| 138 | 
            +
                {
         | 
| 139 | 
            +
                    AccessManagerExtendedInitializeable(authority()).grantRole(roleId.toInt(), account, 0);
         | 
| 203 140 | 
             
                }
         | 
| 204 141 |  | 
| 205 | 
            -
                 | 
| 206 | 
            -
             | 
| 207 | 
            -
                     | 
| 142 | 
            +
                function revokeRole(RoleId roleId, address account) 
         | 
| 143 | 
            +
                    external 
         | 
| 144 | 
            +
                    // TODO decide if onlyOwner or restricted to instance owner role is better
         | 
| 145 | 
            +
                    restricted // INSTANCE_OWNER_ROLE
         | 
| 146 | 
            +
                {
         | 
| 147 | 
            +
                    AccessManagerExtendedInitializeable(authority()).revokeRole(roleId.toInt(), account);
         | 
| 208 148 | 
             
                }
         | 
| 209 149 |  | 
| 210 | 
            -
                 | 
| 211 | 
            -
                    update(_toClaimKey32(policyNftId, claimId), abi.encode(claim), newState);
         | 
| 212 | 
            -
                }
         | 
| 150 | 
            +
                //--- Targets ------------------------------------------------------------//
         | 
| 213 151 |  | 
| 214 | 
            -
                function  | 
| 215 | 
            -
                     | 
| 152 | 
            +
                function createTarget(address target, string memory name) 
         | 
| 153 | 
            +
                    external 
         | 
| 154 | 
            +
                    // TODO decide if onlyOwner or restricted to instance owner role is better
         | 
| 155 | 
            +
                    restricted // INSTANCE_OWNER_ROLE
         | 
| 156 | 
            +
                {
         | 
| 157 | 
            +
                    _instanceAdmin.createTarget(target, name);
         | 
| 216 158 | 
             
                }
         | 
| 217 159 |  | 
| 218 | 
            -
                 | 
| 219 | 
            -
             | 
| 220 | 
            -
                     | 
| 160 | 
            +
                function setTargetFunctionRole(
         | 
| 161 | 
            +
                    string memory targetName,
         | 
| 162 | 
            +
                    bytes4[] calldata selectors,
         | 
| 163 | 
            +
                    RoleId roleId
         | 
| 164 | 
            +
                ) 
         | 
| 165 | 
            +
                    external 
         | 
| 166 | 
            +
                    restricted // INSTANCE_OWNER_ROLE
         | 
| 167 | 
            +
                {
         | 
| 168 | 
            +
                    _instanceAdmin.setTargetFunctionRoleByInstance(targetName, selectors, roleId);
         | 
| 221 169 | 
             
                }
         | 
| 222 170 |  | 
| 223 | 
            -
                function  | 
| 224 | 
            -
                     | 
| 171 | 
            +
                function setTargetLocked(address target, bool locked)
         | 
| 172 | 
            +
                    external 
         | 
| 173 | 
            +
                    restricted // INSTANCE_OWNER_ROLE
         | 
| 174 | 
            +
                {
         | 
| 175 | 
            +
                    _instanceAdmin.setTargetLockedByInstance(target, locked);
         | 
| 225 176 | 
             
                }
         | 
| 226 177 |  | 
| 227 | 
            -
                 | 
| 228 | 
            -
                    updateState(_toPayoutKey32(policyNftId, payoutId), newState);
         | 
| 229 | 
            -
                }
         | 
| 178 | 
            +
                //--- ITransferInterceptor ----------------------------------------------//
         | 
| 230 179 |  | 
| 231 | 
            -
                 | 
| 180 | 
            +
                // TODO interception of child components nfts
         | 
| 232 181 | 
             
                function nftMint(address to, uint256 tokenId) external onlyChainNft {
         | 
| 233 | 
            -
                     | 
| 234 | 
            -
                    assert(_accessManager.grantRole(INSTANCE_OWNER_ROLE(), to) == true);
         | 
| 182 | 
            +
                    _instanceAdmin.transferInstanceOwnerRole(address(0), to);
         | 
| 235 183 | 
             
                }
         | 
| 236 184 |  | 
| 237 185 | 
             
                function nftTransferFrom(address from, address to, uint256 tokenId) external onlyChainNft {
         | 
| 238 | 
            -
                     | 
| 239 | 
            -
                    assert(_accessManager.grantRole(INSTANCE_OWNER_ROLE(), to) == true);
         | 
| 186 | 
            +
                    _instanceAdmin.transferInstanceOwnerRole(from, to);
         | 
| 240 187 | 
             
                }
         | 
| 241 188 |  | 
| 189 | 
            +
                //function nftBurn(address from, uint256 tokenId) external onlyChainNft {
         | 
| 190 | 
            +
                    //_instanceAdmin.transferInstanceOwnerRole(from, address(0));
         | 
| 191 | 
            +
                //}
         | 
| 192 | 
            +
             | 
| 242 193 | 
             
                //--- initial setup functions -------------------------------------------//
         | 
| 243 194 |  | 
| 244 | 
            -
                function  | 
| 245 | 
            -
                    if(address( | 
| 246 | 
            -
                        revert  | 
| 195 | 
            +
                function setInstanceAdmin(InstanceAdmin accessManager) external restricted {
         | 
| 196 | 
            +
                    if(address(_instanceAdmin) != address(0)) {
         | 
| 197 | 
            +
                        revert ErrorInstanceInstanceAdminAlreadySet(address(_instanceAdmin));
         | 
| 247 198 | 
             
                    }
         | 
| 248 | 
            -
             | 
| 249 199 | 
             
                    if(accessManager.authority() != authority()) {
         | 
| 250 | 
            -
                        revert  | 
| 200 | 
            +
                        revert ErrorInstanceInstanceAdminAuthorityMismatch(authority());
         | 
| 251 201 | 
             
                    }
         | 
| 252 | 
            -
             | 
| 253 | 
            -
                    _accessManager = accessManager;      
         | 
| 202 | 
            +
                    _instanceAdmin = accessManager;      
         | 
| 254 203 | 
             
                }
         | 
| 255 | 
            -
             | 
| 204 | 
            +
                
         | 
| 256 205 | 
             
                function setBundleManager(BundleManager bundleManager) external restricted() {
         | 
| 257 206 | 
             
                    if(address(_bundleManager) != address(0)) {
         | 
| 258 207 | 
             
                        revert ErrorInstanceBundleManagerAlreadySet(address(_bundleManager));
         | 
| 259 208 | 
             
                    }
         | 
| 260 | 
            -
             | 
| 261 209 | 
             
                    if(bundleManager.getInstance() != Instance(this)) {
         | 
| 262 210 | 
             
                        revert ErrorInstanceBundleManagerInstanceMismatch(address(this));
         | 
| 263 211 | 
             
                    }
         | 
| 264 | 
            -
             | 
| 265 212 | 
             
                    if(bundleManager.authority() != authority()) {
         | 
| 266 213 | 
             
                        revert ErrorInstanceBundleManagerAuthorityMismatch(authority());
         | 
| 267 214 | 
             
                    }
         | 
| 268 | 
            -
             | 
| 269 215 | 
             
                    _bundleManager = bundleManager;
         | 
| 270 216 | 
             
                }
         | 
| 271 217 |  | 
| @@ -277,6 +223,16 @@ contract Instance is | |
| 277 223 | 
             
                    _instanceReader = instanceReader;
         | 
| 278 224 | 
             
                }
         | 
| 279 225 |  | 
| 226 | 
            +
                function setInstanceStore(InstanceStore instanceStore) external restricted {
         | 
| 227 | 
            +
                    if(address(_instanceStore) != address(0)) {
         | 
| 228 | 
            +
                        revert ErrorInstanceInstanceStoreAlreadySet(address(_instanceStore));
         | 
| 229 | 
            +
                    }
         | 
| 230 | 
            +
                    if(instanceStore.authority() != authority()) {
         | 
| 231 | 
            +
                        revert ErrorInstanceInstanceStoreAuthorityMismatch(authority());
         | 
| 232 | 
            +
                    }
         | 
| 233 | 
            +
                    _instanceStore = instanceStore;
         | 
| 234 | 
            +
                }
         | 
| 235 | 
            +
             | 
| 280 236 | 
             
                //--- external view functions -------------------------------------------//
         | 
| 281 237 |  | 
| 282 238 | 
             
                function getInstanceReader() external view returns (InstanceReader) {
         | 
| @@ -287,24 +243,21 @@ contract Instance is | |
| 287 243 | 
             
                    return _bundleManager;
         | 
| 288 244 | 
             
                }
         | 
| 289 245 |  | 
| 290 | 
            -
                function  | 
| 291 | 
            -
                    return  | 
| 246 | 
            +
                function getInstanceAdmin() external view returns (InstanceAdmin) {
         | 
| 247 | 
            +
                    return _instanceAdmin;
         | 
| 292 248 | 
             
                }
         | 
| 293 249 |  | 
| 294 | 
            -
                function  | 
| 295 | 
            -
                    return  | 
| 250 | 
            +
                function getInstanceAccessManager() external view returns (AccessManagerExtendedInitializeable) {
         | 
| 251 | 
            +
                    return AccessManagerExtendedInitializeable(authority());
         | 
| 296 252 | 
             
                }
         | 
| 297 253 |  | 
| 298 | 
            -
                 | 
| 299 | 
            -
             | 
| 300 | 
            -
                    return nftId.toKey32(objectType);
         | 
| 254 | 
            +
                function getInstanceStore() external view returns (InstanceStore) {
         | 
| 255 | 
            +
                    return _instanceStore;
         | 
| 301 256 | 
             
                }
         | 
| 302 257 |  | 
| 303 | 
            -
                function  | 
| 304 | 
            -
                    return  | 
| 258 | 
            +
                function getMajorVersion() public pure returns (VersionPart majorVersion) {
         | 
| 259 | 
            +
                    return VersionPartLib.toVersionPart(GIF_MAJOR_VERSION);
         | 
| 305 260 | 
             
                }
         | 
| 306 261 |  | 
| 307 | 
            -
                 | 
| 308 | 
            -
             | 
| 309 | 
            -
                }
         | 
| 310 | 
            -
            }
         | 
| 262 | 
            +
                //--- internal view/pure functions --------------------------------------//
         | 
| 263 | 
            +
            }
         |