@etherisc/gif-next 0.0.2-e876b87-961 → 0.0.2-e8a628e-326
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 +90 -7
- package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.dbg.json +4 -0
- package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +1075 -0
- package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +4 -0
- package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +790 -0
- package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.dbg.json +4 -0
- package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.json +843 -0
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +1 -1
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +640 -269
- package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.dbg.json +4 -0
- package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.json +1289 -0
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +1 -1
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +202 -5
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +409 -33
- 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 +525 -213
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +179 -19
- 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 +132 -290
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +1 -1
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +381 -46
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +64 -163
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +585 -231
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +170 -78
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +44 -125
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +401 -78
- 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 +160 -214
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +380 -45
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +308 -327
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +380 -45
- 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 +215 -247
- package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +805 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +95 -155
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +278 -223
- package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +805 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +944 -454
- package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +805 -0
- package/artifacts/contracts/instance/BaseStore.sol/BaseStore.dbg.json +4 -0
- package/artifacts/contracts/instance/BaseStore.sol/BaseStore.json +498 -0
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +1 -1
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +193 -45
- package/artifacts/contracts/instance/IBaseStore.sol/IBaseStore.dbg.json +4 -0
- package/artifacts/contracts/instance/IBaseStore.sol/IBaseStore.json +470 -0
- package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstance.sol/IInstance.json +541 -50
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +407 -17
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +606 -106
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +990 -359
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +337 -61
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +1069 -481
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +424 -81
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +102 -52
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +648 -948
- package/artifacts/contracts/instance/ProductStore.sol/ProductStore.dbg.json +4 -0
- package/artifacts/contracts/instance/ProductStore.sol/ProductStore.json +1759 -0
- package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +4 -0
- package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +866 -0
- 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 +16 -5
- package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.dbg.json +4 -0
- package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.json +168 -0
- 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 +83 -165
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +1 -1
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +379 -47
- 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 +48 -64
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +56 -3
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +67 -101
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +157 -81
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +134 -46
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +106 -163
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +380 -45
- package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleService.sol/BundleService.json +317 -344
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +125 -93
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +219 -146
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +63 -118
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +380 -214
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
- package/artifacts/contracts/pool/Pool.sol/Pool.json +76 -149
- package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +4 -0
- package/artifacts/contracts/pool/PoolLib.sol/PoolLib.json +522 -0
- package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolService.sol/PoolService.json +621 -413
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +168 -68
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +327 -62
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +123 -43
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +199 -213
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +380 -45
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +294 -189
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +134 -86
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +268 -10
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +181 -19
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +167 -56
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +77 -3
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +175 -171
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +1 -1
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.json +258 -22
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +296 -194
- package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.dbg.json +4 -0
- package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.json +783 -0
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +150 -78
- package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
- package/artifacts/contracts/product/PricingService.sol/PricingService.json +139 -114
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +112 -60
- package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
- package/artifacts/contracts/product/Product.sol/Product.json +193 -207
- package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +1 -1
- package/artifacts/contracts/product/RiskService.sol/RiskService.json +338 -87
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +123 -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 +78 -19
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +56 -3
- package/artifacts/contracts/registry/IRelease.sol/IRelease.dbg.json +4 -0
- package/artifacts/contracts/registry/IRelease.sol/IRelease.json +24 -0
- 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 +116 -57
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +727 -453
- package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.dbg.json +4 -0
- package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.json +1074 -0
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +89 -37
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +99 -39
- package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +4 -0
- package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +2152 -0
- 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 +386 -64
- 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 +120 -60
- package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
- package/artifacts/contracts/shared/Component.sol/Component.json +66 -86
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +308 -542
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +136 -84
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +1 -1
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +544 -4
- package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +4 -0
- package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.json +24 -0
- package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +4 -0
- package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.json +30 -0
- package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.dbg.json +4 -0
- package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.json +40 -0
- package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponent.sol/IComponent.json +48 -50
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +171 -356
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +48 -64
- package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
- package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.json +43 -6
- package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +19 -0
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +139 -1
- package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
- package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
- package/artifacts/contracts/shared/IService.sol/IService.json +56 -3
- package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +1 -1
- package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +2 -2
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +66 -100
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +43 -6
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
- package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +1 -1
- package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +2 -2
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +21 -2
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +2 -2
- package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
- package/artifacts/contracts/shared/Registerable.sol/Registerable.json +137 -62
- 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 +51 -11
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +289 -112
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +4 -0
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +484 -0
- package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +70 -30
- package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
- package/artifacts/contracts/staking/IStaking.sol/IStaking.json +1446 -154
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +214 -110
- 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 +1583 -286
- package/artifacts/contracts/staking/StakingLib.sol/StakingLib.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingLib.sol/StakingLib.json +470 -0
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +140 -69
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +294 -177
- package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingService.sol/StakingService.json +257 -162
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +102 -46
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +1632 -818
- 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 +160 -88
- 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 +11 -11
- 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 +94 -38
- 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 +4 -0
- package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.json +33 -0
- package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/NftId.sol/NftIdLib.json +23 -4
- 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 +33 -31
- 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 +69 -7
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +42 -157
- 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/SelectorLib.json +21 -2
- package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +1 -1
- package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +2 -2
- package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/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 +61 -37
- package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
- package/artifacts/contracts/type/Version.sol/VersionLib.json +2 -21
- package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
- package/artifacts/contracts/type/Version.sol/VersionPartLib.json +101 -2
- 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 +79 -25
- 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 +274 -0
- package/contracts/accounting/AccountingServiceManager.sol +38 -0
- package/contracts/accounting/IAccountingService.sol +47 -0
- package/contracts/authorization/AccessAdmin.sol +429 -245
- package/contracts/authorization/AccessAdminLib.sol +396 -0
- package/contracts/authorization/AccessManagerCloneable.sol +146 -4
- package/contracts/authorization/Authorization.sol +142 -262
- package/contracts/authorization/IAccess.sol +25 -7
- package/contracts/authorization/IAccessAdmin.sol +87 -80
- package/contracts/authorization/IAuthorization.sol +9 -43
- package/contracts/authorization/IServiceAuthorization.sol +55 -17
- package/contracts/authorization/ServiceAuthorization.sol +248 -34
- package/contracts/distribution/BasicDistribution.sol +18 -16
- package/contracts/distribution/BasicDistributionAuthorization.sol +30 -10
- package/contracts/distribution/Distribution.sol +43 -81
- package/contracts/distribution/DistributionService.sol +192 -99
- package/contracts/distribution/DistributionServiceManager.sol +1 -1
- package/contracts/distribution/IDistributionComponent.sol +3 -10
- package/contracts/distribution/IDistributionService.sol +38 -24
- package/contracts/examples/fire/FirePool.sol +21 -8
- package/contracts/examples/fire/FirePoolAuthorization.sol +2 -1
- package/contracts/examples/fire/FireProduct.sol +38 -20
- package/contracts/examples/fire/FireProductAuthorization.sol +2 -1
- package/contracts/examples/unpermissioned/SimpleDistribution.sol +39 -8
- package/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol +28 -0
- package/contracts/examples/unpermissioned/SimpleOracle.sol +4 -8
- package/contracts/examples/unpermissioned/SimplePool.sol +32 -6
- package/contracts/examples/unpermissioned/SimplePoolAuthorization.sol +28 -0
- package/contracts/examples/unpermissioned/SimpleProduct.sol +132 -46
- package/contracts/examples/unpermissioned/SimpleProductAuthorization.sol +28 -0
- package/contracts/instance/BaseStore.sol +97 -0
- package/contracts/instance/BundleSet.sol +42 -38
- package/contracts/instance/IBaseStore.sol +43 -0
- package/contracts/instance/IInstance.sol +109 -19
- package/contracts/instance/IInstanceService.sol +61 -14
- package/contracts/instance/Instance.sol +191 -65
- package/contracts/instance/InstanceAdmin.sol +271 -171
- package/contracts/instance/InstanceAuthorizationV3.sol +139 -58
- package/contracts/instance/InstanceReader.sol +451 -312
- package/contracts/instance/InstanceService.sol +315 -214
- package/contracts/instance/InstanceServiceManager.sol +1 -1
- package/contracts/instance/InstanceStore.sol +14 -30
- package/contracts/instance/ProductStore.sol +110 -0
- package/contracts/instance/RiskSet.sol +126 -0
- package/contracts/instance/TargetNames.sol +10 -0
- package/contracts/instance/base/BalanceStore.sol +4 -6
- package/contracts/instance/base/ObjectCounter.sol +1 -2
- package/contracts/instance/base/ObjectLifecycle.sol +6 -8
- package/contracts/instance/base/ObjectSet.sol +31 -33
- package/contracts/instance/base/ObjectSetHelperLib.sol +30 -0
- package/contracts/instance/module/IBundle.sol +6 -5
- package/contracts/instance/module/IComponents.sol +20 -9
- package/contracts/instance/module/IDistribution.sol +21 -8
- package/contracts/instance/module/IPolicy.sol +28 -7
- package/contracts/instance/module/IRisk.sol +5 -0
- package/contracts/oracle/BasicOracle.sol +2 -4
- package/contracts/oracle/BasicOracleAuthorization.sol +15 -8
- package/contracts/oracle/IOracle.sol +9 -4
- package/contracts/oracle/Oracle.sol +3 -5
- package/contracts/oracle/OracleService.sol +98 -79
- package/contracts/oracle/OracleServiceManager.sol +1 -1
- package/contracts/pool/BasicPool.sol +25 -17
- package/contracts/pool/BasicPoolAuthorization.sol +34 -10
- package/contracts/pool/BundleService.sol +75 -182
- package/contracts/pool/BundleServiceManager.sol +1 -1
- package/contracts/pool/IBundleService.sol +28 -55
- package/contracts/pool/IPoolComponent.sol +1 -7
- package/contracts/pool/IPoolService.sol +65 -62
- package/contracts/pool/Pool.sol +109 -111
- package/contracts/pool/PoolLib.sol +341 -0
- package/contracts/pool/PoolService.sol +299 -229
- package/contracts/pool/PoolServiceManager.sol +1 -1
- package/contracts/product/ApplicationService.sol +93 -25
- package/contracts/product/ApplicationServiceManager.sol +1 -1
- package/contracts/product/BasicProduct.sol +9 -13
- package/contracts/product/BasicProductAuthorization.sol +32 -11
- package/contracts/product/ClaimService.sol +221 -207
- package/contracts/product/ClaimServiceManager.sol +1 -1
- package/contracts/product/IApplicationService.sol +28 -3
- package/contracts/product/IClaimService.sol +18 -5
- package/contracts/product/IPolicyService.sol +34 -12
- package/contracts/product/IPricingService.sol +1 -0
- package/contracts/product/IProductComponent.sol +4 -1
- package/contracts/product/IRiskService.sol +25 -10
- package/contracts/product/PolicyService.sol +258 -304
- package/contracts/product/PolicyServiceLib.sol +139 -0
- package/contracts/product/PolicyServiceManager.sol +1 -1
- package/contracts/product/PricingService.sol +52 -46
- package/contracts/product/PricingServiceManager.sol +3 -3
- package/contracts/product/Product.sol +104 -66
- package/contracts/product/RiskService.sol +128 -34
- package/contracts/product/RiskServiceManager.sol +1 -1
- package/contracts/registry/ChainNft.sol +4 -2
- package/contracts/registry/IRegistry.sol +25 -24
- package/contracts/registry/IRelease.sol +29 -0
- package/contracts/registry/Registry.sol +31 -12
- package/contracts/registry/RegistryAdmin.sol +107 -364
- package/contracts/registry/RegistryAuthorization.sol +336 -0
- package/contracts/registry/RegistryService.sol +4 -4
- package/contracts/registry/RegistryServiceManager.sol +1 -1
- package/contracts/registry/ReleaseAdmin.sol +195 -0
- package/contracts/registry/ReleaseLifecycle.sol +2 -0
- package/contracts/registry/ReleaseRegistry.sol +158 -134
- package/contracts/registry/ServiceAuthorizationV3.sol +200 -52
- package/contracts/registry/TokenRegistry.sol +61 -59
- package/contracts/shared/Component.sol +56 -113
- package/contracts/shared/ComponentService.sol +392 -406
- package/contracts/shared/ComponentServiceManager.sol +1 -1
- package/contracts/shared/ContractLib.sol +277 -3
- package/contracts/shared/IComponent.sol +2 -18
- package/contracts/shared/IComponentService.sol +28 -38
- package/contracts/shared/IInstanceLinkedComponent.sol +0 -11
- package/contracts/shared/IKeyValueStore.sol +9 -1
- package/contracts/shared/INftOwnable.sol +2 -0
- package/contracts/shared/IRegisterable.sol +15 -5
- package/contracts/shared/IService.sol +3 -5
- package/contracts/shared/InitializableERC165.sol +9 -1
- package/contracts/shared/InstanceLinkedComponent.sol +8 -27
- package/contracts/shared/KeyValueStore.sol +3 -3
- package/contracts/shared/NftOwnable.sol +8 -6
- package/contracts/shared/PolicyHolder.sol +4 -3
- package/contracts/shared/Registerable.sol +41 -20
- package/contracts/shared/RegistryLinked.sol +7 -13
- package/contracts/shared/Service.sol +13 -30
- package/contracts/shared/TokenHandler.sol +264 -105
- package/contracts/shared/TokenHandlerDeployerLib.sol +10 -2
- package/contracts/staking/IStaking.sol +271 -72
- package/contracts/staking/IStakingService.sol +45 -75
- package/contracts/staking/ITargetLimitHandler.sol +17 -0
- package/contracts/staking/Staking.sol +521 -220
- package/contracts/staking/{StakeManagerLib.sol → StakingLib.sol} +55 -84
- package/contracts/staking/StakingManager.sol +4 -3
- package/contracts/staking/StakingReader.sol +58 -77
- package/contracts/staking/StakingService.sol +62 -148
- package/contracts/staking/StakingServiceManager.sol +6 -4
- package/contracts/staking/StakingStore.sol +1093 -330
- 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/Key32.sol +2 -2
- package/contracts/type/Key32Set.sol +62 -0
- package/contracts/type/NftId.sol +6 -0
- package/contracts/type/ObjectType.sol +69 -38
- package/contracts/type/RiskId.sol +26 -8
- package/contracts/type/RoleId.sol +63 -45
- package/contracts/type/Seconds.sol +19 -0
- package/contracts/type/Selector.sol +5 -0
- package/contracts/type/String.sol +12 -0
- package/contracts/type/Timestamp.sol +4 -7
- package/contracts/type/UFixed.sol +35 -127
- package/contracts/type/Version.sol +54 -5
- 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 +4 -4
- package/artifacts/contracts/authorization/ReleaseAccessManager.sol/ReleaseAccessManager.dbg.json +0 -4
- package/artifacts/contracts/authorization/ReleaseAccessManager.sol/ReleaseAccessManager.json +0 -1196
- package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +0 -4
- package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +0 -129
- package/artifacts/contracts/shared/ComponentServiceHelperLib.sol/ComponentServiceHelperLib.dbg.json +0 -4
- package/artifacts/contracts/shared/ComponentServiceHelperLib.sol/ComponentServiceHelperLib.json +0 -206
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +0 -4
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +0 -474
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +0 -4
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +0 -440
- package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +0 -4
- package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +0 -205
- package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +0 -4
- package/artifacts/contracts/type/UFixed.sol/MathLib.json +0 -16
- package/contracts/authorization/ReleaseAccessManager.sol +0 -38
- package/contracts/instance/module/IAccess.sol +0 -46
- package/contracts/shared/ComponentServiceHelperLib.sol +0 -118
- package/contracts/shared/ComponentVerifyingService.sol +0 -126
- package/contracts/staking/StakingLifecycle.sol +0 -23
@@ -1,289 +1,169 @@
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
2
2
|
pragma solidity ^0.8.20;
|
3
3
|
|
4
|
-
import {IAccess} from "./IAccess.sol";
|
5
4
|
import {IAuthorization} from "./IAuthorization.sol";
|
6
|
-
import {ObjectType, ObjectTypeLib} from "../type/ObjectType.sol";
|
7
|
-
import {RoleId, RoleIdLib, ADMIN_ROLE} from "../type/RoleId.sol";
|
8
|
-
import {SelectorLib} from "../type/Selector.sol";
|
9
|
-
import {Str, StrLib} from "../type/String.sol";
|
10
|
-
import {TimestampLib} from "../type/Timestamp.sol";
|
11
|
-
import {VersionPart, VersionPartLib} from "../type/Version.sol";
|
12
|
-
|
13
|
-
contract Authorization
|
14
|
-
is IAuthorization
|
15
|
-
{
|
16
|
-
uint256 public constant GIF_RELEASE = 3;
|
17
|
-
|
18
|
-
string public constant ROLE_NAME_SUFFIX = "Role";
|
19
|
-
string public constant SERVICE_ROLE_NAME_SUFFIX = "ServiceRole";
|
20
|
-
|
21
|
-
ObjectType[] internal _serviceDomains;
|
22
|
-
mapping(ObjectType domain => Str target) internal _serviceTarget;
|
23
|
-
|
24
|
-
string internal _mainTargetName = "Component";
|
25
|
-
Str[] internal _targets;
|
26
5
|
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
mapping(RoleId role => RoleInfo info) internal _roleInfo;
|
32
|
-
|
33
|
-
mapping(Str target => RoleId[] authorizedRoles) internal _authorizedRoles;
|
34
|
-
mapping(Str target => mapping(RoleId authorizedRole => IAccess.FunctionInfo[] functions)) internal _authorizedFunctions;
|
6
|
+
import {ObjectType} from "../type/ObjectType.sol";
|
7
|
+
import {RoleId, RoleIdLib} from "../type/RoleId.sol";
|
8
|
+
import {ServiceAuthorization} from "../authorization/ServiceAuthorization.sol";
|
9
|
+
import {Str, StrLib} from "../type/String.sol";
|
35
10
|
|
36
11
|
|
37
|
-
|
38
|
-
|
12
|
+
contract Authorization is
|
13
|
+
ServiceAuthorization,
|
14
|
+
IAuthorization
|
15
|
+
{
|
39
16
|
|
17
|
+
// MUST match with AccessAdminLib.COMPONENT_ROLE_MIN
|
18
|
+
uint64 public constant COMPONENT_ROLE_MIN = 110000;
|
19
|
+
|
20
|
+
uint64 internal _nextGifContractRoleId;
|
21
|
+
|
22
|
+
string internal _tokenHandlerName = "ComponentTh";
|
23
|
+
Str internal _tokenHandlerTarget;
|
24
|
+
|
25
|
+
|
26
|
+
constructor(
|
27
|
+
string memory mainTargetName,
|
28
|
+
ObjectType domain,
|
29
|
+
uint8 release,
|
30
|
+
string memory commitHash,
|
31
|
+
bool isComponent,
|
32
|
+
bool includeTokenHandler
|
33
|
+
)
|
34
|
+
ServiceAuthorization(mainTargetName, domain, release, commitHash)
|
35
|
+
{
|
36
|
+
_nextGifContractRoleId = 10;
|
37
|
+
|
38
|
+
// setup main target
|
39
|
+
if (isComponent) {
|
40
|
+
if (domain.eqz()) {
|
41
|
+
revert ErrorAuthorizationTargetDomainZero();
|
42
|
+
}
|
43
|
+
|
44
|
+
RoleId mainRoleId = RoleIdLib.toRoleId(COMPONENT_ROLE_MIN);
|
45
|
+
string memory mainRolName = _toTargetRoleName(_mainTargetName);
|
46
|
+
|
47
|
+
_addTargetWithRole(
|
48
|
+
_mainTargetName,
|
49
|
+
mainRoleId,
|
50
|
+
mainRolName);
|
51
|
+
} else {
|
52
|
+
_addGifTarget(_mainTargetName);
|
53
|
+
}
|
54
|
+
|
55
|
+
// setup use case specific parts
|
40
56
|
_setupServiceTargets();
|
41
|
-
_setupRoles();
|
42
|
-
_setupTargets();
|
43
|
-
_setupTargetAuthorizations();
|
57
|
+
_setupRoles(); // not including main target role
|
58
|
+
_setupTargets(); // not including main target (and token handler target)
|
59
|
+
_setupTargetAuthorizations(); // not including token handler target
|
60
|
+
|
61
|
+
// setup component token handler
|
62
|
+
if (includeTokenHandler) {
|
63
|
+
_tokenHandlerName = string(abi.encodePacked(mainTargetName, "Th"));
|
64
|
+
_tokenHandlerTarget = StrLib.toStr(_tokenHandlerName);
|
65
|
+
_addTarget(_tokenHandlerName);
|
66
|
+
_setupTokenHandlerAuthorizations();
|
67
|
+
}
|
68
|
+
|
69
|
+
_registerInterfaceNotInitializing(type(IAuthorization).interfaceId);
|
44
70
|
}
|
45
71
|
|
46
|
-
function getServiceDomains() external view returns(ObjectType[] memory serviceDomains) {
|
47
|
-
return _serviceDomains;
|
48
|
-
}
|
49
|
-
|
50
|
-
function getServiceRole(ObjectType serviceDomain) public virtual pure returns (RoleId serviceRoleId) {
|
51
|
-
return RoleIdLib.roleForTypeAndVersion(
|
52
|
-
serviceDomain,
|
53
|
-
getRelease());
|
54
|
-
}
|
55
72
|
|
56
|
-
|
57
|
-
|
58
|
-
|
73
|
+
function getTokenHandlerName() public view returns(string memory) {
|
74
|
+
return _tokenHandlerName;
|
75
|
+
}
|
59
76
|
|
60
|
-
|
61
|
-
|
62
|
-
|
77
|
+
function getTokenHandlerTarget() public view returns(Str) {
|
78
|
+
return _tokenHandlerTarget;
|
79
|
+
}
|
63
80
|
|
64
|
-
|
65
|
-
|
66
|
-
|
81
|
+
function getTarget(string memory targetName) public pure returns(Str target) {
|
82
|
+
return StrLib.toStr(targetName);
|
83
|
+
}
|
67
84
|
|
68
|
-
|
69
|
-
|
70
|
-
|
85
|
+
function getTargets() external view returns(Str[] memory targets) {
|
86
|
+
return _targets;
|
87
|
+
}
|
71
88
|
|
72
|
-
|
73
|
-
|
74
|
-
|
89
|
+
function targetExists(Str target) external view returns(bool exists) {
|
90
|
+
return target == _mainTarget || _targetExists[target];
|
91
|
+
}
|
75
92
|
|
76
|
-
|
77
|
-
|
78
|
-
|
93
|
+
/// @dev Sets up the relevant service targets for the component.
|
94
|
+
/// Overwrite this function for use case specific authorizations.
|
95
|
+
// solhint-disable-next-line no-empty-blocks
|
96
|
+
function _setupServiceTargets() internal virtual { }
|
97
|
+
|
98
|
+
/// @dev Sets up the relevant (non-service) targets for the component.
|
99
|
+
/// Overwrite this function for use case specific authorizations.
|
100
|
+
// solhint-disable-next-line no-empty-blocks
|
101
|
+
function _setupTargets() internal virtual { }
|
102
|
+
|
103
|
+
/// @dev Sets up the relevant roles for the component.
|
104
|
+
/// Overwrite this function for use case specific authorizations.
|
105
|
+
// solhint-disable-next-line no-empty-blocks
|
106
|
+
function _setupRoles() internal virtual {}
|
107
|
+
|
108
|
+
/// @dev Sets up the relevant component's token handler authorizations.
|
109
|
+
/// Overwrite this function for use case specific authorizations.
|
110
|
+
// solhint-disable-next-line no-empty-blocks
|
111
|
+
function _setupTokenHandlerAuthorizations() internal virtual {}
|
112
|
+
|
113
|
+
/// @dev Sets up the relevant target authorizations for the component.
|
114
|
+
/// Overwrite this function for use case specific authorizations.
|
115
|
+
// solhint-disable-next-line no-empty-blocks
|
116
|
+
function _setupTargetAuthorizations() internal virtual {}
|
117
|
+
|
118
|
+
|
119
|
+
/// @dev Add a contract role for the provided role id and name.
|
120
|
+
function _addCustomRole(RoleId roleId, RoleId adminRoleId, uint32 maxMemberCount, string memory name) internal {
|
121
|
+
_addRole(
|
122
|
+
roleId,
|
123
|
+
_toRoleInfo(
|
124
|
+
adminRoleId,
|
125
|
+
RoleType.Custom,
|
126
|
+
maxMemberCount,
|
127
|
+
name));
|
128
|
+
}
|
79
129
|
|
80
|
-
|
81
|
-
|
82
|
-
|
130
|
+
/// @dev Add a gif target with its corresponding contract role
|
131
|
+
function _addGifTarget(string memory contractName) internal {
|
132
|
+
RoleId contractRoleId = RoleIdLib.toRoleId(_nextGifContractRoleId++);
|
133
|
+
string memory contractRoleName = string(
|
134
|
+
abi.encodePacked(
|
135
|
+
contractName,
|
136
|
+
ROLE_NAME_SUFFIX));
|
137
|
+
|
138
|
+
_addTargetWithRole(
|
139
|
+
contractName,
|
140
|
+
contractRoleId,
|
141
|
+
contractRoleName);
|
142
|
+
}
|
83
143
|
|
84
|
-
function getTargets() external view returns(Str[] memory targets) {
|
85
|
-
return _targets;
|
86
|
-
}
|
87
144
|
|
88
|
-
|
89
|
-
|
90
|
-
|
145
|
+
/// @dev Use this method to to add an authorized target.
|
146
|
+
function _addTarget(string memory name) internal {
|
147
|
+
_addTargetWithRole(name, RoleIdLib.zero(), "");
|
148
|
+
}
|
91
149
|
|
92
|
-
function getTargetRole(Str target) external view returns(RoleId roleId) {
|
93
|
-
return _targetRole[target];
|
94
|
-
}
|
95
150
|
|
96
|
-
|
97
|
-
|
98
|
-
|
151
|
+
/// @dev Role id for targets registry, staking and instance
|
152
|
+
function _toTargetRoleId(ObjectType targetDomain)
|
153
|
+
internal
|
154
|
+
pure
|
155
|
+
returns (RoleId targetRoleId)
|
156
|
+
{
|
157
|
+
return RoleIdLib.toRoleId(100 * targetDomain.toInt());
|
158
|
+
}
|
99
159
|
|
100
|
-
function getAuthorizedFunctions(Str target, RoleId roleId) external view returns(IAccess.FunctionInfo[] memory authorizatedFunctions) {
|
101
|
-
return _authorizedFunctions[target][roleId];
|
102
|
-
}
|
103
160
|
|
104
|
-
|
105
|
-
|
161
|
+
/// @dev Returns the role name for the specified target name
|
162
|
+
function _toTargetRoleName(string memory targetName) internal pure returns (string memory) {
|
163
|
+
return string(
|
164
|
+
abi.encodePacked(
|
165
|
+
targetName,
|
166
|
+
ROLE_NAME_SUFFIX));
|
106
167
|
}
|
107
|
-
|
108
|
-
/// @dev Sets up the relevant service targets for the component.
|
109
|
-
/// Overwrite this function for a specific component.
|
110
|
-
function _setupServiceTargets() internal virtual { }
|
111
|
-
|
112
|
-
/// @dev Sets up the relevant (non-service) targets for the component.
|
113
|
-
/// Overwrite this function for a specific component.
|
114
|
-
function _setupTargets() internal virtual { }
|
115
|
-
|
116
|
-
/// @dev Sets up the relevant roles for the component.
|
117
|
-
/// Overwrite this function for a specific component.
|
118
|
-
function _setupRoles() internal virtual {}
|
119
|
-
|
120
|
-
/// @dev Sets up the relevant target authorizations for the component.
|
121
|
-
/// Overwrite this function for a specific realease.
|
122
|
-
function _setupTargetAuthorizations() internal virtual {}
|
123
|
-
|
124
|
-
|
125
|
-
/// @dev Add the service target role for the specified service domain
|
126
|
-
function _addServiceTargetWithRole(ObjectType serviceDomain) internal {
|
127
|
-
// add service domain
|
128
|
-
_serviceDomains.push(serviceDomain);
|
129
|
-
|
130
|
-
// get versioned target name
|
131
|
-
string memory serviceTargetName = ObjectTypeLib.toVersionedName(
|
132
|
-
ObjectTypeLib.toName(serviceDomain),
|
133
|
-
"Service",
|
134
|
-
getRelease().toInt());
|
135
|
-
|
136
|
-
_serviceTarget[serviceDomain] = StrLib.toStr(serviceTargetName);
|
137
|
-
|
138
|
-
RoleId serviceRoleId = getServiceRole(serviceDomain);
|
139
|
-
string memory serviceRoleName = ObjectTypeLib.toVersionedName(
|
140
|
-
ObjectTypeLib.toName(serviceDomain),
|
141
|
-
"ServiceRole",
|
142
|
-
getRelease().toInt());
|
143
|
-
|
144
|
-
_addTargetWithRole(
|
145
|
-
serviceTargetName,
|
146
|
-
serviceRoleId,
|
147
|
-
serviceRoleName);
|
148
|
-
}
|
149
|
-
|
150
|
-
|
151
|
-
/// @dev Use this method to to add an authorized role.
|
152
|
-
function _addRole(RoleId roleId, RoleInfo memory info) internal {
|
153
|
-
_roles.push(roleId);
|
154
|
-
_roleInfo[roleId] = info;
|
155
|
-
}
|
156
|
-
|
157
|
-
|
158
|
-
/// @dev Add a contract role for the provided role id and name.
|
159
|
-
function _addContractRole(RoleId roleId, string memory name) internal {
|
160
|
-
_addRole(
|
161
|
-
roleId,
|
162
|
-
_toRoleInfo(
|
163
|
-
ADMIN_ROLE(),
|
164
|
-
RoleType.Contract,
|
165
|
-
1,
|
166
|
-
name));
|
167
|
-
}
|
168
|
-
|
169
|
-
|
170
|
-
/// @dev Add the versioned service role for the specified service domain
|
171
|
-
function _addServiceRole(ObjectType serviceDomain) internal {
|
172
|
-
_addContractRole(
|
173
|
-
getServiceRole(serviceDomain),
|
174
|
-
ObjectTypeLib.toVersionedName(
|
175
|
-
ObjectTypeLib.toName(serviceDomain),
|
176
|
-
SERVICE_ROLE_NAME_SUFFIX,
|
177
|
-
getRelease().toInt()));
|
178
|
-
}
|
179
|
-
|
180
|
-
|
181
|
-
function _addComponentTargetWithRole(ObjectType componentType) internal {
|
182
|
-
_addComponentTargetWithRole(componentType, 0);
|
183
|
-
}
|
184
|
-
|
185
|
-
|
186
|
-
function _addComponentTargetWithRole(ObjectType componentType, uint64 index) internal {
|
187
|
-
_addTargetWithRole(
|
188
|
-
getTargetName(),
|
189
|
-
RoleIdLib.toComponentRoleId(componentType, index),
|
190
|
-
_toTargetRoleName(
|
191
|
-
getTargetName()));
|
192
|
-
}
|
193
|
-
|
194
|
-
|
195
|
-
/// @dev Add a contract role for the provided role id and name.
|
196
|
-
function _addCustomRole(RoleId roleId, RoleId adminRoleId, uint32 maxMemberCount, string memory name) internal {
|
197
|
-
_addRole(
|
198
|
-
roleId,
|
199
|
-
_toRoleInfo(
|
200
|
-
adminRoleId,
|
201
|
-
RoleType.Custom,
|
202
|
-
maxMemberCount,
|
203
|
-
name));
|
204
|
-
}
|
205
|
-
|
206
|
-
/// @dev Use this method to to add an authorized target together with its target role.
|
207
|
-
function _addTargetWithRole(
|
208
|
-
string memory targetName,
|
209
|
-
RoleId roleId,
|
210
|
-
string memory roleName
|
211
|
-
)
|
212
|
-
internal
|
213
|
-
{
|
214
|
-
// add target
|
215
|
-
Str target = StrLib.toStr(targetName);
|
216
|
-
_targets.push(target);
|
217
|
-
|
218
|
-
_targetExists[target] = true;
|
219
|
-
|
220
|
-
// link role to target if defined
|
221
|
-
if (roleId != RoleIdLib.zero()) {
|
222
|
-
// add role if new
|
223
|
-
if (!roleExists(roleId)) {
|
224
|
-
_addContractRole(roleId, roleName);
|
225
|
-
}
|
226
|
-
|
227
|
-
// link target to role
|
228
|
-
_targetRole[target] = roleId;
|
229
|
-
}
|
230
|
-
}
|
231
|
-
|
232
|
-
|
233
|
-
/// @dev Use this method to to add an authorized target.
|
234
|
-
function _addTarget(string memory name) internal {
|
235
|
-
_addTargetWithRole(name, RoleIdLib.zero(), "");
|
236
|
-
}
|
237
|
-
|
238
|
-
|
239
|
-
/// @dev Use this method to authorize the specified role to access the target.
|
240
|
-
function _authorizeForTarget(string memory target, RoleId authorizedRoleId)
|
241
|
-
internal
|
242
|
-
returns (IAccess.FunctionInfo[] storage authorizatedFunctions)
|
243
|
-
{
|
244
|
-
Str targetStr = StrLib.toStr(target);
|
245
|
-
_authorizedRoles[targetStr].push(authorizedRoleId);
|
246
|
-
return _authorizedFunctions[targetStr][authorizedRoleId];
|
247
|
-
}
|
248
|
-
|
249
|
-
|
250
|
-
/// @dev Use this method to authorize a specific function authorization
|
251
|
-
function _authorize(IAccess.FunctionInfo[] storage functions, bytes4 selector, string memory name) internal {
|
252
|
-
functions.push(
|
253
|
-
IAccess.FunctionInfo({
|
254
|
-
selector: SelectorLib.toSelector(selector),
|
255
|
-
name: StrLib.toStr(name),
|
256
|
-
createdAt: TimestampLib.blockTimestamp()}));
|
257
|
-
}
|
258
|
-
|
259
|
-
|
260
|
-
/// @dev role id for targets registry, staking and instance
|
261
|
-
function _toTargetRoleId(ObjectType targetDomain)
|
262
|
-
internal
|
263
|
-
pure
|
264
|
-
returns (RoleId targetRoleId)
|
265
|
-
{
|
266
|
-
return RoleIdLib.roleForType(targetDomain);
|
267
|
-
}
|
268
|
-
|
269
|
-
|
270
|
-
function _toTargetRoleName(string memory targetName) internal pure returns (string memory) {
|
271
|
-
return string(
|
272
|
-
abi.encodePacked(
|
273
|
-
targetName,
|
274
|
-
ROLE_NAME_SUFFIX));
|
275
|
-
}
|
276
|
-
|
277
|
-
|
278
|
-
/// @dev creates a role info object from the provided parameters
|
279
|
-
function _toRoleInfo(RoleId adminRoleId, RoleType roleType, uint32 maxMemberCount, string memory name) internal view returns (RoleInfo memory info) {
|
280
|
-
return RoleInfo({
|
281
|
-
name: StrLib.toStr(name),
|
282
|
-
adminRoleId: adminRoleId,
|
283
|
-
roleType: roleType,
|
284
|
-
maxMemberCount: maxMemberCount,
|
285
|
-
createdAt: TimestampLib.blockTimestamp(),
|
286
|
-
pausedAt: TimestampLib.max()});
|
287
|
-
}
|
288
168
|
}
|
289
169
|
|
@@ -10,38 +10,56 @@ interface IAccess {
|
|
10
10
|
|
11
11
|
enum RoleType {
|
12
12
|
Undefined, // no role must have this type
|
13
|
+
Core, // GIF core roles
|
13
14
|
Contract, // roles assigned to contracts, cannot be revoked
|
14
|
-
|
15
|
+
Custom // use case specific rules for components
|
16
|
+
}
|
17
|
+
|
18
|
+
enum TargetType {
|
19
|
+
Undefined, // no target must have this type
|
20
|
+
Core, // GIF core contracts
|
21
|
+
GenericService, // release independent service contracts
|
22
|
+
Service, // service contracts
|
23
|
+
Instance, // instance contracts
|
24
|
+
Component, // instance contracts
|
15
25
|
Custom // use case specific rules for components
|
16
26
|
}
|
17
27
|
|
18
28
|
struct RoleInfo {
|
19
|
-
|
20
|
-
|
21
|
-
|
29
|
+
// slot 0
|
30
|
+
RoleId adminRoleId;
|
31
|
+
RoleType roleType;
|
32
|
+
uint32 maxMemberCount;
|
33
|
+
Timestamp createdAt;
|
34
|
+
Timestamp pausedAt;
|
35
|
+
// slot 1
|
22
36
|
Str name;
|
23
|
-
Timestamp createdAt;
|
24
|
-
Timestamp pausedAt;
|
25
37
|
}
|
26
38
|
|
39
|
+
// TODO recalc slot allocation
|
27
40
|
struct TargetInfo {
|
28
41
|
Str name;
|
29
|
-
|
42
|
+
TargetType targetType;
|
43
|
+
RoleId roleId;
|
30
44
|
Timestamp createdAt;
|
31
45
|
}
|
32
46
|
|
33
47
|
struct FunctionInfo {
|
48
|
+
// slot 0
|
34
49
|
Str name; // function name
|
50
|
+
// slot 1
|
35
51
|
Selector selector; // function selector
|
36
52
|
Timestamp createdAt;
|
37
53
|
}
|
38
54
|
|
39
55
|
struct RoleNameInfo {
|
56
|
+
// slot 0
|
40
57
|
RoleId roleId;
|
41
58
|
bool exists;
|
42
59
|
}
|
43
60
|
|
44
61
|
struct TargeNameInfo {
|
62
|
+
// slot 0
|
45
63
|
address target;
|
46
64
|
bool exists;
|
47
65
|
}
|