@etherisc/gif-next 0.0.2-cfc7167-648 → 0.0.2-cff7366-494
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 +32 -8
- 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/AccessAdmin.sol/IAccessManagedChecker.dbg.json +4 -0
- package/artifacts/contracts/authorization/AccessAdmin.sol/IAccessManagedChecker.json +24 -0
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +1 -1
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +67 -11
- package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +1 -1
- package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +1 -1
- package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.json +60 -32
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +40 -3
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +19 -0
- package/artifacts/contracts/authorization/ReleaseAccessManager.sol/ReleaseAccessManager.dbg.json +4 -0
- package/artifacts/contracts/authorization/ReleaseAccessManager.sol/ReleaseAccessManager.json +1196 -0
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +68 -5
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +159 -367
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +1 -1
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +82 -22
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +99 -291
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +227 -290
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +125 -117
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +89 -129
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +101 -31
- 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 +1415 -0
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +502 -0
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +1965 -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 +1429 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +1163 -0
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +1592 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +2267 -0
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +1 -1
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +147 -42
- package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstance.sol/IInstance.json +116 -48
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +53 -101
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +141 -141
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +197 -139
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +58 -85
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +726 -133
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +118 -260
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +99 -87
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +337 -138
- package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +4 -0
- package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +810 -0
- package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +2 -2
- package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +2 -2
- package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +46 -5
- package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +2 -2
- package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
- package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +1 -1
- package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +1 -1
- package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +111 -319
- 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 +77 -117
- 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 +87 -279
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +147 -191
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +119 -83
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +106 -298
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +114 -22
- package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleService.sol/BundleService.json +146 -307
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +111 -119
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +48 -33
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +98 -149
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +283 -180
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
- package/artifacts/contracts/pool/Pool.sol/Pool.json +106 -309
- package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolService.sol/PoolService.json +382 -407
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +123 -99
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +119 -165
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +93 -85
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +149 -295
- 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 +282 -229
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +132 -108
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +63 -7
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +161 -7
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +179 -35
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +114 -85
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +136 -130
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +4 -0
- package/artifacts/contracts/product/{IProductService.sol/IProductService.json → IRiskService.sol/IRiskService.json} +31 -2
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +281 -323
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +123 -119
- package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
- package/artifacts/contracts/product/PricingService.sol/PricingService.json +215 -309
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +117 -117
- package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
- package/artifacts/contracts/product/Product.sol/Product.json +147 -293
- package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +4 -0
- package/artifacts/contracts/product/RiskService.sol/RiskService.json +638 -0
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +718 -0
- 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 +310 -34
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +114 -35
- package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
- package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +5 -18
- package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
- package/artifacts/contracts/registry/Registry.sol/Registry.json +516 -95
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +296 -143
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +94 -284
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +91 -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 +131 -223
- 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 +76 -239
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +492 -335
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +143 -117
- 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 +488 -0
- package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +4 -0
- package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.json +24 -0
- package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +4 -0
- package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.json +30 -0
- package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponent.sol/IComponent.json +66 -77
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +467 -33
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +77 -117
- 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 +87 -279
- 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 +674 -49
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +4 -0
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +395 -0
- package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +4 -0
- package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +172 -0
- package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
- package/artifacts/contracts/staking/IStaking.sol/IStaking.json +111 -114
- 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 +63 -93
- package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
- package/artifacts/contracts/staking/Staking.sol/Staking.json +193 -368
- 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 +117 -110
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +6 -11
- package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingService.sol/StakingService.json +87 -165
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +95 -79
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +169 -128
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +54 -23
- 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/Key32Set.sol/LibKey32Set.dbg.json +4 -0
- package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.json +33 -0
- package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/NftId.sol/NftIdLib.json +23 -4
- package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
- package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +2 -2
- package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
- package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +2 -2
- package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +19 -19
- package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
- package/artifacts/contracts/type/Referral.sol/ReferralLib.json +2 -2
- package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +2 -2
- package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +99 -5
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +2 -2
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +26 -2
- 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/Timestamp.sol/TimestampLib.json +2 -2
- 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 +71 -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 +83 -58
- package/contracts/authorization/Authorization.sol +111 -40
- 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 +4 -3
- package/contracts/distribution/BasicDistributionAuthorization.sol +1 -1
- package/contracts/distribution/Distribution.sol +12 -23
- package/contracts/distribution/DistributionService.sol +97 -66
- package/contracts/distribution/DistributionServiceManager.sol +6 -6
- package/contracts/distribution/IDistributionComponent.sol +1 -1
- package/contracts/distribution/IDistributionService.sol +13 -8
- package/contracts/examples/fire/DamageLevel.sol +59 -0
- package/contracts/examples/fire/FirePool.sol +86 -0
- package/contracts/examples/fire/FirePoolAuthorization.sol +34 -0
- package/contracts/examples/fire/FireProduct.sol +431 -0
- package/contracts/examples/fire/FireProductAuthorization.sol +44 -0
- package/contracts/examples/fire/FireUSD.sol +26 -0
- package/contracts/examples/unpermissioned/SimpleDistribution.sol +65 -0
- package/contracts/examples/unpermissioned/SimpleOracle.sol +137 -0
- package/contracts/examples/unpermissioned/SimplePool.sol +108 -0
- package/contracts/examples/unpermissioned/SimpleProduct.sol +345 -0
- package/contracts/instance/BundleSet.sol +38 -34
- package/contracts/instance/IInstance.sol +16 -31
- package/contracts/instance/IInstanceService.sol +7 -29
- package/contracts/instance/Instance.sol +44 -59
- package/contracts/instance/InstanceAdmin.sol +58 -39
- package/contracts/instance/InstanceAuthorizationV3.sol +43 -29
- package/contracts/instance/InstanceReader.sol +190 -19
- package/contracts/instance/InstanceService.sol +61 -137
- package/contracts/instance/InstanceServiceManager.sol +6 -7
- package/contracts/instance/InstanceStore.sol +11 -1
- package/contracts/instance/RiskSet.sol +119 -0
- package/contracts/instance/base/ObjectLifecycle.sol +7 -1
- package/contracts/instance/base/ObjectSet.sol +24 -25
- package/contracts/instance/module/IComponents.sol +10 -6
- package/contracts/instance/module/IPolicy.sol +25 -24
- package/contracts/instance/module/IRisk.sol +1 -0
- package/contracts/oracle/BasicOracle.sol +0 -1
- package/contracts/oracle/IOracleService.sol +2 -1
- package/contracts/oracle/Oracle.sol +6 -16
- package/contracts/oracle/OracleService.sol +112 -81
- package/contracts/oracle/OracleServiceManager.sol +6 -6
- package/contracts/pool/BasicPool.sol +33 -24
- package/contracts/pool/BasicPoolAuthorization.sol +12 -2
- package/contracts/pool/BundleService.sol +69 -83
- package/contracts/pool/BundleServiceManager.sol +6 -6
- package/contracts/pool/IBundleService.sol +3 -14
- package/contracts/pool/IPoolComponent.sol +19 -15
- package/contracts/pool/IPoolService.sol +48 -42
- package/contracts/pool/Pool.sol +144 -127
- package/contracts/pool/PoolService.sol +277 -189
- package/contracts/pool/PoolServiceManager.sol +4 -4
- package/contracts/product/ApplicationService.sol +34 -25
- package/contracts/product/ApplicationServiceManager.sol +4 -4
- package/contracts/product/BasicProduct.sol +9 -12
- package/contracts/product/BasicProductAuthorization.sol +0 -1
- package/contracts/product/ClaimService.sol +312 -115
- package/contracts/product/ClaimServiceManager.sol +4 -4
- package/contracts/product/IApplicationService.sol +5 -2
- package/contracts/product/IClaimService.sol +30 -7
- package/contracts/product/IPolicyService.sol +31 -25
- package/contracts/product/IPricingService.sol +10 -10
- package/contracts/product/IProductComponent.sol +23 -4
- package/contracts/product/{IProductService.sol → IRiskService.sol} +1 -1
- package/contracts/product/PolicyService.sol +399 -261
- package/contracts/product/PolicyServiceManager.sol +4 -4
- package/contracts/product/PricingService.sol +49 -53
- package/contracts/product/PricingServiceManager.sol +3 -3
- package/contracts/product/Product.sol +101 -87
- package/contracts/product/{ProductService.sol → RiskService.sol} +21 -13
- package/contracts/product/RiskServiceManager.sol +39 -0
- package/contracts/registry/ChainNft.sol +68 -38
- package/contracts/registry/IRegistry.sol +57 -18
- package/contracts/registry/IRegistryService.sol +5 -12
- package/contracts/registry/ITransferInterceptor.sol +1 -2
- package/contracts/registry/Registry.sol +350 -201
- package/contracts/registry/RegistryAdmin.sol +140 -54
- 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 +204 -204
- package/contracts/registry/ServiceAuthorizationV3.sol +23 -47
- package/contracts/shared/Component.sol +60 -119
- package/contracts/shared/ComponentService.sol +393 -167
- package/contracts/shared/ComponentServiceManager.sol +8 -5
- package/contracts/shared/ComponentVerifyingService.sol +28 -17
- package/contracts/shared/ContractLib.sol +224 -0
- package/contracts/shared/IComponent.sol +10 -14
- package/contracts/shared/IComponentService.sol +44 -18
- package/contracts/shared/IInstanceLinkedComponent.sol +2 -28
- 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 -46
- package/contracts/shared/KeyValueStore.sol +1 -1
- package/contracts/shared/Lifecycle.sol +15 -4
- package/contracts/shared/NftOwnable.sol +27 -7
- package/contracts/shared/PolicyHolder.sol +15 -52
- package/contracts/shared/Registerable.sol +19 -11
- package/contracts/shared/RegistryLinked.sol +9 -14
- package/contracts/shared/Service.sol +20 -18
- package/contracts/shared/TokenHandler.sol +357 -30
- package/contracts/shared/TokenHandlerDeployerLib.sol +20 -0
- package/contracts/staking/IStaking.sol +11 -5
- package/contracts/staking/IStakingService.sol +0 -3
- package/contracts/staking/StakeManagerLib.sol +18 -25
- package/contracts/staking/Staking.sol +39 -50
- package/contracts/staking/StakingManager.sol +8 -6
- package/contracts/staking/StakingReader.sol +12 -5
- package/contracts/staking/StakingService.sol +58 -25
- package/contracts/staking/StakingServiceManager.sol +2 -2
- package/contracts/staking/TargetManagerLib.sol +7 -3
- package/contracts/type/Amount.sol +15 -0
- package/contracts/type/ClaimId.sol +6 -1
- package/contracts/type/Key32.sol +2 -2
- package/contracts/type/Key32Set.sol +62 -0
- package/contracts/type/NftId.sol +7 -0
- package/contracts/type/ObjectType.sol +18 -11
- package/contracts/type/PayoutId.sol +10 -10
- package/contracts/type/RiskId.sol +30 -4
- package/contracts/type/RoleId.sol +0 -12
- package/contracts/type/Seconds.sol +8 -0
- package/contracts/type/StateId.sol +15 -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 +4 -3
- package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.dbg.json +0 -4
- package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.json +0 -290
- package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.dbg.json +0 -4
- package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.json +0 -390
- package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +0 -4
- package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +0 -4
- package/artifacts/contracts/product/ProductService.sol/ProductService.json +0 -708
- package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
- package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +0 -702
- package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.dbg.json +0 -4
- package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.json +0 -39
- package/artifacts/contracts/shared/TokenTransferLib.sol/TokenTransferLib.dbg.json +0 -4
- package/artifacts/contracts/shared/TokenTransferLib.sol/TokenTransferLib.json +0 -42
- package/contracts/authorization/IModuleAuthorization.sol +0 -21
- package/contracts/authorization/ModuleAuthorization.sol +0 -78
- package/contracts/product/ProductServiceManager.sol +0 -39
- package/contracts/shared/InitializableCustom.sol +0 -177
- package/contracts/shared/TokenTransferLib.sol +0 -60
@@ -4,22 +4,21 @@ pragma solidity ^0.8.20;
|
|
4
4
|
import {Cloneable} from "./Cloneable.sol";
|
5
5
|
|
6
6
|
import {IInstance} from "../IInstance.sol";
|
7
|
-
import {
|
8
|
-
import {InstanceReader} from "../InstanceReader.sol";
|
9
|
-
import {IRegistry} from "../../registry/IRegistry.sol";
|
10
|
-
import {LibNftIdSet} from "../../type/NftIdSet.sol";
|
7
|
+
import {LibKey32Set} from "../../type/Key32Set.sol";
|
11
8
|
import {NftId} from "../../type/NftId.sol";
|
9
|
+
import {Key32} from "../../type/Key32.sol";
|
12
10
|
|
13
11
|
contract ObjectSet is
|
14
12
|
Cloneable
|
15
13
|
{
|
14
|
+
using LibKey32Set for LibKey32Set.Set;
|
16
15
|
|
17
16
|
event LogObjectSetInitialized(address instance);
|
18
17
|
|
19
18
|
error ErrorObjectSetNftIdInvalid(NftId instanceNftId);
|
20
19
|
|
21
|
-
mapping(NftId compnentNftId =>
|
22
|
-
mapping(NftId compnentNftId =>
|
20
|
+
mapping(NftId compnentNftId => LibKey32Set.Set objects) internal _activeObjects;
|
21
|
+
mapping(NftId compnentNftId => LibKey32Set.Set objects) internal _allObjects;
|
23
22
|
IInstance internal _instance; // store instance address -> more flexible, instance may not be registered during ObjectSet initialization
|
24
23
|
|
25
24
|
/// @dev This initializer needs to be called from the instance itself.
|
@@ -37,43 +36,43 @@ contract ObjectSet is
|
|
37
36
|
return _instance;
|
38
37
|
}
|
39
38
|
|
40
|
-
function _add(NftId componentNftId,
|
41
|
-
|
42
|
-
|
39
|
+
function _add(NftId componentNftId, Key32 key) internal {
|
40
|
+
LibKey32Set.Set storage allSet = _allObjects[componentNftId];
|
41
|
+
LibKey32Set.Set storage activeSet = _activeObjects[componentNftId];
|
43
42
|
|
44
|
-
|
45
|
-
|
43
|
+
allSet.add(key);
|
44
|
+
activeSet.add(key);
|
46
45
|
}
|
47
46
|
|
48
|
-
function _activate(NftId componentNftId,
|
49
|
-
|
47
|
+
function _activate(NftId componentNftId, Key32 key) internal {
|
48
|
+
_activeObjects[componentNftId].add(key);
|
50
49
|
}
|
51
50
|
|
52
|
-
function _deactivate(NftId componentNftId,
|
53
|
-
|
51
|
+
function _deactivate(NftId componentNftId, Key32 key) internal {
|
52
|
+
_activeObjects[componentNftId].remove(key);
|
54
53
|
}
|
55
54
|
|
56
55
|
function _objects(NftId componentNftId) internal view returns (uint256) {
|
57
|
-
return
|
56
|
+
return _allObjects[componentNftId].size();
|
58
57
|
}
|
59
58
|
|
60
|
-
function _contains(NftId componentNftId,
|
61
|
-
return
|
59
|
+
function _contains(NftId componentNftId, Key32 key) internal view returns (bool) {
|
60
|
+
return _allObjects[componentNftId].contains(key);
|
62
61
|
}
|
63
62
|
|
64
|
-
function _getObject(NftId componentNftId, uint256 idx) internal view returns (
|
65
|
-
return
|
63
|
+
function _getObject(NftId componentNftId, uint256 idx) internal view returns (Key32) {
|
64
|
+
return _allObjects[componentNftId].getElementAt(idx);
|
66
65
|
}
|
67
66
|
|
68
67
|
function _activeObjs(NftId componentNftId) internal view returns (uint256) {
|
69
|
-
return
|
68
|
+
return _activeObjects[componentNftId].size();
|
70
69
|
}
|
71
70
|
|
72
|
-
function _isActive(NftId componentNftId,
|
73
|
-
return
|
71
|
+
function _isActive(NftId componentNftId, Key32 key) internal view returns (bool) {
|
72
|
+
return _activeObjects[componentNftId].contains(key);
|
74
73
|
}
|
75
74
|
|
76
|
-
function _getActiveObject(NftId componentNftId, uint256 idx) internal view returns (
|
77
|
-
return
|
75
|
+
function _getActiveObject(NftId componentNftId, uint256 idx) internal view returns (Key32) {
|
76
|
+
return _activeObjects[componentNftId].getElementAt(idx);
|
78
77
|
}
|
79
78
|
}
|
@@ -14,16 +14,20 @@ interface IComponents {
|
|
14
14
|
|
15
15
|
struct ComponentInfo {
|
16
16
|
string name; // component name (needs to be unique per instance)
|
17
|
-
NftId productNftId;
|
18
17
|
IERC20Metadata token;
|
19
18
|
TokenHandler tokenHandler;
|
20
|
-
address wallet;
|
21
19
|
bytes data; // will hold component type specific additional info (eg encoded pool info)
|
22
20
|
}
|
23
21
|
|
24
22
|
struct ProductInfo {
|
25
|
-
|
26
|
-
|
23
|
+
bool isProcessingFundedClaims; // custom logic to react to pool events for funded claims
|
24
|
+
bool isInterceptingPolicyTransfers; // custom logic for policy nft transfers
|
25
|
+
bool hasDistribution; // flag to indicate if distribution is enabled
|
26
|
+
uint8 expectedNumberOfOracles; // expected number of oracles
|
27
|
+
uint8 numberOfOracles; // actual number of oracles
|
28
|
+
NftId poolNftId; // mandatory
|
29
|
+
NftId distributionNftId; // 0..1 (optional)
|
30
|
+
NftId [] oracleNftId; // 0..n (optional)
|
27
31
|
Fee productFee; // product fee on net premium
|
28
32
|
Fee processingFee; // product fee on payout amounts
|
29
33
|
Fee distributionFee; // distribution fee for sales that do not include commissions
|
@@ -35,9 +39,9 @@ interface IComponents {
|
|
35
39
|
|
36
40
|
|
37
41
|
struct PoolInfo {
|
38
|
-
RoleId bundleOwnerRole; // the required role for bundle owners
|
39
42
|
Amount maxBalanceAmount; // max balance amount allowed for pool
|
40
|
-
bool isInterceptingBundleTransfers; //
|
43
|
+
bool isInterceptingBundleTransfers; // custom logic for bundle nft transfers
|
44
|
+
bool isProcessingConfirmedClaims; // custom logic for claims confirmation
|
41
45
|
bool isExternallyManaged; // funding bundles is restricted to book keeping, actual funds may be provided as needed to support payouts
|
42
46
|
bool isVerifyingApplications; // underwriting requires the pool component checks/confirms the applications
|
43
47
|
UFixed collateralizationLevel; // factor to calculate collateral for sum insurance (default 100%)
|
@@ -11,7 +11,7 @@ import {Timestamp} from "../../type/Timestamp.sol";
|
|
11
11
|
|
12
12
|
interface IPolicy {
|
13
13
|
|
14
|
-
struct
|
14
|
+
struct PremiumInfo {
|
15
15
|
// premium splitting per target wallet
|
16
16
|
Amount productFeeAmount;
|
17
17
|
Amount distributionFeeAndCommissionAmount;
|
@@ -19,40 +19,40 @@ interface IPolicy {
|
|
19
19
|
|
20
20
|
// detailed positions
|
21
21
|
// this is the net premium calculated by the product
|
22
|
-
|
22
|
+
Amount netPremiumAmount;
|
23
23
|
// fullPremium = netPremium + all fixed amounts + all variable amounts (excl commission and minDistribtuionOwnerFee variable part)
|
24
|
-
|
24
|
+
Amount fullPremiumAmount;
|
25
25
|
// effective premium = fullPremium - discount
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
26
|
+
Amount premiumAmount;
|
27
|
+
Amount productFeeFixAmount;
|
28
|
+
Amount poolFeeFixAmount;
|
29
|
+
Amount bundleFeeFixAmount;
|
30
|
+
Amount distributionFeeFixAmount;
|
31
|
+
Amount productFeeVarAmount;
|
32
|
+
Amount poolFeeVarAmount;
|
33
|
+
Amount bundleFeeVarAmount;
|
34
|
+
Amount distributionFeeVarAmount;
|
35
|
+
Amount distributionOwnerFeeFixAmount;
|
36
36
|
// this is the remaining amount when the commission and discount are subtracted from the distribution fee variable part (must be at least the minDistributionOwnerFee)
|
37
|
-
|
37
|
+
Amount distributionOwnerFeeVarAmount;
|
38
38
|
// this value is based on distributor type referenced in the referral
|
39
|
-
|
39
|
+
Amount commissionAmount;
|
40
40
|
// this is based on referral used
|
41
|
-
|
41
|
+
Amount discountAmount;
|
42
42
|
}
|
43
43
|
|
44
44
|
/// @dev policy data for the full policy lifecycle
|
45
45
|
struct PolicyInfo {
|
46
|
+
// application data, no changes after applying for a policy
|
46
47
|
NftId productNftId;
|
47
48
|
NftId bundleNftId;
|
48
49
|
ReferralId referralId;
|
49
50
|
RiskId riskId;
|
50
51
|
Amount sumInsuredAmount;
|
51
52
|
Amount premiumAmount; // expected premium at application time
|
52
|
-
Amount premiumPaidAmount; // actual paid premium
|
53
53
|
Seconds lifetime;
|
54
|
-
// policy application data, no changes after applying for a policy
|
55
54
|
bytes applicationData;
|
55
|
+
// policy data that may change during the lifecycle
|
56
56
|
bytes processData;
|
57
57
|
uint16 claimsCount;
|
58
58
|
uint16 openClaimsCount;
|
@@ -67,10 +67,10 @@ interface IPolicy {
|
|
67
67
|
struct ClaimInfo {
|
68
68
|
Amount claimAmount;
|
69
69
|
Amount paidAmount;
|
70
|
-
|
71
|
-
|
72
|
-
bytes submissionData; // claim submission data, no changes after submitting the claim
|
73
|
-
bytes processData; // data that may include information supporting confirm or decline
|
70
|
+
uint24 payoutsCount;
|
71
|
+
uint24 openPayoutsCount;
|
72
|
+
bytes submissionData; // use case specific claim submission data, no changes after submitting the claim
|
73
|
+
bytes processData; // use case specific data that may include information supporting confirm or decline
|
74
74
|
Timestamp closedAt; // payment of confirmed claim amount (or declinedAt)
|
75
75
|
}
|
76
76
|
|
@@ -78,7 +78,8 @@ interface IPolicy {
|
|
78
78
|
struct PayoutInfo {
|
79
79
|
ClaimId claimId;
|
80
80
|
Amount amount;
|
81
|
-
|
82
|
-
|
81
|
+
address beneficiary; // for address(0) beneficiary is policy nft owner
|
82
|
+
bytes data; // use case specific supporting data
|
83
|
+
Timestamp paidAt; // timestamp for actual payout
|
83
84
|
}
|
84
85
|
}
|
@@ -3,6 +3,7 @@ pragma solidity ^0.8.20;
|
|
3
3
|
|
4
4
|
import {IService} from "../shared/IService.sol";
|
5
5
|
import {NftId} from "../type/NftId.sol";
|
6
|
+
import {ObjectType} from "../type/ObjectType.sol";
|
6
7
|
import {RequestId} from "../type/RequestId.sol";
|
7
8
|
import {StateId} from "../type/StateId.sol";
|
8
9
|
import {Timestamp} from "../type/Timestamp.sol";
|
@@ -17,7 +18,7 @@ interface IOracleService is IService {
|
|
17
18
|
event LogOracleServiceRequestCancelled(RequestId requestId, NftId requesterNftId);
|
18
19
|
|
19
20
|
// create request
|
20
|
-
error
|
21
|
+
error ErrorOracleServiceProductMismatch(ObjectType callerObjectType, NftId productNft, NftId oracleParentNftId);
|
21
22
|
error ErrorOracleServiceExpiryInThePast(Timestamp blockTimestamp, Timestamp expiryAt);
|
22
23
|
error ErrorOracleServiceCallbackMethodNameEmpty();
|
23
24
|
|
@@ -2,7 +2,7 @@
|
|
2
2
|
pragma solidity ^0.8.20;
|
3
3
|
|
4
4
|
import {Amount} from "../type/Amount.sol";
|
5
|
-
import {COMPONENT, ORACLE} from "../type/ObjectType.sol";
|
5
|
+
import {COMPONENT, PRODUCT, ORACLE} from "../type/ObjectType.sol";
|
6
6
|
import {IAuthorization} from "../authorization/IAuthorization.sol";
|
7
7
|
import {IComponentService} from "../shared/IComponentService.sol";
|
8
8
|
import {IInstanceLinkedComponent} from "../shared/IInstanceLinkedComponent.sol";
|
@@ -27,15 +27,6 @@ abstract contract Oracle is
|
|
27
27
|
}
|
28
28
|
|
29
29
|
|
30
|
-
function register()
|
31
|
-
external
|
32
|
-
virtual
|
33
|
-
onlyOwner()
|
34
|
-
{
|
35
|
-
_getOracleStorage()._componentService.registerOracle();
|
36
|
-
}
|
37
|
-
|
38
|
-
|
39
30
|
function request(
|
40
31
|
RequestId requestId,
|
41
32
|
NftId requesterId,
|
@@ -71,6 +62,7 @@ abstract contract Oracle is
|
|
71
62
|
return false;
|
72
63
|
}
|
73
64
|
|
65
|
+
/// @dev Not relevant for oracle components
|
74
66
|
function withdrawFees(Amount amount)
|
75
67
|
external
|
76
68
|
virtual
|
@@ -85,12 +77,11 @@ abstract contract Oracle is
|
|
85
77
|
|
86
78
|
function _initializeOracle(
|
87
79
|
address registry,
|
88
|
-
NftId
|
80
|
+
NftId productNftId,
|
89
81
|
IAuthorization authorization,
|
90
82
|
address initialOwner,
|
91
83
|
string memory name,
|
92
84
|
address token,
|
93
|
-
bytes memory registryData, // writeonly data that will saved in the object info record of the registry
|
94
85
|
bytes memory componentData // component specifidc data
|
95
86
|
)
|
96
87
|
internal
|
@@ -99,21 +90,20 @@ abstract contract Oracle is
|
|
99
90
|
{
|
100
91
|
_initializeInstanceLinkedComponent(
|
101
92
|
registry,
|
102
|
-
|
93
|
+
productNftId,
|
103
94
|
name,
|
104
95
|
token,
|
105
96
|
ORACLE(),
|
106
97
|
authorization,
|
107
98
|
true,
|
108
99
|
initialOwner,
|
109
|
-
registryData,
|
110
100
|
componentData);
|
111
101
|
|
112
102
|
OracleStorage storage $ = _getOracleStorage();
|
113
|
-
$._oracleService = IOracleService(_getServiceAddress(ORACLE()));
|
114
103
|
$._componentService = IComponentService(_getServiceAddress(COMPONENT()));
|
104
|
+
$._oracleService = IOracleService(_getServiceAddress(ORACLE()));
|
115
105
|
|
116
|
-
|
106
|
+
_registerInterface(type(IOracleComponent).interfaceId);
|
117
107
|
}
|
118
108
|
|
119
109
|
|
@@ -1,7 +1,7 @@
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
2
2
|
pragma solidity ^0.8.20;
|
3
3
|
|
4
|
-
import {
|
4
|
+
import {ContractLib} from "../shared/ContractLib.sol";
|
5
5
|
import {IComponent} from "../shared/IComponent.sol";
|
6
6
|
import {IInstance} from "../instance/IInstance.sol";
|
7
7
|
import {IInstanceService} from "../instance/IInstanceService.sol";
|
@@ -11,14 +11,15 @@ import {IOracleComponent} from "./IOracleComponent.sol";
|
|
11
11
|
import {IOracleService} from "./IOracleService.sol";
|
12
12
|
import {IRegistry} from "../registry/IRegistry.sol";
|
13
13
|
import {NftId} from "../type/NftId.sol";
|
14
|
-
import {ObjectType, COMPONENT, ORACLE,
|
14
|
+
import {ObjectType, COMPONENT, ORACLE, PRODUCT} from "../type/ObjectType.sol";
|
15
15
|
import {RequestId} from "../type/RequestId.sol";
|
16
|
+
import {Service} from "../shared/Service.sol";
|
16
17
|
import {StateId, ACTIVE, KEEP_STATE, FULFILLED, FAILED, CANCELLED} from "../type/StateId.sol";
|
17
18
|
import {Timestamp, TimestampLib} from "../type/Timestamp.sol";
|
18
19
|
|
19
20
|
|
20
21
|
contract OracleService is
|
21
|
-
|
22
|
+
Service,
|
22
23
|
IOracleService
|
23
24
|
{
|
24
25
|
|
@@ -27,14 +28,16 @@ contract OracleService is
|
|
27
28
|
bytes memory data
|
28
29
|
)
|
29
30
|
internal
|
30
|
-
initializer
|
31
31
|
virtual override
|
32
|
+
initializer()
|
32
33
|
{
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
34
|
+
(
|
35
|
+
address registryAddress,
|
36
|
+
address authority
|
37
|
+
) = abi.decode(data, (address, address));
|
38
|
+
|
39
|
+
_initializeService(registryAddress, authority, owner);
|
40
|
+
_registerInterface(type(IOracleService).interfaceId);
|
38
41
|
}
|
39
42
|
|
40
43
|
function request(
|
@@ -46,62 +49,49 @@ contract OracleService is
|
|
46
49
|
external
|
47
50
|
virtual
|
48
51
|
// restricted() // add authz
|
49
|
-
|
50
|
-
|
51
|
-
)
|
52
|
+
onlyNftOfType(oracleNftId, ORACLE())
|
53
|
+
returns (RequestId requestId)
|
52
54
|
{
|
53
|
-
(
|
54
|
-
NftId componentNftId,
|
55
|
-
IRegistry.ObjectInfo memory componentInfo,
|
56
|
-
IInstance instance
|
57
|
-
) = _getAndVerifyActiveComponent(COMPONENT());
|
55
|
+
// IRegistry registry = getRegistry();
|
58
56
|
|
59
|
-
//
|
57
|
+
// get and check active caller
|
60
58
|
(
|
61
|
-
IRegistry.ObjectInfo memory
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
true); // only active
|
66
|
-
|
67
|
-
// check that requester and oracle share same instance
|
68
|
-
if (componentInfo.parentNftId != oracleInfo.parentNftId) {
|
69
|
-
revert ErrorOracleServiceInstanceMismatch(componentInfo.parentNftId, oracleInfo.parentNftId);
|
70
|
-
}
|
59
|
+
IRegistry.ObjectInfo memory info,
|
60
|
+
address instance
|
61
|
+
) = ContractLib.getAndVerifyAnyComponent(
|
62
|
+
getRegistry(), msg.sender, true);
|
71
63
|
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
64
|
+
(
|
65
|
+
NftId requesterNftId,
|
66
|
+
IOracleComponent oracle
|
67
|
+
) = _checkRequestParams(
|
68
|
+
getRegistry(), oracleNftId, info, expiryAt, callbackMethodName);
|
69
|
+
|
70
|
+
{
|
71
|
+
// create request info
|
72
|
+
IOracle.RequestInfo memory request = IOracle.RequestInfo({
|
73
|
+
requesterNftId: requesterNftId,
|
74
|
+
callbackMethodName: callbackMethodName,
|
75
|
+
oracleNftId: oracleNftId,
|
76
|
+
requestData: requestData,
|
77
|
+
responseData: "",
|
78
|
+
respondedAt: TimestampLib.zero(),
|
79
|
+
expiredAt: expiryAt,
|
80
|
+
isCancelled: false
|
81
|
+
});
|
82
|
+
|
83
|
+
// store request with instance
|
84
|
+
requestId = IInstance(instance).getInstanceStore().createRequest(request);
|
80
85
|
}
|
81
86
|
|
82
|
-
//
|
83
|
-
|
84
|
-
requesterNftId: componentNftId,
|
85
|
-
callbackMethodName: callbackMethodName,
|
86
|
-
oracleNftId: oracleNftId,
|
87
|
-
requestData: requestData,
|
88
|
-
responseData: "",
|
89
|
-
respondedAt: TimestampLib.zero(),
|
90
|
-
expiredAt: expiryAt,
|
91
|
-
isCancelled: false
|
92
|
-
});
|
93
|
-
|
94
|
-
// store request with instance
|
95
|
-
requestId = instance.getInstanceStore().createRequest(request);
|
96
|
-
|
97
|
-
// call oracle component
|
98
|
-
IOracleComponent(oracleInfo.objectAddress).request(
|
87
|
+
// callback to oracle component
|
88
|
+
oracle.request(
|
99
89
|
requestId,
|
100
|
-
|
90
|
+
requesterNftId,
|
101
91
|
requestData,
|
102
92
|
expiryAt);
|
103
93
|
|
104
|
-
emit LogOracleServiceRequestCreated(requestId,
|
94
|
+
emit LogOracleServiceRequestCreated(requestId, requesterNftId, oracleNftId, expiryAt);
|
105
95
|
}
|
106
96
|
|
107
97
|
|
@@ -117,11 +107,13 @@ contract OracleService is
|
|
117
107
|
returns (bool success)
|
118
108
|
{
|
119
109
|
(
|
120
|
-
|
121
|
-
|
122
|
-
|
123
|
-
|
110
|
+
IRegistry.ObjectInfo memory info,
|
111
|
+
address instanceAddress
|
112
|
+
) = ContractLib.getAndVerifyComponent(
|
113
|
+
getRegistry(), msg.sender, ORACLE(), true);
|
124
114
|
|
115
|
+
NftId oracleNftId = info.nftId;
|
116
|
+
IInstance instance = IInstance(instanceAddress);
|
125
117
|
bool callerIsOracle = true;
|
126
118
|
IOracle.RequestInfo memory request = _checkAndGetRequestInfo(instance, requestId, oracleNftId, callerIsOracle);
|
127
119
|
request.responseData = responseData;
|
@@ -163,11 +155,13 @@ contract OracleService is
|
|
163
155
|
// restricted() // add authz
|
164
156
|
{
|
165
157
|
(
|
166
|
-
|
167
|
-
|
168
|
-
|
169
|
-
|
158
|
+
IRegistry.ObjectInfo memory info,
|
159
|
+
address instanceAddress
|
160
|
+
) = ContractLib.getAndVerifyAnyComponent(
|
161
|
+
getRegistry(), msg.sender, true);
|
170
162
|
|
163
|
+
NftId requesterNftId = info.nftId;
|
164
|
+
IInstance instance = IInstance(instanceAddress);
|
171
165
|
bool callerIsOracle = false;
|
172
166
|
IOracle.RequestInfo memory request = _checkAndGetRequestInfo(instance, requestId, requesterNftId, callerIsOracle);
|
173
167
|
|
@@ -178,7 +172,7 @@ contract OracleService is
|
|
178
172
|
"(uint64,bytes)"
|
179
173
|
));
|
180
174
|
|
181
|
-
(bool success, bytes memory returnData) =
|
175
|
+
(bool success, bytes memory returnData) = info.objectAddress.call(
|
182
176
|
abi.encodeWithSignature(
|
183
177
|
functionSignature,
|
184
178
|
requestId,
|
@@ -189,7 +183,7 @@ contract OracleService is
|
|
189
183
|
instance.getInstanceStore().updateRequestState(requestId, FULFILLED());
|
190
184
|
emit LogOracleServiceResponseResent(requestId, requesterNftId);
|
191
185
|
} else {
|
192
|
-
emit LogOracleServiceDeliveryFailed(requestId,
|
186
|
+
emit LogOracleServiceDeliveryFailed(requestId, info.objectAddress, functionSignature);
|
193
187
|
}
|
194
188
|
}
|
195
189
|
|
@@ -200,11 +194,13 @@ contract OracleService is
|
|
200
194
|
// restricted() // add authz
|
201
195
|
{
|
202
196
|
(
|
203
|
-
|
204
|
-
|
205
|
-
|
206
|
-
|
197
|
+
IRegistry.ObjectInfo memory info,
|
198
|
+
address instanceAddress
|
199
|
+
) = ContractLib.getAndVerifyAnyComponent(
|
200
|
+
getRegistry(), msg.sender, true);
|
207
201
|
|
202
|
+
NftId requesterNftId = info.nftId;
|
203
|
+
IInstance instance = IInstance(instanceAddress);
|
208
204
|
bool callerIsOracle = false;
|
209
205
|
// TODO property isCancelled and state update to CANCELLED are redundant, get rid of isCancelled
|
210
206
|
IOracle.RequestInfo memory request = _checkAndGetRequestInfo(instance, requestId, requesterNftId, callerIsOracle);
|
@@ -214,13 +210,59 @@ contract OracleService is
|
|
214
210
|
|
215
211
|
// call oracle component
|
216
212
|
// TODO add check that oracle is active?
|
217
|
-
address oracleAddress = getRegistry().
|
213
|
+
address oracleAddress = getRegistry().getObjectAddress(request.oracleNftId);
|
218
214
|
IOracleComponent(oracleAddress).cancel(requestId);
|
219
215
|
|
220
216
|
emit LogOracleServiceRequestCancelled(requestId, requesterNftId);
|
221
217
|
}
|
222
218
|
|
223
219
|
|
220
|
+
function _checkRequestParams(
|
221
|
+
IRegistry registry,
|
222
|
+
NftId oracleNftId,
|
223
|
+
IRegistry.ObjectInfo memory info,
|
224
|
+
Timestamp expiryAt,
|
225
|
+
string memory callbackMethodName
|
226
|
+
)
|
227
|
+
internal
|
228
|
+
virtual
|
229
|
+
view
|
230
|
+
returns (
|
231
|
+
NftId requesterNftId,
|
232
|
+
IOracleComponent oracle
|
233
|
+
)
|
234
|
+
{
|
235
|
+
// get oracle info
|
236
|
+
(IRegistry.ObjectInfo memory oracleInfo,) = ContractLib.getInfoAndInstance(
|
237
|
+
registry, oracleNftId, true);
|
238
|
+
|
239
|
+
// obtain return values
|
240
|
+
requesterNftId = info.nftId;
|
241
|
+
oracle = IOracleComponent(oracleInfo.objectAddress);
|
242
|
+
|
243
|
+
// check that requester and oracle share same product cluster
|
244
|
+
if (info.objectType == PRODUCT()) {
|
245
|
+
if (oracleInfo.parentNftId != requesterNftId) {
|
246
|
+
revert ErrorOracleServiceProductMismatch(info.objectType, requesterNftId, oracleInfo.parentNftId);
|
247
|
+
}
|
248
|
+
} else {
|
249
|
+
if (oracleInfo.parentNftId != info.parentNftId) {
|
250
|
+
revert ErrorOracleServiceProductMismatch(info.objectType, info.parentNftId, oracleInfo.parentNftId);
|
251
|
+
}
|
252
|
+
}
|
253
|
+
|
254
|
+
// check expiriyAt >= now
|
255
|
+
if (expiryAt < TimestampLib.blockTimestamp()) {
|
256
|
+
revert ErrorOracleServiceExpiryInThePast(TimestampLib.blockTimestamp(), expiryAt);
|
257
|
+
}
|
258
|
+
|
259
|
+
// check callbackMethodName.length > 0
|
260
|
+
if (bytes(callbackMethodName).length == 0) {
|
261
|
+
revert ErrorOracleServiceCallbackMethodNameEmpty();
|
262
|
+
}
|
263
|
+
}
|
264
|
+
|
265
|
+
|
224
266
|
function _checkAndGetRequestInfo(
|
225
267
|
IInstance instance,
|
226
268
|
RequestId requestId,
|
@@ -261,17 +303,6 @@ contract OracleService is
|
|
261
303
|
}
|
262
304
|
|
263
305
|
|
264
|
-
function _getInstanceForComponent(NftId componentNftId)
|
265
|
-
internal
|
266
|
-
view
|
267
|
-
returns(IInstance instance)
|
268
|
-
{
|
269
|
-
NftId instanceNftId = getRegistry().getObjectInfo(componentNftId).parentNftId;
|
270
|
-
address instanceAddress = getRegistry().getObjectInfo(instanceNftId).objectAddress;
|
271
|
-
return IInstance(instanceAddress);
|
272
|
-
}
|
273
|
-
|
274
|
-
|
275
306
|
function _getDomain() internal pure override returns(ObjectType) {
|
276
307
|
return ORACLE();
|
277
308
|
}
|
@@ -12,15 +12,15 @@ contract OracleServiceManager is ProxyManager {
|
|
12
12
|
/// @dev initializes proxy manager with service implementation and deploys instance
|
13
13
|
constructor(
|
14
14
|
address authority,
|
15
|
-
address
|
15
|
+
address registry,
|
16
16
|
bytes32 salt
|
17
17
|
)
|
18
|
-
ProxyManager(registryAddress)
|
19
18
|
{
|
20
|
-
OracleService
|
21
|
-
bytes memory data = abi.encode(
|
22
|
-
IVersionable versionable =
|
23
|
-
|
19
|
+
OracleService svc = new OracleService{salt: salt}();
|
20
|
+
bytes memory data = abi.encode(registry, authority);
|
21
|
+
IVersionable versionable = initialize(
|
22
|
+
registry,
|
23
|
+
address(svc),
|
24
24
|
data,
|
25
25
|
salt);
|
26
26
|
|