@etherisc/gif-next 0.0.2-ccfa4c7-304 → 0.0.2-cd48412-522
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 +63 -1
- package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.dbg.json +1 -1
- package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +106 -38
- package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +91 -45
- package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.dbg.json +1 -1
- package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.json +58 -6
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +1 -1
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +272 -102
- package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.dbg.json +1 -1
- package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.json +662 -46
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +1 -1
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +2 -2
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +227 -52
- 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 +180 -32
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +90 -17
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +246 -16
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +420 -27
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +64 -152
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +1 -1
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +226 -65
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +21 -98
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +378 -149
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +140 -78
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +20 -97
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +232 -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 +109 -110
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +225 -64
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +145 -134
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +225 -64
- package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +83 -177
- package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +225 -64
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +37 -71
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +130 -148
- package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +225 -64
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +333 -190
- package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +225 -64
- package/artifacts/contracts/instance/BaseStore.sol/BaseStore.dbg.json +4 -0
- package/artifacts/contracts/{shared/IKeyValueStore.sol/IKeyValueStore.json → instance/BaseStore.sol/BaseStore.json} +51 -229
- 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/instance/IBaseStore.sol/IBaseStore.json +304 -0
- package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstance.sol/IInstance.json +368 -34
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +295 -5
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +419 -96
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +591 -343
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +194 -73
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +569 -513
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +321 -31
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +80 -42
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +1316 -2015
- package/artifacts/contracts/instance/ProductStore.sol/ProductStore.dbg.json +4 -0
- package/artifacts/contracts/instance/ProductStore.sol/ProductStore.json +3427 -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 +29 -41
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +1 -1
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +239 -61
- 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 -31
- 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 -31
- 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 +96 -50
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +59 -79
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +225 -64
- package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleService.sol/BundleService.json +300 -123
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +124 -58
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +186 -33
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +29 -41
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +238 -19
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
- package/artifacts/contracts/pool/Pool.sol/Pool.json +29 -41
- 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 +338 -79
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +121 -63
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +238 -52
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +96 -42
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +46 -58
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +225 -64
- 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 +113 -75
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +187 -1
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +50 -10
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +55 -0
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +50 -0
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +40 -52
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +1 -1
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.json +224 -18
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +157 -86
- package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.json +511 -21
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +118 -72
- package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
- package/artifacts/contracts/product/PricingService.sol/PricingService.json +114 -112
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +99 -69
- package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
- package/artifacts/contracts/product/Product.sol/Product.json +40 -52
- package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +1 -1
- package/artifacts/contracts/product/RiskService.sol/RiskService.json +258 -44
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +84 -42
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +33 -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 +71 -60
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +385 -243
- package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.json +266 -70
- 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 +76 -38
- package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +1 -1
- package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +389 -191
- 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 +149 -97
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +437 -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 -31
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +209 -190
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +113 -63
- 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/IComponent.sol/IComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponent.sol/IComponent.json +19 -31
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +118 -123
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +19 -31
- 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 -31
- 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 +1385 -150
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +97 -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 +1471 -213
- 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 +123 -72
- 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 +131 -167
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +84 -54
- 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 +45 -19
- package/artifacts/contracts/type/ChainId.sol/ChainIdLib.dbg.json +4 -0
- package/artifacts/contracts/type/ChainId.sol/ChainIdLib.json +193 -0
- package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +2 -2
- package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
- package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +2 -2
- package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
- package/artifacts/contracts/type/Fee.sol/FeeLib.json +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 +6 -6
- package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +2 -2
- package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
- package/artifacts/contracts/type/Referral.sol/ReferralLib.json +2 -2
- package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +2 -2
- 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 +45 -2
- package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +1 -1
- package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +1 -1
- package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/String.sol/StrLib.dbg.json +1 -1
- package/artifacts/contracts/type/String.sol/StrLib.json +50 -2
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +3 -3
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +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 +65 -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 +15 -3
- package/contracts/accounting/IAccountingService.sol +4 -2
- package/contracts/authorization/AccessAdmin.sol +264 -188
- package/contracts/authorization/AccessAdminLib.sol +222 -9
- package/contracts/authorization/Authorization.sol +38 -234
- package/contracts/authorization/IAccess.sol +25 -7
- package/contracts/authorization/IAccessAdmin.sol +19 -45
- package/contracts/authorization/IAuthorization.sol +3 -57
- package/contracts/authorization/IServiceAuthorization.sol +55 -17
- package/contracts/authorization/ServiceAuthorization.sol +248 -34
- package/contracts/distribution/BasicDistribution.sol +7 -8
- package/contracts/distribution/BasicDistributionAuthorization.sol +11 -4
- package/contracts/distribution/Distribution.sol +12 -56
- package/contracts/distribution/DistributionService.sol +126 -63
- package/contracts/distribution/IDistributionComponent.sol +3 -10
- package/contracts/distribution/IDistributionService.sol +20 -8
- package/contracts/examples/fire/FirePool.sol +0 -4
- package/contracts/examples/fire/FireProduct.sol +6 -10
- package/contracts/examples/unpermissioned/SimpleDistribution.sol +4 -8
- package/contracts/examples/unpermissioned/SimpleOracle.sol +4 -8
- package/contracts/examples/unpermissioned/SimplePool.sol +0 -4
- package/contracts/examples/unpermissioned/SimpleProduct.sol +83 -23
- package/contracts/instance/BaseStore.sol +93 -0
- package/contracts/instance/IBaseStore.sol +37 -0
- package/contracts/instance/IInstance.sol +57 -6
- package/contracts/instance/IInstanceService.sol +42 -7
- package/contracts/instance/Instance.sol +112 -57
- package/contracts/instance/InstanceAdmin.sol +164 -235
- package/contracts/instance/InstanceAuthorizationV3.sol +101 -61
- package/contracts/instance/InstanceReader.sol +354 -392
- package/contracts/instance/InstanceService.sol +186 -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 -6
- 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 -6
- package/contracts/oracle/BasicOracleAuthorization.sol +18 -2
- package/contracts/oracle/IOracle.sol +9 -4
- package/contracts/oracle/Oracle.sol +4 -8
- package/contracts/oracle/OracleService.sol +8 -8
- package/contracts/pool/BasicPool.sol +4 -18
- 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 +7 -2
- package/contracts/pool/Pool.sol +6 -20
- package/contracts/pool/PoolLib.sol +127 -2
- package/contracts/pool/PoolService.sol +41 -184
- package/contracts/product/ApplicationService.sol +69 -11
- package/contracts/product/BasicProduct.sol +2 -5
- package/contracts/product/BasicProductAuthorization.sol +11 -4
- package/contracts/product/ClaimService.sol +99 -105
- package/contracts/product/IApplicationService.sol +23 -2
- package/contracts/product/IClaimService.sol +5 -4
- package/contracts/product/IPolicyService.sol +9 -2
- package/contracts/product/IPricingService.sol +1 -0
- package/contracts/product/IRiskService.sol +21 -3
- package/contracts/product/PolicyService.sol +40 -59
- package/contracts/product/PolicyServiceLib.sol +79 -5
- package/contracts/product/PricingService.sol +33 -31
- package/contracts/product/Product.sol +40 -18
- package/contracts/product/RiskService.sol +57 -12
- 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 +33 -100
- package/contracts/registry/RegistryAuthorization.sol +121 -52
- package/contracts/registry/RegistryService.sol +1 -1
- package/contracts/registry/ReleaseAdmin.sol +42 -100
- 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 +16 -33
- package/contracts/shared/ComponentService.sol +249 -247
- package/contracts/shared/ContractLib.sol +106 -75
- package/contracts/shared/IComponent.sol +1 -4
- package/contracts/shared/IComponentService.sol +17 -16
- package/contracts/shared/INftOwnable.sol +2 -0
- package/contracts/shared/IRegisterable.sol +0 -1
- package/contracts/shared/InstanceLinkedComponent.sol +6 -11
- 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 +262 -70
- package/contracts/staking/IStakingService.sol +39 -84
- package/contracts/staking/ITargetLimitHandler.sol +17 -0
- package/contracts/staking/Staking.sol +470 -219
- 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 +42 -185
- 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 +15 -15
- 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 +16 -3
- package/contracts/type/RoleId.sol +57 -59
- package/contracts/type/Seconds.sol +19 -0
- package/contracts/type/String.sol +12 -0
- package/contracts/type/Timestamp.sol +4 -2
- package/contracts/type/UFixed.sol +28 -10
- package/contracts/upgradeability/IVersionable.sol +3 -0
- package/contracts/upgradeability/ProxyManager.sol +25 -11
- package/contracts/upgradeability/UpgradableProxyWithAdmin.sol +12 -2
- package/contracts/upgradeability/Versionable.sol +6 -3
- package/package.json +1 -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/ComponentVerifyingService.sol/ComponentVerifyingService.json +0 -485
- 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/shared/KeyValueStore.sol/KeyValueStore.json +0 -538
- 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,106 +1,320 @@
|
|
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 {ADMIN_ROLE_NAME, PUBLIC_ROLE_NAME} from "./AccessAdmin.sol";
|
8
|
+
import {InitializableERC165} from "../shared/InitializableERC165.sol";
|
9
|
+
import {ObjectType, ObjectTypeLib, ALL} from "../type/ObjectType.sol";
|
10
|
+
import {RoleId, RoleIdLib, ADMIN_ROLE, PUBLIC_ROLE} from "../type/RoleId.sol";
|
9
11
|
import {SelectorLib} from "../type/Selector.sol";
|
10
|
-
import {StrLib} from "../type/String.sol";
|
12
|
+
import {Str, StrLib} from "../type/String.sol";
|
11
13
|
import {TimestampLib} from "../type/Timestamp.sol";
|
12
14
|
import {VersionPart, VersionPartLib} from "../type/Version.sol";
|
13
15
|
|
14
|
-
|
16
|
+
|
17
|
+
/// @dev Base contract for release specific service authorization contracts and for Authorization contracts.
|
15
18
|
contract ServiceAuthorization is
|
19
|
+
InitializableERC165,
|
16
20
|
IServiceAuthorization
|
17
21
|
{
|
22
|
+
|
23
|
+
string public constant COMMIT_HASH = "1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a";
|
24
|
+
|
18
25
|
uint256 public constant COMMIT_HASH_LENGTH = 40;
|
19
26
|
uint256 public constant GIF_INITIAL_VERSION = 3;
|
20
27
|
|
21
|
-
|
22
|
-
string public
|
28
|
+
string public constant SERVICE_NAME_SUFFIX = "Service";
|
29
|
+
string public constant ROLE_NAME_SUFFIX = "_Role";
|
23
30
|
|
31
|
+
ObjectType public immutable DOMAIN;
|
32
|
+
uint256 internal immutable _release;
|
33
|
+
string internal _commitHash;
|
34
|
+
|
35
|
+
string internal _mainTargetName;
|
36
|
+
Str internal _mainTarget;
|
37
|
+
|
38
|
+
// services
|
24
39
|
ObjectType[] internal _serviceDomains;
|
25
40
|
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
41
|
|
29
|
-
|
30
|
-
|
31
|
-
|
42
|
+
// roles
|
43
|
+
RoleId[] internal _roles;
|
44
|
+
mapping(RoleId role => RoleInfo info) internal _roleInfo;
|
45
|
+
|
46
|
+
// targets
|
47
|
+
Str[] internal _targets;
|
48
|
+
mapping(Str target => bool exists) internal _targetExists;
|
49
|
+
mapping(Str target => RoleId roleId) internal _targetRole;
|
50
|
+
mapping(Str target => RoleId[] authorizedRoles) internal _authorizedRoles;
|
51
|
+
mapping(Str target => mapping(RoleId authorizedRole => IAccess.FunctionInfo[] functions)) internal _authorizedFunctions;
|
52
|
+
|
53
|
+
|
54
|
+
constructor(
|
55
|
+
string memory mainTargetName,
|
56
|
+
ObjectType domain,
|
57
|
+
uint8 release,
|
58
|
+
string memory commitHash
|
59
|
+
)
|
60
|
+
{
|
61
|
+
// checks
|
62
|
+
if (bytes(mainTargetName).length == 0) {
|
63
|
+
revert ErrorAuthorizationMainTargetNameEmpty();
|
64
|
+
}
|
65
|
+
|
66
|
+
if (domain == ObjectTypeLib.zero()) {
|
67
|
+
revert ErrorAuthorizationTargetDomainZero();
|
68
|
+
}
|
69
|
+
|
70
|
+
if (release < VersionPartLib.releaseMin().toInt() || release >= VersionPartLib.releaseMax().toInt()) {
|
71
|
+
revert ErrorAuthorizationReleaseInvalid(release);
|
72
|
+
}
|
73
|
+
|
74
|
+
if (bytes(commitHash).length != COMMIT_HASH_LENGTH) {
|
75
|
+
revert ErrorAuthorizationCommitHashInvalid(commitHash);
|
76
|
+
}
|
77
|
+
|
78
|
+
// effects
|
79
|
+
_initializeERC165();
|
80
|
+
_registerInterfaceNotInitializing(type(IServiceAuthorization).interfaceId);
|
81
|
+
|
82
|
+
_mainTargetName = mainTargetName;
|
83
|
+
_mainTarget = StrLib.toStr(mainTargetName);
|
84
|
+
|
85
|
+
DOMAIN = domain;
|
86
|
+
_release = release;
|
87
|
+
_commitHash = commitHash;
|
32
88
|
|
33
|
-
|
34
|
-
|
89
|
+
// setup of roles defined in OpenZeppelin AccessManager
|
90
|
+
_addRole(ADMIN_ROLE(), _toRoleInfo(ADMIN_ROLE(), RoleType.Core, 1, ADMIN_ROLE_NAME()));
|
91
|
+
_addRole(PUBLIC_ROLE(), _toRoleInfo(ADMIN_ROLE(), RoleType.Core, 1, PUBLIC_ROLE_NAME()));
|
92
|
+
|
93
|
+
// defines service domains relevant for the authorization
|
35
94
|
_setupDomains();
|
36
95
|
_setupDomainAuthorizations();
|
37
96
|
}
|
38
97
|
|
98
|
+
/// @inheritdoc IServiceAuthorization
|
99
|
+
function getDomain() public view returns(ObjectType targetDomain) {
|
100
|
+
return DOMAIN;
|
101
|
+
}
|
102
|
+
|
103
|
+
/// @inheritdoc IServiceAuthorization
|
104
|
+
function getRelease() public view returns(VersionPart release) {
|
105
|
+
return VersionPartLib.toVersionPart(_release);
|
106
|
+
}
|
107
|
+
|
108
|
+
/// @inheritdoc IServiceAuthorization
|
39
109
|
function getCommitHash() external view returns(string memory commitHash) {
|
40
|
-
return
|
110
|
+
return _commitHash;
|
41
111
|
}
|
42
112
|
|
43
|
-
|
44
|
-
|
113
|
+
/// @inheritdoc IServiceAuthorization
|
114
|
+
function getMainTargetName() public view returns (string memory name) {
|
115
|
+
return _mainTargetName;
|
45
116
|
}
|
46
117
|
|
118
|
+
/// @inheritdoc IServiceAuthorization
|
119
|
+
function getMainTarget() external view returns(Str target) {
|
120
|
+
return _mainTarget;
|
121
|
+
}
|
122
|
+
|
123
|
+
/// @inheritdoc IServiceAuthorization
|
47
124
|
function getServiceDomains() external view returns(ObjectType[] memory serviceDomains) {
|
48
125
|
return _serviceDomains;
|
49
126
|
}
|
50
127
|
|
51
|
-
|
128
|
+
/// @inheritdoc IServiceAuthorization
|
129
|
+
function getServiceDomain(uint256 idx) external view returns(ObjectType serviceDomain) {
|
52
130
|
return _serviceDomains[idx];
|
53
131
|
}
|
54
132
|
|
133
|
+
/// @inheritdoc IServiceAuthorization
|
134
|
+
function getServiceTarget(ObjectType serviceDomain) public view returns(Str target) {
|
135
|
+
string memory serviceTargetName = ObjectTypeLib.toVersionedName(
|
136
|
+
ObjectTypeLib.toName(serviceDomain),
|
137
|
+
"Service",
|
138
|
+
getRelease());
|
139
|
+
|
140
|
+
return StrLib.toStr(serviceTargetName);
|
141
|
+
}
|
142
|
+
|
143
|
+
/// @inheritdoc IServiceAuthorization
|
144
|
+
function getServiceRole(ObjectType serviceDomain) public view returns(RoleId serviceRoleId) {
|
145
|
+
// special case domain ALL
|
146
|
+
if (serviceDomain == ALL()) {
|
147
|
+
return PUBLIC_ROLE();
|
148
|
+
}
|
149
|
+
|
150
|
+
Str target = getServiceTarget(serviceDomain);
|
151
|
+
return getTargetRole(target);
|
152
|
+
}
|
153
|
+
|
154
|
+
/// @inheritdoc IServiceAuthorization
|
55
155
|
function getServiceAddress(ObjectType serviceDomain) external view returns(address service) {
|
56
156
|
return _serviceAddress[serviceDomain];
|
57
157
|
}
|
58
158
|
|
59
|
-
|
60
|
-
|
159
|
+
/// @inheritdoc IServiceAuthorization
|
160
|
+
function getTargetRole(Str target) public view returns(RoleId roleId) {
|
161
|
+
return _targetRole[target];
|
61
162
|
}
|
62
163
|
|
63
|
-
|
64
|
-
|
164
|
+
/// @inheritdoc IServiceAuthorization
|
165
|
+
function roleExists(RoleId roleId) public view returns(bool exists) {
|
166
|
+
return _roleInfo[roleId].roleType != RoleType.Undefined;
|
65
167
|
}
|
66
168
|
|
67
|
-
|
68
|
-
function
|
69
|
-
return
|
70
|
-
interfaceId == type(IServiceAuthorization).interfaceId ||
|
71
|
-
interfaceId == type(IERC165).interfaceId
|
72
|
-
);
|
169
|
+
/// @inheritdoc IServiceAuthorization
|
170
|
+
function getRoles() external view returns(RoleId[] memory roles) {
|
171
|
+
return _roles;
|
73
172
|
}
|
74
173
|
|
174
|
+
/// @inheritdoc IServiceAuthorization
|
175
|
+
function getRoleInfo(RoleId roleId) external view returns (RoleInfo memory info) {
|
176
|
+
return _roleInfo[roleId];
|
177
|
+
}
|
75
178
|
|
76
|
-
/// @
|
179
|
+
/// @inheritdoc IServiceAuthorization
|
180
|
+
function getRoleName(RoleId roleId) external view returns (string memory roleName) {
|
181
|
+
return _roleInfo[roleId].name.toString();
|
182
|
+
}
|
183
|
+
|
184
|
+
/// @inheritdoc IServiceAuthorization
|
185
|
+
function getAuthorizedRoles(Str target) external view returns(RoleId[] memory roleIds) {
|
186
|
+
return _authorizedRoles[target];
|
187
|
+
}
|
188
|
+
|
189
|
+
/// @inheritdoc IServiceAuthorization
|
190
|
+
function getAuthorizedFunctions(Str target, RoleId roleId) external view returns(FunctionInfo[] memory authorizatedFunctions) {
|
191
|
+
return _authorizedFunctions[target][roleId];
|
192
|
+
}
|
193
|
+
|
194
|
+
/// @dev Defines service domains relevant for the authorization.
|
195
|
+
/// When used for ReleaseAdmin the list defines the services to be registered for the release.
|
196
|
+
/// IMPORTANT: Both the list of the service domains as well as the ordering of the domains is important.
|
197
|
+
/// Trying to register services not in this list or register services in a different order will result in an error.
|
198
|
+
// solhint-disable-next-line no-empty-blocks
|
77
199
|
function _setupDomains() internal virtual {}
|
78
200
|
|
79
201
|
/// @dev Overwrite this function for a specific realease.
|
202
|
+
// solhint-disable-next-line no-empty-blocks
|
80
203
|
function _setupDomainAuthorizations() internal virtual {}
|
81
204
|
|
82
205
|
/// @dev Use this method to to add an authorized domain.
|
83
206
|
/// The services will need to be registered in the order they are added using this function.
|
84
|
-
function
|
207
|
+
function _authorizeServiceDomain(ObjectType serviceDomain, address serviceAddress) internal {
|
85
208
|
_serviceDomains.push(serviceDomain);
|
86
209
|
_serviceAddress[serviceDomain] = serviceAddress;
|
210
|
+
|
211
|
+
string memory serviceName = ObjectTypeLib.toVersionedName(
|
212
|
+
ObjectTypeLib.toName(serviceDomain),
|
213
|
+
SERVICE_NAME_SUFFIX,
|
214
|
+
getRelease());
|
215
|
+
|
216
|
+
_addTargetWithRole(
|
217
|
+
serviceName,
|
218
|
+
RoleIdLib.toServiceRoleId(serviceDomain, getRelease()),
|
219
|
+
string(abi.encodePacked(serviceName, ROLE_NAME_SUFFIX)));
|
220
|
+
}
|
221
|
+
|
222
|
+
|
223
|
+
/// @dev Use this method to to add an authorized target together with its target role.
|
224
|
+
function _addTargetWithRole(
|
225
|
+
string memory targetName,
|
226
|
+
RoleId roleId,
|
227
|
+
string memory roleName
|
228
|
+
)
|
229
|
+
internal
|
230
|
+
{
|
231
|
+
// add target
|
232
|
+
Str target = StrLib.toStr(targetName);
|
233
|
+
_targets.push(target);
|
234
|
+
|
235
|
+
_targetExists[target] = true;
|
236
|
+
|
237
|
+
// link role to target if defined
|
238
|
+
if (roleId != RoleIdLib.zero()) {
|
239
|
+
// add role if new
|
240
|
+
if (!roleExists(roleId)) {
|
241
|
+
_addContractRole(roleId, roleName);
|
242
|
+
}
|
243
|
+
|
244
|
+
// link target to role
|
245
|
+
_targetRole[target] = roleId;
|
246
|
+
}
|
247
|
+
}
|
248
|
+
|
249
|
+
|
250
|
+
/// @dev Add a contract role for the provided role id and name.
|
251
|
+
function _addContractRole(RoleId roleId, string memory name) internal {
|
252
|
+
_addRole(
|
253
|
+
roleId,
|
254
|
+
_toRoleInfo(
|
255
|
+
ADMIN_ROLE(),
|
256
|
+
RoleType.Contract,
|
257
|
+
1,
|
258
|
+
name));
|
87
259
|
}
|
88
260
|
|
261
|
+
|
262
|
+
/// @dev Use this method to to add an authorized role.
|
263
|
+
function _addRole(RoleId roleId, RoleInfo memory info) internal {
|
264
|
+
_roles.push(roleId);
|
265
|
+
_roleInfo[roleId] = info;
|
266
|
+
}
|
267
|
+
|
268
|
+
|
269
|
+
/// @dev creates a role info object from the provided parameters
|
270
|
+
function _toRoleInfo(RoleId adminRoleId, RoleType roleType, uint32 maxMemberCount, string memory name) internal view returns (RoleInfo memory info) {
|
271
|
+
return RoleInfo({
|
272
|
+
name: StrLib.toStr(name),
|
273
|
+
adminRoleId: adminRoleId,
|
274
|
+
roleType: roleType,
|
275
|
+
maxMemberCount: maxMemberCount,
|
276
|
+
createdAt: TimestampLib.current(),
|
277
|
+
pausedAt: TimestampLib.max()});
|
278
|
+
}
|
279
|
+
|
280
|
+
|
89
281
|
/// @dev Use this method to authorize the specified domain to access the service domain.
|
90
|
-
function _authorizeForService(
|
282
|
+
function _authorizeForService(
|
283
|
+
ObjectType serviceDomain,
|
284
|
+
ObjectType authorizedDomain
|
285
|
+
)
|
91
286
|
internal
|
92
287
|
returns (IAccess.FunctionInfo[] storage authorizatedFunctions)
|
93
288
|
{
|
94
|
-
|
95
|
-
|
289
|
+
Str serviceTarget = getServiceTarget(serviceDomain);
|
290
|
+
RoleId authorizedRoleId = getServiceRole(authorizedDomain);
|
291
|
+
|
292
|
+
return _authorizeForTarget(serviceTarget.toString(), authorizedRoleId);
|
96
293
|
}
|
97
294
|
|
295
|
+
|
296
|
+
/// @dev Use this method to authorize the specified role to access the target.
|
297
|
+
function _authorizeForTarget(string memory target, RoleId authorizedRoleId)
|
298
|
+
internal
|
299
|
+
returns (IAccess.FunctionInfo[] storage authorizatedFunctions)
|
300
|
+
{
|
301
|
+
Str targetStr = StrLib.toStr(target);
|
302
|
+
|
303
|
+
// add authorized role if not already added
|
304
|
+
if (_authorizedFunctions[targetStr][authorizedRoleId].length == 0) {
|
305
|
+
_authorizedRoles[targetStr].push(authorizedRoleId);
|
306
|
+
}
|
307
|
+
|
308
|
+
return _authorizedFunctions[targetStr][authorizedRoleId];
|
309
|
+
}
|
310
|
+
|
311
|
+
|
98
312
|
/// @dev Use this method to authorize a specific function authorization
|
99
313
|
function _authorize(IAccess.FunctionInfo[] storage functions, bytes4 selector, string memory name) internal {
|
100
314
|
functions.push(
|
101
315
|
IAccess.FunctionInfo({
|
102
316
|
selector: SelectorLib.toSelector(selector),
|
103
317
|
name: StrLib.toStr(name),
|
104
|
-
createdAt: TimestampLib.
|
318
|
+
createdAt: TimestampLib.current()}));
|
105
319
|
}
|
106
320
|
}
|
@@ -95,6 +95,7 @@ contract BasicDistribution is
|
|
95
95
|
* referral codes need to be unique
|
96
96
|
*/
|
97
97
|
function createReferral(
|
98
|
+
NftId distributorNftId,
|
98
99
|
string memory code,
|
99
100
|
UFixed discountPercentage,
|
100
101
|
uint32 maxReferrals,
|
@@ -104,10 +105,10 @@ contract BasicDistribution is
|
|
104
105
|
external
|
105
106
|
virtual
|
106
107
|
restricted()
|
107
|
-
|
108
|
+
onlyNftOwner(distributorNftId)
|
108
109
|
returns (ReferralId referralId)
|
109
110
|
{
|
110
|
-
|
111
|
+
_checkNftType(distributorNftId, DISTRIBUTOR());
|
111
112
|
return _createReferral(
|
112
113
|
distributorNftId,
|
113
114
|
code,
|
@@ -122,20 +123,18 @@ contract BasicDistribution is
|
|
122
123
|
NftId instanceNftId,
|
123
124
|
IAuthorization authorization,
|
124
125
|
address initialOwner,
|
125
|
-
string memory name
|
126
|
-
address token
|
126
|
+
string memory name
|
127
127
|
)
|
128
128
|
internal
|
129
129
|
virtual
|
130
130
|
onlyInitializing()
|
131
131
|
{
|
132
|
-
|
132
|
+
__Distribution_init(
|
133
133
|
registry,
|
134
134
|
instanceNftId,
|
135
135
|
authorization,
|
136
|
+
false,
|
136
137
|
initialOwner,
|
137
|
-
name
|
138
|
-
token,
|
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
|
+
true,
|
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 {
|
@@ -10,7 +10,7 @@ import {Amount} from "../type/Amount.sol";
|
|
10
10
|
import {COMPONENT, DISTRIBUTION, DISTRIBUTOR} from "../type/ObjectType.sol";
|
11
11
|
import {DistributorType} from "../type/DistributorType.sol";
|
12
12
|
import {Fee} from "../type/Fee.sol";
|
13
|
-
import {NftId
|
13
|
+
import {NftId} from "../type/NftId.sol";
|
14
14
|
import {ReferralId, ReferralStatus, ReferralLib} from "../type/Referral.sol";
|
15
15
|
import {InstanceLinkedComponent} from "../shared/InstanceLinkedComponent.sol";
|
16
16
|
import {Seconds} from "../type/Seconds.sol";
|
@@ -28,17 +28,8 @@ abstract contract Distribution is
|
|
28
28
|
struct DistributionStorage {
|
29
29
|
IComponentService _componentService;
|
30
30
|
IDistributionService _distributionService;
|
31
|
-
mapping(address distributor => NftId distributorNftId) _distributorNftId;
|
32
31
|
}
|
33
32
|
|
34
|
-
modifier onlyDistributor() {
|
35
|
-
if (!isDistributor(msg.sender)) {
|
36
|
-
revert ErrorDistributionNotDistributor(msg.sender);
|
37
|
-
}
|
38
|
-
_;
|
39
|
-
}
|
40
|
-
|
41
|
-
|
42
33
|
function processRenewal(
|
43
34
|
ReferralId referralId,
|
44
35
|
uint256 feeAmount
|
@@ -46,6 +37,7 @@ abstract contract Distribution is
|
|
46
37
|
external
|
47
38
|
virtual
|
48
39
|
restricted()
|
40
|
+
// solhint-disable-next-line no-empty-blocks
|
49
41
|
{
|
50
42
|
// default is no action
|
51
43
|
}
|
@@ -56,7 +48,6 @@ abstract contract Distribution is
|
|
56
48
|
external
|
57
49
|
virtual
|
58
50
|
restricted()
|
59
|
-
onlyDistributor()
|
60
51
|
onlyNftOfType(distributorNftId, DISTRIBUTOR())
|
61
52
|
onlyNftOwner(distributorNftId)
|
62
53
|
returns (Amount withdrawnAmount)
|
@@ -64,29 +55,9 @@ abstract contract Distribution is
|
|
64
55
|
return _withdrawCommission(distributorNftId, amount);
|
65
56
|
}
|
66
57
|
|
67
|
-
|
68
|
-
function isDistributor(address candidate)
|
69
|
-
public
|
70
|
-
view
|
71
|
-
returns (bool)
|
72
|
-
{
|
73
|
-
DistributionStorage storage $ = _getDistributionStorage();
|
74
|
-
return $._distributorNftId[candidate].gtz();
|
75
|
-
}
|
76
|
-
|
77
|
-
|
78
|
-
function getDistributorNftId(address distributor)
|
79
|
-
public
|
80
|
-
view
|
81
|
-
returns (NftId distributorNftId)
|
82
|
-
{
|
83
|
-
DistributionStorage storage $ = _getDistributionStorage();
|
84
|
-
return $._distributorNftId[distributor];
|
85
|
-
}
|
86
|
-
|
87
|
-
|
88
58
|
function getDiscountPercentage(string memory referralCode)
|
89
59
|
external
|
60
|
+
virtual
|
90
61
|
view
|
91
62
|
returns (
|
92
63
|
UFixed discountPercentage,
|
@@ -102,6 +73,7 @@ abstract contract Distribution is
|
|
102
73
|
string memory referralCode
|
103
74
|
)
|
104
75
|
public
|
76
|
+
virtual
|
105
77
|
view
|
106
78
|
returns (ReferralId referralId)
|
107
79
|
{
|
@@ -112,7 +84,7 @@ abstract contract Distribution is
|
|
112
84
|
|
113
85
|
|
114
86
|
function calculateRenewalFeeAmount(
|
115
|
-
ReferralId referralId
|
87
|
+
ReferralId, // referralId
|
116
88
|
uint256 netPremiumAmount
|
117
89
|
)
|
118
90
|
external
|
@@ -126,34 +98,31 @@ abstract contract Distribution is
|
|
126
98
|
|
127
99
|
|
128
100
|
/// @dev Returns true iff the component needs to be called when selling/renewing policis
|
129
|
-
function isVerifying() external pure returns (bool verifying) {
|
101
|
+
function isVerifying() external virtual pure returns (bool verifying) {
|
130
102
|
return true;
|
131
103
|
}
|
132
104
|
|
133
105
|
|
134
|
-
function
|
106
|
+
function __Distribution_init(
|
135
107
|
address registry,
|
136
108
|
NftId productNftId,
|
137
109
|
IAuthorization authorization,
|
110
|
+
bool isInterceptor,
|
138
111
|
address initialOwner,
|
139
|
-
string memory name
|
140
|
-
address token,
|
141
|
-
bytes memory componentData // component specifidc data
|
112
|
+
string memory name
|
142
113
|
)
|
143
114
|
internal
|
144
115
|
virtual
|
145
116
|
onlyInitializing()
|
146
117
|
{
|
147
|
-
|
118
|
+
__InstanceLinkedComponent_init(
|
148
119
|
registry,
|
149
120
|
productNftId,
|
150
121
|
name,
|
151
|
-
token,
|
152
122
|
DISTRIBUTION(),
|
153
123
|
authorization,
|
154
|
-
|
155
|
-
initialOwner
|
156
|
-
componentData);
|
124
|
+
isInterceptor,
|
125
|
+
initialOwner);
|
157
126
|
|
158
127
|
DistributionStorage storage $ = _getDistributionStorage();
|
159
128
|
$._distributionService = IDistributionService(_getServiceAddress(DISTRIBUTION()));
|
@@ -215,16 +184,11 @@ abstract contract Distribution is
|
|
215
184
|
returns(NftId distributorNftId)
|
216
185
|
{
|
217
186
|
DistributionStorage storage $ = _getDistributionStorage();
|
218
|
-
if($._distributorNftId[distributor].gtz()) {
|
219
|
-
revert ErrorDistributionAlreadyDistributor(distributor, $._distributorNftId[distributor]);
|
220
|
-
}
|
221
187
|
|
222
188
|
distributorNftId = $._distributionService.createDistributor(
|
223
189
|
distributor,
|
224
190
|
distributorType,
|
225
191
|
data);
|
226
|
-
|
227
|
-
$._distributorNftId[distributor] = distributorNftId;
|
228
192
|
}
|
229
193
|
|
230
194
|
/// @dev Uptates the distributor type for the specified distributor.
|
@@ -273,14 +237,6 @@ abstract contract Distribution is
|
|
273
237
|
return _getDistributionStorage()._distributionService.withdrawCommission(distributorNftId, amount);
|
274
238
|
}
|
275
239
|
|
276
|
-
function _nftTransferFrom(address from, address to, uint256 tokenId, address operator) internal virtual override {
|
277
|
-
// keep track of distributor nft owner
|
278
|
-
emit LogDistributorUpdated(to, operator);
|
279
|
-
DistributionStorage storage $ = _getDistributionStorage();
|
280
|
-
$._distributorNftId[from] = NftIdLib.zero();
|
281
|
-
$._distributorNftId[to] = NftIdLib.toNftId(tokenId);
|
282
|
-
}
|
283
|
-
|
284
240
|
function _getDistributionStorage() private pure returns (DistributionStorage storage $) {
|
285
241
|
assembly {
|
286
242
|
$.slot := DISTRIBUTION_STORAGE_LOCATION_V1
|