@etherisc/gif-next 0.0.2-c00cf5d-513 → 0.0.2-c04bff4-304
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 +49 -4
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +4 -0
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +1253 -0
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +4 -0
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +1206 -0
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +358 -0
- package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +4 -0
- package/artifacts/contracts/{instance/module/ISetup.sol/ISetup.json → authorization/IAccess.sol/IAccess.json} +2 -2
- package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +4 -0
- package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.json +1032 -0
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +258 -0
- package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.json +290 -0
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +148 -0
- package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.json +390 -0
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +190 -0
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +4 -0
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +1342 -0
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +4 -0
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +410 -0
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +160 -543
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +272 -455
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +75 -143
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +169 -263
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +186 -94
- package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +1411 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +1171 -0
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +1517 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +1978 -0
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +4 -0
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +703 -0
- package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstance.sol/IInstance.json +71 -85
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +190 -49
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +65 -227
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +1218 -284
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +4 -0
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +601 -0
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +592 -316
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +246 -196
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +65 -109
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +1112 -372
- package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +4 -0
- package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +318 -0
- package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +1 -1
- package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.json +0 -53
- package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +4 -0
- package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +10 -0
- package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +4 -0
- package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +182 -0
- package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +4 -0
- package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +181 -0
- package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +1 -1
- 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 +4 -0
- package/artifacts/contracts/mock/Dip.sol/Dip.json +376 -0
- package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +4 -0
- package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +979 -0
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +4 -0
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +418 -0
- package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +4 -0
- package/artifacts/contracts/oracle/IOracle.sol/IOracle.json +52 -0
- package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +4 -0
- package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +765 -0
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +4 -0
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +675 -0
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +4 -0
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +871 -0
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +4 -0
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +922 -0
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +4 -0
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +679 -0
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +4 -0
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +1248 -0
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +4 -0
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +410 -0
- package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleService.sol/BundleService.json +414 -359
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +121 -117
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +204 -32
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +180 -366
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +340 -219
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
- package/artifacts/contracts/pool/Pool.sol/Pool.json +204 -596
- package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolService.sol/PoolService.json +394 -574
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +51 -139
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +84 -289
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +54 -106
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +4 -0
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +1096 -0
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +4 -0
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +410 -0
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +225 -305
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +79 -123
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +25 -1
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +134 -1
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +217 -83
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +83 -44
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +270 -183
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +4 -0
- package/artifacts/contracts/product/{IProductService.sol/IProductService.json → IRiskService.sol/IRiskService.json} +15 -57
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +239 -435
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +66 -162
- package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
- package/artifacts/contracts/product/PricingService.sol/PricingService.json +184 -347
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +80 -124
- package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
- package/artifacts/contracts/product/Product.sol/Product.json +286 -449
- package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +4 -0
- package/artifacts/contracts/product/RiskService.sol/RiskService.json +583 -0
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +651 -0
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +59 -16
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +308 -39
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +42 -73
- 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 +718 -74
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +1682 -113
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +195 -137
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +45 -93
- package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +4 -0
- package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +164 -0
- package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +4 -0
- package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +1169 -0
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +4 -0
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +214 -0
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +314 -136
- package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
- package/artifacts/contracts/shared/Component.sol/Component.json +88 -295
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +1125 -207
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +4 -0
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +753 -0
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +4 -0
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +427 -0
- package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponent.sol/IComponent.json +76 -107
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +4 -0
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +1033 -0
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +4 -0
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +700 -0
- package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +4 -0
- package/artifacts/contracts/{instance/base → shared}/IKeyValueStore.sol/IKeyValueStore.json +12 -16
- package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +4 -0
- package/artifacts/contracts/{instance/base → shared}/ILifecycle.sol/ILifecycle.json +1 -6
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +7 -1
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +0 -24
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +7 -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 +20 -1
- package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.dbg.json +4 -0
- package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.json +39 -0
- package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +4 -0
- package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +53 -0
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +4 -0
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +793 -0
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +4 -0
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +497 -0
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +4 -0
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +133 -0
- package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +4 -0
- package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +306 -0
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +32 -70
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +4 -118
- package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
- package/artifacts/contracts/shared/Registerable.sol/Registerable.json +16 -110
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -15
- package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
- package/artifacts/contracts/shared/Service.sol/Service.json +13 -125
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +362 -7
- package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +4 -0
- package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +108 -0
- package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +4 -0
- package/artifacts/contracts/staking/IStaking.sol/IStaking.json +1438 -0
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +566 -54
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +4 -0
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +440 -0
- package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +4 -0
- package/artifacts/contracts/staking/Staking.sol/Staking.json +1828 -0
- package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +164 -0
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +714 -0
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +592 -0
- package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingService.sol/StakingService.json +636 -191
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +65 -97
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +2242 -0
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +4 -0
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +607 -0
- package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
- package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.json +2 -2
- package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
- package/artifacts/contracts/type/Amount.sol/AmountLib.json +97 -4
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +53 -2
- package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +4 -4
- package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
- package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +4 -4
- package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
- package/artifacts/contracts/type/Fee.sol/FeeLib.json +39 -34
- 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/NftId.sol/NftIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/NftId.sol/NftIdLib.json +47 -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 +149 -2
- package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +4 -4
- package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
- package/artifacts/contracts/type/Referral.sol/ReferralLib.json +4 -4
- package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +4 -0
- package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +204 -0
- package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +4 -4
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +219 -6
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +124 -2
- package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +4 -0
- package/artifacts/contracts/type/Selector.sol/SelectorLib.json +129 -0
- package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +4 -0
- package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +10 -0
- package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/StateId.sol/StateIdLib.json +2 -2
- package/artifacts/contracts/type/String.sol/StrLib.dbg.json +4 -0
- package/artifacts/contracts/type/String.sol/StrLib.json +132 -0
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +36 -4
- package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +1 -1
- package/artifacts/contracts/type/UFixed.sol/MathLib.json +9 -3
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +58 -2
- package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
- package/artifacts/contracts/type/Version.sol/VersionLib.json +2 -2
- package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
- package/artifacts/contracts/type/Version.sol/VersionPartLib.json +21 -2
- package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +4 -0
- package/artifacts/contracts/{shared → upgradeability}/IVersionable.sol/IVersionable.json +1 -1
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +4 -0
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +566 -0
- package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
- package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +129 -0
- package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +4 -0
- package/artifacts/contracts/{shared → upgradeability}/Versionable.sol/Versionable.json +1 -1
- package/contracts/authorization/AccessAdmin.sol +589 -0
- package/contracts/authorization/AccessManagerCloneable.sol +16 -0
- package/contracts/authorization/Authorization.sol +217 -0
- package/contracts/authorization/IAccess.sol +48 -0
- package/contracts/authorization/IAccessAdmin.sol +136 -0
- package/contracts/authorization/IAuthorization.sol +54 -0
- package/contracts/authorization/IModuleAuthorization.sol +21 -0
- package/contracts/authorization/IServiceAuthorization.sol +38 -0
- package/contracts/authorization/ModuleAuthorization.sol +78 -0
- package/contracts/authorization/ServiceAuthorization.sol +90 -0
- package/contracts/distribution/BasicDistribution.sol +138 -0
- package/contracts/distribution/BasicDistributionAuthorization.sol +47 -0
- package/contracts/distribution/Distribution.sol +163 -153
- package/contracts/distribution/DistributionService.sol +132 -147
- package/contracts/distribution/DistributionServiceManager.sol +2 -5
- package/contracts/distribution/IDistributionComponent.sol +28 -47
- package/contracts/distribution/IDistributionService.sol +24 -10
- package/contracts/examples/unpermissioned/SimpleDistribution.sol +50 -0
- package/contracts/examples/unpermissioned/SimpleOracle.sol +137 -0
- package/contracts/examples/unpermissioned/SimplePool.sol +76 -0
- package/contracts/examples/unpermissioned/SimpleProduct.sol +351 -0
- package/contracts/instance/{BundleManager.sol → BundleSet.sol} +23 -23
- package/contracts/instance/IInstance.sol +24 -40
- package/contracts/instance/IInstanceService.sol +44 -24
- package/contracts/instance/Instance.sol +112 -117
- package/contracts/instance/InstanceAdmin.sol +221 -266
- package/contracts/instance/InstanceAuthorizationV3.sol +204 -0
- package/contracts/instance/InstanceReader.sol +114 -52
- package/contracts/instance/InstanceService.sol +280 -112
- package/contracts/instance/InstanceServiceManager.sol +2 -6
- package/contracts/instance/InstanceStore.sol +142 -66
- package/contracts/instance/base/BalanceStore.sol +123 -0
- package/contracts/instance/base/Cloneable.sol +2 -25
- package/contracts/instance/base/ObjectCounter.sol +21 -0
- package/contracts/instance/base/ObjectLifecycle.sol +111 -0
- package/contracts/instance/base/{ObjectManager.sol → ObjectSet.sol} +11 -14
- package/contracts/instance/module/IBundle.sol +1 -4
- package/contracts/instance/module/IComponents.sol +15 -10
- package/contracts/instance/module/IDistribution.sol +0 -1
- package/contracts/instance/module/IPolicy.sol +29 -23
- package/contracts/mock/Dip.sol +26 -0
- package/contracts/oracle/BasicOracle.sol +48 -0
- package/contracts/oracle/BasicOracleAuthorization.sol +46 -0
- package/contracts/oracle/IOracle.sol +36 -0
- package/contracts/oracle/IOracleComponent.sol +33 -0
- package/contracts/oracle/IOracleService.sol +65 -0
- package/contracts/oracle/Oracle.sol +167 -0
- package/contracts/oracle/OracleService.sol +279 -0
- package/contracts/oracle/OracleServiceManager.sol +39 -0
- package/contracts/pool/BasicPool.sol +166 -0
- package/contracts/pool/BasicPoolAuthorization.sol +58 -0
- package/contracts/pool/BundleService.sol +256 -202
- package/contracts/pool/BundleServiceManager.sol +2 -5
- package/contracts/pool/IBundleService.sol +35 -19
- package/contracts/pool/IPoolComponent.sol +10 -66
- package/contracts/pool/IPoolService.sol +79 -33
- package/contracts/pool/Pool.sol +169 -145
- package/contracts/pool/PoolService.sol +319 -214
- package/contracts/pool/PoolServiceManager.sol +2 -5
- package/contracts/product/ApplicationService.sol +139 -78
- package/contracts/product/ApplicationServiceManager.sol +2 -2
- package/contracts/product/BasicProduct.sol +53 -0
- package/contracts/product/BasicProductAuthorization.sol +43 -0
- package/contracts/product/ClaimService.sol +136 -92
- package/contracts/product/ClaimServiceManager.sol +2 -2
- package/contracts/product/IApplicationService.sol +2 -1
- package/contracts/product/IClaimService.sol +32 -3
- package/contracts/product/IPolicyService.sol +31 -38
- package/contracts/product/IPricingService.sol +10 -8
- package/contracts/product/IProductComponent.sol +10 -12
- package/contracts/product/{IProductService.sol → IRiskService.sol} +2 -9
- package/contracts/product/PolicyService.sol +389 -194
- package/contracts/product/PolicyServiceManager.sol +2 -5
- package/contracts/product/PricingService.sol +99 -74
- package/contracts/product/PricingServiceManager.sol +2 -5
- package/contracts/product/Product.sol +177 -131
- package/contracts/product/RiskService.sol +97 -0
- package/contracts/product/RiskServiceManager.sol +39 -0
- package/contracts/registry/ChainNft.sol +72 -32
- package/contracts/registry/IRegistry.sol +76 -21
- package/contracts/registry/IRegistryService.sol +15 -5
- package/contracts/registry/Registry.sol +412 -175
- package/contracts/registry/RegistryAdmin.sol +399 -76
- package/contracts/registry/RegistryService.sol +53 -33
- package/contracts/registry/RegistryServiceManager.sol +4 -11
- package/contracts/registry/ReleaseLifecycle.sol +27 -0
- package/contracts/registry/ReleaseRegistry.sol +491 -0
- package/contracts/registry/ServiceAuthorizationV3.sol +199 -0
- package/contracts/registry/TokenRegistry.sol +261 -64
- package/contracts/shared/Component.sol +145 -148
- package/contracts/shared/ComponentService.sol +590 -91
- package/contracts/shared/ComponentServiceManager.sol +35 -0
- package/contracts/shared/ComponentVerifyingService.sol +117 -0
- package/contracts/shared/IComponent.sol +21 -41
- package/contracts/shared/IComponentService.sol +108 -0
- package/contracts/shared/IInstanceLinkedComponent.sol +49 -0
- package/contracts/{instance/base → shared}/IKeyValueStore.sol +7 -6
- package/contracts/{instance/base → shared}/ILifecycle.sol +3 -4
- package/contracts/shared/INftOwnable.sol +1 -1
- package/contracts/shared/IPolicyHolder.sol +0 -4
- package/contracts/shared/IService.sol +9 -2
- package/contracts/shared/InitializableCustom.sol +177 -0
- package/contracts/shared/{ERC165.sol → InitializableERC165.sol} +4 -4
- package/contracts/shared/InstanceLinkedComponent.sol +172 -0
- package/contracts/{instance/base → shared}/KeyValueStore.sol +36 -74
- package/contracts/shared/Lifecycle.sol +77 -0
- package/contracts/shared/NftIdSet.sol +65 -0
- package/contracts/shared/NftOwnable.sol +10 -20
- package/contracts/shared/PolicyHolder.sol +10 -48
- package/contracts/shared/Registerable.sol +6 -6
- package/contracts/shared/RegistryLinked.sol +3 -2
- package/contracts/shared/Service.sol +37 -27
- package/contracts/shared/TokenHandler.sol +112 -8
- package/contracts/shared/TokenHandlerDeployerLib.sol +12 -0
- package/contracts/staking/IStaking.sol +168 -0
- package/contracts/staking/IStakingService.sol +105 -47
- package/contracts/staking/StakeManagerLib.sol +224 -0
- package/contracts/staking/Staking.sol +498 -0
- package/contracts/staking/StakingLifecycle.sol +23 -0
- package/contracts/staking/StakingManager.sol +50 -0
- package/contracts/staking/StakingReader.sol +183 -0
- package/contracts/staking/StakingService.sol +285 -47
- package/contracts/staking/StakingServiceManager.sol +9 -5
- package/contracts/staking/StakingStore.sol +605 -0
- package/contracts/staking/TargetManagerLib.sol +211 -0
- package/contracts/type/AddressSet.sol +1 -1
- package/contracts/type/Amount.sol +29 -3
- package/contracts/type/Blocknumber.sol +26 -3
- package/contracts/type/Fee.sol +17 -16
- package/contracts/type/NftId.sol +14 -16
- package/contracts/type/NftIdSet.sol +1 -1
- package/contracts/type/ObjectType.sol +175 -62
- package/contracts/type/Referral.sol +2 -1
- package/contracts/type/RequestId.sol +75 -0
- package/contracts/type/RiskId.sol +1 -1
- package/contracts/type/RoleId.sol +104 -69
- package/contracts/type/Seconds.sol +48 -1
- package/contracts/type/Selector.sol +102 -0
- package/contracts/type/StateId.sol +28 -2
- package/contracts/type/String.sol +53 -0
- package/contracts/type/Timestamp.sol +17 -3
- package/contracts/type/UFixed.sol +34 -9
- package/contracts/type/Version.sol +4 -2
- package/contracts/{shared → upgradeability}/ProxyManager.sol +6 -8
- package/contracts/{shared → upgradeability}/UpgradableProxyWithAdmin.sol +1 -3
- package/package.json +8 -5
- package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +0 -4
- package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +0 -778
- package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.dbg.json +0 -4
- package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.json +0 -188
- package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +0 -4
- package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +0 -4
- package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +0 -4
- package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +0 -581
- package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +0 -4
- package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +0 -194
- package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.dbg.json +0 -4
- package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.json +0 -256
- package/artifacts/contracts/instance/module/ISetup.sol/ISetup.dbg.json +0 -4
- package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.dbg.json +0 -4
- package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.json +0 -10
- package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +0 -4
- package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +0 -4
- package/artifacts/contracts/product/ProductService.sol/ProductService.json +0 -891
- package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
- package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +0 -715
- package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +0 -4
- package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +0 -1058
- package/artifacts/contracts/shared/AccessManagerCustom.sol/AccessManagerCustom.dbg.json +0 -4
- package/artifacts/contracts/shared/AccessManagerCustom.sol/AccessManagerCustom.json +0 -1193
- package/artifacts/contracts/shared/AccessManagerExtended.sol/AccessManagerExtended.dbg.json +0 -4
- package/artifacts/contracts/shared/AccessManagerExtended.sol/AccessManagerExtended.json +0 -1715
- package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.dbg.json +0 -4
- package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.json +0 -1728
- package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.dbg.json +0 -4
- package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.json +0 -1806
- package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.dbg.json +0 -4
- package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.json +0 -1824
- package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +0 -4
- package/artifacts/contracts/shared/ERC165.sol/ERC165.json +0 -73
- package/artifacts/contracts/shared/IAccessManagerExtended.sol/IAccessManagerExtended.dbg.json +0 -4
- package/artifacts/contracts/shared/IAccessManagerExtended.sol/IAccessManagerExtended.json +0 -1562
- package/artifacts/contracts/shared/IAccessManagerExtendedWithDisable.sol/IAccessManagerExtendedWithDisable.dbg.json +0 -4
- package/artifacts/contracts/shared/IAccessManagerExtendedWithDisable.sol/IAccessManagerExtendedWithDisable.json +0 -1600
- package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +0 -4
- package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +0 -4
- package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +0 -630
- package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +0 -4
- package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +0 -129
- package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +0 -4
- package/contracts/instance/InstanceAuthorizationsLib.sol +0 -320
- package/contracts/instance/base/Lifecycle.sol +0 -121
- package/contracts/instance/module/ISetup.sol +0 -33
- package/contracts/instance/module/ITreasury.sol +0 -23
- package/contracts/product/ProductService.sol +0 -212
- package/contracts/product/ProductServiceManager.sol +0 -42
- package/contracts/registry/ReleaseManager.sol +0 -462
- package/contracts/shared/AccessManagerCustom.sol +0 -736
- package/contracts/shared/AccessManagerExtended.sol +0 -469
- package/contracts/shared/AccessManagerExtendedInitializeable.sol +0 -13
- package/contracts/shared/AccessManagerExtendedWithDisable.sol +0 -137
- package/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol +0 -14
- package/contracts/shared/IAccessManagerExtended.sol +0 -74
- package/contracts/shared/IAccessManagerExtendedWithDisable.sol +0 -18
- /package/contracts/{shared → upgradeability}/IVersionable.sol +0 -0
- /package/contracts/{shared → upgradeability}/Versionable.sol +0 -0
@@ -1,462 +0,0 @@
|
|
1
|
-
// SPDX-License-Identifier: Apache-2.0
|
2
|
-
pragma solidity ^0.8.20;
|
3
|
-
|
4
|
-
import {Clones} from "@openzeppelin/contracts/proxy/Clones.sol";
|
5
|
-
import {AccessManaged} from "@openzeppelin/contracts/access/manager/AccessManaged.sol";
|
6
|
-
import {Math} from "@openzeppelin/contracts/utils/math/Math.sol";
|
7
|
-
|
8
|
-
import {NftId} from "../type/NftId.sol";
|
9
|
-
import {RoleId, ADMIN_ROLE, PUBLIC_ROLE} from "../type/RoleId.sol";
|
10
|
-
import {ObjectType, ObjectTypeLib, zeroObjectType, REGISTRY, SERVICE} from "../type/ObjectType.sol";
|
11
|
-
import {Version, VersionLib, VersionPart, VersionPartLib} from "../type/Version.sol";
|
12
|
-
import {Timestamp, TimestampLib, zeroTimestamp, ltTimestamp} from "../type/Timestamp.sol";
|
13
|
-
import {Seconds, SecondsLib} from "../type/Seconds.sol";
|
14
|
-
|
15
|
-
import {IService} from "../shared/IService.sol";
|
16
|
-
import {AccessManagerExtendedWithDisableInitializeable} from "../shared/AccessManagerExtendedWithDisableInitializeable.sol";
|
17
|
-
|
18
|
-
import {IRegistry} from "./IRegistry.sol";
|
19
|
-
import {Registry} from "./Registry.sol";
|
20
|
-
import {IRegistryService} from "./IRegistryService.sol";
|
21
|
-
import {RegistryAdmin} from "./RegistryAdmin.sol";
|
22
|
-
|
23
|
-
|
24
|
-
contract ReleaseManager is AccessManaged
|
25
|
-
{
|
26
|
-
using ObjectTypeLib for ObjectType;
|
27
|
-
using TimestampLib for Timestamp;
|
28
|
-
|
29
|
-
event LogReleaseCreation(
|
30
|
-
VersionPart version,
|
31
|
-
bytes32 salt,
|
32
|
-
address releaseAccessManager
|
33
|
-
);
|
34
|
-
event LogReleaseActivation(VersionPart version);
|
35
|
-
|
36
|
-
|
37
|
-
// prepareRelease
|
38
|
-
error ErrorReleaseManagerReleaseAlreadyCreated(VersionPart version);
|
39
|
-
|
40
|
-
// registerService
|
41
|
-
error ErrorReleaseManagerNotService(IService service);
|
42
|
-
error ErrorReleaseManagerServiceAddressInvalid(IService given, address expected);
|
43
|
-
|
44
|
-
// activateNextRelease
|
45
|
-
error ErrorReleaseManagerReleaseNotCreated(VersionPart releaseVersion);
|
46
|
-
error ErrorReleaseManagerReleaseRegistrationNotFinished(VersionPart releaseVersion, uint awaitingRegistration);
|
47
|
-
error ErrorReleaseManagerReleaseAlreadyActivated(VersionPart releaseVersion);
|
48
|
-
|
49
|
-
// disableRelease
|
50
|
-
error ErrorReleaseManagerReleaseNotActivated(VersionPart releaseVersion);
|
51
|
-
error ErrorReleaseManagerReleaseAlreadyDisabled(VersionPart releaseVersion);
|
52
|
-
|
53
|
-
// _verifyService
|
54
|
-
error ErrorReleaseManagerServiceReleaseAuthorityMismatch(IService service, address serviceAuthority, address releaseAuthority);
|
55
|
-
error ErrorReleaseManagerServiceReleaseVersionMismatch(IService service, VersionPart serviceVersion, VersionPart releaseVersion);
|
56
|
-
|
57
|
-
// _verifyServiceInfo
|
58
|
-
error ErrorReleaseManagerServiceInfoAddressInvalid(IService service, address expected);
|
59
|
-
error ErrorReleaseManagerServiceInfoInterceptorInvalid(IService service, bool isInterceptor);
|
60
|
-
error ErrorReleaseManagerServiceInfoTypeInvalid(IService service, ObjectType expected, ObjectType found);
|
61
|
-
error ErrorReleaseManagerServiceInfoOwnerInvalid(IService service, address expected, address found);
|
62
|
-
error ErrorReleaseManagerServiceSelfRegistration(IService service);
|
63
|
-
error ErrorReleaseManagerServiceOwnerRegistered(IService service, address owner);
|
64
|
-
|
65
|
-
// _verifyServiceAuthorizations
|
66
|
-
error ErrorReleaseManagerReleaseEmpty();
|
67
|
-
error ErrorReleaseManagerServiceRoleInvalid(address service, RoleId role);
|
68
|
-
|
69
|
-
Seconds public constant MIN_DISABLE_DELAY = Seconds.wrap(60 * 24 * 365); // 1 year
|
70
|
-
|
71
|
-
RegistryAdmin public immutable _admin;
|
72
|
-
address public immutable _releaseAccessManagerCodeAddress;
|
73
|
-
IRegistry public immutable _registry;
|
74
|
-
|
75
|
-
mapping(VersionPart version => AccessManagerExtendedWithDisableInitializeable accessManager) internal _releaseAccessManager;
|
76
|
-
mapping(VersionPart version => IRegistry.ReleaseInfo info) internal _releaseInfo;
|
77
|
-
mapping(address registryService => VersionPart version) _releaseVersionByAddress;
|
78
|
-
|
79
|
-
VersionPart immutable internal _initial;// first active version
|
80
|
-
VersionPart internal _latest;// latest active version
|
81
|
-
VersionPart internal _next;// version to create and activate
|
82
|
-
|
83
|
-
uint internal _awaitingRegistration; // "services left to register" counter
|
84
|
-
|
85
|
-
constructor(
|
86
|
-
RegistryAdmin admin,
|
87
|
-
VersionPart initialVersion,
|
88
|
-
AccessManagerExtendedWithDisableInitializeable masterReleaseAccessManager)
|
89
|
-
AccessManaged(admin.authority())
|
90
|
-
{
|
91
|
-
_admin = admin;
|
92
|
-
_initial = initialVersion;
|
93
|
-
_next = VersionPartLib.toVersionPart(initialVersion.toInt() - 1);
|
94
|
-
_registry = new Registry();
|
95
|
-
_releaseAccessManagerCodeAddress = address(masterReleaseAccessManager);
|
96
|
-
}
|
97
|
-
|
98
|
-
/// @dev skips previous release if it was not activated
|
99
|
-
function createNextRelease()
|
100
|
-
external
|
101
|
-
restricted // GIF_ADMIN_ROLE
|
102
|
-
returns(VersionPart version)
|
103
|
-
{
|
104
|
-
_next = VersionPartLib.toVersionPart(_next.toInt() + 1);
|
105
|
-
_awaitingRegistration = 0;
|
106
|
-
}
|
107
|
-
|
108
|
-
function prepareNextRelease(
|
109
|
-
address[] memory addresses,
|
110
|
-
string[] memory names,
|
111
|
-
RoleId[][] memory serviceRoles,
|
112
|
-
string[][] memory serviceRoleNames,
|
113
|
-
RoleId[][] memory functionRoles,
|
114
|
-
string[][] memory functionRoleNames,
|
115
|
-
bytes4[][][] memory selectors,
|
116
|
-
bytes32 salt
|
117
|
-
)
|
118
|
-
external
|
119
|
-
restricted // GIF_MANAGER_ROLE
|
120
|
-
returns(address releaseAccessManagerAddress, VersionPart version, bytes32 releaseSalt)
|
121
|
-
{
|
122
|
-
_verifyReleaseAuthorizations(addresses, serviceRoles, functionRoles, selectors);
|
123
|
-
|
124
|
-
version = getNextVersion();
|
125
|
-
|
126
|
-
// ensures unique salt
|
127
|
-
releaseSalt = keccak256(
|
128
|
-
bytes.concat(
|
129
|
-
bytes32(version.toInt()),
|
130
|
-
salt));
|
131
|
-
|
132
|
-
releaseAccessManagerAddress = Clones.cloneDeterministic(_releaseAccessManagerCodeAddress, releaseSalt);
|
133
|
-
AccessManagerExtendedWithDisableInitializeable releaseAccessManager = AccessManagerExtendedWithDisableInitializeable(releaseAccessManagerAddress);
|
134
|
-
releaseAccessManager.initialize(address(this), version);
|
135
|
-
|
136
|
-
if(_awaitingRegistration > 0) {
|
137
|
-
revert ErrorReleaseManagerReleaseAlreadyCreated(version);
|
138
|
-
}
|
139
|
-
|
140
|
-
_releaseInfo[version].version = version;
|
141
|
-
_releaseInfo[version].salt = releaseSalt;
|
142
|
-
_releaseInfo[version].addresses = addresses;
|
143
|
-
_releaseInfo[version].names = names;
|
144
|
-
_releaseInfo[version].serviceRoles = serviceRoles;
|
145
|
-
_releaseInfo[version].serviceRoleNames = serviceRoleNames;
|
146
|
-
_releaseInfo[version].functionRoles = functionRoles;
|
147
|
-
_releaseInfo[version].functionRoleNames = functionRoleNames;
|
148
|
-
_releaseInfo[version].selectors = selectors;
|
149
|
-
_awaitingRegistration = addresses.length;
|
150
|
-
|
151
|
-
_releaseAccessManager[version] = releaseAccessManager;
|
152
|
-
|
153
|
-
emit LogReleaseCreation(version, releaseSalt, releaseAccessManagerAddress);
|
154
|
-
}
|
155
|
-
|
156
|
-
function registerService(IService service)
|
157
|
-
external
|
158
|
-
restricted // GIF_MANAGER_ROLE
|
159
|
-
returns(NftId nftId)
|
160
|
-
{
|
161
|
-
(
|
162
|
-
IRegistry.ObjectInfo memory info,
|
163
|
-
ObjectType domain,
|
164
|
-
VersionPart version
|
165
|
-
) = _verifyService(service);
|
166
|
-
|
167
|
-
if(_awaitingRegistration == 0) {
|
168
|
-
// TODO either release is not created or registration is finished
|
169
|
-
// or just let it panic on underflow?
|
170
|
-
revert ErrorReleaseManagerReleaseRegistrationNotFinished(version, _awaitingRegistration);
|
171
|
-
}
|
172
|
-
|
173
|
-
uint serviceIdx = _awaitingRegistration - 1;
|
174
|
-
address serviceAddress = _releaseInfo[version].addresses[serviceIdx];
|
175
|
-
// TODO temp, while typescript addresses computation is not implemented
|
176
|
-
/*if(address(service) != serviceAddress) {
|
177
|
-
revert ErrorReleaseManagerServiceAddressInvalid(service, serviceAddress);
|
178
|
-
}*/
|
179
|
-
|
180
|
-
_setServiceAuthorizations(
|
181
|
-
_releaseAccessManager[version],
|
182
|
-
// TODO temp, while typescript addresses computation is not implemented
|
183
|
-
address(service),//serviceAddress,
|
184
|
-
_releaseInfo[version].names[serviceIdx],
|
185
|
-
_releaseInfo[version].serviceRoles[serviceIdx],
|
186
|
-
_releaseInfo[version].serviceRoleNames[serviceIdx],
|
187
|
-
_releaseInfo[version].functionRoles[serviceIdx],
|
188
|
-
_releaseInfo[version].functionRoleNames[serviceIdx],
|
189
|
-
_releaseInfo[version].selectors[serviceIdx]);
|
190
|
-
|
191
|
-
_awaitingRegistration = serviceIdx;
|
192
|
-
_releaseInfo[version].domains.push(domain);// checked in registry
|
193
|
-
|
194
|
-
nftId = _registry.registerService(info, version, domain);
|
195
|
-
|
196
|
-
service.linkToRegisteredNftId();
|
197
|
-
}
|
198
|
-
|
199
|
-
function activateNextRelease()
|
200
|
-
external
|
201
|
-
restricted // GIF_ADMIN_ROLE
|
202
|
-
{
|
203
|
-
VersionPart version = _next;
|
204
|
-
address service = _registry.getServiceAddress(REGISTRY(), version);
|
205
|
-
|
206
|
-
// release exists, registry service is a MUST
|
207
|
-
//if(_releaseAccessManager[version] == address(0)) {
|
208
|
-
if(service == address(0)) {
|
209
|
-
revert ErrorReleaseManagerReleaseNotCreated(version);
|
210
|
-
}
|
211
|
-
|
212
|
-
// release fully deployed
|
213
|
-
if(_awaitingRegistration > 0) {
|
214
|
-
revert ErrorReleaseManagerReleaseRegistrationNotFinished(version, _awaitingRegistration);
|
215
|
-
}
|
216
|
-
|
217
|
-
// release is not activated
|
218
|
-
if(_releaseInfo[version].activatedAt.gtz()) {
|
219
|
-
revert ErrorReleaseManagerReleaseAlreadyActivated(version);
|
220
|
-
}
|
221
|
-
|
222
|
-
_latest = version;
|
223
|
-
|
224
|
-
_releaseVersionByAddress[service] = version;
|
225
|
-
_releaseInfo[version].activatedAt = TimestampLib.blockTimestamp();
|
226
|
-
|
227
|
-
emit LogReleaseActivation(version);
|
228
|
-
}
|
229
|
-
|
230
|
-
// release becomes disabled after delay expiration (can be reenabled before that)
|
231
|
-
function disableRelease(VersionPart version, Seconds disableDelay)
|
232
|
-
external
|
233
|
-
restricted // GIF_ADMIN_ROLE
|
234
|
-
{
|
235
|
-
// release was activated
|
236
|
-
if(_releaseInfo[version].activatedAt.eqz()) {
|
237
|
-
revert ErrorReleaseManagerReleaseNotActivated(version);
|
238
|
-
}
|
239
|
-
|
240
|
-
// release not disabled already
|
241
|
-
if(_releaseInfo[version].disabledAt.gtz()) {
|
242
|
-
revert ErrorReleaseManagerReleaseAlreadyDisabled(version);
|
243
|
-
}
|
244
|
-
|
245
|
-
disableDelay = SecondsLib.toSeconds(Math.max(disableDelay.toInt(), MIN_DISABLE_DELAY.toInt()));
|
246
|
-
|
247
|
-
_releaseAccessManager[version].disable(disableDelay);
|
248
|
-
|
249
|
-
_releaseInfo[version].disabledAt = TimestampLib.blockTimestamp().addSeconds(disableDelay);
|
250
|
-
}
|
251
|
-
|
252
|
-
function enableRelease(VersionPart version)
|
253
|
-
external
|
254
|
-
restricted // GIF_ADMIN_ROLE
|
255
|
-
{
|
256
|
-
// release was disabled
|
257
|
-
//if(_releaseInfo[version].disabledAt.eqz()) {
|
258
|
-
// revert ErrorReleaseManagerReleaseAlreadyEnabled(version);
|
259
|
-
//}
|
260
|
-
|
261
|
-
// reverts if disable delay expired
|
262
|
-
_releaseAccessManager[version].enable();
|
263
|
-
|
264
|
-
_releaseInfo[version].disabledAt = zeroTimestamp();
|
265
|
-
}
|
266
|
-
|
267
|
-
//--- view functions ----------------------------------------------------//
|
268
|
-
|
269
|
-
function predictDeterministicAddress(
|
270
|
-
address implementation,
|
271
|
-
bytes32 salt,
|
272
|
-
address deployer
|
273
|
-
) external pure returns (address predicted) {
|
274
|
-
return Clones.predictDeterministicAddress(implementation, salt, deployer);
|
275
|
-
}
|
276
|
-
|
277
|
-
function isActiveRegistryService(address service) external view returns(bool) {
|
278
|
-
VersionPart version = _releaseVersionByAddress[service];
|
279
|
-
return isActiveRelease(version);
|
280
|
-
}
|
281
|
-
|
282
|
-
function isActiveRelease(VersionPart version) public view returns(bool) {
|
283
|
-
if(_releaseInfo[version].activatedAt.eqz()) { return false; }
|
284
|
-
if(_releaseInfo[version].disabledAt.eqz()) { return true; }
|
285
|
-
return ltTimestamp(TimestampLib.blockTimestamp(), _releaseInfo[version].disabledAt);
|
286
|
-
}
|
287
|
-
|
288
|
-
|
289
|
-
function getRegistry() external view returns(address)
|
290
|
-
{
|
291
|
-
return (address(_registry));
|
292
|
-
}
|
293
|
-
|
294
|
-
function getReleaseInfo(VersionPart version) external view returns(IRegistry.ReleaseInfo memory) {
|
295
|
-
return _releaseInfo[version];
|
296
|
-
}
|
297
|
-
|
298
|
-
function getNextVersion() public view returns(VersionPart) {
|
299
|
-
return _next;
|
300
|
-
}
|
301
|
-
|
302
|
-
function getLatestVersion() external view returns(VersionPart) {
|
303
|
-
return _latest;
|
304
|
-
}
|
305
|
-
|
306
|
-
function getInitialVersion() external view returns(VersionPart) {
|
307
|
-
return _initial;
|
308
|
-
}
|
309
|
-
|
310
|
-
function getReleaseAccessManager(VersionPart version) external view returns(AccessManagerExtendedWithDisableInitializeable) {
|
311
|
-
return _releaseAccessManager[version];
|
312
|
-
}
|
313
|
-
|
314
|
-
//--- private functions ----------------------------------------------------//
|
315
|
-
|
316
|
-
function _verifyService(IService service)
|
317
|
-
internal
|
318
|
-
returns(
|
319
|
-
IRegistry.ObjectInfo memory serviceInfo,
|
320
|
-
ObjectType serviceDomain,
|
321
|
-
VersionPart serviceVersion
|
322
|
-
)
|
323
|
-
{
|
324
|
-
if(!service.supportsInterface(type(IService).interfaceId)) {
|
325
|
-
revert ErrorReleaseManagerNotService(service);
|
326
|
-
}
|
327
|
-
|
328
|
-
address owner = msg.sender;
|
329
|
-
address serviceAuthority = service.authority();
|
330
|
-
serviceVersion = service.getVersion().toMajorPart();
|
331
|
-
serviceDomain = service.getDomain();// checked in registry
|
332
|
-
serviceInfo = service.getInitialInfo();
|
333
|
-
|
334
|
-
_verifyServiceInfo(service, serviceInfo, owner);
|
335
|
-
|
336
|
-
VersionPart releaseVersion = getNextVersion(); // never 0
|
337
|
-
address releaseAuthority = address(_releaseAccessManager[releaseVersion]); // can be zero if registering service when release is not created
|
338
|
-
|
339
|
-
// IMPORTANT: can not guarantee service access is actually controlled by authority
|
340
|
-
if(serviceAuthority != releaseAuthority) {
|
341
|
-
revert ErrorReleaseManagerServiceReleaseAuthorityMismatch(
|
342
|
-
service,
|
343
|
-
serviceAuthority,
|
344
|
-
releaseAuthority);
|
345
|
-
}
|
346
|
-
|
347
|
-
if(serviceVersion != releaseVersion) {
|
348
|
-
revert ErrorReleaseManagerServiceReleaseVersionMismatch(
|
349
|
-
service,
|
350
|
-
serviceVersion,
|
351
|
-
releaseVersion);
|
352
|
-
}
|
353
|
-
}
|
354
|
-
|
355
|
-
function _verifyServiceInfo(
|
356
|
-
IService service,
|
357
|
-
IRegistry.ObjectInfo memory info,
|
358
|
-
address expectedOwner // assume always valid, can not be 0
|
359
|
-
)
|
360
|
-
internal
|
361
|
-
view
|
362
|
-
{
|
363
|
-
if(info.objectAddress != address(service)) {
|
364
|
-
revert ErrorReleaseManagerServiceInfoAddressInvalid(service, address(service));
|
365
|
-
}
|
366
|
-
|
367
|
-
if(info.isInterceptor != false) { // service is never interceptor
|
368
|
-
revert ErrorReleaseManagerServiceInfoInterceptorInvalid(service, info.isInterceptor);
|
369
|
-
}
|
370
|
-
|
371
|
-
if(info.objectType != SERVICE()) {// type is checked in registry anyway...but service logic may depend on expected value
|
372
|
-
revert ErrorReleaseManagerServiceInfoTypeInvalid(service, SERVICE(), info.objectType);
|
373
|
-
}
|
374
|
-
|
375
|
-
address owner = info.initialOwner;
|
376
|
-
|
377
|
-
if(owner != expectedOwner) { // registerable owner protection
|
378
|
-
revert ErrorReleaseManagerServiceInfoOwnerInvalid(service, expectedOwner, owner);
|
379
|
-
}
|
380
|
-
|
381
|
-
if(owner == address(service)) {
|
382
|
-
revert ErrorReleaseManagerServiceSelfRegistration(service);
|
383
|
-
}
|
384
|
-
|
385
|
-
if(_registry.isRegistered(owner)) {
|
386
|
-
revert ErrorReleaseManagerServiceOwnerRegistered(service, owner);
|
387
|
-
}
|
388
|
-
}
|
389
|
-
|
390
|
-
function _verifyReleaseAuthorizations(
|
391
|
-
address[] memory serviceAddress,
|
392
|
-
RoleId[][] memory serviceRoles,
|
393
|
-
RoleId[][] memory functionRoles,
|
394
|
-
bytes4[][][] memory selectors
|
395
|
-
)
|
396
|
-
internal
|
397
|
-
view
|
398
|
-
{
|
399
|
-
if(serviceAddress.length == 0) {
|
400
|
-
revert ErrorReleaseManagerReleaseEmpty();
|
401
|
-
}
|
402
|
-
|
403
|
-
for(uint serviceIdx = 0; serviceIdx < serviceAddress.length; serviceIdx++)
|
404
|
-
{
|
405
|
-
for(uint roleIdx = 0; roleIdx < serviceRoles[serviceIdx].length; roleIdx++)
|
406
|
-
{
|
407
|
-
RoleId role = serviceRoles[serviceIdx][roleIdx];
|
408
|
-
if(role == ADMIN_ROLE() || role == PUBLIC_ROLE()) {
|
409
|
-
revert ErrorReleaseManagerServiceRoleInvalid(serviceAddress[serviceIdx], role);
|
410
|
-
}
|
411
|
-
}
|
412
|
-
}
|
413
|
-
// TODO no duplicate service "domain" role per release
|
414
|
-
// TODO no duplicate service roles per service
|
415
|
-
// TODO no duplicate service function roles per service
|
416
|
-
// TODO no duplicate service function selectors per service
|
417
|
-
}
|
418
|
-
|
419
|
-
function _setServiceAuthorizations(
|
420
|
-
AccessManagerExtendedWithDisableInitializeable accessManager, // release access manager
|
421
|
-
address serviceAddress,
|
422
|
-
string memory serviceName,
|
423
|
-
RoleId[] memory serviceRoles,
|
424
|
-
string[] memory serviceRoleNames,
|
425
|
-
RoleId[] memory functionRoles,
|
426
|
-
string[] memory functionRoleNames,
|
427
|
-
bytes4[][] memory selectors
|
428
|
-
)
|
429
|
-
internal
|
430
|
-
{
|
431
|
-
accessManager.createTarget(serviceAddress, serviceName);
|
432
|
-
|
433
|
-
for(uint idx = 0; idx < functionRoles.length; idx++)
|
434
|
-
{
|
435
|
-
uint64 roleInt = functionRoles[idx].toInt();
|
436
|
-
|
437
|
-
if(!accessManager.isRoleExists(roleInt)) {
|
438
|
-
accessManager.createRole(roleInt, functionRoleNames[idx]);
|
439
|
-
}
|
440
|
-
|
441
|
-
accessManager.setTargetFunctionRole(
|
442
|
-
serviceAddress,
|
443
|
-
selectors[idx],
|
444
|
-
roleInt);
|
445
|
-
}
|
446
|
-
|
447
|
-
for(uint idx = 0; idx < serviceRoles.length; idx++)
|
448
|
-
{
|
449
|
-
uint64 roleInt = serviceRoles[idx].toInt();
|
450
|
-
|
451
|
-
if(!accessManager.isRoleExists(roleInt)) {
|
452
|
-
accessManager.createRole(roleInt, serviceRoleNames[idx]);
|
453
|
-
}
|
454
|
-
|
455
|
-
accessManager.grantRole(
|
456
|
-
serviceRoles[idx].toInt(),
|
457
|
-
serviceAddress,
|
458
|
-
0);
|
459
|
-
}
|
460
|
-
|
461
|
-
}
|
462
|
-
}
|