@etherisc/gif-next 0.0.2-e769e2e-077 → 0.0.2-e802d97-477
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 +19 -13
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +79 -73
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +114 -56
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +11 -5
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +7 -1
- 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 +12 -22
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +47 -20
- 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 +126 -30
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +195 -64
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +77 -63
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +104 -34
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +246 -104
- package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +2 -2
- 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/oracle/IOracle.sol/IOracle.json +10 -0
- 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 +55 -41
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +102 -40
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +7 -1
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +11 -5
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +22 -1
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
- package/artifacts/contracts/pool/Pool.sol/Pool.json +18 -12
- package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolService.sol/PoolService.json +56 -35
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +95 -37
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +39 -25
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +96 -34
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +81 -67
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +115 -53
- 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 +7 -1
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +7 -1
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +11 -5
- package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +1 -1
- package/artifacts/contracts/product/IProductService.sol/IProductService.json +7 -1
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +59 -45
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +104 -42
- package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
- package/artifacts/contracts/product/PricingService.sol/PricingService.json +69 -55
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +109 -47
- package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
- package/artifacts/contracts/product/Product.sol/Product.json +18 -12
- package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +1 -1
- package/artifacts/contracts/product/ProductService.sol/ProductService.json +25 -19
- package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +87 -29
- 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 +150 -53
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +187 -67
- 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 +328 -103
- 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 +197 -72
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +87 -39
- package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +1 -1
- package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +752 -148
- package/artifacts/contracts/registry/ServiceAuthorizationsLib.sol/ServiceAuthorizationsLib.dbg.json +1 -1
- package/artifacts/contracts/registry/ServiceAuthorizationsLib.sol/ServiceAuthorizationsLib.json +2 -2
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +185 -135
- 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 +18 -12
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +92 -63
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +102 -46
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +7 -1
- 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 +11 -5
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +14 -1
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +11 -5
- package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
- package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.json +0 -10
- package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.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 +18 -12
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +10 -20
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +6 -6
- 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 +15 -9
- 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 +424 -593
- 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 +598 -627
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +149 -48
- 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 +593 -74
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +119 -29
- 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 +40 -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 +2 -2
- 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 +28 -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 +2 -4
- package/contracts/distribution/DistributionService.sol +3 -2
- package/contracts/distribution/DistributionServiceManager.sol +9 -18
- package/contracts/distribution/IDistributionComponent.sol +1 -1
- package/contracts/distribution/IDistributionService.sol +1 -1
- package/contracts/instance/IInstance.sol +11 -6
- package/contracts/instance/IInstanceService.sol +3 -5
- package/contracts/instance/Instance.sol +29 -21
- package/contracts/instance/InstanceAdmin.sol +331 -0
- package/contracts/instance/InstanceAuthorizationsLib.sol +192 -151
- package/contracts/instance/InstanceReader.sol +30 -6
- package/contracts/instance/InstanceService.sol +69 -55
- package/contracts/instance/InstanceServiceManager.sol +10 -20
- package/contracts/instance/InstanceStore.sol +64 -42
- package/contracts/instance/base/BalanceStore.sol +1 -1
- package/contracts/instance/base/ObjectCounter.sol +21 -0
- package/contracts/instance/module/IAccess.sol +2 -10
- 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 +6 -23
- package/contracts/pool/BundleServiceManager.sol +9 -18
- package/contracts/pool/IBundleService.sol +1 -1
- package/contracts/pool/IPoolService.sol +4 -1
- package/contracts/pool/PoolService.sol +45 -13
- package/contracts/pool/PoolServiceManager.sol +9 -18
- package/contracts/product/ApplicationService.sol +6 -5
- package/contracts/product/ApplicationServiceManager.sol +9 -6
- package/contracts/product/ClaimService.sol +13 -7
- 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 +1 -1
- package/contracts/product/IPricingService.sol +1 -1
- package/contracts/product/IProductService.sol +1 -1
- package/contracts/product/PolicyService.sol +10 -6
- package/contracts/product/PolicyServiceManager.sol +9 -21
- package/contracts/product/PricingService.sol +10 -9
- package/contracts/product/PricingServiceManager.sol +9 -18
- package/contracts/product/Product.sol +1 -1
- package/contracts/product/ProductService.sol +7 -5
- package/contracts/product/ProductServiceManager.sol +9 -21
- package/contracts/registry/ChainNft.sol +1 -0
- package/contracts/registry/IRegistry.sol +37 -24
- package/contracts/registry/IRegistryService.sol +26 -36
- package/contracts/registry/Registry.sol +164 -117
- package/contracts/registry/RegistryAdmin.sol +237 -0
- package/contracts/registry/RegistryService.sol +22 -83
- package/contracts/registry/RegistryServiceManager.sol +21 -23
- package/contracts/registry/ReleaseManager.sol +448 -223
- package/contracts/registry/TokenRegistry.sol +187 -59
- 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 +8 -13
- package/contracts/shared/ComponentService.sol +35 -13
- package/contracts/shared/ComponentVerifyingService.sol +13 -7
- 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 +3 -7
- package/contracts/shared/IComponentService.sol +11 -0
- package/contracts/shared/IKeyValueStore.sol +1 -1
- 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 +1 -2
- package/contracts/shared/KeyValueStore.sol +24 -66
- package/contracts/shared/Lifecycle.sol +11 -2
- 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/Service.sol +1 -1
- package/contracts/staking/IStaking.sol +127 -36
- package/contracts/staking/IStakingService.sol +83 -39
- package/contracts/staking/StakeManagerLib.sol +179 -0
- package/contracts/staking/Staking.sol +432 -93
- package/contracts/staking/StakingManager.sol +22 -14
- package/contracts/staking/StakingReader.sol +187 -0
- package/contracts/staking/StakingService.sol +245 -39
- 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 +15 -1
- package/contracts/type/Blocknumber.sol +14 -2
- package/contracts/type/Fee.sol +1 -1
- package/contracts/type/NftId.sol +9 -4
- package/contracts/type/NftIdSet.sol +1 -1
- package/contracts/type/ObjectType.sol +12 -9
- 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 +16 -8
- 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 +3 -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/registry/RegistryAccessManager.sol/RegistryAccessManager.dbg.json +0 -4
- package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.json +0 -308
- 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/registry/RegistryAccessManager.sol +0 -213
- package/contracts/shared/AccessManagerUpgradeableInitializeable.sol +0 -13
@@ -4,15 +4,19 @@ pragma solidity ^0.8.20;
|
|
4
4
|
import {Clones} from "@openzeppelin/contracts/proxy/Clones.sol";
|
5
5
|
import {ShortString, ShortStrings} from "@openzeppelin/contracts/utils/ShortStrings.sol";
|
6
6
|
|
7
|
+
import {BundleManager} from "./BundleManager.sol";
|
8
|
+
import {ChainNft} from "../registry/ChainNft.sol";
|
7
9
|
import {NftId} from "../type/NftId.sol";
|
8
10
|
import {RoleId} from "../type/RoleId.sol";
|
11
|
+
import {SecondsLib} from "../type/Seconds.sol";
|
12
|
+
import {UFixedLib} from "../type/UFixed.sol";
|
9
13
|
import {ADMIN_ROLE, INSTANCE_OWNER_ROLE, DISTRIBUTION_OWNER_ROLE, POOL_OWNER_ROLE, PRODUCT_OWNER_ROLE, INSTANCE_SERVICE_ROLE, DISTRIBUTION_SERVICE_ROLE, POOL_SERVICE_ROLE, PRODUCT_SERVICE_ROLE, APPLICATION_SERVICE_ROLE, POLICY_SERVICE_ROLE, CLAIM_SERVICE_ROLE, BUNDLE_SERVICE_ROLE, INSTANCE_ROLE} from "../type/RoleId.sol";
|
10
|
-
import {ObjectType, INSTANCE, BUNDLE, APPLICATION, POLICY,
|
14
|
+
import {ObjectType, INSTANCE, BUNDLE, APPLICATION, CLAIM, DISTRIBUTION, POLICY, POOL, PRODUCT, REGISTRY, STAKING} from "../type/ObjectType.sol";
|
11
15
|
|
12
16
|
import {Service} from "../shared/Service.sol";
|
13
17
|
import {IInstanceLinkedComponent} from "../shared/IInstanceLinkedComponent.sol";
|
14
18
|
import {IService} from "../shared/IService.sol";
|
15
|
-
import {
|
19
|
+
import {AccessManagerExtendedInitializeable} from "../shared/AccessManagerExtendedInitializeable.sol";
|
16
20
|
|
17
21
|
import {IDistributionComponent} from "../distribution/IDistributionComponent.sol";
|
18
22
|
import {IPoolComponent} from "../pool/IPoolComponent.sol";
|
@@ -20,14 +24,14 @@ import {IProductComponent} from "../product/IProductComponent.sol";
|
|
20
24
|
|
21
25
|
import {IRegistry} from "../registry/IRegistry.sol";
|
22
26
|
import {IRegistryService} from "../registry/IRegistryService.sol";
|
23
|
-
import {
|
27
|
+
import {IStakingService} from "../staking/IStakingService.sol";
|
28
|
+
import {TargetManagerLib} from "../staking/TargetManagerLib.sol";
|
24
29
|
|
25
30
|
import {Instance} from "./Instance.sol";
|
26
31
|
import {IInstance} from "./IInstance.sol";
|
27
|
-
import {
|
32
|
+
import {InstanceAdmin} from "./InstanceAdmin.sol";
|
28
33
|
import {IInstanceService} from "./IInstanceService.sol";
|
29
34
|
import {InstanceReader} from "./InstanceReader.sol";
|
30
|
-
import {BundleManager} from "./BundleManager.sol";
|
31
35
|
import {InstanceStore} from "./InstanceStore.sol";
|
32
36
|
import {InstanceAuthorizationsLib} from "./InstanceAuthorizationsLib.sol";
|
33
37
|
|
@@ -40,8 +44,10 @@ contract InstanceService is
|
|
40
44
|
bytes32 public constant INSTANCE_CREATION_CODE_HASH = bytes32(0);
|
41
45
|
|
42
46
|
IRegistryService internal _registryService;
|
43
|
-
|
44
|
-
|
47
|
+
IStakingService internal _stakingService;
|
48
|
+
|
49
|
+
address internal _masterAccessManager;
|
50
|
+
address internal _masterInstanceAdmin;
|
45
51
|
address internal _masterInstance;
|
46
52
|
address internal _masterInstanceReader;
|
47
53
|
address internal _masterInstanceBundleManager;
|
@@ -54,6 +60,13 @@ contract InstanceService is
|
|
54
60
|
_;
|
55
61
|
}
|
56
62
|
|
63
|
+
// TODO check component - service - instance version match
|
64
|
+
modifier onlyComponent() {
|
65
|
+
if (! getRegistry().isRegisteredComponent(msg.sender)) {
|
66
|
+
revert ErrorInstanceServiceRequestUnauhorized(msg.sender);
|
67
|
+
}
|
68
|
+
_;
|
69
|
+
}
|
57
70
|
|
58
71
|
function createInstanceClone()
|
59
72
|
external
|
@@ -63,18 +76,17 @@ contract InstanceService is
|
|
63
76
|
)
|
64
77
|
{
|
65
78
|
address instanceOwner = msg.sender;
|
66
|
-
|
67
|
-
Clones.clone(
|
79
|
+
AccessManagerExtendedInitializeable clonedAccessManager = AccessManagerExtendedInitializeable(
|
80
|
+
Clones.clone(_masterAccessManager));
|
68
81
|
|
69
82
|
// initially grants ADMIN_ROLE to this (being the instance service).
|
70
83
|
// This will allow the instance service to bootstrap the authorizations of the instance.
|
71
|
-
// Instance service will not use oz access manager directlly but through instance access manager instead
|
72
84
|
// Instance service will renounce ADMIN_ROLE when bootstraping is finished
|
73
|
-
|
85
|
+
clonedAccessManager.initialize(address(this));
|
74
86
|
|
75
87
|
clonedInstance = Instance(Clones.clone(_masterInstance));
|
76
88
|
clonedInstance.initialize(
|
77
|
-
address(
|
89
|
+
address(clonedAccessManager),
|
78
90
|
address(getRegistry()),
|
79
91
|
instanceOwner);
|
80
92
|
// initialize and set before instance reader
|
@@ -90,16 +102,17 @@ contract InstanceService is
|
|
90
102
|
clonedBundleManager.initialize(address(clonedInstance));
|
91
103
|
clonedInstance.setBundleManager(clonedBundleManager);
|
92
104
|
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
clonedInstance.
|
105
|
+
InstanceAdmin clonedInstanceAdmin = InstanceAdmin(Clones.clone(_masterInstanceAdmin));
|
106
|
+
clonedAccessManager.grantRole(ADMIN_ROLE().toInt(), address(clonedInstanceAdmin), 0);
|
107
|
+
clonedInstanceAdmin.initialize(address(clonedInstance));
|
108
|
+
clonedInstance.setInstanceAdmin(clonedInstanceAdmin);
|
97
109
|
|
98
110
|
// TODO amend setters with instance specific , policy manager ...
|
99
111
|
|
100
112
|
// TODO library does external calls -> but it is registry and access manager -> find out is it best practice
|
101
113
|
InstanceAuthorizationsLib.grantInitialAuthorizations(
|
102
|
-
|
114
|
+
clonedAccessManager,
|
115
|
+
clonedInstanceAdmin,
|
103
116
|
clonedInstance,
|
104
117
|
clonedBundleManager,
|
105
118
|
clonedInstanceStore,
|
@@ -107,14 +120,21 @@ contract InstanceService is
|
|
107
120
|
getRegistry(),
|
108
121
|
getVersion().toMajorPart());
|
109
122
|
|
110
|
-
|
123
|
+
clonedAccessManager.renounceRole(ADMIN_ROLE().toInt(), address(this));
|
111
124
|
|
125
|
+
// register new instance with registry
|
112
126
|
IRegistry.ObjectInfo memory info = _registryService.registerInstance(clonedInstance, instanceOwner);
|
113
127
|
clonedInstanceNftId = info.nftId;
|
114
128
|
|
129
|
+
// create corresponding staking target
|
130
|
+
_stakingService.createInstanceTarget(
|
131
|
+
clonedInstanceNftId,
|
132
|
+
TargetManagerLib.getDefaultLockingPeriod(),
|
133
|
+
TargetManagerLib.getDefaultRewardRate());
|
134
|
+
|
115
135
|
emit LogInstanceCloned(
|
116
|
-
address(
|
117
|
-
address(
|
136
|
+
address(clonedAccessManager),
|
137
|
+
address(clonedInstanceAdmin),
|
118
138
|
address(clonedInstance),
|
119
139
|
address(clonedInstanceStore),
|
120
140
|
address(clonedBundleManager),
|
@@ -122,10 +142,10 @@ contract InstanceService is
|
|
122
142
|
clonedInstanceNftId);
|
123
143
|
}
|
124
144
|
|
125
|
-
|
126
145
|
function setComponentLocked(bool locked)
|
127
146
|
external
|
128
147
|
virtual
|
148
|
+
onlyComponent()
|
129
149
|
{
|
130
150
|
// checks
|
131
151
|
address componentAddress = msg.sender;
|
@@ -137,16 +157,12 @@ contract InstanceService is
|
|
137
157
|
IRegistry registry = getRegistry();
|
138
158
|
NftId instanceNftId = registry.getObjectInfo(componentAddress).parentNftId;
|
139
159
|
|
140
|
-
if (instanceNftId.eqz()) {
|
141
|
-
revert ErrorInstanceServiceComponentNotRegistered(componentAddress);
|
142
|
-
}
|
143
|
-
|
144
160
|
IInstance instance = IInstance(
|
145
161
|
registry.getObjectInfo(
|
146
162
|
instanceNftId).objectAddress);
|
147
163
|
|
148
|
-
//
|
149
|
-
instance.
|
164
|
+
// no revert in case already locked
|
165
|
+
instance.getInstanceAdmin().setTargetLockedByService(
|
150
166
|
componentAddress,
|
151
167
|
locked);
|
152
168
|
}
|
@@ -167,15 +183,15 @@ contract InstanceService is
|
|
167
183
|
returns(NftId masterInstanceNftId)
|
168
184
|
{
|
169
185
|
if(_masterInstance != address(0)) { revert ErrorInstanceServiceMasterInstanceAlreadySet(); }
|
170
|
-
if(
|
171
|
-
if(
|
186
|
+
if(_masterAccessManager != address(0)) { revert ErrorInstanceServiceMasterInstanceAccessManagerAlreadySet(); }
|
187
|
+
if(_masterInstanceAdmin != address(0)) { revert ErrorInstanceServiceMasterInstanceAdminAlreadySet(); }
|
172
188
|
if(_masterInstanceBundleManager != address(0)) { revert ErrorInstanceServiceMasterBundleManagerAlreadySet(); }
|
173
189
|
|
174
190
|
if(instanceAddress == address(0)) { revert ErrorInstanceServiceInstanceAddressZero(); }
|
175
191
|
|
176
192
|
IInstance instance = IInstance(instanceAddress);
|
177
|
-
|
178
|
-
address
|
193
|
+
InstanceAdmin instanceAdmin = instance.getInstanceAdmin();
|
194
|
+
address instanceAdminAddress = address(instanceAdmin);
|
179
195
|
InstanceReader instanceReader = instance.getInstanceReader();
|
180
196
|
address instanceReaderAddress = address(instanceReader);
|
181
197
|
BundleManager bundleManager = instance.getBundleManager();
|
@@ -183,19 +199,19 @@ contract InstanceService is
|
|
183
199
|
InstanceStore instanceStore = instance.getInstanceStore();
|
184
200
|
address instanceStoreAddress = address(instanceStore);
|
185
201
|
|
186
|
-
if(
|
202
|
+
if(instanceAdminAddress == address(0)) { revert ErrorInstanceServiceInstanceAdminZero(); }
|
187
203
|
if(instanceReaderAddress == address(0)) { revert ErrorInstanceServiceInstanceReaderZero(); }
|
188
204
|
if(bundleManagerAddress == address(0)) { revert ErrorInstanceServiceBundleManagerZero(); }
|
189
205
|
if(instanceStoreAddress == address(0)) { revert ErrorInstanceServiceInstanceStoreZero(); }
|
190
206
|
|
191
|
-
if(instance.authority() !=
|
192
|
-
if(bundleManager.authority() !=
|
193
|
-
if(instanceStore.authority() !=
|
207
|
+
if(instance.authority() != instanceAdmin.authority()) { revert ErrorInstanceServiceInstanceAuthorityMismatch(); }
|
208
|
+
if(bundleManager.authority() != instanceAdmin.authority()) { revert ErrorInstanceServiceBundleManagerAuthorityMismatch(); }
|
209
|
+
if(instanceStore.authority() != instanceAdmin.authority()) { revert ErrorInstanceServiceInstanceStoreAuthorityMismatch(); }
|
194
210
|
if(bundleManager.getInstance() != instance) { revert ErrorInstanceServiceBundleMangerInstanceMismatch(); }
|
195
211
|
if(instanceReader.getInstance() != instance) { revert ErrorInstanceServiceInstanceReaderInstanceMismatch2(); }
|
196
212
|
|
197
|
-
|
198
|
-
|
213
|
+
_masterAccessManager = instance.authority();
|
214
|
+
_masterInstanceAdmin = instanceAdminAddress;
|
199
215
|
_masterInstance = instanceAddress;
|
200
216
|
_masterInstanceReader = instanceReaderAddress;
|
201
217
|
_masterInstanceBundleManager = bundleManagerAddress;
|
@@ -206,7 +222,7 @@ contract InstanceService is
|
|
206
222
|
masterInstanceNftId = info.nftId;
|
207
223
|
}
|
208
224
|
|
209
|
-
function
|
225
|
+
function upgradeMasterInstanceReader(address instanceReaderAddress) external onlyOwner {
|
210
226
|
if(_masterInstanceReader == address(0)) { revert ErrorInstanceServiceMasterInstanceReaderNotSet(); }
|
211
227
|
if(instanceReaderAddress == address(0)) { revert ErrorInstanceServiceInstanceReaderAddressZero(); }
|
212
228
|
if(instanceReaderAddress == _masterInstanceReader) { revert ErrorInstanceServiceInstanceReaderSameAsMasterInstanceReader(); }
|
@@ -261,8 +277,7 @@ contract InstanceService is
|
|
261
277
|
)
|
262
278
|
external
|
263
279
|
virtual
|
264
|
-
|
265
|
-
// restricted()
|
280
|
+
restricted()
|
266
281
|
{
|
267
282
|
_createGifTarget(
|
268
283
|
instanceNftId,
|
@@ -285,18 +300,19 @@ contract InstanceService is
|
|
285
300
|
internal
|
286
301
|
virtual
|
287
302
|
{
|
303
|
+
// TODO instanceAdmin will check target instance match anyway
|
288
304
|
(
|
289
305
|
IInstance instance, // or instanceInfo
|
290
306
|
// or targetInfo
|
291
307
|
) = _validateInstanceAndComponent(instanceNftId, targetAddress);
|
292
308
|
|
293
|
-
|
294
|
-
|
309
|
+
InstanceAdmin instanceAdmin = instance.getInstanceAdmin();
|
310
|
+
instanceAdmin.createGifTarget(targetAddress, targetName);
|
295
311
|
// set proposed target config
|
296
312
|
// TODO restriction: gif targets are set only once and only here?
|
297
313
|
// assume config is a mix of gif and custom roles and no further configuration by INSTANCE_OWNER_ROLE is ever needed?
|
298
314
|
for(uint roleIdx = 0; roleIdx < roles.length; roleIdx++) {
|
299
|
-
|
315
|
+
instanceAdmin.setTargetFunctionRoleByService(targetName, selectors[roleIdx], roles[roleIdx]);
|
300
316
|
}
|
301
317
|
}
|
302
318
|
|
@@ -310,18 +326,16 @@ contract InstanceService is
|
|
310
326
|
virtual override
|
311
327
|
{
|
312
328
|
(
|
313
|
-
address registryAddress
|
314
|
-
address
|
315
|
-
|
316
|
-
|
317
|
-
|
318
|
-
|
319
|
-
|
320
|
-
|
321
|
-
|
322
|
-
|
323
|
-
// owner is InstanceServiceManager deployer
|
324
|
-
initializeService(registryAddress, address(0), owner);
|
329
|
+
address registryAddress,,
|
330
|
+
//address managerAddress
|
331
|
+
address authority
|
332
|
+
) = abi.decode(data, (address, address, address));
|
333
|
+
|
334
|
+
initializeService(registryAddress, authority, owner);
|
335
|
+
|
336
|
+
_registryService = IRegistryService(_getServiceAddress(REGISTRY()));
|
337
|
+
_stakingService = IStakingService(_getServiceAddress(STAKING()));
|
338
|
+
|
325
339
|
registerInterface(type(IInstanceService).interfaceId);
|
326
340
|
}
|
327
341
|
|
@@ -13,33 +13,23 @@ contract InstanceServiceManager is ProxyManager {
|
|
13
13
|
|
14
14
|
InstanceService private _instanceService;
|
15
15
|
|
16
|
-
/// @dev initializes proxy manager with instance service implementation
|
16
|
+
/// @dev initializes proxy manager with instance service implementation
|
17
17
|
constructor(
|
18
|
-
address
|
19
|
-
|
18
|
+
address authority,
|
19
|
+
address registryAddress,
|
20
|
+
bytes32 salt
|
21
|
+
)
|
20
22
|
ProxyManager(registryAddress)
|
21
23
|
{
|
22
|
-
InstanceService instSrv = new InstanceService();
|
24
|
+
InstanceService instSrv = new InstanceService{salt: salt}();
|
23
25
|
// bytes memory initCode = type(InstanceService).creationCode;
|
24
|
-
bytes memory data = abi.encode(registryAddress, address(this));
|
25
|
-
IVersionable versionable =
|
26
|
+
bytes memory data = abi.encode(registryAddress, address(this), authority);
|
27
|
+
IVersionable versionable = deployDetermenistic(
|
26
28
|
address(instSrv),
|
27
|
-
data
|
29
|
+
data,
|
30
|
+
salt);
|
28
31
|
|
29
32
|
_instanceService = InstanceService(address(versionable));
|
30
|
-
|
31
|
-
// TODO `this` must have a role or own nft to register service
|
32
|
-
//Registry registry = Registry(registryAddress);
|
33
|
-
//address registryServiceAddress = registry.getServiceAddress(REGISTRY(), _instanceService.getMajorVersion());
|
34
|
-
//RegistryService registryService = RegistryService(registryServiceAddress);
|
35
|
-
//registryService.registerService(_instanceService);
|
36
|
-
// RegistryService registryService = _instanceService.getRegistryService();
|
37
|
-
|
38
|
-
// TODO no nft to link yet
|
39
|
-
// link ownership of instance service manager ot nft owner of instance service
|
40
|
-
//_linkToNftOwnable(
|
41
|
-
// address(registryAddress),
|
42
|
-
// address(_instanceService));
|
43
33
|
}
|
44
34
|
|
45
35
|
//--- view functions ----------------------------------------------------//
|
@@ -7,7 +7,8 @@ import {Amount} from "../type/Amount.sol";
|
|
7
7
|
import {Key32, KeyId, Key32Lib} from "../type/Key32.sol";
|
8
8
|
import {NftId} from "../type/NftId.sol";
|
9
9
|
import {ClaimId} from "../type/ClaimId.sol";
|
10
|
-
import {ObjectType, BUNDLE, DISTRIBUTION,
|
10
|
+
import {ObjectType, BUNDLE, DISTRIBUTION, INSTANCE, POLICY, POOL, ROLE, PRODUCT, TARGET, COMPONENT, DISTRIBUTOR, DISTRIBUTOR_TYPE} from "../type/ObjectType.sol";
|
11
|
+
import {RequestId} from "../type/RequestId.sol";
|
11
12
|
import {RiskId, RiskIdLib} from "../type/RiskId.sol";
|
12
13
|
import {RoleId, RoleIdLib, INSTANCE_ROLE, INSTANCE_OWNER_ROLE} from "../type/RoleId.sol";
|
13
14
|
import {StateId, ACTIVE} from "../type/StateId.sol";
|
@@ -21,18 +22,21 @@ import {BalanceStore} from "./base/BalanceStore.sol";
|
|
21
22
|
import {IInstance} from "./IInstance.sol";
|
22
23
|
import {KeyValueStore} from "../shared/KeyValueStore.sol";
|
23
24
|
import {IKeyValueStore} from "../shared/KeyValueStore.sol";
|
25
|
+
import {ObjectCounter} from "./base/ObjectCounter.sol";
|
24
26
|
|
25
27
|
import {IBundle} from "./module/IBundle.sol";
|
26
28
|
import {IComponents} from "./module/IComponents.sol";
|
27
29
|
import {IDistribution} from "./module/IDistribution.sol";
|
28
30
|
import {IPolicy} from "./module/IPolicy.sol";
|
31
|
+
import {IOracle} from "../oracle/IOracle.sol";
|
29
32
|
import {IRisk} from "./module/IRisk.sol";
|
30
33
|
|
31
34
|
|
32
35
|
contract InstanceStore is
|
33
36
|
AccessManagedUpgradeable,
|
37
|
+
BalanceStore,
|
34
38
|
KeyValueStore,
|
35
|
-
|
39
|
+
ObjectCounter
|
36
40
|
{
|
37
41
|
function initialize(address instance)
|
38
42
|
public
|
@@ -40,10 +44,12 @@ contract InstanceStore is
|
|
40
44
|
{
|
41
45
|
address authority = IInstance(instance).authority();
|
42
46
|
__AccessManaged_init(authority);
|
47
|
+
|
43
48
|
initializeLifecycle();
|
44
49
|
}
|
45
50
|
|
46
51
|
//--- Component ---------------------------------------------------------//
|
52
|
+
|
47
53
|
function createComponent(
|
48
54
|
NftId componentNftId,
|
49
55
|
IComponents.ComponentInfo memory componentInfo
|
@@ -51,8 +57,8 @@ contract InstanceStore is
|
|
51
57
|
external
|
52
58
|
restricted()
|
53
59
|
{
|
54
|
-
|
55
|
-
|
60
|
+
_registerBalanceTarget(componentNftId);
|
61
|
+
_create(_toNftKey32(componentNftId, COMPONENT()), abi.encode(componentInfo));
|
56
62
|
}
|
57
63
|
|
58
64
|
function updateComponent(
|
@@ -63,24 +69,24 @@ contract InstanceStore is
|
|
63
69
|
external
|
64
70
|
restricted()
|
65
71
|
{
|
66
|
-
|
72
|
+
_update(_toNftKey32(componentNftId, COMPONENT()), abi.encode(componentInfo), newState);
|
67
73
|
}
|
68
74
|
|
69
|
-
//---
|
75
|
+
//--- Product -----------------------------------------------------------//
|
70
76
|
|
71
77
|
function createProduct(NftId productNftId, IComponents.ProductInfo memory info) external restricted() {
|
72
|
-
|
78
|
+
_create(_toNftKey32(productNftId, PRODUCT()), abi.encode(info));
|
73
79
|
}
|
74
80
|
|
75
81
|
function updateProduct(NftId productNftId, IComponents.ProductInfo memory info, StateId newState) external restricted() {
|
76
|
-
|
82
|
+
_update(_toNftKey32(productNftId, PRODUCT()), abi.encode(info), newState);
|
77
83
|
}
|
78
84
|
|
79
85
|
function updateProductSetupState(NftId productNftId, StateId newState) external restricted() {
|
80
|
-
|
86
|
+
_updateState(_toNftKey32(productNftId, PRODUCT()), newState);
|
81
87
|
}
|
82
88
|
|
83
|
-
//---
|
89
|
+
//--- Pool --------------------------------------------------------------//
|
84
90
|
|
85
91
|
function createPool(
|
86
92
|
NftId poolNftId,
|
@@ -89,133 +95,149 @@ contract InstanceStore is
|
|
89
95
|
external
|
90
96
|
restricted()
|
91
97
|
{
|
92
|
-
|
98
|
+
_create(_toNftKey32(poolNftId, POOL()), abi.encode(info));
|
93
99
|
}
|
94
100
|
|
95
101
|
function updatePool(NftId poolNftId, IComponents.PoolInfo memory info, StateId newState) external restricted() {
|
96
|
-
|
102
|
+
_update(_toNftKey32(poolNftId, POOL()), abi.encode(info), newState);
|
97
103
|
}
|
98
104
|
|
99
105
|
function updatePoolState(NftId poolNftId, StateId newState) external restricted() {
|
100
|
-
|
106
|
+
_updateState(_toNftKey32(poolNftId, POOL()), newState);
|
101
107
|
}
|
102
108
|
|
103
|
-
//--- DistributorType
|
109
|
+
//--- DistributorType ---------------------------------------------------//
|
104
110
|
function createDistributorType(DistributorType distributorType, IDistribution.DistributorTypeInfo memory info) external restricted() {
|
105
|
-
|
111
|
+
_create(distributorType.toKey32(), abi.encode(info));
|
106
112
|
}
|
107
113
|
|
108
114
|
function updateDistributorType(DistributorType distributorType, IDistribution.DistributorTypeInfo memory info, StateId newState) external restricted() {
|
109
|
-
|
115
|
+
_update(distributorType.toKey32(), abi.encode(info), newState);
|
110
116
|
}
|
111
117
|
|
112
118
|
function updateDistributorTypeState(DistributorType distributorType, StateId newState) external restricted() {
|
113
|
-
|
119
|
+
_updateState(distributorType.toKey32(), newState);
|
114
120
|
}
|
115
121
|
|
116
122
|
//--- Distributor -------------------------------------------------------//
|
117
123
|
function createDistributor(NftId distributorNftId, IDistribution.DistributorInfo memory info) external restricted() {
|
118
|
-
|
124
|
+
_create(_toNftKey32(distributorNftId, DISTRIBUTOR()), abi.encode(info));
|
119
125
|
}
|
120
126
|
|
121
127
|
function updateDistributor(NftId distributorNftId, IDistribution.DistributorInfo memory info, StateId newState) external restricted() {
|
122
|
-
|
128
|
+
_update(_toNftKey32(distributorNftId, DISTRIBUTOR()), abi.encode(info), newState);
|
123
129
|
}
|
124
130
|
|
125
131
|
function updateDistributorState(NftId distributorNftId, StateId newState) external restricted() {
|
126
|
-
|
132
|
+
_updateState(_toNftKey32(distributorNftId, DISTRIBUTOR()), newState);
|
127
133
|
}
|
128
134
|
|
129
135
|
//--- Referral ----------------------------------------------------------//
|
130
136
|
function createReferral(ReferralId referralId, IDistribution.ReferralInfo memory referralInfo) external restricted() {
|
131
|
-
|
137
|
+
_create(referralId.toKey32(), abi.encode(referralInfo));
|
132
138
|
}
|
133
139
|
|
134
140
|
function updateReferral(ReferralId referralId, IDistribution.ReferralInfo memory referralInfo, StateId newState) external restricted() {
|
135
|
-
|
141
|
+
_update(referralId.toKey32(), abi.encode(referralInfo), newState);
|
136
142
|
}
|
137
143
|
|
138
144
|
function updateReferralState(ReferralId referralId, StateId newState) external restricted() {
|
139
|
-
|
145
|
+
_updateState(referralId.toKey32(), newState);
|
140
146
|
}
|
141
147
|
|
142
148
|
//--- Bundle ------------------------------------------------------------//
|
143
149
|
function createBundle(NftId bundleNftId, IBundle.BundleInfo memory bundle) external restricted() {
|
144
|
-
|
145
|
-
|
150
|
+
_registerBalanceTarget(bundleNftId);
|
151
|
+
_create(_toNftKey32(bundleNftId, BUNDLE()), abi.encode(bundle));
|
146
152
|
}
|
147
153
|
|
148
154
|
function updateBundle(NftId bundleNftId, IBundle.BundleInfo memory bundle, StateId newState) external restricted() {
|
149
|
-
|
155
|
+
_update(_toNftKey32(bundleNftId, BUNDLE()), abi.encode(bundle), newState);
|
150
156
|
}
|
151
157
|
|
152
158
|
function updateBundleState(NftId bundleNftId, StateId newState) external restricted() {
|
153
|
-
|
159
|
+
_updateState(_toNftKey32(bundleNftId, BUNDLE()), newState);
|
154
160
|
}
|
155
161
|
|
156
162
|
//--- Risk --------------------------------------------------------------//
|
157
163
|
function createRisk(RiskId riskId, IRisk.RiskInfo memory risk) external restricted() {
|
158
|
-
|
164
|
+
_create(riskId.toKey32(), abi.encode(risk));
|
159
165
|
}
|
160
166
|
|
161
167
|
function updateRisk(RiskId riskId, IRisk.RiskInfo memory risk, StateId newState) external restricted() {
|
162
|
-
|
168
|
+
_update(riskId.toKey32(), abi.encode(risk), newState);
|
163
169
|
}
|
164
170
|
|
165
171
|
function updateRiskState(RiskId riskId, StateId newState) external restricted() {
|
166
|
-
|
172
|
+
_updateState(riskId.toKey32(), newState);
|
167
173
|
}
|
168
174
|
|
169
175
|
//--- Application (Policy) ----------------------------------------------//
|
170
176
|
function createApplication(NftId applicationNftId, IPolicy.PolicyInfo memory policy) external restricted() {
|
171
|
-
|
177
|
+
_registerBalanceTarget(applicationNftId);
|
178
|
+
_create(_toNftKey32(applicationNftId, POLICY()), abi.encode(policy));
|
172
179
|
}
|
173
180
|
|
174
181
|
function updateApplication(NftId applicationNftId, IPolicy.PolicyInfo memory policy, StateId newState) external restricted() {
|
175
|
-
|
182
|
+
_update(_toNftKey32(applicationNftId, POLICY()), abi.encode(policy), newState);
|
176
183
|
}
|
177
184
|
|
178
185
|
function updateApplicationState(NftId applicationNftId, StateId newState) external restricted() {
|
179
|
-
|
186
|
+
_updateState(_toNftKey32(applicationNftId, POLICY()), newState);
|
180
187
|
}
|
181
188
|
|
182
189
|
//--- Policy ------------------------------------------------------------//
|
183
190
|
function updatePolicy(NftId policyNftId, IPolicy.PolicyInfo memory policy, StateId newState) external restricted() {
|
184
|
-
|
191
|
+
_update(_toNftKey32(policyNftId, POLICY()), abi.encode(policy), newState);
|
185
192
|
}
|
186
193
|
|
187
194
|
function updatePolicyClaims(NftId policyNftId, IPolicy.PolicyInfo memory policy, StateId newState) external restricted() {
|
188
|
-
|
195
|
+
_update(_toNftKey32(policyNftId, POLICY()), abi.encode(policy), newState);
|
189
196
|
}
|
190
197
|
|
191
198
|
function updatePolicyState(NftId policyNftId, StateId newState) external restricted() {
|
192
|
-
|
199
|
+
_updateState(_toNftKey32(policyNftId, POLICY()), newState);
|
193
200
|
}
|
194
201
|
|
195
202
|
//--- Claim -------------------------------------------------------------//
|
196
203
|
function createClaim(NftId policyNftId, ClaimId claimId, IPolicy.ClaimInfo memory claim) external restricted() {
|
197
|
-
|
204
|
+
_create(_toClaimKey32(policyNftId, claimId), abi.encode(claim));
|
198
205
|
}
|
199
206
|
|
200
207
|
function updateClaim(NftId policyNftId, ClaimId claimId, IPolicy.ClaimInfo memory claim, StateId newState) external restricted() {
|
201
|
-
|
208
|
+
_update(_toClaimKey32(policyNftId, claimId), abi.encode(claim), newState);
|
202
209
|
}
|
203
210
|
|
204
211
|
function updateClaimState(NftId policyNftId, ClaimId claimId, StateId newState) external restricted() {
|
205
|
-
|
212
|
+
_updateState(_toClaimKey32(policyNftId, claimId), newState);
|
206
213
|
}
|
207
214
|
|
208
215
|
//--- Payout ------------------------------------------------------------//
|
209
216
|
function createPayout(NftId policyNftId, PayoutId payoutId, IPolicy.PayoutInfo memory payout) external restricted() {
|
210
|
-
|
217
|
+
_create(_toPayoutKey32(policyNftId, payoutId), abi.encode(payout));
|
211
218
|
}
|
212
219
|
|
213
220
|
function updatePayout(NftId policyNftId, PayoutId payoutId, IPolicy.PayoutInfo memory payout, StateId newState) external restricted() {
|
214
|
-
|
221
|
+
_update(_toPayoutKey32(policyNftId, payoutId), abi.encode(payout), newState);
|
215
222
|
}
|
216
223
|
|
217
224
|
function updatePayoutState(NftId policyNftId, PayoutId payoutId, StateId newState) external restricted() {
|
218
|
-
|
225
|
+
_updateState(_toPayoutKey32(policyNftId, payoutId), newState);
|
226
|
+
}
|
227
|
+
|
228
|
+
//--- Request -----------------------------------------------------------//
|
229
|
+
|
230
|
+
function createRequest(IOracle.RequestInfo memory request) external restricted() returns (RequestId requestId) {
|
231
|
+
requestId = _createNextRequestId();
|
232
|
+
_create(requestId.toKey32(), abi.encode(request));
|
233
|
+
}
|
234
|
+
|
235
|
+
function updateRequest(RequestId requestId, IOracle.RequestInfo memory request, StateId newState) external restricted() {
|
236
|
+
_update(requestId.toKey32(), abi.encode(request), newState);
|
237
|
+
}
|
238
|
+
|
239
|
+
function updateRequestState(RequestId requestId, StateId newState) external restricted() {
|
240
|
+
_updateState(requestId.toKey32(), newState);
|
219
241
|
}
|
220
242
|
|
221
243
|
//--- balance and fee management functions ------------------------------//
|
@@ -54,7 +54,7 @@ contract BalanceStore {
|
|
54
54
|
feeAmount = _feeAmount[targetNftId];
|
55
55
|
}
|
56
56
|
|
57
|
-
function
|
57
|
+
function _registerBalanceTarget(NftId targetNftId) internal {
|
58
58
|
if (_isRegistered[targetNftId]) {
|
59
59
|
revert ErrorBalanceStoreTargetAlreadyRegistered(targetNftId);
|
60
60
|
}
|
@@ -0,0 +1,21 @@
|
|
1
|
+
// SPDX-License-Identifier: Apache-2.0
|
2
|
+
pragma solidity ^0.8.20;
|
3
|
+
|
4
|
+
import {Blocknumber, BlocknumberLib} from "../../type/Blocknumber.sol";
|
5
|
+
import {NftId} from "../../type/NftId.sol";
|
6
|
+
import {Amount} from "../../type/Amount.sol";
|
7
|
+
import {RequestId, RequestIdLib} from "../../type/RequestId.sol";
|
8
|
+
|
9
|
+
contract ObjectCounter {
|
10
|
+
|
11
|
+
// TODO refactor risk id
|
12
|
+
// mapping(NftId productNftId => uint64 risks) private _riskCounter;
|
13
|
+
|
14
|
+
uint256 private _requestCounter;
|
15
|
+
|
16
|
+
// TODO introduce RequestId (uint64)
|
17
|
+
function _createNextRequestId() internal returns (RequestId requestId) {
|
18
|
+
_requestCounter++;
|
19
|
+
requestId = RequestIdLib.toRequestId(_requestCounter);
|
20
|
+
}
|
21
|
+
}
|