@etherisc/gif-next 3.0.0-9a6ca4b-922 → 3.0.0-9ba4071-397
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 +10 -1
- package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.dbg.json +1 -1
- package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +42 -56
- package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +15 -19
- package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.dbg.json +1 -1
- package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.json +14 -20
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +1 -1
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +44 -56
- package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.dbg.json +1 -1
- package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.json +145 -100
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +1 -1
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +25 -6
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +2 -2
- 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/IAuthorization.sol/IAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +2 -2
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +2 -2
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +1 -1
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +2 -2
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +157 -72
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +37 -37
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +85 -0
- 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 +12 -12
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +2 -2
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +34 -34
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +20 -20
- 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 +799 -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/FlightNft.sol/FlightNft.dbg.json +4 -0
- package/artifacts/contracts/examples/flight/FlightNft.sol/FlightNft.json +801 -0
- package/artifacts/contracts/examples/flight/FlightOracle.sol/FlightOracle.dbg.json +4 -0
- package/artifacts/contracts/examples/flight/FlightOracle.sol/FlightOracle.json +1353 -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 +2289 -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/FlightProductManager.sol/FlightProductManager.dbg.json +4 -0
- package/artifacts/contracts/examples/flight/FlightProductManager.sol/FlightProductManager.json +711 -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 +17 -17
- package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +2 -2
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +14 -14
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +18 -18
- package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +2 -2
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +20 -20
- package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +20 -20
- package/artifacts/contracts/instance/BaseStore.sol/BaseStore.dbg.json +1 -1
- package/artifacts/contracts/instance/BaseStore.sol/BaseStore.json +50 -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/IBaseStore.sol/IBaseStore.dbg.json +1 -1
- package/artifacts/contracts/instance/IBaseStore.sol/IBaseStore.json +50 -0
- package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstance.sol/IInstance.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +61 -0
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +5 -5
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +102 -114
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +2 -2
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +236 -75
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +81 -20
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +11 -11
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +82 -32
- package/artifacts/contracts/instance/ProductStore.sol/ProductStore.dbg.json +1 -1
- package/artifacts/contracts/instance/ProductStore.sol/ProductStore.json +68 -18
- package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +1 -1
- package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +2 -2
- 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 +2 -2
- 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/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 +2 -2
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +1 -1
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +2 -2
- 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/IOracleService.sol/IOracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +2 -2
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +2 -2
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +2 -2
- package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleService.sol/BundleService.json +32 -20
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +11 -11
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +12 -0
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +12 -0
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolLib.sol/PoolLib.json +2 -2
- package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolService.sol/PoolService.json +36 -24
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +13 -13
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +2 -2
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +2 -2
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +20 -20
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +2 -2
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +2 -2
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +12 -0
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +56 -44
- package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.json +20 -12
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +23 -23
- package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
- package/artifacts/contracts/product/PricingService.sol/PricingService.json +2 -2
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +2 -2
- package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
- package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +1 -1
- package/artifacts/contracts/product/RiskService.sol/RiskService.json +2 -2
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +2 -2
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +2 -2
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +6 -0
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/IRelease.sol/IRelease.dbg.json +1 -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 +34 -28
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +101 -113
- package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.json +2 -2
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +2 -2
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +2 -2
- package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +1 -1
- package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +110 -122
- 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 +56 -62
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +2 -2
- 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/ComponentService.sol/ComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +51 -26
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +14 -14
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +1 -1
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +2 -2
- package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +1 -1
- package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +1 -1
- package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.dbg.json +1 -1
- 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/IComponentService.sol/IComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +25 -0
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
- 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/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
- 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/InitializableERC165.sol/InitializableERC165.dbg.json +1 -1
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
- 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 +2 -2
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +2 -2
- package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -2
- package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +2 -2
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +2 -2
- package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +2 -2
- package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
- package/artifacts/contracts/staking/IStaking.sol/IStaking.json +25 -0
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +12 -0
- 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 +73 -48
- package/artifacts/contracts/staking/StakingLib.sol/StakingLib.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingLib.sol/StakingLib.json +2 -2
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +25 -25
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +2 -2
- package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingService.sol/StakingService.json +26 -14
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +8 -8
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +2 -2
- package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.dbg.json +1 -1
- package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.json +2 -2
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +2 -2
- package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
- package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
- package/artifacts/contracts/type/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 +2 -2
- 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/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 +2 -2
- package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +1 -1
- package/contracts/accounting/AccountingService.sol +17 -29
- package/contracts/accounting/IAccountingService.sol +7 -8
- package/contracts/authorization/AccessAdmin.sol +6 -25
- package/contracts/authorization/AccessAdminLib.sol +20 -3
- package/contracts/authorization/AccessManagerCloneable.sol +3 -0
- package/contracts/distribution/DistributionService.sol +5 -3
- package/contracts/distribution/IDistributionService.sol +4 -3
- package/contracts/examples/flight/FlightLib.sol +337 -0
- package/contracts/examples/flight/FlightMessageVerifier.sol +128 -0
- package/contracts/examples/flight/FlightNft.sol +234 -0
- package/contracts/examples/flight/FlightOracle.sol +226 -0
- package/contracts/examples/flight/FlightOracleAuthorization.sol +57 -0
- package/contracts/examples/flight/FlightPool.sol +89 -0
- package/contracts/examples/flight/FlightPoolAuthorization.sol +37 -0
- package/contracts/examples/flight/FlightProduct.sol +687 -0
- package/contracts/examples/flight/FlightProductAuthorization.sol +70 -0
- package/contracts/examples/flight/FlightProductManager.sol +49 -0
- package/contracts/examples/flight/FlightUSD.sol +28 -0
- package/contracts/examples/flight/originalV1.sol +396 -0
- package/contracts/instance/BaseStore.sol +4 -0
- package/contracts/instance/IBaseStore.sol +8 -0
- package/contracts/instance/IInstance.sol +1 -1
- package/contracts/instance/IInstanceService.sol +2 -0
- package/contracts/instance/Instance.sol +1 -1
- package/contracts/instance/InstanceAdmin.sol +0 -1
- package/contracts/instance/InstanceReader.sol +41 -7
- package/contracts/instance/InstanceService.sol +4 -0
- package/contracts/oracle/BasicOracle.sol +1 -0
- package/contracts/oracle/IOracleService.sol +12 -12
- package/contracts/oracle/Oracle.sol +2 -2
- package/contracts/pool/BundleService.sol +1 -1
- package/contracts/pool/IBundleService.sol +1 -1
- package/contracts/pool/IPoolService.sol +1 -1
- package/contracts/pool/PoolService.sol +1 -1
- package/contracts/product/BasicProductAuthorization.sol +3 -2
- package/contracts/product/IPolicyService.sol +1 -1
- package/contracts/product/PolicyService.sol +1 -1
- package/contracts/product/PolicyServiceLib.sol +5 -3
- package/contracts/registry/ChainNft.sol +1 -1
- package/contracts/registry/IRegistry.sol +1 -1
- package/contracts/registry/Registry.sol +1 -1
- package/contracts/registry/RegistryAdmin.sol +7 -1
- package/contracts/registry/ReleaseAdmin.sol +8 -1
- package/contracts/shared/ComponentService.sol +5 -0
- package/contracts/shared/EcdsaChecker.sol +5 -0
- package/contracts/shared/IAuthorizedComponent.sol +15 -0
- package/contracts/shared/IComponentService.sol +1 -0
- package/contracts/shared/IInstanceLinkedComponent.sol +2 -5
- package/contracts/shared/InstanceLinkedComponent.sol +60 -19
- package/contracts/staking/IStaking.sol +2 -0
- package/contracts/staking/IStakingService.sol +1 -1
- package/contracts/staking/Staking.sol +1 -0
- package/contracts/staking/StakingService.sol +1 -1
- 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/package.json +2 -1
@@ -34,6 +34,7 @@ import {RiskId} from "../type/RiskId.sol";
|
|
34
34
|
import {RiskSet} from "./RiskSet.sol";
|
35
35
|
import {RoleId, INSTANCE_OWNER_ROLE} from "../type/RoleId.sol";
|
36
36
|
import {StateId} from "../type/StateId.sol";
|
37
|
+
import {Str, StrLib} from "../type/String.sol";
|
37
38
|
import {TokenHandler} from "../shared/TokenHandler.sol";
|
38
39
|
import {UFixed, UFixedLib} from "../type/UFixed.sol";
|
39
40
|
|
@@ -177,8 +178,8 @@ contract InstanceReader {
|
|
177
178
|
|
178
179
|
|
179
180
|
/// @dev Returns th product NFT ID for the given index.
|
180
|
-
function
|
181
|
-
return _instance.
|
181
|
+
function getProduct(uint256 idx) public view returns (NftId productNftId) {
|
182
|
+
return _instance.getProduct(idx);
|
182
183
|
}
|
183
184
|
|
184
185
|
|
@@ -219,6 +220,12 @@ contract InstanceReader {
|
|
219
220
|
}
|
220
221
|
|
221
222
|
|
223
|
+
/// @dev Returns true if the specified risk exists for the given product NFT ID.
|
224
|
+
function isProductRisk(NftId productNftId, RiskId riskId) public view returns (bool exists) {
|
225
|
+
return _riskSet.hasRisk(productNftId, riskId);
|
226
|
+
}
|
227
|
+
|
228
|
+
|
222
229
|
/// @dev Returns the risk info for the given risk ID.
|
223
230
|
function getRiskInfo(RiskId riskId) public view returns (IRisk.RiskInfo memory info) {
|
224
231
|
return _productStore.getRiskInfo(riskId);
|
@@ -240,10 +247,21 @@ contract InstanceReader {
|
|
240
247
|
|
241
248
|
|
242
249
|
/// @dev Returns the linked policy NFT ID for the given risk ID and index.
|
243
|
-
function
|
250
|
+
function getPolicyForRisk(RiskId riskId, uint256 idx) public view returns (NftId linkedPolicyNftId) {
|
244
251
|
return _riskSet.getLinkedPolicyNftId(riskId, idx);
|
245
252
|
}
|
246
253
|
|
254
|
+
/// @dev Returns the number of linked policies for the given bundle NFT ID.
|
255
|
+
function policiesForBundle(NftId bundleNftId) public view returns (uint256 linkedPolicies) {
|
256
|
+
return _bundleSet.activePolicies(bundleNftId);
|
257
|
+
}
|
258
|
+
|
259
|
+
|
260
|
+
/// @dev Returns the linked policy NFT ID for the given risk ID and index.
|
261
|
+
function getPolicyForBundle(NftId bundleNftId, uint256 idx) public view returns (NftId linkedPolicyNftId) {
|
262
|
+
return _bundleSet.getActivePolicy(bundleNftId, idx);
|
263
|
+
}
|
264
|
+
|
247
265
|
|
248
266
|
/// @dev Returns the info for the given policy NFT ID.
|
249
267
|
function getPolicyInfo(NftId policyNftId) public view returns (IPolicy.PolicyInfo memory info) {
|
@@ -341,6 +359,11 @@ contract InstanceReader {
|
|
341
359
|
return _store.getRequestInfo(requestId);
|
342
360
|
}
|
343
361
|
|
362
|
+
/// @dev Returns the request info for the given oracle request ID.
|
363
|
+
function getRequestState(RequestId requestId) public view returns (StateId state) {
|
364
|
+
return getState(requestId.toKey32());
|
365
|
+
}
|
366
|
+
|
344
367
|
//--- pool functions -----------------------------------------------------------//
|
345
368
|
|
346
369
|
/// @dev Returns the pool info for the given pool NFT ID.
|
@@ -444,6 +467,12 @@ contract InstanceReader {
|
|
444
467
|
}
|
445
468
|
|
446
469
|
|
470
|
+
/// @dev Returns the role ID for the given index.
|
471
|
+
function getRoleForName(string memory name) public view returns (RoleId roleId, bool exists) {
|
472
|
+
return _instanceAdmin.getRoleForName(name);
|
473
|
+
}
|
474
|
+
|
475
|
+
|
447
476
|
/// @dev Returns the role ID for the instance owner role.
|
448
477
|
/// This role may be used as a "root" admin role for other custom roles defined for this instance.
|
449
478
|
function getInstanceOwnerRole() public pure returns (RoleId roleId) {
|
@@ -573,13 +602,18 @@ contract InstanceReader {
|
|
573
602
|
}
|
574
603
|
|
575
604
|
|
576
|
-
function
|
577
|
-
return UFixedLib.
|
605
|
+
function toInt(UFixed value) public pure returns (uint256) {
|
606
|
+
return UFixedLib.toInt(value);
|
578
607
|
}
|
579
608
|
|
580
609
|
|
581
|
-
function
|
582
|
-
return
|
610
|
+
function toString(Str str) public pure returns (string memory) {
|
611
|
+
return StrLib.toString(str);
|
612
|
+
}
|
613
|
+
|
614
|
+
|
615
|
+
function toUFixed(uint256 value, int8 exp) public pure returns (UFixed) {
|
616
|
+
return UFixedLib.toUFixed(value, exp);
|
583
617
|
}
|
584
618
|
|
585
619
|
//--- internal functions ----------------------------------------------------//
|
@@ -372,6 +372,10 @@ contract InstanceService is
|
|
372
372
|
IInstance masterInstance = IInstance(_masterInstance);
|
373
373
|
IRegistry.ObjectInfo memory info = _registryService.registerInstance(masterInstance, getOwner());
|
374
374
|
masterInstanceNftId = info.nftId;
|
375
|
+
|
376
|
+
emit LogInstanceServiceMasterInstanceRegistered(
|
377
|
+
masterInstanceNftId, _masterInstance, _masterInstanceAdmin, _masterAccessManager,
|
378
|
+
_masterInstanceReader, _masterInstanceBundleSet, _masterInstanceRiskSet, _masterInstanceStore, _masterProductStore);
|
375
379
|
}
|
376
380
|
}
|
377
381
|
|
@@ -41,26 +41,26 @@ interface IOracleService is IService {
|
|
41
41
|
string calldata callbackMethodName
|
42
42
|
) external returns (RequestId requestId);
|
43
43
|
|
44
|
-
/// @dev
|
45
|
-
///
|
46
|
-
///
|
44
|
+
/// @dev Respond to oracle request by oracle compnent.
|
45
|
+
/// The response data is amended in the request info stored with the instance.
|
46
|
+
/// The request state changes to FULFILLED (when calling the callback method of the requester is successful)
|
47
47
|
/// or to FAILED when calling the requester is not succesful.
|
48
|
-
///
|
49
|
-
///
|
48
|
+
/// The function returns true iff the state changes to FULFILLED.
|
49
|
+
/// Permissioned: only the receiving oracle component may call this method
|
50
50
|
function respond(
|
51
51
|
RequestId requestId,
|
52
52
|
bytes calldata responseData
|
53
53
|
) external returns (bool success);
|
54
54
|
|
55
|
-
/// @dev
|
56
|
-
///
|
57
|
-
///
|
58
|
-
///
|
55
|
+
/// @dev Resend a failed response to the requester.
|
56
|
+
/// Only requests in state FAILED may be resent.
|
57
|
+
/// The request state changes to FULFILLED when calling the callback method of the requester is successful.
|
58
|
+
/// Permissioned: only the receiving oracle may resend a request
|
59
59
|
function resend(RequestId requestId) external;
|
60
60
|
|
61
|
-
/// @dev
|
62
|
-
///
|
63
|
-
///
|
61
|
+
/// @dev Notify the oracle component that the specified request has become invalid.
|
62
|
+
/// Only requests in state ACTIVE may be cancelled.
|
63
|
+
/// Permissioned: only the requester may cancel a request
|
64
64
|
function cancel(RequestId requestId) external;
|
65
65
|
|
66
66
|
}
|
@@ -140,10 +140,10 @@ abstract contract Oracle is
|
|
140
140
|
internal
|
141
141
|
virtual
|
142
142
|
{
|
143
|
-
_getOracleStorage()._oracleService.respond(
|
144
|
-
requestId, responseData);
|
143
|
+
_getOracleStorage()._oracleService.respond(requestId, responseData);
|
145
144
|
}
|
146
145
|
|
146
|
+
|
147
147
|
function _getOracleStorage() private pure returns (OracleStorage storage $) {
|
148
148
|
assembly {
|
149
149
|
$.slot := ORACLE_STORAGE_LOCATION_V1
|
@@ -130,7 +130,7 @@ contract BundleService is
|
|
130
130
|
BundleSet bundleManager = instance.getBundleSet();
|
131
131
|
bundleManager.add(bundleNftId);
|
132
132
|
|
133
|
-
emit LogBundleServiceBundleCreated(bundleNftId, poolNftId, lifetime);
|
133
|
+
emit LogBundleServiceBundleCreated(bundleNftId, poolNftId, lifetime, bundleFee.fixedFee, bundleFee.fractionalFee);
|
134
134
|
}
|
135
135
|
|
136
136
|
|
@@ -30,7 +30,7 @@ interface IBundleService is IService {
|
|
30
30
|
|
31
31
|
error ErrorBundleServiceExtensionLifetimeIsZero();
|
32
32
|
|
33
|
-
event LogBundleServiceBundleCreated(NftId bundleNftId, NftId poolNftId, Seconds lifetime);
|
33
|
+
event LogBundleServiceBundleCreated(NftId bundleNftId, NftId poolNftId, Seconds lifetime, Amount fixedFee, UFixed fractionalFee);
|
34
34
|
event LogBundleServiceBundleClosed(NftId bundleNftId);
|
35
35
|
event LogBundleServiceBundleLocked(NftId bundleNftId);
|
36
36
|
event LogBundleServiceBundleUnlocked(NftId bundleNftId);
|
@@ -19,7 +19,7 @@ interface IPoolService is IService {
|
|
19
19
|
event LogPoolServiceWalletDefunded(NftId poolNftId, address poolOwner, Amount amount);
|
20
20
|
|
21
21
|
event LogPoolServiceBundleCreated(NftId instanceNftId, NftId poolNftId, NftId bundleNftId);
|
22
|
-
event LogPoolServiceBundleClosed(NftId instanceNftId, NftId poolNftId, NftId bundleNftId);
|
22
|
+
event LogPoolServiceBundleClosed(NftId instanceNftId, NftId poolNftId, NftId bundleNftId, Amount balanceAmount, Amount feeAmount);
|
23
23
|
|
24
24
|
event LogPoolServiceBundleStaked(NftId instanceNftId, NftId poolNftId, NftId bundleNftId, Amount amount, Amount netAmount);
|
25
25
|
event LogPoolServiceBundleUnstaked(NftId instanceNftId, NftId poolNftId, NftId bundleNftId, Amount amount, Amount netAmount);
|
@@ -98,7 +98,7 @@ contract PoolService is
|
|
98
98
|
unstakedAmount + feeAmount,
|
99
99
|
AmountLib.zero());
|
100
100
|
|
101
|
-
emit LogPoolServiceBundleClosed(instance.getNftId(), poolNftId, bundleNftId);
|
101
|
+
emit LogPoolServiceBundleClosed(instance.getNftId(), poolNftId, bundleNftId, unstakedAmount, feeAmount);
|
102
102
|
|
103
103
|
if ((unstakedAmount + feeAmount).gtz()){
|
104
104
|
IComponents.ComponentInfo memory poolComponentInfo = instance.getInstanceReader().getComponentInfo(poolNftId);
|
@@ -7,7 +7,7 @@ import {IProductComponent} from "./IProductComponent.sol";
|
|
7
7
|
|
8
8
|
import {Authorization} from "../authorization/Authorization.sol";
|
9
9
|
import {BasicProduct} from "./BasicProduct.sol";
|
10
|
-
import {COMPONENT, PRODUCT, POLICY} from "../type/ObjectType.sol";
|
10
|
+
import {COMPONENT, ORACLE, PRODUCT, POLICY} from "../type/ObjectType.sol";
|
11
11
|
import {RoleId, PUBLIC_ROLE} from "../type/RoleId.sol";
|
12
12
|
import {TokenHandler} from "../shared/TokenHandler.sol";
|
13
13
|
|
@@ -30,7 +30,8 @@ contract BasicProductAuthorization
|
|
30
30
|
virtual override
|
31
31
|
{
|
32
32
|
_authorizeServiceDomain(COMPONENT(), address(10));
|
33
|
-
_authorizeServiceDomain(
|
33
|
+
_authorizeServiceDomain(ORACLE(), address(11));
|
34
|
+
_authorizeServiceDomain(POLICY(), address(12));
|
34
35
|
}
|
35
36
|
|
36
37
|
function _setupTokenHandlerAuthorizations() internal virtual override {
|
@@ -13,7 +13,7 @@ interface IPolicyService is IService {
|
|
13
13
|
|
14
14
|
event LogPolicyServicePolicyCreated(NftId policyNftId, Amount premiumAmount, Timestamp activatedAt);
|
15
15
|
event LogPolicyServicePolicyDeclined(NftId policyNftId);
|
16
|
-
event LogPolicyServicePolicyPremiumCollected(NftId policyNftId, Amount premiumAmount);
|
16
|
+
event LogPolicyServicePolicyPremiumCollected(NftId policyNftId, NftId productNftId, Amount premiumAmount, Timestamp activateAt);
|
17
17
|
event LogPolicyServicePolicyActivated(NftId policyNftId, Timestamp activatedAt);
|
18
18
|
event LogPolicyServicePolicyActivatedUpdated(NftId policyNftId, Timestamp activatedAt);
|
19
19
|
event LogPolicyServicePolicyExpirationUpdated(NftId policyNftId, Timestamp expiredAt);
|
@@ -247,7 +247,7 @@ contract PolicyService is
|
|
247
247
|
instance.getProductStore().updatePremiumState(policyNftId, PAID());
|
248
248
|
|
249
249
|
// log premium collection before interactions with token
|
250
|
-
emit LogPolicyServicePolicyPremiumCollected(policyNftId, premium.premiumAmount);
|
250
|
+
emit LogPolicyServicePolicyPremiumCollected(policyNftId, policyInfo.productNftId, premium.premiumAmount, activateAt);
|
251
251
|
|
252
252
|
// interactions
|
253
253
|
_transferPremiumAmounts(instanceReader, policyNftId, policyInfo.productNftId, premium);
|
@@ -95,13 +95,14 @@ library PolicyServiceLib {
|
|
95
95
|
{
|
96
96
|
if (policyState != COLLATERALIZED()) {
|
97
97
|
revert IPolicyService.ErrorPolicyServicePolicyNotActive(policyNftId, policyState);
|
98
|
-
}
|
99
|
-
|
98
|
+
}
|
99
|
+
|
100
|
+
if (policyInfo.activatedAt.eqz() || TimestampLib.current() < policyInfo.activatedAt) {
|
100
101
|
revert IPolicyService.ErrorPolicyServicePolicyNotActive(policyNftId, policyState);
|
101
102
|
}
|
102
103
|
|
103
104
|
// check expiredAt represents a valid expiry time
|
104
|
-
if (newExpiredAt
|
105
|
+
if (newExpiredAt > policyInfo.expiredAt) {
|
105
106
|
revert IPolicyService.ErrorPolicyServicePolicyExpirationTooLate(policyNftId, policyInfo.expiredAt, newExpiredAt);
|
106
107
|
}
|
107
108
|
|
@@ -110,6 +111,7 @@ library PolicyServiceLib {
|
|
110
111
|
}
|
111
112
|
}
|
112
113
|
|
114
|
+
|
113
115
|
function policyIsCloseable(InstanceReader instanceReader, NftId policyNftId)
|
114
116
|
external
|
115
117
|
view
|
@@ -11,7 +11,7 @@ contract ChainNft is ERC721Enumerable {
|
|
11
11
|
event LogTokenInterceptorAddress(uint256 tokenId, address interceptor);
|
12
12
|
|
13
13
|
// constants
|
14
|
-
string public constant NAME = "
|
14
|
+
string public constant NAME = "Decentralized Insurance Protocol NFT";
|
15
15
|
string public constant SYMBOL = "DIPNFT";
|
16
16
|
|
17
17
|
uint256 public constant PROTOCOL_NFT_ID = 1101;
|
@@ -20,7 +20,7 @@ interface IRegistry is
|
|
20
20
|
{
|
21
21
|
|
22
22
|
event LogRegistryObjectRegistered(NftId nftId, NftId parentNftId, ObjectType objectType, bool isInterceptor, address objectAddress, address initialOwner);
|
23
|
-
event LogRegistryServiceRegistered(VersionPart majorVersion, ObjectType domain);
|
23
|
+
event LogRegistryServiceRegistered(NftId nftId, VersionPart majorVersion, ObjectType domain);
|
24
24
|
event LogRegistryChainRegistryRegistered(NftId nftId, uint256 chainId, address chainRegistryAddress);
|
25
25
|
|
26
26
|
// initialize
|
@@ -85,7 +85,13 @@ contract RegistryAdmin is
|
|
85
85
|
registry,
|
86
86
|
release);
|
87
87
|
|
88
|
-
|
88
|
+
AccessAdminLib.checkAuthorization(
|
89
|
+
address(_authorization),
|
90
|
+
authorization,
|
91
|
+
REGISTRY(),
|
92
|
+
release,
|
93
|
+
false, // expectServiceAuthorization
|
94
|
+
false); // checkAlreadyInitialized);
|
89
95
|
|
90
96
|
_registry = registry;
|
91
97
|
_authorization = IAuthorization(authorization);
|
@@ -72,7 +72,14 @@ contract ReleaseAdmin is
|
|
72
72
|
release);
|
73
73
|
|
74
74
|
IServiceAuthorization serviceAuthorization = IServiceAuthorization(authorization);
|
75
|
-
|
75
|
+
AccessAdminLib.checkAuthorization(
|
76
|
+
address(_authorization),
|
77
|
+
address(serviceAuthorization),
|
78
|
+
RELEASE(),
|
79
|
+
release,
|
80
|
+
true, // expectServiceAuthorization
|
81
|
+
true); // checkAlreadyInitialized);
|
82
|
+
|
76
83
|
_serviceAuthorization = serviceAuthorization;
|
77
84
|
|
78
85
|
// link nft ownability to registry
|
@@ -543,6 +543,11 @@ contract ComponentService is
|
|
543
543
|
address(component), // initially, component is its own wallet
|
544
544
|
token,
|
545
545
|
instanceAdmin.authority());
|
546
|
+
|
547
|
+
emit LogComponentServiceTokenHandlerDeployed(
|
548
|
+
componentNftId,
|
549
|
+
address(componentInfo.tokenHandler),
|
550
|
+
token);
|
546
551
|
|
547
552
|
// register component with instance
|
548
553
|
instanceStore.createComponent(
|
@@ -0,0 +1,15 @@
|
|
1
|
+
// SPDX-License-Identifier: Apache-2.0
|
2
|
+
pragma solidity ^0.8.20;
|
3
|
+
|
4
|
+
import {IComponent} from "../shared/IComponent.sol";
|
5
|
+
import {IAuthorization} from "../authorization/IAuthorization.sol";
|
6
|
+
|
7
|
+
/// @dev component base class
|
8
|
+
/// component examples are product, distribution, pool and oracle
|
9
|
+
interface IAuthorizedComponent is
|
10
|
+
IComponent
|
11
|
+
{
|
12
|
+
/// @dev returns the initial component authorization specification.
|
13
|
+
function getAuthorization() external view returns (IAuthorization authorization);
|
14
|
+
|
15
|
+
}
|
@@ -46,6 +46,7 @@ interface IComponentService is
|
|
46
46
|
error ErrorComponentServiceWalletAllowanceTooSmall(address wallet, address spender, uint256 allowance, uint256 amount);
|
47
47
|
|
48
48
|
event LogComponentServiceComponentLocked(address component, bool locked);
|
49
|
+
event LogComponentServiceTokenHandlerDeployed(NftId componentNftId, address tokenHandler, address token);
|
49
50
|
event LogComponentServiceRegistered(NftId instanceNftId, NftId componentNftId, ObjectType componentType, address component, address token, address initialOwner);
|
50
51
|
event LogComponentServiceWalletAddressChanged(NftId componentNftId, address currentWallet, address newWallet);
|
51
52
|
event LogComponentServiceWalletTokensTransferred(NftId componentNftId, address currentWallet, address newWallet, uint256 currentBalance);
|
@@ -2,7 +2,7 @@
|
|
2
2
|
pragma solidity ^0.8.20;
|
3
3
|
|
4
4
|
import {Amount} from "../type/Amount.sol";
|
5
|
-
import {
|
5
|
+
import {IAuthorizedComponent} from "../shared/IAuthorizedComponent.sol";
|
6
6
|
import {IAuthorization} from "../authorization/IAuthorization.sol";
|
7
7
|
import {IInstance} from "../instance/IInstance.sol";
|
8
8
|
import {NftId} from "../type/NftId.sol";
|
@@ -11,7 +11,7 @@ import {ObjectType} from "../type/ObjectType.sol";
|
|
11
11
|
/// @dev component base class
|
12
12
|
/// component examples are product, distribution, pool and oracle
|
13
13
|
interface IInstanceLinkedComponent is
|
14
|
-
|
14
|
+
IAuthorizedComponent
|
15
15
|
{
|
16
16
|
error ErrorInstanceLinkedComponentTypeMismatch(ObjectType requiredType, ObjectType objectType);
|
17
17
|
error ErrorInstanceLinkedComponentNotProduct(NftId nftId, ObjectType objectType);
|
@@ -24,7 +24,4 @@ interface IInstanceLinkedComponent is
|
|
24
24
|
/// @dev defines the instance to which this component is linked to
|
25
25
|
function getInstance() external view returns (IInstance instance);
|
26
26
|
|
27
|
-
/// @dev returns the initial component authorization specification.
|
28
|
-
function getAuthorization() external view returns (IAuthorization authorization);
|
29
|
-
|
30
27
|
}
|
@@ -1,27 +1,25 @@
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
2
2
|
pragma solidity ^0.8.20;
|
3
3
|
|
4
|
-
import {AccessManagedUpgradeable} from "@openzeppelin/contracts-upgradeable/access/manager/AccessManagedUpgradeable.sol";
|
5
|
-
import {IAccessManaged} from "@openzeppelin/contracts/access/manager/IAccessManaged.sol";
|
6
|
-
import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol";
|
7
|
-
import {SafeERC20} from "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol";
|
8
|
-
|
9
|
-
import {Amount} from "../type/Amount.sol";
|
10
|
-
import {Component} from "./Component.sol";
|
11
|
-
import {IComponentService} from "./IComponentService.sol";
|
12
|
-
import {IInstanceLinkedComponent} from "./IInstanceLinkedComponent.sol";
|
13
4
|
import {IAuthorization} from "../authorization/IAuthorization.sol";
|
5
|
+
import {IAuthorizedComponent} from "../shared/IAuthorizedComponent.sol";
|
14
6
|
import {IComponents} from "../instance/module/IComponents.sol";
|
15
|
-
import {
|
7
|
+
import {IComponentService} from "./IComponentService.sol";
|
16
8
|
import {IInstance} from "../instance/IInstance.sol";
|
9
|
+
import {IInstanceLinkedComponent} from "./IInstanceLinkedComponent.sol";
|
10
|
+
import {IInstanceService} from "../instance/IInstanceService.sol";
|
11
|
+
import {IOracleService} from "../oracle/IOracleService.sol";
|
12
|
+
|
13
|
+
import {Amount} from "../type/Amount.sol";
|
14
|
+
import {Component} from "./Component.sol";
|
17
15
|
import {InstanceReader} from "../instance/InstanceReader.sol";
|
18
16
|
import {IRegistry} from "../registry/IRegistry.sol";
|
19
17
|
import {NftId} from "../type/NftId.sol";
|
20
|
-
import {ObjectType, COMPONENT, INSTANCE, PRODUCT} from "../type/ObjectType.sol";
|
21
|
-
import {
|
18
|
+
import {ObjectType, COMPONENT, INSTANCE, ORACLE, PRODUCT} from "../type/ObjectType.sol";
|
19
|
+
import {RequestId} from "../type/RequestId.sol";
|
22
20
|
import {RoleId, RoleIdLib} from "../type/RoleId.sol";
|
23
|
-
import {IAccess} from "../authorization/IAccess.sol";
|
24
21
|
import {TokenHandler} from "../shared/TokenHandler.sol";
|
22
|
+
import {Timestamp} from "../type/Timestamp.sol";
|
25
23
|
import {VersionPart} from "../type/Version.sol";
|
26
24
|
|
27
25
|
// then add (Distribution|Pool|Product)Upradeable that also intherit from Versionable
|
@@ -38,8 +36,23 @@ abstract contract InstanceLinkedComponent is
|
|
38
36
|
InstanceReader _instanceReader; // instance reader for this component
|
39
37
|
IAuthorization _initialAuthorization;
|
40
38
|
IComponentService _componentService;
|
39
|
+
IOracleService _oracleService;
|
40
|
+
}
|
41
|
+
|
42
|
+
//--- view functions ----------------------------------------------------//
|
43
|
+
|
44
|
+
/// @inheritdoc IInstanceLinkedComponent
|
45
|
+
function getInstance() public view virtual override returns (IInstance instance) {
|
46
|
+
return _getInstanceLinkedComponentStorage()._instance;
|
47
|
+
}
|
48
|
+
|
49
|
+
|
50
|
+
/// @inheritdoc IAuthorizedComponent
|
51
|
+
function getAuthorization() external view virtual returns (IAuthorization authorization) {
|
52
|
+
return _getInstanceLinkedComponentStorage()._initialAuthorization;
|
41
53
|
}
|
42
54
|
|
55
|
+
|
43
56
|
/// @inheritdoc IInstanceLinkedComponent
|
44
57
|
function withdrawFees(Amount amount)
|
45
58
|
external
|
@@ -51,22 +64,49 @@ abstract contract InstanceLinkedComponent is
|
|
51
64
|
return _withdrawFees(amount);
|
52
65
|
}
|
53
66
|
|
54
|
-
|
55
|
-
|
56
|
-
|
67
|
+
//--- internal functions ------------------------------------------------//
|
68
|
+
|
69
|
+
function _sendRequest(
|
70
|
+
NftId oracleNftId,
|
71
|
+
bytes memory requestData,
|
72
|
+
Timestamp expiryAt,
|
73
|
+
string memory callbackMethod
|
74
|
+
)
|
75
|
+
internal
|
76
|
+
virtual
|
77
|
+
returns (RequestId requestId)
|
78
|
+
{
|
79
|
+
return _getInstanceLinkedComponentStorage()._oracleService.request(
|
80
|
+
oracleNftId,
|
81
|
+
requestData,
|
82
|
+
expiryAt,
|
83
|
+
callbackMethod);
|
57
84
|
}
|
58
85
|
|
59
|
-
|
60
|
-
function
|
61
|
-
|
86
|
+
|
87
|
+
function _cancelRequest(RequestId requestId)
|
88
|
+
internal
|
89
|
+
virtual
|
90
|
+
{
|
91
|
+
_getInstanceLinkedComponentStorage()._oracleService.cancel(requestId);
|
92
|
+
}
|
93
|
+
|
94
|
+
|
95
|
+
function _resendRequest(RequestId requestId)
|
96
|
+
internal
|
97
|
+
virtual
|
98
|
+
{
|
99
|
+
_getInstanceLinkedComponentStorage()._oracleService.resend(requestId);
|
62
100
|
}
|
63
101
|
|
102
|
+
|
64
103
|
function _getInstanceLinkedComponentStorage() private pure returns (InstanceLinkedComponentStorage storage $) {
|
65
104
|
assembly {
|
66
105
|
$.slot := INSTANCE_LINKED_COMPONENT_LOCATION_V1
|
67
106
|
}
|
68
107
|
}
|
69
108
|
|
109
|
+
|
70
110
|
function __InstanceLinkedComponent_init(
|
71
111
|
address registry,
|
72
112
|
NftId parentNftId,
|
@@ -106,6 +146,7 @@ abstract contract InstanceLinkedComponent is
|
|
106
146
|
$._instanceReader = $._instance.getInstanceReader();
|
107
147
|
$._initialAuthorization = authorization;
|
108
148
|
$._componentService = IComponentService(_getServiceAddress(COMPONENT()));
|
149
|
+
$._oracleService = IOracleService(_getServiceAddress(ORACLE()));
|
109
150
|
|
110
151
|
// register interfaces
|
111
152
|
_registerInterface(type(IInstanceLinkedComponent).interfaceId);
|
@@ -25,6 +25,8 @@ interface IStaking is
|
|
25
25
|
IVersionable
|
26
26
|
{
|
27
27
|
|
28
|
+
event LogStakingTokenHandlerDeployed(NftId componentNftId, address tokenHandler, address token);
|
29
|
+
|
28
30
|
// owner functions
|
29
31
|
event LogStakingStakingRateSet(ChainId chainId, address token, UFixed newStakingRate, UFixed oldStakingRate, Blocknumber lastUpdateIn);
|
30
32
|
event LogStakingStakingServiceSet(address stakingService, VersionPart release, address oldStakingService);
|
@@ -17,7 +17,7 @@ interface IStakingService is IService
|
|
17
17
|
{
|
18
18
|
|
19
19
|
event LogStakingServiceProtocolTargetRegistered(NftId protocolNftId);
|
20
|
-
event LogStakingServiceInstanceTargetRegistered(NftId instanceNftId, uint256 chainId);
|
20
|
+
event LogStakingServiceInstanceTargetRegistered(NftId instanceNftId, uint256 chainId, Seconds initialLockingPeriod, UFixed initialRewardRate);
|
21
21
|
event LogStakingServiceLockingPeriodSet(NftId targetNftId, Seconds oldLockingDuration, Seconds lockingDuration);
|
22
22
|
event LogStakingServiceRewardRateSet(NftId targetNftId, UFixed oldRewardRate, UFixed rewardRate);
|
23
23
|
|
@@ -59,7 +59,7 @@ contract StakingService is
|
|
59
59
|
initialLockingPeriod,
|
60
60
|
initialRewardRate);
|
61
61
|
|
62
|
-
emit LogStakingServiceInstanceTargetRegistered(targetNftId, chainId);
|
62
|
+
emit LogStakingServiceInstanceTargetRegistered(targetNftId, chainId, initialLockingPeriod, initialRewardRate);
|
63
63
|
}
|
64
64
|
|
65
65
|
|
@@ -1,6 +1,7 @@
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
2
2
|
pragma solidity ^0.8.20;
|
3
3
|
|
4
|
+
import {StrLib} from "./String.sol";
|
4
5
|
import {VersionPart} from "./Version.sol";
|
5
6
|
|
6
7
|
type ObjectType is uint8;
|
@@ -247,7 +248,7 @@ library ObjectTypeLib {
|
|
247
248
|
return string(
|
248
249
|
abi.encodePacked(
|
249
250
|
"ObjectType",
|
250
|
-
|
251
|
+
StrLib.uintToString(
|
251
252
|
toInt(objectType))));
|
252
253
|
}
|
253
254
|
|
@@ -274,34 +275,4 @@ library ObjectTypeLib {
|
|
274
275
|
versionName,
|
275
276
|
release.toString()));
|
276
277
|
}
|
277
|
-
|
278
|
-
/// @dev returns the provied int as a string
|
279
|
-
function toString(uint256 value) public pure returns (string memory name) {
|
280
|
-
|
281
|
-
if (value == 0) {
|
282
|
-
return "0";
|
283
|
-
}
|
284
|
-
|
285
|
-
uint256 temp = value;
|
286
|
-
uint256 digits = 0;
|
287
|
-
while (temp != 0) {
|
288
|
-
digits++;
|
289
|
-
temp /= 10;
|
290
|
-
}
|
291
|
-
|
292
|
-
bytes memory buffer = new bytes(digits);
|
293
|
-
uint256 index = digits - 1;
|
294
|
-
|
295
|
-
temp = value;
|
296
|
-
while (temp != 0) {
|
297
|
-
buffer[index] = bytes1(uint8(48 + temp % 10));
|
298
|
-
temp /= 10;
|
299
|
-
|
300
|
-
if (index > 0) {
|
301
|
-
index--;
|
302
|
-
}
|
303
|
-
}
|
304
|
-
|
305
|
-
return string(buffer);
|
306
|
-
}
|
307
278
|
}
|