@etherisc/gif-next 0.0.2-de7c770-422 → 0.0.2-de9ede4-391
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 +28 -7
- package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.dbg.json +4 -0
- package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +1000 -0
- package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +4 -0
- package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +746 -0
- package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.dbg.json +4 -0
- package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.json +767 -0
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +1 -1
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +103 -63
- package/artifacts/contracts/authorization/AccessAdmin.sol/IAccessManagedChecker.dbg.json +4 -0
- package/artifacts/contracts/authorization/AccessAdmin.sol/IAccessManagedChecker.json +24 -0
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +1 -1
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +67 -11
- package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +1 -1
- package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +1 -1
- package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.json +60 -32
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +40 -3
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +19 -0
- package/artifacts/contracts/authorization/ReleaseAccessManager.sol/ReleaseAccessManager.dbg.json +4 -0
- package/artifacts/contracts/authorization/ReleaseAccessManager.sol/ReleaseAccessManager.json +1196 -0
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +68 -5
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +159 -209
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +1 -1
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +82 -22
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +99 -125
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +180 -86
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +139 -64
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +87 -108
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +52 -0
- package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.json +22 -0
- package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.json +1441 -0
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +502 -0
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +1991 -0
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +470 -0
- package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.json +376 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +187 -169
- package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +470 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +131 -157
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +282 -194
- package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +502 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +564 -249
- package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +470 -0
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +1 -1
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +147 -42
- package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstance.sol/IInstance.json +116 -48
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +53 -101
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +149 -60
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +196 -138
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +58 -85
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +687 -84
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +118 -148
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +107 -44
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +475 -116
- package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +4 -0
- package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +810 -0
- 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 +1 -1
- package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +2 -2
- package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +46 -5
- package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +2 -2
- package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +1 -1
- 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 +1 -1
- package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +1 -1
- package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +119 -169
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +1 -1
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +84 -24
- package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +1 -1
- package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +1 -1
- package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +82 -103
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +43 -9
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +95 -121
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +147 -79
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +127 -40
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +115 -141
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +114 -22
- package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleService.sol/BundleService.json +148 -150
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +121 -70
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +48 -33
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +102 -134
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +272 -185
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
- package/artifacts/contracts/pool/Pool.sol/Pool.json +115 -152
- package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolService.sol/PoolService.json +413 -263
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +144 -45
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +119 -45
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +103 -40
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +158 -138
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +82 -22
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +200 -86
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +144 -61
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +63 -7
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +64 -8
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +178 -19
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +80 -51
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +141 -116
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +1 -1
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.json +29 -0
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +328 -119
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +150 -55
- package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
- package/artifacts/contracts/product/PricingService.sol/PricingService.json +170 -107
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +119 -48
- package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
- package/artifacts/contracts/product/Product.sol/Product.json +154 -134
- package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +1 -1
- package/artifacts/contracts/product/RiskService.sol/RiskService.json +81 -26
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +101 -34
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +2 -2
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +91 -15
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +114 -35
- package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
- package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +5 -18
- package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
- package/artifacts/contracts/registry/Registry.sol/Registry.json +135 -51
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +220 -182
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +94 -172
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +99 -32
- package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +1 -1
- package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +47 -6
- package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +123 -225
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +66 -8
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +2 -2
- package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
- package/artifacts/contracts/shared/Component.sol/Component.json +72 -80
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +483 -477
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +141 -76
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +47 -0
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +4 -0
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +488 -0
- package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +4 -0
- package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.json +24 -0
- package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +4 -0
- package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.json +30 -0
- package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponent.sol/IComponent.json +61 -64
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +425 -261
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +82 -103
- package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
- package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.json +36 -0
- package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
- package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.json +36 -0
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +16 -0
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +16 -6
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +29 -0
- 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 +29 -0
- package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +1 -1
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +94 -120
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +42 -1
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +42 -1
- package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +1 -1
- package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +2 -2
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +18 -2
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +18 -8
- package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
- package/artifacts/contracts/shared/Registerable.sol/Registerable.json +66 -8
- 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 +47 -0
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +388 -35
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +4 -0
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +395 -0
- package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +88 -24
- package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
- package/artifacts/contracts/staking/IStaking.sol/IStaking.json +79 -100
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +29 -21
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +1 -1
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +3 -3
- package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
- package/artifacts/contracts/staking/Staking.sol/Staking.json +158 -170
- package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +46 -5
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +120 -54
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +7 -12
- package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingService.sol/StakingService.json +87 -53
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +103 -36
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +145 -104
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +3 -3
- package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
- package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
- package/artifacts/contracts/type/Amount.sol/AmountLib.json +33 -9
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
- package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +28 -4
- 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 +3 -3
- 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/Key32Set.sol/LibKey32Set.dbg.json +4 -0
- package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.json +33 -0
- package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/NftId.sol/NftIdLib.json +23 -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 +2 -2
- package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +19 -19
- 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 +1 -1
- package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +2 -2
- package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +99 -5
- 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/Selector.sol/SelectorLib.dbg.json +1 -1
- package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +1 -1
- package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/StateId.sol/StateIdLib.json +15 -2
- package/artifacts/contracts/type/String.sol/StrLib.dbg.json +1 -1
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +16 -3
- package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
- package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +79 -27
- package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +1 -1
- package/contracts/accounting/AccountingService.sol +263 -0
- package/contracts/accounting/AccountingServiceManager.sol +38 -0
- package/contracts/accounting/IAccountingService.sol +45 -0
- package/contracts/authorization/AccessAdmin.sol +82 -56
- package/contracts/authorization/Authorization.sol +111 -39
- package/contracts/authorization/IAccess.sol +1 -0
- package/contracts/authorization/IAccessAdmin.sol +4 -3
- package/contracts/authorization/IAuthorization.sol +13 -7
- package/contracts/authorization/IServiceAuthorization.sol +3 -1
- package/contracts/authorization/ReleaseAccessManager.sol +38 -0
- package/contracts/authorization/ServiceAuthorization.sol +26 -10
- package/contracts/distribution/BasicDistribution.sol +8 -7
- package/contracts/distribution/BasicDistributionAuthorization.sol +1 -1
- package/contracts/distribution/Distribution.sol +32 -40
- package/contracts/distribution/DistributionService.sol +86 -65
- package/contracts/distribution/DistributionServiceManager.sol +6 -6
- package/contracts/distribution/IDistributionComponent.sol +1 -1
- package/contracts/distribution/IDistributionService.sol +5 -6
- package/contracts/examples/fire/DamageLevel.sol +59 -0
- package/contracts/examples/fire/FirePool.sol +90 -0
- package/contracts/examples/fire/FirePoolAuthorization.sol +35 -0
- package/contracts/examples/fire/FireProduct.sol +436 -0
- package/contracts/examples/fire/FireProductAuthorization.sol +45 -0
- package/contracts/examples/fire/FireUSD.sol +26 -0
- package/contracts/examples/unpermissioned/SimpleDistribution.sol +11 -4
- package/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol +28 -0
- package/contracts/examples/unpermissioned/SimpleOracle.sol +4 -4
- package/contracts/examples/unpermissioned/SimplePool.sol +37 -6
- package/contracts/examples/unpermissioned/SimplePoolAuthorization.sol +28 -0
- package/contracts/examples/unpermissioned/SimpleProduct.sol +24 -23
- package/contracts/examples/unpermissioned/SimpleProductAuthorization.sol +28 -0
- package/contracts/instance/BundleSet.sol +38 -34
- package/contracts/instance/IInstance.sol +11 -3
- package/contracts/instance/IInstanceService.sol +7 -29
- package/contracts/instance/Instance.sol +36 -26
- package/contracts/instance/InstanceAdmin.sol +57 -54
- package/contracts/instance/InstanceAuthorizationV3.sol +50 -32
- package/contracts/instance/InstanceReader.sol +187 -21
- package/contracts/instance/InstanceService.sol +54 -129
- package/contracts/instance/InstanceServiceManager.sol +6 -7
- package/contracts/instance/InstanceStore.sol +12 -2
- package/contracts/instance/RiskSet.sol +119 -0
- package/contracts/instance/base/ObjectCounter.sol +1 -2
- package/contracts/instance/base/ObjectLifecycle.sol +2 -1
- package/contracts/instance/base/ObjectSet.sol +24 -25
- package/contracts/instance/module/IComponents.sol +20 -7
- package/contracts/instance/module/IPolicy.sol +4 -3
- package/contracts/instance/module/IRisk.sol +1 -0
- package/contracts/oracle/BasicOracle.sol +0 -1
- package/contracts/oracle/IOracleService.sol +2 -1
- package/contracts/oracle/Oracle.sol +4 -15
- package/contracts/oracle/OracleService.sol +110 -80
- package/contracts/oracle/OracleServiceManager.sol +6 -6
- package/contracts/pool/BasicPool.sol +33 -24
- package/contracts/pool/BasicPoolAuthorization.sol +12 -2
- package/contracts/pool/BundleService.sol +74 -87
- package/contracts/pool/BundleServiceManager.sol +6 -6
- package/contracts/pool/IBundleService.sol +2 -15
- package/contracts/pool/IPoolComponent.sol +19 -15
- package/contracts/pool/IPoolService.sol +30 -37
- package/contracts/pool/Pool.sol +141 -122
- package/contracts/pool/PoolService.sol +263 -157
- package/contracts/pool/PoolServiceManager.sol +4 -4
- package/contracts/product/ApplicationService.sol +31 -20
- package/contracts/product/ApplicationServiceManager.sol +4 -4
- package/contracts/product/BasicProduct.sol +8 -12
- package/contracts/product/BasicProductAuthorization.sol +1 -3
- package/contracts/product/ClaimService.sol +233 -106
- package/contracts/product/ClaimServiceManager.sol +4 -4
- package/contracts/product/IApplicationService.sol +5 -2
- package/contracts/product/IClaimService.sol +3 -2
- package/contracts/product/IPolicyService.sol +25 -8
- package/contracts/product/IPricingService.sol +9 -9
- package/contracts/product/IProductComponent.sol +23 -3
- package/contracts/product/PolicyService.sol +361 -198
- package/contracts/product/PolicyServiceManager.sol +4 -4
- package/contracts/product/PricingService.sol +10 -11
- package/contracts/product/PricingServiceManager.sol +3 -3
- package/contracts/product/Product.sol +76 -74
- package/contracts/product/RiskService.sol +16 -6
- package/contracts/product/RiskServiceManager.sol +4 -4
- package/contracts/registry/ChainNft.sol +10 -11
- package/contracts/registry/IRegistry.sol +8 -3
- package/contracts/registry/IRegistryService.sol +5 -12
- package/contracts/registry/ITransferInterceptor.sol +1 -2
- package/contracts/registry/Registry.sol +29 -6
- package/contracts/registry/RegistryAdmin.sol +29 -36
- package/contracts/registry/RegistryService.sol +33 -44
- package/contracts/registry/RegistryServiceManager.sol +2 -2
- package/contracts/registry/ReleaseLifecycle.sol +6 -3
- package/contracts/registry/ReleaseRegistry.sol +205 -210
- package/contracts/registry/ServiceAuthorizationV3.sol +58 -50
- package/contracts/shared/Component.sol +56 -105
- package/contracts/shared/ComponentService.sol +384 -329
- package/contracts/shared/ComponentServiceManager.sol +8 -5
- package/contracts/shared/ComponentVerifyingService.sol +27 -16
- package/contracts/shared/ContractLib.sol +224 -0
- package/contracts/shared/IComponent.sol +6 -14
- package/contracts/shared/IComponentService.sol +45 -37
- package/contracts/shared/IInstanceLinkedComponent.sol +3 -22
- package/contracts/shared/ILifecycle.sol +3 -1
- package/contracts/shared/INftOwnable.sol +2 -0
- package/contracts/shared/IPolicyHolder.sol +12 -13
- package/contracts/shared/IRegisterable.sol +11 -0
- package/contracts/shared/InstanceLinkedComponent.sol +68 -43
- package/contracts/shared/KeyValueStore.sol +1 -1
- package/contracts/shared/Lifecycle.sol +15 -4
- package/contracts/shared/NftOwnable.sol +23 -3
- package/contracts/shared/PolicyHolder.sol +11 -5
- package/contracts/shared/Registerable.sol +15 -7
- package/contracts/shared/RegistryLinked.sol +6 -12
- package/contracts/shared/Service.sol +16 -14
- package/contracts/shared/TokenHandler.sol +316 -66
- package/contracts/shared/TokenHandlerDeployerLib.sol +10 -2
- package/contracts/staking/IStaking.sol +9 -4
- package/contracts/staking/IStakingService.sol +0 -3
- package/contracts/staking/Staking.sol +42 -25
- package/contracts/staking/StakingManager.sol +8 -6
- package/contracts/staking/StakingReader.sol +12 -5
- package/contracts/staking/StakingService.sol +56 -23
- package/contracts/staking/StakingServiceManager.sol +2 -2
- package/contracts/type/Amount.sol +15 -0
- package/contracts/type/ClaimId.sol +6 -1
- package/contracts/type/Key32.sol +2 -2
- package/contracts/type/Key32Set.sol +62 -0
- package/contracts/type/NftId.sol +7 -0
- package/contracts/type/ObjectType.sol +14 -0
- package/contracts/type/PayoutId.sol +10 -10
- package/contracts/type/RiskId.sol +30 -4
- package/contracts/type/RoleId.sol +0 -12
- package/contracts/type/StateId.sol +14 -1
- package/contracts/type/UFixed.sol +13 -119
- package/contracts/upgradeability/ProxyManager.sol +68 -34
- package/contracts/upgradeability/Versionable.sol +2 -2
- package/package.json +4 -3
- package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.dbg.json +0 -4
- package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.json +0 -290
- package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.dbg.json +0 -4
- package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.json +0 -390
- package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.dbg.json +0 -4
- package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.json +0 -39
- package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +0 -4
- package/artifacts/contracts/type/UFixed.sol/MathLib.json +0 -16
- package/contracts/authorization/IModuleAuthorization.sol +0 -21
- package/contracts/authorization/ModuleAuthorization.sol +0 -78
- package/contracts/shared/InitializableCustom.sol +0 -177
@@ -17,7 +17,7 @@ import {IInstance} from "../instance/IInstance.sol";
|
|
17
17
|
import {InstanceReader} from "../instance/InstanceReader.sol";
|
18
18
|
import {IRegistry} from "../registry/IRegistry.sol";
|
19
19
|
import {NftId} from "../type/NftId.sol";
|
20
|
-
import {ObjectType, COMPONENT, INSTANCE} from "../type/ObjectType.sol";
|
20
|
+
import {ObjectType, COMPONENT, INSTANCE, PRODUCT} from "../type/ObjectType.sol";
|
21
21
|
import {VersionPart} from "../type/Version.sol";
|
22
22
|
import {RoleId, RoleIdLib} from "../type/RoleId.sol";
|
23
23
|
import {IAccess} from "../instance/module/IAccess.sol";
|
@@ -40,37 +40,27 @@ abstract contract InstanceLinkedComponent is
|
|
40
40
|
IComponentService _componentService;
|
41
41
|
}
|
42
42
|
|
43
|
-
function lock() external onlyOwner {
|
44
|
-
IInstanceService(_getServiceAddress(INSTANCE())).setComponentLocked(true);
|
45
|
-
}
|
46
|
-
|
47
|
-
function unlock() external onlyOwner {
|
48
|
-
IInstanceService(_getServiceAddress(INSTANCE())).setComponentLocked(false);
|
49
|
-
}
|
50
|
-
|
51
|
-
function getInstance() public view override returns (IInstance instance) {
|
52
|
-
return _getInstanceLinkedComponentStorage()._instance;
|
53
|
-
}
|
54
|
-
|
55
|
-
function getProductNftId() public view override returns (NftId productNftId) {
|
56
|
-
return getComponentInfo().productNftId;
|
57
|
-
}
|
58
|
-
|
59
|
-
function getAuthorization() external view returns (IAuthorization authorization) {
|
60
|
-
return _getInstanceLinkedComponentStorage()._initialAuthorization;
|
61
|
-
}
|
62
|
-
|
63
43
|
/// @inheritdoc IInstanceLinkedComponent
|
64
44
|
function withdrawFees(Amount amount)
|
65
45
|
external
|
66
46
|
virtual
|
67
|
-
onlyOwner()
|
68
47
|
restricted()
|
48
|
+
onlyOwner()
|
69
49
|
returns (Amount withdrawnAmount)
|
70
50
|
{
|
71
51
|
return _withdrawFees(amount);
|
72
52
|
}
|
73
53
|
|
54
|
+
/// @inheritdoc IInstanceLinkedComponent
|
55
|
+
function getInstance() public view override returns (IInstance instance) {
|
56
|
+
return _getInstanceLinkedComponentStorage()._instance;
|
57
|
+
}
|
58
|
+
|
59
|
+
/// @inheritdoc IInstanceLinkedComponent
|
60
|
+
function getAuthorization() external view returns (IAuthorization authorization) {
|
61
|
+
return _getInstanceLinkedComponentStorage()._initialAuthorization;
|
62
|
+
}
|
63
|
+
|
74
64
|
function _getInstanceLinkedComponentStorage() private pure returns (InstanceLinkedComponentStorage storage $) {
|
75
65
|
assembly {
|
76
66
|
$.slot := INSTANCE_LINKED_COMPONENT_LOCATION_V1
|
@@ -79,51 +69,94 @@ abstract contract InstanceLinkedComponent is
|
|
79
69
|
|
80
70
|
function _initializeInstanceLinkedComponent(
|
81
71
|
address registry,
|
82
|
-
NftId
|
72
|
+
NftId parentNftId,
|
83
73
|
string memory name,
|
84
74
|
address token,
|
85
75
|
ObjectType componentType,
|
86
76
|
IAuthorization authorization,
|
87
77
|
bool isInterceptor,
|
88
78
|
address initialOwner,
|
89
|
-
bytes memory registryData, // writeonly data that will saved in the object info record of the registry
|
90
79
|
bytes memory componentData // data that will saved with the component info in the instance store
|
91
80
|
)
|
92
81
|
internal
|
93
82
|
virtual
|
94
83
|
onlyInitializing()
|
95
84
|
{
|
85
|
+
// validate registry, nft ids and get parent nft id
|
86
|
+
NftId instanceNftId = _checkAndGetInstanceNftId(
|
87
|
+
registry,
|
88
|
+
parentNftId,
|
89
|
+
componentType);
|
90
|
+
|
96
91
|
// set and check linked instance
|
97
92
|
InstanceLinkedComponentStorage storage $ = _getInstanceLinkedComponentStorage();
|
98
93
|
$._instance = IInstance(
|
99
|
-
IRegistry(registry).
|
100
|
-
instanceNftId).objectAddress);
|
101
|
-
|
102
|
-
if(!$._instance.supportsInterface(type(IInstance).interfaceId)) {
|
103
|
-
revert ErrorComponentNotInstance(instanceNftId);
|
104
|
-
}
|
94
|
+
IRegistry(registry).getObjectAddress(instanceNftId));
|
105
95
|
|
96
|
+
// set component specific parameters
|
106
97
|
_initializeComponent(
|
107
|
-
$._instance.authority(),
|
98
|
+
$._instance.authority(), // instance linked components need to point to instance admin
|
108
99
|
registry,
|
109
|
-
|
100
|
+
parentNftId,
|
110
101
|
name,
|
111
102
|
token,
|
112
103
|
componentType,
|
113
104
|
isInterceptor,
|
114
105
|
initialOwner,
|
115
|
-
|
106
|
+
"", // registry data
|
116
107
|
componentData);
|
117
108
|
|
118
|
-
// set
|
109
|
+
// set instance linked specific parameters
|
119
110
|
$._instanceReader = $._instance.getInstanceReader();
|
120
111
|
$._initialAuthorization = authorization;
|
121
112
|
$._componentService = IComponentService(_getServiceAddress(COMPONENT()));
|
122
113
|
|
114
|
+
// register interfaces
|
123
115
|
_registerInterface(type(IAccessManaged).interfaceId);
|
124
116
|
_registerInterface(type(IInstanceLinkedComponent).interfaceId);
|
125
117
|
}
|
126
118
|
|
119
|
+
|
120
|
+
function _checkAndGetInstanceNftId(
|
121
|
+
address registryAddress,
|
122
|
+
NftId parentNftId,
|
123
|
+
ObjectType componentType
|
124
|
+
)
|
125
|
+
internal
|
126
|
+
view
|
127
|
+
returns (NftId instanceNftId)
|
128
|
+
{
|
129
|
+
// if product, then parent is already instance
|
130
|
+
if (componentType == PRODUCT()) {
|
131
|
+
_checkAndGetRegistry(registryAddress, parentNftId, INSTANCE());
|
132
|
+
return parentNftId;
|
133
|
+
}
|
134
|
+
|
135
|
+
// if not product parent is product, and parent of product is instance
|
136
|
+
IRegistry registry = _checkAndGetRegistry(registryAddress, parentNftId, PRODUCT());
|
137
|
+
return registry.getObjectInfo(parentNftId).parentNftId;
|
138
|
+
}
|
139
|
+
|
140
|
+
/// @dev checks the and gets registry.
|
141
|
+
/// validates registry using a provided nft id and expected object type.
|
142
|
+
function _checkAndGetRegistry(
|
143
|
+
address registryAddress,
|
144
|
+
NftId objectNftId,
|
145
|
+
ObjectType requiredType
|
146
|
+
)
|
147
|
+
internal
|
148
|
+
view
|
149
|
+
returns (IRegistry registry)
|
150
|
+
{
|
151
|
+
registry = IRegistry(registryAddress);
|
152
|
+
IRegistry.ObjectInfo memory info = registry.getObjectInfo(objectNftId);
|
153
|
+
|
154
|
+
if (info.objectType != requiredType) {
|
155
|
+
revert ErrorInstanceLinkedComponentTypeMismatch(requiredType, info.objectType);
|
156
|
+
}
|
157
|
+
}
|
158
|
+
|
159
|
+
|
127
160
|
/// @dev for instance linked components the wallet address stored in the instance store.
|
128
161
|
/// updating needs to go throug component service
|
129
162
|
function _setWallet(address newWallet) internal virtual override onlyOwner {
|
@@ -140,7 +173,7 @@ abstract contract InstanceLinkedComponent is
|
|
140
173
|
info = _getInstanceReader().getComponentInfo(getNftId());
|
141
174
|
|
142
175
|
// check if also registered with instance
|
143
|
-
if (info.
|
176
|
+
if (address(info.tokenHandler) != address(0)) {
|
144
177
|
return info;
|
145
178
|
}
|
146
179
|
}
|
@@ -161,12 +194,4 @@ abstract contract InstanceLinkedComponent is
|
|
161
194
|
{
|
162
195
|
return _getInstanceLinkedComponentStorage()._componentService.withdrawFees(amount);
|
163
196
|
}
|
164
|
-
|
165
|
-
|
166
|
-
/// @dev returns the service address for the specified domain
|
167
|
-
/// gets address via lookup from registry using the major version form the linked instance
|
168
|
-
function _getServiceAddress(ObjectType domain) internal view returns (address service) {
|
169
|
-
VersionPart majorVersion = _getInstanceLinkedComponentStorage()._instance.getMajorVersion();
|
170
|
-
return getRegistry().getServiceAddress(domain, majorVersion);
|
171
|
-
}
|
172
197
|
}
|
@@ -94,7 +94,7 @@ abstract contract KeyValueStore is
|
|
94
94
|
|
95
95
|
// update state
|
96
96
|
if(state != KEEP_STATE()) {
|
97
|
-
checkTransition(metadata.objectType, stateOld, state);
|
97
|
+
checkTransition(stateOld, metadata.objectType, stateOld, state);
|
98
98
|
metadata.state = state;
|
99
99
|
|
100
100
|
// solhint-disable-next-line avoid-tx-origin
|
@@ -49,8 +49,9 @@ abstract contract Lifecycle is
|
|
49
49
|
}
|
50
50
|
|
51
51
|
function checkTransition(
|
52
|
+
StateId stateId,
|
52
53
|
ObjectType objectType,
|
53
|
-
StateId
|
54
|
+
StateId expectedFromId,
|
54
55
|
StateId toId
|
55
56
|
)
|
56
57
|
public
|
@@ -58,12 +59,22 @@ abstract contract Lifecycle is
|
|
58
59
|
{
|
59
60
|
// revert if no life cycle support
|
60
61
|
if (_initialState[objectType].eqz()) {
|
61
|
-
revert ErrorNoLifecycle(objectType);
|
62
|
+
revert ErrorNoLifecycle(address(this), objectType);
|
63
|
+
}
|
64
|
+
|
65
|
+
// revert if current state is not expected `from` state
|
66
|
+
if(stateId != expectedFromId) {
|
67
|
+
revert ErrorFromStateMissmatch(address(this), objectType, stateId, expectedFromId);
|
62
68
|
}
|
63
69
|
|
64
70
|
// enforce valid state transition
|
65
|
-
if (!_isValidTransition[objectType][
|
66
|
-
revert ErrorInvalidStateTransition(
|
71
|
+
if (!_isValidTransition[objectType][stateId][toId]) {
|
72
|
+
revert ErrorInvalidStateTransition(
|
73
|
+
address(this),
|
74
|
+
objectType,
|
75
|
+
stateId,
|
76
|
+
toId
|
77
|
+
);
|
67
78
|
}
|
68
79
|
}
|
69
80
|
|
@@ -4,6 +4,7 @@ pragma solidity ^0.8.20;
|
|
4
4
|
import {InitializableERC165} from "./InitializableERC165.sol";
|
5
5
|
import {INftOwnable} from "./INftOwnable.sol";
|
6
6
|
import {NftId} from "../type/NftId.sol";
|
7
|
+
import {ObjectType} from "../type/ObjectType.sol";
|
7
8
|
import {RegistryLinked} from "./RegistryLinked.sol";
|
8
9
|
|
9
10
|
contract NftOwnable is
|
@@ -27,18 +28,36 @@ contract NftOwnable is
|
|
27
28
|
_;
|
28
29
|
}
|
29
30
|
|
31
|
+
modifier onlyNftOwner(NftId nftId) {
|
32
|
+
if(!getRegistry().isOwnerOf(nftId, msg.sender)) {
|
33
|
+
revert ErrorNftOwnableNotOwner(msg.sender);
|
34
|
+
}
|
35
|
+
_;
|
36
|
+
}
|
37
|
+
|
38
|
+
modifier onlyNftOfType(NftId nftId, ObjectType expectedObjectType) {
|
39
|
+
_checkNftType(nftId, expectedObjectType);
|
40
|
+
_;
|
41
|
+
}
|
42
|
+
|
43
|
+
function _checkNftType(NftId nftId, ObjectType expectedObjectType) internal view {
|
44
|
+
if(!getRegistry().isObjectType(nftId, expectedObjectType)) {
|
45
|
+
revert ErrorNftOwnableInvalidType(nftId, expectedObjectType);
|
46
|
+
}
|
47
|
+
}
|
48
|
+
|
30
49
|
|
31
50
|
/// @dev initialization for upgradable contracts
|
32
51
|
// used in _initializeRegisterable
|
33
52
|
function _initializeNftOwnable(
|
34
|
-
address
|
35
|
-
address
|
53
|
+
address registry,
|
54
|
+
address initialOwner
|
36
55
|
)
|
37
56
|
internal
|
38
57
|
virtual
|
39
58
|
onlyInitializing()
|
40
59
|
{
|
41
|
-
_initializeRegistryLinked(
|
60
|
+
_initializeRegistryLinked(registry);
|
42
61
|
_initializeERC165();
|
43
62
|
|
44
63
|
if(initialOwner == address(0)) {
|
@@ -100,6 +119,7 @@ contract NftOwnable is
|
|
100
119
|
|
101
120
|
|
102
121
|
function _getNftOwnableStorage() private pure returns (NftOwnableStorage storage $) {
|
122
|
+
// solhint-disable-next-line no-inline-assembly
|
103
123
|
assembly {
|
104
124
|
$.slot := NFT_OWNABLE_STORAGE_LOCATION_V1
|
105
125
|
}
|
@@ -10,13 +10,18 @@ import {IPolicyHolder} from "./IPolicyHolder.sol";
|
|
10
10
|
import {NftId} from "../type/NftId.sol";
|
11
11
|
import {PayoutId, PayoutIdLib} from "../type/PayoutId.sol";
|
12
12
|
import {RegistryLinked} from "./RegistryLinked.sol";
|
13
|
+
import {Timestamp} from "../type/Timestamp.sol";
|
13
14
|
|
14
15
|
/// @dev template implementation for IPolicyHolder
|
15
16
|
contract PolicyHolder is
|
16
17
|
InitializableERC165,
|
17
|
-
RegistryLinked,
|
18
|
+
RegistryLinked,
|
18
19
|
IPolicyHolder
|
19
20
|
{
|
21
|
+
// TODO add modifier to protect callback functions from unauthorized access
|
22
|
+
// callbacks must only be allowed from the policy and claim services
|
23
|
+
// will need a release parameter to fetch the right service addresses for the modifiers
|
24
|
+
|
20
25
|
function _initializePolicyHolder(
|
21
26
|
address registryAddress
|
22
27
|
)
|
@@ -25,20 +30,21 @@ contract PolicyHolder is
|
|
25
30
|
onlyInitializing()
|
26
31
|
{
|
27
32
|
_initializeRegistryLinked(registryAddress);
|
33
|
+
_initializeERC165();
|
28
34
|
_registerInterface(type(IPolicyHolder).interfaceId);
|
29
35
|
}
|
30
36
|
|
31
37
|
/// @dev empty default implementation
|
32
|
-
function policyActivated(NftId policyNftId) external {}
|
38
|
+
function policyActivated(NftId policyNftId, Timestamp activatedAt) external virtual {}
|
33
39
|
|
34
40
|
/// @dev empty default implementation
|
35
|
-
function policyExpired(NftId policyNftId) external {}
|
41
|
+
function policyExpired(NftId policyNftId, Timestamp expiredAt) external virtual {}
|
36
42
|
|
37
43
|
/// @dev empty default implementation
|
38
|
-
function claimConfirmed(NftId policyNftId, ClaimId claimId, Amount amount) external {}
|
44
|
+
function claimConfirmed(NftId policyNftId, ClaimId claimId, Amount amount) external virtual {}
|
39
45
|
|
40
46
|
/// @dev empty default implementation
|
41
|
-
function payoutExecuted(NftId policyNftId, PayoutId payoutId,
|
47
|
+
function payoutExecuted(NftId policyNftId, PayoutId payoutId, Amount amount, address beneficiary) external virtual {}
|
42
48
|
|
43
49
|
//--- IERC165 functions ---------------//
|
44
50
|
function onERC721Received(
|
@@ -1,11 +1,10 @@
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
2
2
|
pragma solidity ^0.8.20;
|
3
3
|
|
4
|
-
import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";
|
5
|
-
|
6
4
|
import {NftId, NftIdLib} from "../type/NftId.sol";
|
7
5
|
import {NftOwnable} from "../shared/NftOwnable.sol";
|
8
6
|
import {ObjectType} from "../type/ObjectType.sol";
|
7
|
+
import {VersionPart, VersionPartLib} from "../type/Version.sol";
|
9
8
|
|
10
9
|
import {IRegistry} from "../registry/IRegistry.sol";
|
11
10
|
import {IRegisterable} from "./IRegisterable.sol";
|
@@ -14,6 +13,8 @@ contract Registerable is
|
|
14
13
|
NftOwnable,
|
15
14
|
IRegisterable
|
16
15
|
{
|
16
|
+
uint256 public constant GIF_RELEASE = 3;
|
17
|
+
|
17
18
|
// keccak256(abi.encode(uint256(keccak256("gif-next.contracts.shared.Registerable.sol")) - 1)) & ~bytes32(uint256(0xff));
|
18
19
|
bytes32 public constant REGISTERABLE_LOCATION_V1 = 0x6548007c3f4340f82f348c576c0ff69f4f529cadd5ad41f96aae61abceeaa300;
|
19
20
|
|
@@ -25,20 +26,20 @@ contract Registerable is
|
|
25
26
|
}
|
26
27
|
|
27
28
|
function _initializeRegisterable(
|
28
|
-
address
|
29
|
+
address registry,
|
29
30
|
NftId parentNftId,
|
30
31
|
ObjectType objectType,
|
31
32
|
bool isInterceptor,
|
32
33
|
address initialOwner,
|
33
|
-
bytes memory
|
34
|
+
bytes memory data // writeonly data that will saved in the object info record of the registry
|
34
35
|
)
|
35
36
|
internal
|
36
37
|
virtual
|
37
38
|
onlyInitializing()
|
38
39
|
{
|
39
40
|
_initializeNftOwnable(
|
40
|
-
|
41
|
-
|
41
|
+
registry,
|
42
|
+
initialOwner);
|
42
43
|
|
43
44
|
RegisterableStorage storage $;
|
44
45
|
assembly {
|
@@ -48,10 +49,17 @@ contract Registerable is
|
|
48
49
|
$._parentNftId = parentNftId;
|
49
50
|
$._objectType = objectType;
|
50
51
|
$._isInterceptor = isInterceptor;
|
51
|
-
$._data =
|
52
|
+
$._data = data;
|
53
|
+
}
|
54
|
+
|
55
|
+
|
56
|
+
/// @inheritdoc IRegisterable
|
57
|
+
function getRelease() public virtual pure returns (VersionPart release) {
|
58
|
+
return VersionPartLib.toVersionPart(GIF_RELEASE);
|
52
59
|
}
|
53
60
|
|
54
61
|
|
62
|
+
/// @inheritdoc IRegisterable
|
55
63
|
function getInitialInfo()
|
56
64
|
public
|
57
65
|
view
|
@@ -2,6 +2,8 @@
|
|
2
2
|
pragma solidity ^0.8.20;
|
3
3
|
|
4
4
|
import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";
|
5
|
+
|
6
|
+
import {ContractLib} from "../shared/ContractLib.sol";
|
5
7
|
import {IRegistry} from "../registry/IRegistry.sol";
|
6
8
|
import {IRegistryLinked} from "./IRegistryLinked.sol";
|
7
9
|
|
@@ -16,25 +18,17 @@ contract RegistryLinked is
|
|
16
18
|
/// @dev initialization for upgradable contracts
|
17
19
|
// used in _initializeRegisterable
|
18
20
|
function _initializeRegistryLinked(
|
19
|
-
address
|
21
|
+
address registry
|
20
22
|
)
|
21
23
|
internal
|
22
24
|
virtual
|
23
25
|
onlyInitializing()
|
24
26
|
{
|
25
|
-
if (
|
26
|
-
revert ErrorNotRegistry(
|
27
|
+
if (!ContractLib.isRegistry(registry)) {
|
28
|
+
revert ErrorNotRegistry(registry);
|
27
29
|
}
|
28
30
|
|
29
|
-
_registry = IRegistry(
|
30
|
-
|
31
|
-
try _registry.supportsInterface(type(IRegistry).interfaceId) returns (bool isRegistry) {
|
32
|
-
if (!isRegistry) {
|
33
|
-
revert ErrorNotRegistry(registryAddress);
|
34
|
-
}
|
35
|
-
} catch {
|
36
|
-
revert ErrorNotRegistry(registryAddress);
|
37
|
-
}
|
31
|
+
_registry = IRegistry(registry);
|
38
32
|
}
|
39
33
|
|
40
34
|
|
@@ -3,6 +3,7 @@ pragma solidity ^0.8.20;
|
|
3
3
|
|
4
4
|
import {AccessManagedUpgradeable} from "@openzeppelin/contracts-upgradeable/access/manager/AccessManagedUpgradeable.sol";
|
5
5
|
import {IAccessManaged} from "@openzeppelin/contracts/access/manager/IAccessManaged.sol";
|
6
|
+
import {ReentrancyGuardUpgradeable} from "@openzeppelin/contracts-upgradeable/utils/ReentrancyGuardUpgradeable.sol";
|
6
7
|
|
7
8
|
import {IRegistry} from "../registry/IRegistry.sol";
|
8
9
|
import {IService} from "./IService.sol";
|
@@ -19,12 +20,10 @@ abstract contract Service is
|
|
19
20
|
Registerable,
|
20
21
|
Versionable,
|
21
22
|
AccessManagedUpgradeable,
|
23
|
+
ReentrancyGuardUpgradeable,
|
22
24
|
IService
|
23
25
|
{
|
24
26
|
|
25
|
-
uint8 private constant GIF_MAJOR_VERSION = 3;
|
26
|
-
|
27
|
-
|
28
27
|
function _initializeService(
|
29
28
|
address registry,
|
30
29
|
address authority, // real authority for registry service adress(0) for other services
|
@@ -34,13 +33,7 @@ abstract contract Service is
|
|
34
33
|
virtual
|
35
34
|
onlyInitializing()
|
36
35
|
{
|
37
|
-
|
38
|
-
registry,
|
39
|
-
IRegistry(registry).getNftId(),
|
40
|
-
SERVICE(),
|
41
|
-
false, // is interceptor
|
42
|
-
initialOwner,
|
43
|
-
""); // data
|
36
|
+
__ReentrancyGuard_init();
|
44
37
|
|
45
38
|
// externally provided authority
|
46
39
|
if(authority != address(0)) {
|
@@ -52,6 +45,15 @@ abstract contract Service is
|
|
52
45
|
__AccessManaged_init(IAccessManaged(registryServiceAddress).authority());
|
53
46
|
}
|
54
47
|
|
48
|
+
_initializeRegisterable(
|
49
|
+
registry,
|
50
|
+
IRegistry(registry).getNftId(),
|
51
|
+
SERVICE(),
|
52
|
+
false, // is interceptor
|
53
|
+
initialOwner,
|
54
|
+
""); // data
|
55
|
+
|
56
|
+
|
55
57
|
_registerInterface(type(IAccessManaged).interfaceId);
|
56
58
|
_registerInterface(type(IService).interfaceId);
|
57
59
|
}
|
@@ -61,22 +63,22 @@ abstract contract Service is
|
|
61
63
|
}
|
62
64
|
|
63
65
|
function getRoleId() external virtual pure returns(RoleId serviceRoleId) {
|
64
|
-
return RoleIdLib.roleForTypeAndVersion(_getDomain(),
|
66
|
+
return RoleIdLib.roleForTypeAndVersion(_getDomain(), getRelease());
|
65
67
|
}
|
66
68
|
|
67
|
-
|
69
|
+
/// @inheritdoc IVersionable
|
68
70
|
function getVersion()
|
69
71
|
public
|
70
72
|
pure
|
71
73
|
virtual override (IVersionable, Versionable)
|
72
74
|
returns(Version)
|
73
75
|
{
|
74
|
-
return VersionLib.toVersion(
|
76
|
+
return VersionLib.toVersion(GIF_RELEASE,0,0);
|
75
77
|
}
|
76
78
|
|
77
79
|
function _getDomain() internal virtual pure returns (ObjectType);
|
78
80
|
|
79
81
|
function _getServiceAddress(ObjectType domain) internal view returns (address) {
|
80
|
-
return getRegistry().getServiceAddress(domain,
|
82
|
+
return getRegistry().getServiceAddress(domain, getRelease());
|
81
83
|
}
|
82
84
|
}
|