@etherisc/gif-next 0.0.2-ffa91a6-022 → 3.0.0-04e2e0d-531
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 +131 -332
- package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.dbg.json +1 -1
- package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +111 -57
- package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +107 -45
- package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.dbg.json +1 -1
- package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.json +65 -19
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +1 -1
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +370 -141
- package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.dbg.json +1 -1
- package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.json +1582 -202
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +1 -1
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +25 -6
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +266 -64
- 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 +263 -87
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +102 -19
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +256 -16
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +426 -27
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +63 -38
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +1 -1
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +269 -69
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +21 -12
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +463 -149
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +160 -78
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +20 -11
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +317 -19
- 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 +108 -79
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +268 -68
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +136 -95
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +268 -68
- package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +1 -1
- package/artifacts/contracts/examples/flight/FlightLib.sol/FlightLib.dbg.json +4 -0
- package/artifacts/contracts/examples/flight/FlightLib.sol/FlightLib.json +799 -0
- package/artifacts/contracts/examples/flight/FlightMessageVerifier.sol/FlightMessageVerifier.dbg.json +4 -0
- package/artifacts/contracts/examples/flight/FlightMessageVerifier.sol/FlightMessageVerifier.json +229 -0
- package/artifacts/contracts/examples/flight/FlightNft.sol/FlightNft.dbg.json +4 -0
- package/artifacts/contracts/examples/flight/FlightNft.sol/FlightNft.json +801 -0
- package/artifacts/contracts/examples/flight/FlightOracle.sol/FlightOracle.dbg.json +4 -0
- package/artifacts/contracts/examples/flight/FlightOracle.sol/FlightOracle.json +1353 -0
- package/artifacts/contracts/examples/flight/FlightOracleAuthorization.sol/FlightOracleAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/flight/FlightOracleAuthorization.sol/FlightOracleAuthorization.json +896 -0
- package/artifacts/contracts/examples/flight/FlightPool.sol/FlightPool.dbg.json +4 -0
- package/artifacts/contracts/examples/flight/FlightPool.sol/FlightPool.json +1466 -0
- package/artifacts/contracts/examples/flight/FlightPoolAuthorization.sol/FlightPoolAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/flight/FlightPoolAuthorization.sol/FlightPoolAuthorization.json +844 -0
- package/artifacts/contracts/examples/flight/FlightProduct.sol/FlightProduct.dbg.json +4 -0
- package/artifacts/contracts/examples/flight/FlightProduct.sol/FlightProduct.json +2289 -0
- package/artifacts/contracts/examples/flight/FlightProductAuthorization.sol/FlightProductAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/flight/FlightProductAuthorization.sol/FlightProductAuthorization.json +891 -0
- package/artifacts/contracts/examples/flight/FlightProductManager.sol/FlightProductManager.dbg.json +4 -0
- package/artifacts/contracts/examples/flight/FlightProductManager.sol/FlightProductManager.json +711 -0
- package/artifacts/contracts/examples/flight/FlightUSD.sol/FlightUSD.dbg.json +4 -0
- package/artifacts/contracts/examples/flight/FlightUSD.sol/FlightUSD.json +586 -0
- package/artifacts/contracts/examples/flight/originalV1.sol/FlightDelayChainlink.dbg.json +4 -0
- package/artifacts/contracts/examples/flight/originalV1.sol/FlightDelayChainlink.json +901 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +86 -45
- package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +268 -68
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +35 -26
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +130 -105
- package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +268 -68
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +333 -147
- package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +268 -68
- package/artifacts/contracts/instance/BaseStore.sol/BaseStore.dbg.json +4 -0
- package/artifacts/contracts/{shared/IKeyValueStore.sol/IKeyValueStore.json → instance/BaseStore.sol/BaseStore.json} +84 -212
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +1 -1
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +2 -2
- package/artifacts/contracts/instance/IBaseStore.sol/IBaseStore.dbg.json +4 -0
- package/artifacts/contracts/{shared/KeyValueStore.sol/KeyValueStore.json → instance/IBaseStore.sol/IBaseStore.json} +61 -245
- package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstance.sol/IInstance.json +374 -35
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +366 -5
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +425 -97
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +753 -401
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +236 -80
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +782 -553
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +392 -31
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +100 -42
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +1374 -2013
- package/artifacts/contracts/instance/ProductStore.sol/ProductStore.dbg.json +4 -0
- package/artifacts/contracts/instance/ProductStore.sol/ProductStore.json +3477 -0
- 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 +20 -20
- 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 +25 -16
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +1 -1
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +282 -65
- 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 -10
- 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 -10
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +83 -38
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +116 -50
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +59 -58
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +268 -68
- package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleService.sol/BundleService.json +312 -123
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +144 -58
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +198 -33
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +29 -20
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +250 -19
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
- package/artifacts/contracts/pool/Pool.sol/Pool.json +29 -20
- package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolLib.sol/PoolLib.json +100 -34
- package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolService.sol/PoolService.json +350 -79
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +141 -63
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +216 -59
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +113 -43
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +46 -37
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +268 -68
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +142 -102
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +128 -70
- 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 +67 -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 +40 -31
- 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 +169 -86
- package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.json +519 -21
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +138 -72
- package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
- package/artifacts/contracts/product/PricingService.sol/PricingService.json +93 -112
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +115 -65
- package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
- package/artifacts/contracts/product/Product.sol/Product.json +40 -31
- 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 +101 -43
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +2 -2
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +39 -22
- 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 +77 -60
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +539 -314
- package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.json +335 -76
- 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 +96 -38
- package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +1 -1
- package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +551 -246
- 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 +169 -111
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +459 -26
- 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 -10
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +221 -201
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +130 -64
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +1 -1
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +76 -41
- 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/IAuthorizedComponent.sol/IAuthorizedComponent.dbg.json +4 -0
- package/artifacts/contracts/shared/{ComponentVerifyingService.sol/ComponentVerifyingService.json → IAuthorizedComponent.sol/IAuthorizedComponent.json} +238 -90
- package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponent.sol/IComponent.json +19 -10
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +136 -132
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +19 -10
- 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 -10
- 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 +1415 -134
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +109 -117
- package/artifacts/contracts/staking/ITargetLimitHandler.sol/ITargetLimitHandler.dbg.json +4 -0
- package/artifacts/contracts/staking/ITargetLimitHandler.sol/ITargetLimitHandler.json +50 -0
- package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
- package/artifacts/contracts/staking/Staking.sol/Staking.json +1504 -192
- package/artifacts/contracts/staking/StakingLib.sol/StakingLib.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingLib.sol/StakingLib.json +77 -76
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +139 -64
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +296 -152
- package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingService.sol/StakingService.json +143 -167
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +96 -46
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +1615 -815
- package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.dbg.json +4 -0
- package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.json +309 -0
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +153 -91
- 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 +10 -10
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +64 -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 +93 -37
- 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 +39 -218
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +64 -2
- package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +1 -1
- package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +1 -1
- package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/String.sol/StrLib.dbg.json +1 -1
- package/artifacts/contracts/type/String.sol/StrLib.json +69 -2
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +37 -5
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +60 -36
- 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 +81 -27
- package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +15 -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 +31 -31
- package/contracts/accounting/IAccountingService.sol +9 -8
- package/contracts/authorization/AccessAdmin.sol +281 -325
- package/contracts/authorization/AccessAdminLib.sol +535 -23
- package/contracts/authorization/AccessManagerCloneable.sol +3 -18
- package/contracts/authorization/Authorization.sol +64 -239
- package/contracts/authorization/IAccess.sol +29 -12
- package/contracts/authorization/IAccessAdmin.sol +25 -53
- package/contracts/authorization/IAuthorization.sol +3 -57
- package/contracts/authorization/IServiceAuthorization.sol +55 -17
- package/contracts/authorization/ServiceAuthorization.sol +228 -34
- package/contracts/distribution/BasicDistribution.sol +3 -4
- package/contracts/distribution/BasicDistributionAuthorization.sol +11 -4
- package/contracts/distribution/Distribution.sol +9 -8
- package/contracts/distribution/DistributionService.sol +127 -62
- package/contracts/distribution/IDistributionComponent.sol +3 -1
- package/contracts/distribution/IDistributionService.sol +21 -8
- package/contracts/examples/fire/FireProduct.sol +6 -6
- 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/SimpleProduct.sol +83 -19
- package/contracts/instance/BaseStore.sol +97 -0
- package/contracts/instance/IBaseStore.sol +45 -0
- package/contracts/instance/IInstance.sol +57 -6
- package/contracts/instance/IInstanceService.sol +44 -7
- package/contracts/instance/Instance.sol +111 -56
- package/contracts/instance/InstanceAdmin.sol +150 -294
- package/contracts/instance/InstanceAuthorizationV3.sol +106 -66
- package/contracts/instance/InstanceReader.sol +384 -394
- package/contracts/instance/InstanceService.sol +190 -134
- package/contracts/instance/InstanceStore.sol +153 -128
- package/contracts/instance/ProductStore.sol +290 -0
- package/contracts/instance/RiskSet.sol +10 -2
- package/contracts/instance/TargetNames.sol +10 -0
- package/contracts/instance/base/BalanceStore.sol +4 -6
- package/contracts/instance/base/ObjectLifecycle.sol +2 -6
- package/contracts/instance/module/IBundle.sol +6 -5
- package/contracts/instance/module/IComponents.sol +15 -5
- package/contracts/instance/module/IDistribution.sol +17 -7
- package/contracts/instance/module/IPolicy.sol +28 -8
- package/contracts/instance/module/IRisk.sol +2 -0
- package/contracts/oracle/BasicOracle.sol +3 -3
- package/contracts/oracle/BasicOracleAuthorization.sol +18 -2
- package/contracts/oracle/IOracle.sol +9 -4
- package/contracts/oracle/IOracleService.sol +12 -12
- package/contracts/oracle/Oracle.sol +6 -8
- package/contracts/oracle/OracleService.sol +8 -8
- package/contracts/pool/BasicPool.sol +4 -16
- package/contracts/pool/BasicPoolAuthorization.sol +10 -5
- package/contracts/pool/BundleService.sol +34 -43
- package/contracts/pool/IBundleService.sol +14 -13
- package/contracts/pool/IPoolService.sol +8 -3
- package/contracts/pool/Pool.sol +6 -18
- package/contracts/pool/PoolLib.sol +127 -2
- package/contracts/pool/PoolService.sol +41 -182
- package/contracts/product/ApplicationService.sol +64 -11
- package/contracts/product/BasicProduct.sol +2 -3
- package/contracts/product/BasicProductAuthorization.sol +13 -5
- package/contracts/product/ClaimService.sol +99 -105
- package/contracts/product/IApplicationService.sol +21 -2
- package/contracts/product/IClaimService.sol +5 -4
- package/contracts/product/IPolicyService.sol +10 -3
- package/contracts/product/IRiskService.sol +18 -3
- package/contracts/product/PolicyService.sol +41 -60
- package/contracts/product/PolicyServiceLib.sol +83 -7
- package/contracts/product/PricingService.sol +28 -31
- package/contracts/product/Product.sol +40 -16
- package/contracts/product/RiskService.sol +50 -15
- package/contracts/registry/ChainNft.sol +1 -1
- package/contracts/registry/IRegistry.sol +15 -9
- package/contracts/registry/IRelease.sol +6 -3
- package/contracts/registry/Registry.sol +15 -9
- package/contracts/registry/RegistryAdmin.sol +39 -118
- package/contracts/registry/RegistryAuthorization.sol +139 -69
- package/contracts/registry/RegistryService.sol +1 -1
- package/contracts/registry/ReleaseAdmin.sol +59 -106
- package/contracts/registry/ReleaseRegistry.sol +20 -12
- package/contracts/registry/ServiceAuthorizationV3.sol +43 -32
- package/contracts/registry/TokenRegistry.sol +56 -52
- package/contracts/shared/Component.sol +8 -8
- package/contracts/shared/ComponentService.sol +250 -262
- package/contracts/shared/ContractLib.sol +106 -75
- package/contracts/shared/EcdsaChecker.sol +5 -0
- package/contracts/shared/IAuthorizedComponent.sol +15 -0
- package/contracts/shared/IComponent.sol +1 -1
- package/contracts/shared/IComponentService.sol +15 -15
- package/contracts/shared/IInstanceLinkedComponent.sol +2 -5
- package/contracts/shared/INftOwnable.sol +2 -0
- package/contracts/shared/IRegisterable.sol +0 -1
- package/contracts/shared/InstanceLinkedComponent.sol +64 -26
- package/contracts/shared/NftOwnable.sol +3 -1
- package/contracts/shared/PolicyHolder.sol +3 -2
- package/contracts/shared/Service.sol +6 -4
- package/contracts/staking/IStaking.sol +263 -70
- package/contracts/staking/IStakingService.sol +40 -85
- package/contracts/staking/ITargetLimitHandler.sol +17 -0
- package/contracts/staking/Staking.sol +469 -217
- package/contracts/staking/StakingLib.sol +38 -124
- package/contracts/staking/StakingManager.sol +4 -3
- package/contracts/staking/StakingReader.sol +62 -71
- package/contracts/staking/StakingService.sol +43 -186
- package/contracts/staking/StakingServiceManager.sol +1 -0
- package/contracts/staking/StakingStore.sol +1093 -331
- package/contracts/staking/TargetHandler.sol +132 -0
- package/contracts/staking/TargetManagerLib.sol +69 -46
- package/contracts/type/Amount.sol +4 -0
- package/contracts/type/Blocknumber.sol +17 -22
- package/contracts/type/ChainId.sol +101 -0
- package/contracts/type/Fee.sol +8 -8
- package/contracts/type/NftId.sol +3 -3
- package/contracts/type/ObjectType.sol +17 -33
- package/contracts/type/Referral.sol +6 -0
- package/contracts/type/RequestIdSet.sol +62 -0
- package/contracts/type/RoleId.sol +57 -59
- package/contracts/type/Seconds.sol +23 -0
- package/contracts/type/String.sol +42 -0
- package/contracts/type/Timestamp.sol +14 -3
- package/contracts/type/UFixed.sol +28 -10
- package/contracts/upgradeability/IVersionable.sol +3 -0
- package/contracts/upgradeability/ProxyManager.sol +26 -12
- package/contracts/upgradeability/UpgradableProxyWithAdmin.sol +12 -2
- package/contracts/upgradeability/Versionable.sol +6 -3
- package/package.json +2 -1
- package/artifacts/contracts/authorization/AccessAdmin.sol/IAccessManagedChecker.dbg.json +0 -4
- package/artifacts/contracts/authorization/AccessAdmin.sol/IAccessManagedChecker.json +0 -24
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +0 -4
- package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +0 -4
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +0 -4
- package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +0 -4
- package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +0 -205
- package/contracts/shared/ComponentVerifyingService.sol +0 -128
- package/contracts/shared/IKeyValueStore.sol +0 -54
- package/contracts/shared/KeyValueStore.sol +0 -131
- package/contracts/staking/StakingLifecycle.sol +0 -23
@@ -1,54 +1,14 @@
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
2
2
|
pragma solidity ^0.8.20;
|
3
3
|
|
4
|
-
import {
|
5
|
-
|
6
|
-
import {IAccess} from "../authorization/IAccess.sol";
|
7
|
-
import {ObjectType} from "../type/ObjectType.sol";
|
8
|
-
import {RoleId} from "../type/RoleId.sol";
|
4
|
+
import {IServiceAuthorization} from "./IServiceAuthorization.sol";
|
9
5
|
import {Str} from "../type/String.sol";
|
10
|
-
|
6
|
+
|
11
7
|
|
12
8
|
interface IAuthorization is
|
13
|
-
|
14
|
-
IAccess
|
9
|
+
IServiceAuthorization
|
15
10
|
{
|
16
11
|
|
17
|
-
error ErrorAuthorizationMainTargetNameEmpty();
|
18
|
-
error ErrorAuthorizationTargetDomainZero();
|
19
|
-
|
20
|
-
/// @dev Returns the main domain of the authorization.
|
21
|
-
function getDomain() external view returns(ObjectType targetDomain);
|
22
|
-
|
23
|
-
/// @dev Returns the list of service targets.
|
24
|
-
function getServiceDomains() external view returns(ObjectType[] memory serviceDomains);
|
25
|
-
|
26
|
-
/// @dev Returns the service role for the specified service domain.
|
27
|
-
function getServiceRole(ObjectType serviceDomain) external pure returns (RoleId serviceRoleId);
|
28
|
-
|
29
|
-
/// @dev Returns the service target for the specified domain.
|
30
|
-
function getServiceTarget(ObjectType serviceDomain) external view returns(Str serviceTarget);
|
31
|
-
|
32
|
-
/// @dev Returns the component role for the specified domain.
|
33
|
-
function getComponentRole(ObjectType componentDomain) external view returns(RoleId componentRoleId);
|
34
|
-
|
35
|
-
/// @dev Returns the list of involved roles.
|
36
|
-
function getRoles() external view returns(RoleId[] memory roles);
|
37
|
-
|
38
|
-
/// @dev Returns the name for the provided role id.
|
39
|
-
function getRoleInfo(RoleId roleId) external view returns (RoleInfo memory roleInfo);
|
40
|
-
|
41
|
-
/// @dev Returns true iff the specified role id exists.
|
42
|
-
function roleExists(RoleId roleId) external view returns(bool exists);
|
43
|
-
|
44
|
-
/// @dev Returns the main target id name as string.
|
45
|
-
/// This name is used to derive the target id and a corresponding target role name
|
46
|
-
/// Overwrite this function to change the basic pool target name.
|
47
|
-
function getMainTargetName() external view returns (string memory name);
|
48
|
-
|
49
|
-
/// @dev Returns the main target.
|
50
|
-
function getMainTarget() external view returns(Str target);
|
51
|
-
|
52
12
|
/// @dev Returns the token hander name.
|
53
13
|
/// Only components have a token handler.
|
54
14
|
function getTokenHandlerName() external view returns(string memory name);
|
@@ -62,19 +22,5 @@ interface IAuthorization is
|
|
62
22
|
|
63
23
|
/// @dev Returns true iff the specified target exists.
|
64
24
|
function targetExists(Str target) external view returns(bool exists);
|
65
|
-
|
66
|
-
/// @dev Returns the role id associated with the target.
|
67
|
-
/// If no role is associated with the target the zero role id is returned.
|
68
|
-
function getTargetRole(Str target) external view returns(RoleId roleId);
|
69
|
-
|
70
|
-
/// @dev For the given target the list of authorized role ids is returned
|
71
|
-
function getAuthorizedRoles(Str target) external view returns(RoleId[] memory roleIds);
|
72
|
-
|
73
|
-
/// @dev For the given target and role id the list of authorized functions is returned
|
74
|
-
function getAuthorizedFunctions(Str target, RoleId roleId) external view returns(FunctionInfo[] memory authorizatedFunctions);
|
75
|
-
|
76
|
-
/// @dev Returns the release (VersionPart) for which the authorizations are defined by this contract.
|
77
|
-
/// Matches with the release returned by the linked service authorization.
|
78
|
-
function getRelease() external view returns(VersionPart release);
|
79
25
|
}
|
80
26
|
|
@@ -5,36 +5,74 @@ import {IERC165} from "@openzeppelin/contracts/utils/introspection/IERC165.sol";
|
|
5
5
|
|
6
6
|
import {IAccess} from "../authorization/IAccess.sol";
|
7
7
|
import {ObjectType} from "../type/ObjectType.sol";
|
8
|
+
import {RoleId} from "../type/RoleId.sol";
|
9
|
+
import {Str} from "../type/String.sol";
|
8
10
|
import {VersionPart} from "../type/Version.sol";
|
9
11
|
|
10
|
-
interface IServiceAuthorization is
|
12
|
+
interface IServiceAuthorization is
|
13
|
+
IERC165,
|
14
|
+
IAccess
|
15
|
+
{
|
11
16
|
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
returns(string memory commitHash);
|
17
|
+
error ErrorAuthorizationMainTargetNameEmpty();
|
18
|
+
error ErrorAuthorizationTargetDomainZero();
|
19
|
+
error ErrorAuthorizationReleaseInvalid(uint8 release);
|
20
|
+
error ErrorAuthorizationCommitHashInvalid(string commitHash);
|
17
21
|
|
18
|
-
/// @dev Returns the
|
19
|
-
function
|
20
|
-
external
|
21
|
-
view
|
22
|
-
returns(VersionPart release);
|
22
|
+
/// @dev Returns the main domain of the authorization.
|
23
|
+
function getDomain() external view returns(ObjectType targetDomain);
|
23
24
|
|
24
|
-
/// @dev Returns the
|
25
|
-
|
25
|
+
/// @dev Returns the release (VersionPart) for which the authorizations are defined by this contract.
|
26
|
+
/// Matches with the release returned by the linked service authorization.
|
27
|
+
function getRelease() external view returns(VersionPart release);
|
28
|
+
|
29
|
+
/// @dev Returns the commit hash for the related GIF release.
|
30
|
+
function getCommitHash() external view returns(string memory commitHash);
|
31
|
+
|
32
|
+
/// @dev Returns the main target id name as string.
|
33
|
+
/// This name is used to derive the target id and a corresponding target role name
|
34
|
+
/// Overwrite this function to change the basic pool target name.
|
35
|
+
function getMainTargetName() external view returns (string memory name);
|
36
|
+
|
37
|
+
/// @dev Returns the main target.
|
38
|
+
function getMainTarget() external view returns(Str target);
|
26
39
|
|
27
40
|
/// @dev Returns the full list of service domains for this release.
|
28
41
|
/// Services need to be registered for the release in revers order of this list.
|
29
42
|
function getServiceDomains() external view returns(ObjectType[] memory serviceDomains);
|
30
43
|
|
44
|
+
/// @dev Returns the service domain for the provided index.
|
45
|
+
function getServiceDomain(uint256 idx) external view returns(ObjectType serviceDomain);
|
46
|
+
|
47
|
+
/// @dev Returns the service target for the specified domain.
|
48
|
+
function getServiceTarget(ObjectType serviceDomain) external view returns(Str serviceTarget);
|
49
|
+
|
50
|
+
/// @dev Returns the service target for the specified domain.
|
51
|
+
function getServiceRole(ObjectType serviceDomain) external view returns(RoleId serviceRoleId);
|
52
|
+
|
31
53
|
/// @dev Returns the expected service address for the provided domain.
|
32
54
|
function getServiceAddress(ObjectType serviceDomain) external view returns(address service);
|
33
55
|
|
34
|
-
/// @dev
|
35
|
-
|
56
|
+
/// @dev Returns the role id associated with the target.
|
57
|
+
/// If no role is associated with the target the zero role id is returned.
|
58
|
+
function getTargetRole(Str target) external view returns(RoleId roleId);
|
59
|
+
|
60
|
+
/// @dev Returns true iff the role exists.
|
61
|
+
function roleExists(RoleId roleId) external view returns(bool exists);
|
62
|
+
|
63
|
+
/// @dev Returns the list of involved roles.
|
64
|
+
function getRoles() external view returns(RoleId[] memory roles);
|
65
|
+
|
66
|
+
/// @dev Returns the role info for the provided role id.
|
67
|
+
function getRoleInfo(RoleId roleId) external view returns (RoleInfo memory roleInfo);
|
68
|
+
|
69
|
+
/// @dev Returns the name for the provided role id.
|
70
|
+
function getRoleName(RoleId roleId) external view returns (string memory roleName);
|
71
|
+
|
72
|
+
/// @dev For the given target the list of authorized role ids is returned
|
73
|
+
function getAuthorizedRoles(Str target) external view returns(RoleId[] memory roleIds);
|
36
74
|
|
37
|
-
/// @dev For the given
|
38
|
-
function getAuthorizedFunctions(
|
75
|
+
/// @dev For the given target and role id the list of authorized functions is returned
|
76
|
+
function getAuthorizedFunctions(Str target, RoleId roleId) external view returns(FunctionInfo[] memory authorizatedFunctions);
|
39
77
|
}
|
40
78
|
|
@@ -1,106 +1,300 @@
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
2
2
|
pragma solidity ^0.8.20;
|
3
3
|
|
4
|
-
import {IERC165} from "@openzeppelin/contracts/utils/introspection/IERC165.sol";
|
5
|
-
|
6
4
|
import {IAccess} from "../authorization/IAccess.sol";
|
7
|
-
import {ObjectType} from "../type/ObjectType.sol";
|
8
5
|
import {IServiceAuthorization} from "./IServiceAuthorization.sol";
|
6
|
+
|
7
|
+
import {AccessAdminLib} from "./AccessAdminLib.sol";
|
8
|
+
import {BlocknumberLib} from "../type/Blocknumber.sol";
|
9
|
+
import {InitializableERC165} from "../shared/InitializableERC165.sol";
|
10
|
+
import {ObjectType, ObjectTypeLib, ALL} from "../type/ObjectType.sol";
|
11
|
+
import {RoleId, RoleIdLib, ADMIN_ROLE, PUBLIC_ROLE} from "../type/RoleId.sol";
|
9
12
|
import {SelectorLib} from "../type/Selector.sol";
|
10
|
-
import {StrLib} from "../type/String.sol";
|
13
|
+
import {Str, StrLib} from "../type/String.sol";
|
11
14
|
import {TimestampLib} from "../type/Timestamp.sol";
|
12
15
|
import {VersionPart, VersionPartLib} from "../type/Version.sol";
|
13
16
|
|
14
|
-
|
17
|
+
|
18
|
+
/// @dev Base contract for release specific service authorization contracts and for Authorization contracts.
|
15
19
|
contract ServiceAuthorization is
|
20
|
+
InitializableERC165,
|
16
21
|
IServiceAuthorization
|
17
22
|
{
|
23
|
+
|
24
|
+
string public constant COMMIT_HASH = "1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a";
|
25
|
+
|
18
26
|
uint256 public constant COMMIT_HASH_LENGTH = 40;
|
19
27
|
uint256 public constant GIF_INITIAL_VERSION = 3;
|
20
28
|
|
21
|
-
|
22
|
-
string public
|
29
|
+
string public constant SERVICE_NAME_SUFFIX = "Service";
|
30
|
+
string public constant ROLE_NAME_SUFFIX = "_Role";
|
31
|
+
|
32
|
+
ObjectType public immutable DOMAIN;
|
33
|
+
uint256 internal immutable _release;
|
34
|
+
string internal _commitHash;
|
23
35
|
|
36
|
+
string internal _mainTargetName;
|
37
|
+
Str internal _mainTarget;
|
38
|
+
|
39
|
+
// services
|
24
40
|
ObjectType[] internal _serviceDomains;
|
25
41
|
mapping(ObjectType domain => address service) internal _serviceAddress;
|
26
|
-
mapping(ObjectType domain => ObjectType[] authorizedDomains) internal _authorizedDomains;
|
27
|
-
mapping(ObjectType domain => mapping(ObjectType authorizedDomain => IAccess.FunctionInfo[] functions)) internal _authorizedFunctions;
|
28
42
|
|
29
|
-
|
30
|
-
|
31
|
-
|
43
|
+
// roles
|
44
|
+
RoleId[] internal _roles;
|
45
|
+
mapping(RoleId role => RoleInfo info) internal _roleInfo;
|
46
|
+
|
47
|
+
// targets
|
48
|
+
Str[] internal _targets;
|
49
|
+
mapping(Str target => bool exists) internal _targetExists;
|
50
|
+
mapping(Str target => RoleId roleId) internal _targetRole;
|
51
|
+
mapping(Str target => RoleId[] authorizedRoles) internal _authorizedRoles;
|
52
|
+
mapping(Str target => mapping(RoleId authorizedRole => IAccess.FunctionInfo[] functions)) internal _authorizedFunctions;
|
53
|
+
|
54
|
+
|
55
|
+
constructor(
|
56
|
+
string memory mainTargetName,
|
57
|
+
ObjectType domain,
|
58
|
+
uint8 release,
|
59
|
+
string memory commitHash
|
60
|
+
)
|
61
|
+
{
|
62
|
+
// checks
|
63
|
+
if (bytes(mainTargetName).length == 0) {
|
64
|
+
revert ErrorAuthorizationMainTargetNameEmpty();
|
65
|
+
}
|
66
|
+
|
67
|
+
if (domain == ObjectTypeLib.zero()) {
|
68
|
+
revert ErrorAuthorizationTargetDomainZero();
|
69
|
+
}
|
70
|
+
|
71
|
+
if (release < VersionPartLib.releaseMin().toInt() || release >= VersionPartLib.releaseMax().toInt()) {
|
72
|
+
revert ErrorAuthorizationReleaseInvalid(release);
|
73
|
+
}
|
74
|
+
|
75
|
+
if (bytes(commitHash).length != COMMIT_HASH_LENGTH) {
|
76
|
+
revert ErrorAuthorizationCommitHashInvalid(commitHash);
|
77
|
+
}
|
78
|
+
|
79
|
+
// effects
|
80
|
+
_initializeERC165();
|
81
|
+
_registerInterfaceNotInitializing(type(IServiceAuthorization).interfaceId);
|
82
|
+
|
83
|
+
_mainTargetName = mainTargetName;
|
84
|
+
_mainTarget = StrLib.toStr(mainTargetName);
|
32
85
|
|
33
|
-
|
34
|
-
|
86
|
+
DOMAIN = domain;
|
87
|
+
_release = release;
|
88
|
+
_commitHash = commitHash;
|
89
|
+
|
90
|
+
// setup of roles defined in OpenZeppelin AccessManager
|
91
|
+
_addRole(ADMIN_ROLE(), AccessAdminLib.adminRoleInfo());
|
92
|
+
_addRole(PUBLIC_ROLE(), AccessAdminLib.publicRoleInfo());
|
93
|
+
|
94
|
+
// defines service domains relevant for the authorization
|
35
95
|
_setupDomains();
|
36
96
|
_setupDomainAuthorizations();
|
37
97
|
}
|
38
98
|
|
99
|
+
/// @inheritdoc IServiceAuthorization
|
100
|
+
function getDomain() public view returns(ObjectType targetDomain) {
|
101
|
+
return DOMAIN;
|
102
|
+
}
|
103
|
+
|
104
|
+
/// @inheritdoc IServiceAuthorization
|
105
|
+
function getRelease() public view returns(VersionPart release) {
|
106
|
+
return VersionPartLib.toVersionPart(_release);
|
107
|
+
}
|
108
|
+
|
109
|
+
/// @inheritdoc IServiceAuthorization
|
39
110
|
function getCommitHash() external view returns(string memory commitHash) {
|
40
|
-
return
|
111
|
+
return _commitHash;
|
112
|
+
}
|
113
|
+
|
114
|
+
/// @inheritdoc IServiceAuthorization
|
115
|
+
function getMainTargetName() public view returns (string memory name) {
|
116
|
+
return _mainTargetName;
|
41
117
|
}
|
42
118
|
|
43
|
-
|
44
|
-
|
119
|
+
/// @inheritdoc IServiceAuthorization
|
120
|
+
function getMainTarget() external view returns(Str target) {
|
121
|
+
return _mainTarget;
|
45
122
|
}
|
46
123
|
|
124
|
+
/// @inheritdoc IServiceAuthorization
|
47
125
|
function getServiceDomains() external view returns(ObjectType[] memory serviceDomains) {
|
48
126
|
return _serviceDomains;
|
49
127
|
}
|
50
128
|
|
51
|
-
|
129
|
+
/// @inheritdoc IServiceAuthorization
|
130
|
+
function getServiceDomain(uint256 idx) external view returns(ObjectType serviceDomain) {
|
52
131
|
return _serviceDomains[idx];
|
53
132
|
}
|
54
133
|
|
134
|
+
/// @inheritdoc IServiceAuthorization
|
135
|
+
function getServiceTarget(ObjectType serviceDomain) public view returns(Str target) {
|
136
|
+
string memory serviceTargetName = ObjectTypeLib.toVersionedName(
|
137
|
+
ObjectTypeLib.toName(serviceDomain),
|
138
|
+
"Service",
|
139
|
+
getRelease());
|
140
|
+
|
141
|
+
return StrLib.toStr(serviceTargetName);
|
142
|
+
}
|
143
|
+
|
144
|
+
/// @inheritdoc IServiceAuthorization
|
145
|
+
function getServiceRole(ObjectType serviceDomain) public view returns(RoleId serviceRoleId) {
|
146
|
+
// special case domain ALL
|
147
|
+
if (serviceDomain == ALL()) {
|
148
|
+
return PUBLIC_ROLE();
|
149
|
+
}
|
150
|
+
|
151
|
+
Str target = getServiceTarget(serviceDomain);
|
152
|
+
return getTargetRole(target);
|
153
|
+
}
|
154
|
+
|
155
|
+
/// @inheritdoc IServiceAuthorization
|
55
156
|
function getServiceAddress(ObjectType serviceDomain) external view returns(address service) {
|
56
157
|
return _serviceAddress[serviceDomain];
|
57
158
|
}
|
58
159
|
|
59
|
-
|
60
|
-
|
160
|
+
/// @inheritdoc IServiceAuthorization
|
161
|
+
function getTargetRole(Str target) public view returns(RoleId roleId) {
|
162
|
+
return _targetRole[target];
|
163
|
+
}
|
164
|
+
|
165
|
+
/// @inheritdoc IServiceAuthorization
|
166
|
+
function roleExists(RoleId roleId) public view returns(bool exists) {
|
167
|
+
return _roleInfo[roleId].targetType != TargetType.Undefined;
|
61
168
|
}
|
62
169
|
|
63
|
-
|
64
|
-
|
170
|
+
/// @inheritdoc IServiceAuthorization
|
171
|
+
function getRoles() external view returns(RoleId[] memory roles) {
|
172
|
+
return _roles;
|
65
173
|
}
|
66
174
|
|
67
|
-
|
68
|
-
function
|
69
|
-
return
|
70
|
-
interfaceId == type(IServiceAuthorization).interfaceId ||
|
71
|
-
interfaceId == type(IERC165).interfaceId
|
72
|
-
);
|
175
|
+
/// @inheritdoc IServiceAuthorization
|
176
|
+
function getRoleInfo(RoleId roleId) external view returns (RoleInfo memory info) {
|
177
|
+
return _roleInfo[roleId];
|
73
178
|
}
|
74
179
|
|
180
|
+
/// @inheritdoc IServiceAuthorization
|
181
|
+
function getRoleName(RoleId roleId) external view returns (string memory roleName) {
|
182
|
+
return _roleInfo[roleId].name.toString();
|
183
|
+
}
|
75
184
|
|
76
|
-
/// @
|
185
|
+
/// @inheritdoc IServiceAuthorization
|
186
|
+
function getAuthorizedRoles(Str target) external view returns(RoleId[] memory roleIds) {
|
187
|
+
return _authorizedRoles[target];
|
188
|
+
}
|
189
|
+
|
190
|
+
/// @inheritdoc IServiceAuthorization
|
191
|
+
function getAuthorizedFunctions(Str target, RoleId roleId) external view returns(FunctionInfo[] memory authorizatedFunctions) {
|
192
|
+
return _authorizedFunctions[target][roleId];
|
193
|
+
}
|
194
|
+
|
195
|
+
/// @dev Defines service domains relevant for the authorization.
|
196
|
+
/// When used for ReleaseAdmin the list defines the services to be registered for the release.
|
197
|
+
/// IMPORTANT: Both the list of the service domains as well as the ordering of the domains is important.
|
198
|
+
/// Trying to register services not in this list or register services in a different order will result in an error.
|
199
|
+
// solhint-disable-next-line no-empty-blocks
|
77
200
|
function _setupDomains() internal virtual {}
|
78
201
|
|
79
202
|
/// @dev Overwrite this function for a specific realease.
|
203
|
+
// solhint-disable-next-line no-empty-blocks
|
80
204
|
function _setupDomainAuthorizations() internal virtual {}
|
81
205
|
|
82
206
|
/// @dev Use this method to to add an authorized domain.
|
83
207
|
/// The services will need to be registered in the order they are added using this function.
|
84
|
-
function
|
208
|
+
function _authorizeServiceDomain(ObjectType serviceDomain, address serviceAddress) internal {
|
85
209
|
_serviceDomains.push(serviceDomain);
|
86
210
|
_serviceAddress[serviceDomain] = serviceAddress;
|
211
|
+
|
212
|
+
string memory serviceName = ObjectTypeLib.toVersionedName(
|
213
|
+
ObjectTypeLib.toName(serviceDomain),
|
214
|
+
SERVICE_NAME_SUFFIX,
|
215
|
+
getRelease());
|
216
|
+
|
217
|
+
_addTargetWithRole(
|
218
|
+
serviceName,
|
219
|
+
RoleIdLib.toServiceRoleId(serviceDomain, getRelease()),
|
220
|
+
string(abi.encodePacked(serviceName, ROLE_NAME_SUFFIX)));
|
87
221
|
}
|
88
222
|
|
223
|
+
|
224
|
+
/// @dev Use this method to to add an authorized target together with its target role.
|
225
|
+
function _addTargetWithRole(
|
226
|
+
string memory targetName,
|
227
|
+
RoleId roleId,
|
228
|
+
string memory roleName
|
229
|
+
)
|
230
|
+
internal
|
231
|
+
{
|
232
|
+
// add target
|
233
|
+
Str target = StrLib.toStr(targetName);
|
234
|
+
_targets.push(target);
|
235
|
+
|
236
|
+
_targetExists[target] = true;
|
237
|
+
|
238
|
+
// link role to target if defined
|
239
|
+
if (roleId != RoleIdLib.zero()) {
|
240
|
+
// add role if new
|
241
|
+
if (!roleExists(roleId)) {
|
242
|
+
_addRole(
|
243
|
+
roleId,
|
244
|
+
AccessAdminLib.serviceRoleInfo(roleName));
|
245
|
+
}
|
246
|
+
|
247
|
+
// link target to role
|
248
|
+
_targetRole[target] = roleId;
|
249
|
+
}
|
250
|
+
}
|
251
|
+
|
252
|
+
|
253
|
+
/// @dev Use this method to to add an authorized role.
|
254
|
+
function _addRole(RoleId roleId, RoleInfo memory info) internal {
|
255
|
+
_roles.push(roleId);
|
256
|
+
_roleInfo[roleId] = info;
|
257
|
+
}
|
258
|
+
|
259
|
+
|
89
260
|
/// @dev Use this method to authorize the specified domain to access the service domain.
|
90
|
-
function _authorizeForService(
|
261
|
+
function _authorizeForService(
|
262
|
+
ObjectType serviceDomain,
|
263
|
+
ObjectType authorizedDomain
|
264
|
+
)
|
91
265
|
internal
|
92
266
|
returns (IAccess.FunctionInfo[] storage authorizatedFunctions)
|
93
267
|
{
|
94
|
-
|
95
|
-
|
268
|
+
Str serviceTarget = getServiceTarget(serviceDomain);
|
269
|
+
RoleId authorizedRoleId = getServiceRole(authorizedDomain);
|
270
|
+
|
271
|
+
return _authorizeForTarget(serviceTarget.toString(), authorizedRoleId);
|
96
272
|
}
|
97
273
|
|
274
|
+
|
275
|
+
/// @dev Use this method to authorize the specified role to access the target.
|
276
|
+
function _authorizeForTarget(string memory target, RoleId authorizedRoleId)
|
277
|
+
internal
|
278
|
+
returns (IAccess.FunctionInfo[] storage authorizatedFunctions)
|
279
|
+
{
|
280
|
+
Str targetStr = StrLib.toStr(target);
|
281
|
+
|
282
|
+
// add authorized role if not already added
|
283
|
+
if (_authorizedFunctions[targetStr][authorizedRoleId].length == 0) {
|
284
|
+
_authorizedRoles[targetStr].push(authorizedRoleId);
|
285
|
+
}
|
286
|
+
|
287
|
+
return _authorizedFunctions[targetStr][authorizedRoleId];
|
288
|
+
}
|
289
|
+
|
290
|
+
|
98
291
|
/// @dev Use this method to authorize a specific function authorization
|
99
292
|
function _authorize(IAccess.FunctionInfo[] storage functions, bytes4 selector, string memory name) internal {
|
100
293
|
functions.push(
|
101
294
|
IAccess.FunctionInfo({
|
102
295
|
selector: SelectorLib.toSelector(selector),
|
103
296
|
name: StrLib.toStr(name),
|
104
|
-
createdAt: TimestampLib.
|
297
|
+
createdAt: TimestampLib.current(),
|
298
|
+
lastUpdateIn: BlocknumberLib.current()}));
|
105
299
|
}
|
106
300
|
}
|
@@ -7,7 +7,7 @@ import {Distribution} from "./Distribution.sol";
|
|
7
7
|
import {DistributorType} from "../type/DistributorType.sol";
|
8
8
|
import {DISTRIBUTOR} from "../type/ObjectType.sol";
|
9
9
|
import {Fee} from "../type/Fee.sol";
|
10
|
-
import {NftId
|
10
|
+
import {NftId} from "../type/NftId.sol";
|
11
11
|
import {ReferralId} from "../type/Referral.sol";
|
12
12
|
import {Seconds} from "../type/Seconds.sol";
|
13
13
|
import {Timestamp} from "../type/Timestamp.sol";
|
@@ -129,13 +129,12 @@ contract BasicDistribution is
|
|
129
129
|
virtual
|
130
130
|
onlyInitializing()
|
131
131
|
{
|
132
|
-
|
132
|
+
__Distribution_init(
|
133
133
|
registry,
|
134
134
|
instanceNftId,
|
135
135
|
authorization,
|
136
136
|
false,
|
137
137
|
initialOwner,
|
138
|
-
name
|
139
|
-
""); // component specifc data
|
138
|
+
name);
|
140
139
|
}
|
141
140
|
}
|
@@ -8,7 +8,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
|
-
import {
|
11
|
+
import {PUBLIC_ROLE} from "../type/RoleId.sol";
|
12
12
|
import {TokenHandler} from "../shared/TokenHandler.sol";
|
13
13
|
|
14
14
|
|
@@ -16,15 +16,22 @@ contract BasicDistributionAuthorization
|
|
16
16
|
is Authorization
|
17
17
|
{
|
18
18
|
|
19
|
-
constructor(string memory
|
20
|
-
Authorization(
|
19
|
+
constructor(string memory distributionName)
|
20
|
+
Authorization(
|
21
|
+
distributionName,
|
22
|
+
DISTRIBUTION(),
|
23
|
+
3,
|
24
|
+
COMMIT_HASH,
|
25
|
+
TargetType.Component,
|
26
|
+
true)
|
21
27
|
{}
|
22
28
|
|
23
29
|
function _setupServiceTargets()
|
24
30
|
internal
|
25
31
|
virtual override
|
26
32
|
{
|
27
|
-
|
33
|
+
_authorizeServiceDomain(COMPONENT(), address(11));
|
34
|
+
_authorizeServiceDomain(DISTRIBUTION(), address(11));
|
28
35
|
}
|
29
36
|
|
30
37
|
function _setupTokenHandlerAuthorizations() internal virtual override {
|
@@ -37,6 +37,7 @@ abstract contract Distribution is
|
|
37
37
|
external
|
38
38
|
virtual
|
39
39
|
restricted()
|
40
|
+
// solhint-disable-next-line no-empty-blocks
|
40
41
|
{
|
41
42
|
// default is no action
|
42
43
|
}
|
@@ -56,6 +57,7 @@ abstract contract Distribution is
|
|
56
57
|
|
57
58
|
function getDiscountPercentage(string memory referralCode)
|
58
59
|
external
|
60
|
+
virtual
|
59
61
|
view
|
60
62
|
returns (
|
61
63
|
UFixed discountPercentage,
|
@@ -71,6 +73,7 @@ abstract contract Distribution is
|
|
71
73
|
string memory referralCode
|
72
74
|
)
|
73
75
|
public
|
76
|
+
virtual
|
74
77
|
view
|
75
78
|
returns (ReferralId referralId)
|
76
79
|
{
|
@@ -81,7 +84,7 @@ abstract contract Distribution is
|
|
81
84
|
|
82
85
|
|
83
86
|
function calculateRenewalFeeAmount(
|
84
|
-
ReferralId referralId
|
87
|
+
ReferralId, // referralId
|
85
88
|
uint256 netPremiumAmount
|
86
89
|
)
|
87
90
|
external
|
@@ -95,33 +98,31 @@ abstract contract Distribution is
|
|
95
98
|
|
96
99
|
|
97
100
|
/// @dev Returns true iff the component needs to be called when selling/renewing policis
|
98
|
-
function isVerifying() external pure returns (bool verifying) {
|
101
|
+
function isVerifying() external virtual pure returns (bool verifying) {
|
99
102
|
return true;
|
100
103
|
}
|
101
104
|
|
102
105
|
|
103
|
-
function
|
106
|
+
function __Distribution_init(
|
104
107
|
address registry,
|
105
108
|
NftId productNftId,
|
106
109
|
IAuthorization authorization,
|
107
110
|
bool isInterceptor,
|
108
111
|
address initialOwner,
|
109
|
-
string memory name
|
110
|
-
bytes memory componentData // component specifidc data
|
112
|
+
string memory name
|
111
113
|
)
|
112
114
|
internal
|
113
115
|
virtual
|
114
116
|
onlyInitializing()
|
115
117
|
{
|
116
|
-
|
118
|
+
__InstanceLinkedComponent_init(
|
117
119
|
registry,
|
118
120
|
productNftId,
|
119
121
|
name,
|
120
122
|
DISTRIBUTION(),
|
121
123
|
authorization,
|
122
124
|
isInterceptor,
|
123
|
-
initialOwner
|
124
|
-
componentData);
|
125
|
+
initialOwner);
|
125
126
|
|
126
127
|
DistributionStorage storage $ = _getDistributionStorage();
|
127
128
|
$._distributionService = IDistributionService(_getServiceAddress(DISTRIBUTION()));
|