@etherisc/gif-next 0.0.2-abde86b-349 → 0.0.2-ac2f4a6-957
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/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +1 -1
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +96 -37
- 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 -13
- 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 +154 -94
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +1 -1
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +77 -17
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +94 -58
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +120 -86
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +72 -60
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +81 -58
- 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 +1538 -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 +2077 -0
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +470 -0
- package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.json +376 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +156 -96
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +137 -77
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +153 -106
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +222 -107
- 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 +53 -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 +62 -40
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +148 -118
- 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 +108 -125
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +72 -130
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +48 -40
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +160 -89
- 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 +135 -75
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +1 -1
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +77 -17
- 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 +76 -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 +89 -53
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +86 -47
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +48 -36
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +89 -66
- 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 +180 -82
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +90 -58
- 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 +76 -53
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +136 -120
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
- package/artifacts/contracts/pool/Pool.sol/Pool.json +89 -53
- package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolService.sol/PoolService.json +209 -180
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +63 -47
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +66 -32
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +45 -33
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +129 -54
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +77 -17
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +167 -82
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +81 -57
- 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 +56 -0
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +58 -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 +116 -54
- 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 +139 -60
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +67 -47
- package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
- package/artifacts/contracts/product/PricingService.sol/PricingService.json +149 -107
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +61 -45
- package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
- package/artifacts/contracts/product/Product.sol/Product.json +129 -54
- package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +1 -1
- package/artifacts/contracts/product/RiskService.sol/RiskService.json +60 -26
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +42 -30
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +2 -2
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +48 -15
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +114 -35
- package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
- package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +5 -18
- package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
- package/artifacts/contracts/registry/Registry.sol/Registry.json +92 -51
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +193 -165
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +145 -61
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +41 -29
- 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 +121 -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 +68 -28
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +350 -155
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +83 -63
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +42 -0
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +1 -1
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +2 -2
- package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponent.sol/IComponent.json +55 -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 +76 -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/IRegisterable.sol/IRegisterable.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +29 -0
- package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
- package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
- package/artifacts/contracts/shared/IService.sol/IService.json +29 -0
- package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +1 -1
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +89 -53
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +42 -1
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +42 -1
- package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +1 -1
- package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +2 -2
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +18 -2
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +2 -2
- package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
- package/artifacts/contracts/shared/Registerable.sol/Registerable.json +66 -8
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -2
- package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
- package/artifacts/contracts/shared/Service.sol/Service.json +42 -0
- 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 +55 -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 +138 -78
- 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 +68 -42
- 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 +66 -53
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +45 -33
- 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 +2 -2
- package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
- package/artifacts/contracts/type/Referral.sol/ReferralLib.json +2 -2
- package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +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/UFixedLib.dbg.json +1 -1
- package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
- package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +28 -12
- 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 +65 -61
- package/contracts/authorization/Authorization.sol +106 -38
- package/contracts/authorization/IAccess.sol +1 -0
- package/contracts/authorization/IAccessAdmin.sol +4 -2
- 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 +6 -16
- package/contracts/distribution/DistributionService.sol +53 -34
- package/contracts/distribution/IDistributionComponent.sol +1 -1
- 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 +418 -0
- package/contracts/examples/fire/FireProductAuthorization.sol +44 -0
- package/contracts/examples/fire/FireUSD.sol +26 -0
- package/contracts/examples/unpermissioned/SimpleDistribution.sol +4 -4
- package/contracts/examples/unpermissioned/SimpleOracle.sol +4 -4
- package/contracts/examples/unpermissioned/SimplePool.sol +4 -4
- package/contracts/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 +20 -17
- package/contracts/instance/InstanceAdmin.sol +16 -27
- package/contracts/instance/InstanceAuthorizationV3.sol +9 -19
- package/contracts/instance/InstanceReader.sol +9 -33
- package/contracts/instance/InstanceService.sol +14 -68
- package/contracts/instance/module/IComponents.sol +6 -3
- package/contracts/oracle/BasicOracle.sol +0 -1
- package/contracts/oracle/IOracleService.sol +2 -1
- package/contracts/oracle/Oracle.sol +4 -15
- package/contracts/oracle/OracleService.sol +37 -27
- package/contracts/pool/BasicPool.sol +14 -26
- package/contracts/pool/BasicPoolAuthorization.sol +0 -1
- package/contracts/pool/BundleService.sol +75 -20
- package/contracts/pool/IBundleService.sol +9 -0
- package/contracts/pool/IPoolService.sol +2 -6
- package/contracts/pool/Pool.sol +11 -29
- package/contracts/pool/PoolService.sol +65 -69
- package/contracts/product/ApplicationService.sol +9 -1
- package/contracts/product/BasicProduct.sol +6 -6
- package/contracts/product/BasicProductAuthorization.sol +0 -1
- package/contracts/product/ClaimService.sol +97 -58
- package/contracts/product/IClaimService.sol +2 -1
- package/contracts/product/IPolicyService.sol +3 -0
- package/contracts/product/IPricingService.sol +9 -9
- package/contracts/product/IProductComponent.sol +6 -0
- package/contracts/product/PolicyService.sol +50 -13
- package/contracts/product/PricingService.sol +4 -7
- package/contracts/product/Product.sol +61 -38
- package/contracts/registry/ChainNft.sol +6 -9
- package/contracts/registry/IRegistry.sol +4 -3
- package/contracts/registry/IRegistryService.sol +6 -4
- package/contracts/registry/ITransferInterceptor.sol +1 -2
- package/contracts/registry/Registry.sol +14 -4
- package/contracts/registry/RegistryAdmin.sol +7 -23
- package/contracts/registry/RegistryService.sol +37 -55
- package/contracts/registry/ReleaseLifecycle.sol +6 -3
- package/contracts/registry/ReleaseRegistry.sol +201 -191
- package/contracts/registry/ServiceAuthorizationV3.sol +14 -19
- package/contracts/shared/Component.sol +25 -28
- package/contracts/shared/ComponentService.sol +224 -130
- package/contracts/shared/ComponentVerifyingService.sol +22 -12
- 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/IRegisterable.sol +11 -0
- package/contracts/shared/InstanceLinkedComponent.sol +67 -25
- package/contracts/shared/KeyValueStore.sol +1 -1
- package/contracts/shared/Lifecycle.sol +15 -4
- package/contracts/shared/NftOwnable.sol +23 -3
- package/contracts/shared/Registerable.sol +15 -5
- package/contracts/shared/Service.sol +4 -7
- package/contracts/staking/IStakingService.sol +0 -3
- package/contracts/staking/Staking.sol +2 -3
- package/contracts/staking/StakingReader.sol +12 -5
- package/contracts/staking/StakingService.sol +1 -15
- 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/RiskId.sol +15 -1
- package/contracts/type/RoleId.sol +0 -12
- package/contracts/type/StateId.sol +14 -1
- package/contracts/upgradeability/ProxyManager.sol +2 -1
- 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/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
@@ -11,7 +11,7 @@ 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
16
|
import {StateId, ACTIVE, KEEP_STATE, FULFILLED, FAILED, CANCELLED} from "../type/StateId.sol";
|
17
17
|
import {Timestamp, TimestampLib} from "../type/Timestamp.sol";
|
@@ -48,6 +48,7 @@ contract OracleService is
|
|
48
48
|
external
|
49
49
|
virtual
|
50
50
|
// restricted() // add authz
|
51
|
+
onlyNftOfType(oracleNftId, ORACLE())
|
51
52
|
returns (
|
52
53
|
RequestId requestId
|
53
54
|
)
|
@@ -66,36 +67,45 @@ contract OracleService is
|
|
66
67
|
ORACLE(),
|
67
68
|
true); // only active
|
68
69
|
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
70
|
+
{
|
71
|
+
// check that requester and oracle share same product cluster
|
72
|
+
if (componentInfo.objectType == PRODUCT()) {
|
73
|
+
if (oracleInfo.parentNftId != componentInfo.nftId) {
|
74
|
+
revert ErrorOracleServiceProductMismatch(componentInfo.objectType, componentInfo.nftId, oracleInfo.parentNftId);
|
75
|
+
}
|
76
|
+
} else {
|
77
|
+
if (oracleInfo.parentNftId != componentInfo.parentNftId) {
|
78
|
+
revert ErrorOracleServiceProductMismatch(componentInfo.objectType, componentInfo.parentNftId, oracleInfo.parentNftId);
|
79
|
+
}
|
80
|
+
}
|
74
81
|
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
82
|
+
// check expiriyAt >= now
|
83
|
+
if (expiryAt < TimestampLib.blockTimestamp()) {
|
84
|
+
revert ErrorOracleServiceExpiryInThePast(TimestampLib.blockTimestamp(), expiryAt);
|
85
|
+
}
|
79
86
|
|
80
|
-
|
81
|
-
|
82
|
-
|
87
|
+
// check callbackMethodName.length > 0
|
88
|
+
if (bytes(callbackMethodName).length == 0) {
|
89
|
+
revert ErrorOracleServiceCallbackMethodNameEmpty();
|
90
|
+
}
|
83
91
|
}
|
84
92
|
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
93
|
+
{
|
94
|
+
// create request info
|
95
|
+
IOracle.RequestInfo memory request = IOracle.RequestInfo({
|
96
|
+
requesterNftId: componentNftId,
|
97
|
+
callbackMethodName: callbackMethodName,
|
98
|
+
oracleNftId: oracleNftId,
|
99
|
+
requestData: requestData,
|
100
|
+
responseData: "",
|
101
|
+
respondedAt: TimestampLib.zero(),
|
102
|
+
expiredAt: expiryAt,
|
103
|
+
isCancelled: false
|
104
|
+
});
|
105
|
+
|
106
|
+
// store request with instance
|
107
|
+
requestId = instance.getInstanceStore().createRequest(request);
|
108
|
+
}
|
99
109
|
|
100
110
|
// call oracle component
|
101
111
|
IOracleComponent(oracleInfo.objectAddress).request(
|
@@ -1,22 +1,14 @@
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
2
2
|
pragma solidity ^0.8.20;
|
3
3
|
|
4
|
-
import {Amount
|
5
|
-
import {
|
6
|
-
import {Fee, FeeLib} from "../type/Fee.sol";
|
4
|
+
import {Amount} from "../type/Amount.sol";
|
5
|
+
import {Fee} from "../type/Fee.sol";
|
7
6
|
import {IAuthorization} from "../authorization/IAuthorization.sol";
|
8
|
-
import {
|
9
|
-
import {
|
10
|
-
import {
|
11
|
-
import {IComponents} from "../instance/module/IComponents.sol";
|
12
|
-
import {IComponentService} from "../shared/IComponentService.sol";
|
13
|
-
import {NftId, NftIdLib} from "../type/NftId.sol";
|
14
|
-
import {BUNDLE, COMPONENT, POOL} from "../type/ObjectType.sol";
|
15
|
-
import {RoleId, PUBLIC_ROLE} from "../type/RoleId.sol";
|
7
|
+
import {NftId} from "../type/NftId.sol";
|
8
|
+
import {BUNDLE} from "../type/ObjectType.sol";
|
9
|
+
import {RoleId} from "../type/RoleId.sol";
|
16
10
|
import {Seconds} from "../type/Seconds.sol";
|
17
11
|
import {Timestamp} from "../type/Timestamp.sol";
|
18
|
-
import {TokenHandler} from "../shared/TokenHandler.sol";
|
19
|
-
import {UFixed, UFixedLib} from "../type/UFixed.sol";
|
20
12
|
|
21
13
|
import {Pool} from "./Pool.sol";
|
22
14
|
|
@@ -26,7 +18,7 @@ abstract contract BasicPool is
|
|
26
18
|
|
27
19
|
function _initializeBasicPool(
|
28
20
|
address registry,
|
29
|
-
NftId
|
21
|
+
NftId productNftId,
|
30
22
|
IAuthorization authorization,
|
31
23
|
address token,
|
32
24
|
string memory name,
|
@@ -38,13 +30,12 @@ abstract contract BasicPool is
|
|
38
30
|
{
|
39
31
|
_initializePool(
|
40
32
|
registry,
|
41
|
-
|
33
|
+
productNftId,
|
42
34
|
name,
|
43
35
|
token,
|
44
36
|
authorization,
|
45
37
|
false, // isInterceptingNftTransfers,
|
46
38
|
initialOwner,
|
47
|
-
"", // registryData
|
48
39
|
""); // componentData
|
49
40
|
}
|
50
41
|
|
@@ -56,6 +47,7 @@ abstract contract BasicPool is
|
|
56
47
|
virtual
|
57
48
|
restricted()
|
58
49
|
onlyBundleOwner(bundleNftId)
|
50
|
+
onlyNftOfType(bundleNftId, BUNDLE())
|
59
51
|
{
|
60
52
|
_stake(bundleNftId, amount);
|
61
53
|
}
|
@@ -69,6 +61,7 @@ abstract contract BasicPool is
|
|
69
61
|
virtual
|
70
62
|
restricted()
|
71
63
|
onlyBundleOwner(bundleNftId)
|
64
|
+
onlyNftOfType(bundleNftId, BUNDLE())
|
72
65
|
{
|
73
66
|
_unstake(bundleNftId, amount);
|
74
67
|
}
|
@@ -82,6 +75,7 @@ abstract contract BasicPool is
|
|
82
75
|
virtual
|
83
76
|
restricted()
|
84
77
|
onlyBundleOwner(bundleNftId)
|
78
|
+
onlyNftOfType(bundleNftId, BUNDLE())
|
85
79
|
returns(Timestamp newExpiredAt)
|
86
80
|
{
|
87
81
|
return _extend(bundleNftId, lifetimeExtension);
|
@@ -93,6 +87,7 @@ abstract contract BasicPool is
|
|
93
87
|
virtual
|
94
88
|
restricted()
|
95
89
|
onlyBundleOwner(bundleNftId)
|
90
|
+
onlyNftOfType(bundleNftId, BUNDLE())
|
96
91
|
{
|
97
92
|
_lockBundle(bundleNftId);
|
98
93
|
}
|
@@ -103,6 +98,7 @@ abstract contract BasicPool is
|
|
103
98
|
virtual
|
104
99
|
restricted()
|
105
100
|
onlyBundleOwner(bundleNftId)
|
101
|
+
onlyNftOfType(bundleNftId, BUNDLE())
|
106
102
|
{
|
107
103
|
_unlockBundle(bundleNftId);
|
108
104
|
}
|
@@ -113,6 +109,7 @@ abstract contract BasicPool is
|
|
113
109
|
virtual
|
114
110
|
restricted()
|
115
111
|
onlyBundleOwner(bundleNftId)
|
112
|
+
onlyNftOfType(bundleNftId, BUNDLE())
|
116
113
|
{
|
117
114
|
_closeBundle(bundleNftId);
|
118
115
|
}
|
@@ -126,6 +123,7 @@ abstract contract BasicPool is
|
|
126
123
|
virtual
|
127
124
|
restricted()
|
128
125
|
onlyBundleOwner(bundleNftId)
|
126
|
+
onlyNftOfType(bundleNftId, BUNDLE())
|
129
127
|
{
|
130
128
|
_setBundleFee(bundleNftId, fee);
|
131
129
|
}
|
@@ -141,16 +139,6 @@ abstract contract BasicPool is
|
|
141
139
|
}
|
142
140
|
|
143
141
|
|
144
|
-
function setBundleOwnerRole(RoleId bundleOwnerRole)
|
145
|
-
public
|
146
|
-
virtual
|
147
|
-
restricted()
|
148
|
-
onlyOwner()
|
149
|
-
{
|
150
|
-
_setBundleOwnerRole(bundleOwnerRole);
|
151
|
-
}
|
152
|
-
|
153
|
-
|
154
142
|
function setFees(
|
155
143
|
Fee memory poolFee,
|
156
144
|
Fee memory stakingFee,
|
@@ -44,7 +44,6 @@ contract BasicPoolAuthorization
|
|
44
44
|
_authorize(functions, BasicPool.setBundleFee.selector, "setBundleFee");
|
45
45
|
|
46
46
|
_authorize(functions, BasicPool.setMaxBalanceAmount.selector, "setMaxBalanceAmount");
|
47
|
-
_authorize(functions, BasicPool.setBundleOwnerRole.selector, "setBundleOwnerRole");
|
48
47
|
_authorize(functions, BasicPool.setFees.selector, "setFees");
|
49
48
|
_authorize(functions, BasicPool.stake.selector, "stake");
|
50
49
|
_authorize(functions, BasicPool.unstake.selector, "unstake");
|
@@ -17,7 +17,7 @@ import {ComponentVerifyingService} from "../shared/ComponentVerifyingService.sol
|
|
17
17
|
import {Fee} from "../type/Fee.sol";
|
18
18
|
import {InstanceReader} from "../instance/InstanceReader.sol";
|
19
19
|
import {NftId, NftIdLib} from "../type/NftId.sol";
|
20
|
-
import {ObjectType, COMPONENT, POOL, BUNDLE, REGISTRY} from "../type/ObjectType.sol";
|
20
|
+
import {ObjectType, COMPONENT, POOL, BUNDLE, POLICY, REGISTRY} from "../type/ObjectType.sol";
|
21
21
|
import {StateId, ACTIVE, PAUSED, CLOSED, KEEP_STATE} from "../type/StateId.sol";
|
22
22
|
import {Seconds} from "../type/Seconds.sol";
|
23
23
|
import {Timestamp, TimestampLib, zeroTimestamp} from "../type/Timestamp.sol";
|
@@ -64,6 +64,8 @@ contract BundleService is
|
|
64
64
|
external
|
65
65
|
virtual
|
66
66
|
{
|
67
|
+
_checkNftType(bundleNftId, BUNDLE());
|
68
|
+
|
67
69
|
(NftId poolNftId,, IInstance instance) = _getAndVerifyActiveComponent(POOL());
|
68
70
|
InstanceReader instanceReader = instance.getInstanceReader();
|
69
71
|
IBundle.BundleInfo memory bundleInfo = instanceReader.getBundleInfo(bundleNftId);
|
@@ -94,6 +96,8 @@ contract BundleService is
|
|
94
96
|
restricted
|
95
97
|
returns(NftId bundleNftId)
|
96
98
|
{
|
99
|
+
_checkNftType(poolNftId, POOL());
|
100
|
+
|
97
101
|
// register bundle with registry
|
98
102
|
bundleNftId = _registryService.registerBundle(
|
99
103
|
IRegistry.ObjectInfo(
|
@@ -148,26 +152,35 @@ contract BundleService is
|
|
148
152
|
virtual
|
149
153
|
restricted()
|
150
154
|
{
|
155
|
+
_checkNftType(policyNftId, POLICY());
|
156
|
+
_checkNftType(bundleNftId, BUNDLE());
|
157
|
+
|
151
158
|
InstanceReader instanceReader = instance.getInstanceReader();
|
152
|
-
StateId bundleState = instance.getInstanceReader().getBundleState(bundleNftId);
|
153
|
-
IBundle.BundleInfo memory bundleInfo = instanceReader.getBundleInfo(bundleNftId);
|
154
159
|
|
155
|
-
|
156
|
-
|
157
|
-
|
160
|
+
{
|
161
|
+
StateId bundleState = instance.getInstanceReader().getBundleState(bundleNftId);
|
162
|
+
IBundle.BundleInfo memory bundleInfo = instanceReader.getBundleInfo(bundleNftId);
|
163
|
+
|
164
|
+
// ensure bundle is active and not yet expired
|
165
|
+
if(bundleState != ACTIVE() || bundleInfo.expiredAt < TimestampLib.blockTimestamp()) {
|
166
|
+
revert ErrorBundleServiceBundleNotOpen(bundleNftId, bundleState, bundleInfo.expiredAt);
|
167
|
+
}
|
158
168
|
}
|
159
169
|
|
160
|
-
// ensure bundle capacity is sufficent to collateralize policy
|
161
170
|
InstanceStore instanceStore = instance.getInstanceStore();
|
162
|
-
(
|
163
|
-
Amount balanceAmount,
|
164
|
-
Amount lockedAmount,
|
165
|
-
Amount feeAmount
|
166
|
-
) = instanceStore.getAmounts(bundleNftId);
|
167
171
|
|
168
|
-
|
169
|
-
|
170
|
-
|
172
|
+
{
|
173
|
+
// ensure bundle capacity is sufficent to collateralize policy
|
174
|
+
(
|
175
|
+
Amount balanceAmount,
|
176
|
+
Amount lockedAmount,
|
177
|
+
Amount feeAmount
|
178
|
+
) = instanceStore.getAmounts(bundleNftId);
|
179
|
+
|
180
|
+
Amount capacity = balanceAmount - (lockedAmount + feeAmount);
|
181
|
+
if(capacity < collateralAmount) {
|
182
|
+
revert ErrorBundleServiceCapacityInsufficient(bundleNftId, capacity, collateralAmount);
|
183
|
+
}
|
171
184
|
}
|
172
185
|
|
173
186
|
// updated locked amount
|
@@ -182,6 +195,8 @@ contract BundleService is
|
|
182
195
|
external
|
183
196
|
virtual
|
184
197
|
{
|
198
|
+
_checkNftType(bundleNftId, BUNDLE());
|
199
|
+
|
185
200
|
(,, IInstance instance) = _getAndVerifyActiveComponent(POOL());
|
186
201
|
|
187
202
|
// udpate bundle state
|
@@ -199,6 +214,8 @@ contract BundleService is
|
|
199
214
|
external
|
200
215
|
virtual
|
201
216
|
{
|
217
|
+
_checkNftType(bundleNftId, BUNDLE());
|
218
|
+
|
202
219
|
(,, IInstance instance) = _getAndVerifyActiveComponent(POOL());
|
203
220
|
|
204
221
|
// udpate bundle state
|
@@ -221,6 +238,8 @@ contract BundleService is
|
|
221
238
|
restricted
|
222
239
|
returns (Amount unstakedAmount, Amount feeAmount)
|
223
240
|
{
|
241
|
+
_checkNftType(bundleNftId, BUNDLE());
|
242
|
+
|
224
243
|
InstanceReader instanceReader = instance.getInstanceReader();
|
225
244
|
|
226
245
|
// ensure no open policies attached to bundle
|
@@ -254,6 +273,8 @@ contract BundleService is
|
|
254
273
|
virtual
|
255
274
|
// TODO: restricted() (once #462 is done)
|
256
275
|
{
|
276
|
+
_checkNftType(bundleNftId, BUNDLE());
|
277
|
+
|
257
278
|
IBundle.BundleInfo memory bundleInfo = instance.getInstanceReader().getBundleInfo(bundleNftId);
|
258
279
|
StateId bundleState = instance.getInstanceReader().getBundleState(bundleNftId);
|
259
280
|
|
@@ -281,6 +302,8 @@ contract BundleService is
|
|
281
302
|
// TODO: restricted() (once #462 is done)
|
282
303
|
returns (Amount unstakedAmount)
|
283
304
|
{
|
305
|
+
_checkNftType(bundleNftId, BUNDLE());
|
306
|
+
|
284
307
|
InstanceStore instanceStore = instance.getInstanceStore();
|
285
308
|
(
|
286
309
|
Amount balanceAmount,
|
@@ -288,7 +311,7 @@ contract BundleService is
|
|
288
311
|
Amount feeAmount
|
289
312
|
) = instanceStore.getAmounts(bundleNftId);
|
290
313
|
|
291
|
-
|
314
|
+
unstakedAmount = amount;
|
292
315
|
Amount availableAmount = balanceAmount - (lockedAmount + feeAmount);
|
293
316
|
|
294
317
|
// if amount is max, then unstake all available
|
@@ -306,8 +329,6 @@ contract BundleService is
|
|
306
329
|
bundleNftId,
|
307
330
|
unstakedAmount,
|
308
331
|
AmountLib.zero());
|
309
|
-
|
310
|
-
return unstakedAmount;
|
311
332
|
}
|
312
333
|
|
313
334
|
/// @inheritdoc IBundleService
|
@@ -317,6 +338,8 @@ contract BundleService is
|
|
317
338
|
// TODO: restricted() (once #462 is done)
|
318
339
|
returns (Timestamp extendedExpiredAt)
|
319
340
|
{
|
341
|
+
_checkNftType(bundleNftId, BUNDLE());
|
342
|
+
|
320
343
|
(NftId poolNftId,, IInstance instance) = _getAndVerifyActiveComponent(POOL());
|
321
344
|
IBundle.BundleInfo memory bundleInfo = instance.getInstanceReader().getBundleInfo(bundleNftId);
|
322
345
|
StateId bundleState = instance.getInstanceReader().getBundleState(bundleNftId);
|
@@ -354,6 +377,9 @@ contract BundleService is
|
|
354
377
|
virtual
|
355
378
|
restricted()
|
356
379
|
{
|
380
|
+
_checkNftType(policyNftId, POLICY());
|
381
|
+
_checkNftType(bundleNftId, BUNDLE());
|
382
|
+
|
357
383
|
instance.getInstanceStore().decreaseLocked(bundleNftId, collateralAmount);
|
358
384
|
}
|
359
385
|
|
@@ -366,8 +392,10 @@ contract BundleService is
|
|
366
392
|
virtual
|
367
393
|
restricted
|
368
394
|
{
|
395
|
+
_checkNftType(policyNftId, POLICY());
|
396
|
+
|
369
397
|
// ensure policy is closeable
|
370
|
-
if (!
|
398
|
+
if (!policyIsCloseable(instance, policyNftId)) {
|
371
399
|
revert ErrorBundleServicePolicyNotCloseable(policyNftId);
|
372
400
|
}
|
373
401
|
|
@@ -381,13 +409,15 @@ contract BundleService is
|
|
381
409
|
// TODO: restricted() (once #462 is done)
|
382
410
|
returns (Amount withdrawnAmount)
|
383
411
|
{
|
412
|
+
_checkNftType(bundleNftId, BUNDLE());
|
413
|
+
|
384
414
|
(NftId poolNftId,, IInstance instance) = _getAndVerifyActiveComponent(POOL());
|
385
415
|
InstanceReader reader = instance.getInstanceReader();
|
386
416
|
|
387
417
|
IComponents.ComponentInfo memory poolInfo = reader.getComponentInfo(poolNftId);
|
388
418
|
address poolWallet = poolInfo.wallet;
|
389
419
|
|
390
|
-
IBundle.BundleInfo memory bundleInfo = reader.getBundleInfo(bundleNftId);
|
420
|
+
// IBundle.BundleInfo memory bundleInfo = reader.getBundleInfo(bundleNftId);
|
391
421
|
|
392
422
|
// determine withdrawn amount
|
393
423
|
withdrawnAmount = amount;
|
@@ -416,6 +446,31 @@ contract BundleService is
|
|
416
446
|
}
|
417
447
|
}
|
418
448
|
|
449
|
+
/// @inheritdoc IBundleService
|
450
|
+
function policyIsCloseable(IInstance instance, NftId policyNftId)
|
451
|
+
public
|
452
|
+
view
|
453
|
+
returns (bool isCloseable)
|
454
|
+
{
|
455
|
+
_checkNftType(policyNftId, POLICY());
|
456
|
+
|
457
|
+
IPolicy.PolicyInfo memory info = instance.getInstanceReader().getPolicyInfo(policyNftId);
|
458
|
+
|
459
|
+
if (info.productNftId.eqz()) { return false; } // not closeable: policy does not exist (or does not belong to this instance)
|
460
|
+
if (info.activatedAt.eqz()) { return false; } // not closeable: not yet activated
|
461
|
+
if (info.closedAt.gtz()) { return false; } // not closeable: already closed
|
462
|
+
if (info.openClaimsCount > 0) { return false; } // not closeable: has open claims
|
463
|
+
|
464
|
+
// closeable: if sum of claims matches sum insured a policy may be closed prior to the expiry date
|
465
|
+
if (info.claimAmount == info.sumInsuredAmount) { return true; }
|
466
|
+
|
467
|
+
// not closeable: not yet expired
|
468
|
+
if (TimestampLib.blockTimestamp() < info.expiredAt) { return false; }
|
469
|
+
|
470
|
+
// all conditionsl to close the policy are met
|
471
|
+
return true;
|
472
|
+
}
|
473
|
+
|
419
474
|
/// @dev links policy to bundle
|
420
475
|
function _linkPolicy(IInstance instance, NftId policyNftId)
|
421
476
|
internal
|
@@ -131,4 +131,13 @@ interface IBundleService is IService {
|
|
131
131
|
/// @return withdrawnAmount the effective withdrawn amount
|
132
132
|
function withdrawBundleFees(NftId bundleNftId, Amount amount) external returns (Amount withdrawnAmount);
|
133
133
|
|
134
|
+
/// @dev returns true iff policy may be closed
|
135
|
+
/// a policy can be closed all conditions below are met
|
136
|
+
/// - policy exists
|
137
|
+
/// - has been activated
|
138
|
+
/// - is not yet closed
|
139
|
+
/// - has no open claims
|
140
|
+
/// - claim amount matches sum insured amount or is expired
|
141
|
+
function policyIsCloseable(IInstance instance, NftId policyNftId) external view returns (bool isCloseable);
|
142
|
+
|
134
143
|
}
|
@@ -34,10 +34,6 @@ interface IPoolService is IService {
|
|
34
34
|
error ErrorPoolServiceInvalidTransferAmount(Amount expectedAmount, Amount actualAmount);
|
35
35
|
error ErrorPoolServiceBundlePoolMismatch(NftId bundleNftId, NftId poolNftId);
|
36
36
|
error ErrorPoolServiceMaxBalanceAmountExceeded(NftId poolNftId, Amount maxBalanceAmount, Amount currentBalanceAmount, Amount transferAmount);
|
37
|
-
|
38
|
-
/// @dev defines the required role for bundle owners for the calling pool
|
39
|
-
/// default implementation returns PUBLIC ROLE
|
40
|
-
function setBundleOwnerRole(RoleId bundleOwnerRole) external;
|
41
37
|
|
42
38
|
/// @dev sets the max balance amount for the calling pool
|
43
39
|
function setMaxBalanceAmount(Amount maxBalanceAmount) external;
|
@@ -72,10 +68,10 @@ interface IPoolService is IService {
|
|
72
68
|
) external;
|
73
69
|
|
74
70
|
|
75
|
-
/// @dev reduces the locked collateral in the bundle associated with the specified policy
|
71
|
+
/// @dev reduces the locked collateral in the bundle associated with the specified policy and updates pool/bundle counters
|
76
72
|
/// every payout of a policy reduces the collateral by the payout amount
|
77
73
|
/// may only be called by the claim service for unlocked pool components
|
78
|
-
function
|
74
|
+
function processPayout(
|
79
75
|
IInstance instance,
|
80
76
|
address token,
|
81
77
|
NftId policyNftId,
|
package/contracts/pool/Pool.sol
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
pragma solidity ^0.8.20;
|
3
3
|
|
4
4
|
import {Amount, AmountLib} from "../type/Amount.sol";
|
5
|
-
import {BUNDLE, COMPONENT, POOL} from "../type/ObjectType.sol";
|
5
|
+
import {BUNDLE, COMPONENT, POLICY, POOL} from "../type/ObjectType.sol";
|
6
6
|
import {ClaimId} from "../type/ClaimId.sol";
|
7
7
|
import {IBundleService} from "./IBundleService.sol";
|
8
8
|
import {IAuthorization} from "../authorization/IAuthorization.sol";
|
@@ -11,13 +11,12 @@ import {IPoolService} from "./IPoolService.sol";
|
|
11
11
|
import {IComponents} from "../instance/module/IComponents.sol";
|
12
12
|
import {IComponentService} from "../shared/IComponentService.sol";
|
13
13
|
import {InstanceLinkedComponent} from "../shared/InstanceLinkedComponent.sol";
|
14
|
-
import {Fee
|
15
|
-
import {NftId
|
14
|
+
import {Fee} from "../type/Fee.sol";
|
15
|
+
import {NftId} from "../type/NftId.sol";
|
16
16
|
import {RoleId, PUBLIC_ROLE} from "../type/RoleId.sol";
|
17
17
|
import {Seconds} from "../type/Seconds.sol";
|
18
18
|
import {Timestamp} from "../type/Timestamp.sol";
|
19
|
-
import {
|
20
|
-
import {UFixed, UFixedLib} from "../type/UFixed.sol";
|
19
|
+
import {UFixedLib} from "../type/UFixed.sol";
|
21
20
|
|
22
21
|
abstract contract Pool is
|
23
22
|
InstanceLinkedComponent,
|
@@ -41,16 +40,6 @@ abstract contract Pool is
|
|
41
40
|
}
|
42
41
|
|
43
42
|
|
44
|
-
function register()
|
45
|
-
external
|
46
|
-
virtual
|
47
|
-
onlyOwner()
|
48
|
-
{
|
49
|
-
_getPoolStorage()._componentService.registerPool();
|
50
|
-
_approveTokenHandler(type(uint256).max);
|
51
|
-
}
|
52
|
-
|
53
|
-
|
54
43
|
/// @dev see {IPoolComponent.verifyApplication}
|
55
44
|
function verifyApplication(
|
56
45
|
NftId applicationNftId,
|
@@ -62,6 +51,7 @@ abstract contract Pool is
|
|
62
51
|
public
|
63
52
|
virtual
|
64
53
|
restricted()
|
54
|
+
onlyNftOfType(applicationNftId, POLICY())
|
65
55
|
{
|
66
56
|
if(!applicationMatchesBundle(
|
67
57
|
applicationNftId,
|
@@ -87,6 +77,7 @@ abstract contract Pool is
|
|
87
77
|
public
|
88
78
|
virtual
|
89
79
|
restricted()
|
80
|
+
onlyNftOfType(policyNftId, POLICY())
|
90
81
|
{
|
91
82
|
// default implementation is empty
|
92
83
|
}
|
@@ -105,6 +96,8 @@ abstract contract Pool is
|
|
105
96
|
public
|
106
97
|
virtual
|
107
98
|
view
|
99
|
+
onlyNftOfType(applicationNftId, POLICY())
|
100
|
+
onlyNftOfType(bundleNftId, BUNDLE())
|
108
101
|
returns (bool isMatching)
|
109
102
|
{
|
110
103
|
return true;
|
@@ -116,6 +109,7 @@ abstract contract Pool is
|
|
116
109
|
virtual
|
117
110
|
restricted()
|
118
111
|
onlyBundleOwner(bundleNftId)
|
112
|
+
onlyNftOfType(bundleNftId, BUNDLE())
|
119
113
|
returns (Amount withdrawnAmount)
|
120
114
|
{
|
121
115
|
return _withdrawBundleFees(bundleNftId, amount);
|
@@ -144,13 +138,12 @@ abstract contract Pool is
|
|
144
138
|
|
145
139
|
function _initializePool(
|
146
140
|
address registry,
|
147
|
-
NftId
|
141
|
+
NftId productNftId,
|
148
142
|
string memory name,
|
149
143
|
address token,
|
150
144
|
IAuthorization authorization,
|
151
145
|
bool isInterceptingNftTransfers,
|
152
146
|
address initialOwner,
|
153
|
-
bytes memory registryData, // writeonly data that will saved in the object info record of the registry
|
154
147
|
bytes memory componentData // component specifidc data
|
155
148
|
)
|
156
149
|
internal
|
@@ -159,14 +152,13 @@ abstract contract Pool is
|
|
159
152
|
{
|
160
153
|
_initializeInstanceLinkedComponent(
|
161
154
|
registry,
|
162
|
-
|
155
|
+
productNftId,
|
163
156
|
name,
|
164
157
|
token,
|
165
158
|
POOL(),
|
166
159
|
authorization,
|
167
160
|
isInterceptingNftTransfers,
|
168
161
|
initialOwner,
|
169
|
-
registryData,
|
170
162
|
componentData);
|
171
163
|
|
172
164
|
PoolStorage storage $ = _getPoolStorage();
|
@@ -276,16 +268,6 @@ abstract contract Pool is
|
|
276
268
|
_getPoolStorage()._poolService.setMaxBalanceAmount(maxBalanceAmount);
|
277
269
|
}
|
278
270
|
|
279
|
-
/// @dev Sets the required role to create/own bundles.
|
280
|
-
/// May only be called once after setting up a pool.
|
281
|
-
/// May only be called by pool owner.
|
282
|
-
function _setBundleOwnerRole(RoleId bundleOwnerRole)
|
283
|
-
internal
|
284
|
-
virtual
|
285
|
-
{
|
286
|
-
_getPoolStorage()._poolService.setBundleOwnerRole(bundleOwnerRole);
|
287
|
-
}
|
288
|
-
|
289
271
|
|
290
272
|
/// @dev Update pool fees to the specified values.
|
291
273
|
/// Pool fee: are deducted from the premium amount and goes to the pool owner.
|