@etherisc/gif-next 0.0.2-b89a442-717 → 0.0.2-b8da656-306
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 +32 -3
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +1 -1
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +33 -52
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +1 -1
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +2 -2
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +2 -2
- 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 +0 -19
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.json +2 -2
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +2 -2
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +85 -248
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +1 -1
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +16 -16
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +43 -222
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +228 -217
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +93 -101
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +43 -37
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +120 -31
- package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.json +22 -0
- package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.json +1491 -0
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +410 -0
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +1946 -0
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +414 -0
- package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.json +376 -0
- 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 +1545 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +1980 -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 +6 -6
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +5 -5
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +17 -106
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +98 -101
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +31 -31
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +437 -129
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +44 -151
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +61 -81
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +244 -228
- package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +2 -2
- 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 +4 -0
- package/artifacts/contracts/instance/base/{ObjectManager.sol/ObjectManager.json → ObjectSet.sol/ObjectSet.json} +6 -6
- 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 +1 -1
- package/artifacts/contracts/mock/Dip.sol/Dip.json +2 -2
- package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +1 -1
- package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +59 -235
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +1 -1
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +18 -18
- 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 +30 -37
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +27 -219
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +37 -144
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +60 -80
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +79 -280
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +16 -16
- package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleService.sol/BundleService.json +458 -161
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +154 -86
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +229 -1
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +72 -94
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +360 -171
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
- package/artifacts/contracts/pool/Pool.sol/Pool.json +69 -276
- package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolService.sol/PoolService.json +492 -333
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +98 -82
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +36 -162
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +57 -89
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +47 -248
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +16 -16
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +263 -181
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +104 -100
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +5 -0
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +147 -6
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +295 -119
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +43 -43
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +47 -63
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +4 -0
- package/artifacts/contracts/product/{IProductService.sol/IProductService.json → IRiskService.sol/IRiskService.json} +2 -2
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +406 -321
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +104 -100
- package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
- package/artifacts/contracts/product/PricingService.sol/PricingService.json +118 -265
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +80 -120
- package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
- package/artifacts/contracts/product/Product.sol/Product.json +47 -248
- package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +4 -0
- package/artifacts/contracts/product/RiskService.sol/RiskService.json +588 -0
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +682 -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 +276 -9
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +0 -183
- 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 +495 -67
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +246 -134
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +23 -313
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +52 -72
- 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 +4 -0
- package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +1169 -0
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +6 -6
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +2 -2
- package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
- package/artifacts/contracts/shared/Component.sol/Component.json +0 -211
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +247 -161
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +105 -95
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +5 -112
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +4 -0
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +92 -0
- package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponent.sol/IComponent.json +0 -26
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +153 -0
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +19 -37
- package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
- 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/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +15 -47
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -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/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 +1 -1
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +19 -222
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
- package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +4 -0
- package/artifacts/contracts/shared/{NftIdSetManager.sol/NftIdSetManager.json → NftIdSet.sol/NftIdSet.json} +4 -4
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +6 -57
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +19 -141
- package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
- package/artifacts/contracts/shared/Registerable.sol/Registerable.json +8 -97
- 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 +5 -112
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +330 -11
- 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 +1 -1
- package/artifacts/contracts/staking/IStaking.sol/IStaking.json +27 -27
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +1 -1
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +73 -93
- package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
- package/artifacts/contracts/staking/Staking.sol/Staking.json +85 -262
- package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +2 -2
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +77 -88
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +6 -11
- package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingService.sol/StakingService.json +31 -138
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +56 -76
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +92 -87
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +59 -23
- 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 +61 -8
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +2 -2
- package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +28 -4
- 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 +7 -2
- 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 +2 -2
- package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
- package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +2 -2
- package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
- package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +2 -2
- package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +19 -19
- 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 +60 -4
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +2 -2
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +50 -2
- package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +1 -1
- package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +1 -1
- package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/StateId.sol/StateIdLib.json +2 -2
- package/artifacts/contracts/type/String.sol/StrLib.dbg.json +1 -1
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +23 -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 +52 -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 +586 -0
- package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
- package/artifacts/contracts/{shared → upgradeability}/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +3 -3
- 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 +25 -24
- package/contracts/authorization/Authorization.sol +5 -2
- package/contracts/authorization/IAccessAdmin.sol +0 -1
- package/contracts/distribution/BasicDistribution.sol +4 -15
- package/contracts/distribution/BasicDistributionAuthorization.sol +5 -1
- package/contracts/distribution/Distribution.sol +23 -11
- package/contracts/distribution/DistributionService.sol +76 -42
- package/contracts/distribution/DistributionServiceManager.sol +8 -11
- package/contracts/distribution/IDistributionComponent.sol +8 -4
- package/contracts/distribution/IDistributionService.sol +18 -2
- package/contracts/examples/fire/DamageLevel.sol +59 -0
- package/contracts/examples/fire/FirePool.sol +75 -0
- package/contracts/examples/fire/FirePoolAuthorization.sol +34 -0
- package/contracts/examples/fire/FireProduct.sol +410 -0
- package/contracts/examples/fire/FireProductAuthorization.sol +45 -0
- package/contracts/examples/fire/FireUSD.sol +26 -0
- 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 +11 -34
- package/contracts/instance/IInstanceService.sol +5 -5
- package/contracts/instance/Instance.sol +13 -38
- package/contracts/instance/InstanceAdmin.sol +31 -9
- package/contracts/instance/InstanceAuthorizationV3.sol +16 -14
- package/contracts/instance/InstanceReader.sol +115 -25
- package/contracts/instance/InstanceService.sol +71 -49
- package/contracts/instance/InstanceServiceManager.sol +8 -13
- package/contracts/instance/InstanceStore.sol +12 -1
- package/contracts/instance/base/ObjectLifecycle.sol +9 -4
- package/contracts/instance/base/{ObjectManager.sol → ObjectSet.sol} +5 -5
- package/contracts/instance/module/IBundle.sol +1 -1
- package/contracts/instance/module/IComponents.sol +4 -8
- package/contracts/instance/module/IDistribution.sol +0 -1
- package/contracts/instance/module/IPolicy.sol +24 -24
- package/contracts/mock/Dip.sol +1 -1
- package/contracts/oracle/IOracleComponent.sol +2 -1
- package/contracts/oracle/Oracle.sol +17 -7
- package/contracts/oracle/OracleService.sol +11 -8
- package/contracts/oracle/OracleServiceManager.sol +8 -11
- package/contracts/pool/BasicPool.sol +7 -5
- package/contracts/pool/BasicPoolAuthorization.sol +11 -2
- package/contracts/pool/BundleService.sol +221 -56
- package/contracts/pool/BundleServiceManager.sol +8 -11
- package/contracts/pool/IBundleService.sol +42 -5
- package/contracts/pool/IPoolComponent.sol +24 -8
- package/contracts/pool/IPoolService.sol +57 -36
- package/contracts/pool/Pool.sol +72 -30
- package/contracts/pool/PoolService.sol +240 -129
- package/contracts/pool/PoolServiceManager.sol +6 -9
- package/contracts/product/ApplicationService.sol +62 -65
- package/contracts/product/ApplicationServiceManager.sol +6 -6
- package/contracts/product/BasicProduct.sol +3 -32
- package/contracts/product/BasicProductAuthorization.sol +3 -0
- package/contracts/product/ClaimService.sol +254 -115
- package/contracts/product/ClaimServiceManager.sol +6 -6
- package/contracts/product/IApplicationService.sol +1 -0
- package/contracts/product/IClaimService.sol +31 -7
- package/contracts/product/IPolicyService.sol +34 -32
- package/contracts/product/IPricingService.sol +7 -7
- package/contracts/product/IProductComponent.sol +18 -4
- package/contracts/product/{IProductService.sol → IRiskService.sol} +1 -1
- package/contracts/product/PolicyService.sol +404 -193
- package/contracts/product/PolicyServiceManager.sol +6 -9
- package/contracts/product/PricingService.sol +46 -46
- package/contracts/product/PricingServiceManager.sol +5 -8
- package/contracts/product/Product.sol +90 -50
- package/contracts/product/{ProductService.sol → RiskService.sol} +13 -41
- package/contracts/product/RiskServiceManager.sol +39 -0
- package/contracts/registry/ChainNft.sol +65 -32
- package/contracts/registry/IRegistry.sol +65 -16
- package/contracts/registry/IRegistryService.sol +0 -9
- package/contracts/registry/Registry.sol +340 -211
- package/contracts/registry/RegistryAdmin.sol +171 -72
- package/contracts/registry/RegistryService.sol +59 -66
- package/contracts/registry/RegistryServiceManager.sol +4 -4
- package/contracts/registry/{ReleaseManager.sol → ReleaseRegistry.sol} +60 -56
- package/contracts/registry/ServiceAuthorizationV3.sol +11 -13
- package/contracts/registry/TokenRegistry.sol +2 -2
- package/contracts/shared/Component.sol +30 -43
- package/contracts/shared/ComponentService.sol +88 -28
- package/contracts/shared/ComponentServiceManager.sol +10 -7
- package/contracts/shared/ComponentVerifyingService.sol +2 -3
- package/contracts/shared/ContractLib.sol +38 -0
- package/contracts/shared/IComponent.sol +4 -4
- package/contracts/shared/IComponentService.sol +15 -9
- package/contracts/shared/IInstanceLinkedComponent.sol +9 -10
- package/contracts/shared/IPolicyHolder.sol +12 -22
- package/contracts/shared/IService.sol +1 -1
- package/contracts/shared/{ERC165.sol → InitializableERC165.sol} +3 -3
- package/contracts/shared/InstanceLinkedComponent.sol +26 -6
- package/contracts/shared/{NftIdSetManager.sol → NftIdSet.sol} +1 -1
- package/contracts/shared/NftOwnable.sol +7 -7
- package/contracts/shared/PolicyHolder.sol +17 -57
- package/contracts/shared/Registerable.sol +4 -4
- package/contracts/shared/RegistryLinked.sol +3 -2
- package/contracts/shared/Service.sol +19 -15
- package/contracts/shared/TokenHandler.sol +100 -19
- package/contracts/shared/TokenHandlerDeployerLib.sol +12 -0
- package/contracts/staking/IStaking.sol +3 -3
- package/contracts/staking/IStakingService.sol +12 -5
- package/contracts/staking/StakeManagerLib.sol +18 -25
- package/contracts/staking/Staking.sol +27 -42
- package/contracts/staking/StakingManager.sol +10 -12
- package/contracts/staking/StakingReader.sol +23 -20
- package/contracts/staking/StakingService.sol +10 -14
- package/contracts/staking/StakingServiceManager.sol +4 -4
- package/contracts/staking/StakingStore.sol +12 -22
- package/contracts/staking/TargetManagerLib.sol +7 -3
- package/contracts/type/Amount.sol +27 -5
- package/contracts/type/Blocknumber.sol +7 -1
- package/contracts/type/ClaimId.sol +6 -1
- package/contracts/type/NftId.sol +1 -0
- package/contracts/type/ObjectType.sol +18 -18
- package/contracts/type/PayoutId.sol +10 -10
- package/contracts/type/Referral.sol +1 -0
- package/contracts/type/RiskId.sol +15 -1
- package/contracts/type/Seconds.sol +21 -1
- package/contracts/type/StateId.sol +1 -0
- package/contracts/type/Timestamp.sol +11 -1
- package/contracts/type/UFixed.sol +33 -10
- package/contracts/type/Version.sol +3 -1
- package/contracts/{shared → upgradeability}/ProxyManager.sol +70 -38
- package/contracts/{shared → upgradeability}/UpgradableProxyWithAdmin.sol +1 -3
- package/contracts/{shared → upgradeability}/Versionable.sol +2 -2
- package/package.json +3 -3
- package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +0 -4
- package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +0 -703
- package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.dbg.json +0 -4
- 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 -708
- package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
- package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +0 -702
- package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +0 -4
- package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +0 -1159
- 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/IVersionable.sol/IVersionable.dbg.json +0 -4
- package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.dbg.json +0 -4
- package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.json +0 -39
- package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.dbg.json +0 -4
- package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +0 -4
- package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +0 -617
- package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +0 -4
- package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +0 -4
- package/contracts/product/ProductServiceManager.sol +0 -42
- package/contracts/shared/InitializableCustom.sol +0 -177
- /package/contracts/{shared → upgradeability}/IVersionable.sol +0 -0
@@ -7,11 +7,11 @@ import {IRegistry} from "./IRegistry.sol";
|
|
7
7
|
import {IService} from "../shared/IService.sol";
|
8
8
|
import {IServiceAuthorization} from "../authorization/IServiceAuthorization.sol";
|
9
9
|
import {IStaking} from "../staking/IStaking.sol";
|
10
|
-
import {ObjectType, ObjectTypeLib, ALL, POOL, RELEASE} from "../type/ObjectType.sol";
|
11
|
-
import {
|
10
|
+
import {ObjectType, ObjectTypeLib, ALL, REGISTRY, STAKING, POOL, RELEASE} from "../type/ObjectType.sol";
|
11
|
+
import {ReleaseRegistry} from "./ReleaseRegistry.sol";
|
12
12
|
import {RoleId, RoleIdLib, ADMIN_ROLE, GIF_MANAGER_ROLE, GIF_ADMIN_ROLE, PUBLIC_ROLE} from "../type/RoleId.sol";
|
13
13
|
import {StakingStore} from "../staking/StakingStore.sol";
|
14
|
-
import {
|
14
|
+
import {TokenHandler} from "../shared/TokenHandler.sol";
|
15
15
|
import {TokenRegistry} from "./TokenRegistry.sol";
|
16
16
|
import {VersionPart} from "../type/Version.sol";
|
17
17
|
|
@@ -26,37 +26,33 @@ import {VersionPart} from "../type/Version.sol";
|
|
26
26
|
- MUST have 1 member at any time
|
27
27
|
- granted/revoked ONLY in transferAdminRole() -> consider lock out situations!!!
|
28
28
|
- responsible for creation and activation of releases
|
29
|
-
|
30
|
-
createServiceTarget(type, release)
|
31
|
-
createServiceRole(type,release)
|
32
|
-
getServiceRole(type, release)
|
33
29
|
*/
|
34
30
|
contract RegistryAdmin is
|
35
31
|
AccessAdmin
|
36
32
|
{
|
37
|
-
error ErrorRegistryAdminIsAlreadySetUp();
|
38
|
-
|
39
33
|
string public constant GIF_ADMIN_ROLE_NAME = "GifAdminRole";
|
40
34
|
string public constant GIF_MANAGER_ROLE_NAME = "GifManagerRole";
|
41
35
|
string public constant POOL_SERVICE_ROLE_NAME = "PoolServiceRole";
|
42
|
-
string public constant
|
36
|
+
string public constant RELEASE_REGISTRY_ROLE_NAME = "ReleaseRegistryRole";
|
37
|
+
string public constant REGISTRY_SERVICE_ROLE_NAME = "RegistryServiceRole";
|
43
38
|
string public constant STAKING_SERVICE_ROLE_NAME = "StakingServiceRole";
|
44
39
|
string public constant STAKING_ROLE_NAME = "StakingRole";
|
45
40
|
|
46
|
-
string public constant
|
41
|
+
string public constant REGISTRY_TARGET_NAME = "Registry";
|
42
|
+
string public constant RELEASE_REGISTRY_TARGET_NAME = "ReleaseRegistry";
|
47
43
|
string public constant TOKEN_REGISTRY_TARGET_NAME = "TokenRegistry";
|
48
44
|
string public constant STAKING_TARGET_NAME = "Staking";
|
49
45
|
string public constant STAKING_STORE_TARGET_NAME = "StakingStore";
|
50
46
|
|
51
47
|
uint8 public constant MAX_NUM_RELEASES = 99;
|
52
|
-
|
48
|
+
// TODO consider deleting this
|
53
49
|
mapping(address service => VersionPart majorVersion) private _ServiceRelease;
|
54
50
|
|
55
|
-
address
|
51
|
+
address internal _registry;
|
52
|
+
address private _releaseRegistry;
|
56
53
|
address private _tokenRegistry;
|
57
54
|
address private _staking;
|
58
55
|
address private _stakingStore;
|
59
|
-
bool private _setupCompleted;
|
60
56
|
|
61
57
|
constructor() AccessAdmin() { }
|
62
58
|
|
@@ -66,12 +62,11 @@ contract RegistryAdmin is
|
|
66
62
|
address gifManager
|
67
63
|
)
|
68
64
|
external
|
65
|
+
initializer
|
69
66
|
onlyDeployer()
|
70
67
|
{
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
_releaseManager = registry.getReleaseManagerAddress();
|
68
|
+
_registry = address(registry);
|
69
|
+
_releaseRegistry = registry.getReleaseRegistryAddress();
|
75
70
|
_tokenRegistry = registry.getTokenRegistryAddress();
|
76
71
|
_staking = registry.getStakingAddress();
|
77
72
|
_stakingStore = address(
|
@@ -83,7 +78,8 @@ contract RegistryAdmin is
|
|
83
78
|
_setupGifAdminRole(gifAdmin);
|
84
79
|
_setupGifManagerRole(gifManager);
|
85
80
|
|
86
|
-
|
81
|
+
_setupReleaseRegistry();
|
82
|
+
_setupRegistry();
|
87
83
|
_setupStaking();
|
88
84
|
}
|
89
85
|
|
@@ -93,15 +89,46 @@ contract RegistryAdmin is
|
|
93
89
|
/// Permissioned function: Access is restricted to release manager.
|
94
90
|
function authorizeService(
|
95
91
|
IServiceAuthorization serviceAuthorization,
|
96
|
-
IService service
|
92
|
+
IService service,
|
93
|
+
ObjectType serviceDomain,
|
94
|
+
VersionPart releaseVersion
|
97
95
|
)
|
98
96
|
external
|
99
97
|
restricted()
|
100
98
|
{
|
101
|
-
_createServiceTargetAndRole(service);
|
102
|
-
_authorizeServiceFunctions(serviceAuthorization, service);
|
99
|
+
_createServiceTargetAndRole(service, serviceDomain, releaseVersion);
|
100
|
+
_authorizeServiceFunctions(serviceAuthorization, service, serviceDomain, releaseVersion);
|
101
|
+
}
|
102
|
+
|
103
|
+
function grantServiceRole(
|
104
|
+
IService service,
|
105
|
+
ObjectType domain,
|
106
|
+
VersionPart version
|
107
|
+
)
|
108
|
+
external
|
109
|
+
restricted()
|
110
|
+
{
|
111
|
+
_grantRoleToAccount(
|
112
|
+
RoleIdLib.roleForTypeAndVersion(
|
113
|
+
domain,
|
114
|
+
version),
|
115
|
+
address(service));
|
103
116
|
}
|
104
117
|
|
118
|
+
function revokeServiceRole(
|
119
|
+
IService service,
|
120
|
+
ObjectType domain,
|
121
|
+
VersionPart version
|
122
|
+
)
|
123
|
+
external
|
124
|
+
restricted()
|
125
|
+
{
|
126
|
+
_revokeRoleFromAccount(
|
127
|
+
RoleIdLib.roleForTypeAndVersion(
|
128
|
+
domain,
|
129
|
+
version),
|
130
|
+
address(service));
|
131
|
+
}
|
105
132
|
|
106
133
|
function grantServiceRoleForAllVersions(IService service, ObjectType domain)
|
107
134
|
external
|
@@ -112,14 +139,44 @@ contract RegistryAdmin is
|
|
112
139
|
address(service));
|
113
140
|
}
|
114
141
|
|
142
|
+
function revokeServiceRoleForAllVersions(IService service, ObjectType domain)
|
143
|
+
external
|
144
|
+
restricted()
|
145
|
+
{
|
146
|
+
_revokeRoleFromAccount(
|
147
|
+
RoleIdLib.roleForTypeAndAllVersions(domain),
|
148
|
+
address(service));
|
149
|
+
}
|
115
150
|
|
116
|
-
function
|
151
|
+
/*function transferAdmin(address to)
|
152
|
+
external
|
153
|
+
restricted // only with GIF_ADMIN_ROLE or nft owner
|
154
|
+
{
|
155
|
+
_accessManager.revoke(GIF_ADMIN_ROLE, );
|
156
|
+
_accesssManager.grant(GIF_ADMIN_ROLE, to, 0);
|
157
|
+
}*/
|
158
|
+
|
159
|
+
//--- view functions ----------------------------------------------------//
|
160
|
+
|
161
|
+
function getGifAdminRole() external view returns (RoleId) {
|
162
|
+
return GIF_ADMIN_ROLE();
|
163
|
+
}
|
164
|
+
|
165
|
+
function getGifManagerRole() external view returns (RoleId) {
|
166
|
+
return GIF_MANAGER_ROLE();
|
167
|
+
}
|
168
|
+
|
169
|
+
//--- private functions -------------------------------------------------//
|
170
|
+
|
171
|
+
function _createServiceTargetAndRole(
|
172
|
+
IService service,
|
173
|
+
ObjectType serviceDomain,
|
174
|
+
VersionPart releaseVersion
|
175
|
+
)
|
117
176
|
private
|
118
177
|
{
|
119
|
-
ObjectType serviceDomain = service.getDomain();
|
120
178
|
string memory baseName = ObjectTypeLib.toName(serviceDomain);
|
121
|
-
|
122
|
-
uint256 versionInt = version.toInt();
|
179
|
+
uint256 versionInt = releaseVersion.toInt();
|
123
180
|
|
124
181
|
// create service target
|
125
182
|
string memory serviceTargetName = ObjectTypeLib.toVersionedName(
|
@@ -134,7 +191,7 @@ contract RegistryAdmin is
|
|
134
191
|
// create service role
|
135
192
|
RoleId serviceRoleId = RoleIdLib.roleForTypeAndVersion(
|
136
193
|
serviceDomain,
|
137
|
-
|
194
|
+
releaseVersion);
|
138
195
|
|
139
196
|
_createRole(
|
140
197
|
serviceRoleId,
|
@@ -155,15 +212,15 @@ contract RegistryAdmin is
|
|
155
212
|
|
156
213
|
function _authorizeServiceFunctions(
|
157
214
|
IServiceAuthorization serviceAuthorization,
|
158
|
-
IService service
|
215
|
+
IService service,
|
216
|
+
ObjectType serviceDomain,
|
217
|
+
VersionPart releaseVersion
|
159
218
|
)
|
160
219
|
private
|
161
220
|
{
|
162
|
-
ObjectType serviceDomain = service.getDomain();
|
163
221
|
ObjectType authorizedDomain;
|
164
222
|
RoleId authorizedRoleId;
|
165
223
|
|
166
|
-
VersionPart release = service.getVersion().toMajorPart();
|
167
224
|
ObjectType[] memory authorizedDomains = serviceAuthorization.getAuthorizedDomains(serviceDomain);
|
168
225
|
|
169
226
|
for (uint256 i = 0; i < authorizedDomains.length; i++) {
|
@@ -175,7 +232,7 @@ contract RegistryAdmin is
|
|
175
232
|
} else {
|
176
233
|
authorizedRoleId = RoleIdLib.roleForTypeAndVersion(
|
177
234
|
authorizedDomain,
|
178
|
-
|
235
|
+
releaseVersion);
|
179
236
|
}
|
180
237
|
|
181
238
|
// get authorized functions for authorized domain
|
@@ -190,27 +247,12 @@ contract RegistryAdmin is
|
|
190
247
|
}
|
191
248
|
}
|
192
249
|
|
193
|
-
|
194
|
-
external
|
195
|
-
restricted // only with GIF_ADMIN_ROLE or nft owner
|
196
|
-
{
|
197
|
-
_accessManager.revoke(GIF_ADMIN_ROLE, );
|
198
|
-
_accesssManager.grant(GIF_ADMIN_ROLE, to, 0);
|
199
|
-
}*/
|
200
|
-
|
201
|
-
//--- view functions ----------------------------------------------------//
|
202
|
-
|
203
|
-
function getGifAdminRole() external view returns (RoleId) {
|
204
|
-
return GIF_ADMIN_ROLE();
|
205
|
-
}
|
206
|
-
|
207
|
-
function getGifManagerRole() external view returns (RoleId) {
|
208
|
-
return GIF_MANAGER_ROLE();
|
209
|
-
}
|
250
|
+
//--- private initialization functions -------------------------------------------//
|
210
251
|
|
211
|
-
|
212
|
-
|
213
|
-
|
252
|
+
function _setupGifAdminRole(address gifAdmin)
|
253
|
+
private
|
254
|
+
onlyInitializing()
|
255
|
+
{
|
214
256
|
|
215
257
|
_createRole(
|
216
258
|
GIF_ADMIN_ROLE(),
|
@@ -220,19 +262,27 @@ contract RegistryAdmin is
|
|
220
262
|
maxMemberCount: 2, // TODO decide on max member count
|
221
263
|
name: GIF_ADMIN_ROLE_NAME}));
|
222
264
|
|
223
|
-
// for
|
265
|
+
// for Registry
|
224
266
|
FunctionInfo[] memory functions;
|
267
|
+
functions = new FunctionInfo[](1);
|
268
|
+
functions[0] = toFunction(IRegistry.registerRegistry.selector, "registerRegistry");
|
269
|
+
_authorizeTargetFunctions(_registry, GIF_ADMIN_ROLE(), functions);
|
270
|
+
|
271
|
+
// for ReleaseRegistry
|
225
272
|
functions = new FunctionInfo[](4);
|
226
|
-
functions[0] = toFunction(
|
227
|
-
functions[1] = toFunction(
|
228
|
-
functions[2] = toFunction(
|
229
|
-
functions[3] = toFunction(
|
230
|
-
_authorizeTargetFunctions(
|
273
|
+
functions[0] = toFunction(ReleaseRegistry.createNextRelease.selector, "createNextRelease");
|
274
|
+
functions[1] = toFunction(ReleaseRegistry.activateNextRelease.selector, "activateNextRelease");
|
275
|
+
functions[2] = toFunction(ReleaseRegistry.pauseRelease.selector, "pauseRelease");
|
276
|
+
functions[3] = toFunction(ReleaseRegistry.unpauseRelease.selector, "unpauseRelease");
|
277
|
+
_authorizeTargetFunctions(_releaseRegistry, GIF_ADMIN_ROLE(), functions);
|
231
278
|
|
232
279
|
_grantRoleToAccount(GIF_ADMIN_ROLE(), gifAdmin);
|
233
280
|
}
|
234
281
|
|
235
|
-
function _setupGifManagerRole(address gifManager)
|
282
|
+
function _setupGifManagerRole(address gifManager)
|
283
|
+
private
|
284
|
+
onlyInitializing()
|
285
|
+
{
|
236
286
|
|
237
287
|
_createRole(
|
238
288
|
GIF_MANAGER_ROLE(),
|
@@ -253,40 +303,81 @@ contract RegistryAdmin is
|
|
253
303
|
functions[4] = toFunction(TokenRegistry.setActiveWithVersionCheck.selector, "setActiveWithVersionCheck");
|
254
304
|
_authorizeTargetFunctions(_tokenRegistry, GIF_MANAGER_ROLE(), functions);
|
255
305
|
|
256
|
-
// for
|
306
|
+
// for ReleaseRegistry
|
257
307
|
functions = new FunctionInfo[](2);
|
258
|
-
functions[0] = toFunction(
|
259
|
-
functions[1] = toFunction(
|
260
|
-
_authorizeTargetFunctions(
|
308
|
+
functions[0] = toFunction(ReleaseRegistry.prepareNextRelease.selector, "prepareNextRelease");
|
309
|
+
functions[1] = toFunction(ReleaseRegistry.registerService.selector, "registerService");
|
310
|
+
_authorizeTargetFunctions(_releaseRegistry, GIF_MANAGER_ROLE(), functions);
|
261
311
|
|
262
312
|
_grantRoleToAccount(GIF_MANAGER_ROLE(), gifManager);
|
263
313
|
}
|
264
314
|
|
265
315
|
|
266
|
-
function
|
316
|
+
function _setupReleaseRegistry()
|
317
|
+
private
|
318
|
+
onlyInitializing()
|
319
|
+
{
|
267
320
|
|
268
|
-
_createTarget(
|
321
|
+
_createTarget(_releaseRegistry, RELEASE_REGISTRY_TARGET_NAME, true, false);
|
269
322
|
|
270
|
-
RoleId
|
323
|
+
RoleId releaseRegistryRoleId = RoleIdLib.roleForType(RELEASE());
|
271
324
|
_createRole(
|
272
|
-
|
325
|
+
releaseRegistryRoleId,
|
273
326
|
toRole({
|
274
327
|
adminRoleId: ADMIN_ROLE(),
|
275
328
|
roleType: RoleType.Contract,
|
276
329
|
maxMemberCount: 1,
|
277
|
-
name:
|
330
|
+
name: RELEASE_REGISTRY_ROLE_NAME}));
|
278
331
|
|
279
332
|
FunctionInfo[] memory functions;
|
280
|
-
functions = new FunctionInfo[](
|
333
|
+
functions = new FunctionInfo[](5);
|
281
334
|
functions[0] = toFunction(RegistryAdmin.authorizeService.selector, "authorizeService");
|
282
335
|
functions[1] = toFunction(RegistryAdmin.grantServiceRoleForAllVersions.selector, "grantServiceRoleForAllVersions");
|
283
|
-
|
336
|
+
functions[2] = toFunction(RegistryAdmin.revokeServiceRoleForAllVersions.selector, "revokeServiceRoleForAllVersions");
|
337
|
+
functions[3] = toFunction(RegistryAdmin.grantServiceRole.selector, "grantServiceRole");
|
338
|
+
functions[4] = toFunction(RegistryAdmin.revokeServiceRole.selector, "revokeServiceRole");
|
339
|
+
_authorizeTargetFunctions(address(this), releaseRegistryRoleId, functions);
|
284
340
|
|
285
|
-
_grantRoleToAccount(
|
341
|
+
_grantRoleToAccount(releaseRegistryRoleId, _releaseRegistry);
|
286
342
|
}
|
287
343
|
|
288
344
|
|
289
|
-
function
|
345
|
+
function _setupRegistry()
|
346
|
+
internal
|
347
|
+
virtual
|
348
|
+
onlyInitializing()
|
349
|
+
{
|
350
|
+
_createTarget(_registry, REGISTRY_TARGET_NAME, true, false);
|
351
|
+
|
352
|
+
// registry function authorization for registry service
|
353
|
+
RoleId registryServiceRoleId = RoleIdLib.roleForTypeAndAllVersions(REGISTRY());
|
354
|
+
_createRole(
|
355
|
+
registryServiceRoleId,
|
356
|
+
toRole({
|
357
|
+
adminRoleId: ADMIN_ROLE(),
|
358
|
+
roleType: RoleType.Contract,
|
359
|
+
maxMemberCount: MAX_NUM_RELEASES,
|
360
|
+
name: REGISTRY_SERVICE_ROLE_NAME}));
|
361
|
+
|
362
|
+
// authorize registry service
|
363
|
+
FunctionInfo[] memory functions;
|
364
|
+
functions = new FunctionInfo[](2);
|
365
|
+
functions[0] = toFunction(IRegistry.register.selector, "register");
|
366
|
+
functions[1] = toFunction(IRegistry.registerWithCustomType.selector, "registerWithCustomType");
|
367
|
+
_authorizeTargetFunctions(_registry, registryServiceRoleId, functions);
|
368
|
+
|
369
|
+
// authorize release registry
|
370
|
+
RoleId releaseRegistryRoleId = RoleIdLib.roleForType(RELEASE());
|
371
|
+
functions = new FunctionInfo[](1);
|
372
|
+
functions[0] = toFunction(IRegistry.registerService.selector, "registerService");
|
373
|
+
_authorizeTargetFunctions(_registry, releaseRegistryRoleId, functions);
|
374
|
+
}
|
375
|
+
|
376
|
+
|
377
|
+
function _setupStaking()
|
378
|
+
private
|
379
|
+
onlyInitializing()
|
380
|
+
{
|
290
381
|
_createTarget(_staking, STAKING_TARGET_NAME, true, false);
|
291
382
|
_createTarget(_stakingStore, STAKING_STORE_TARGET_NAME, true, false);
|
292
383
|
|
@@ -359,7 +450,15 @@ contract RegistryAdmin is
|
|
359
450
|
functions[12] = toFunction(StakingStore.claimUpTo.selector, "claimUpTo");
|
360
451
|
functions[13] = toFunction(StakingStore.unstakeUpTo.selector, "unstakeUpTo");
|
361
452
|
_authorizeTargetFunctions(_stakingStore, stakingRoleId, functions);
|
362
|
-
|
453
|
+
|
363
454
|
_grantRoleToAccount(stakingRoleId, _staking);
|
455
|
+
|
456
|
+
// grant token handler authorizations
|
457
|
+
IStaking staking = IStaking(_staking);
|
458
|
+
functions = new FunctionInfo[](2);
|
459
|
+
functions[0] = toFunction(TokenHandler.collectTokens.selector, "collectTokens");
|
460
|
+
functions[1] = toFunction(TokenHandler.distributeTokens.selector, "distributeTokens");
|
461
|
+
|
462
|
+
_authorizeTargetFunctions(address(staking.getTokenHandler()), stakingRoleId, functions);
|
364
463
|
}
|
365
464
|
}
|
@@ -1,32 +1,18 @@
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
2
2
|
pragma solidity ^0.8.20;
|
3
3
|
|
4
|
-
import {ERC165Checker} from "@openzeppelin/contracts/utils/introspection/ERC165Checker.sol";
|
5
|
-
// import {AccessManagedUpgradeable} from "@openzeppelin/contracts-upgradeable/access/manager/AccessManagedUpgradeable.sol";
|
6
|
-
|
7
|
-
import {IRegistry} from "./IRegistry.sol";
|
8
|
-
import {IInstance} from "../instance/IInstance.sol";
|
9
|
-
|
10
4
|
import {IComponent} from "../../contracts/shared/IComponent.sol";
|
5
|
+
import {IDistributionComponent} from "../../contracts/distribution/IDistributionComponent.sol";
|
6
|
+
import {IInstance} from "../instance/IInstance.sol";
|
11
7
|
import {IPoolComponent} from "../../contracts/pool/IPoolComponent.sol";
|
12
8
|
import {IProductComponent} from "../../contracts/product/IProductComponent.sol";
|
13
|
-
import {IDistributionComponent} from "../../contracts/distribution/IDistributionComponent.sol";
|
14
|
-
|
15
|
-
import {IVersionable} from "../../contracts/shared/IVersionable.sol";
|
16
|
-
import {Versionable} from "../../contracts/shared/Versionable.sol";
|
17
9
|
import {IRegisterable} from "../../contracts/shared/IRegisterable.sol";
|
10
|
+
import {IRegistry} from "./IRegistry.sol";
|
11
|
+
import {IRegistryService} from "./IRegistryService.sol";
|
18
12
|
|
19
|
-
import {RoleId, PRODUCT_OWNER_ROLE, POOL_OWNER_ROLE, ORACLE_OWNER_ROLE} from "../../contracts/type/RoleId.sol";
|
20
13
|
import {ObjectType, REGISTRY, SERVICE, PRODUCT, ORACLE, POOL, INSTANCE, COMPONENT, DISTRIBUTION, DISTRIBUTOR, APPLICATION, POLICY, CLAIM, BUNDLE, STAKE, STAKING, PRICE} from "../../contracts/type/ObjectType.sol";
|
21
|
-
import {StateId, ACTIVE, PAUSED} from "../../contracts/type/StateId.sol";
|
22
14
|
import {NftId, NftIdLib} from "../../contracts/type/NftId.sol";
|
23
|
-
import {Fee, FeeLib} from "../../contracts/type/Fee.sol";
|
24
|
-
import {Version, VersionPart, VersionLib} from "../../contracts/type/Version.sol";
|
25
|
-
|
26
15
|
import {Service} from "../shared/Service.sol";
|
27
|
-
import {IService} from "../shared/IService.sol";
|
28
|
-
import {IRegistryService} from "./IRegistryService.sol";
|
29
|
-
import {Registry} from "./Registry.sol";
|
30
16
|
|
31
17
|
contract RegistryService is
|
32
18
|
Service,
|
@@ -53,8 +39,8 @@ contract RegistryService is
|
|
53
39
|
address initialAuthority
|
54
40
|
) = abi.decode(data, (address, address));
|
55
41
|
|
56
|
-
|
57
|
-
|
42
|
+
_initializeService(registryAddress, initialAuthority, owner);
|
43
|
+
_registerInterface(type(IRegistryService).interfaceId);
|
58
44
|
}
|
59
45
|
|
60
46
|
|
@@ -89,21 +75,21 @@ contract RegistryService is
|
|
89
75
|
instance.linkToRegisteredNftId(); // asume safe
|
90
76
|
}
|
91
77
|
|
92
|
-
function registerProduct(IComponent product, address owner)
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
{
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
}
|
78
|
+
// function registerProduct(IComponent product, address owner)
|
79
|
+
// external
|
80
|
+
// restricted
|
81
|
+
// returns(
|
82
|
+
// IRegistry.ObjectInfo memory info
|
83
|
+
// )
|
84
|
+
// {
|
85
|
+
// // CAN revert if no ERC165 support -> will revert with empty message
|
86
|
+
// if(!product.supportsInterface(type(IProductComponent).interfaceId)) {
|
87
|
+
// revert ErrorRegistryServiceNotProduct(address(product));
|
88
|
+
// }
|
89
|
+
|
90
|
+
// info = _getAndVerifyContractInfo(product, PRODUCT(), owner);
|
91
|
+
// info.nftId = getRegistry().register(info);
|
92
|
+
// }
|
107
93
|
|
108
94
|
function registerComponent(
|
109
95
|
IComponent component,
|
@@ -125,35 +111,35 @@ contract RegistryService is
|
|
125
111
|
info.nftId = getRegistry().register(info);
|
126
112
|
}
|
127
113
|
|
128
|
-
function registerPool(IComponent pool, address owner)
|
129
|
-
|
130
|
-
|
131
|
-
|
132
|
-
|
133
|
-
|
134
|
-
{
|
135
|
-
|
136
|
-
|
137
|
-
|
138
|
-
|
139
|
-
|
140
|
-
|
141
|
-
}
|
142
|
-
|
143
|
-
function registerDistribution(IComponent distribution, address owner)
|
144
|
-
|
145
|
-
|
146
|
-
|
147
|
-
|
148
|
-
|
149
|
-
{
|
150
|
-
|
151
|
-
|
152
|
-
|
153
|
-
|
154
|
-
|
155
|
-
|
156
|
-
}
|
114
|
+
// function registerPool(IComponent pool, address owner)
|
115
|
+
// external
|
116
|
+
// restricted
|
117
|
+
// returns(
|
118
|
+
// IRegistry.ObjectInfo memory info
|
119
|
+
// )
|
120
|
+
// {
|
121
|
+
// if(!pool.supportsInterface(type(IPoolComponent).interfaceId)) {
|
122
|
+
// revert ErrorRegistryServiceNotPool(address(pool));
|
123
|
+
// }
|
124
|
+
|
125
|
+
// info = _getAndVerifyContractInfo(pool, POOL(), owner);
|
126
|
+
// info.nftId = getRegistry().register(info);
|
127
|
+
// }
|
128
|
+
|
129
|
+
// function registerDistribution(IComponent distribution, address owner)
|
130
|
+
// external
|
131
|
+
// restricted
|
132
|
+
// returns(
|
133
|
+
// IRegistry.ObjectInfo memory info
|
134
|
+
// )
|
135
|
+
// {
|
136
|
+
// if(!distribution.supportsInterface(type(IDistributionComponent).interfaceId)) {
|
137
|
+
// revert ErrorRegistryServiceNotDistribution(address(distribution));
|
138
|
+
// }
|
139
|
+
|
140
|
+
// info = _getAndVerifyContractInfo(distribution, DISTRIBUTION(), owner);
|
141
|
+
// info.nftId = getRegistry().register(info);
|
142
|
+
// }
|
157
143
|
|
158
144
|
function registerDistributor(IRegistry.ObjectInfo memory info)
|
159
145
|
external
|
@@ -254,8 +240,15 @@ contract RegistryService is
|
|
254
240
|
revert ErrorRegistryServiceObjectOwnerZero(info.objectType);
|
255
241
|
}
|
256
242
|
|
257
|
-
if(
|
258
|
-
revert
|
243
|
+
if(owner == msg.sender) {
|
244
|
+
revert ErrorRegistryServiceInvalidInitialOwner(owner);
|
245
|
+
}
|
246
|
+
|
247
|
+
if(getRegistry().isRegistered(owner)) {
|
248
|
+
ObjectType ownerType = getRegistry().getObjectInfo(owner).objectType;
|
249
|
+
if(ownerType == REGISTRY() || ownerType == STAKING() || ownerType == SERVICE() || ownerType == INSTANCE()) {
|
250
|
+
revert ErrorRegistryServiceObjectOwnerRegistered(info.objectType, owner);
|
251
|
+
}
|
259
252
|
}
|
260
253
|
}
|
261
254
|
|
@@ -1,8 +1,8 @@
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
2
2
|
pragma solidity ^0.8.20;
|
3
3
|
|
4
|
-
import {IVersionable} from "../
|
5
|
-
import {ProxyManager} from "../
|
4
|
+
import {IVersionable} from "../upgradeability/IVersionable.sol";
|
5
|
+
import {ProxyManager} from "../upgradeability/ProxyManager.sol";
|
6
6
|
import {RegistryService} from "./RegistryService.sol";
|
7
7
|
|
8
8
|
contract RegistryServiceManager is
|
@@ -21,7 +21,6 @@ contract RegistryServiceManager is
|
|
21
21
|
address registry, // used by implementation
|
22
22
|
bytes32 salt
|
23
23
|
)
|
24
|
-
ProxyManager(registry)
|
25
24
|
{
|
26
25
|
if(authority == address(0)) {
|
27
26
|
revert ErrorRegistryAccessManagerAuthorityZero();
|
@@ -33,7 +32,8 @@ contract RegistryServiceManager is
|
|
33
32
|
|
34
33
|
RegistryService srv = new RegistryService{ salt: salt }();
|
35
34
|
bytes memory data = abi.encode(registry, authority);
|
36
|
-
IVersionable versionable =
|
35
|
+
IVersionable versionable = initialize(
|
36
|
+
registry,
|
37
37
|
address(srv),
|
38
38
|
data,
|
39
39
|
salt);
|