@etherisc/gif-next 0.0.2-8fb3945-498 → 0.0.2-906d113-035
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +1 -1
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +105 -65
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +1 -1
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +67 -11
- package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +1 -1
- package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +1 -1
- package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.json +60 -32
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +40 -3
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +19 -0
- package/artifacts/contracts/authorization/ReleaseAccessManager.sol/ReleaseAccessManager.dbg.json +4 -0
- package/artifacts/contracts/authorization/ReleaseAccessManager.sol/ReleaseAccessManager.json +1196 -0
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +68 -5
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +151 -249
- 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 +91 -213
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +174 -237
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +99 -111
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +78 -66
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +78 -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 +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 +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +1471 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +1231 -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 +2095 -0
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +1 -1
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +2 -2
- package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstance.sol/IInstance.json +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 +56 -123
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +166 -139
- 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 +446 -81
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +77 -242
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +75 -87
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +335 -126
- 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 +132 -230
- 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 +73 -61
- 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 +86 -208
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +91 -159
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +75 -83
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +109 -216
- 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 +184 -185
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +120 -104
- 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 +98 -58
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +232 -131
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
- package/artifacts/contracts/pool/Pool.sol/Pool.json +109 -203
- package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolService.sol/PoolService.json +328 -292
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +102 -94
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +71 -152
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +72 -84
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +143 -224
- 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 +288 -188
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +119 -103
- 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 +161 -7
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +141 -16
- 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 +131 -78
- 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 +248 -222
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +110 -110
- package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
- package/artifacts/contracts/product/PricingService.sol/PricingService.json +199 -309
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +96 -120
- package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
- package/artifacts/contracts/product/Product.sol/Product.json +143 -224
- package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +4 -0
- package/artifacts/contracts/product/RiskService.sol/RiskService.json +622 -0
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +694 -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 +286 -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 +492 -95
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +283 -143
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +78 -284
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +67 -75
- package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +1 -1
- package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +47 -6
- package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +129 -221
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +66 -8
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +2 -2
- package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
- package/artifacts/contracts/shared/Component.sol/Component.json +68 -175
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +355 -339
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +122 -148
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +47 -112
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +4 -0
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +92 -0
- package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponent.sol/IComponent.json +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 +73 -61
- 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 +86 -208
- 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 +149 -49
- package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +4 -0
- package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +108 -0
- package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
- package/artifacts/contracts/staking/IStaking.sol/IStaking.json +82 -29
- 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 +83 -30
- package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
- package/artifacts/contracts/staking/Staking.sol/Staking.json +173 -298
- 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 +103 -124
- 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 +71 -165
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +71 -79
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +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/NftId.sol/NftIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/NftId.sol/NftIdLib.json +2 -2
- package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
- package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +2 -2
- package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
- package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +2 -2
- package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +19 -19
- package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
- package/artifacts/contracts/type/Referral.sol/ReferralLib.json +2 -2
- package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +2 -2
- package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +60 -4
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +2 -2
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
- package/artifacts/contracts/type/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 +55 -70
- package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +1 -1
- package/contracts/authorization/AccessAdmin.sol +64 -59
- package/contracts/authorization/Authorization.sol +111 -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 +2 -1
- package/contracts/distribution/Distribution.sol +7 -17
- package/contracts/distribution/DistributionService.sol +80 -47
- package/contracts/distribution/DistributionServiceManager.sol +6 -6
- package/contracts/distribution/IDistributionComponent.sol +1 -1
- package/contracts/distribution/IDistributionService.sol +8 -2
- 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 +50 -0
- package/contracts/examples/unpermissioned/SimpleOracle.sol +137 -0
- package/contracts/examples/unpermissioned/SimplePool.sol +76 -0
- package/contracts/examples/unpermissioned/SimpleProduct.sol +351 -0
- package/contracts/instance/IInstance.sol +10 -30
- package/contracts/instance/IInstanceService.sol +0 -20
- package/contracts/instance/Instance.sol +29 -51
- package/contracts/instance/InstanceAdmin.sol +42 -31
- package/contracts/instance/InstanceAuthorizationV3.sol +11 -21
- package/contracts/instance/InstanceReader.sol +106 -19
- package/contracts/instance/InstanceService.sol +25 -81
- package/contracts/instance/InstanceServiceManager.sol +6 -7
- package/contracts/instance/InstanceStore.sol +11 -1
- package/contracts/instance/base/ObjectLifecycle.sol +7 -1
- package/contracts/instance/module/IComponents.sol +10 -5
- package/contracts/instance/module/IPolicy.sol +23 -23
- 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 +47 -34
- package/contracts/oracle/OracleServiceManager.sol +6 -6
- package/contracts/pool/BasicPool.sol +14 -26
- package/contracts/pool/BasicPoolAuthorization.sol +0 -1
- package/contracts/pool/BundleService.sol +78 -34
- package/contracts/pool/BundleServiceManager.sol +6 -6
- package/contracts/pool/IBundleService.sol +10 -0
- package/contracts/pool/IPoolComponent.sol +18 -8
- package/contracts/pool/IPoolService.sol +49 -29
- package/contracts/pool/Pool.sol +53 -46
- package/contracts/pool/PoolService.sol +140 -124
- package/contracts/pool/PoolServiceManager.sol +4 -4
- package/contracts/product/ApplicationService.sol +13 -12
- package/contracts/product/ApplicationServiceManager.sol +4 -4
- package/contracts/product/BasicProduct.sol +7 -6
- package/contracts/product/BasicProductAuthorization.sol +0 -1
- package/contracts/product/ClaimService.sol +268 -93
- package/contracts/product/ClaimServiceManager.sol +4 -4
- package/contracts/product/IClaimService.sol +30 -7
- package/contracts/product/IPolicyService.sol +16 -20
- package/contracts/product/IPricingService.sol +10 -10
- package/contracts/product/IProductComponent.sol +23 -4
- package/contracts/product/{IProductService.sol → IRiskService.sol} +1 -2
- package/contracts/product/PolicyService.sol +198 -101
- package/contracts/product/PolicyServiceManager.sol +4 -4
- package/contracts/product/PricingService.sol +45 -52
- package/contracts/product/PricingServiceManager.sol +3 -3
- package/contracts/product/Product.sol +108 -66
- package/contracts/product/{ProductService.sol → RiskService.sol} +7 -10
- package/contracts/product/RiskServiceManager.sol +39 -0
- package/contracts/registry/ChainNft.sol +68 -38
- package/contracts/registry/IRegistry.sol +55 -18
- package/contracts/registry/IRegistryService.sol +5 -12
- package/contracts/registry/ITransferInterceptor.sol +1 -2
- package/contracts/registry/Registry.sol +342 -201
- package/contracts/registry/RegistryAdmin.sol +134 -51
- 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 -188
- package/contracts/registry/ServiceAuthorizationV3.sol +16 -22
- package/contracts/shared/Component.sol +30 -33
- package/contracts/shared/ComponentService.sol +233 -137
- package/contracts/shared/ComponentServiceManager.sol +8 -5
- package/contracts/shared/ComponentVerifyingService.sol +23 -14
- package/contracts/shared/ContractLib.sol +38 -0
- package/contracts/shared/IComponent.sol +6 -2
- package/contracts/shared/IComponentService.sol +25 -13
- package/contracts/shared/IInstanceLinkedComponent.sol +2 -17
- 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 +72 -31
- package/contracts/shared/KeyValueStore.sol +1 -1
- package/contracts/shared/Lifecycle.sol +15 -4
- package/contracts/shared/NftOwnable.sol +23 -7
- package/contracts/shared/PolicyHolder.sol +15 -52
- package/contracts/shared/Registerable.sol +19 -9
- package/contracts/shared/RegistryLinked.sol +3 -2
- package/contracts/shared/Service.sol +20 -18
- package/contracts/shared/TokenHandler.sol +24 -16
- package/contracts/shared/TokenHandlerDeployerLib.sol +12 -0
- package/contracts/staking/IStaking.sol +2 -1
- package/contracts/staking/IStakingService.sol +0 -3
- package/contracts/staking/StakeManagerLib.sol +18 -0
- package/contracts/staking/Staking.sol +11 -10
- package/contracts/staking/StakingManager.sol +8 -6
- package/contracts/staking/StakingReader.sol +12 -5
- package/contracts/staking/StakingService.sol +3 -17
- package/contracts/staking/StakingServiceManager.sol +2 -2
- package/contracts/staking/TargetManagerLib.sol +7 -3
- 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 +16 -11
- package/contracts/type/PayoutId.sol +10 -10
- package/contracts/type/RiskId.sol +15 -1
- 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 +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/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/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/pool/Pool.sol
CHANGED
@@ -2,7 +2,8 @@
|
|
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
|
+
import {ClaimId} from "../type/ClaimId.sol";
|
6
7
|
import {IBundleService} from "./IBundleService.sol";
|
7
8
|
import {IAuthorization} from "../authorization/IAuthorization.sol";
|
8
9
|
import {IPoolComponent} from "./IPoolComponent.sol";
|
@@ -10,13 +11,12 @@ import {IPoolService} from "./IPoolService.sol";
|
|
10
11
|
import {IComponents} from "../instance/module/IComponents.sol";
|
11
12
|
import {IComponentService} from "../shared/IComponentService.sol";
|
12
13
|
import {InstanceLinkedComponent} from "../shared/InstanceLinkedComponent.sol";
|
13
|
-
import {Fee
|
14
|
-
import {NftId
|
14
|
+
import {Fee} from "../type/Fee.sol";
|
15
|
+
import {NftId} from "../type/NftId.sol";
|
15
16
|
import {RoleId, PUBLIC_ROLE} from "../type/RoleId.sol";
|
16
17
|
import {Seconds} from "../type/Seconds.sol";
|
17
18
|
import {Timestamp} from "../type/Timestamp.sol";
|
18
|
-
import {
|
19
|
-
import {UFixed, UFixedLib} from "../type/UFixed.sol";
|
19
|
+
import {UFixedLib} from "../type/UFixed.sol";
|
20
20
|
|
21
21
|
abstract contract Pool is
|
22
22
|
InstanceLinkedComponent,
|
@@ -51,6 +51,7 @@ abstract contract Pool is
|
|
51
51
|
public
|
52
52
|
virtual
|
53
53
|
restricted()
|
54
|
+
onlyNftOfType(applicationNftId, POLICY())
|
54
55
|
{
|
55
56
|
if(!applicationMatchesBundle(
|
56
57
|
applicationNftId,
|
@@ -67,6 +68,21 @@ abstract contract Pool is
|
|
67
68
|
}
|
68
69
|
|
69
70
|
|
71
|
+
/// @dev see {IPoolComponent.processConfirmedClaim}
|
72
|
+
function processConfirmedClaim(
|
73
|
+
NftId policyNftId,
|
74
|
+
ClaimId claimId,
|
75
|
+
Amount amount
|
76
|
+
)
|
77
|
+
public
|
78
|
+
virtual
|
79
|
+
restricted()
|
80
|
+
onlyNftOfType(policyNftId, POLICY())
|
81
|
+
{
|
82
|
+
// default implementation is empty
|
83
|
+
}
|
84
|
+
|
85
|
+
|
70
86
|
/// @dev see {IPoolComponent.applicationMatchesBundle}
|
71
87
|
/// Override this function to implement any custom application verification
|
72
88
|
/// Default implementation always returns true
|
@@ -80,27 +96,20 @@ abstract contract Pool is
|
|
80
96
|
public
|
81
97
|
virtual
|
82
98
|
view
|
99
|
+
onlyNftOfType(applicationNftId, POLICY())
|
100
|
+
onlyNftOfType(bundleNftId, BUNDLE())
|
83
101
|
returns (bool isMatching)
|
84
102
|
{
|
85
103
|
return true;
|
86
104
|
}
|
87
105
|
|
88
|
-
|
89
|
-
function register()
|
90
|
-
external
|
91
|
-
virtual
|
92
|
-
onlyOwner()
|
93
|
-
{
|
94
|
-
_getPoolStorage()._componentService.registerPool();
|
95
|
-
_approveTokenHandler(type(uint256).max);
|
96
|
-
}
|
97
|
-
|
98
106
|
/// @inheritdoc IPoolComponent
|
99
107
|
function withdrawBundleFees(NftId bundleNftId, Amount amount)
|
100
108
|
external
|
101
109
|
virtual
|
102
110
|
restricted()
|
103
111
|
onlyBundleOwner(bundleNftId)
|
112
|
+
onlyNftOfType(bundleNftId, BUNDLE())
|
104
113
|
returns (Amount withdrawnAmount)
|
105
114
|
{
|
106
115
|
return _withdrawBundleFees(bundleNftId, amount);
|
@@ -113,28 +122,28 @@ abstract contract Pool is
|
|
113
122
|
view
|
114
123
|
returns (IComponents.PoolInfo memory poolInfo)
|
115
124
|
{
|
116
|
-
return IComponents.PoolInfo(
|
117
|
-
|
118
|
-
|
119
|
-
isNftInterceptor(),
|
120
|
-
false,
|
121
|
-
false,
|
122
|
-
|
123
|
-
UFixedLib.toUFixed(1)
|
124
|
-
|
125
|
+
return IComponents.PoolInfo({
|
126
|
+
maxBalanceAmount: AmountLib.max(),
|
127
|
+
bundleOwnerRole: PUBLIC_ROLE(),
|
128
|
+
isInterceptingBundleTransfers: isNftInterceptor(),
|
129
|
+
isProcessingConfirmedClaims: false,
|
130
|
+
isExternallyManaged: false,
|
131
|
+
isVerifyingApplications: false,
|
132
|
+
collateralizationLevel: UFixedLib.toUFixed(1),
|
133
|
+
retentionLevel: UFixedLib.toUFixed(1)
|
134
|
+
});
|
125
135
|
}
|
126
136
|
|
127
137
|
// Internals
|
128
138
|
|
129
139
|
function _initializePool(
|
130
140
|
address registry,
|
131
|
-
NftId
|
141
|
+
NftId productNftId,
|
132
142
|
string memory name,
|
133
143
|
address token,
|
134
144
|
IAuthorization authorization,
|
135
145
|
bool isInterceptingNftTransfers,
|
136
146
|
address initialOwner,
|
137
|
-
bytes memory registryData, // writeonly data that will saved in the object info record of the registry
|
138
147
|
bytes memory componentData // component specifidc data
|
139
148
|
)
|
140
149
|
internal
|
@@ -143,14 +152,13 @@ abstract contract Pool is
|
|
143
152
|
{
|
144
153
|
_initializeInstanceLinkedComponent(
|
145
154
|
registry,
|
146
|
-
|
155
|
+
productNftId,
|
147
156
|
name,
|
148
157
|
token,
|
149
158
|
POOL(),
|
150
159
|
authorization,
|
151
160
|
isInterceptingNftTransfers,
|
152
161
|
initialOwner,
|
153
|
-
registryData,
|
154
162
|
componentData);
|
155
163
|
|
156
164
|
PoolStorage storage $ = _getPoolStorage();
|
@@ -158,7 +166,7 @@ abstract contract Pool is
|
|
158
166
|
$._bundleService = IBundleService(_getServiceAddress(BUNDLE()));
|
159
167
|
$._componentService = IComponentService(_getServiceAddress(COMPONENT()));
|
160
168
|
|
161
|
-
|
169
|
+
_registerInterface(type(IPoolComponent).interfaceId);
|
162
170
|
}
|
163
171
|
|
164
172
|
/// @dev increases the staked tokens by the specified amount
|
@@ -169,9 +177,9 @@ abstract contract Pool is
|
|
169
177
|
)
|
170
178
|
internal
|
171
179
|
virtual
|
172
|
-
returns(Amount
|
180
|
+
returns(Amount)
|
173
181
|
{
|
174
|
-
_getPoolStorage()._poolService.stake(bundleNftId, amount);
|
182
|
+
return _getPoolStorage()._poolService.stake(bundleNftId, amount);
|
175
183
|
}
|
176
184
|
|
177
185
|
|
@@ -260,16 +268,6 @@ abstract contract Pool is
|
|
260
268
|
_getPoolStorage()._poolService.setMaxBalanceAmount(maxBalanceAmount);
|
261
269
|
}
|
262
270
|
|
263
|
-
/// @dev Sets the required role to create/own bundles.
|
264
|
-
/// May only be called once after setting up a pool.
|
265
|
-
/// May only be called by pool owner.
|
266
|
-
function _setBundleOwnerRole(RoleId bundleOwnerRole)
|
267
|
-
internal
|
268
|
-
virtual
|
269
|
-
{
|
270
|
-
_getPoolStorage()._poolService.setBundleOwnerRole(bundleOwnerRole);
|
271
|
-
}
|
272
|
-
|
273
271
|
|
274
272
|
/// @dev Update pool fees to the specified values.
|
275
273
|
/// Pool fee: are deducted from the premium amount and goes to the pool owner.
|
@@ -287,21 +285,19 @@ abstract contract Pool is
|
|
287
285
|
_getPoolStorage()._componentService.setPoolFees(poolFee, stakingFee, performanceFee);
|
288
286
|
}
|
289
287
|
|
290
|
-
/// @dev Creates a new bundle using the provided parameter values.
|
288
|
+
/// @dev Creates a new empty bundle using the provided parameter values.
|
291
289
|
function _createBundle(
|
292
290
|
address bundleOwner,
|
293
291
|
Fee memory fee,
|
294
|
-
Amount amount,
|
295
292
|
Seconds lifetime,
|
296
293
|
bytes memory filter
|
297
294
|
)
|
298
295
|
internal
|
299
|
-
returns(NftId bundleNftId
|
296
|
+
returns(NftId bundleNftId)
|
300
297
|
{
|
301
|
-
|
298
|
+
bundleNftId = _getPoolStorage()._poolService.createBundle(
|
302
299
|
bundleOwner,
|
303
300
|
fee,
|
304
|
-
amount,
|
305
301
|
lifetime,
|
306
302
|
filter);
|
307
303
|
|
@@ -320,6 +316,17 @@ abstract contract Pool is
|
|
320
316
|
return _getPoolStorage()._bundleService.withdrawBundleFees(bundleNftId, amount);
|
321
317
|
}
|
322
318
|
|
319
|
+
function _processFundedClaim(
|
320
|
+
NftId policyNftId,
|
321
|
+
ClaimId claimId,
|
322
|
+
Amount availableAmount
|
323
|
+
)
|
324
|
+
internal
|
325
|
+
{
|
326
|
+
_getPoolStorage()._poolService.processFundedClaim(
|
327
|
+
policyNftId, claimId, availableAmount);
|
328
|
+
}
|
329
|
+
|
323
330
|
function _getPoolStorage() private pure returns (PoolStorage storage $) {
|
324
331
|
assembly {
|
325
332
|
$.slot := POOL_STORAGE_LOCATION_V1
|
@@ -6,22 +6,20 @@ import {IBundleService} from "./IBundleService.sol";
|
|
6
6
|
import {IComponents} from "../instance/module/IComponents.sol";
|
7
7
|
import {IComponentService} from "../shared/IComponentService.sol";
|
8
8
|
import {IInstance} from "../instance/IInstance.sol";
|
9
|
-
import {IInstanceService} from "../instance/IInstanceService.sol";
|
10
9
|
import {IPolicy} from "../instance/module/IPolicy.sol";
|
10
|
+
import {IProductComponent} from "../product/IProductComponent.sol";
|
11
11
|
import {IPoolService} from "./IPoolService.sol";
|
12
12
|
import {IRegistry} from "../registry/IRegistry.sol";
|
13
|
-
import {IRegistryService} from "../registry/IRegistryService.sol";
|
14
13
|
import {IStaking} from "../staking/IStaking.sol";
|
15
14
|
|
16
15
|
import {Amount, AmountLib} from "../type/Amount.sol";
|
16
|
+
import {ClaimId} from "../type/ClaimId.sol";
|
17
17
|
import {Fee, FeeLib} from "../type/Fee.sol";
|
18
18
|
import {NftId} from "../type/NftId.sol";
|
19
|
-
import {ObjectType, POOL, BUNDLE,
|
20
|
-
import {RoleId, PUBLIC_ROLE} from "../type/RoleId.sol";
|
19
|
+
import {ObjectType, POOL, BUNDLE, PRODUCT, POLICY, COMPONENT} from "../type/ObjectType.sol";
|
21
20
|
import {Fee, FeeLib} from "../type/Fee.sol";
|
22
21
|
import {KEEP_STATE} from "../type/StateId.sol";
|
23
22
|
import {Seconds} from "../type/Seconds.sol";
|
24
|
-
import {TokenHandler} from "../shared/TokenHandler.sol";
|
25
23
|
import {UFixed} from "../type/UFixed.sol";
|
26
24
|
import {ComponentVerifyingService} from "../shared/ComponentVerifyingService.sol";
|
27
25
|
import {InstanceReader} from "../instance/InstanceReader.sol";
|
@@ -35,9 +33,6 @@ contract PoolService is
|
|
35
33
|
{
|
36
34
|
IBundleService internal _bundleService;
|
37
35
|
IComponentService internal _componentService;
|
38
|
-
IInstanceService private _instanceService;
|
39
|
-
IRegistryService private _registryService;
|
40
|
-
|
41
36
|
IStaking private _staking;
|
42
37
|
|
43
38
|
function _initialize(
|
@@ -45,27 +40,24 @@ contract PoolService is
|
|
45
40
|
bytes memory data
|
46
41
|
)
|
47
42
|
internal
|
48
|
-
initializer
|
49
43
|
virtual override
|
44
|
+
initializer()
|
50
45
|
{
|
51
46
|
(
|
52
|
-
address registryAddress
|
53
|
-
//address managerAddress
|
47
|
+
address registryAddress,
|
54
48
|
address authority
|
55
|
-
) = abi.decode(data, (address, address
|
49
|
+
) = abi.decode(data, (address, address));
|
56
50
|
|
57
|
-
|
51
|
+
_initializeService(registryAddress, authority, owner);
|
58
52
|
|
59
|
-
_registryService = IRegistryService(_getServiceAddress(REGISTRY()));
|
60
53
|
_bundleService = IBundleService(_getServiceAddress(BUNDLE()));
|
61
|
-
_instanceService = IInstanceService(_getServiceAddress(INSTANCE()));
|
62
54
|
_componentService = IComponentService(_getServiceAddress(COMPONENT()));
|
63
|
-
|
64
55
|
_staking = IStaking(getRegistry().getStakingAddress());
|
65
56
|
|
66
|
-
|
57
|
+
_registerInterface(type(IPoolService).interfaceId);
|
67
58
|
}
|
68
59
|
|
60
|
+
|
69
61
|
/// @inheritdoc IPoolService
|
70
62
|
function setMaxBalanceAmount(Amount maxBalanceAmount)
|
71
63
|
external
|
@@ -82,96 +74,38 @@ contract PoolService is
|
|
82
74
|
emit LogPoolServiceMaxBalanceAmountUpdated(poolNftId, previousMaxBalanceAmount, maxBalanceAmount);
|
83
75
|
}
|
84
76
|
|
85
|
-
function setBundleOwnerRole(RoleId bundleOwnerRole)
|
86
|
-
external
|
87
|
-
virtual
|
88
|
-
{
|
89
|
-
(NftId poolNftId,, IInstance instance) = _getAndVerifyActiveComponent(POOL());
|
90
|
-
InstanceReader instanceReader = instance.getInstanceReader();
|
91
|
-
|
92
|
-
IComponents.ComponentInfo memory componentInfo = instanceReader.getComponentInfo(poolNftId);
|
93
|
-
IComponents.PoolInfo memory poolInfo = abi.decode(componentInfo.data, (IComponents.PoolInfo));
|
94
|
-
|
95
|
-
// bundle owner role may only be set once per pool
|
96
|
-
if(poolInfo.bundleOwnerRole != PUBLIC_ROLE()) {
|
97
|
-
revert ErrorPoolServiceBundleOwnerRoleAlreadySet(poolNftId);
|
98
|
-
}
|
99
|
-
|
100
|
-
poolInfo.bundleOwnerRole = bundleOwnerRole;
|
101
|
-
instance.getInstanceStore().updatePool(poolNftId, poolInfo, KEEP_STATE());
|
102
|
-
|
103
|
-
emit LogPoolServiceBundleOwnerRoleSet(poolNftId, bundleOwnerRole);
|
104
|
-
}
|
105
77
|
|
106
78
|
/// @inheritdoc IPoolService
|
107
79
|
function createBundle(
|
108
80
|
address bundleOwner, // initial bundle owner
|
109
81
|
Fee memory fee, // fees deducted from premium that go to bundle owner
|
110
|
-
Amount stakingAmount, // staking amount - staking fees result in initial bundle capital
|
111
82
|
Seconds lifetime, // initial duration for which new policies are covered
|
112
83
|
bytes calldata filter // optional use case specific criteria that define if a policy may be covered by this bundle
|
113
84
|
)
|
114
85
|
external
|
115
86
|
virtual
|
116
|
-
returns(NftId bundleNftId
|
87
|
+
returns(NftId bundleNftId)
|
117
88
|
{
|
118
89
|
(NftId poolNftId,, IInstance instance) = _getAndVerifyActiveComponent(POOL());
|
119
90
|
|
120
|
-
|
121
|
-
InstanceReader instanceReader = instance.getInstanceReader();
|
122
|
-
IComponents.PoolInfo memory poolInfo = instanceReader.getPoolInfo(poolNftId);
|
123
|
-
Amount currentPoolBalance = instanceReader.getBalanceAmount(poolNftId);
|
124
|
-
if (currentPoolBalance + stakingAmount > poolInfo.maxBalanceAmount) {
|
125
|
-
revert ErrorPoolServiceMaxBalanceAmountExceeded(poolNftId, poolInfo.maxBalanceAmount, currentPoolBalance, stakingAmount);
|
126
|
-
}
|
127
|
-
}
|
128
|
-
|
129
|
-
|
130
|
-
Amount stakingFeeAmount;
|
131
|
-
(stakingFeeAmount, netStakedAmount) = FeeLib.calculateFee(
|
132
|
-
_getStakingFee(instance.getInstanceReader(), poolNftId),
|
133
|
-
stakingAmount);
|
134
|
-
|
135
|
-
|
91
|
+
// create the empty bundle
|
136
92
|
bundleNftId = _bundleService.create(
|
137
93
|
instance,
|
138
94
|
poolNftId,
|
139
95
|
bundleOwner,
|
140
96
|
fee,
|
141
|
-
|
97
|
+
AmountLib.zero(),
|
142
98
|
lifetime,
|
143
99
|
filter);
|
144
100
|
|
145
|
-
// pool book keeping
|
146
|
-
_componentService.increasePoolBalance(
|
147
|
-
instance.getInstanceStore(),
|
148
|
-
poolNftId,
|
149
|
-
netStakedAmount,
|
150
|
-
stakingFeeAmount);
|
151
|
-
|
152
|
-
// pool bookkeeping and collect tokens from bundle owner
|
153
|
-
_collectStakingAmount(
|
154
|
-
instance.getInstanceReader(),
|
155
|
-
poolNftId,
|
156
|
-
bundleOwner,
|
157
|
-
stakingAmount);
|
158
|
-
|
159
101
|
emit LogPoolServiceBundleCreated(instance.getNftId(), poolNftId, bundleNftId);
|
160
102
|
}
|
161
103
|
|
162
|
-
function _getStakingFee(InstanceReader instanceReader, NftId poolNftId)
|
163
|
-
internal
|
164
|
-
virtual
|
165
|
-
view
|
166
|
-
returns (Fee memory stakingFee)
|
167
|
-
{
|
168
|
-
NftId productNftId = instanceReader.getComponentInfo(poolNftId).productNftId;
|
169
|
-
return instanceReader.getProductInfo(productNftId).stakingFee;
|
170
|
-
}
|
171
104
|
|
172
105
|
function closeBundle(NftId bundleNftId)
|
173
106
|
external
|
174
107
|
virtual
|
108
|
+
onlyNftOfType(bundleNftId, BUNDLE())
|
175
109
|
{
|
176
110
|
(NftId poolNftId,, IInstance instance) = _getAndVerifyActiveComponent(POOL());
|
177
111
|
|
@@ -197,11 +131,46 @@ contract PoolService is
|
|
197
131
|
}
|
198
132
|
}
|
199
133
|
|
134
|
+
|
135
|
+
/// @inheritdoc IPoolService
|
136
|
+
function processFundedClaim(
|
137
|
+
NftId policyNftId,
|
138
|
+
ClaimId claimId,
|
139
|
+
Amount availableAmount
|
140
|
+
)
|
141
|
+
external
|
142
|
+
virtual
|
143
|
+
onlyNftOfType(policyNftId, POLICY())
|
144
|
+
{
|
145
|
+
(NftId poolNftId,, IInstance instance) = _getAndVerifyActiveComponent(POOL());
|
146
|
+
InstanceReader instanceReader = instance.getInstanceReader();
|
147
|
+
NftId productNftId = _getProductNftId(poolNftId);
|
148
|
+
|
149
|
+
// check policy matches with calling pool
|
150
|
+
IPolicy.PolicyInfo memory policyInfo = instanceReader.getPolicyInfo(policyNftId);
|
151
|
+
if(policyInfo.productNftId != productNftId) {
|
152
|
+
revert ErrorPoolServicePolicyPoolMismatch(
|
153
|
+
policyNftId,
|
154
|
+
policyInfo.productNftId,
|
155
|
+
productNftId);
|
156
|
+
}
|
157
|
+
|
158
|
+
emit LogPoolServiceProcessFundedClaim(policyNftId, claimId, availableAmount);
|
159
|
+
|
160
|
+
// callback to product component if applicable
|
161
|
+
if (instanceReader.getProductInfo(productNftId).isProcessingFundedClaims) {
|
162
|
+
address productAddress = getRegistry().getObjectAddress(productNftId);
|
163
|
+
IProductComponent(productAddress).processFundedClaim(policyNftId, claimId, availableAmount);
|
164
|
+
}
|
165
|
+
}
|
166
|
+
|
167
|
+
|
200
168
|
/// @inheritdoc IPoolService
|
201
169
|
function stake(NftId bundleNftId, Amount amount)
|
202
170
|
external
|
203
171
|
virtual
|
204
172
|
// TODO: restricted() (once #462 is done)
|
173
|
+
onlyNftOfType(bundleNftId, BUNDLE())
|
205
174
|
returns(Amount netAmount)
|
206
175
|
{
|
207
176
|
(NftId poolNftId,, IInstance instance) = _getAndVerifyActiveComponent(POOL());
|
@@ -221,13 +190,19 @@ contract PoolService is
|
|
221
190
|
}
|
222
191
|
|
223
192
|
// calculate fees
|
193
|
+
IRegistry registry = getRegistry();
|
224
194
|
Amount feeAmount;
|
225
|
-
|
226
|
-
|
227
|
-
|
228
|
-
|
229
|
-
|
230
|
-
|
195
|
+
|
196
|
+
{
|
197
|
+
NftId productNftId = registry.getObjectInfo(poolNftId).parentNftId;
|
198
|
+
Fee memory stakingFee = instanceReader.getProductInfo(productNftId).stakingFee;
|
199
|
+
(
|
200
|
+
feeAmount,
|
201
|
+
netAmount
|
202
|
+
) = FeeLib.calculateFee(
|
203
|
+
stakingFee,
|
204
|
+
amount);
|
205
|
+
}
|
231
206
|
|
232
207
|
// do all the bookkeeping
|
233
208
|
_componentService.increasePoolBalance(
|
@@ -239,8 +214,10 @@ contract PoolService is
|
|
239
214
|
_bundleService.stake(instance, bundleNftId, netAmount);
|
240
215
|
|
241
216
|
// collect tokens from bundle owner
|
242
|
-
address bundleOwner =
|
217
|
+
address bundleOwner = registry.ownerOf(bundleNftId);
|
243
218
|
emit LogPoolServiceBundleStaked(instance.getNftId(), poolNftId, bundleNftId, amount, netAmount);
|
219
|
+
|
220
|
+
// TODO only collect staking token when pool is not externally managed
|
244
221
|
_collectStakingAmount(
|
245
222
|
instanceReader,
|
246
223
|
poolNftId,
|
@@ -252,6 +229,7 @@ contract PoolService is
|
|
252
229
|
function unstake(NftId bundleNftId, Amount amount)
|
253
230
|
external
|
254
231
|
virtual
|
232
|
+
onlyNftOfType(bundleNftId, BUNDLE())
|
255
233
|
// TODO: restricted() (once #462 is done)
|
256
234
|
returns(Amount netAmount)
|
257
235
|
{
|
@@ -280,45 +258,68 @@ contract PoolService is
|
|
280
258
|
AmountLib.zero());
|
281
259
|
|
282
260
|
IComponents.ComponentInfo memory poolComponentInfo = instanceReader.getComponentInfo(poolNftId);
|
283
|
-
|
261
|
+
|
284
262
|
// transfer amount to bundle owner
|
285
263
|
address owner = getRegistry().ownerOf(bundleNftId);
|
286
264
|
emit LogPoolServiceBundleUnstaked(instance.getNftId(), poolNftId, bundleNftId, unstakedAmount);
|
287
265
|
poolComponentInfo.tokenHandler.distributeTokens(
|
288
|
-
|
266
|
+
poolComponentInfo.wallet,
|
289
267
|
owner,
|
290
268
|
unstakedAmount);
|
269
|
+
|
291
270
|
return unstakedAmount;
|
292
271
|
}
|
293
272
|
|
273
|
+
|
274
|
+
function fundPoolWallet(NftId poolNftId, Amount amount)
|
275
|
+
external
|
276
|
+
virtual
|
277
|
+
restricted()
|
278
|
+
onlyNftOfType(poolNftId, POOL())
|
279
|
+
{
|
280
|
+
// TODO check that poolNftId is externally managed
|
281
|
+
// TODO implement
|
282
|
+
}
|
283
|
+
|
284
|
+
|
285
|
+
function defundPoolWallet(NftId poolNftId, Amount amount)
|
286
|
+
external
|
287
|
+
virtual
|
288
|
+
restricted()
|
289
|
+
onlyNftOfType(poolNftId, POOL())
|
290
|
+
{
|
291
|
+
// TODO check that poolNftId is externally managed
|
292
|
+
// TODO implement
|
293
|
+
}
|
294
|
+
|
294
295
|
function processSale(
|
295
296
|
NftId bundleNftId,
|
296
|
-
IPolicy.
|
297
|
+
IPolicy.PremiumInfo memory premium
|
297
298
|
)
|
298
299
|
external
|
299
300
|
virtual
|
300
301
|
restricted()
|
302
|
+
onlyNftOfType(bundleNftId, BUNDLE())
|
301
303
|
{
|
302
304
|
IRegistry registry = getRegistry();
|
303
|
-
IRegistry.ObjectInfo memory
|
304
|
-
IRegistry.ObjectInfo memory
|
305
|
-
|
306
|
-
IInstance instance = IInstance(instanceObjectInfo.objectAddress);
|
305
|
+
IRegistry.ObjectInfo memory bundleInfo = registry.getObjectInfo(bundleNftId);
|
306
|
+
IRegistry.ObjectInfo memory poolInfo = registry.getObjectInfo(bundleInfo.parentNftId);
|
307
|
+
IInstance instance = _getInstanceForComponent(registry, poolInfo);
|
307
308
|
|
308
|
-
Amount poolFeeAmount =
|
309
|
-
Amount bundleFeeAmount =
|
310
|
-
Amount bundleNetAmount =
|
309
|
+
Amount poolFeeAmount = premium.poolFeeFixAmount + premium.poolFeeVarAmount;
|
310
|
+
Amount bundleFeeAmount = premium.bundleFeeFixAmount + premium.bundleFeeVarAmount;
|
311
|
+
Amount bundleNetAmount = premium.netPremiumAmount;
|
311
312
|
|
312
313
|
InstanceStore instanceStore = instance.getInstanceStore();
|
313
314
|
_componentService.increasePoolBalance(
|
314
315
|
instanceStore,
|
315
|
-
|
316
|
+
poolInfo.nftId,
|
316
317
|
bundleNetAmount + bundleFeeAmount,
|
317
318
|
poolFeeAmount);
|
318
319
|
|
319
320
|
_componentService.increaseBundleBalance(
|
320
321
|
instanceStore,
|
321
|
-
|
322
|
+
bundleInfo.nftId,
|
322
323
|
bundleNetAmount,
|
323
324
|
bundleFeeAmount);
|
324
325
|
}
|
@@ -335,14 +336,17 @@ contract PoolService is
|
|
335
336
|
external
|
336
337
|
virtual
|
337
338
|
restricted()
|
339
|
+
onlyNftOfType(productNftId, PRODUCT())
|
340
|
+
onlyNftOfType(applicationNftId, POLICY())
|
341
|
+
onlyNftOfType(bundleNftId, BUNDLE())
|
338
342
|
returns (
|
339
|
-
Amount
|
340
|
-
Amount
|
343
|
+
Amount totalCollateralAmount,
|
344
|
+
Amount localCollateralAmount
|
341
345
|
)
|
342
346
|
{
|
343
347
|
(
|
344
|
-
|
345
|
-
|
348
|
+
totalCollateralAmount,
|
349
|
+
localCollateralAmount
|
346
350
|
) = calculateRequiredCollateral(
|
347
351
|
instance.getInstanceReader(),
|
348
352
|
productNftId,
|
@@ -360,16 +364,9 @@ contract PoolService is
|
|
360
364
|
instance.getNftId(),
|
361
365
|
token,
|
362
366
|
totalCollateralAmount);
|
363
|
-
|
364
|
-
// hierarhical riskpool setup
|
365
|
-
// TODO loop in with pool component to guarantee availability of external capital
|
366
|
-
if(totalCollateralAmount > localCollateralAmount) {
|
367
|
-
|
368
|
-
}
|
369
367
|
}
|
370
368
|
|
371
|
-
|
372
|
-
function reduceCollateral(
|
369
|
+
function processPayout(
|
373
370
|
IInstance instance,
|
374
371
|
address token,
|
375
372
|
NftId policyNftId,
|
@@ -379,7 +376,24 @@ contract PoolService is
|
|
379
376
|
external
|
380
377
|
virtual
|
381
378
|
restricted()
|
379
|
+
onlyNftOfType(policyNftId, POLICY())
|
382
380
|
{
|
381
|
+
NftId bundleNftId = policyInfo.bundleNftId;
|
382
|
+
NftId poolNftId = getRegistry().getObjectInfo(bundleNftId).parentNftId;
|
383
|
+
InstanceStore instanceStore = instance.getInstanceStore();
|
384
|
+
|
385
|
+
_componentService.decreasePoolBalance(
|
386
|
+
instanceStore,
|
387
|
+
poolNftId,
|
388
|
+
payoutAmount,
|
389
|
+
AmountLib.zero());
|
390
|
+
|
391
|
+
_componentService.decreaseBundleBalance(
|
392
|
+
instanceStore,
|
393
|
+
bundleNftId,
|
394
|
+
payoutAmount,
|
395
|
+
AmountLib.zero());
|
396
|
+
|
383
397
|
_bundleService.releaseCollateral(
|
384
398
|
instance,
|
385
399
|
policyNftId,
|
@@ -405,6 +419,7 @@ contract PoolService is
|
|
405
419
|
external
|
406
420
|
virtual
|
407
421
|
restricted()
|
422
|
+
onlyNftOfType(policyNftId, POLICY())
|
408
423
|
{
|
409
424
|
Amount remainingCollateralAmount = policyInfo.sumInsuredAmount - policyInfo.claimAmount;
|
410
425
|
|
@@ -433,17 +448,18 @@ contract PoolService is
|
|
433
448
|
)
|
434
449
|
public
|
435
450
|
view
|
451
|
+
onlyNftOfType(productNftId, PRODUCT())
|
436
452
|
returns(
|
437
|
-
Amount
|
438
|
-
Amount
|
453
|
+
Amount totalCollateralAmount,
|
454
|
+
Amount localCollateralAmount
|
439
455
|
)
|
440
456
|
{
|
441
457
|
NftId poolNftId = instanceReader.getProductInfo(productNftId).poolNftId;
|
442
458
|
IComponents.PoolInfo memory poolInfo = instanceReader.getPoolInfo(poolNftId);
|
443
459
|
|
444
460
|
(
|
445
|
-
|
446
|
-
|
461
|
+
totalCollateralAmount,
|
462
|
+
localCollateralAmount
|
447
463
|
) = calculateRequiredCollateral(
|
448
464
|
poolInfo.collateralizationLevel,
|
449
465
|
poolInfo.retentionLevel,
|
@@ -459,18 +475,17 @@ contract PoolService is
|
|
459
475
|
public
|
460
476
|
pure
|
461
477
|
returns(
|
462
|
-
Amount
|
463
|
-
Amount
|
478
|
+
Amount totalCollateralAmount,
|
479
|
+
Amount localCollateralAmount
|
464
480
|
)
|
465
481
|
{
|
466
|
-
//
|
467
|
-
|
468
|
-
|
469
|
-
|
470
|
-
//
|
471
|
-
|
472
|
-
|
473
|
-
totalCollateralAmount = localCollateralAmount;
|
482
|
+
// collateralization is applied to sum insured
|
483
|
+
UFixed totalUFixed = collateralizationLevel * sumInsuredAmount.toUFixed();
|
484
|
+
totalCollateralAmount = AmountLib.toAmount(totalUFixed.toInt());
|
485
|
+
|
486
|
+
// retention level defines how much capital is required locally
|
487
|
+
localCollateralAmount = AmountLib.toAmount(
|
488
|
+
(retentionLevel * totalUFixed).toInt());
|
474
489
|
}
|
475
490
|
|
476
491
|
|
@@ -479,6 +494,7 @@ contract PoolService is
|
|
479
494
|
Amount stakingAmount
|
480
495
|
)
|
481
496
|
internal
|
497
|
+
pure
|
482
498
|
returns (Amount stakingNetAmount)
|
483
499
|
{
|
484
500
|
stakingNetAmount = stakingAmount;
|