@etherisc/gif-next 3.0.0-cf1abe2-268 → 3.0.0-cf20ffd-765
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 +83 -164
- package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +119 -117
- package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.dbg.json +1 -1
- package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.json +48 -93
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +1 -1
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +145 -168
- package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.dbg.json +1 -1
- package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.json +150 -126
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +1 -1
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +101 -43
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +55 -31
- package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +1 -1
- package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +1 -1
- package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.json +85 -83
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +1 -1
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +1 -1
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +42 -18
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +77 -222
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +1 -1
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +65 -41
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +59 -168
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +252 -238
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +154 -144
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +58 -180
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +145 -111
- package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.json +2 -2
- package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.json +109 -246
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +65 -41
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +137 -279
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +65 -41
- package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.json +2 -2
- 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 +1278 -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 +1391 -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 +2214 -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 +104 -255
- package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +65 -41
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +108 -240
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +125 -257
- package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +65 -41
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +116 -248
- package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +65 -41
- package/artifacts/contracts/instance/BaseStore.sol/BaseStore.dbg.json +1 -1
- package/artifacts/contracts/instance/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 +69 -77
- 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 +47 -99
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +126 -92
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +72 -166
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +225 -247
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +67 -43
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +238 -77
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +175 -149
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +116 -108
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +183 -133
- package/artifacts/contracts/instance/ProductStore.sol/ProductStore.dbg.json +1 -1
- package/artifacts/contracts/instance/ProductStore.sol/ProductStore.json +153 -103
- package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +1 -1
- package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +80 -88
- package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +21 -21
- package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +1 -1
- package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.json +1 -1
- package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +2 -2
- package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +2 -2
- package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +9 -4
- 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/mock/Dip.sol/Dip.json +2 -2
- package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +1 -1
- package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +83 -209
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +1 -1
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +65 -41
- package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +1 -1
- package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +1 -1
- package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +63 -166
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +103 -94
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +69 -159
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +168 -163
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +133 -115
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +78 -168
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +65 -41
- package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleService.sol/BundleService.json +158 -212
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +143 -133
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +73 -107
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +76 -179
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +142 -138
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
- package/artifacts/contracts/pool/Pool.sol/Pool.json +78 -168
- package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolLib.sol/PoolLib.json +244 -26
- package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolService.sol/PoolService.json +221 -277
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +134 -144
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +74 -149
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +116 -114
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +59 -149
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +65 -41
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +142 -203
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +142 -136
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +43 -82
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +59 -92
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +91 -97
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +45 -84
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +58 -161
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +1 -1
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.json +51 -103
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +154 -188
- 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 +132 -126
- package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
- package/artifacts/contracts/product/PricingService.sol/PricingService.json +96 -163
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +126 -120
- package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
- package/artifacts/contracts/product/Product.sol/Product.json +59 -149
- package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +1 -1
- package/artifacts/contracts/product/RiskService.sol/RiskService.json +78 -174
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +111 -113
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +4 -4
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +70 -163
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +218 -204
- package/artifacts/contracts/registry/IRelease.sol/IRelease.dbg.json +1 -1
- package/artifacts/contracts/registry/IRelease.sol/IRelease.json +15 -1
- package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
- package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
- package/artifacts/contracts/registry/Registry.sol/Registry.json +114 -322
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +221 -242
- package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.json +77 -82
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +246 -287
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +114 -119
- package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +1 -1
- package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +236 -245
- 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 +217 -156
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +56 -32
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +39 -23
- package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
- package/artifacts/contracts/shared/Component.sol/Component.json +41 -161
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +554 -182
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +145 -119
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +1 -1
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +169 -421
- package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +4 -0
- package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.json +24 -0
- package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +1 -1
- package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.dbg.json +4 -0
- package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.json +40 -0
- package/artifacts/contracts/shared/IAuthorizedComponent.sol/IAuthorizedComponent.dbg.json +4 -0
- package/artifacts/contracts/shared/IAuthorizedComponent.sol/IAuthorizedComponent.json +558 -0
- package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponent.sol/IComponent.json +40 -173
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +457 -97
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +58 -161
- 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 +30 -3
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +12 -1
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +27 -79
- package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.json +12 -1
- package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
- package/artifacts/contracts/shared/IService.sol/IService.json +34 -73
- package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +1 -1
- package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +2 -2
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +59 -149
- 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 +36 -17
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +14 -3
- package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
- package/artifacts/contracts/shared/Registerable.sol/Registerable.json +26 -78
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +37 -3
- package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
- package/artifacts/contracts/shared/Service.sol/Service.json +33 -72
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +42 -82
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +30 -70
- package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +34 -34
- package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
- package/artifacts/contracts/staking/IStaking.sol/IStaking.json +182 -283
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +55 -300
- 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 +235 -352
- package/artifacts/contracts/staking/StakingLib.sol/StakingLib.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingLib.sol/StakingLib.json +31 -31
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +128 -116
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +22 -5
- package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingService.sol/StakingService.json +84 -357
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +115 -109
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +273 -281
- package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.dbg.json +1 -1
- package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.json +22 -35
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +16 -21
- package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
- package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.json +2 -2
- package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
- package/artifacts/contracts/type/Amount.sol/AmountLib.json +2 -7
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +2 -2
- 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/Fee.sol/FeeLib.json +2 -7
- package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +1 -1
- package/artifacts/contracts/type/Key32.sol/Key32Lib.json +2 -2
- package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.dbg.json +1 -1
- package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.json +2 -2
- package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/NftId.sol/NftIdLib.json +2 -2
- package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
- package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +2 -2
- package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
- package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +22 -25
- package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +2 -2
- package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
- package/artifacts/contracts/type/Referral.sol/ReferralLib.json +23 -4
- package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +2 -2
- package/artifacts/contracts/type/RequestIdSet.sol/LibRequestIdSet.dbg.json +4 -0
- package/artifacts/contracts/type/RequestIdSet.sol/LibRequestIdSet.json +33 -0
- package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +2 -2
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +4 -4
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +21 -2
- package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +1 -1
- package/artifacts/contracts/type/Selector.sol/SelectorLib.json +2 -2
- package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +1 -1
- package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +2 -2
- package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/StateId.sol/StateIdLib.json +2 -2
- 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/UFixed.sol/UFixedLib.json +2 -7
- package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
- package/artifacts/contracts/type/Version.sol/VersionLib.json +10 -10
- package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
- package/artifacts/contracts/type/Version.sol/VersionPartLib.json +6 -19
- package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +4 -0
- package/artifacts/contracts/upgradeability/{IUpgradeable.sol/IUpgradeable.json → IVersionable.sol/IVersionable.json} +4 -54
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +90 -67
- package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +3 -3
- package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +4 -0
- package/artifacts/contracts/upgradeability/{Upgradeable.sol/Upgradeable.json → Versionable.sol/Versionable.json} +4 -54
- package/contracts/accounting/AccountingService.sol +22 -33
- package/contracts/accounting/AccountingServiceManager.sol +6 -4
- package/contracts/accounting/IAccountingService.sol +7 -8
- package/contracts/authorization/AccessAdmin.sol +34 -55
- package/contracts/authorization/AccessAdminLib.sol +29 -15
- package/contracts/authorization/AccessManagerCloneable.sol +52 -24
- package/contracts/authorization/Authorization.sol +2 -2
- package/contracts/authorization/IAccessAdmin.sol +11 -10
- package/contracts/authorization/IServiceAuthorization.sol +1 -1
- package/contracts/authorization/ServiceAuthorization.sol +4 -4
- package/contracts/distribution/BasicDistribution.sol +2 -0
- package/contracts/distribution/BasicDistributionAuthorization.sol +4 -5
- package/contracts/distribution/Distribution.sol +2 -0
- package/contracts/distribution/DistributionService.sol +44 -43
- package/contracts/distribution/DistributionServiceManager.sol +6 -4
- package/contracts/distribution/IDistributionComponent.sol +0 -2
- package/contracts/distribution/IDistributionService.sol +8 -7
- package/contracts/examples/fire/FirePool.sol +4 -0
- package/contracts/examples/fire/FireProduct.sol +4 -0
- 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/examples/unpermissioned/SimpleDistribution.sol +4 -0
- package/contracts/examples/unpermissioned/SimpleOracle.sol +4 -0
- package/contracts/examples/unpermissioned/SimplePool.sol +4 -0
- package/contracts/examples/unpermissioned/SimpleProduct.sol +4 -0
- package/contracts/instance/BaseStore.sol +4 -0
- package/contracts/instance/BundleSet.sol +7 -8
- package/contracts/instance/IBaseStore.sol +8 -0
- package/contracts/instance/IInstance.sol +8 -8
- package/contracts/instance/IInstanceService.sol +6 -4
- package/contracts/instance/Instance.sol +12 -8
- package/contracts/instance/InstanceAdmin.sol +17 -11
- package/contracts/instance/InstanceAuthorizationV3.sol +2 -4
- package/contracts/instance/InstanceReader.sol +59 -23
- package/contracts/instance/InstanceService.sol +28 -18
- package/contracts/instance/InstanceServiceManager.sol +6 -4
- package/contracts/instance/InstanceStore.sol +14 -14
- package/contracts/instance/ProductStore.sol +14 -14
- package/contracts/instance/RiskSet.sol +6 -7
- package/contracts/instance/base/BalanceStore.sol +7 -7
- package/contracts/instance/base/Cloneable.sol +10 -4
- package/contracts/instance/base/ObjectSet.sol +3 -3
- package/contracts/oracle/BasicOracle.sol +3 -0
- package/contracts/oracle/BasicOracleAuthorization.sol +1 -3
- package/contracts/oracle/IOracleService.sol +21 -17
- package/contracts/oracle/Oracle.sol +6 -5
- package/contracts/oracle/OracleService.sol +68 -38
- package/contracts/oracle/OracleServiceManager.sol +6 -4
- package/contracts/pool/BasicPool.sol +4 -2
- package/contracts/pool/BasicPoolAuthorization.sol +4 -5
- package/contracts/pool/BundleService.sol +22 -28
- package/contracts/pool/BundleServiceManager.sol +7 -5
- package/contracts/pool/IBundleService.sol +9 -10
- package/contracts/pool/IPoolComponent.sol +1 -1
- package/contracts/pool/IPoolService.sol +14 -13
- package/contracts/pool/Pool.sol +3 -1
- package/contracts/pool/PoolLib.sol +102 -5
- package/contracts/pool/PoolService.sol +101 -67
- package/contracts/pool/PoolServiceManager.sol +6 -4
- package/contracts/product/ApplicationService.sol +34 -13
- package/contracts/product/ApplicationServiceManager.sol +6 -4
- package/contracts/product/BasicProduct.sol +2 -0
- package/contracts/product/BasicProductAuthorization.sol +7 -7
- package/contracts/product/ClaimService.sol +35 -11
- package/contracts/product/ClaimServiceManager.sol +7 -5
- package/contracts/product/IApplicationService.sol +8 -8
- package/contracts/product/IClaimService.sol +9 -9
- package/contracts/product/IPolicyService.sol +8 -7
- package/contracts/product/IRiskService.sol +4 -5
- package/contracts/product/PolicyService.sol +58 -45
- package/contracts/product/PolicyServiceLib.sol +5 -3
- package/contracts/product/PolicyServiceManager.sol +6 -4
- package/contracts/product/PricingService.sol +8 -7
- package/contracts/product/PricingServiceManager.sol +6 -4
- package/contracts/product/Product.sol +2 -0
- package/contracts/product/RiskService.sol +42 -10
- package/contracts/product/RiskServiceManager.sol +6 -4
- package/contracts/registry/ChainNft.sol +2 -2
- package/contracts/registry/IRegistry.sol +15 -21
- package/contracts/registry/IRegistryService.sol +14 -10
- package/contracts/registry/IRelease.sol +3 -0
- package/contracts/registry/Registry.sol +82 -126
- package/contracts/registry/RegistryAdmin.sol +29 -12
- package/contracts/registry/RegistryAuthorization.sol +3 -6
- package/contracts/registry/RegistryService.sol +82 -99
- package/contracts/registry/RegistryServiceManager.sol +11 -4
- package/contracts/registry/ReleaseAdmin.sol +27 -13
- package/contracts/registry/ReleaseRegistry.sol +81 -72
- package/contracts/registry/ServiceAuthorizationV3.sol +3 -4
- package/contracts/registry/TokenRegistry.sol +18 -9
- package/contracts/shared/Component.sol +22 -27
- package/contracts/shared/ComponentService.sol +168 -49
- package/contracts/shared/ComponentServiceManager.sol +7 -5
- package/contracts/shared/ContractLib.sol +93 -359
- package/contracts/shared/EcdsaChecker.sol +5 -0
- package/contracts/shared/IAuthorizedComponent.sol +15 -0
- package/contracts/shared/IComponent.sol +3 -9
- package/contracts/shared/IComponentService.sol +46 -10
- package/contracts/shared/IInstanceLinkedComponent.sol +9 -9
- package/contracts/shared/INftOwnable.sol +3 -1
- package/contracts/shared/IRegisterable.sol +3 -14
- package/contracts/shared/IRegistryLinked.sol +3 -1
- package/contracts/shared/IService.sol +2 -2
- package/contracts/shared/InstanceLinkedComponent.sol +130 -39
- package/contracts/shared/NftOwnable.sol +22 -9
- package/contracts/shared/PolicyHolder.sol +4 -2
- package/contracts/shared/Registerable.sol +20 -37
- package/contracts/shared/RegistryLinked.sol +23 -4
- package/contracts/shared/Service.sol +9 -8
- package/contracts/shared/TokenHandler.sol +6 -9
- package/contracts/staking/IStaking.sol +35 -33
- package/contracts/staking/IStakingService.sol +7 -16
- package/contracts/staking/Staking.sol +38 -32
- package/contracts/staking/StakingLib.sol +1 -3
- package/contracts/staking/StakingManager.sol +6 -3
- package/contracts/staking/StakingReader.sol +17 -9
- package/contracts/staking/StakingService.sol +15 -18
- package/contracts/staking/StakingServiceManager.sol +8 -4
- package/contracts/staking/StakingStore.sol +11 -11
- package/contracts/staking/TargetHandler.sol +6 -5
- package/contracts/type/ObjectType.sol +2 -31
- package/contracts/type/Referral.sol +6 -0
- package/contracts/type/RequestIdSet.sol +62 -0
- package/contracts/type/Seconds.sol +4 -0
- package/contracts/type/String.sol +30 -0
- package/contracts/type/Timestamp.sol +10 -1
- package/contracts/type/Version.sol +16 -15
- package/contracts/upgradeability/{IUpgradeable.sol → IVersionable.sol} +19 -13
- package/contracts/upgradeability/ProxyManager.sol +54 -46
- package/contracts/upgradeability/{Upgradeable.sol → Versionable.sol} +14 -25
- package/package.json +4 -3
- package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +0 -4
- package/artifacts/contracts/shared/IVersionable.sol/IVersionable.json +0 -74
- package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +0 -4
- package/artifacts/contracts/shared/Versionable.sol/Versionable.json +0 -74
- package/artifacts/contracts/upgradeability/IUpgradeable.sol/IUpgradeable.dbg.json +0 -4
- package/artifacts/contracts/upgradeability/Upgradeable.sol/Upgradeable.dbg.json +0 -4
- package/contracts/shared/IVersionable.sol +0 -19
- package/contracts/shared/Versionable.sol +0 -47
@@ -4,9 +4,9 @@ pragma solidity ^0.8.20;
|
|
4
4
|
import {AccessManagerUpgradeable} from "@openzeppelin/contracts-upgradeable/access/manager/AccessManagerUpgradeable.sol";
|
5
5
|
import {IAccessManager} from "@openzeppelin/contracts/access/manager/IAccessManager.sol";
|
6
6
|
|
7
|
-
import {IAccessAdmin} from "./IAccessAdmin.sol";
|
8
7
|
import {InitializableERC165} from "../shared/InitializableERC165.sol";
|
9
|
-
import {
|
8
|
+
import {RegistryLinked} from "../shared/RegistryLinked.sol";
|
9
|
+
import {VersionPart} from "../type/Version.sol";
|
10
10
|
|
11
11
|
|
12
12
|
/// @dev An AccessManager based on OpenZeppelin that is cloneable and has a central lock property.
|
@@ -14,7 +14,8 @@ import {VersionPartLib, VersionPart} from "../type/Version.sol";
|
|
14
14
|
/// Cloned by upon release preparation and instance cloning.
|
15
15
|
contract AccessManagerCloneable is
|
16
16
|
AccessManagerUpgradeable,
|
17
|
-
InitializableERC165
|
17
|
+
InitializableERC165,
|
18
|
+
RegistryLinked
|
18
19
|
{
|
19
20
|
error ErrorAccessManagerCallerNotAdmin(address caller);
|
20
21
|
error ErrorAccessManagerRegistryAlreadySet(address registry);
|
@@ -23,6 +24,9 @@ contract AccessManagerCloneable is
|
|
23
24
|
error ErrorAccessManagerTargetAdminLocked(address target);
|
24
25
|
error ErrorAccessManagerCallerAdminLocked(address caller);
|
25
26
|
|
27
|
+
event LogAccessManagerLocked(address indexed accessManager, bool indexed locked);
|
28
|
+
|
29
|
+
VersionPart private _release;
|
26
30
|
bool private _isLocked;
|
27
31
|
|
28
32
|
|
@@ -34,36 +38,35 @@ contract AccessManagerCloneable is
|
|
34
38
|
_;
|
35
39
|
}
|
36
40
|
|
37
|
-
function initialize(address adminAddress, VersionPart release)
|
38
|
-
public
|
39
41
|
|
42
|
+
function initialize(address admin)
|
43
|
+
public
|
44
|
+
override
|
45
|
+
initializer()
|
40
46
|
{
|
41
|
-
|
42
|
-
|
43
|
-
}
|
47
|
+
__ERC165_init();
|
48
|
+
__AccessManager_init(admin);
|
44
49
|
|
45
|
-
|
50
|
+
_registerInterface(type(IAccessManager).interfaceId);
|
46
51
|
}
|
47
52
|
|
48
|
-
|
49
|
-
|
53
|
+
|
54
|
+
/// @dev Completes the setup of the access manager.
|
55
|
+
/// Links the access manager to the registry and sets the release version.
|
56
|
+
function completeSetup(
|
57
|
+
address registry,
|
50
58
|
VersionPart release
|
51
59
|
)
|
52
|
-
|
53
|
-
|
60
|
+
external
|
61
|
+
onlyAdminRole
|
62
|
+
reinitializer(uint64(release.toInt()))
|
54
63
|
{
|
55
|
-
|
56
|
-
|
57
|
-
}
|
58
|
-
|
59
|
-
__ERC165_init();
|
60
|
-
__AccessManager_init(admin);
|
61
|
-
|
62
|
-
_registerInterface(type(IAccessManager).interfaceId);
|
64
|
+
_checkAndSetRegistry(registry);
|
65
|
+
_checkAndSetRelease(release);
|
63
66
|
}
|
64
67
|
|
65
68
|
/// @dev Returns true if the caller is authorized to call the target with the given selector and the manager lock is not set to locked.
|
66
|
-
///
|
69
|
+
/// Feturn values as in OpenZeppelin AccessManager.
|
67
70
|
/// For a locked manager the function reverts with ErrorAccessManagerTargetAdminLocked.
|
68
71
|
function canCall(
|
69
72
|
address caller,
|
@@ -94,6 +97,7 @@ contract AccessManagerCloneable is
|
|
94
97
|
onlyAdminRole()
|
95
98
|
{
|
96
99
|
_isLocked = locked;
|
100
|
+
emit LogAccessManagerLocked(address(this), locked);
|
97
101
|
}
|
98
102
|
|
99
103
|
|
@@ -101,10 +105,10 @@ contract AccessManagerCloneable is
|
|
101
105
|
/// For the registry admin release 3 is returned.
|
102
106
|
/// For the release admin and the instance admin the actual release version is returned.
|
103
107
|
function getRelease() external view returns (VersionPart release) {
|
104
|
-
return
|
105
|
-
uint8(_getInitializedVersion()));
|
108
|
+
return _release;
|
106
109
|
}
|
107
110
|
|
111
|
+
|
108
112
|
/// @dev Returns true iff all contracts of this access manager are locked.
|
109
113
|
function isLocked()
|
110
114
|
public
|
@@ -113,4 +117,28 @@ contract AccessManagerCloneable is
|
|
113
117
|
{
|
114
118
|
return _isLocked;
|
115
119
|
}
|
120
|
+
|
121
|
+
|
122
|
+
function _checkAndSetRelease(VersionPart release)
|
123
|
+
internal
|
124
|
+
{
|
125
|
+
if (!release.isValidRelease()) {
|
126
|
+
revert ErrorAccessManagerInvalidRelease(release);
|
127
|
+
}
|
128
|
+
|
129
|
+
_release = release;
|
130
|
+
}
|
131
|
+
|
132
|
+
|
133
|
+
function _checkAndSetRegistry(address registry)
|
134
|
+
internal
|
135
|
+
{
|
136
|
+
// checks
|
137
|
+
if(address(getRegistry()) != address(0)) {
|
138
|
+
revert ErrorAccessManagerRegistryAlreadySet(address(getRegistry()) );
|
139
|
+
}
|
140
|
+
|
141
|
+
// effects
|
142
|
+
__RegistryLinked_init(registry);
|
143
|
+
}
|
116
144
|
}
|
@@ -9,7 +9,7 @@ import {ObjectType} from "../type/ObjectType.sol";
|
|
9
9
|
import {RoleId, RoleIdLib} from "../type/RoleId.sol";
|
10
10
|
import {ServiceAuthorization} from "../authorization/ServiceAuthorization.sol";
|
11
11
|
import {Str, StrLib} from "../type/String.sol";
|
12
|
-
|
12
|
+
|
13
13
|
|
14
14
|
contract Authorization is
|
15
15
|
ServiceAuthorization,
|
@@ -30,7 +30,7 @@ contract Authorization is
|
|
30
30
|
constructor(
|
31
31
|
string memory mainTargetName,
|
32
32
|
ObjectType domain,
|
33
|
-
|
33
|
+
uint8 release,
|
34
34
|
string memory commitHash,
|
35
35
|
IAccess.TargetType targetType,
|
36
36
|
bool includeTokenHandler
|
@@ -6,11 +6,13 @@ import {IAccessManaged} from "@openzeppelin/contracts/access/manager/IAccessMana
|
|
6
6
|
import {IAccess} from "./IAccess.sol";
|
7
7
|
import {IAuthorization} from "./IAuthorization.sol";
|
8
8
|
import {IRegistryLinked} from "../shared/IRegistryLinked.sol";
|
9
|
+
import {IRelease} from "../registry/IRelease.sol";
|
9
10
|
|
10
11
|
import {Blocknumber} from "../type/Blocknumber.sol";
|
11
12
|
import {NftId} from "../type/NftId.sol";
|
12
13
|
import {ObjectType} from "../type/ObjectType.sol";
|
13
14
|
import {RoleId} from "../type/RoleId.sol";
|
15
|
+
import {Selector} from "../type/Selector.sol";
|
14
16
|
import {Str} from "../type/String.sol";
|
15
17
|
import {VersionPart} from "../type/Version.sol";
|
16
18
|
|
@@ -18,18 +20,19 @@ import {VersionPart} from "../type/Version.sol";
|
|
18
20
|
interface IAccessAdmin is
|
19
21
|
IAccessManaged,
|
20
22
|
IAccess,
|
21
|
-
IRegistryLinked
|
23
|
+
IRegistryLinked,
|
24
|
+
IRelease
|
22
25
|
{
|
23
26
|
|
24
27
|
// roles, targets and functions
|
25
|
-
event LogAccessAdminRoleCreated(
|
26
|
-
event LogAccessAdminTargetCreated(
|
28
|
+
event LogAccessAdminRoleCreated(RoleId indexed roleId, RoleId indexed roleAdminId, TargetType indexed targetType, string name, string admin);
|
29
|
+
event LogAccessAdminTargetCreated(address indexed target, RoleId indexed roleId, bool indexed managed, string name, string admin);
|
27
30
|
|
28
|
-
event LogAccessAdminRoleActivatedSet(
|
29
|
-
event LogAccessAdminRoleGranted(
|
30
|
-
event LogAccessAdminRoleRevoked(
|
31
|
-
event LogAccessAdminTargetLockedSet(
|
32
|
-
event LogAccessAdminFunctionGranted(
|
31
|
+
event LogAccessAdminRoleActivatedSet(RoleId indexed roleId, bool indexed active, string admin, Blocknumber indexed lastUpdateIn);
|
32
|
+
event LogAccessAdminRoleGranted(address indexed account, string roleName, string admin);
|
33
|
+
event LogAccessAdminRoleRevoked(address indexed account, string roleName, string admin);
|
34
|
+
event LogAccessAdminTargetLockedSet(address indexed target, bool indexed locked, string admin, Blocknumber indexed lastUpdateIn);
|
35
|
+
event LogAccessAdminFunctionGranted(address indexed target, Selector indexed selector, RoleId indexed roleId, string func, string admin, Blocknumber lastUpdateIn);
|
33
36
|
|
34
37
|
// only deployer modifier
|
35
38
|
error ErrorAccessAdminNotDeployer();
|
@@ -57,7 +60,6 @@ interface IAccessAdmin is
|
|
57
60
|
error ErrorAccessAdminTargetNotCreated(address target);
|
58
61
|
error ErrorAccessAdminTargetNotRegistered(address target);
|
59
62
|
error ErrorAccessAdminTargetTypeMismatch(address target, ObjectType expectedType, ObjectType actualType);
|
60
|
-
error ErrorAccessAdminTargetReleaseMismatch(address target, VersionPart expectedRelease, VersionPart actualRelease);
|
61
63
|
|
62
64
|
// check authorization
|
63
65
|
error ErrorAccessAdminAlreadyInitialized(address authorization);
|
@@ -138,5 +140,4 @@ interface IAccessAdmin is
|
|
138
140
|
|
139
141
|
function authorizedFunctions(address target) external view returns (uint256 numberOfFunctions);
|
140
142
|
function getAuthorizedFunction(address target, uint256 idx) external view returns (FunctionInfo memory func, RoleId roleId);
|
141
|
-
function getRelease() external view returns (VersionPart);
|
142
143
|
}
|
@@ -16,7 +16,7 @@ interface IServiceAuthorization is
|
|
16
16
|
|
17
17
|
error ErrorAuthorizationMainTargetNameEmpty();
|
18
18
|
error ErrorAuthorizationTargetDomainZero();
|
19
|
-
error ErrorAuthorizationReleaseInvalid(
|
19
|
+
error ErrorAuthorizationReleaseInvalid(uint8 release);
|
20
20
|
error ErrorAuthorizationCommitHashInvalid(string commitHash);
|
21
21
|
|
22
22
|
/// @dev Returns the main domain of the authorization.
|
@@ -30,7 +30,7 @@ contract ServiceAuthorization is
|
|
30
30
|
string public constant ROLE_NAME_SUFFIX = "_Role";
|
31
31
|
|
32
32
|
ObjectType public immutable DOMAIN;
|
33
|
-
|
33
|
+
uint256 internal immutable _release;
|
34
34
|
string internal _commitHash;
|
35
35
|
|
36
36
|
string internal _mainTargetName;
|
@@ -55,7 +55,7 @@ contract ServiceAuthorization is
|
|
55
55
|
constructor(
|
56
56
|
string memory mainTargetName,
|
57
57
|
ObjectType domain,
|
58
|
-
|
58
|
+
uint8 release,
|
59
59
|
string memory commitHash
|
60
60
|
)
|
61
61
|
{
|
@@ -68,7 +68,7 @@ contract ServiceAuthorization is
|
|
68
68
|
revert ErrorAuthorizationTargetDomainZero();
|
69
69
|
}
|
70
70
|
|
71
|
-
if (
|
71
|
+
if (release < VersionPartLib.releaseMin().toInt() || release >= VersionPartLib.releaseMax().toInt()) {
|
72
72
|
revert ErrorAuthorizationReleaseInvalid(release);
|
73
73
|
}
|
74
74
|
|
@@ -103,7 +103,7 @@ contract ServiceAuthorization is
|
|
103
103
|
|
104
104
|
/// @inheritdoc IServiceAuthorization
|
105
105
|
function getRelease() public view returns(VersionPart release) {
|
106
|
-
return _release;
|
106
|
+
return VersionPartLib.toVersionPart(_release);
|
107
107
|
}
|
108
108
|
|
109
109
|
/// @inheritdoc IServiceAuthorization
|
@@ -119,6 +119,7 @@ contract BasicDistribution is
|
|
119
119
|
}
|
120
120
|
|
121
121
|
function _initializeBasicDistribution(
|
122
|
+
address registry,
|
122
123
|
NftId instanceNftId,
|
123
124
|
IAuthorization authorization,
|
124
125
|
address initialOwner,
|
@@ -129,6 +130,7 @@ contract BasicDistribution is
|
|
129
130
|
onlyInitializing()
|
130
131
|
{
|
131
132
|
__Distribution_init(
|
133
|
+
registry,
|
132
134
|
instanceNftId,
|
133
135
|
authorization,
|
134
136
|
false,
|
@@ -2,16 +2,15 @@
|
|
2
2
|
pragma solidity ^0.8.20;
|
3
3
|
|
4
4
|
import {IAccess} from "../authorization/IAccess.sol";
|
5
|
-
import {
|
5
|
+
import {IInstanceLinkedComponent} from "../shared/IInstanceLinkedComponent.sol";
|
6
6
|
|
7
7
|
import {Authorization} from "../authorization/Authorization.sol";
|
8
8
|
import {BasicDistribution} from "./BasicDistribution.sol";
|
9
9
|
import {Distribution} from "./Distribution.sol";
|
10
10
|
import {COMPONENT, DISTRIBUTION} from "../type/ObjectType.sol";
|
11
11
|
import {PUBLIC_ROLE} from "../type/RoleId.sol";
|
12
|
-
import {GIF_INITIAL_RELEASE} from "../registry/Registry.sol";
|
13
12
|
import {TokenHandler} from "../shared/TokenHandler.sol";
|
14
|
-
|
13
|
+
|
15
14
|
|
16
15
|
contract BasicDistributionAuthorization
|
17
16
|
is Authorization
|
@@ -21,7 +20,7 @@ contract BasicDistributionAuthorization
|
|
21
20
|
Authorization(
|
22
21
|
distributionName,
|
23
22
|
DISTRIBUTION(),
|
24
|
-
|
23
|
+
3,
|
25
24
|
COMMIT_HASH,
|
26
25
|
TargetType.Component,
|
27
26
|
true)
|
@@ -61,7 +60,7 @@ contract BasicDistributionAuthorization
|
|
61
60
|
_authorize(functions, BasicDistribution.changeDistributorType.selector, "changeDistributorType");
|
62
61
|
_authorize(functions, BasicDistribution.createReferral.selector, "createReferral");
|
63
62
|
|
64
|
-
_authorize(functions,
|
63
|
+
_authorize(functions, IInstanceLinkedComponent.withdrawFees.selector, "withdrawFees");
|
65
64
|
_authorize(functions, Distribution.withdrawCommission.selector, "withdrawCommission");
|
66
65
|
}
|
67
66
|
}
|
@@ -104,6 +104,7 @@ abstract contract Distribution is
|
|
104
104
|
|
105
105
|
|
106
106
|
function __Distribution_init(
|
107
|
+
address registry,
|
107
108
|
NftId productNftId,
|
108
109
|
IAuthorization authorization,
|
109
110
|
bool isInterceptor,
|
@@ -115,6 +116,7 @@ abstract contract Distribution is
|
|
115
116
|
onlyInitializing()
|
116
117
|
{
|
117
118
|
__InstanceLinkedComponent_init(
|
119
|
+
registry,
|
118
120
|
productNftId,
|
119
121
|
name,
|
120
122
|
DISTRIBUTION(),
|
@@ -20,6 +20,8 @@ import {KEEP_STATE} from "../type/StateId.sol";
|
|
20
20
|
import {ObjectType, ACCOUNTING, COMPONENT, DISTRIBUTION, INSTANCE, DISTRIBUTION, DISTRIBUTOR, REGISTRY} from "../type/ObjectType.sol";
|
21
21
|
import {InstanceReader} from "../instance/InstanceReader.sol";
|
22
22
|
import {InstanceStore} from "../instance/InstanceStore.sol";
|
23
|
+
// TODO PoolLib feels wrong, should likely go in a component type independent lib
|
24
|
+
import {PoolLib} from "../pool/PoolLib.sol";
|
23
25
|
import {ReferralId, ReferralStatus, ReferralLib, REFERRAL_OK, REFERRAL_ERROR_UNKNOWN, REFERRAL_ERROR_EXPIRED, REFERRAL_ERROR_EXHAUSTED} from "../type/Referral.sol";
|
24
26
|
import {Seconds} from "../type/Seconds.sol";
|
25
27
|
import {Service} from "../shared/Service.sol";
|
@@ -42,13 +44,14 @@ contract DistributionService is
|
|
42
44
|
)
|
43
45
|
internal
|
44
46
|
virtual override
|
45
|
-
|
47
|
+
initializer()
|
46
48
|
{
|
47
49
|
(
|
48
|
-
address authority
|
49
|
-
|
50
|
+
address authority,
|
51
|
+
address registry
|
52
|
+
) = abi.decode(data, (address, address));
|
50
53
|
|
51
|
-
__Service_init(authority, owner);
|
54
|
+
__Service_init(authority, registry, owner);
|
52
55
|
|
53
56
|
_accountingService = IAccountingService(_getServiceAddress(ACCOUNTING()));
|
54
57
|
_componentService = IComponentService(_getServiceAddress(COMPONENT()));
|
@@ -78,7 +81,7 @@ contract DistributionService is
|
|
78
81
|
(NftId distributionNftId, IInstance instance) = _getAndVerifyActiveDistribution();
|
79
82
|
|
80
83
|
{
|
81
|
-
NftId productNftId =
|
84
|
+
NftId productNftId = getRegistry().getParentNftId(distributionNftId);
|
82
85
|
IComponents.FeeInfo memory feeInfo = instance.getInstanceReader().getFeeInfo(productNftId);
|
83
86
|
|
84
87
|
UFixed variableDistributionFees = feeInfo.distributionFee.fractionalFee;
|
@@ -95,21 +98,24 @@ contract DistributionService is
|
|
95
98
|
}
|
96
99
|
|
97
100
|
distributorType = DistributorTypeLib.toDistributorType(distributionNftId, name);
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
101
|
+
|
102
|
+
{
|
103
|
+
IDistribution.DistributorTypeInfo memory info = IDistribution.DistributorTypeInfo({
|
104
|
+
name: name,
|
105
|
+
distributionNftId: distributionNftId,
|
106
|
+
minDiscountPercentage: minDiscountPercentage,
|
107
|
+
maxDiscountPercentage: maxDiscountPercentage,
|
108
|
+
commissionPercentage: commissionPercentage,
|
109
|
+
maxReferralCount: maxReferralCount,
|
110
|
+
maxReferralLifetime: maxReferralLifetime,
|
111
|
+
allowSelfReferrals: allowSelfReferrals,
|
112
|
+
allowRenewals: allowRenewals,
|
113
|
+
data: data});
|
114
|
+
|
115
|
+
instance.getInstanceStore().createDistributorType(distributorType, info);
|
116
|
+
}
|
111
117
|
|
112
|
-
emit LogDistributionServiceDistributorTypeCreated(distributionNftId, name);
|
118
|
+
emit LogDistributionServiceDistributorTypeCreated(distributionNftId, distributorType, name, commissionPercentage);
|
113
119
|
}
|
114
120
|
|
115
121
|
|
@@ -131,12 +137,11 @@ contract DistributionService is
|
|
131
137
|
NftIdLib.zero(),
|
132
138
|
distributionNftId,
|
133
139
|
DISTRIBUTOR(),
|
134
|
-
getRelease(),
|
135
140
|
true, // intercepting property for bundles is defined on pool
|
136
|
-
address(0)
|
137
|
-
|
138
|
-
|
139
|
-
|
141
|
+
address(0),
|
142
|
+
distributor,
|
143
|
+
""
|
144
|
+
));
|
140
145
|
|
141
146
|
IDistribution.DistributorInfo memory info = IDistribution.DistributorInfo({
|
142
147
|
distributorType: distributorType,
|
@@ -146,7 +151,7 @@ contract DistributionService is
|
|
146
151
|
|
147
152
|
instance.getInstanceStore().createDistributor(distributorNftId, info);
|
148
153
|
|
149
|
-
emit LogDistributionServiceDistributorCreated(distributionNftId, distributorNftId,
|
154
|
+
emit LogDistributionServiceDistributorCreated(distributionNftId, distributorNftId, distributor, distributorType);
|
150
155
|
}
|
151
156
|
|
152
157
|
function changeDistributorType(
|
@@ -195,11 +200,9 @@ contract DistributionService is
|
|
195
200
|
revert ErrorDistributionServiceExpirationInvalid(expiryAt);
|
196
201
|
}
|
197
202
|
|
198
|
-
|
199
|
-
|
200
|
-
|
201
|
-
revert ErrorDistributionServiceDistributorDistributionMismatch(distributorNftId, distributorDistributionNftId, distributionNftId);
|
202
|
-
}
|
203
|
+
NftId distributorDistributionNftId = getRegistry().getParentNftId(distributorNftId);
|
204
|
+
if (distributorDistributionNftId != distributionNftId) {
|
205
|
+
revert ErrorDistributionServiceDistributorDistributionMismatch(distributorNftId, distributorDistributionNftId, distributionNftId);
|
203
206
|
}
|
204
207
|
|
205
208
|
{
|
@@ -236,7 +239,7 @@ contract DistributionService is
|
|
236
239
|
|
237
240
|
instance.getInstanceStore().createReferral(referralId, info);
|
238
241
|
|
239
|
-
emit LogDistributionServiceReferralCreated(
|
242
|
+
emit LogDistributionServiceReferralCreated(distributorNftId, referralId, code, discountPercentage, maxReferrals, expiryAt);
|
240
243
|
}
|
241
244
|
}
|
242
245
|
|
@@ -251,14 +254,14 @@ contract DistributionService is
|
|
251
254
|
onlyNftOfType(distributionNftId, DISTRIBUTION())
|
252
255
|
{
|
253
256
|
if (referralIsValid(distributionNftId, referralId)) {
|
254
|
-
IInstance instance = IInstance(ContractLib.getInstanceForComponent(distributionNftId));
|
257
|
+
IInstance instance = IInstance(ContractLib.getInstanceForComponent(getRegistry(), distributionNftId));
|
255
258
|
|
256
259
|
// update book keeping for referral info
|
257
260
|
IDistribution.ReferralInfo memory referralInfo = instance.getInstanceReader().getReferralInfo(referralId);
|
258
261
|
referralInfo.usedReferrals += 1;
|
259
262
|
instance.getInstanceStore().updateReferral(referralId, referralInfo, KEEP_STATE());
|
260
263
|
|
261
|
-
emit LogDistributionServiceReferralProcessed(
|
264
|
+
emit LogDistributionServiceReferralProcessed(referralInfo.distributorNftId, referralId, referralInfo.usedReferrals);
|
262
265
|
}
|
263
266
|
}
|
264
267
|
|
@@ -272,7 +275,7 @@ contract DistributionService is
|
|
272
275
|
restricted()
|
273
276
|
onlyNftOfType(distributionNftId, DISTRIBUTION())
|
274
277
|
{
|
275
|
-
IInstance instance = IInstance(ContractLib.getInstanceForComponent(distributionNftId));
|
278
|
+
IInstance instance = IInstance(ContractLib.getInstanceForComponent(getRegistry(), distributionNftId));
|
276
279
|
InstanceReader reader = instance.getInstanceReader();
|
277
280
|
InstanceStore store = instance.getInstanceStore();
|
278
281
|
|
@@ -295,12 +298,14 @@ contract DistributionService is
|
|
295
298
|
IDistribution.DistributorInfo memory distributorInfo = reader.getDistributorInfo(referralInfo.distributorNftId);
|
296
299
|
distributorInfo.numPoliciesSold += 1;
|
297
300
|
store.updateDistributor(referralInfo.distributorNftId, distributorInfo, KEEP_STATE());
|
301
|
+
emit LogDistributionServiceSaleProcessedWithReferral(distributionNftId, referralInfo.distributorNftId, referralId, distributorInfo.numPoliciesSold, premium.premiumAmount, distributionOwnerFee, commissionAmount);
|
298
302
|
} else {
|
299
303
|
// increase distribution balance by distribution owner fee
|
300
304
|
_accountingService.increaseDistributionBalance(store, distributionNftId, AmountLib.zero(), distributionOwnerFee);
|
305
|
+
emit LogDistributionServiceSaleProcessed(distributionNftId, premium.premiumAmount, distributionOwnerFee);
|
301
306
|
}
|
302
307
|
|
303
|
-
|
308
|
+
|
304
309
|
}
|
305
310
|
|
306
311
|
/// @inheritdoc IDistributionService
|
@@ -340,8 +345,8 @@ contract DistributionService is
|
|
340
345
|
|
341
346
|
// transfer amount to distributor
|
342
347
|
{
|
343
|
-
address distributor =
|
344
|
-
emit LogDistributionServiceCommissionWithdrawn(distributorNftId, distributor, address(distributionInfo.tokenHandler.TOKEN())
|
348
|
+
address distributor = getRegistry().ownerOf(distributorNftId);
|
349
|
+
emit LogDistributionServiceCommissionWithdrawn(distributorNftId, distributor, withdrawnAmount, address(distributionInfo.tokenHandler.TOKEN()));
|
345
350
|
distributionInfo.tokenHandler.pushToken(distributor, withdrawnAmount);
|
346
351
|
}
|
347
352
|
}
|
@@ -357,7 +362,7 @@ contract DistributionService is
|
|
357
362
|
return false;
|
358
363
|
}
|
359
364
|
|
360
|
-
IInstance instance = IInstance(ContractLib.getInstanceForComponent(distributionNftId));
|
365
|
+
IInstance instance = IInstance(ContractLib.getInstanceForComponent(getRegistry(), distributionNftId));
|
361
366
|
IDistribution.ReferralInfo memory info = instance.getInstanceReader().getReferralInfo(referralId);
|
362
367
|
|
363
368
|
if (info.distributorNftId.eqz()) {
|
@@ -438,11 +443,7 @@ contract DistributionService is
|
|
438
443
|
IInstance instance
|
439
444
|
)
|
440
445
|
{
|
441
|
-
(
|
442
|
-
msg.sender,
|
443
|
-
DISTRIBUTION(),
|
444
|
-
getRelease(),
|
445
|
-
true);
|
446
|
+
return PoolLib.getAndVerifyActiveComponent(getRegistry(), msg.sender, DISTRIBUTION());
|
446
447
|
}
|
447
448
|
|
448
449
|
|
@@ -1,7 +1,7 @@
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
2
2
|
pragma solidity ^0.8.20;
|
3
3
|
|
4
|
-
import {
|
4
|
+
import {IVersionable} from "../upgradeability/IVersionable.sol";
|
5
5
|
import {ProxyManager} from "../upgradeability/ProxyManager.sol";
|
6
6
|
import {DistributionService} from "./DistributionService.sol";
|
7
7
|
|
@@ -12,17 +12,19 @@ contract DistributionServiceManager is ProxyManager {
|
|
12
12
|
/// @dev initializes proxy manager with distribution service implementation and deploys instance
|
13
13
|
constructor(
|
14
14
|
address authority,
|
15
|
+
address registry,
|
15
16
|
bytes32 salt
|
16
17
|
)
|
17
18
|
{
|
18
19
|
DistributionService svc = new DistributionService{salt: salt}();
|
19
|
-
bytes memory data = abi.encode(authority);
|
20
|
-
|
20
|
+
bytes memory data = abi.encode(authority, registry);
|
21
|
+
IVersionable versionable = initialize(
|
22
|
+
registry,
|
21
23
|
address(svc),
|
22
24
|
data,
|
23
25
|
salt);
|
24
26
|
|
25
|
-
_distributionService = DistributionService(address(
|
27
|
+
_distributionService = DistributionService(address(versionable));
|
26
28
|
}
|
27
29
|
|
28
30
|
//--- view functions ----------------------------------------------------//
|
@@ -11,8 +11,6 @@ import {UFixed} from "../type/UFixed.sol";
|
|
11
11
|
|
12
12
|
interface IDistributionComponent is IInstanceLinkedComponent {
|
13
13
|
|
14
|
-
event LogDistributorUpdated(address to, address operator);
|
15
|
-
|
16
14
|
function getDiscountPercentage(
|
17
15
|
string memory referralCode
|
18
16
|
) external view returns (UFixed discountPercentage, ReferralStatus status);
|
@@ -39,13 +39,14 @@ interface IDistributionService is IService {
|
|
39
39
|
error ErrorDistributionServiceInvalidFeeTransferred(Amount transferredDistributionFeeAmount, Amount expectedDistributionFeeAmount);
|
40
40
|
error ErrorDistributionServiceReferralDistributionMismatch(ReferralId referralId, NftId referralDistributionNft, NftId distributionNftId);
|
41
41
|
|
42
|
-
event LogDistributionServiceCommissionWithdrawn(NftId distributorNftId, address recipient,
|
43
|
-
event LogDistributionServiceDistributorTypeCreated(NftId distributionNftId, string name);
|
44
|
-
event LogDistributionServiceDistributorCreated(NftId distributionNftId, NftId distributorNftId,
|
45
|
-
event LogDistributionServiceDistributorTypeChanged(NftId distributorNftId, DistributorType oldDistributorType, DistributorType newDistributorType);
|
46
|
-
event LogDistributionServiceReferralCreated(NftId
|
47
|
-
event LogDistributionServiceReferralProcessed(NftId
|
48
|
-
event LogDistributionServiceSaleProcessed(NftId distributionNftId,
|
42
|
+
event LogDistributionServiceCommissionWithdrawn(NftId indexed distributorNftId, address indexed recipient, Amount amount, address indexed tokenAddress);
|
43
|
+
event LogDistributionServiceDistributorTypeCreated(NftId indexed distributionNftId, DistributorType indexed distributorType, string name, UFixed commissionPercentage);
|
44
|
+
event LogDistributionServiceDistributorCreated(NftId indexed distributionNftId, NftId indexed distributorNftId, address indexed distributor, DistributorType distributorType);
|
45
|
+
event LogDistributionServiceDistributorTypeChanged(NftId indexed distributorNftId, DistributorType indexed oldDistributorType, DistributorType indexed newDistributorType);
|
46
|
+
event LogDistributionServiceReferralCreated(NftId indexed distributorNftId, ReferralId indexed referralId, string code, UFixed discountPercentage, uint32 maxReferrals, Timestamp expiryAt);
|
47
|
+
event LogDistributionServiceReferralProcessed(NftId indexed distributorNftId, ReferralId indexed referralId, uint32 usedReferrals);
|
48
|
+
event LogDistributionServiceSaleProcessed(NftId indexed distributionNftId, Amount premium, Amount distributionOwnerFee);
|
49
|
+
event LogDistributionServiceSaleProcessedWithReferral(NftId indexed distributionNftId, NftId indexed distributorNftId, ReferralId indexed referralId, uint32 numPoliciesSold, Amount premium, Amount distributionOwnerFee, Amount commissionAmount);
|
49
50
|
|
50
51
|
function createDistributorType(
|
51
52
|
string memory name,
|
@@ -16,6 +16,7 @@ contract FirePool is
|
|
16
16
|
BasicPool
|
17
17
|
{
|
18
18
|
constructor(
|
19
|
+
address registry,
|
19
20
|
NftId fireProductNftId,
|
20
21
|
string memory componentName,
|
21
22
|
IAuthorization authorization
|
@@ -23,6 +24,7 @@ contract FirePool is
|
|
23
24
|
{
|
24
25
|
address initialOwner = msg.sender;
|
25
26
|
_intialize(
|
27
|
+
registry,
|
26
28
|
fireProductNftId,
|
27
29
|
componentName,
|
28
30
|
IComponents.PoolInfo({
|
@@ -39,6 +41,7 @@ contract FirePool is
|
|
39
41
|
}
|
40
42
|
|
41
43
|
function _intialize(
|
44
|
+
address registry,
|
42
45
|
NftId fireProductNftId,
|
43
46
|
string memory componentName,
|
44
47
|
IComponents.PoolInfo memory poolInfo,
|
@@ -49,6 +52,7 @@ contract FirePool is
|
|
49
52
|
initializer
|
50
53
|
{
|
51
54
|
_initializeBasicPool(
|
55
|
+
registry,
|
52
56
|
fireProductNftId,
|
53
57
|
componentName,
|
54
58
|
poolInfo,
|
@@ -65,6 +65,7 @@ contract FireProduct is
|
|
65
65
|
mapping(uint256 fireId => mapping (NftId policyId => bool claimed)) private _claimed;
|
66
66
|
|
67
67
|
constructor(
|
68
|
+
address registry,
|
68
69
|
NftId instanceNftid,
|
69
70
|
string memory componentName,
|
70
71
|
IAuthorization authorization
|
@@ -73,6 +74,7 @@ contract FireProduct is
|
|
73
74
|
address initialOwner = msg.sender;
|
74
75
|
|
75
76
|
_initialize(
|
77
|
+
registry,
|
76
78
|
instanceNftid,
|
77
79
|
componentName,
|
78
80
|
authorization,
|
@@ -80,6 +82,7 @@ contract FireProduct is
|
|
80
82
|
}
|
81
83
|
|
82
84
|
function _initialize(
|
85
|
+
address registry,
|
83
86
|
NftId instanceNftId,
|
84
87
|
string memory componentName,
|
85
88
|
IAuthorization authorization,
|
@@ -89,6 +92,7 @@ contract FireProduct is
|
|
89
92
|
initializer
|
90
93
|
{
|
91
94
|
_initializeBasicProduct(
|
95
|
+
registry,
|
92
96
|
instanceNftId,
|
93
97
|
componentName,
|
94
98
|
IComponents.ProductInfo({
|