@etherisc/gif-next 0.0.2-9e6b423-414 → 0.0.2-9f1b659-471
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 +3 -0
- package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.dbg.json +1 -1
- package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +86 -34
- package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +73 -35
- package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.dbg.json +1 -1
- package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.json +52 -0
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +1 -1
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +2 -2
- package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.dbg.json +1 -1
- package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.json +2 -2
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +1 -1
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +2 -2
- 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 +37 -18
- 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/Distribution.sol/Distribution.json +19 -0
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +311 -151
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +112 -86
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +19 -0
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +199 -15
- 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 +65 -42
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +16 -16
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +79 -44
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +16 -16
- package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +57 -22
- 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 +27 -8
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +69 -50
- package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +16 -16
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +248 -68
- package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +16 -16
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +1 -1
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +2 -2
- package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstance.sol/IInstance.json +26 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +96 -4
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +37 -12
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +2 -2
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +16 -16
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +56 -56
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +118 -26
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +69 -31
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +106 -98
- package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +1 -1
- package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +101 -88
- package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +8 -8
- 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 +23 -4
- 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/IOracleComponent.sol/IOracleComponent.json +19 -0
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +29 -0
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +19 -0
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +49 -20
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +78 -40
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +37 -26
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +19 -19
- package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleService.sol/BundleService.json +280 -119
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +106 -48
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +180 -27
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +19 -0
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +220 -1
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
- package/artifacts/contracts/pool/Pool.sol/Pool.json +19 -0
- package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolLib.sol/PoolLib.json +36 -52
- package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolService.sol/PoolService.json +292 -65
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +94 -52
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +202 -61
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +75 -33
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +19 -0
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +19 -19
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +128 -104
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +95 -65
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +166 -1
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +50 -10
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +55 -0
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +29 -0
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +19 -0
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +1 -1
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.json +203 -18
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +109 -46
- 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 +91 -49
- package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
- package/artifacts/contracts/product/PricingService.sol/PricingService.json +79 -74
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +82 -40
- package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
- package/artifacts/contracts/product/Product.sol/Product.json +19 -0
- package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +1 -1
- package/artifacts/contracts/product/RiskService.sol/RiskService.json +231 -46
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +70 -32
- 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 +18 -7
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +29 -0
- 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 +56 -45
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +2 -2
- package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.json +29 -21
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +41 -12
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +65 -27
- package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +1 -1
- package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +2 -2
- package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +1 -1
- package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +81 -81
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +17 -17
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +119 -59
- package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
- package/artifacts/contracts/shared/Component.sol/Component.json +19 -0
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +120 -56
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +96 -50
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +1 -1
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +9 -9
- 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/ContractLib.sol/ITokenRegistryHelper.json +2 -2
- package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponent.sol/IComponent.json +19 -0
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +48 -0
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +19 -0
- package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
- package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.json +6 -6
- 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 +19 -0
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +19 -0
- package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
- package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
- package/artifacts/contracts/shared/IService.sol/IService.json +29 -0
- package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +1 -1
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +19 -0
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +6 -6
- 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 +21 -2
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +2 -2
- package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
- package/artifacts/contracts/shared/Registerable.sol/Registerable.json +19 -0
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -2
- package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
- package/artifacts/contracts/shared/Service.sol/Service.json +29 -0
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +2 -2
- package/artifacts/contracts/shared/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 +1146 -53
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +91 -111
- package/artifacts/contracts/staking/ITargetManager.sol/ITargetManager.dbg.json +4 -0
- package/artifacts/contracts/staking/ITargetManager.sol/ITargetManager.json +69 -0
- package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
- package/artifacts/contracts/staking/Staking.sol/Staking.json +1392 -181
- package/artifacts/contracts/staking/StakingLib.sol/StakingLib.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingLib.sol/StakingLib.json +73 -72
- package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +138 -56
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +174 -180
- package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingService.sol/StakingService.json +115 -167
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +68 -46
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +1290 -599
- package/artifacts/contracts/staking/TargetManager.sol/TargetManager.dbg.json +4 -0
- package/artifacts/contracts/staking/TargetManager.sol/TargetManager.json +134 -0
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +72 -32
- package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
- package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
- package/artifacts/contracts/type/Amount.sol/AmountLib.json +2 -2
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +45 -19
- package/artifacts/contracts/type/ChainId.sol/ChainIdLib.dbg.json +4 -0
- package/artifacts/contracts/type/ChainId.sol/ChainIdLib.json +193 -0
- 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/Fee.sol/FeeLib.json +2 -2
- package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +1 -1
- package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.dbg.json +1 -1
- 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/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +2 -2
- package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
- package/artifacts/contracts/type/Referral.sol/ReferralLib.json +2 -2
- package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/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/Seconds.sol/SecondsLib.dbg.json +1 -1
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +45 -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/Timestamp.sol/TimestampLib.dbg.json +1 -1
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +3 -3
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +2 -2
- package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
- package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.json +10 -0
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +55 -17
- package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +2 -2
- package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.json +10 -0
- package/contracts/accounting/AccountingService.sol +13 -0
- package/contracts/accounting/IAccountingService.sol +2 -0
- package/contracts/authorization/AccessAdmin.sol +5 -5
- package/contracts/authorization/AccessAdminLib.sol +2 -2
- package/contracts/authorization/Authorization.sol +2 -7
- package/contracts/authorization/IAuthorization.sol +0 -1
- package/contracts/authorization/ServiceAuthorization.sol +2 -2
- package/contracts/distribution/BasicDistribution.sol +2 -2
- package/contracts/distribution/Distribution.sol +5 -3
- package/contracts/distribution/DistributionService.sol +27 -21
- package/contracts/distribution/IDistributionService.sol +10 -4
- package/contracts/examples/fire/FireProduct.sol +6 -6
- package/contracts/examples/unpermissioned/SimpleProduct.sol +83 -19
- package/contracts/instance/IInstance.sol +1 -1
- package/contracts/instance/IInstanceService.sol +7 -3
- package/contracts/instance/Instance.sol +6 -4
- package/contracts/instance/InstanceAuthorizationV3.sol +2 -1
- package/contracts/instance/InstanceService.sol +21 -32
- package/contracts/instance/RiskSet.sol +10 -2
- package/contracts/instance/base/BalanceStore.sol +1 -1
- package/contracts/instance/base/ObjectLifecycle.sol +2 -6
- package/contracts/oracle/BasicOracle.sol +1 -1
- package/contracts/oracle/Oracle.sol +2 -2
- package/contracts/oracle/OracleService.sol +4 -4
- package/contracts/pool/BasicPool.sol +3 -14
- package/contracts/pool/BasicPoolAuthorization.sol +1 -2
- package/contracts/pool/BundleService.sol +34 -43
- package/contracts/pool/IBundleService.sol +14 -13
- package/contracts/pool/IPoolService.sol +7 -2
- package/contracts/pool/Pool.sol +4 -14
- package/contracts/pool/PoolLib.sol +10 -22
- package/contracts/pool/PoolService.sol +35 -8
- package/contracts/product/ApplicationService.sol +58 -9
- package/contracts/product/BasicProduct.sol +1 -1
- package/contracts/product/BasicProductAuthorization.sol +2 -0
- package/contracts/product/ClaimService.sol +39 -40
- package/contracts/product/IApplicationService.sol +21 -2
- package/contracts/product/IClaimService.sol +5 -4
- package/contracts/product/IPolicyService.sol +9 -2
- package/contracts/product/IRiskService.sol +18 -3
- package/contracts/product/PolicyService.sol +13 -8
- package/contracts/product/PolicyServiceLib.sol +7 -7
- package/contracts/product/PricingService.sol +22 -25
- package/contracts/product/Product.sol +38 -12
- package/contracts/product/RiskService.sol +48 -12
- package/contracts/registry/IRegistry.sol +11 -9
- package/contracts/registry/Registry.sol +15 -9
- package/contracts/registry/RegistryAuthorization.sol +55 -20
- package/contracts/registry/RegistryService.sol +1 -1
- package/contracts/registry/ReleaseRegistry.sol +8 -3
- package/contracts/registry/ServiceAuthorizationV3.sol +10 -12
- package/contracts/registry/TokenRegistry.sol +52 -49
- package/contracts/shared/Component.sol +6 -2
- package/contracts/shared/ComponentService.sol +15 -6
- package/contracts/shared/ContractLib.sol +3 -2
- package/contracts/shared/IComponent.sol +1 -1
- package/contracts/shared/IComponentService.sol +1 -0
- package/contracts/shared/IKeyValueStore.sol +1 -1
- package/contracts/shared/INftOwnable.sol +2 -0
- package/contracts/shared/InstanceLinkedComponent.sol +4 -4
- package/contracts/shared/KeyValueStore.sol +3 -3
- package/contracts/shared/NftOwnable.sol +2 -0
- package/contracts/shared/PolicyHolder.sol +3 -2
- package/contracts/staking/IStaking.sol +187 -65
- package/contracts/staking/IStakingService.sol +36 -84
- package/contracts/staking/ITargetManager.sol +28 -0
- package/contracts/staking/Staking.sol +458 -210
- package/contracts/staking/StakingLib.sol +38 -124
- package/contracts/staking/StakingManager.sol +1 -2
- package/contracts/staking/StakingReader.sol +45 -74
- package/contracts/staking/StakingService.sol +39 -185
- package/contracts/staking/StakingServiceManager.sol +1 -0
- package/contracts/staking/StakingStore.sol +866 -327
- package/contracts/staking/TargetManager.sol +103 -0
- package/contracts/type/Amount.sol +4 -0
- package/contracts/type/Blocknumber.sol +15 -15
- package/contracts/type/ChainId.sol +101 -0
- package/contracts/type/NftId.sol +3 -3
- package/contracts/type/Seconds.sol +14 -0
- package/contracts/type/Timestamp.sol +4 -2
- package/contracts/type/UFixed.sol +1 -0
- package/contracts/upgradeability/IVersionable.sol +3 -0
- package/contracts/upgradeability/ProxyManager.sol +13 -1
- package/contracts/upgradeability/UpgradableProxyWithAdmin.sol +6 -2
- package/contracts/upgradeability/Versionable.sol +2 -2
- package/package.json +1 -1
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +0 -4
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +0 -485
- package/contracts/shared/ComponentVerifyingService.sol +0 -128
@@ -57,6 +57,7 @@ abstract contract Distribution is
|
|
57
57
|
|
58
58
|
function getDiscountPercentage(string memory referralCode)
|
59
59
|
external
|
60
|
+
virtual
|
60
61
|
view
|
61
62
|
returns (
|
62
63
|
UFixed discountPercentage,
|
@@ -72,6 +73,7 @@ abstract contract Distribution is
|
|
72
73
|
string memory referralCode
|
73
74
|
)
|
74
75
|
public
|
76
|
+
virtual
|
75
77
|
view
|
76
78
|
returns (ReferralId referralId)
|
77
79
|
{
|
@@ -96,12 +98,12 @@ abstract contract Distribution is
|
|
96
98
|
|
97
99
|
|
98
100
|
/// @dev Returns true iff the component needs to be called when selling/renewing policis
|
99
|
-
function isVerifying() external pure returns (bool verifying) {
|
101
|
+
function isVerifying() external virtual pure returns (bool verifying) {
|
100
102
|
return true;
|
101
103
|
}
|
102
104
|
|
103
105
|
|
104
|
-
function
|
106
|
+
function __Distribution_init(
|
105
107
|
address registry,
|
106
108
|
NftId productNftId,
|
107
109
|
IAuthorization authorization,
|
@@ -114,7 +116,7 @@ abstract contract Distribution is
|
|
114
116
|
virtual
|
115
117
|
onlyInitializing()
|
116
118
|
{
|
117
|
-
|
119
|
+
__InstanceLinkedComponent_init(
|
118
120
|
registry,
|
119
121
|
productNftId,
|
120
122
|
name,
|
@@ -13,6 +13,7 @@ import {IComponents} from "../instance/module/IComponents.sol";
|
|
13
13
|
import {IPolicy} from "../instance/module/IPolicy.sol";
|
14
14
|
|
15
15
|
import {Amount, AmountLib} from "../type/Amount.sol";
|
16
|
+
import {ContractLib} from "../shared/ContractLib.sol";
|
16
17
|
import {DistributorType, DistributorTypeLib} from "../type/DistributorType.sol";
|
17
18
|
import {NftId, NftIdLib} from "../type/NftId.sol";
|
18
19
|
import {KEEP_STATE} from "../type/StateId.sol";
|
@@ -73,10 +74,10 @@ contract DistributionService is
|
|
73
74
|
bytes memory data
|
74
75
|
)
|
75
76
|
external
|
77
|
+
virtual
|
76
78
|
restricted()
|
77
79
|
returns (DistributorType distributorType)
|
78
80
|
{
|
79
|
-
// _getAndVerifyActiveDistribution
|
80
81
|
(NftId distributionNftId, IInstance instance) = _getAndVerifyActiveDistribution();
|
81
82
|
|
82
83
|
{
|
@@ -110,6 +111,8 @@ contract DistributionService is
|
|
110
111
|
data: data});
|
111
112
|
|
112
113
|
instance.getInstanceStore().createDistributorType(distributorType, info);
|
114
|
+
|
115
|
+
emit LogDistributionServiceDistributorTypeCreated(distributionNftId, name);
|
113
116
|
}
|
114
117
|
|
115
118
|
|
@@ -144,6 +147,8 @@ contract DistributionService is
|
|
144
147
|
data: data});
|
145
148
|
|
146
149
|
instance.getInstanceStore().createDistributor(distributorNftId, info);
|
150
|
+
|
151
|
+
emit LogDistributionServiceDistributorCreated(distributionNftId, distributorNftId, distributorType, distributor);
|
147
152
|
}
|
148
153
|
|
149
154
|
function changeDistributorType(
|
@@ -160,9 +165,12 @@ contract DistributionService is
|
|
160
165
|
_checkDistributionType(instance.getInstanceReader(), newDistributorType, distributionNftId);
|
161
166
|
|
162
167
|
IDistribution.DistributorInfo memory distributorInfo = instance.getInstanceReader().getDistributorInfo(distributorNftId);
|
168
|
+
DistributorType oldDistributorType = distributorInfo.distributorType;
|
163
169
|
distributorInfo.distributorType = newDistributorType;
|
164
170
|
distributorInfo.data = data;
|
165
171
|
instance.getInstanceStore().updateDistributor(distributorNftId, distributorInfo, KEEP_STATE());
|
172
|
+
|
173
|
+
emit LogDistributionServiceDistributorTypeChanged(distributorNftId, oldDistributorType, newDistributorType);
|
166
174
|
}
|
167
175
|
|
168
176
|
|
@@ -183,9 +191,9 @@ contract DistributionService is
|
|
183
191
|
(NftId distributionNftId, IInstance instance) = _getAndVerifyActiveDistribution();
|
184
192
|
|
185
193
|
if (bytes(code).length == 0) {
|
186
|
-
revert ErrorDistributionServiceInvalidReferral(
|
194
|
+
revert ErrorDistributionServiceInvalidReferral();
|
187
195
|
}
|
188
|
-
if (expiryAt.eqz() || expiryAt
|
196
|
+
if (expiryAt.eqz() || expiryAt < TimestampLib.current()) {
|
189
197
|
revert ErrorDistributionServiceExpirationInvalid(expiryAt);
|
190
198
|
}
|
191
199
|
|
@@ -200,15 +208,15 @@ contract DistributionService is
|
|
200
208
|
IDistribution.DistributorTypeInfo memory distributorTypeData = instanceReader.getDistributorTypeInfo(distributorType);
|
201
209
|
|
202
210
|
if (distributorTypeData.maxReferralCount < maxReferrals) {
|
203
|
-
revert ErrorDistributionServiceMaxReferralsExceeded(distributorTypeData.maxReferralCount);
|
211
|
+
revert ErrorDistributionServiceMaxReferralsExceeded(distributorTypeData.maxReferralCount, maxReferrals);
|
204
212
|
}
|
205
213
|
if (distributorTypeData.minDiscountPercentage > discountPercentage) {
|
206
|
-
revert ErrorDistributionServiceDiscountTooLow(distributorTypeData.minDiscountPercentage
|
214
|
+
revert ErrorDistributionServiceDiscountTooLow(distributorTypeData.minDiscountPercentage, discountPercentage);
|
207
215
|
}
|
208
216
|
if (distributorTypeData.maxDiscountPercentage < discountPercentage) {
|
209
|
-
revert ErrorDistributionServiceDiscountTooHigh(distributorTypeData.maxDiscountPercentage
|
217
|
+
revert ErrorDistributionServiceDiscountTooHigh(distributorTypeData.maxDiscountPercentage, discountPercentage);
|
210
218
|
}
|
211
|
-
if (expiryAt.toInt() - TimestampLib.
|
219
|
+
if (expiryAt.toInt() - TimestampLib.current().toInt() > distributorTypeData.maxReferralLifetime.toInt()) {
|
212
220
|
revert ErrorDistributionServiceExpiryTooLong(distributorTypeData.maxReferralLifetime, expiryAt);
|
213
221
|
}
|
214
222
|
}
|
@@ -227,6 +235,8 @@ contract DistributionService is
|
|
227
235
|
});
|
228
236
|
|
229
237
|
instance.getInstanceStore().createReferral(referralId, info);
|
238
|
+
|
239
|
+
emit LogDistributionServiceReferralCreated(distributionNftId, distributorNftId, referralId, code);
|
230
240
|
}
|
231
241
|
}
|
232
242
|
|
@@ -241,12 +251,14 @@ contract DistributionService is
|
|
241
251
|
onlyNftOfType(distributionNftId, DISTRIBUTION())
|
242
252
|
{
|
243
253
|
if (referralIsValid(distributionNftId, referralId)) {
|
244
|
-
IInstance instance =
|
254
|
+
IInstance instance = IInstance(ContractLib.getInstanceForComponent(getRegistry(), distributionNftId));
|
245
255
|
|
246
256
|
// update book keeping for referral info
|
247
257
|
IDistribution.ReferralInfo memory referralInfo = instance.getInstanceReader().getReferralInfo(referralId);
|
248
258
|
referralInfo.usedReferrals += 1;
|
249
259
|
instance.getInstanceStore().updateReferral(referralId, referralInfo, KEEP_STATE());
|
260
|
+
|
261
|
+
emit LogDistributionServiceReferralProcessed(distributionNftId, referralInfo.distributorNftId, referralId, referralInfo.usedReferrals);
|
250
262
|
}
|
251
263
|
}
|
252
264
|
|
@@ -260,7 +272,7 @@ contract DistributionService is
|
|
260
272
|
restricted()
|
261
273
|
onlyNftOfType(distributionNftId, DISTRIBUTION())
|
262
274
|
{
|
263
|
-
IInstance instance =
|
275
|
+
IInstance instance = IInstance(ContractLib.getInstanceForComponent(getRegistry(), distributionNftId));
|
264
276
|
InstanceReader reader = instance.getInstanceReader();
|
265
277
|
InstanceStore store = instance.getInstanceStore();
|
266
278
|
|
@@ -287,6 +299,8 @@ contract DistributionService is
|
|
287
299
|
// increase distribution balance by distribution owner fee
|
288
300
|
_accountingService.increaseDistributionBalance(store, distributionNftId, AmountLib.zero(), distributionOwnerFee);
|
289
301
|
}
|
302
|
+
|
303
|
+
emit LogDistributionServiceSaleProcessed(distributionNftId, referralId);
|
290
304
|
}
|
291
305
|
|
292
306
|
/// @inheritdoc IDistributionService
|
@@ -334,6 +348,7 @@ contract DistributionService is
|
|
334
348
|
|
335
349
|
function referralIsValid(NftId distributionNftId, ReferralId referralId)
|
336
350
|
public
|
351
|
+
virtual
|
337
352
|
view
|
338
353
|
onlyNftOfType(distributionNftId, DISTRIBUTION())
|
339
354
|
returns (bool isValid)
|
@@ -342,7 +357,7 @@ contract DistributionService is
|
|
342
357
|
return false;
|
343
358
|
}
|
344
359
|
|
345
|
-
IInstance instance =
|
360
|
+
IInstance instance = IInstance(ContractLib.getInstanceForComponent(getRegistry(), distributionNftId));
|
346
361
|
IDistribution.ReferralInfo memory info = instance.getInstanceReader().getReferralInfo(referralId);
|
347
362
|
|
348
363
|
if (info.distributorNftId.eqz()) {
|
@@ -354,7 +369,7 @@ contract DistributionService is
|
|
354
369
|
revert ErrorDistributionServiceReferralDistributionMismatch(referralId, info.distributionNftId, distributionNftId);
|
355
370
|
}
|
356
371
|
|
357
|
-
isValid = info.expiryAt.eqz() || (info.expiryAt.gtz() && TimestampLib.
|
372
|
+
isValid = info.expiryAt.eqz() || (info.expiryAt.gtz() && TimestampLib.current() <= info.expiryAt);
|
358
373
|
isValid = isValid && info.usedReferrals < info.maxReferrals;
|
359
374
|
}
|
360
375
|
|
@@ -380,7 +395,7 @@ contract DistributionService is
|
|
380
395
|
REFERRAL_ERROR_UNKNOWN());
|
381
396
|
}
|
382
397
|
|
383
|
-
if (info.expiryAt < TimestampLib.
|
398
|
+
if (info.expiryAt < TimestampLib.current()) {
|
384
399
|
return (
|
385
400
|
UFixedLib.zero(),
|
386
401
|
REFERRAL_ERROR_EXPIRED());
|
@@ -413,15 +428,6 @@ contract DistributionService is
|
|
413
428
|
}
|
414
429
|
|
415
430
|
|
416
|
-
function _getInstanceForDistribution(IRegistry registry, NftId distributionNftId)
|
417
|
-
internal
|
418
|
-
view
|
419
|
-
returns(IInstance instance)
|
420
|
-
{
|
421
|
-
// TODO refactor to ComponentLib or similar
|
422
|
-
return PoolLib.getInstanceForComponent(registry, distributionNftId);
|
423
|
-
}
|
424
|
-
|
425
431
|
|
426
432
|
function _getAndVerifyActiveDistribution()
|
427
433
|
internal
|
@@ -19,11 +19,11 @@ interface IDistributionService is IService {
|
|
19
19
|
error ErrorDistributionServiceParentNftIdNotInstance(NftId nftId, NftId parentNftId);
|
20
20
|
error ErrorDistributionServiceCallerNotDistributor(address caller);
|
21
21
|
error ErrorDistributionServiceInvalidReferralId(ReferralId referralId);
|
22
|
-
error ErrorDistributionServiceMaxReferralsExceeded(uint256 maxReferrals);
|
23
|
-
error ErrorDistributionServiceDiscountTooLow(
|
24
|
-
error ErrorDistributionServiceDiscountTooHigh(
|
22
|
+
error ErrorDistributionServiceMaxReferralsExceeded(uint256 limit, uint256 maxReferrals);
|
23
|
+
error ErrorDistributionServiceDiscountTooLow(UFixed minDiscountPercentage, UFixed discountPercentage);
|
24
|
+
error ErrorDistributionServiceDiscountTooHigh(UFixed maxDiscountPercentage, UFixed discountPercentage);
|
25
25
|
error ErrorDistributionServiceExpiryTooLong(Seconds maxReferralLifetime, Timestamp expiryAt);
|
26
|
-
error ErrorDistributionServiceInvalidReferral(
|
26
|
+
error ErrorDistributionServiceInvalidReferral();
|
27
27
|
error ErrorDistributionServiceExpirationInvalid(Timestamp expiryAt);
|
28
28
|
error ErrorDistributionServiceCommissionTooHigh(uint256 commissionPercentage, uint256 maxCommissionPercentage);
|
29
29
|
error ErrorDistributionServiceMinFeeTooHigh(uint256 minFee, uint256 limit);
|
@@ -40,6 +40,12 @@ interface IDistributionService is IService {
|
|
40
40
|
error ErrorDistributionServiceReferralDistributionMismatch(ReferralId referralId, NftId referralDistributionNft, NftId distributionNftId);
|
41
41
|
|
42
42
|
event LogDistributionServiceCommissionWithdrawn(NftId distributorNftId, address recipient, address tokenAddress, Amount amount);
|
43
|
+
event LogDistributionServiceDistributorTypeCreated(NftId distributionNftId, string name);
|
44
|
+
event LogDistributionServiceDistributorCreated(NftId distributionNftId, NftId distributorNftId, DistributorType distributorType, address distributor);
|
45
|
+
event LogDistributionServiceDistributorTypeChanged(NftId distributorNftId, DistributorType oldDistributorType, DistributorType newDistributorType);
|
46
|
+
event LogDistributionServiceReferralCreated(NftId distributionNftId, NftId distributorNftId, ReferralId referralId, string code);
|
47
|
+
event LogDistributionServiceReferralProcessed(NftId distributionNftId, NftId distributorNftId, ReferralId referralId, uint32 usedReferrals);
|
48
|
+
event LogDistributionServiceSaleProcessed(NftId distributionNftId, ReferralId referralId);
|
43
49
|
|
44
50
|
function createDistributorType(
|
45
51
|
string memory name,
|
@@ -140,9 +140,9 @@ contract FireProduct is
|
|
140
140
|
revert ErrorFireProductCityUnknown(cityName);
|
141
141
|
}
|
142
142
|
|
143
|
-
|
143
|
+
_setRiskLocked(
|
144
144
|
_riskMapping[cityName],
|
145
|
-
|
145
|
+
true
|
146
146
|
);
|
147
147
|
}
|
148
148
|
|
@@ -156,9 +156,9 @@ contract FireProduct is
|
|
156
156
|
revert ErrorFireProductCityUnknown(cityName);
|
157
157
|
}
|
158
158
|
|
159
|
-
|
159
|
+
_setRiskLocked(
|
160
160
|
_riskMapping[cityName],
|
161
|
-
|
161
|
+
false
|
162
162
|
);
|
163
163
|
}
|
164
164
|
|
@@ -263,7 +263,7 @@ contract FireProduct is
|
|
263
263
|
onlyOwner()
|
264
264
|
onlyNftOfType(policyNftId, POLICY())
|
265
265
|
{
|
266
|
-
_createPolicy(policyNftId, activateAt);
|
266
|
+
_createPolicy(policyNftId, activateAt, AmountLib.max());
|
267
267
|
_collectPremium(policyNftId, activateAt);
|
268
268
|
}
|
269
269
|
|
@@ -316,7 +316,7 @@ contract FireProduct is
|
|
316
316
|
revert ErrorFireProductCityUnknown(cityName);
|
317
317
|
}
|
318
318
|
|
319
|
-
if (reportedAt > TimestampLib.
|
319
|
+
if (reportedAt > TimestampLib.current()) {
|
320
320
|
revert ErrorFireProductTimestampInFuture();
|
321
321
|
}
|
322
322
|
|
@@ -100,16 +100,22 @@ contract SimpleProduct is
|
|
100
100
|
);
|
101
101
|
}
|
102
102
|
|
103
|
-
function
|
103
|
+
function setRiskLocked(
|
104
104
|
RiskId id,
|
105
|
-
|
105
|
+
bool locked
|
106
106
|
) public {
|
107
|
-
|
107
|
+
_setRiskLocked(
|
108
108
|
id,
|
109
|
-
|
109
|
+
locked
|
110
110
|
);
|
111
111
|
}
|
112
112
|
|
113
|
+
function closeRisk(
|
114
|
+
RiskId id
|
115
|
+
) public {
|
116
|
+
_closeRisk(id);
|
117
|
+
}
|
118
|
+
|
113
119
|
function createApplication(
|
114
120
|
address applicationOwner,
|
115
121
|
RiskId riskId,
|
@@ -143,12 +149,55 @@ contract SimpleProduct is
|
|
143
149
|
);
|
144
150
|
}
|
145
151
|
|
152
|
+
function createApplication2(
|
153
|
+
address applicationOwner,
|
154
|
+
RiskId riskId,
|
155
|
+
Amount sumInsuredAmount,
|
156
|
+
Amount premiumAmount,
|
157
|
+
Seconds lifetime,
|
158
|
+
bytes memory applicationData,
|
159
|
+
NftId bundleNftId,
|
160
|
+
ReferralId referralId
|
161
|
+
)
|
162
|
+
public
|
163
|
+
returns (NftId nftId)
|
164
|
+
{
|
165
|
+
return _createApplication(
|
166
|
+
applicationOwner,
|
167
|
+
riskId,
|
168
|
+
sumInsuredAmount,
|
169
|
+
premiumAmount,
|
170
|
+
lifetime,
|
171
|
+
bundleNftId,
|
172
|
+
referralId,
|
173
|
+
applicationData
|
174
|
+
);
|
175
|
+
}
|
176
|
+
|
177
|
+
function revoke(
|
178
|
+
NftId applicationNftId
|
179
|
+
) public {
|
180
|
+
_revoke(applicationNftId);
|
181
|
+
}
|
182
|
+
|
146
183
|
function createPolicy(
|
147
184
|
NftId applicationNftId,
|
148
185
|
bool requirePremiumPayment,
|
149
186
|
Timestamp activateAt
|
150
187
|
) public {
|
151
|
-
_createPolicy(applicationNftId, activateAt);
|
188
|
+
_createPolicy(applicationNftId, activateAt, AmountLib.max());
|
189
|
+
if (requirePremiumPayment == true) {
|
190
|
+
_collectPremium(applicationNftId, activateAt);
|
191
|
+
}
|
192
|
+
}
|
193
|
+
|
194
|
+
function createPolicy2(
|
195
|
+
NftId applicationNftId,
|
196
|
+
bool requirePremiumPayment,
|
197
|
+
Timestamp activateAt,
|
198
|
+
Amount maxPremiumAmount
|
199
|
+
) public {
|
200
|
+
_createPolicy(applicationNftId, activateAt, maxPremiumAmount);
|
152
201
|
if (requirePremiumPayment == true) {
|
153
202
|
_collectPremium(applicationNftId, activateAt);
|
154
203
|
}
|
@@ -229,11 +278,11 @@ contract SimpleProduct is
|
|
229
278
|
_declineClaim(policyNftId, claimId, processData);
|
230
279
|
}
|
231
280
|
|
232
|
-
function
|
281
|
+
function cancelConfirmedClaim(
|
233
282
|
NftId policyNftId,
|
234
283
|
ClaimId claimId
|
235
284
|
) public {
|
236
|
-
|
285
|
+
_cancelConfirmedClaim(policyNftId, claimId);
|
237
286
|
}
|
238
287
|
|
239
288
|
function createPayout(
|
@@ -266,8 +315,8 @@ contract SimpleProduct is
|
|
266
315
|
function processPayout(
|
267
316
|
NftId policyNftId,
|
268
317
|
PayoutId payoutId
|
269
|
-
) public {
|
270
|
-
_processPayout(policyNftId, payoutId);
|
318
|
+
) public returns (Amount netPayoutAmount, Amount processingFeeAmount) {
|
319
|
+
(netPayoutAmount, processingFeeAmount) = _processPayout(policyNftId, payoutId);
|
271
320
|
}
|
272
321
|
|
273
322
|
function createOracleRequest(
|
@@ -299,6 +348,28 @@ contract SimpleProduct is
|
|
299
348
|
}
|
300
349
|
}
|
301
350
|
|
351
|
+
function createOracleRequest2(
|
352
|
+
NftId oracleNftId,
|
353
|
+
string memory requestText,
|
354
|
+
Timestamp expiryAt,
|
355
|
+
bool synchronous,
|
356
|
+
string memory callbackMethod
|
357
|
+
)
|
358
|
+
public
|
359
|
+
// restricted()
|
360
|
+
returns (RequestId)
|
361
|
+
{
|
362
|
+
bytes memory requestData = abi.encode(SimpleOracle.SimpleRequest(
|
363
|
+
synchronous,
|
364
|
+
requestText));
|
365
|
+
|
366
|
+
return _oracleService.request(
|
367
|
+
oracleNftId,
|
368
|
+
requestData,
|
369
|
+
expiryAt,
|
370
|
+
callbackMethod);
|
371
|
+
}
|
372
|
+
|
302
373
|
function cancelOracleRequest(
|
303
374
|
RequestId requestId
|
304
375
|
)
|
@@ -329,7 +400,7 @@ contract SimpleProduct is
|
|
329
400
|
SimpleOracle.SimpleResponse memory response = abi.decode(
|
330
401
|
responseData, (SimpleOracle.SimpleResponse));
|
331
402
|
|
332
|
-
if (response.revertInCall && response.revertUntil >= TimestampLib.
|
403
|
+
if (response.revertInCall && response.revertUntil >= TimestampLib.current()) {
|
333
404
|
revert ErrorSimpleProductRevertedWhileProcessingResponse(requestId);
|
334
405
|
}
|
335
406
|
|
@@ -347,21 +418,14 @@ contract SimpleProduct is
|
|
347
418
|
}
|
348
419
|
|
349
420
|
|
350
|
-
function
|
421
|
+
function doSomethingOnlyWhenActive()
|
351
422
|
public
|
352
|
-
|
423
|
+
onlyActive()
|
353
424
|
returns (bool)
|
354
425
|
{
|
355
426
|
return true;
|
356
427
|
}
|
357
428
|
|
358
|
-
function doWhenNotLocked()
|
359
|
-
public
|
360
|
-
restricted()
|
361
|
-
returns (bool)
|
362
|
-
{
|
363
|
-
return true;
|
364
|
-
}
|
365
429
|
|
366
430
|
function getOracleService() public view returns (IOracleService) {
|
367
431
|
return _oracleService;
|
@@ -79,7 +79,7 @@ interface IInstance is
|
|
79
79
|
function setStakingMaxAmount(Amount maxStakedAmount) external;
|
80
80
|
|
81
81
|
/// @dev Refills the staking reward reserves for the specified target.
|
82
|
-
function refillStakingRewardReserves(Amount dipAmount) external;
|
82
|
+
function refillStakingRewardReserves(Amount dipAmount) external returns (Amount newBalance);
|
83
83
|
|
84
84
|
/// @dev Defunds the staking reward reserves for the specified target.
|
85
85
|
function withdrawStakingRewardReserves(Amount dipAmount) external returns (Amount newBalance);
|
@@ -54,7 +54,10 @@ interface IInstanceService is IService {
|
|
54
54
|
error ErrorInstanceServiceInstanceComponentMismatch(NftId instanceNftId, NftId componentNftId);
|
55
55
|
error ErrorInstanceServiceInvalidComponentType(address componentAddress, ObjectType expectedType, ObjectType componentType);
|
56
56
|
|
57
|
-
event
|
57
|
+
event LogInstanceServiceInstanceLocked(NftId instanceNftId, bool locked);
|
58
|
+
event LogInstanceServiceInstanceCreated(NftId instanceNftId, address instance);
|
59
|
+
event LogInstanceServiceMasterInstanceReaderUpgraded(NftId instanceNfId, address newInstanceReader);
|
60
|
+
event LogInstanceServiceInstanceReaderUpgraded(NftId instanceNfId, address newInstanceReader);
|
58
61
|
|
59
62
|
/// @dev Creates a new custom role for the calling instance.
|
60
63
|
function createRole(string memory roleName, RoleId adminRoleId, uint32 maxMemberCount) external returns (RoleId roleId);
|
@@ -106,8 +109,9 @@ interface IInstanceService is IService {
|
|
106
109
|
function setStakingLockingPeriod(Seconds stakeLockingPeriod) external;
|
107
110
|
function setStakingRewardRate(UFixed rewardRate) external;
|
108
111
|
function setStakingMaxAmount(Amount maxStakedAmount) external;
|
109
|
-
|
112
|
+
|
113
|
+
function refillInstanceRewardReserves(address rewardProvider, Amount dipAmount) external returns (Amount newBalance);
|
110
114
|
|
111
115
|
/// @dev Defunds the staking reward reserves for the specified target.
|
112
|
-
function
|
116
|
+
function withdrawInstanceRewardReserves(Amount dipAmount) external returns (Amount newBalance);
|
113
117
|
}
|
@@ -64,7 +64,7 @@ contract Instance is
|
|
64
64
|
IRegistry registry,
|
65
65
|
VersionPart release,
|
66
66
|
address initialOwner,
|
67
|
-
bool tokenRegistryDisabled
|
67
|
+
bool tokenRegistryDisabled // only disable for testing
|
68
68
|
)
|
69
69
|
external
|
70
70
|
initializer()
|
@@ -163,6 +163,7 @@ contract Instance is
|
|
163
163
|
|
164
164
|
function setStakingMaxAmount(Amount maxStakedAmount)
|
165
165
|
external
|
166
|
+
restricted()
|
166
167
|
onlyOwner()
|
167
168
|
{
|
168
169
|
_instanceService.setStakingMaxAmount(maxStakedAmount);
|
@@ -172,18 +173,19 @@ contract Instance is
|
|
172
173
|
external
|
173
174
|
restricted()
|
174
175
|
onlyOwner()
|
176
|
+
returns (Amount newRewardReserveBalance)
|
175
177
|
{
|
176
178
|
address instanceOwner = msg.sender;
|
177
|
-
_instanceService.
|
179
|
+
return _instanceService.refillInstanceRewardReserves(instanceOwner, dipAmount);
|
178
180
|
}
|
179
181
|
|
180
182
|
function withdrawStakingRewardReserves(Amount dipAmount)
|
181
183
|
external
|
182
184
|
restricted()
|
183
185
|
onlyOwner()
|
184
|
-
returns (Amount
|
186
|
+
returns (Amount newRewardReserveBalance)
|
185
187
|
{
|
186
|
-
return _instanceService.
|
188
|
+
return _instanceService.withdrawInstanceRewardReserves(dipAmount);
|
187
189
|
}
|
188
190
|
|
189
191
|
//--- Roles ------------------------------------------------------------//
|
@@ -115,7 +115,7 @@ contract InstanceAuthorizationV3
|
|
115
115
|
// authorize risk service role
|
116
116
|
functions = _authorizeForTarget(RISK_SET_TARGET_NAME, getServiceRole(RISK()));
|
117
117
|
_authorize(functions, RiskSet.add.selector, "add");
|
118
|
-
_authorize(functions, RiskSet.
|
118
|
+
_authorize(functions, RiskSet.deactivate.selector, "deactivate");
|
119
119
|
_authorize(functions, RiskSet.activate.selector, "activate");
|
120
120
|
|
121
121
|
// authorize policy service role
|
@@ -138,6 +138,7 @@ contract InstanceAuthorizationV3
|
|
138
138
|
// staking
|
139
139
|
_authorize(functions, IInstance.setStakingLockingPeriod.selector, "setStakingLockingPeriod");
|
140
140
|
_authorize(functions, IInstance.setStakingRewardRate.selector, "setStakingRewardRate");
|
141
|
+
_authorize(functions, IInstance.setStakingMaxAmount.selector, "setStakingMaxAmount");
|
141
142
|
_authorize(functions, IInstance.refillStakingRewardReserves.selector, "refillStakingRewardReserves");
|
142
143
|
_authorize(functions, IInstance.withdrawStakingRewardReserves.selector, "withdrawStakingRewardReserves");
|
143
144
|
|
@@ -171,6 +171,10 @@ contract InstanceService is
|
|
171
171
|
{
|
172
172
|
address instanceAddress = msg.sender;
|
173
173
|
IInstance(instanceAddress).getInstanceAdmin().setInstanceLocked(locked);
|
174
|
+
|
175
|
+
emit LogInstanceServiceInstanceLocked(
|
176
|
+
getRegistry().getNftIdForAddress(instanceAddress),
|
177
|
+
locked);
|
174
178
|
}
|
175
179
|
|
176
180
|
|
@@ -213,7 +217,7 @@ contract InstanceService is
|
|
213
217
|
TargetManagerLib.getDefaultLockingPeriod(),
|
214
218
|
TargetManagerLib.getDefaultRewardRate());
|
215
219
|
|
216
|
-
emit
|
220
|
+
emit LogInstanceServiceInstanceCreated(
|
217
221
|
instanceNftId,
|
218
222
|
address(instance));
|
219
223
|
}
|
@@ -257,21 +261,22 @@ contract InstanceService is
|
|
257
261
|
}
|
258
262
|
|
259
263
|
|
260
|
-
function
|
264
|
+
function refillInstanceRewardReserves(address rewardProvider, Amount dipAmount)
|
261
265
|
external
|
262
266
|
virtual
|
263
267
|
restricted()
|
264
268
|
onlyInstance()
|
269
|
+
returns (Amount newBalance)
|
265
270
|
{
|
266
271
|
NftId instanceNftId = getRegistry().getNftIdForAddress(msg.sender);
|
267
|
-
_stakingService.refillInstanceRewardReserves(
|
272
|
+
newBalance = _stakingService.refillInstanceRewardReserves(
|
268
273
|
instanceNftId,
|
269
274
|
rewardProvider,
|
270
275
|
dipAmount);
|
271
276
|
}
|
272
277
|
|
273
278
|
|
274
|
-
function
|
279
|
+
function withdrawInstanceRewardReserves(Amount dipAmount)
|
275
280
|
external
|
276
281
|
virtual
|
277
282
|
restricted()
|
@@ -287,6 +292,7 @@ contract InstanceService is
|
|
287
292
|
|
288
293
|
function upgradeInstanceReader()
|
289
294
|
external
|
295
|
+
virtual
|
290
296
|
restricted()
|
291
297
|
onlyInstance()
|
292
298
|
{
|
@@ -298,11 +304,16 @@ contract InstanceService is
|
|
298
304
|
|
299
305
|
upgradedInstanceReaderClone.initializeWithInstance(instanceAddress);
|
300
306
|
instance.setInstanceReader(upgradedInstanceReaderClone);
|
307
|
+
|
308
|
+
emit LogInstanceServiceInstanceReaderUpgraded(
|
309
|
+
getRegistry().getNftIdForAddress(instanceAddress),
|
310
|
+
address(upgradedInstanceReaderClone));
|
301
311
|
}
|
302
312
|
|
303
313
|
|
304
314
|
function setAndRegisterMasterInstance(address instanceAddress)
|
305
315
|
external
|
316
|
+
virtual
|
306
317
|
onlyOwner()
|
307
318
|
returns(NftId masterInstanceNftId)
|
308
319
|
{
|
@@ -356,6 +367,7 @@ contract InstanceService is
|
|
356
367
|
|
357
368
|
function upgradeMasterInstanceReader(address instanceReaderAddress)
|
358
369
|
external
|
370
|
+
virtual
|
359
371
|
onlyOwner
|
360
372
|
{
|
361
373
|
if(_masterInstanceReader == address(0)) { revert ErrorInstanceServiceMasterInstanceReaderNotSet(); }
|
@@ -366,11 +378,13 @@ contract InstanceService is
|
|
366
378
|
if(instanceReader.getInstance() != IInstance(_masterInstance)) { revert ErrorInstanceServiceInstanceReaderInstanceMismatch(); }
|
367
379
|
|
368
380
|
_masterInstanceReader = instanceReaderAddress;
|
369
|
-
}
|
370
381
|
|
371
|
-
|
382
|
+
emit LogInstanceServiceMasterInstanceReaderUpgraded(
|
383
|
+
getRegistry().getNftIdForAddress(_masterInstance),
|
384
|
+
instanceReaderAddress);
|
385
|
+
}
|
372
386
|
|
373
|
-
function getMasterInstanceReader() external view returns (address) {
|
387
|
+
function getMasterInstanceReader() external virtual view returns (address) {
|
374
388
|
return _masterInstanceReader;
|
375
389
|
}
|
376
390
|
|
@@ -450,31 +464,6 @@ contract InstanceService is
|
|
450
464
|
}
|
451
465
|
|
452
466
|
|
453
|
-
function _validateInstanceAndComponent(NftId instanceNftId, address componentAddress)
|
454
|
-
internal
|
455
|
-
view
|
456
|
-
returns (IInstance instance, NftId componentNftId)
|
457
|
-
{
|
458
|
-
IRegistry registry = getRegistry();
|
459
|
-
IRegistry.ObjectInfo memory instanceInfo = registry.getObjectInfo(instanceNftId);
|
460
|
-
if(instanceInfo.objectType != INSTANCE()) {
|
461
|
-
revert ErrorInstanceServiceNotInstanceNftId(instanceNftId);
|
462
|
-
}
|
463
|
-
|
464
|
-
if (registry.getNftIdForAddress(componentAddress).gtz()) {
|
465
|
-
IRegistry.ObjectInfo memory componentInfo = registry.getObjectInfo(componentAddress);
|
466
|
-
|
467
|
-
if(componentInfo.parentNftId != instanceNftId) {
|
468
|
-
revert ErrorInstanceServiceInstanceComponentMismatch(instanceNftId, componentInfo.nftId);
|
469
|
-
}
|
470
|
-
|
471
|
-
componentNftId = componentInfo.nftId;
|
472
|
-
}
|
473
|
-
|
474
|
-
instance = Instance(instanceInfo.objectAddress);
|
475
|
-
}
|
476
|
-
|
477
|
-
|
478
467
|
function _checkInstance(
|
479
468
|
address instanceAddress,
|
480
469
|
VersionPart expectedRelease
|