@etherisc/gif-next 3.0.0-f90c901-018 → 3.0.0-fbbe3fc-042
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 -0
- package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.dbg.json +1 -1
- package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +72 -139
- package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +116 -110
- package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.dbg.json +1 -1
- package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.json +33 -72
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +1 -1
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +70 -105
- package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.dbg.json +1 -1
- package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.json +150 -126
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +1 -1
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +65 -20
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +55 -31
- 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 +10 -20
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +1 -1
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +1 -1
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +42 -18
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +75 -126
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +1 -1
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +65 -41
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +57 -72
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +139 -198
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +150 -140
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +56 -84
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +32 -71
- package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.json +104 -166
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +65 -41
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +138 -200
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +65 -41
- package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +1 -1
- package/artifacts/contracts/examples/flight/FlightLib.sol/FlightLib.dbg.json +4 -0
- package/artifacts/contracts/examples/flight/FlightLib.sol/FlightLib.json +728 -0
- package/artifacts/contracts/examples/flight/FlightMessageVerifier.sol/FlightMessageVerifier.dbg.json +4 -0
- package/artifacts/contracts/examples/flight/FlightMessageVerifier.sol/FlightMessageVerifier.json +229 -0
- package/artifacts/contracts/examples/flight/FlightOracle.sol/FlightOracle.dbg.json +4 -0
- package/artifacts/contracts/examples/flight/FlightOracle.sol/FlightOracle.json +1234 -0
- package/artifacts/contracts/examples/flight/FlightOracleAuthorization.sol/FlightOracleAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/flight/FlightOracleAuthorization.sol/FlightOracleAuthorization.json +896 -0
- package/artifacts/contracts/examples/flight/FlightPool.sol/FlightPool.dbg.json +4 -0
- package/artifacts/contracts/examples/flight/FlightPool.sol/FlightPool.json +1466 -0
- package/artifacts/contracts/examples/flight/FlightPoolAuthorization.sol/FlightPoolAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/flight/FlightPoolAuthorization.sol/FlightPoolAuthorization.json +844 -0
- package/artifacts/contracts/examples/flight/FlightProduct.sol/FlightProduct.dbg.json +4 -0
- package/artifacts/contracts/examples/flight/FlightProduct.sol/FlightProduct.json +2497 -0
- package/artifacts/contracts/examples/flight/FlightProductAuthorization.sol/FlightProductAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/flight/FlightProductAuthorization.sol/FlightProductAuthorization.json +891 -0
- package/artifacts/contracts/examples/flight/FlightUSD.sol/FlightUSD.dbg.json +4 -0
- package/artifacts/contracts/examples/flight/FlightUSD.sol/FlightUSD.json +586 -0
- package/artifacts/contracts/examples/flight/originalV1.sol/FlightDelayChainlink.dbg.json +4 -0
- package/artifacts/contracts/examples/flight/originalV1.sol/FlightDelayChainlink.json +901 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +102 -159
- package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +65 -41
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +106 -163
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +120 -177
- package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +65 -41
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +114 -171
- package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +65 -41
- package/artifacts/contracts/instance/BaseStore.sol/BaseStore.dbg.json +1 -1
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +1 -1
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +54 -49
- package/artifacts/contracts/instance/IBaseStore.sol/IBaseStore.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstance.sol/IInstance.json +26 -78
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +44 -83
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +51 -145
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +151 -185
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +67 -43
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +203 -77
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +75 -138
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +112 -104
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +2 -2
- package/artifacts/contracts/instance/ProductStore.sol/ProductStore.dbg.json +1 -1
- package/artifacts/contracts/instance/ProductStore.sol/ProductStore.json +2 -2
- package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +1 -1
- package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +58 -53
- 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/Cloneable.sol/Cloneable.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 +2 -2
- package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +8 -3
- package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.json +2 -2
- package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
- package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +1 -1
- package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +1 -1
- package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +81 -132
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +1 -1
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +65 -41
- 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 +66 -94
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +83 -80
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +67 -82
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +148 -149
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +129 -111
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +73 -88
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +65 -41
- package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleService.sol/BundleService.json +117 -176
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +139 -129
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +32 -71
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +72 -100
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +86 -94
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
- package/artifacts/contracts/pool/Pool.sol/Pool.json +73 -88
- package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolLib.sol/PoolLib.json +247 -24
- package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolService.sol/PoolService.json +165 -233
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +130 -140
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +63 -138
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +112 -110
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +57 -72
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +65 -41
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +115 -182
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +138 -132
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +32 -71
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +32 -71
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +64 -82
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +43 -82
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +56 -84
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +1 -1
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.json +36 -75
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +127 -173
- package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.json +2 -2
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +128 -122
- package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
- package/artifacts/contracts/product/PricingService.sol/PricingService.json +94 -161
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +122 -116
- package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
- package/artifacts/contracts/product/Product.sol/Product.json +57 -72
- package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +1 -1
- package/artifacts/contracts/product/RiskService.sol/RiskService.json +63 -146
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +107 -109
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +56 -155
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +216 -202
- package/artifacts/contracts/registry/IRelease.sol/IRelease.dbg.json +1 -1
- package/artifacts/contracts/registry/IRelease.sol/IRelease.json +15 -1
- package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
- package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
- package/artifacts/contracts/registry/Registry.sol/Registry.json +96 -314
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +146 -179
- package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.json +77 -57
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +244 -285
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +110 -115
- package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +1 -1
- package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +154 -175
- package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +1 -1
- package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +2 -2
- package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +187 -135
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +56 -32
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +29 -13
- package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
- package/artifacts/contracts/shared/Component.sol/Component.json +39 -84
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +320 -164
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +141 -115
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +1 -1
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +169 -421
- package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +4 -0
- package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.json +24 -0
- package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +1 -1
- package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.dbg.json +4 -0
- package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.json +40 -0
- package/artifacts/contracts/shared/IAuthorizedComponent.sol/IAuthorizedComponent.dbg.json +4 -0
- package/artifacts/contracts/shared/IAuthorizedComponent.sol/IAuthorizedComponent.json +633 -0
- package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponent.sol/IComponent.json +38 -96
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +226 -82
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +56 -84
- package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +28 -1
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +12 -1
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +25 -77
- package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.json +12 -1
- package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
- package/artifacts/contracts/shared/IService.sol/IService.json +32 -71
- 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 +57 -72
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
- package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +1 -1
- package/artifacts/contracts/shared/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 +34 -15
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +14 -3
- package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
- package/artifacts/contracts/shared/Registerable.sol/Registerable.json +24 -76
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +37 -3
- package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
- package/artifacts/contracts/shared/Service.sol/Service.json +31 -70
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +29 -42
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +17 -30
- package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +34 -34
- package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
- package/artifacts/contracts/staking/IStaking.sol/IStaking.json +56 -101
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +36 -75
- package/artifacts/contracts/staking/ITargetLimitHandler.sol/ITargetLimitHandler.dbg.json +1 -1
- package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
- package/artifacts/contracts/staking/Staking.sol/Staking.json +109 -170
- package/artifacts/contracts/staking/StakingLib.sol/StakingLib.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingLib.sol/StakingLib.json +31 -26
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +124 -112
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +22 -5
- package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingService.sol/StakingService.json +65 -132
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +111 -105
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +204 -212
- package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.dbg.json +1 -1
- package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.json +19 -27
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +16 -16
- package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
- package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
- package/artifacts/contracts/type/ChainId.sol/ChainIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/ChainId.sol/ChainIdLib.json +2 -2
- package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +2 -2
- 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/Key32.sol/Key32Lib.dbg.json +1 -1
- package/artifacts/contracts/type/Key32.sol/Key32Lib.json +2 -2
- package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.dbg.json +1 -1
- package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.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 +22 -25
- 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 +23 -4
- 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/RequestIdSet.sol/LibRequestIdSet.dbg.json +4 -0
- package/artifacts/contracts/type/RequestIdSet.sol/LibRequestIdSet.json +33 -0
- package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +2 -2
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +4 -4
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +21 -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/String.sol/StrLib.dbg.json +1 -1
- package/artifacts/contracts/type/String.sol/StrLib.json +21 -2
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +36 -4
- 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/VersionLib.json +10 -10
- package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
- package/artifacts/contracts/type/Version.sol/VersionPartLib.json +6 -19
- package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +4 -0
- package/artifacts/contracts/upgradeability/{IUpgradeable.sol/IUpgradeable.json → IVersionable.sol/IVersionable.json} +4 -54
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +86 -63
- package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +4 -0
- package/artifacts/contracts/upgradeability/{Upgradeable.sol/Upgradeable.json → Versionable.sol/Versionable.json} +4 -54
- package/contracts/accounting/AccountingService.sol +6 -5
- package/contracts/accounting/AccountingServiceManager.sol +6 -4
- package/contracts/accounting/IAccountingService.sol +1 -1
- package/contracts/authorization/AccessAdmin.sol +43 -45
- package/contracts/authorization/AccessAdminLib.sol +29 -15
- package/contracts/authorization/AccessManagerCloneable.sol +48 -24
- package/contracts/authorization/Authorization.sol +2 -2
- package/contracts/authorization/IAccessAdmin.sol +3 -3
- package/contracts/authorization/IServiceAuthorization.sol +1 -1
- package/contracts/authorization/ServiceAuthorization.sol +4 -4
- package/contracts/distribution/BasicDistribution.sol +2 -0
- package/contracts/distribution/BasicDistributionAuthorization.sol +4 -5
- package/contracts/distribution/Distribution.sol +2 -0
- package/contracts/distribution/DistributionService.sol +20 -24
- package/contracts/distribution/DistributionServiceManager.sol +6 -4
- package/contracts/examples/fire/FirePool.sol +4 -0
- package/contracts/examples/fire/FireProduct.sol +4 -0
- package/contracts/examples/flight/FlightLib.sol +300 -0
- package/contracts/examples/flight/FlightMessageVerifier.sol +128 -0
- package/contracts/examples/flight/FlightOracle.sol +171 -0
- package/contracts/examples/flight/FlightOracleAuthorization.sol +53 -0
- package/contracts/examples/flight/FlightPool.sol +89 -0
- package/contracts/examples/flight/FlightPoolAuthorization.sol +37 -0
- package/contracts/examples/flight/FlightProduct.sol +685 -0
- package/contracts/examples/flight/FlightProductAuthorization.sol +69 -0
- package/contracts/examples/flight/FlightUSD.sol +28 -0
- package/contracts/examples/flight/originalV1.sol +396 -0
- package/contracts/examples/unpermissioned/SimpleDistribution.sol +4 -0
- package/contracts/examples/unpermissioned/SimpleOracle.sol +4 -0
- package/contracts/examples/unpermissioned/SimplePool.sol +4 -0
- package/contracts/examples/unpermissioned/SimpleProduct.sol +4 -0
- package/contracts/instance/IInstance.sol +1 -1
- package/contracts/instance/Instance.sol +12 -8
- package/contracts/instance/InstanceAdmin.sol +17 -11
- package/contracts/instance/InstanceAuthorizationV3.sol +2 -4
- package/contracts/instance/InstanceReader.sol +46 -18
- package/contracts/instance/InstanceService.sol +20 -18
- package/contracts/instance/InstanceServiceManager.sol +6 -4
- package/contracts/instance/base/Cloneable.sol +10 -4
- package/contracts/instance/base/ObjectSet.sol +2 -2
- package/contracts/oracle/BasicOracle.sol +2 -0
- package/contracts/oracle/BasicOracleAuthorization.sol +1 -3
- package/contracts/oracle/IOracleService.sol +16 -12
- package/contracts/oracle/Oracle.sol +4 -3
- package/contracts/oracle/OracleService.sol +67 -37
- package/contracts/oracle/OracleServiceManager.sol +6 -4
- package/contracts/pool/BasicPool.sol +4 -2
- package/contracts/pool/BasicPoolAuthorization.sol +4 -5
- package/contracts/pool/BundleService.sol +19 -25
- package/contracts/pool/BundleServiceManager.sol +7 -5
- package/contracts/pool/IPoolService.sol +6 -5
- package/contracts/pool/Pool.sol +3 -1
- package/contracts/pool/PoolLib.sol +102 -5
- package/contracts/pool/PoolService.sol +101 -67
- package/contracts/pool/PoolServiceManager.sol +6 -4
- package/contracts/product/ApplicationService.sol +34 -13
- package/contracts/product/ApplicationServiceManager.sol +6 -4
- package/contracts/product/BasicProduct.sol +2 -0
- package/contracts/product/BasicProductAuthorization.sol +7 -7
- package/contracts/product/ClaimService.sol +34 -10
- package/contracts/product/ClaimServiceManager.sol +7 -5
- package/contracts/product/IPolicyService.sol +1 -0
- package/contracts/product/PolicyService.sol +57 -44
- package/contracts/product/PolicyServiceManager.sol +6 -4
- package/contracts/product/PricingService.sol +8 -7
- package/contracts/product/PricingServiceManager.sol +6 -4
- package/contracts/product/Product.sol +2 -0
- package/contracts/product/RiskService.sol +40 -8
- package/contracts/product/RiskServiceManager.sol +6 -4
- package/contracts/registry/IRegistry.sol +14 -20
- package/contracts/registry/IRegistryService.sol +14 -10
- package/contracts/registry/IRelease.sol +3 -0
- package/contracts/registry/Registry.sol +78 -124
- package/contracts/registry/RegistryAdmin.sol +29 -12
- package/contracts/registry/RegistryAuthorization.sol +3 -4
- package/contracts/registry/RegistryService.sol +82 -99
- package/contracts/registry/RegistryServiceManager.sol +11 -4
- package/contracts/registry/ReleaseAdmin.sol +23 -9
- package/contracts/registry/ReleaseRegistry.sol +74 -64
- package/contracts/registry/ServiceAuthorizationV3.sol +3 -4
- package/contracts/registry/TokenRegistry.sol +15 -6
- package/contracts/shared/Component.sol +22 -27
- package/contracts/shared/ComponentService.sol +130 -45
- package/contracts/shared/ComponentServiceManager.sol +7 -5
- package/contracts/shared/ContractLib.sol +93 -359
- package/contracts/shared/EcdsaChecker.sol +5 -0
- package/contracts/shared/IAuthorizedComponent.sol +15 -0
- package/contracts/shared/IComponent.sol +3 -5
- package/contracts/shared/IComponentService.sol +14 -0
- package/contracts/shared/IInstanceLinkedComponent.sol +9 -9
- package/contracts/shared/INftOwnable.sol +2 -0
- package/contracts/shared/IRegisterable.sol +3 -14
- package/contracts/shared/IRegistryLinked.sol +3 -1
- package/contracts/shared/IService.sol +2 -2
- package/contracts/shared/InstanceLinkedComponent.sol +130 -39
- package/contracts/shared/NftOwnable.sol +22 -9
- package/contracts/shared/PolicyHolder.sol +4 -2
- package/contracts/shared/Registerable.sol +20 -37
- package/contracts/shared/RegistryLinked.sol +23 -4
- package/contracts/shared/Service.sol +9 -8
- package/contracts/shared/TokenHandler.sol +1 -4
- package/contracts/staking/IStaking.sol +2 -2
- package/contracts/staking/Staking.sol +33 -28
- package/contracts/staking/StakingLib.sol +1 -3
- package/contracts/staking/StakingManager.sol +6 -3
- package/contracts/staking/StakingReader.sol +17 -9
- package/contracts/staking/StakingService.sol +13 -16
- package/contracts/staking/StakingServiceManager.sol +8 -4
- package/contracts/staking/StakingStore.sol +8 -8
- package/contracts/staking/TargetHandler.sol +5 -4
- package/contracts/type/ObjectType.sol +2 -31
- package/contracts/type/Referral.sol +6 -0
- package/contracts/type/RequestIdSet.sol +62 -0
- package/contracts/type/Seconds.sol +4 -0
- package/contracts/type/String.sol +30 -0
- package/contracts/type/Timestamp.sol +10 -1
- package/contracts/type/Version.sol +16 -15
- package/contracts/upgradeability/{IUpgradeable.sol → IVersionable.sol} +19 -13
- package/contracts/upgradeability/ProxyManager.sol +54 -46
- package/contracts/upgradeability/{Upgradeable.sol → Versionable.sol} +14 -25
- package/package.json +2 -1
- package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +0 -4
- package/artifacts/contracts/shared/IVersionable.sol/IVersionable.json +0 -74
- package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +0 -4
- package/artifacts/contracts/shared/Versionable.sol/Versionable.json +0 -74
- package/artifacts/contracts/upgradeability/IUpgradeable.sol/IUpgradeable.dbg.json +0 -4
- package/artifacts/contracts/upgradeability/Upgradeable.sol/Upgradeable.dbg.json +0 -4
- package/contracts/shared/IVersionable.sol +0 -19
- package/contracts/shared/Versionable.sol +0 -47
@@ -29,13 +29,14 @@ contract OracleService is
|
|
29
29
|
)
|
30
30
|
internal
|
31
31
|
virtual override
|
32
|
-
|
32
|
+
initializer()
|
33
33
|
{
|
34
34
|
(
|
35
|
-
address authority
|
36
|
-
|
35
|
+
address authority,
|
36
|
+
address registry
|
37
|
+
) = abi.decode(data, (address, address));
|
37
38
|
|
38
|
-
__Service_init(authority, owner);
|
39
|
+
__Service_init(authority, registry, owner);
|
39
40
|
_registerInterface(type(IOracleService).interfaceId);
|
40
41
|
}
|
41
42
|
|
@@ -48,24 +49,25 @@ contract OracleService is
|
|
48
49
|
external
|
49
50
|
virtual
|
50
51
|
restricted()
|
52
|
+
onlyNftOfType(oracleNftId, ORACLE())
|
51
53
|
returns (RequestId requestId)
|
52
54
|
{
|
53
55
|
// checks
|
54
|
-
|
55
|
-
|
56
|
+
// get and check active caller
|
57
|
+
(
|
58
|
+
IRegistry.ObjectInfo memory requesterInfo,
|
59
|
+
address instance
|
60
|
+
) = ContractLib.getAndVerifyAnyComponent(
|
61
|
+
getRegistry(), msg.sender, true);
|
62
|
+
|
63
|
+
(
|
64
|
+
NftId requesterNftId,
|
65
|
+
IOracleComponent oracle
|
66
|
+
) = _checkRequestParams(
|
67
|
+
getRegistry(), oracleNftId, requesterInfo, expiryAt, callbackMethodName);
|
56
68
|
|
69
|
+
// effects
|
57
70
|
{
|
58
|
-
IInstance instance;
|
59
|
-
(
|
60
|
-
requesterNftId,
|
61
|
-
oracle,
|
62
|
-
instance
|
63
|
-
) = ContractLib.getAndVerifyComponentAndOracle(
|
64
|
-
oracleNftId, getRelease());
|
65
|
-
|
66
|
-
_checkRequestParams(expiryAt, callbackMethodName);
|
67
|
-
|
68
|
-
// effects
|
69
71
|
// create request info
|
70
72
|
IOracle.RequestInfo memory request = IOracle.RequestInfo({
|
71
73
|
requesterNftId: requesterNftId,
|
@@ -79,7 +81,7 @@ contract OracleService is
|
|
79
81
|
});
|
80
82
|
|
81
83
|
// store request with instance
|
82
|
-
requestId = instance.getInstanceStore().createRequest(request);
|
84
|
+
requestId = IInstance(instance).getInstanceStore().createRequest(request);
|
83
85
|
}
|
84
86
|
|
85
87
|
emit LogOracleServiceRequestCreated(requestId, requesterNftId, oracleNftId, expiryAt);
|
@@ -106,11 +108,13 @@ contract OracleService is
|
|
106
108
|
returns (bool success)
|
107
109
|
{
|
108
110
|
(
|
109
|
-
|
110
|
-
|
111
|
+
IRegistry.ObjectInfo memory info,
|
112
|
+
address instanceAddress
|
111
113
|
) = ContractLib.getAndVerifyComponent(
|
112
|
-
|
114
|
+
getRegistry(), msg.sender, ORACLE(), true);
|
113
115
|
|
116
|
+
NftId oracleNftId = info.nftId;
|
117
|
+
IInstance instance = IInstance(instanceAddress);
|
114
118
|
bool callerIsOracle = true;
|
115
119
|
IOracle.RequestInfo memory request = _checkAndGetRequestInfo(instance, requestId, oracleNftId, callerIsOracle);
|
116
120
|
request.responseData = responseData;
|
@@ -119,7 +123,7 @@ contract OracleService is
|
|
119
123
|
instance.getInstanceStore().updateRequest(
|
120
124
|
requestId, request, KEEP_STATE());
|
121
125
|
|
122
|
-
IRegistry.ObjectInfo memory requesterInfo =
|
126
|
+
IRegistry.ObjectInfo memory requesterInfo = getRegistry().getObjectInfo(
|
123
127
|
request.requesterNftId);
|
124
128
|
|
125
129
|
string memory functionSignature = string(
|
@@ -152,25 +156,24 @@ contract OracleService is
|
|
152
156
|
restricted()
|
153
157
|
{
|
154
158
|
(
|
155
|
-
|
156
|
-
|
157
|
-
|
158
|
-
|
159
|
-
) = ContractLib.getAndVerifyComponent(
|
160
|
-
msg.sender, COMPONENT(), getRelease(), true);
|
159
|
+
IRegistry.ObjectInfo memory info,
|
160
|
+
address instanceAddress
|
161
|
+
) = ContractLib.getAndVerifyAnyComponent(
|
162
|
+
getRegistry(), msg.sender, true);
|
161
163
|
|
164
|
+
NftId requesterNftId = info.nftId;
|
165
|
+
IInstance instance = IInstance(instanceAddress);
|
162
166
|
bool callerIsOracle = false;
|
163
167
|
IOracle.RequestInfo memory request = _checkAndGetRequestInfo(instance, requestId, requesterNftId, callerIsOracle);
|
164
168
|
|
165
169
|
// attempt to deliver response to requester
|
166
|
-
address requester = msg.sender;
|
167
170
|
string memory functionSignature = string(
|
168
171
|
abi.encodePacked(
|
169
172
|
request.callbackMethodName,
|
170
173
|
"(uint64,bytes)"
|
171
174
|
));
|
172
175
|
|
173
|
-
(bool success, bytes memory returnData) =
|
176
|
+
(bool success, bytes memory returnData) = info.objectAddress.call(
|
174
177
|
abi.encodeWithSignature(
|
175
178
|
functionSignature,
|
176
179
|
requestId,
|
@@ -181,8 +184,7 @@ contract OracleService is
|
|
181
184
|
instance.getInstanceStore().updateRequestState(requestId, FULFILLED());
|
182
185
|
emit LogOracleServiceResponseResent(requestId, requesterNftId);
|
183
186
|
} else {
|
184
|
-
|
185
|
-
emit LogOracleServiceDeliveryFailed(requestId, requester, functionSignature);
|
187
|
+
emit LogOracleServiceDeliveryFailed(requestId, info.objectAddress, functionSignature);
|
186
188
|
}
|
187
189
|
}
|
188
190
|
|
@@ -193,11 +195,13 @@ contract OracleService is
|
|
193
195
|
restricted()
|
194
196
|
{
|
195
197
|
(
|
196
|
-
|
197
|
-
|
198
|
-
) = ContractLib.
|
199
|
-
|
198
|
+
IRegistry.ObjectInfo memory info,
|
199
|
+
address instanceAddress
|
200
|
+
) = ContractLib.getAndVerifyAnyComponent(
|
201
|
+
getRegistry(), msg.sender, true);
|
200
202
|
|
203
|
+
NftId requesterNftId = info.nftId;
|
204
|
+
IInstance instance = IInstance(instanceAddress);
|
201
205
|
bool callerIsOracle = false;
|
202
206
|
// TODO property isCancelled and state update to CANCELLED are redundant, get rid of isCancelled
|
203
207
|
IOracle.RequestInfo memory request = _checkAndGetRequestInfo(instance, requestId, requesterNftId, callerIsOracle);
|
@@ -207,7 +211,7 @@ contract OracleService is
|
|
207
211
|
|
208
212
|
// call oracle component
|
209
213
|
// TODO add check that oracle is active?
|
210
|
-
address oracleAddress =
|
214
|
+
address oracleAddress = getRegistry().getObjectAddress(request.oracleNftId);
|
211
215
|
IOracleComponent(oracleAddress).cancel(requestId);
|
212
216
|
|
213
217
|
emit LogOracleServiceRequestCancelled(requestId, requesterNftId);
|
@@ -215,13 +219,39 @@ contract OracleService is
|
|
215
219
|
|
216
220
|
|
217
221
|
function _checkRequestParams(
|
222
|
+
IRegistry registry,
|
223
|
+
NftId oracleNftId,
|
224
|
+
IRegistry.ObjectInfo memory requesterInfo,
|
218
225
|
Timestamp expiryAt,
|
219
226
|
string memory callbackMethodName
|
220
227
|
)
|
221
228
|
internal
|
222
229
|
virtual
|
223
230
|
view
|
231
|
+
returns (
|
232
|
+
NftId requesterNftId,
|
233
|
+
IOracleComponent oracle
|
234
|
+
)
|
224
235
|
{
|
236
|
+
// get oracle info
|
237
|
+
(IRegistry.ObjectInfo memory oracleInfo,) = ContractLib.getInfoAndInstance(
|
238
|
+
registry, oracleNftId, true);
|
239
|
+
|
240
|
+
// obtain return values
|
241
|
+
requesterNftId = requesterInfo.nftId;
|
242
|
+
oracle = IOracleComponent(oracleInfo.objectAddress);
|
243
|
+
|
244
|
+
// check that requester and oracle share same product cluster
|
245
|
+
if (requesterInfo.objectType == PRODUCT()) {
|
246
|
+
if (oracleInfo.parentNftId != requesterNftId) {
|
247
|
+
revert ErrorOracleServiceProductMismatch(requesterInfo.objectType, requesterNftId, oracleInfo.parentNftId);
|
248
|
+
}
|
249
|
+
} else {
|
250
|
+
if (oracleInfo.parentNftId != requesterInfo.parentNftId) {
|
251
|
+
revert ErrorOracleServiceProductMismatch(requesterInfo.objectType, requesterInfo.parentNftId, oracleInfo.parentNftId);
|
252
|
+
}
|
253
|
+
}
|
254
|
+
|
225
255
|
// check expiriyAt >= now
|
226
256
|
if (expiryAt < TimestampLib.current()) {
|
227
257
|
revert ErrorOracleServiceExpiryInThePast(TimestampLib.current(), expiryAt);
|
@@ -1,7 +1,7 @@
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
2
2
|
pragma solidity ^0.8.20;
|
3
3
|
|
4
|
-
import {
|
4
|
+
import {IVersionable} from "../upgradeability/IVersionable.sol";
|
5
5
|
import {ProxyManager} from "../upgradeability/ProxyManager.sol";
|
6
6
|
import {OracleService} from "./OracleService.sol";
|
7
7
|
|
@@ -12,17 +12,19 @@ contract OracleServiceManager is ProxyManager {
|
|
12
12
|
/// @dev initializes proxy manager with service implementation and deploys instance
|
13
13
|
constructor(
|
14
14
|
address authority,
|
15
|
+
address registry,
|
15
16
|
bytes32 salt
|
16
17
|
)
|
17
18
|
{
|
18
19
|
OracleService svc = new OracleService{salt: salt}();
|
19
|
-
bytes memory data = abi.encode(authority);
|
20
|
-
|
20
|
+
bytes memory data = abi.encode(authority, registry);
|
21
|
+
IVersionable versionable = initialize(
|
22
|
+
registry,
|
21
23
|
address(svc),
|
22
24
|
data,
|
23
25
|
salt);
|
24
26
|
|
25
|
-
_oracleService = OracleService(address(
|
27
|
+
_oracleService = OracleService(address(versionable));
|
26
28
|
}
|
27
29
|
|
28
30
|
//--- view functions ----------------------------------------------------//
|
@@ -18,6 +18,7 @@ abstract contract BasicPool is
|
|
18
18
|
{
|
19
19
|
|
20
20
|
function _initializeBasicPool(
|
21
|
+
address registry,
|
21
22
|
NftId productNftId,
|
22
23
|
string memory name,
|
23
24
|
IComponents.PoolInfo memory poolInfo,
|
@@ -29,6 +30,7 @@ abstract contract BasicPool is
|
|
29
30
|
onlyInitializing()
|
30
31
|
{
|
31
32
|
__Pool_init(
|
33
|
+
registry,
|
32
34
|
productNftId,
|
33
35
|
name,
|
34
36
|
poolInfo,
|
@@ -43,8 +45,8 @@ abstract contract BasicPool is
|
|
43
45
|
public
|
44
46
|
virtual
|
45
47
|
restricted()
|
46
|
-
onlyBundleOwner(bundleNftId)
|
47
|
-
onlyNftOfType(bundleNftId, BUNDLE())
|
48
|
+
onlyBundleOwner(bundleNftId)
|
49
|
+
onlyNftOfType(bundleNftId, BUNDLE())
|
48
50
|
{
|
49
51
|
_stake(bundleNftId, amount);
|
50
52
|
}
|
@@ -2,7 +2,7 @@
|
|
2
2
|
pragma solidity ^0.8.20;
|
3
3
|
|
4
4
|
import {IAccess} from "../authorization/IAccess.sol";
|
5
|
-
import {
|
5
|
+
import {IInstanceLinkedComponent} from "../shared/IInstanceLinkedComponent.sol";
|
6
6
|
import {IPoolComponent} from "./IPoolComponent.sol";
|
7
7
|
|
8
8
|
import {Authorization} from "../authorization/Authorization.sol";
|
@@ -10,9 +10,8 @@ import {BasicPool} from "./BasicPool.sol";
|
|
10
10
|
import {COMPONENT, POOL} from "../type/ObjectType.sol";
|
11
11
|
import {PUBLIC_ROLE} from "../../contracts/type/RoleId.sol";
|
12
12
|
import {RoleId} from "../type/RoleId.sol";
|
13
|
-
import {GIF_INITIAL_RELEASE} from "../registry/Registry.sol";
|
14
13
|
import {TokenHandler} from "../shared/TokenHandler.sol";
|
15
|
-
|
14
|
+
|
16
15
|
|
17
16
|
contract BasicPoolAuthorization
|
18
17
|
is Authorization
|
@@ -22,7 +21,7 @@ contract BasicPoolAuthorization
|
|
22
21
|
Authorization(
|
23
22
|
poolName,
|
24
23
|
POOL(),
|
25
|
-
|
24
|
+
3,
|
26
25
|
COMMIT_HASH,
|
27
26
|
TargetType.Component,
|
28
27
|
true)
|
@@ -71,7 +70,7 @@ contract BasicPoolAuthorization
|
|
71
70
|
_authorize(functions, BasicPool.unstake.selector, "unstake");
|
72
71
|
_authorize(functions, BasicPool.extend.selector, "extend");
|
73
72
|
|
74
|
-
_authorize(functions,
|
73
|
+
_authorize(functions, IInstanceLinkedComponent.withdrawFees.selector, "withdrawFees");
|
75
74
|
_authorize(functions, BasicPool.withdrawBundleFees.selector, "withdrawBundleFees");
|
76
75
|
|
77
76
|
// authorize pool service
|
@@ -12,11 +12,11 @@ import {InstanceStore} from "../instance/InstanceStore.sol";
|
|
12
12
|
|
13
13
|
import {Amount, AmountLib} from "../type/Amount.sol";
|
14
14
|
import {BundleSet} from "../instance/BundleSet.sol";
|
15
|
-
import {ContractLib} from "../shared/ContractLib.sol";
|
16
15
|
import {Fee} from "../type/Fee.sol";
|
17
16
|
import {InstanceReader} from "../instance/InstanceReader.sol";
|
18
17
|
import {NftId, NftIdLib} from "../type/NftId.sol";
|
19
18
|
import {ObjectType, ACCOUNTING, COMPONENT, POOL, BUNDLE, POLICY, REGISTRY} from "../type/ObjectType.sol";
|
19
|
+
import {PoolLib} from "./PoolLib.sol";
|
20
20
|
import {Seconds} from "../type/Seconds.sol";
|
21
21
|
import {Service} from "../shared/Service.sol";
|
22
22
|
import {StateId, ACTIVE, PAUSED, CLOSED, KEEP_STATE} from "../type/StateId.sol";
|
@@ -41,13 +41,14 @@ contract BundleService is
|
|
41
41
|
)
|
42
42
|
internal
|
43
43
|
virtual override
|
44
|
-
|
44
|
+
initializer()
|
45
45
|
{
|
46
46
|
(
|
47
|
-
address authority
|
48
|
-
|
47
|
+
address authority,
|
48
|
+
address registry
|
49
|
+
) = abi.decode(data, (address, address));
|
49
50
|
|
50
|
-
__Service_init(authority, owner);
|
51
|
+
__Service_init(authority, registry, owner);
|
51
52
|
|
52
53
|
_registryService = IRegistryService(_getServiceAddress(REGISTRY()));
|
53
54
|
_accountingService = IAccountingService(_getServiceAddress(ACCOUNTING()));
|
@@ -65,12 +66,9 @@ contract BundleService is
|
|
65
66
|
virtual
|
66
67
|
restricted()
|
67
68
|
{
|
68
|
-
(
|
69
|
-
NftId poolNftId,
|
70
|
-
IInstance instance
|
71
|
-
) = ContractLib.getAndVerifyPoolForBundle(
|
72
|
-
bundleNftId, getRelease());
|
69
|
+
_checkNftType(bundleNftId, BUNDLE());
|
73
70
|
|
71
|
+
(NftId poolNftId, IInstance instance) = PoolLib.getAndVerifyActivePool(getRegistry(), msg.sender);
|
74
72
|
InstanceReader instanceReader = instance.getInstanceReader();
|
75
73
|
IBundle.BundleInfo memory bundleInfo = instanceReader.getBundleInfo(bundleNftId);
|
76
74
|
if(bundleInfo.poolNftId.eqz()) {
|
@@ -99,10 +97,7 @@ contract BundleService is
|
|
99
97
|
restricted()
|
100
98
|
returns(NftId bundleNftId)
|
101
99
|
{
|
102
|
-
(
|
103
|
-
NftId poolNftId,
|
104
|
-
IInstance instance
|
105
|
-
) = ContractLib.getAndVerifyPool(getRelease());
|
100
|
+
(NftId poolNftId, IInstance instance) = PoolLib.getAndVerifyActivePool(getRegistry(), msg.sender);
|
106
101
|
|
107
102
|
// register bundle with registry
|
108
103
|
bundleNftId = _registryService.registerBundle(
|
@@ -110,11 +105,11 @@ contract BundleService is
|
|
110
105
|
NftIdLib.zero(),
|
111
106
|
poolNftId,
|
112
107
|
BUNDLE(),
|
113
|
-
getRelease(),
|
114
108
|
false, // intercepting property for bundles is defined on pool
|
115
|
-
address(0)
|
116
|
-
|
117
|
-
|
109
|
+
address(0),
|
110
|
+
owner,
|
111
|
+
"" // bundle data to be stored in registry
|
112
|
+
)
|
118
113
|
);
|
119
114
|
|
120
115
|
// create bundle info in instance
|
@@ -196,8 +191,9 @@ contract BundleService is
|
|
196
191
|
restricted()
|
197
192
|
{
|
198
193
|
// checks
|
199
|
-
(,
|
200
|
-
|
194
|
+
_checkNftType(bundleNftId, BUNDLE());
|
195
|
+
|
196
|
+
(, IInstance instance) = PoolLib.getAndVerifyActivePool(getRegistry(), msg.sender);
|
201
197
|
|
202
198
|
// effects
|
203
199
|
// update set of active bundles
|
@@ -335,12 +331,9 @@ contract BundleService is
|
|
335
331
|
returns (Timestamp extendedExpiredAt)
|
336
332
|
{
|
337
333
|
// checks
|
338
|
-
(
|
339
|
-
NftId poolNftId,
|
340
|
-
IInstance instance
|
341
|
-
) = ContractLib.getAndVerifyPoolForBundle(
|
342
|
-
bundleNftId, getRelease());
|
334
|
+
_checkNftType(bundleNftId, BUNDLE());
|
343
335
|
|
336
|
+
(NftId poolNftId, IInstance instance) = PoolLib.getAndVerifyActivePool(getRegistry(), msg.sender);
|
344
337
|
IBundle.BundleInfo memory bundleInfo = instance.getInstanceReader().getBundleInfo(bundleNftId);
|
345
338
|
StateId bundleState = instance.getInstanceReader().getBundleState(bundleNftId);
|
346
339
|
|
@@ -386,6 +379,7 @@ contract BundleService is
|
|
386
379
|
emit LogBundleServiceCollateralReleased(bundleNftId, policyNftId, collateralAmount);
|
387
380
|
}
|
388
381
|
|
382
|
+
|
389
383
|
function _getDomain() internal pure override returns(ObjectType) {
|
390
384
|
return BUNDLE();
|
391
385
|
}
|
@@ -1,7 +1,7 @@
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
2
2
|
pragma solidity ^0.8.20;
|
3
3
|
|
4
|
-
import {
|
4
|
+
import {IVersionable} from "../upgradeability/IVersionable.sol";
|
5
5
|
import {ProxyManager} from "../upgradeability/ProxyManager.sol";
|
6
6
|
import {BundleService} from "./BundleService.sol";
|
7
7
|
|
@@ -11,18 +11,20 @@ contract BundleServiceManager is ProxyManager {
|
|
11
11
|
|
12
12
|
/// @dev initializes proxy manager with pool service implementation
|
13
13
|
constructor(
|
14
|
-
address authority,
|
14
|
+
address authority,
|
15
|
+
address registry,
|
15
16
|
bytes32 salt
|
16
17
|
)
|
17
18
|
{
|
18
19
|
BundleService svc = new BundleService{salt: salt}();
|
19
|
-
bytes memory data = abi.encode(authority);
|
20
|
-
|
20
|
+
bytes memory data = abi.encode(authority, registry);
|
21
|
+
IVersionable versionable = initialize(
|
22
|
+
registry,
|
21
23
|
address(svc),
|
22
24
|
data,
|
23
25
|
salt);
|
24
26
|
|
25
|
-
_bundleService = BundleService(address(
|
27
|
+
_bundleService = BundleService(address(versionable));
|
26
28
|
}
|
27
29
|
|
28
30
|
//--- view functions ----------------------------------------------------//
|
@@ -18,14 +18,15 @@ interface IPoolService is IService {
|
|
18
18
|
event LogPoolServiceWalletFunded(NftId poolNftId, address poolOwner, Amount amount);
|
19
19
|
event LogPoolServiceWalletDefunded(NftId poolNftId, address poolOwner, Amount amount);
|
20
20
|
|
21
|
-
event
|
21
|
+
event LogPoolServiceBundleCreated(NftId instanceNftId, NftId poolNftId, NftId bundleNftId);
|
22
|
+
event LogPoolServiceBundleClosed(NftId instanceNftId, NftId poolNftId, NftId bundleNftId);
|
22
23
|
|
23
|
-
event LogPoolServiceBundleStaked(NftId poolNftId, NftId bundleNftId, Amount amount, Amount netAmount);
|
24
|
-
event LogPoolServiceBundleUnstaked(NftId poolNftId, NftId bundleNftId, Amount amount, Amount netAmount);
|
24
|
+
event LogPoolServiceBundleStaked(NftId instanceNftId, NftId poolNftId, NftId bundleNftId, Amount amount, Amount netAmount);
|
25
|
+
event LogPoolServiceBundleUnstaked(NftId instanceNftId, NftId poolNftId, NftId bundleNftId, Amount amount, Amount netAmount);
|
25
26
|
|
26
|
-
event LogPoolServiceFeesWithdrawn(NftId
|
27
|
+
event LogPoolServiceFeesWithdrawn(NftId bundleNftId, address recipient, address tokenAddress, Amount amount);
|
27
28
|
|
28
|
-
event LogPoolServiceProcessFundedClaim(NftId
|
29
|
+
event LogPoolServiceProcessFundedClaim(NftId policyNftId, ClaimId claimId, Amount availableAmount);
|
29
30
|
|
30
31
|
event LogPoolServiceApplicationVerified(NftId poolNftId, NftId bundleNftId, NftId applicationNftId, Amount totalCollateralAmount);
|
31
32
|
event LogPoolServiceCollateralLocked(NftId poolNftId, NftId bundleNftId, NftId applicationNftId, Amount totalCollateralAmount, Amount lockedCollateralAmount);
|
package/contracts/pool/Pool.sol
CHANGED
@@ -35,7 +35,7 @@ abstract contract Pool is
|
|
35
35
|
|
36
36
|
|
37
37
|
modifier onlyBundleOwner(NftId bundleNftId) {
|
38
|
-
if(msg.sender !=
|
38
|
+
if(msg.sender != getRegistry().ownerOf(bundleNftId)) {
|
39
39
|
revert ErrorPoolNotBundleOwner(bundleNftId, msg.sender);
|
40
40
|
}
|
41
41
|
_;
|
@@ -124,6 +124,7 @@ abstract contract Pool is
|
|
124
124
|
// Internals
|
125
125
|
|
126
126
|
function __Pool_init(
|
127
|
+
address registry,
|
127
128
|
NftId productNftId,
|
128
129
|
string memory name,
|
129
130
|
IComponents.PoolInfo memory poolInfo,
|
@@ -135,6 +136,7 @@ abstract contract Pool is
|
|
135
136
|
onlyInitializing()
|
136
137
|
{
|
137
138
|
__InstanceLinkedComponent_init(
|
139
|
+
registry,
|
138
140
|
productNftId,
|
139
141
|
name,
|
140
142
|
POOL(),
|
@@ -18,7 +18,6 @@ import {ObjectType, BUNDLE, POOL} from "../type/ObjectType.sol";
|
|
18
18
|
import {PayoutId} from "../type/PayoutId.sol";
|
19
19
|
import {TokenHandler} from "../shared/TokenHandler.sol";
|
20
20
|
import {UFixed} from "../type/UFixed.sol";
|
21
|
-
import {VersionPart} from "../type/Version.sol";
|
22
21
|
|
23
22
|
library PoolLib {
|
24
23
|
|
@@ -77,6 +76,7 @@ library PoolLib {
|
|
77
76
|
|
78
77
|
|
79
78
|
function calculateStakingAmounts(
|
79
|
+
IRegistry registry,
|
80
80
|
InstanceReader instanceReader,
|
81
81
|
NftId poolNftId,
|
82
82
|
Amount stakingAmount
|
@@ -88,7 +88,7 @@ library PoolLib {
|
|
88
88
|
Amount netStakingAmount
|
89
89
|
)
|
90
90
|
{
|
91
|
-
NftId productNftId =
|
91
|
+
NftId productNftId = registry.getParentNftId(poolNftId);
|
92
92
|
Fee memory stakingFee = instanceReader.getFeeInfo(productNftId).stakingFee;
|
93
93
|
(
|
94
94
|
feeAmount,
|
@@ -100,6 +100,7 @@ library PoolLib {
|
|
100
100
|
|
101
101
|
|
102
102
|
function calculatePayoutAmounts(
|
103
|
+
IRegistry registry,
|
103
104
|
InstanceReader instanceReader,
|
104
105
|
NftId productNftId,
|
105
106
|
NftId policyNftId,
|
@@ -120,7 +121,7 @@ library PoolLib {
|
|
120
121
|
netPayoutAmount = payoutAmount;
|
121
122
|
|
122
123
|
if (payoutBeneficiary == address(0)) {
|
123
|
-
beneficiary =
|
124
|
+
beneficiary = registry.ownerOf(policyNftId);
|
124
125
|
} else {
|
125
126
|
beneficiary = payoutBeneficiary;
|
126
127
|
}
|
@@ -135,13 +136,14 @@ library PoolLib {
|
|
135
136
|
|
136
137
|
|
137
138
|
function getPolicyHolder(
|
139
|
+
IRegistry registry,
|
138
140
|
NftId policyNftId
|
139
141
|
)
|
140
142
|
internal
|
141
143
|
view
|
142
144
|
returns (IPolicyHolder policyHolder)
|
143
145
|
{
|
144
|
-
address policyHolderAddress =
|
146
|
+
address policyHolderAddress = registry.ownerOf(policyNftId);
|
145
147
|
policyHolder = IPolicyHolder(policyHolderAddress);
|
146
148
|
|
147
149
|
if (!ContractLib.isPolicyHolder(policyHolderAddress)) {
|
@@ -149,7 +151,99 @@ library PoolLib {
|
|
149
151
|
}
|
150
152
|
}
|
151
153
|
|
154
|
+
|
155
|
+
function checkAndGetPoolInfo(
|
156
|
+
IRegistry registry,
|
157
|
+
address sender,
|
158
|
+
NftId bundleNftId
|
159
|
+
)
|
160
|
+
public
|
161
|
+
view
|
162
|
+
returns (
|
163
|
+
InstanceReader instanceReader,
|
164
|
+
InstanceStore instanceStore,
|
165
|
+
NftId instanceNftId,
|
166
|
+
NftId poolNftId,
|
167
|
+
IComponents.PoolInfo memory poolInfo
|
168
|
+
)
|
169
|
+
{
|
170
|
+
checkNftType(registry, bundleNftId, BUNDLE());
|
171
|
+
|
172
|
+
IInstance instance;
|
173
|
+
(poolNftId, instance) = getAndVerifyActivePool(registry, sender);
|
174
|
+
instanceReader = instance.getInstanceReader();
|
175
|
+
instanceStore = instance.getInstanceStore();
|
176
|
+
instanceNftId = instance.getNftId();
|
177
|
+
poolInfo = instanceReader.getPoolInfo(poolNftId);
|
178
|
+
|
179
|
+
if (registry.getParentNftId(bundleNftId) != poolNftId) {
|
180
|
+
revert IPoolService.ErrorPoolServiceBundlePoolMismatch(bundleNftId, poolNftId);
|
181
|
+
}
|
182
|
+
}
|
183
|
+
|
184
|
+
|
185
|
+
function getAndVerifyActivePool(
|
186
|
+
IRegistry registry,
|
187
|
+
address sender
|
188
|
+
)
|
189
|
+
public
|
190
|
+
view
|
191
|
+
returns (
|
192
|
+
NftId poolNftId,
|
193
|
+
IInstance instance
|
194
|
+
)
|
195
|
+
{
|
196
|
+
(
|
197
|
+
IRegistry.ObjectInfo memory info,
|
198
|
+
address instanceAddress
|
199
|
+
) = ContractLib.getAndVerifyComponent(
|
200
|
+
registry,
|
201
|
+
sender,
|
202
|
+
POOL(),
|
203
|
+
true); // only active pools
|
204
|
+
|
205
|
+
poolNftId = info.nftId;
|
206
|
+
instance = IInstance(instanceAddress);
|
207
|
+
}
|
208
|
+
|
209
|
+
|
210
|
+
function getAndVerifyActiveComponent(
|
211
|
+
IRegistry registry,
|
212
|
+
address sender,
|
213
|
+
ObjectType expectedComponentType
|
214
|
+
)
|
215
|
+
public
|
216
|
+
view
|
217
|
+
returns (
|
218
|
+
NftId componentNftId,
|
219
|
+
IInstance instance
|
220
|
+
)
|
221
|
+
{
|
222
|
+
(
|
223
|
+
IRegistry.ObjectInfo memory info,
|
224
|
+
address instanceAddress
|
225
|
+
) = ContractLib.getAndVerifyComponent(
|
226
|
+
registry,
|
227
|
+
sender,
|
228
|
+
expectedComponentType,
|
229
|
+
true); // only active components
|
230
|
+
|
231
|
+
componentNftId = info.nftId;
|
232
|
+
instance = IInstance(instanceAddress);
|
233
|
+
}
|
234
|
+
|
235
|
+
function checkNftType(
|
236
|
+
IRegistry registry,
|
237
|
+
NftId nftId,
|
238
|
+
ObjectType expectedObjectType
|
239
|
+
) internal view {
|
240
|
+
if(!registry.isObjectType(nftId, expectedObjectType)) {
|
241
|
+
revert INftOwnable.ErrorNftOwnableInvalidType(nftId, expectedObjectType);
|
242
|
+
}
|
243
|
+
}
|
244
|
+
|
152
245
|
function transferTokenAndNotifyPolicyHolder(
|
246
|
+
IRegistry registry,
|
153
247
|
InstanceReader instanceReader,
|
154
248
|
TokenHandler poolTokenHandler,
|
155
249
|
NftId productNftId,
|
@@ -171,6 +265,7 @@ library PoolLib {
|
|
171
265
|
processingFeeAmount,
|
172
266
|
beneficiary
|
173
267
|
) = calculatePayoutAmounts(
|
268
|
+
registry,
|
174
269
|
instanceReader,
|
175
270
|
productNftId,
|
176
271
|
policyNftId,
|
@@ -192,6 +287,7 @@ library PoolLib {
|
|
192
287
|
|
193
288
|
// callback to policy holder if applicable
|
194
289
|
policyHolderPayoutExecuted(
|
290
|
+
registry,
|
195
291
|
policyNftId,
|
196
292
|
payoutId,
|
197
293
|
beneficiary,
|
@@ -199,6 +295,7 @@ library PoolLib {
|
|
199
295
|
}
|
200
296
|
|
201
297
|
function policyHolderPayoutExecuted(
|
298
|
+
IRegistry registry,
|
202
299
|
NftId policyNftId,
|
203
300
|
PayoutId payoutId,
|
204
301
|
address beneficiary,
|
@@ -206,7 +303,7 @@ library PoolLib {
|
|
206
303
|
)
|
207
304
|
private
|
208
305
|
{
|
209
|
-
IPolicyHolder policyHolder = getPolicyHolder(policyNftId);
|
306
|
+
IPolicyHolder policyHolder = getPolicyHolder(registry, policyNftId);
|
210
307
|
if(address(policyHolder) != address(0)) {
|
211
308
|
policyHolder.payoutExecuted(policyNftId, payoutId, payoutAmount, beneficiary);
|
212
309
|
}
|