@etherisc/gif-next 0.0.2-bb3faee-097 → 0.0.2-bb9ecaf-723
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 +15 -320
- package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.dbg.json +1 -1
- package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +2 -2
- package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +49 -29
- package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.dbg.json +1 -1
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +1 -1
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +201 -130
- package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.dbg.json +1 -1
- package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.json +845 -126
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +1 -1
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +2 -2
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +73 -46
- 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 +105 -77
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +12 -2
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +12 -2
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +38 -32
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +8 -18
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +1 -1
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +93 -54
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +0 -10
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +2 -2
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +79 -59
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +0 -10
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.json +20 -30
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +93 -54
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +64 -74
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +93 -54
- package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +21 -31
- package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +93 -54
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +16 -26
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +24 -34
- package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +93 -54
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +25 -35
- package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +93 -54
- package/artifacts/contracts/instance/BaseStore.sol/BaseStore.dbg.json +4 -0
- package/artifacts/contracts/{shared/IKeyValueStore.sol/IKeyValueStore.json → instance/BaseStore.sol/BaseStore.json} +50 -228
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +1 -1
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +2 -2
- package/artifacts/contracts/instance/IBaseStore.sol/IBaseStore.dbg.json +4 -0
- package/artifacts/contracts/instance/IBaseStore.sol/IBaseStore.json +304 -0
- package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstance.sol/IInstance.json +23 -0
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +20 -0
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +70 -35
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +335 -284
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +82 -112
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +55 -175
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +40 -20
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +45 -25
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +1362 -2115
- package/artifacts/contracts/instance/ProductStore.sol/ProductStore.dbg.json +4 -0
- package/artifacts/contracts/instance/ProductStore.sol/ProductStore.json +3427 -0
- package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +1 -1
- package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +2 -2
- 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/ObjectSet.sol/ObjectSet.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +2 -2
- package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.json +2 -2
- 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 +6 -16
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +1 -1
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +87 -48
- 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 +0 -10
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +0 -10
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +2 -2
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +54 -34
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +0 -10
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +93 -54
- package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleService.sol/BundleService.json +2 -2
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +66 -46
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +0 -10
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
- package/artifacts/contracts/pool/Pool.sol/Pool.json +0 -10
- package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolLib.sol/PoolLib.json +2 -2
- package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolService.sol/PoolService.json +2 -2
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +67 -47
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +2 -2
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +48 -28
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +0 -10
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +93 -54
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +74 -74
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +71 -51
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +0 -10
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +2 -2
- package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.json +2 -2
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +64 -44
- package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
- package/artifacts/contracts/product/PricingService.sol/PricingService.json +2 -2
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +55 -35
- package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
- package/artifacts/contracts/product/Product.sol/Product.json +0 -10
- package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +1 -1
- package/artifacts/contracts/product/RiskService.sol/RiskService.json +2 -2
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +46 -26
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/IRelease.sol/IRelease.dbg.json +1 -1
- 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 +2 -2
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +312 -217
- package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.json +126 -63
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +18 -18
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +41 -21
- package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +1 -1
- package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +330 -211
- package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +1 -1
- package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +98 -86
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +62 -40
- 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 +0 -10
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +28 -28
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +65 -45
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +1 -1
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +2 -2
- package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +1 -1
- package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +1 -1
- package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponent.sol/IComponent.json +0 -10
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.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/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -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/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 +0 -10
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
- package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +1 -1
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +2 -2
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +2 -2
- package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
- 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/TokenHandler.sol/TokenHandler.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +2 -2
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +2 -2
- package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +2 -2
- package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
- package/artifacts/contracts/staking/IStaking.sol/IStaking.json +0 -10
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/ITargetLimitHandler.sol/ITargetLimitHandler.dbg.json +1 -1
- package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
- package/artifacts/contracts/staking/Staking.sol/Staking.json +22 -48
- package/artifacts/contracts/staking/StakingLib.sol/StakingLib.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingLib.sol/StakingLib.json +2 -2
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +50 -38
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +2 -2
- package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingService.sol/StakingService.json +2 -2
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +44 -24
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +198 -166
- package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.dbg.json +1 -1
- package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.json +2 -2
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +2 -2
- 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/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +21 -2
- package/artifacts/contracts/type/ChainId.sol/ChainIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
- package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
- package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +1 -1
- package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.dbg.json +1 -1
- package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
- package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
- package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
- package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
- 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/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/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 +22 -6
- package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +1 -1
- package/contracts/authorization/AccessAdmin.sol +220 -321
- package/contracts/authorization/AccessAdminLib.sol +309 -27
- package/contracts/authorization/AccessManagerCloneable.sol +0 -18
- package/contracts/authorization/Authorization.sol +30 -9
- package/contracts/authorization/IAccess.sol +13 -14
- package/contracts/authorization/IAccessAdmin.sol +9 -11
- package/contracts/authorization/ServiceAuthorization.sol +10 -30
- package/contracts/distribution/BasicDistribution.sol +1 -2
- package/contracts/distribution/BasicDistributionAuthorization.sol +1 -1
- package/contracts/distribution/Distribution.sol +2 -4
- package/contracts/instance/BaseStore.sol +93 -0
- package/contracts/instance/IBaseStore.sol +37 -0
- package/contracts/instance/IInstance.sol +11 -0
- package/contracts/instance/IInstanceService.sol +2 -0
- package/contracts/instance/Instance.sol +18 -14
- package/contracts/instance/InstanceAdmin.sol +43 -119
- package/contracts/instance/InstanceAuthorizationV3.sol +49 -40
- package/contracts/instance/InstanceReader.sol +33 -59
- package/contracts/instance/InstanceService.sol +57 -43
- package/contracts/instance/InstanceStore.sol +153 -128
- package/contracts/instance/ProductStore.sol +290 -0
- package/contracts/instance/TargetNames.sol +10 -0
- package/contracts/instance/module/IComponents.sol +0 -2
- package/contracts/oracle/BasicOracle.sol +1 -2
- package/contracts/oracle/BasicOracleAuthorization.sol +1 -1
- package/contracts/oracle/Oracle.sol +2 -4
- package/contracts/pool/BasicPool.sol +1 -2
- package/contracts/pool/BasicPoolAuthorization.sol +1 -1
- package/contracts/pool/Pool.sol +2 -4
- package/contracts/product/ApplicationService.sol +2 -2
- package/contracts/product/BasicProduct.sol +1 -2
- package/contracts/product/BasicProductAuthorization.sol +1 -1
- package/contracts/product/ClaimService.sol +49 -53
- package/contracts/product/PolicyService.sol +9 -9
- package/contracts/product/Product.sol +2 -4
- package/contracts/product/RiskService.sol +3 -4
- package/contracts/registry/RegistryAdmin.sol +12 -30
- package/contracts/registry/RegistryAuthorization.sol +32 -31
- package/contracts/registry/ReleaseAdmin.sol +13 -9
- package/contracts/shared/Component.sol +2 -6
- package/contracts/shared/ComponentService.sol +22 -18
- package/contracts/shared/InstanceLinkedComponent.sol +2 -4
- package/contracts/staking/IStaking.sol +0 -1
- package/contracts/staking/Staking.sol +6 -6
- package/contracts/staking/StakingStore.sol +6 -0
- package/contracts/type/Blocknumber.sol +4 -9
- package/contracts/upgradeability/ProxyManager.sol +2 -2
- package/package.json +1 -1
- package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +0 -4
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +0 -4
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +0 -538
- package/contracts/shared/IKeyValueStore.sol +0 -54
- package/contracts/shared/KeyValueStore.sol +0 -131
@@ -18,6 +18,7 @@ import {InstanceStore} from "../instance/InstanceStore.sol";
|
|
18
18
|
import {NftId} from "../type/NftId.sol";
|
19
19
|
import {ObjectType, CLAIM, POLICY, POOL, PRODUCT} from "../type/ObjectType.sol";
|
20
20
|
import {PayoutId, PayoutIdLib} from "../type/PayoutId.sol";
|
21
|
+
import {ProductStore} from "../instance/ProductStore.sol";
|
21
22
|
import {Service} from "../shared/Service.sol";
|
22
23
|
import {StateId} from "../type/StateId.sol";
|
23
24
|
import {SUBMITTED, KEEP_STATE, DECLINED, REVOKED, CANCELLED, CONFIRMED, CLOSED, EXPECTED, PAID} from "../type/StateId.sol";
|
@@ -66,8 +67,8 @@ contract ClaimService is
|
|
66
67
|
{
|
67
68
|
// checks
|
68
69
|
(
|
69
|
-
|
70
|
-
|
70
|
+
,,
|
71
|
+
IInstance.InstanceContracts memory instanceContracts,
|
71
72
|
IPolicy.PolicyInfo memory policyInfo
|
72
73
|
) = _verifyCallerWithPolicy(policyNftId);
|
73
74
|
|
@@ -81,7 +82,7 @@ contract ClaimService is
|
|
81
82
|
// effects
|
82
83
|
// create new claim
|
83
84
|
claimId = ClaimIdLib.toClaimId(policyInfo.claimsCount + 1);
|
84
|
-
|
85
|
+
instanceContracts.productStore.createClaim(
|
85
86
|
policyNftId,
|
86
87
|
claimId,
|
87
88
|
IPolicy.ClaimInfo({
|
@@ -97,7 +98,7 @@ contract ClaimService is
|
|
97
98
|
// policy claim amount is only updated when claim is confirmed
|
98
99
|
policyInfo.claimsCount += 1;
|
99
100
|
policyInfo.openClaimsCount += 1;
|
100
|
-
|
101
|
+
instanceContracts.productStore.updatePolicyClaims(policyNftId, policyInfo, KEEP_STATE());
|
101
102
|
|
102
103
|
emit LogClaimServiceClaimSubmitted(policyNftId, claimId, claimAmount);
|
103
104
|
}
|
@@ -120,8 +121,7 @@ contract ClaimService is
|
|
120
121
|
(
|
121
122
|
NftId productNftId,
|
122
123
|
IInstance instance,
|
123
|
-
|
124
|
-
InstanceStore instanceStore,
|
124
|
+
IInstance.InstanceContracts memory instanceContracts,
|
125
125
|
IPolicy.PolicyInfo memory policyInfo
|
126
126
|
) = _verifyCallerWithPolicy(policyNftId);
|
127
127
|
|
@@ -129,14 +129,14 @@ contract ClaimService is
|
|
129
129
|
|
130
130
|
// effects
|
131
131
|
// check/update claim info
|
132
|
-
IPolicy.ClaimInfo memory claimInfo = _verifyClaim(instanceReader, policyNftId, claimId, SUBMITTED());
|
132
|
+
IPolicy.ClaimInfo memory claimInfo = _verifyClaim(instanceContracts.instanceReader, policyNftId, claimId, SUBMITTED());
|
133
133
|
claimInfo.claimAmount = confirmedAmount;
|
134
134
|
claimInfo.processData = data;
|
135
|
-
|
135
|
+
instanceContracts.productStore.updateClaim(policyNftId, claimId, claimInfo, CONFIRMED());
|
136
136
|
|
137
137
|
// update and save policy info with instance
|
138
138
|
policyInfo.claimAmount = policyInfo.claimAmount + confirmedAmount;
|
139
|
-
|
139
|
+
instanceContracts.productStore.updatePolicyClaims(policyNftId, policyInfo, KEEP_STATE());
|
140
140
|
|
141
141
|
// should policy still be active it needs to become expired
|
142
142
|
if (policyInfo.claimAmount >= policyInfo.sumInsuredAmount) {
|
@@ -147,7 +147,7 @@ contract ClaimService is
|
|
147
147
|
|
148
148
|
// interactions
|
149
149
|
// callback to pool if applicable
|
150
|
-
_processConfirmedClaimByPool(instanceReader, productNftId, policyNftId, claimId, confirmedAmount);
|
150
|
+
_processConfirmedClaimByPool(instanceContracts.instanceReader, productNftId, policyNftId, claimId, confirmedAmount);
|
151
151
|
|
152
152
|
// callback to policy holder if applicable
|
153
153
|
_policyHolderClaimConfirmed(policyNftId, claimId, confirmedAmount);
|
@@ -168,20 +168,19 @@ contract ClaimService is
|
|
168
168
|
|
169
169
|
(
|
170
170
|
,,
|
171
|
-
|
172
|
-
InstanceStore instanceStore,
|
171
|
+
IInstance.InstanceContracts memory instanceContracts,
|
173
172
|
IPolicy.PolicyInfo memory policyInfo
|
174
173
|
) = _verifyCallerWithPolicy(policyNftId);
|
175
174
|
|
176
175
|
// check/update claim info
|
177
|
-
IPolicy.ClaimInfo memory claimInfo = _verifyClaim(instanceReader, policyNftId, claimId, SUBMITTED());
|
176
|
+
IPolicy.ClaimInfo memory claimInfo = _verifyClaim(instanceContracts.instanceReader, policyNftId, claimId, SUBMITTED());
|
178
177
|
claimInfo.processData = data;
|
179
178
|
claimInfo.closedAt = TimestampLib.current();
|
180
|
-
|
179
|
+
instanceContracts.productStore.updateClaim(policyNftId, claimId, claimInfo, DECLINED());
|
181
180
|
|
182
181
|
// update and save policy info with instance
|
183
182
|
policyInfo.openClaimsCount -= 1;
|
184
|
-
|
183
|
+
instanceContracts.productStore.updatePolicyClaims(policyNftId, policyInfo, KEEP_STATE());
|
185
184
|
|
186
185
|
emit LogClaimServiceClaimDeclined(policyNftId, claimId);
|
187
186
|
}
|
@@ -198,19 +197,18 @@ contract ClaimService is
|
|
198
197
|
{
|
199
198
|
(
|
200
199
|
,,
|
201
|
-
|
202
|
-
InstanceStore instanceStore,
|
200
|
+
IInstance.InstanceContracts memory instanceContracts,
|
203
201
|
IPolicy.PolicyInfo memory policyInfo
|
204
202
|
) = _verifyCallerWithPolicy(policyNftId);
|
205
203
|
|
206
204
|
// check/update claim info
|
207
|
-
IPolicy.ClaimInfo memory claimInfo = _verifyClaim(instanceReader, policyNftId, claimId, SUBMITTED());
|
205
|
+
IPolicy.ClaimInfo memory claimInfo = _verifyClaim(instanceContracts.instanceReader, policyNftId, claimId, SUBMITTED());
|
208
206
|
claimInfo.closedAt = TimestampLib.current();
|
209
|
-
|
207
|
+
instanceContracts.productStore.updateClaim(policyNftId, claimId, claimInfo, REVOKED());
|
210
208
|
|
211
209
|
// update and save policy info with instance
|
212
210
|
policyInfo.openClaimsCount -= 1;
|
213
|
-
|
211
|
+
instanceContracts.productStore.updatePolicyClaims(policyNftId, policyInfo, KEEP_STATE());
|
214
212
|
|
215
213
|
emit LogClaimServiceClaimRevoked(policyNftId, claimId);
|
216
214
|
}
|
@@ -229,12 +227,11 @@ contract ClaimService is
|
|
229
227
|
|
230
228
|
(
|
231
229
|
,,
|
232
|
-
|
233
|
-
InstanceStore instanceStore,
|
230
|
+
IInstance.InstanceContracts memory instanceContracts,
|
234
231
|
) = _verifyCallerWithPolicy(policyNftId);
|
235
232
|
|
236
233
|
// check/update claim info
|
237
|
-
IPolicy.ClaimInfo memory claimInfo = _verifyClaim(instanceReader, policyNftId, claimId, CONFIRMED());
|
234
|
+
IPolicy.ClaimInfo memory claimInfo = _verifyClaim(instanceContracts.instanceReader, policyNftId, claimId, CONFIRMED());
|
238
235
|
|
239
236
|
// check claim has no open payouts
|
240
237
|
if(claimInfo.openPayoutsCount > 0) {
|
@@ -245,7 +242,7 @@ contract ClaimService is
|
|
245
242
|
}
|
246
243
|
|
247
244
|
claimInfo.closedAt = TimestampLib.current();
|
248
|
-
|
245
|
+
instanceContracts.productStore.updateClaim(policyNftId, claimId, claimInfo, CANCELLED());
|
249
246
|
|
250
247
|
emit LogClaimServiceClaimCancelled(policyNftId, claimId);
|
251
248
|
}
|
@@ -313,8 +310,7 @@ contract ClaimService is
|
|
313
310
|
// checks
|
314
311
|
(
|
315
312
|
,,
|
316
|
-
|
317
|
-
InstanceStore instanceStore,
|
313
|
+
IInstance.InstanceContracts memory instanceContracts,
|
318
314
|
IPolicy.PolicyInfo memory policyInfo
|
319
315
|
) = _verifyCallerWithPolicy(policyNftId);
|
320
316
|
|
@@ -324,16 +320,16 @@ contract ClaimService is
|
|
324
320
|
|
325
321
|
{
|
326
322
|
// check that payout exists and is open
|
327
|
-
IPolicy.PayoutInfo memory payoutInfo = instanceReader.getPayoutInfo(policyNftId, payoutId);
|
323
|
+
IPolicy.PayoutInfo memory payoutInfo = instanceContracts.instanceReader.getPayoutInfo(policyNftId, payoutId);
|
328
324
|
payoutBeneficiary = payoutInfo.beneficiary;
|
329
325
|
payoutAmount = payoutInfo.amount;
|
330
|
-
StateId payoutState = instanceReader.getPayoutState(policyNftId, payoutId);
|
326
|
+
StateId payoutState = instanceContracts.instanceReader.getPayoutState(policyNftId, payoutId);
|
331
327
|
if(payoutState != EXPECTED()) {
|
332
328
|
revert ErrorClaimServicePayoutNotExpected(policyNftId, payoutId, payoutState);
|
333
329
|
}
|
334
330
|
|
335
331
|
// check that payout amount does not violate claim amount
|
336
|
-
claimInfo = instanceReader.getClaimInfo(policyNftId, payoutId.toClaimId());
|
332
|
+
claimInfo = instanceContracts.instanceReader.getClaimInfo(policyNftId, payoutId.toClaimId());
|
337
333
|
if(claimInfo.paidAmount + payoutInfo.amount > claimInfo.claimAmount) {
|
338
334
|
revert ErrorClaimServicePayoutExceedsClaimAmount(
|
339
335
|
policyNftId,
|
@@ -345,7 +341,7 @@ contract ClaimService is
|
|
345
341
|
// effects
|
346
342
|
// update and save payout info with instance
|
347
343
|
payoutInfo.paidAt = TimestampLib.current();
|
348
|
-
|
344
|
+
instanceContracts.productStore.updatePayout(policyNftId, payoutId, payoutInfo, PAID());
|
349
345
|
}
|
350
346
|
|
351
347
|
// update and save claim info with instance
|
@@ -358,25 +354,25 @@ contract ClaimService is
|
|
358
354
|
// update claim and policy info accordingly
|
359
355
|
if(claimInfo.openPayoutsCount == 0 && claimInfo.paidAmount == claimInfo.claimAmount) {
|
360
356
|
claimInfo.closedAt = TimestampLib.current();
|
361
|
-
|
357
|
+
instanceContracts.productStore.updateClaim(policyNftId, claimId, claimInfo, CLOSED());
|
362
358
|
|
363
359
|
policyInfo.openClaimsCount -= 1;
|
364
360
|
} else {
|
365
|
-
|
361
|
+
instanceContracts.productStore.updateClaim(policyNftId, claimId, claimInfo, KEEP_STATE());
|
366
362
|
}
|
367
363
|
}
|
368
364
|
|
369
365
|
// update and save policy info with instance
|
370
366
|
policyInfo.payoutAmount = policyInfo.payoutAmount + payoutAmount;
|
371
|
-
|
367
|
+
instanceContracts.productStore.updatePolicyClaims(policyNftId, policyInfo, KEEP_STATE());
|
372
368
|
|
373
369
|
emit LogClaimServicePayoutProcessed(policyNftId, payoutId, payoutAmount);
|
374
370
|
|
375
371
|
// effects + interactions (push tokens to beneficiary, product)
|
376
372
|
// delegate to pool to update book keeping and moving tokens payout
|
377
373
|
(netPayoutAmount, processingFeeAmount) = _poolService.processPayout(
|
378
|
-
instanceReader,
|
379
|
-
instanceStore,
|
374
|
+
instanceContracts.instanceReader,
|
375
|
+
instanceContracts.instanceStore,
|
380
376
|
policyInfo.productNftId, // product nft id
|
381
377
|
policyNftId,
|
382
378
|
policyInfo.bundleNftId,
|
@@ -396,24 +392,23 @@ contract ClaimService is
|
|
396
392
|
// checks
|
397
393
|
(
|
398
394
|
,,
|
399
|
-
|
400
|
-
InstanceStore instanceStore,
|
395
|
+
IInstance.InstanceContracts memory instanceContracts,
|
401
396
|
) = _verifyCallerWithPolicy(policyNftId);
|
402
397
|
|
403
|
-
StateId payoutState = instanceReader.getPayoutState(policyNftId, payoutId);
|
398
|
+
StateId payoutState = instanceContracts.instanceReader.getPayoutState(policyNftId, payoutId);
|
404
399
|
if (payoutState != EXPECTED()) {
|
405
400
|
revert ErrorClaimServicePayoutNotExpected(policyNftId, payoutId, payoutState);
|
406
401
|
}
|
407
402
|
|
408
403
|
// effects
|
409
404
|
// update and save payout info with instance
|
410
|
-
|
405
|
+
instanceContracts.productStore.updatePayoutState(policyNftId, payoutId, CANCELLED());
|
411
406
|
|
412
407
|
{
|
413
408
|
ClaimId claimId = payoutId.toClaimId();
|
414
|
-
IPolicy.ClaimInfo memory claimInfo = instanceReader.getClaimInfo(policyNftId, claimId);
|
409
|
+
IPolicy.ClaimInfo memory claimInfo = instanceContracts.instanceReader.getClaimInfo(policyNftId, claimId);
|
415
410
|
claimInfo.openPayoutsCount -= 1;
|
416
|
-
|
411
|
+
instanceContracts.productStore.updateClaim(policyNftId, claimId, claimInfo, KEEP_STATE());
|
417
412
|
}
|
418
413
|
|
419
414
|
emit LogClaimServicePayoutCancelled(policyNftId, payoutId);
|
@@ -457,16 +452,15 @@ contract ClaimService is
|
|
457
452
|
// checks
|
458
453
|
(
|
459
454
|
,,
|
460
|
-
|
461
|
-
InstanceStore instanceStore,
|
455
|
+
IInstance.InstanceContracts memory instanceContracts,
|
462
456
|
// IPolicy.PolicyInfo memory policyInfo
|
463
457
|
) = _verifyCallerWithPolicy(policyNftId);
|
464
458
|
|
465
|
-
IPolicy.ClaimInfo memory claimInfo = instanceReader.getClaimInfo(policyNftId, claimId);
|
459
|
+
IPolicy.ClaimInfo memory claimInfo = instanceContracts.instanceReader.getClaimInfo(policyNftId, claimId);
|
466
460
|
|
467
461
|
{
|
468
462
|
// check claim state
|
469
|
-
StateId claimState = instanceReader.getClaimState(policyNftId, claimId);
|
463
|
+
StateId claimState = instanceContracts.instanceReader.getClaimState(policyNftId, claimId);
|
470
464
|
if (claimState != CONFIRMED()) {
|
471
465
|
revert ErrorClaimServiceClaimNotConfirmed(policyNftId, claimId, claimState);
|
472
466
|
}
|
@@ -487,7 +481,7 @@ contract ClaimService is
|
|
487
481
|
beneficiary = getRegistry().ownerOf(policyNftId);
|
488
482
|
}
|
489
483
|
|
490
|
-
|
484
|
+
instanceContracts.productStore.createPayout(
|
491
485
|
policyNftId,
|
492
486
|
payoutId,
|
493
487
|
IPolicy.PayoutInfo({
|
@@ -500,12 +494,14 @@ contract ClaimService is
|
|
500
494
|
// update and save claim info with instance
|
501
495
|
claimInfo.payoutsCount += 1;
|
502
496
|
claimInfo.openPayoutsCount += 1;
|
503
|
-
|
497
|
+
instanceContracts.productStore.updateClaim(policyNftId, claimId, claimInfo, KEEP_STATE());
|
504
498
|
|
505
499
|
emit LogClaimServicePayoutCreated(policyNftId, payoutId, amount, beneficiary);
|
506
500
|
}
|
507
501
|
|
508
|
-
|
502
|
+
/// @dev Verifies the caller is a product and the policy is active.
|
503
|
+
/// Returns the product nft id, instance, instance contracts and policy info.
|
504
|
+
/// in InstanceContracts only the contracts instanceReader, instanceStore and productStore are set.
|
509
505
|
function _verifyCallerWithPolicy(
|
510
506
|
NftId policyNftId
|
511
507
|
)
|
@@ -515,17 +511,17 @@ contract ClaimService is
|
|
515
511
|
returns (
|
516
512
|
NftId productNftId,
|
517
513
|
IInstance instance,
|
518
|
-
|
519
|
-
InstanceStore instanceStore,
|
514
|
+
IInstance.InstanceContracts memory instanceContracts,
|
520
515
|
IPolicy.PolicyInfo memory policyInfo
|
521
516
|
)
|
522
517
|
{
|
523
518
|
(productNftId, instance) = _getAndVerifyActiveProduct();
|
524
|
-
instanceReader = instance.getInstanceReader();
|
525
|
-
instanceStore = instance.getInstanceStore();
|
519
|
+
instanceContracts.instanceReader = InstanceReader(instance.getInstanceReader());
|
520
|
+
instanceContracts.instanceStore = InstanceStore(instance.getInstanceStore());
|
521
|
+
instanceContracts.productStore = ProductStore(instance.getProductStore());
|
526
522
|
|
527
523
|
// check caller(product) policy match
|
528
|
-
policyInfo = instanceReader.getPolicyInfo(policyNftId);
|
524
|
+
policyInfo = instanceContracts.instanceReader.getPolicyInfo(policyNftId);
|
529
525
|
if(policyInfo.productNftId != productNftId) {
|
530
526
|
revert ErrorClaimServicePolicyProductMismatch(policyNftId,
|
531
527
|
policyInfo.productNftId,
|
@@ -83,7 +83,7 @@ contract PolicyService is
|
|
83
83
|
|
84
84
|
// effects
|
85
85
|
// store updated policy info
|
86
|
-
instance.
|
86
|
+
instance.getProductStore().updatePolicyState(
|
87
87
|
applicationNftId,
|
88
88
|
DECLINED());
|
89
89
|
|
@@ -132,7 +132,7 @@ contract PolicyService is
|
|
132
132
|
}
|
133
133
|
|
134
134
|
// update policy and set state to collateralized
|
135
|
-
instance.
|
135
|
+
instance.getProductStore().updatePolicy(
|
136
136
|
applicationNftId,
|
137
137
|
applicationInfo,
|
138
138
|
COLLATERALIZED());
|
@@ -158,7 +158,7 @@ contract PolicyService is
|
|
158
158
|
}
|
159
159
|
|
160
160
|
premiumAmount = premium.premiumAmount;
|
161
|
-
instance.
|
161
|
+
instance.getProductStore().createPremium(
|
162
162
|
applicationNftId,
|
163
163
|
premium);
|
164
164
|
|
@@ -243,8 +243,8 @@ contract PolicyService is
|
|
243
243
|
policyInfo = PolicyServiceLib.activate(policyNftId, policyInfo, activateAt);
|
244
244
|
}
|
245
245
|
|
246
|
-
instance.
|
247
|
-
instance.
|
246
|
+
instance.getProductStore().updatePolicy(policyNftId, policyInfo, KEEP_STATE());
|
247
|
+
instance.getProductStore().updatePremiumState(policyNftId, PAID());
|
248
248
|
|
249
249
|
// log premium collection before interactions with token
|
250
250
|
emit LogPolicyServicePolicyPremiumCollected(policyNftId, premium.premiumAmount);
|
@@ -269,7 +269,7 @@ contract PolicyService is
|
|
269
269
|
|
270
270
|
// effects
|
271
271
|
policyInfo = PolicyServiceLib.activate(policyNftId, policyInfo, activateAt);
|
272
|
-
instance.
|
272
|
+
instance.getProductStore().updatePolicy(policyNftId, policyInfo, KEEP_STATE());
|
273
273
|
|
274
274
|
// log policy activation before interactions with policy holder
|
275
275
|
emit LogPolicyServicePolicyActivated(policyNftId, activateAt);
|
@@ -309,7 +309,7 @@ contract PolicyService is
|
|
309
309
|
|
310
310
|
// effects
|
311
311
|
policyInfo.activatedAt = newActivateAt;
|
312
|
-
instance.
|
312
|
+
instance.getProductStore().updatePolicy(policyNftId, policyInfo, KEEP_STATE());
|
313
313
|
|
314
314
|
// log policy activation before interactions with policy holder
|
315
315
|
emit LogPolicyServicePolicyActivatedUpdated(policyNftId, newActivateAt);
|
@@ -415,7 +415,7 @@ contract PolicyService is
|
|
415
415
|
|
416
416
|
// update policy state to closed
|
417
417
|
policyInfo.closedAt = TimestampLib.current();
|
418
|
-
instance.
|
418
|
+
instance.getProductStore().updatePolicy(policyNftId, policyInfo, CLOSED());
|
419
419
|
|
420
420
|
// unlink policy from risk and bundle
|
421
421
|
NftId poolNftId = getRegistry().getParentNftId(bundleNftId);
|
@@ -442,7 +442,7 @@ contract PolicyService is
|
|
442
442
|
policyInfo,
|
443
443
|
expireAt);
|
444
444
|
|
445
|
-
instance.
|
445
|
+
instance.getProductStore().updatePolicy(policyNftId, policyInfo, KEEP_STATE());
|
446
446
|
|
447
447
|
emit LogPolicyServicePolicyExpirationUpdated(policyNftId, policyInfo.expiredAt);
|
448
448
|
|
@@ -140,8 +140,7 @@ abstract contract Product is
|
|
140
140
|
IComponents.ProductInfo memory productInfo,
|
141
141
|
IComponents.FeeInfo memory feeInfo,
|
142
142
|
IAuthorization authorization,
|
143
|
-
address initialOwner
|
144
|
-
bytes memory componentData // writeonly data that will saved in the object info record of the registry
|
143
|
+
address initialOwner
|
145
144
|
)
|
146
145
|
internal
|
147
146
|
virtual
|
@@ -154,8 +153,7 @@ abstract contract Product is
|
|
154
153
|
PRODUCT(),
|
155
154
|
authorization,
|
156
155
|
productInfo.isInterceptingPolicyTransfers,
|
157
|
-
initialOwner
|
158
|
-
componentData);
|
156
|
+
initialOwner);
|
159
157
|
|
160
158
|
ProductStorage storage $ = _getProductStorage();
|
161
159
|
$._productInfo = productInfo;
|
@@ -12,7 +12,6 @@ import {ObjectType, COMPONENT, PRODUCT, RISK} from "../type/ObjectType.sol";
|
|
12
12
|
import {ACTIVE, KEEP_STATE, CLOSED} from "../type/StateId.sol";
|
13
13
|
import {NftId} from "../type/NftId.sol";
|
14
14
|
import {RiskId, RiskIdLib} from "../type/RiskId.sol";
|
15
|
-
import {StateId} from "../type/StateId.sol";
|
16
15
|
import {RiskSet} from "../instance/RiskSet.sol";
|
17
16
|
import {Service} from "../shared/Service.sol";
|
18
17
|
import {TimestampLib} from "../type/Timestamp.sol";
|
@@ -59,7 +58,7 @@ contract RiskService is
|
|
59
58
|
createdAt: TimestampLib.current(),
|
60
59
|
data: data});
|
61
60
|
|
62
|
-
instance.
|
61
|
+
instance.getProductStore().createRisk(
|
63
62
|
riskId,
|
64
63
|
riskInfo
|
65
64
|
);
|
@@ -92,7 +91,7 @@ contract RiskService is
|
|
92
91
|
}
|
93
92
|
|
94
93
|
riskInfo.data = data;
|
95
|
-
instance.
|
94
|
+
instance.getProductStore().updateRisk(riskId, riskInfo, KEEP_STATE());
|
96
95
|
|
97
96
|
emit LogRiskServiceRiskUpdated(productNftId, riskId);
|
98
97
|
}
|
@@ -148,7 +147,7 @@ contract RiskService is
|
|
148
147
|
}
|
149
148
|
|
150
149
|
// effects
|
151
|
-
instance.
|
150
|
+
instance.getProductStore().updateRiskState(riskId, CLOSED());
|
152
151
|
|
153
152
|
emit LogRiskServiceRiskClosed(productNftId, riskId);
|
154
153
|
}
|
@@ -76,7 +76,6 @@ contract RegistryAdmin is
|
|
76
76
|
public
|
77
77
|
virtual
|
78
78
|
reinitializer(type(uint8).max)
|
79
|
-
onlyDeployer()
|
80
79
|
{
|
81
80
|
// checks
|
82
81
|
AccessAdminLib.checkRegistry(registry);
|
@@ -101,11 +100,12 @@ contract RegistryAdmin is
|
|
101
100
|
// link nft ownability to registry
|
102
101
|
_linkToNftOwnable(_registry);
|
103
102
|
|
103
|
+
_createRoles(_authorization);
|
104
|
+
|
104
105
|
// setup registry core targets
|
105
106
|
_createCoreTargets(_authorization.getMainTargetName());
|
106
107
|
|
107
108
|
// setup non-contract roles
|
108
|
-
_createRoles(_authorization);
|
109
109
|
_grantRoleToAccount(GIF_ADMIN_ROLE(), gifAdmin);
|
110
110
|
_grantRoleToAccount(GIF_MANAGER_ROLE(), gifManager);
|
111
111
|
|
@@ -138,38 +138,20 @@ contract RegistryAdmin is
|
|
138
138
|
|
139
139
|
//--- private initialization functions -------------------------------------------//
|
140
140
|
|
141
|
-
function _createRoles(IAuthorization authorization)
|
142
|
-
internal
|
143
|
-
{
|
144
|
-
RoleId[] memory roles = authorization.getRoles();
|
145
|
-
|
146
|
-
for(uint256 i = 0; i < roles.length; i++) {
|
147
|
-
RoleId roleId = roles[i];
|
148
|
-
RoleInfo memory roleInfo = authorization.getRoleInfo(roleId);
|
149
|
-
|
150
|
-
// create role if not exists
|
151
|
-
if (!roleExists(roleInfo.name.toString())) {
|
152
|
-
_createRole(
|
153
|
-
roleId,
|
154
|
-
roleInfo);
|
155
|
-
}
|
156
|
-
}
|
157
|
-
}
|
158
|
-
|
159
141
|
|
160
142
|
function _createCoreTargets(string memory registryTargetName)
|
161
143
|
internal
|
162
144
|
{
|
163
|
-
// registry
|
164
|
-
|
165
|
-
|
166
|
-
|
167
|
-
|
168
|
-
|
169
|
-
// staking
|
170
|
-
|
171
|
-
|
172
|
-
|
145
|
+
// create unchecked registry targets
|
146
|
+
_createTarget(_registry, registryTargetName, TargetType.Core, false);
|
147
|
+
_createTarget(address(this), REGISTRY_ADMIN_TARGET_NAME, TargetType.Core, false);
|
148
|
+
_createTarget(_releaseRegistry, RELEASE_REGISTRY_TARGET_NAME, TargetType.Core, false);
|
149
|
+
_createTarget(_tokenRegistry, TOKEN_REGISTRY_TARGET_NAME, TargetType.Core, false);
|
150
|
+
|
151
|
+
// create unchecked staking targets
|
152
|
+
_createTarget(_staking, STAKING_TARGET_NAME, TargetType.Core, false);
|
153
|
+
_createTarget(_stakingTargetHandler, STAKING_TARGET_HANDLER_NAME, TargetType.Core, false);
|
154
|
+
_createTarget(_stakingStore, STAKING_STORE_TARGET_NAME, TargetType.Core, false);
|
173
155
|
}
|
174
156
|
|
175
157
|
|
@@ -5,6 +5,7 @@ import {IAccess} from "../authorization/IAccess.sol";
|
|
5
5
|
import {IRegistry} from "../registry/IRegistry.sol";
|
6
6
|
import {IStaking} from "../staking/IStaking.sol";
|
7
7
|
|
8
|
+
import {AccessAdminLib} from "../authorization/AccessAdminLib.sol";
|
8
9
|
import {Authorization} from "../authorization/Authorization.sol";
|
9
10
|
import {COMPONENT, POOL, REGISTRY, STAKING} from "../../contracts/type/ObjectType.sol";
|
10
11
|
import {PUBLIC_ROLE} from "../type/RoleId.sol";
|
@@ -50,7 +51,7 @@ contract RegistryAuthorization
|
|
50
51
|
REGISTRY(),
|
51
52
|
3,
|
52
53
|
commitHash,
|
53
|
-
|
54
|
+
TargetType.Core,
|
54
55
|
false) // includeTokenHandler
|
55
56
|
{ }
|
56
57
|
|
@@ -63,53 +64,53 @@ contract RegistryAuthorization
|
|
63
64
|
// service roles (for all releases)
|
64
65
|
_addRole(
|
65
66
|
RoleIdLib.toGenericServiceRoleId(REGISTRY()),
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
67
|
+
AccessAdminLib.roleInfo(
|
68
|
+
ADMIN_ROLE(),
|
69
|
+
TargetType.Core,
|
70
|
+
maxReleases,
|
71
|
+
REGISTRY_SERVICE_ROLE_NAME));
|
71
72
|
|
72
73
|
_addRole(
|
73
74
|
RoleIdLib.toGenericServiceRoleId(STAKING()),
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
75
|
+
AccessAdminLib.roleInfo(
|
76
|
+
ADMIN_ROLE(),
|
77
|
+
TargetType.Core,
|
78
|
+
maxReleases,
|
79
|
+
STAKING_SERVICE_ROLE_NAME));
|
79
80
|
|
80
81
|
_addRole(
|
81
82
|
RoleIdLib.toGenericServiceRoleId(COMPONENT()),
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
83
|
+
AccessAdminLib.roleInfo(
|
84
|
+
ADMIN_ROLE(),
|
85
|
+
TargetType.Core,
|
86
|
+
maxReleases,
|
87
|
+
COMPONENT_SERVICE_ROLE_NAME));
|
87
88
|
|
88
89
|
_addRole(
|
89
90
|
RoleIdLib.toGenericServiceRoleId(POOL()),
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
91
|
+
AccessAdminLib.roleInfo(
|
92
|
+
ADMIN_ROLE(),
|
93
|
+
TargetType.Core,
|
94
|
+
maxReleases,
|
95
|
+
POOL_SERVICE_ROLE_NAME));
|
95
96
|
|
96
97
|
// gif admin role
|
97
98
|
_addRole(
|
98
99
|
GIF_ADMIN_ROLE(),
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
100
|
+
AccessAdminLib.roleInfo(
|
101
|
+
ADMIN_ROLE(),
|
102
|
+
TargetType.Custom, // custom is only type that allows role removal
|
103
|
+
2, // TODO decide on max member count
|
104
|
+
GIF_ADMIN_ROLE_NAME));
|
104
105
|
|
105
106
|
// gif manager role
|
106
107
|
_addRole(
|
107
108
|
GIF_MANAGER_ROLE(),
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
109
|
+
AccessAdminLib.roleInfo(
|
110
|
+
ADMIN_ROLE(),
|
111
|
+
TargetType.Custom, // custom is only type that allows role removal
|
112
|
+
1, // TODO decide on max member count
|
113
|
+
GIF_MANAGER_ROLE_NAME));
|
113
114
|
|
114
115
|
}
|
115
116
|
|
@@ -63,7 +63,6 @@ contract ReleaseAdmin is
|
|
63
63
|
external
|
64
64
|
reinitializer(uint64(release.toInt()))
|
65
65
|
{
|
66
|
-
|
67
66
|
// checks
|
68
67
|
AccessAdminLib.checkRegistry(registry);
|
69
68
|
|
@@ -79,6 +78,8 @@ contract ReleaseAdmin is
|
|
79
78
|
// link nft ownability to registry
|
80
79
|
_linkToNftOwnable(registry);
|
81
80
|
|
81
|
+
_createRoles(_serviceAuthorization);
|
82
|
+
|
82
83
|
// setup release contract
|
83
84
|
_setupReleaseRegistry(releaseRegistry);
|
84
85
|
|
@@ -165,7 +166,8 @@ contract ReleaseAdmin is
|
|
165
166
|
string memory serviceTargetName = ObjectTypeLib.toVersionedName(
|
166
167
|
baseName, "Service", release);
|
167
168
|
|
168
|
-
|
169
|
+
// create unchecked target
|
170
|
+
_createTarget(address(service), serviceTargetName, TargetType.Service, false);
|
169
171
|
}
|
170
172
|
|
171
173
|
//--- private initialization functions -------------------------------------------//
|
@@ -174,21 +176,23 @@ contract ReleaseAdmin is
|
|
174
176
|
private
|
175
177
|
onlyInitializing()
|
176
178
|
{
|
177
|
-
_createManagedTarget(address(this), RELEASE_ADMIN_TARGET_NAME, IAccess.TargetType.Core);
|
178
179
|
|
179
180
|
_createRole(
|
180
181
|
RELEASE_REGISTRY_ROLE(),
|
181
|
-
AccessAdminLib.
|
182
|
-
|
183
|
-
|
184
|
-
|
185
|
-
|
182
|
+
AccessAdminLib.coreRoleInfo(RELEASE_REGISTRY_ROLE_NAME),
|
183
|
+
true); // revets on existing role
|
184
|
+
|
185
|
+
_createTarget(
|
186
|
+
address(this),
|
187
|
+
RELEASE_ADMIN_TARGET_NAME,
|
188
|
+
IAccess.TargetType.Core,
|
189
|
+
true); // check authority maches
|
186
190
|
|
187
191
|
FunctionInfo[] memory functions;
|
188
192
|
functions = new FunctionInfo[](2);
|
189
193
|
functions[0] = AccessAdminLib.toFunction(ReleaseAdmin.authorizeService.selector, "authorizeService");
|
190
194
|
functions[1] = AccessAdminLib.toFunction(ReleaseAdmin.setServiceLocked.selector, "setServiceLocked");
|
191
|
-
_authorizeTargetFunctions(address(this), RELEASE_REGISTRY_ROLE(), functions, true);
|
195
|
+
_authorizeTargetFunctions(address(this), RELEASE_REGISTRY_ROLE(), functions, false, true);
|
192
196
|
|
193
197
|
_grantRoleToAccount(RELEASE_REGISTRY_ROLE(), releaseRegistry);
|
194
198
|
}
|