@etherisc/gif-next 0.0.2-b9366f5-670 → 0.0.2-b95860d-028
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 +1 -1
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +1 -1
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +105 -65
- 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 +148 -222
- 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 +88 -186
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +125 -198
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +99 -107
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +75 -57
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +29 -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 +1551 -0
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +470 -0
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +2090 -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 +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +1484 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +1244 -0
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +1605 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +2108 -0
- 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/IInstance.sol/IInstance.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstance.sol/IInstance.json +48 -31
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +29 -84
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +51 -105
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +165 -138
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +57 -97
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +280 -72
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +77 -242
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +75 -87
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +189 -98
- 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 +130 -204
- 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 +71 -53
- 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 +84 -182
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +91 -159
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +75 -83
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +103 -186
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +82 -22
- package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleService.sol/BundleService.json +178 -187
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +117 -105
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +53 -0
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +92 -46
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +200 -115
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
- package/artifacts/contracts/pool/Pool.sol/Pool.json +103 -173
- package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolService.sol/PoolService.json +308 -264
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +108 -88
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +71 -144
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +72 -80
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +140 -197
- 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 +194 -200
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +116 -104
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +29 -0
- 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 +140 -0
- 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 +129 -70
- 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 +252 -166
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +107 -91
- package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
- package/artifacts/contracts/product/PricingService.sol/PricingService.json +154 -219
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +87 -91
- package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
- package/artifacts/contracts/product/Product.sol/Product.json +140 -197
- package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +1 -1
- package/artifacts/contracts/product/RiskService.sol/RiskService.json +65 -138
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +69 -77
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +59 -16
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +285 -33
- 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 +0 -18
- package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
- package/artifacts/contracts/registry/Registry.sol/Registry.json +491 -94
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +283 -143
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +78 -284
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +67 -75
- 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 +129 -221
- 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 +63 -157
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +351 -263
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +120 -110
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +47 -112
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +4 -0
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +92 -0
- package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponent.sol/IComponent.json +50 -28
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +321 -19
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +71 -53
- 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 +15 -47
- 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/InitializableERC165.sol/InitializableERC165.json +2 -22
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +84 -182
- 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 +22 -57
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +19 -141
- package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
- package/artifacts/contracts/shared/Registerable.sol/Registerable.json +58 -89
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -15
- package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
- package/artifacts/contracts/shared/Service.sol/Service.json +47 -112
- 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/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 +50 -28
- 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 +2 -2
- package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
- package/artifacts/contracts/staking/Staking.sol/Staking.json +133 -207
- 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 +99 -88
- 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 +71 -165
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +71 -79
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +144 -103
- 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/Amount.sol/AmountLib.json +32 -8
- 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 +2 -2
- package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +1 -1
- package/artifacts/contracts/type/Key32.sol/Key32Lib.json +2 -2
- package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/NftId.sol/NftIdLib.json +2 -2
- 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 +60 -4
- 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/MathLib.dbg.json +1 -1
- package/artifacts/contracts/type/UFixed.sol/MathLib.json +2 -2
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +15 -2
- 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 +55 -70
- 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 +64 -59
- 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 +2 -1
- package/contracts/distribution/Distribution.sol +5 -15
- package/contracts/distribution/DistributionService.sol +61 -43
- package/contracts/distribution/DistributionServiceManager.sol +6 -6
- package/contracts/examples/fire/DamageLevel.sol +59 -0
- package/contracts/examples/fire/FirePool.sol +75 -0
- package/contracts/examples/fire/FirePoolAuthorization.sol +34 -0
- package/contracts/examples/fire/FireProduct.sol +412 -0
- package/contracts/examples/fire/FireProductAuthorization.sol +44 -0
- package/contracts/examples/fire/FireUSD.sol +26 -0
- package/contracts/{example_components → examples}/unpermissioned/SimpleDistribution.sol +4 -4
- package/contracts/{example_components → examples}/unpermissioned/SimpleOracle.sol +4 -4
- package/contracts/{example_components → examples}/unpermissioned/SimplePool.sol +4 -4
- package/contracts/{example_components → examples}/unpermissioned/SimpleProduct.sol +10 -10
- package/contracts/instance/IInstance.sol +4 -1
- package/contracts/instance/IInstanceService.sol +0 -20
- package/contracts/instance/Instance.sol +21 -12
- package/contracts/instance/InstanceAdmin.sol +22 -30
- package/contracts/instance/InstanceAuthorizationV3.sol +9 -19
- package/contracts/instance/InstanceReader.sol +83 -18
- package/contracts/instance/InstanceService.sol +19 -76
- package/contracts/instance/InstanceServiceManager.sol +6 -7
- package/contracts/instance/module/IComponents.sol +9 -4
- package/contracts/instance/module/IPolicy.sol +2 -2
- package/contracts/oracle/BasicOracle.sol +0 -1
- package/contracts/oracle/IOracleService.sol +2 -1
- package/contracts/oracle/Oracle.sol +5 -16
- package/contracts/oracle/OracleService.sol +47 -35
- package/contracts/oracle/OracleServiceManager.sol +6 -6
- package/contracts/pool/BasicPool.sol +14 -26
- package/contracts/pool/BasicPoolAuthorization.sol +0 -1
- package/contracts/pool/BundleService.sol +32 -9
- package/contracts/pool/BundleServiceManager.sol +6 -6
- package/contracts/pool/IBundleService.sol +9 -0
- package/contracts/pool/IPoolComponent.sol +18 -8
- package/contracts/pool/IPoolService.sol +21 -14
- package/contracts/pool/Pool.sol +39 -30
- package/contracts/pool/PoolService.sol +99 -83
- package/contracts/pool/PoolServiceManager.sol +4 -4
- package/contracts/product/ApplicationService.sol +11 -8
- package/contracts/product/ApplicationServiceManager.sol +4 -4
- package/contracts/product/BasicProduct.sol +6 -6
- package/contracts/product/BasicProductAuthorization.sol +0 -1
- package/contracts/product/ClaimService.sol +190 -86
- package/contracts/product/ClaimServiceManager.sol +4 -4
- package/contracts/product/IClaimService.sol +3 -2
- package/contracts/product/IPolicyService.sol +10 -3
- package/contracts/product/IPricingService.sol +9 -9
- package/contracts/product/IProductComponent.sol +23 -3
- package/contracts/product/PolicyService.sol +145 -35
- package/contracts/product/PolicyServiceManager.sol +4 -4
- package/contracts/product/PricingService.sol +8 -12
- package/contracts/product/PricingServiceManager.sol +3 -3
- package/contracts/product/Product.sol +83 -53
- package/contracts/product/RiskService.sol +4 -5
- package/contracts/product/RiskServiceManager.sol +4 -4
- package/contracts/registry/ChainNft.sol +65 -36
- package/contracts/registry/IRegistry.sol +54 -17
- package/contracts/registry/IRegistryService.sol +5 -12
- package/contracts/registry/ITransferInterceptor.sol +0 -1
- package/contracts/registry/Registry.sol +341 -200
- package/contracts/registry/RegistryAdmin.sol +124 -50
- package/contracts/registry/RegistryService.sol +35 -46
- package/contracts/registry/RegistryServiceManager.sol +2 -2
- package/contracts/registry/ReleaseLifecycle.sol +6 -3
- package/contracts/registry/ReleaseRegistry.sol +203 -187
- package/contracts/registry/ServiceAuthorizationV3.sol +14 -19
- package/contracts/shared/Component.sol +26 -18
- package/contracts/shared/ComponentService.sol +230 -136
- package/contracts/shared/ComponentServiceManager.sol +8 -5
- package/contracts/shared/ComponentVerifyingService.sol +22 -13
- package/contracts/shared/ContractLib.sol +38 -0
- package/contracts/shared/IComponent.sol +6 -2
- package/contracts/shared/IComponentService.sol +25 -13
- package/contracts/shared/IInstanceLinkedComponent.sol +3 -11
- package/contracts/shared/ILifecycle.sol +3 -1
- package/contracts/shared/INftOwnable.sol +2 -0
- package/contracts/shared/IPolicyHolder.sol +12 -22
- package/contracts/shared/IRegisterable.sol +11 -0
- package/contracts/shared/InitializableERC165.sol +2 -2
- package/contracts/shared/InstanceLinkedComponent.sol +71 -30
- package/contracts/shared/KeyValueStore.sol +1 -1
- package/contracts/shared/Lifecycle.sol +15 -4
- package/contracts/shared/NftOwnable.sol +22 -6
- package/contracts/shared/PolicyHolder.sol +15 -52
- package/contracts/shared/Registerable.sol +19 -9
- package/contracts/shared/RegistryLinked.sol +3 -2
- package/contracts/shared/Service.sol +20 -18
- package/contracts/staking/IStakingService.sol +0 -3
- package/contracts/staking/Staking.sol +5 -6
- package/contracts/staking/StakingManager.sol +8 -6
- package/contracts/staking/StakingReader.sol +12 -5
- package/contracts/staking/StakingService.sol +3 -17
- package/contracts/staking/StakingServiceManager.sol +2 -2
- package/contracts/type/Amount.sol +15 -0
- package/contracts/type/ClaimId.sol +6 -1
- package/contracts/type/NftId.sol +1 -0
- package/contracts/type/ObjectType.sol +1 -0
- package/contracts/type/PayoutId.sol +10 -10
- package/contracts/type/RiskId.sol +15 -1
- package/contracts/type/RoleId.sol +0 -12
- package/contracts/type/StateId.sol +14 -1
- package/contracts/type/UFixed.sol +4 -0
- package/contracts/upgradeability/ProxyManager.sol +68 -34
- package/contracts/upgradeability/Versionable.sol +2 -2
- package/package.json +2 -1
- 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/example_components/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +0 -4
- package/artifacts/contracts/example_components/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +0 -1558
- package/artifacts/contracts/example_components/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +0 -4
- package/artifacts/contracts/example_components/unpermissioned/SimpleOracle.sol/SimpleOracle.json +0 -1318
- package/artifacts/contracts/example_components/unpermissioned/SimplePool.sol/SimplePool.dbg.json +0 -4
- package/artifacts/contracts/example_components/unpermissioned/SimplePool.sol/SimplePool.json +0 -1664
- package/artifacts/contracts/example_components/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +0 -4
- package/artifacts/contracts/example_components/unpermissioned/SimpleProduct.sol/SimpleProduct.json +0 -2125
- package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.dbg.json +0 -4
- package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.json +0 -39
- package/contracts/authorization/IModuleAuthorization.sol +0 -21
- package/contracts/authorization/ModuleAuthorization.sol +0 -78
- package/contracts/shared/InitializableCustom.sol +0 -177
@@ -3,20 +3,23 @@ pragma solidity ^0.8.20;
|
|
3
3
|
|
4
4
|
import {Amount, AmountLib} from "../type/Amount.sol";
|
5
5
|
import {ClaimId} from "../type/ClaimId.sol";
|
6
|
-
import {
|
6
|
+
import {IComponent} from "../shared/IComponent.sol";
|
7
7
|
import {Fee, FeeLib} from "../type/Fee.sol";
|
8
8
|
import {IRisk} from "../instance/module/IRisk.sol";
|
9
9
|
import {IApplicationService} from "./IApplicationService.sol";
|
10
10
|
import {IAuthorization} from "../authorization/IAuthorization.sol";
|
11
11
|
import {IComponentService} from "../shared/IComponentService.sol";
|
12
|
+
import {InstanceLinkedComponent} from "../shared/InstanceLinkedComponent.sol";
|
13
|
+
import {IInstanceLinkedComponent} from "../shared/IInstanceLinkedComponent.sol";
|
12
14
|
import {IPolicyService} from "./IPolicyService.sol";
|
13
15
|
import {IRiskService} from "./IRiskService.sol";
|
14
16
|
import {IClaimService} from "./IClaimService.sol";
|
15
17
|
import {IPricingService} from "./IPricingService.sol";
|
16
18
|
import {IProductComponent} from "./IProductComponent.sol";
|
17
|
-
import {NftId} from "../type/NftId.sol";
|
19
|
+
import {NftId, NftIdLib} from "../type/NftId.sol";
|
20
|
+
import {ObjectType, COMPONENT, DISTRIBUTION, ORACLE, POOL, PRODUCT, BUNDLE, APPLICATION, POLICY, CLAIM, PRICE } from "../type/ObjectType.sol";
|
18
21
|
import {PayoutId} from "../type/PayoutId.sol";
|
19
|
-
import {COMPONENT, PRODUCT, APPLICATION, POLICY, CLAIM, PRICE } from "../type/ObjectType.sol";
|
22
|
+
import {COMPONENT, PRODUCT, APPLICATION, POLICY, CLAIM, PRICE, BUNDLE } from "../type/ObjectType.sol";
|
20
23
|
import {ReferralId} from "../type/Referral.sol";
|
21
24
|
import {RiskId, RiskIdLib} from "../type/RiskId.sol";
|
22
25
|
import {Seconds} from "../type/Seconds.sol";
|
@@ -25,8 +28,9 @@ import {Timestamp} from "../type/Timestamp.sol";
|
|
25
28
|
|
26
29
|
import {IPolicy} from "../instance/module/IPolicy.sol";
|
27
30
|
import {IComponents} from "../instance/module/IComponents.sol";
|
28
|
-
import {
|
29
|
-
import {
|
31
|
+
import {IDistributionComponent} from "../distribution/IDistributionComponent.sol";
|
32
|
+
import {IOracleComponent} from "../oracle/IOracleComponent.sol";
|
33
|
+
import {IPoolComponent} from "../pool/IPoolComponent.sol";
|
30
34
|
|
31
35
|
abstract contract Product is
|
32
36
|
InstanceLinkedComponent,
|
@@ -36,16 +40,39 @@ abstract contract Product is
|
|
36
40
|
bytes32 public constant PRODUCT_STORAGE_LOCATION_V1 = 0x0bb7aafdb8e380f81267337bc5b5dfdf76e6d3a380ecadb51ec665246d9d6800;
|
37
41
|
|
38
42
|
struct ProductStorage {
|
43
|
+
bool _isProcessingFundedClaims;
|
44
|
+
bool _hasDistribution;
|
45
|
+
uint8 _numberOfOracles;
|
39
46
|
IRiskService _riskService;
|
40
47
|
IApplicationService _applicationService;
|
41
48
|
IPolicyService _policyService;
|
42
49
|
IClaimService _claimService;
|
43
50
|
IPricingService _pricingService;
|
44
51
|
IComponentService _componentService;
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
52
|
+
}
|
53
|
+
|
54
|
+
|
55
|
+
function registerComponent(address component)
|
56
|
+
external
|
57
|
+
virtual
|
58
|
+
onlyOwner()
|
59
|
+
returns (NftId componentNftId)
|
60
|
+
{
|
61
|
+
return _getProductStorage()._componentService.registerComponent(component);
|
62
|
+
}
|
63
|
+
|
64
|
+
|
65
|
+
function processFundedClaim(
|
66
|
+
NftId policyNftId,
|
67
|
+
ClaimId claimId,
|
68
|
+
Amount availableAmount
|
69
|
+
)
|
70
|
+
external
|
71
|
+
virtual
|
72
|
+
restricted() // pool service role
|
73
|
+
onlyNftOfType(policyNftId, POLICY())
|
74
|
+
{
|
75
|
+
// default implementation does nothing
|
49
76
|
}
|
50
77
|
|
51
78
|
|
@@ -60,6 +87,7 @@ abstract contract Product is
|
|
60
87
|
public
|
61
88
|
view
|
62
89
|
override
|
90
|
+
onlyNftOfType(bundleNftId, BUNDLE())
|
63
91
|
returns (Amount premiumAmount)
|
64
92
|
{
|
65
93
|
IPolicy.PremiumInfo memory premium = _getProductStorage()._pricingService.calculatePremium(
|
@@ -91,16 +119,6 @@ abstract contract Product is
|
|
91
119
|
}
|
92
120
|
|
93
121
|
|
94
|
-
function register()
|
95
|
-
external
|
96
|
-
virtual
|
97
|
-
onlyOwner()
|
98
|
-
{
|
99
|
-
_getProductStorage()._componentService.registerProduct();
|
100
|
-
_approveTokenHandler(type(uint256).max);
|
101
|
-
}
|
102
|
-
|
103
|
-
|
104
122
|
function getInitialProductInfo()
|
105
123
|
public
|
106
124
|
virtual
|
@@ -110,8 +128,13 @@ abstract contract Product is
|
|
110
128
|
ProductStorage storage $ = _getProductStorage();
|
111
129
|
|
112
130
|
return IComponents.ProductInfo({
|
113
|
-
|
114
|
-
|
131
|
+
isProcessingFundedClaims: false,
|
132
|
+
hasDistribution: $._hasDistribution,
|
133
|
+
expectedNumberOfOracles: $._numberOfOracles,
|
134
|
+
numberOfOracles: 0,
|
135
|
+
poolNftId: NftIdLib.zero(),
|
136
|
+
distributionNftId: NftIdLib.zero(),
|
137
|
+
oracleNftId: new NftId[]($._numberOfOracles),
|
115
138
|
productFee: FeeLib.zero(),
|
116
139
|
processingFee: FeeLib.zero(),
|
117
140
|
distributionFee: FeeLib.zero(),
|
@@ -122,13 +145,6 @@ abstract contract Product is
|
|
122
145
|
});
|
123
146
|
}
|
124
147
|
|
125
|
-
function getPoolNftId() external view override returns (NftId poolNftId) {
|
126
|
-
return getRegistry().getNftIdForAddress(address(_getProductStorage()._pool));
|
127
|
-
}
|
128
|
-
|
129
|
-
function getDistributionNftId() external view override returns (NftId distributionNftId) {
|
130
|
-
return getRegistry().getNftIdForAddress(address(_getProductStorage()._distribution));
|
131
|
-
}
|
132
148
|
|
133
149
|
function _initializeProduct(
|
134
150
|
address registry,
|
@@ -138,10 +154,9 @@ abstract contract Product is
|
|
138
154
|
string memory name,
|
139
155
|
address token,
|
140
156
|
bool isInterceptor,
|
141
|
-
|
142
|
-
|
143
|
-
|
144
|
-
bytes memory registryData, // writeonly data that will saved in the object info record of the registry
|
157
|
+
bool isProcessingFundedClaims,
|
158
|
+
bool hasDistribution,
|
159
|
+
uint8 numberOfOracles,
|
145
160
|
bytes memory componentData // writeonly data that will saved in the object info record of the registry
|
146
161
|
)
|
147
162
|
internal
|
@@ -157,24 +172,20 @@ abstract contract Product is
|
|
157
172
|
authorization,
|
158
173
|
isInterceptor,
|
159
174
|
initialOwner,
|
160
|
-
registryData,
|
161
175
|
componentData);
|
162
176
|
|
163
177
|
ProductStorage storage $ = _getProductStorage();
|
164
|
-
|
165
|
-
|
178
|
+
$._isProcessingFundedClaims = isProcessingFundedClaims;
|
179
|
+
$._hasDistribution = hasDistribution;
|
180
|
+
$._numberOfOracles = numberOfOracles;
|
166
181
|
$._riskService = IRiskService(_getServiceAddress(PRODUCT()));
|
167
182
|
$._applicationService = IApplicationService(_getServiceAddress(APPLICATION()));
|
168
183
|
$._policyService = IPolicyService(_getServiceAddress(POLICY()));
|
169
184
|
$._claimService = IClaimService(_getServiceAddress(CLAIM()));
|
170
185
|
$._pricingService = IPricingService(_getServiceAddress(PRICE()));
|
171
186
|
$._componentService = IComponentService(_getServiceAddress(COMPONENT()));
|
172
|
-
$._pool = Pool(pool);
|
173
|
-
$._distribution = Distribution(distribution);
|
174
|
-
$._poolNftId = getRegistry().getNftIdForAddress(pool);
|
175
|
-
$._distributionNftId = getRegistry().getNftIdForAddress(distribution);
|
176
187
|
|
177
|
-
|
188
|
+
_registerInterface(type(IProductComponent).interfaceId);
|
178
189
|
}
|
179
190
|
|
180
191
|
|
@@ -192,8 +203,11 @@ abstract contract Product is
|
|
192
203
|
function _createRisk(
|
193
204
|
RiskId id,
|
194
205
|
bytes memory data
|
195
|
-
)
|
196
|
-
|
206
|
+
)
|
207
|
+
internal
|
208
|
+
virtual
|
209
|
+
{
|
210
|
+
_getProductStorage()._riskService.createRisk(
|
197
211
|
id,
|
198
212
|
data
|
199
213
|
);
|
@@ -202,8 +216,11 @@ abstract contract Product is
|
|
202
216
|
function _updateRisk(
|
203
217
|
RiskId id,
|
204
218
|
bytes memory data
|
205
|
-
)
|
206
|
-
|
219
|
+
)
|
220
|
+
internal
|
221
|
+
virtual
|
222
|
+
{
|
223
|
+
_getProductStorage()._riskService.updateRisk(
|
207
224
|
id,
|
208
225
|
data
|
209
226
|
);
|
@@ -212,15 +229,18 @@ abstract contract Product is
|
|
212
229
|
function _updateRiskState(
|
213
230
|
RiskId id,
|
214
231
|
StateId state
|
215
|
-
)
|
216
|
-
|
232
|
+
)
|
233
|
+
internal
|
234
|
+
virtual
|
235
|
+
{
|
236
|
+
_getProductStorage()._riskService.updateRiskState(
|
217
237
|
id,
|
218
238
|
state
|
219
239
|
);
|
220
240
|
}
|
221
241
|
|
222
242
|
|
223
|
-
function _getRiskInfo(RiskId id) internal view returns (IRisk.RiskInfo memory info) {
|
243
|
+
function _getRiskInfo(RiskId id) internal virtual view returns (IRisk.RiskInfo memory info) {
|
224
244
|
return getInstance().getInstanceReader().getRiskInfo(id);
|
225
245
|
}
|
226
246
|
|
@@ -236,6 +256,7 @@ abstract contract Product is
|
|
236
256
|
bytes memory applicationData
|
237
257
|
)
|
238
258
|
internal
|
259
|
+
virtual
|
239
260
|
returns (NftId applicationNftId)
|
240
261
|
{
|
241
262
|
return _getProductStorage()._applicationService.create(
|
@@ -255,6 +276,7 @@ abstract contract Product is
|
|
255
276
|
Timestamp activateAt
|
256
277
|
)
|
257
278
|
internal
|
279
|
+
virtual
|
258
280
|
{
|
259
281
|
_getProductStorage()._policyService.createPolicy(
|
260
282
|
applicationNftId,
|
@@ -265,6 +287,7 @@ abstract contract Product is
|
|
265
287
|
NftId policyNftId
|
266
288
|
)
|
267
289
|
internal
|
290
|
+
virtual
|
268
291
|
{
|
269
292
|
_getProductStorage()._policyService.decline(
|
270
293
|
policyNftId);
|
@@ -275,6 +298,7 @@ abstract contract Product is
|
|
275
298
|
Timestamp expireAt
|
276
299
|
)
|
277
300
|
internal
|
301
|
+
virtual
|
278
302
|
returns (Timestamp expiredAt)
|
279
303
|
{
|
280
304
|
expiredAt = _getProductStorage()._policyService.expire(policyNftId, expireAt);
|
@@ -285,6 +309,7 @@ abstract contract Product is
|
|
285
309
|
Timestamp activateAt
|
286
310
|
)
|
287
311
|
internal
|
312
|
+
virtual
|
288
313
|
{
|
289
314
|
_getProductStorage()._policyService.collectPremium(
|
290
315
|
policyNftId,
|
@@ -296,6 +321,7 @@ abstract contract Product is
|
|
296
321
|
Timestamp activateAt
|
297
322
|
)
|
298
323
|
internal
|
324
|
+
virtual
|
299
325
|
{
|
300
326
|
_getProductStorage()._policyService.activate(
|
301
327
|
policyNftId,
|
@@ -306,6 +332,7 @@ abstract contract Product is
|
|
306
332
|
NftId policyNftId
|
307
333
|
)
|
308
334
|
internal
|
335
|
+
virtual
|
309
336
|
{
|
310
337
|
_getProductStorage()._policyService.close(
|
311
338
|
policyNftId);
|
@@ -317,6 +344,7 @@ abstract contract Product is
|
|
317
344
|
bytes memory claimData
|
318
345
|
)
|
319
346
|
internal
|
347
|
+
virtual
|
320
348
|
returns(ClaimId)
|
321
349
|
{
|
322
350
|
return _getProductStorage()._claimService.submit(
|
@@ -332,6 +360,7 @@ abstract contract Product is
|
|
332
360
|
bytes memory data
|
333
361
|
)
|
334
362
|
internal
|
363
|
+
virtual
|
335
364
|
{
|
336
365
|
_getProductStorage()._claimService.confirm(
|
337
366
|
policyNftId,
|
@@ -346,6 +375,7 @@ abstract contract Product is
|
|
346
375
|
bytes memory data
|
347
376
|
)
|
348
377
|
internal
|
378
|
+
virtual
|
349
379
|
{
|
350
380
|
_getProductStorage()._claimService.decline(
|
351
381
|
policyNftId,
|
@@ -358,6 +388,7 @@ abstract contract Product is
|
|
358
388
|
ClaimId claimId
|
359
389
|
)
|
360
390
|
internal
|
391
|
+
virtual
|
361
392
|
{
|
362
393
|
_getProductStorage()._claimService.close(
|
363
394
|
policyNftId,
|
@@ -371,6 +402,7 @@ abstract contract Product is
|
|
371
402
|
bytes memory data
|
372
403
|
)
|
373
404
|
internal
|
405
|
+
virtual
|
374
406
|
returns (PayoutId)
|
375
407
|
{
|
376
408
|
return _getProductStorage()._claimService.createPayout(
|
@@ -388,6 +420,7 @@ abstract contract Product is
|
|
388
420
|
bytes memory data
|
389
421
|
)
|
390
422
|
internal
|
423
|
+
virtual
|
391
424
|
returns (PayoutId)
|
392
425
|
{
|
393
426
|
return _getProductStorage()._claimService.createPayoutForBeneficiary(
|
@@ -403,23 +436,20 @@ abstract contract Product is
|
|
403
436
|
PayoutId payoutId
|
404
437
|
)
|
405
438
|
internal
|
439
|
+
virtual
|
406
440
|
{
|
407
441
|
_getProductStorage()._claimService.processPayout(
|
408
442
|
policyNftId,
|
409
443
|
payoutId);
|
410
444
|
}
|
411
445
|
|
412
|
-
function _toRiskId(string memory riskName) internal pure returns (RiskId riskId) {
|
446
|
+
function _toRiskId(string memory riskName) internal virtual pure returns (RiskId riskId) {
|
413
447
|
return RiskIdLib.toRiskId(riskName);
|
414
448
|
}
|
415
449
|
|
416
|
-
function _getProductStorage()
|
450
|
+
function _getProductStorage() internal virtual pure returns (ProductStorage storage $) {
|
417
451
|
assembly {
|
418
452
|
$.slot := PRODUCT_STORAGE_LOCATION_V1
|
419
453
|
}
|
420
454
|
}
|
421
|
-
|
422
|
-
function _getRiskService() internal view returns (IRiskService) {
|
423
|
-
return _getProductStorage()._riskService;
|
424
|
-
}
|
425
455
|
}
|
@@ -33,18 +33,17 @@ contract RiskService is
|
|
33
33
|
virtual override
|
34
34
|
{
|
35
35
|
(
|
36
|
-
address registryAddress
|
37
|
-
//address managerAddress
|
36
|
+
address registryAddress,
|
38
37
|
address authority
|
39
|
-
) = abi.decode(data, (address, address
|
38
|
+
) = abi.decode(data, (address, address));
|
40
39
|
|
41
|
-
|
40
|
+
_initializeService(registryAddress, authority, owner);
|
42
41
|
|
43
42
|
_instanceService = IInstanceService(_getServiceAddress(INSTANCE()));
|
44
43
|
_poolService = IPoolService(getRegistry().getServiceAddress(POOL(), getVersion().toMajorPart()));
|
45
44
|
_registryService = IRegistryService(_getServiceAddress(REGISTRY()));
|
46
45
|
|
47
|
-
|
46
|
+
_registerInterface(type(IRiskService).interfaceId);
|
48
47
|
}
|
49
48
|
|
50
49
|
|
@@ -12,14 +12,14 @@ contract RiskServiceManager is ProxyManager {
|
|
12
12
|
/// @dev initializes proxy manager with product service implementation
|
13
13
|
constructor(
|
14
14
|
address authority,
|
15
|
-
address
|
15
|
+
address registry,
|
16
16
|
bytes32 salt
|
17
17
|
)
|
18
|
-
ProxyManager(registryAddress)
|
19
18
|
{
|
20
19
|
RiskService svc = new RiskService{salt: salt}();
|
21
|
-
bytes memory data = abi.encode(
|
22
|
-
IVersionable versionable =
|
20
|
+
bytes memory data = abi.encode(registry, authority);
|
21
|
+
IVersionable versionable = initialize(
|
22
|
+
registry,
|
23
23
|
address(svc),
|
24
24
|
data,
|
25
25
|
salt);
|
@@ -8,6 +8,8 @@ import {ITransferInterceptor} from "./ITransferInterceptor.sol";
|
|
8
8
|
|
9
9
|
contract ChainNft is ERC721Enumerable {
|
10
10
|
|
11
|
+
event LogTokenInterceptorAddress(uint256 tokenId, address interceptor);
|
12
|
+
|
11
13
|
// constants
|
12
14
|
string public constant NAME = "Dezentralized Insurance Protocol NFT";
|
13
15
|
string public constant SYMBOL = "DIPNFT";
|
@@ -15,12 +17,11 @@ contract ChainNft is ERC721Enumerable {
|
|
15
17
|
uint256 public constant PROTOCOL_NFT_ID = 1101;
|
16
18
|
uint256 public constant GLOBAL_REGISTRY_ID = 2101;
|
17
19
|
|
18
|
-
// TODO rename errors to error pattern: CallerNotRegistry -> ErrorCallerNotRegistry etc.
|
19
20
|
// custom errors
|
20
|
-
error
|
21
|
-
error
|
22
|
-
error
|
23
|
-
error
|
21
|
+
error ErrorChainNftCallerNotRegistry(address caller);
|
22
|
+
error ErrorChainNftRegistryAddressZero();
|
23
|
+
error ErrorChainNftUriEmpty();
|
24
|
+
error ErrorChainNftUriAlreadySet();
|
24
25
|
|
25
26
|
// contract state
|
26
27
|
|
@@ -34,31 +35,25 @@ contract ChainNft is ERC721Enumerable {
|
|
34
35
|
address private _registry;
|
35
36
|
|
36
37
|
// only used for _getNextTokenId
|
37
|
-
uint256 internal _chainIdInt;
|
38
38
|
uint256 internal _chainIdDigits;
|
39
39
|
uint256 internal _chainIdMultiplier;
|
40
40
|
uint256 internal _idNext;
|
41
41
|
uint256 internal _totalMinted;
|
42
42
|
|
43
43
|
modifier onlyRegistry() {
|
44
|
-
if (msg.sender != _registry) { revert
|
44
|
+
if (msg.sender != _registry) { revert ErrorChainNftCallerNotRegistry(msg.sender); }
|
45
45
|
_;
|
46
46
|
}
|
47
47
|
|
48
|
-
constructor(address registry)
|
49
|
-
|
48
|
+
constructor(address registry)
|
49
|
+
ERC721(NAME, SYMBOL)
|
50
|
+
{
|
51
|
+
if (registry == address(0)) { revert ErrorChainNftRegistryAddressZero(); }
|
50
52
|
|
53
|
+
// NFT contract is deployed by the registry
|
51
54
|
_registry = registry;
|
52
|
-
_chainIdInt = block.chainid;
|
53
|
-
_chainIdDigits = 0;
|
54
|
-
|
55
|
-
// count digis
|
56
|
-
uint256 num = _chainIdInt;
|
57
|
-
while (num != 0) {
|
58
|
-
_chainIdDigits++;
|
59
|
-
num /= 10;
|
60
|
-
}
|
61
55
|
|
56
|
+
_chainIdDigits = _calculateChainIdDigits(block.chainid);
|
62
57
|
_chainIdMultiplier = 10 ** _chainIdDigits;
|
63
58
|
|
64
59
|
// the first object registered through normal registration starts with id 4
|
@@ -74,12 +69,16 @@ contract ChainNft is ERC721Enumerable {
|
|
74
69
|
* not part of the IRegistry interface only needed for
|
75
70
|
* initial registry setup (protocol and global registry objects)
|
76
71
|
*/
|
77
|
-
function mint(
|
78
|
-
|
79
|
-
|
72
|
+
function mint(
|
73
|
+
address to,
|
74
|
+
uint256 tokenId
|
75
|
+
)
|
76
|
+
external
|
77
|
+
onlyRegistry()
|
78
|
+
{
|
79
|
+
_safeMintWithInterceptorAddress(to, tokenId, address(0));
|
80
80
|
}
|
81
81
|
|
82
|
-
|
83
82
|
/**
|
84
83
|
* @dev mints the next token to register new objects
|
85
84
|
* non-zero transferInterceptors are recorded and called during nft token transfers.
|
@@ -89,7 +88,11 @@ contract ChainNft is ERC721Enumerable {
|
|
89
88
|
address to,
|
90
89
|
address interceptor,
|
91
90
|
string memory uri
|
92
|
-
)
|
91
|
+
)
|
92
|
+
public
|
93
|
+
onlyRegistry()
|
94
|
+
returns (uint256 tokenId)
|
95
|
+
{
|
93
96
|
tokenId = _getNextTokenId();
|
94
97
|
|
95
98
|
if (interceptor != address(0)) {
|
@@ -100,12 +103,7 @@ contract ChainNft is ERC721Enumerable {
|
|
100
103
|
_uri[tokenId] = uri;
|
101
104
|
}
|
102
105
|
|
103
|
-
|
104
|
-
_safeMint(to, tokenId);
|
105
|
-
|
106
|
-
if(interceptor != address(0)) {
|
107
|
-
ITransferInterceptor(interceptor).nftMint(to, tokenId);
|
108
|
-
}
|
106
|
+
_safeMintWithInterceptorAddress(to, tokenId, interceptor);
|
109
107
|
}
|
110
108
|
|
111
109
|
|
@@ -132,8 +130,8 @@ contract ChainNft is ERC721Enumerable {
|
|
132
130
|
uint256 tokenId,
|
133
131
|
string memory uri
|
134
132
|
) external onlyRegistry {
|
135
|
-
if (bytes(uri).length == 0) { revert
|
136
|
-
if (bytes(_uri[tokenId]).length > 0) { revert
|
133
|
+
if (bytes(uri).length == 0) { revert ErrorChainNftUriEmpty(); }
|
134
|
+
if (bytes(_uri[tokenId]).length > 0) { revert ErrorChainNftUriAlreadySet(); }
|
137
135
|
|
138
136
|
_requireOwned(tokenId);
|
139
137
|
_uri[tokenId] = uri;
|
@@ -199,19 +197,50 @@ contract ChainNft is ERC721Enumerable {
|
|
199
197
|
* (42 * 10 ** 10 + 9876543210) * 100 + 10
|
200
198
|
* (index * 10 ** digits + chainid) * 100 + digits (1 < digits < 100)
|
201
199
|
*/
|
202
|
-
function calculateTokenId(uint256 idIndex) public view returns (uint256 id) {
|
203
|
-
|
204
|
-
(idIndex * _chainIdMultiplier +
|
205
|
-
|
206
|
-
|
200
|
+
function calculateTokenId(uint256 idIndex, uint256 chainId) public view returns (uint256 id) {
|
201
|
+
if(chainId == block.chainid) {
|
202
|
+
return 100 * (idIndex * _chainIdMultiplier + chainId) + _chainIdDigits;
|
203
|
+
} else {
|
204
|
+
uint256 chainIdDigits = _calculateChainIdDigits(chainId);
|
205
|
+
return 100 * (idIndex * (10 ** chainIdDigits) + chainId) + chainIdDigits;
|
206
|
+
}
|
207
|
+
}
|
208
|
+
|
209
|
+
function calculateTokenId(uint256 idIndex) public view returns (uint256) {
|
210
|
+
return 100 * (idIndex * _chainIdMultiplier + block.chainid) + _chainIdDigits;
|
207
211
|
}
|
208
212
|
|
209
213
|
function getNextTokenId() external view returns (uint256) {
|
210
214
|
return calculateTokenId(_idNext);
|
211
215
|
}
|
212
216
|
|
217
|
+
// ---------------- private functions ----------------- //
|
218
|
+
|
213
219
|
function _getNextTokenId() private returns (uint256 id) {
|
214
220
|
id = calculateTokenId(_idNext);
|
215
221
|
_idNext++;
|
216
222
|
}
|
223
|
+
|
224
|
+
function _calculateChainIdDigits(uint256 chainId) private pure returns (uint256) {
|
225
|
+
uint256 num = chainId;
|
226
|
+
uint256 digits = 0;
|
227
|
+
while (num != 0) {
|
228
|
+
digits++;
|
229
|
+
num /= 10;
|
230
|
+
}
|
231
|
+
return digits;
|
232
|
+
}
|
233
|
+
|
234
|
+
function _safeMintWithInterceptorAddress(
|
235
|
+
address to,
|
236
|
+
uint256 tokenId,
|
237
|
+
address interceptor
|
238
|
+
)
|
239
|
+
private
|
240
|
+
{
|
241
|
+
_totalMinted++;
|
242
|
+
_safeMint(to, tokenId);
|
243
|
+
|
244
|
+
emit LogTokenInterceptorAddress(tokenId, interceptor);
|
245
|
+
}
|
217
246
|
}
|