@etherisc/gif-next 0.0.2-b2910e7-757 → 0.0.2-b2e620f-736
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/artifacts/contracts/accounting/AccountingService.sol/AccountingService.dbg.json +4 -0
- package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +1007 -0
- package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +4 -0
- package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +744 -0
- package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.dbg.json +4 -0
- package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.json +791 -0
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +1 -1
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +148 -62
- package/artifacts/contracts/authorization/AccessAdmin.sol/IAccessManagedChecker.dbg.json +4 -0
- package/artifacts/contracts/authorization/AccessAdmin.sol/IAccessManagedChecker.json +24 -0
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +1 -1
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +233 -5
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +149 -21
- 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 +82 -12
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +68 -13
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +1 -1
- 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 +77 -65
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +1 -1
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +152 -33
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +51 -39
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +117 -110
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +46 -48
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +38 -26
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +27 -3
- package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.json +102 -42
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +127 -40
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +260 -185
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +152 -33
- package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +117 -54
- package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +589 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +95 -63
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +111 -48
- package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +589 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +306 -147
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +1 -1
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +193 -45
- package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstance.sol/IInstance.json +118 -21
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +75 -5
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +150 -41
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +355 -99
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +140 -40
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +549 -218
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +87 -60
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +20 -22
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +403 -353
- package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +4 -0
- package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +853 -0
- 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 +1 -1
- package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +16 -5
- package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.dbg.json +4 -0
- package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.json +168 -0
- package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
- package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +1 -1
- package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +1 -1
- package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +68 -56
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +1 -1
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +126 -35
- 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 +38 -26
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +27 -3
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +52 -40
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +98 -83
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +40 -22
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +51 -39
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +127 -40
- package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleService.sol/BundleService.json +102 -310
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +33 -83
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +38 -122
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +38 -26
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +120 -175
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
- package/artifacts/contracts/pool/Pool.sol/Pool.json +51 -39
- package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +4 -0
- package/artifacts/contracts/pool/PoolLib.sol/PoolLib.json +456 -0
- package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolService.sol/PoolService.json +241 -302
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +67 -45
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +91 -65
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +16 -22
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +157 -130
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +152 -33
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +244 -187
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +55 -65
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +61 -10
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +142 -20
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +105 -55
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +27 -3
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +144 -117
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +1 -1
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.json +27 -3
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +198 -181
- package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.dbg.json +4 -0
- package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.json +293 -0
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +51 -45
- package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
- package/artifacts/contracts/product/PricingService.sol/PricingService.json +85 -78
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +31 -33
- package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
- package/artifacts/contracts/product/Product.sol/Product.json +157 -130
- package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +1 -1
- package/artifacts/contracts/product/RiskService.sol/RiskService.json +76 -77
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +25 -19
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +2 -2
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +26 -2
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +31 -7
- package/artifacts/contracts/registry/IRelease.sol/IRelease.dbg.json +4 -0
- package/artifacts/contracts/registry/IRelease.sol/IRelease.json +24 -0
- package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
- package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
- package/artifacts/contracts/registry/Registry.sol/Registry.json +64 -40
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +250 -221
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +51 -44
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +11 -13
- package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +4 -0
- package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +1849 -0
- package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +1 -1
- package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +2 -2
- package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +316 -50
- 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 +4 -4
- package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
- package/artifacts/contracts/shared/Component.sol/Component.json +51 -39
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +119 -514
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +38 -72
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +27 -16
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +1 -1
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +435 -5
- package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +4 -0
- package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.json +24 -0
- package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +4 -0
- package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.json +30 -0
- package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.dbg.json +4 -0
- package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.json +40 -0
- package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponent.sol/IComponent.json +38 -26
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +45 -327
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +38 -26
- 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/IRegisterable.sol/IRegisterable.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +120 -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 +27 -3
- package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +1 -1
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +51 -39
- 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 +1 -1
- package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +2 -2
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +2 -2
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +2 -2
- package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
- package/artifacts/contracts/shared/Registerable.sol/Registerable.json +118 -62
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -2
- package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
- package/artifacts/contracts/shared/Service.sol/Service.json +27 -16
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +63 -162
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +118 -29
- package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +32 -32
- package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
- package/artifacts/contracts/staking/IStaking.sol/IStaking.json +38 -26
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +56 -3
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +1 -1
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +33 -33
- package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
- package/artifacts/contracts/staking/Staking.sol/Staking.json +90 -57
- 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 +27 -19
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +4 -4
- package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingService.sol/StakingService.json +87 -51
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +18 -20
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +129 -129
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +23 -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 +3 -3
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
- package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +2 -2
- package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
- package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +2 -2
- package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
- package/artifacts/contracts/type/Fee.sol/FeeLib.json +3 -3
- package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +1 -1
- package/artifacts/contracts/type/Key32.sol/Key32Lib.json +2 -2
- package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.dbg.json +4 -0
- package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.json +33 -0
- package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/NftId.sol/NftIdLib.json +23 -4
- package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
- package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +2 -2
- package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
- package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +2 -2
- package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +2 -2
- package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
- package/artifacts/contracts/type/Referral.sol/ReferralLib.json +2 -2
- package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +2 -2
- package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +62 -5
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +79 -15
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
- package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +1 -1
- package/artifacts/contracts/type/Selector.sol/SelectorLib.json +21 -2
- package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +1 -1
- package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +2 -2
- package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/String.sol/StrLib.dbg.json +1 -1
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +2 -2
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +3 -3
- package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
- package/artifacts/contracts/type/Version.sol/VersionLib.json +2 -21
- package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
- package/artifacts/contracts/type/Version.sol/VersionPartLib.json +47 -2
- package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +2 -2
- package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +1 -1
- package/contracts/accounting/AccountingService.sol +262 -0
- package/contracts/accounting/AccountingServiceManager.sol +38 -0
- package/contracts/accounting/IAccountingService.sol +45 -0
- package/contracts/authorization/AccessAdmin.sol +177 -84
- package/contracts/authorization/AccessManagerCloneable.sol +136 -3
- package/contracts/authorization/Authorization.sol +277 -229
- package/contracts/authorization/IAccessAdmin.sol +13 -7
- package/contracts/authorization/IAuthorization.sol +15 -1
- package/contracts/distribution/BasicDistribution.sol +4 -4
- package/contracts/distribution/BasicDistributionAuthorization.sol +21 -8
- package/contracts/distribution/Distribution.sol +27 -24
- package/contracts/distribution/DistributionService.sol +18 -15
- package/contracts/distribution/DistributionServiceManager.sol +1 -1
- package/contracts/examples/fire/FirePool.sol +6 -2
- package/contracts/examples/fire/FirePoolAuthorization.sol +2 -1
- package/contracts/examples/fire/FireProduct.sol +8 -1
- package/contracts/examples/fire/FireProductAuthorization.sol +2 -1
- package/contracts/examples/unpermissioned/SimpleDistribution.sol +6 -7
- package/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol +28 -0
- package/contracts/examples/unpermissioned/SimplePool.sol +7 -9
- package/contracts/examples/unpermissioned/SimplePoolAuthorization.sol +28 -0
- package/contracts/examples/unpermissioned/SimpleProduct.sol +32 -0
- package/contracts/instance/BundleSet.sol +42 -38
- package/contracts/instance/IInstance.sol +13 -7
- package/contracts/instance/IInstanceService.sol +7 -1
- package/contracts/instance/Instance.sol +41 -16
- package/contracts/instance/InstanceAdmin.sol +241 -76
- package/contracts/instance/InstanceAuthorizationV3.sol +53 -31
- package/contracts/instance/InstanceReader.sol +162 -32
- package/contracts/instance/InstanceService.sol +59 -35
- package/contracts/instance/InstanceServiceManager.sol +1 -1
- package/contracts/instance/InstanceStore.sol +13 -2
- package/contracts/instance/RiskSet.sol +118 -0
- package/contracts/instance/base/ObjectCounter.sol +1 -2
- package/contracts/instance/base/ObjectLifecycle.sol +4 -2
- package/contracts/instance/base/ObjectSet.sol +31 -33
- package/contracts/instance/base/ObjectSetHelperLib.sol +30 -0
- package/contracts/instance/module/IComponents.sol +3 -2
- package/contracts/instance/module/IRisk.sol +3 -0
- package/contracts/oracle/BasicOracleAuthorization.sol +3 -12
- package/contracts/oracle/Oracle.sol +1 -1
- package/contracts/oracle/OracleService.sol +92 -74
- package/contracts/oracle/OracleServiceManager.sol +1 -1
- package/contracts/pool/BasicPoolAuthorization.sol +21 -13
- package/contracts/pool/BundleService.sol +35 -125
- package/contracts/pool/BundleServiceManager.sol +1 -1
- package/contracts/pool/IBundleService.sol +13 -38
- package/contracts/pool/IPoolService.sol +49 -56
- package/contracts/pool/Pool.sol +9 -9
- package/contracts/pool/PoolLib.sol +216 -0
- package/contracts/pool/PoolService.sol +323 -186
- package/contracts/pool/PoolServiceManager.sol +1 -1
- package/contracts/product/ApplicationService.sol +15 -15
- package/contracts/product/ApplicationServiceManager.sol +1 -1
- package/contracts/product/BasicProduct.sol +2 -0
- package/contracts/product/BasicProductAuthorization.sol +24 -10
- package/contracts/product/ClaimService.sol +157 -139
- package/contracts/product/ClaimServiceManager.sol +1 -1
- package/contracts/product/IApplicationService.sol +5 -2
- package/contracts/product/IClaimService.sol +14 -2
- package/contracts/product/IPolicyService.sol +23 -10
- package/contracts/product/IProductComponent.sol +4 -1
- package/contracts/product/PolicyService.sol +269 -257
- package/contracts/product/PolicyServiceLib.sol +65 -0
- package/contracts/product/PolicyServiceManager.sol +1 -1
- package/contracts/product/PricingService.sol +23 -19
- package/contracts/product/PricingServiceManager.sol +3 -3
- package/contracts/product/Product.sol +53 -7
- package/contracts/product/RiskService.sol +74 -25
- package/contracts/product/RiskServiceManager.sol +1 -1
- package/contracts/registry/ChainNft.sol +4 -2
- package/contracts/registry/IRegistry.sol +8 -15
- package/contracts/registry/IRelease.sol +26 -0
- package/contracts/registry/Registry.sol +7 -2
- package/contracts/registry/RegistryAdmin.sol +129 -237
- package/contracts/registry/RegistryService.sol +3 -3
- package/contracts/registry/RegistryServiceManager.sol +1 -1
- package/contracts/registry/ReleaseAdmin.sol +245 -0
- package/contracts/registry/ReleaseLifecycle.sol +2 -0
- package/contracts/registry/ReleaseRegistry.sol +127 -101
- package/contracts/registry/ServiceAuthorizationV3.sol +163 -40
- package/contracts/registry/TokenRegistry.sol +6 -8
- package/contracts/shared/Component.sol +30 -38
- package/contracts/shared/ComponentService.sol +165 -302
- package/contracts/shared/ComponentServiceManager.sol +1 -1
- package/contracts/shared/ComponentVerifyingService.sol +1 -1
- package/contracts/shared/ContractLib.sol +208 -9
- package/contracts/shared/IComponent.sol +3 -9
- package/contracts/shared/IComponentService.sol +2 -27
- package/contracts/shared/IRegisterable.sol +15 -4
- package/contracts/shared/IService.sol +3 -5
- package/contracts/shared/InstanceLinkedComponent.sol +3 -3
- package/contracts/shared/NftOwnable.sol +4 -4
- package/contracts/shared/PolicyHolder.sol +1 -1
- package/contracts/shared/Registerable.sol +45 -19
- package/contracts/shared/RegistryLinked.sol +1 -1
- package/contracts/shared/Service.sol +8 -27
- package/contracts/shared/TokenHandler.sol +40 -96
- package/contracts/staking/IStaking.sol +0 -8
- package/contracts/staking/IStakingService.sol +8 -0
- package/contracts/staking/StakeManagerLib.sol +1 -1
- package/contracts/staking/Staking.sol +34 -13
- package/contracts/staking/StakingReader.sol +1 -1
- package/contracts/staking/StakingService.sol +32 -55
- package/contracts/staking/StakingServiceManager.sol +5 -4
- package/contracts/type/Key32.sol +2 -2
- package/contracts/type/Key32Set.sol +62 -0
- package/contracts/type/NftId.sol +6 -0
- package/contracts/type/ObjectType.sol +48 -21
- package/contracts/type/RiskId.sol +23 -6
- package/contracts/type/RoleId.sol +24 -4
- package/contracts/type/Selector.sol +5 -0
- package/contracts/type/Timestamp.sol +0 -5
- package/contracts/type/UFixed.sol +9 -119
- package/contracts/type/Version.sol +15 -5
- package/contracts/upgradeability/ProxyManager.sol +1 -1
- package/package.json +1 -1
- package/artifacts/contracts/authorization/ReleaseAccessManager.sol/ReleaseAccessManager.dbg.json +0 -4
- package/artifacts/contracts/authorization/ReleaseAccessManager.sol/ReleaseAccessManager.json +0 -1196
- package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +0 -4
- package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +0 -129
- package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +0 -4
- package/artifacts/contracts/type/UFixed.sol/MathLib.json +0 -16
- package/contracts/authorization/ReleaseAccessManager.sol +0 -38
- package/contracts/instance/module/IAccess.sol +0 -46
@@ -1,19 +1,20 @@
|
|
1
1
|
// SPDX-License-Identifier: UNLICENSED
|
2
2
|
pragma solidity ^0.8.20;
|
3
3
|
|
4
|
-
|
5
|
-
import {AccessAdmin} from "../authorization/AccessAdmin.sol";
|
6
|
-
import {AccessManagerCloneable} from "../authorization/AccessManagerCloneable.sol";
|
4
|
+
import {IAccess} from "../authorization/IAccess.sol";
|
7
5
|
import {IAuthorization} from "../authorization/IAuthorization.sol";
|
8
6
|
import {IInstanceLinkedComponent} from "../shared/IInstanceLinkedComponent.sol";
|
9
|
-
import {IAuthorization} from "../authorization/IAuthorization.sol";
|
10
7
|
import {IRegistry} from "../registry/IRegistry.sol";
|
11
8
|
import {IInstance} from "./IInstance.sol";
|
9
|
+
|
10
|
+
import {AccessAdmin} from "../authorization/AccessAdmin.sol";
|
11
|
+
import {AccessManagerCloneable} from "../authorization/AccessManagerCloneable.sol";
|
12
|
+
import {NftId} from "../type/NftId.sol";
|
12
13
|
import {ObjectType} from "../type/ObjectType.sol";
|
13
14
|
import {RoleId, RoleIdLib} from "../type/RoleId.sol";
|
14
15
|
import {Str, StrLib} from "../type/String.sol";
|
15
16
|
import {TokenHandler} from "../shared/TokenHandler.sol";
|
16
|
-
import {VersionPart} from "../type/Version.sol";
|
17
|
+
import {VersionPart, VersionPartLib} from "../type/Version.sol";
|
17
18
|
|
18
19
|
|
19
20
|
contract InstanceAdmin is
|
@@ -23,83 +24,107 @@ contract InstanceAdmin is
|
|
23
24
|
string public constant INSTANCE_STORE_TARGET_NAME = "InstanceStore";
|
24
25
|
string public constant INSTANCE_ADMIN_TARGET_NAME = "InstanceAdmin";
|
25
26
|
string public constant BUNDLE_SET_TARGET_NAME = "BundleSet";
|
27
|
+
string public constant RISK_SET_TAGET_NAME = "RiskSet";
|
26
28
|
|
27
29
|
uint64 public constant CUSTOM_ROLE_ID_MIN = 10000; // MUST be even
|
28
30
|
|
31
|
+
error ErrorInstanceAdminCallerNotInstanceOwner(address caller);
|
32
|
+
error ErrorInstanceAdminCallerNotInstance(address caller);
|
33
|
+
error ErrorInstanceAdminInstanceAlreadyLocked();
|
29
34
|
error ErrorInstanceAdminNotRegistered(address target);
|
35
|
+
|
30
36
|
error ErrorInstanceAdminAlreadyAuthorized(address target);
|
37
|
+
error ErrorInstanceAdminNotComponentRole(RoleId roleId);
|
38
|
+
error ErrorInstanceAdminRoleAlreadyExists(RoleId roleId);
|
39
|
+
error ErrorInstanceAdminRoleTypeNotContract(RoleId roleId, IAccess.RoleType roleType);
|
40
|
+
|
31
41
|
error ErrorInstanceAdminReleaseMismatch();
|
32
42
|
error ErrorInstanceAdminExpectedTargetMissing(string targetName);
|
33
43
|
|
34
44
|
IInstance internal _instance;
|
35
45
|
IRegistry internal _registry;
|
36
|
-
uint64 internal
|
46
|
+
uint64 internal _customIdNext;
|
47
|
+
|
48
|
+
mapping(address target => RoleId roleId) internal _targetRoleId;
|
49
|
+
uint64 internal _components;
|
37
50
|
|
38
51
|
IAuthorization internal _instanceAuthorization;
|
39
52
|
|
53
|
+
|
54
|
+
modifier onlyInstanceOwner() {
|
55
|
+
if(msg.sender != _registry.ownerOf(address(_instance))) {
|
56
|
+
revert ErrorInstanceAdminCallerNotInstanceOwner(msg.sender);
|
57
|
+
}
|
58
|
+
_;
|
59
|
+
}
|
60
|
+
|
61
|
+
modifier onlyInstance() {
|
62
|
+
if(msg.sender != address(_instance)) {
|
63
|
+
revert ErrorInstanceAdminCallerNotInstance(msg.sender);
|
64
|
+
}
|
65
|
+
_;
|
66
|
+
}
|
67
|
+
|
40
68
|
/// @dev Only used for master instance admin.
|
41
69
|
/// Contracts created via constructor come with disabled initializers.
|
42
70
|
constructor(
|
43
71
|
address instanceAuthorization
|
44
|
-
)
|
45
|
-
|
46
|
-
|
72
|
+
) {
|
73
|
+
initialize(new AccessManagerCloneable());
|
74
|
+
|
47
75
|
_instanceAuthorization = IAuthorization(instanceAuthorization);
|
76
|
+
|
77
|
+
_disableInitializers();
|
48
78
|
}
|
49
79
|
|
50
|
-
|
51
|
-
/// Internally the function creates an instance specific OpenZeppelin AccessManager that is used as the authority
|
52
|
-
/// for the inststance authorizatios.
|
53
|
-
/// Important: Initialization of this instance admin is only complete after calling function initializeInstance.
|
80
|
+
|
54
81
|
function initialize(
|
55
|
-
AccessManagerCloneable
|
56
|
-
|
82
|
+
AccessManagerCloneable clonedAccessManager,
|
83
|
+
IRegistry registry,
|
84
|
+
VersionPart release
|
57
85
|
)
|
58
86
|
external
|
59
|
-
initializer()
|
87
|
+
initializer()
|
60
88
|
{
|
61
|
-
|
62
|
-
_initializeAuthority(address(accessManager));
|
63
|
-
|
64
|
-
// create basic instance independent setup
|
65
|
-
_createAdminAndPublicRoles();
|
89
|
+
__AccessAdmin_init(clonedAccessManager);
|
66
90
|
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
function _checkTargetIsReadyForAuthorization(address target)
|
72
|
-
internal
|
73
|
-
view
|
74
|
-
{
|
75
|
-
if (address(_registry) != address(0) && !_registry.isRegistered(target)) {
|
76
|
-
revert ErrorInstanceAdminNotRegistered(target);
|
77
|
-
}
|
91
|
+
clonedAccessManager.completeSetup(
|
92
|
+
address(registry),
|
93
|
+
release);
|
78
94
|
|
79
|
-
|
80
|
-
revert ErrorInstanceAdminAlreadyAuthorized(target);
|
81
|
-
}
|
95
|
+
_registry = registry;
|
82
96
|
}
|
83
97
|
|
84
|
-
/// @dev Completes the initialization of this instance admin using the provided instance.
|
98
|
+
/// @dev Completes the initialization of this instance admin using the provided instance, registry and version.
|
99
|
+
/// Important: Initialization of instance admin is only complete after calling this function.
|
85
100
|
/// Important: The instance MUST be registered and all instance supporting contracts must be wired to this instance.
|
86
|
-
function
|
101
|
+
function completeSetup(
|
102
|
+
address instance,
|
103
|
+
address authorization
|
104
|
+
)
|
87
105
|
external
|
106
|
+
reinitializer(uint64(getRelease().toInt()))
|
107
|
+
onlyDeployer()
|
88
108
|
{
|
89
|
-
|
109
|
+
_components = 0;
|
110
|
+
_customIdNext = CUSTOM_ROLE_ID_MIN;
|
111
|
+
_instance = IInstance(instance);
|
112
|
+
_instanceAuthorization = IAuthorization(authorization);
|
90
113
|
|
91
|
-
|
92
|
-
_instance = IInstance(instanceAddress);
|
93
|
-
_registry = _instance.getRegistry();
|
114
|
+
_checkTargetIsReadyForAuthorization(instance);
|
94
115
|
|
95
116
|
// check matching releases
|
96
|
-
if (_instanceAuthorization.getRelease() !=
|
117
|
+
if (_instanceAuthorization.getRelease() != getRelease()) {
|
97
118
|
revert ErrorInstanceAdminReleaseMismatch();
|
98
119
|
}
|
99
120
|
|
121
|
+
// create instance role and target
|
122
|
+
_setupInstance(instance);
|
123
|
+
|
100
124
|
// add instance authorization
|
101
125
|
_createRoles(_instanceAuthorization);
|
102
|
-
|
126
|
+
|
127
|
+
_setupInstanceHelperTargetsWithRoles();
|
103
128
|
_createTargetAuthorizations(_instanceAuthorization);
|
104
129
|
}
|
105
130
|
|
@@ -110,45 +135,51 @@ contract InstanceAdmin is
|
|
110
135
|
IInstanceLinkedComponent component
|
111
136
|
)
|
112
137
|
external
|
138
|
+
restricted()
|
113
139
|
{
|
140
|
+
// TODO check componentInfo exists
|
141
|
+
// TODO deploy token handler here
|
142
|
+
// checks
|
114
143
|
_checkTargetIsReadyForAuthorization(address(component));
|
115
144
|
|
116
|
-
//
|
117
|
-
|
145
|
+
// setup target and role for component (including token handler)
|
146
|
+
_setupComponentAndTokenHandler(component);
|
118
147
|
|
119
|
-
// create roles
|
148
|
+
// create other roles
|
149
|
+
IAuthorization authorization = component.getAuthorization();
|
120
150
|
_createRoles(authorization);
|
121
151
|
|
122
|
-
// create component target
|
123
|
-
_createTarget(
|
124
|
-
address(component),
|
125
|
-
authorization.getTargetName(),
|
126
|
-
true, // checkAuthority
|
127
|
-
false); // custom
|
128
152
|
|
129
|
-
|
130
|
-
|
131
|
-
|
132
|
-
|
133
|
-
|
153
|
+
// // FIXME: make this a bit nicer and work with IAuthorization. Use a specific role, not public - access to TokenHandler must be restricted
|
154
|
+
// _authorizeTargetFunctions(
|
155
|
+
// address(component.getTokenHandler()),
|
156
|
+
// getPublicRole(),
|
157
|
+
// functions);
|
134
158
|
|
135
|
-
|
136
|
-
|
137
|
-
|
138
|
-
|
159
|
+
_createTargetAuthorizations(authorization);
|
160
|
+
}
|
161
|
+
|
162
|
+
// create instance role and target
|
163
|
+
function _setupInstance(address instance) internal {
|
164
|
+
// create instance role
|
165
|
+
RoleId instanceRoleId = _instanceAuthorization.getTargetRole(
|
166
|
+
_instanceAuthorization.getMainTarget());
|
139
167
|
|
140
|
-
|
141
|
-
|
142
|
-
|
143
|
-
|
144
|
-
|
168
|
+
_createRole(
|
169
|
+
instanceRoleId,
|
170
|
+
_instanceAuthorization.getRoleInfo(instanceRoleId));
|
171
|
+
|
172
|
+
// create instance target
|
173
|
+
_createTarget(
|
174
|
+
instance,
|
175
|
+
_instanceAuthorization.getMainTargetName(),
|
176
|
+
true, // checkAuthority
|
177
|
+
false); // custom
|
145
178
|
|
179
|
+
// assign instance role to instance
|
146
180
|
_grantRoleToAccount(
|
147
|
-
|
148
|
-
|
149
|
-
address(component));
|
150
|
-
|
151
|
-
_createTargetAuthorizations(authorization);
|
181
|
+
instanceRoleId,
|
182
|
+
instance);
|
152
183
|
}
|
153
184
|
|
154
185
|
/// @dev Creates a custom role
|
@@ -170,9 +201,22 @@ contract InstanceAdmin is
|
|
170
201
|
_grantRoleToAccount(roleId, account);
|
171
202
|
}
|
172
203
|
|
204
|
+
|
205
|
+
function setInstanceLocked(bool locked)
|
206
|
+
external
|
207
|
+
onlyInstanceOwner()
|
208
|
+
{
|
209
|
+
AccessManagerCloneable accessManager = AccessManagerCloneable(authority());
|
210
|
+
|
211
|
+
if(accessManager.isLocked() == locked) {
|
212
|
+
revert ErrorInstanceAdminInstanceAlreadyLocked();
|
213
|
+
}
|
214
|
+
accessManager.setLocked(locked);
|
215
|
+
}
|
216
|
+
|
173
217
|
function setTargetLocked(address target, bool locked)
|
174
218
|
external
|
175
|
-
|
219
|
+
onlyInstance()
|
176
220
|
{
|
177
221
|
_setTargetClosed(target, locked);
|
178
222
|
}
|
@@ -188,18 +232,127 @@ contract InstanceAdmin is
|
|
188
232
|
return _instanceAuthorization;
|
189
233
|
}
|
190
234
|
|
235
|
+
// ------------------- Internal functions ------------------- //
|
236
|
+
|
237
|
+
function _setupComponentAndTokenHandler(IInstanceLinkedComponent component)
|
238
|
+
internal
|
239
|
+
{
|
240
|
+
|
241
|
+
IAuthorization authorization = component.getAuthorization();
|
242
|
+
string memory targetName = authorization.getMainTargetName();
|
243
|
+
|
244
|
+
// create component role and target
|
245
|
+
RoleId componentRoleId = _createComponentRoleId(component, authorization);
|
246
|
+
|
247
|
+
// create component's target
|
248
|
+
_createTarget(
|
249
|
+
address(component),
|
250
|
+
targetName,
|
251
|
+
true, // checkAuthority
|
252
|
+
false); // custom
|
253
|
+
|
254
|
+
// create component's token handler target
|
255
|
+
NftId componentNftId = _registry.getNftIdForAddress(address(component));
|
256
|
+
address tokenHandler = address(
|
257
|
+
_instance.getInstanceReader().getComponentInfo(
|
258
|
+
componentNftId).tokenHandler);
|
259
|
+
|
260
|
+
_createTarget(
|
261
|
+
tokenHandler,
|
262
|
+
authorization.getTokenHandlerName(),
|
263
|
+
true,
|
264
|
+
false);
|
265
|
+
|
266
|
+
// assign component role to component
|
267
|
+
_grantRoleToAccount(
|
268
|
+
componentRoleId,
|
269
|
+
address(component));
|
270
|
+
|
271
|
+
// token handler does not require its own role
|
272
|
+
// token handler is not calling other components
|
273
|
+
}
|
274
|
+
|
275
|
+
|
276
|
+
function _createComponentRoleId(
|
277
|
+
IInstanceLinkedComponent component,
|
278
|
+
IAuthorization authorization
|
279
|
+
)
|
280
|
+
internal
|
281
|
+
returns (RoleId componentRoleId)
|
282
|
+
{
|
283
|
+
// checks
|
284
|
+
// check component is not yet authorized
|
285
|
+
if (_targetRoleId[address(component)].gtz()) {
|
286
|
+
revert ErrorInstanceAdminAlreadyAuthorized(address(component));
|
287
|
+
}
|
288
|
+
|
289
|
+
// check generic component role
|
290
|
+
RoleId genericComponentRoleId = authorization.getTargetRole(
|
291
|
+
authorization.getMainTarget());
|
292
|
+
|
293
|
+
if (!genericComponentRoleId.isComponentRole()) {
|
294
|
+
revert ErrorInstanceAdminNotComponentRole(genericComponentRoleId);
|
295
|
+
}
|
296
|
+
|
297
|
+
// check component role does not exist
|
298
|
+
componentRoleId = toComponentRole(
|
299
|
+
genericComponentRoleId,
|
300
|
+
_components);
|
301
|
+
|
302
|
+
if (roleExists(componentRoleId)) {
|
303
|
+
revert ErrorInstanceAdminRoleAlreadyExists(componentRoleId);
|
304
|
+
}
|
305
|
+
|
306
|
+
// check role info
|
307
|
+
IAccess.RoleInfo memory roleInfo = authorization.getRoleInfo(
|
308
|
+
genericComponentRoleId);
|
309
|
+
|
310
|
+
if (roleInfo.roleType != IAccess.RoleType.Contract) {
|
311
|
+
revert ErrorInstanceAdminRoleTypeNotContract(
|
312
|
+
componentRoleId,
|
313
|
+
roleInfo.roleType);
|
314
|
+
}
|
315
|
+
|
316
|
+
// effects
|
317
|
+
_targetRoleId[address(component)] = componentRoleId;
|
318
|
+
_components++;
|
319
|
+
|
320
|
+
_createRole(
|
321
|
+
componentRoleId,
|
322
|
+
roleInfo);
|
323
|
+
}
|
324
|
+
|
325
|
+
|
326
|
+
function _checkTargetIsReadyForAuthorization(address target)
|
327
|
+
internal
|
328
|
+
view
|
329
|
+
{
|
330
|
+
if (!_registry.isRegistered(target)) {
|
331
|
+
revert ErrorInstanceAdminNotRegistered(target);
|
332
|
+
}
|
333
|
+
|
334
|
+
if (targetExists(target)) {
|
335
|
+
revert ErrorInstanceAdminAlreadyAuthorized(target);
|
336
|
+
}
|
337
|
+
}
|
338
|
+
|
191
339
|
|
192
340
|
function _createRoles(IAuthorization authorization)
|
193
341
|
internal
|
194
342
|
{
|
195
343
|
RoleId[] memory roles = authorization.getRoles();
|
344
|
+
RoleId mainTargetRoleId = authorization.getTargetRole(
|
345
|
+
authorization.getMainTarget());
|
346
|
+
|
196
347
|
RoleId roleId;
|
197
348
|
RoleInfo memory roleInfo;
|
198
349
|
|
199
350
|
for(uint256 i = 0; i < roles.length; i++) {
|
351
|
+
|
200
352
|
roleId = roles[i];
|
201
353
|
|
202
|
-
if
|
354
|
+
// skip main target role, create role if not exists
|
355
|
+
if (roleId != mainTargetRoleId && !roleExists(roleId)) {
|
203
356
|
_createRole(
|
204
357
|
roleId,
|
205
358
|
authorization.getRoleInfo(roleId));
|
@@ -208,6 +361,16 @@ contract InstanceAdmin is
|
|
208
361
|
}
|
209
362
|
|
210
363
|
|
364
|
+
function toComponentRole(RoleId roleId, uint64 componentIdx)
|
365
|
+
internal
|
366
|
+
pure
|
367
|
+
returns (RoleId)
|
368
|
+
{
|
369
|
+
return RoleIdLib.toRoleId(
|
370
|
+
RoleIdLib.toInt(roleId) + componentIdx);
|
371
|
+
}
|
372
|
+
|
373
|
+
|
211
374
|
function _createTargetAuthorizations(IAuthorization authorization)
|
212
375
|
internal
|
213
376
|
{
|
@@ -248,7 +411,7 @@ contract InstanceAdmin is
|
|
248
411
|
_createTarget(
|
249
412
|
target,
|
250
413
|
targetName,
|
251
|
-
false, // check authority TODO check normal targets, don't check service targets (they share authority with
|
414
|
+
false, // check authority TODO check normal targets, don't check service targets (they share authority with release admin)
|
252
415
|
false);
|
253
416
|
|
254
417
|
// assign target role if defined
|
@@ -258,14 +421,16 @@ contract InstanceAdmin is
|
|
258
421
|
}
|
259
422
|
}
|
260
423
|
|
261
|
-
function
|
424
|
+
function _setupInstanceHelperTargetsWithRoles()
|
262
425
|
internal
|
263
426
|
{
|
427
|
+
// _checkAndCreateTargetWithRole(address(_instance), INSTANCE_TARGET_NAME);
|
428
|
+
|
264
429
|
// create module targets
|
265
|
-
_checkAndCreateTargetWithRole(address(_instance), INSTANCE_TARGET_NAME);
|
266
430
|
_checkAndCreateTargetWithRole(address(_instance.getInstanceStore()), INSTANCE_STORE_TARGET_NAME);
|
267
431
|
_checkAndCreateTargetWithRole(address(_instance.getInstanceAdmin()), INSTANCE_ADMIN_TARGET_NAME);
|
268
432
|
_checkAndCreateTargetWithRole(address(_instance.getBundleSet()), BUNDLE_SET_TARGET_NAME);
|
433
|
+
_checkAndCreateTargetWithRole(address(_instance.getRiskSet()), RISK_SET_TAGET_NAME);
|
269
434
|
|
270
435
|
// create targets for services that need to access the module targets
|
271
436
|
ObjectType[] memory serviceDomains = _instanceAuthorization.getServiceDomains();
|
@@ -2,10 +2,11 @@
|
|
2
2
|
pragma solidity ^0.8.20;
|
3
3
|
|
4
4
|
import {
|
5
|
-
|
5
|
+
ACCOUNTING, ORACLE, POOL, INSTANCE, COMPONENT, DISTRIBUTION, APPLICATION, POLICY, CLAIM, BUNDLE, RISK
|
6
6
|
} from "../../contracts/type/ObjectType.sol";
|
7
7
|
|
8
|
-
import {BundleSet} from "../instance/BundleSet.sol";
|
8
|
+
import {BundleSet} from "../instance/BundleSet.sol";
|
9
|
+
import {RiskSet} from "../instance/RiskSet.sol";
|
9
10
|
import {IAccess} from "../authorization/IAccess.sol";
|
10
11
|
import {Instance} from "../instance/Instance.sol";
|
11
12
|
import {InstanceAdmin} from "../instance/InstanceAdmin.sol";
|
@@ -23,41 +24,31 @@ contract InstanceAuthorizationV3
|
|
23
24
|
string public constant INSTANCE_STORE_TARGET_NAME = "InstanceStore";
|
24
25
|
string public constant INSTANCE_ADMIN_TARGET_NAME = "InstanceAdmin";
|
25
26
|
string public constant BUNDLE_SET_TARGET_NAME = "BundleSet";
|
27
|
+
string public constant RISK_SET_TARGET_NAME = "RiskSet";
|
26
28
|
|
27
|
-
constructor()
|
28
|
-
|
29
|
-
|
30
|
-
function _setupRoles()
|
31
|
-
internal
|
32
|
-
override
|
33
|
-
{
|
34
|
-
// empty implementation
|
35
|
-
}
|
36
|
-
|
29
|
+
constructor()
|
30
|
+
Authorization(INSTANCE_TARGET_NAME, INSTANCE())
|
31
|
+
{ }
|
37
32
|
|
38
33
|
function _setupTargets()
|
39
34
|
internal
|
40
35
|
override
|
41
36
|
{
|
42
|
-
// instance target
|
43
|
-
_addTargetWithRole(
|
44
|
-
INSTANCE_TARGET_NAME,
|
45
|
-
_toTargetRoleId(INSTANCE()),
|
46
|
-
INSTANCE_ROLE_NAME);
|
47
|
-
|
48
37
|
// instance supporting targets
|
49
38
|
_addTarget(INSTANCE_STORE_TARGET_NAME);
|
50
39
|
_addTarget(INSTANCE_ADMIN_TARGET_NAME);
|
51
40
|
_addTarget(BUNDLE_SET_TARGET_NAME);
|
41
|
+
_addTarget(RISK_SET_TARGET_NAME);
|
52
42
|
|
53
43
|
// service targets relevant to instance
|
54
44
|
_addServiceTargetWithRole(INSTANCE());
|
45
|
+
_addServiceTargetWithRole(ACCOUNTING());
|
55
46
|
_addServiceTargetWithRole(COMPONENT());
|
56
47
|
_addServiceTargetWithRole(DISTRIBUTION());
|
57
48
|
_addServiceTargetWithRole(ORACLE());
|
58
49
|
_addServiceTargetWithRole(POOL());
|
59
50
|
_addServiceTargetWithRole(BUNDLE());
|
60
|
-
_addServiceTargetWithRole(
|
51
|
+
_addServiceTargetWithRole(RISK());
|
61
52
|
_addServiceTargetWithRole(APPLICATION());
|
62
53
|
_addServiceTargetWithRole(POLICY());
|
63
54
|
_addServiceTargetWithRole(CLAIM());
|
@@ -72,7 +63,7 @@ contract InstanceAuthorizationV3
|
|
72
63
|
_setupInstanceAdminAuthorization();
|
73
64
|
_setupInstanceStoreAuthorization();
|
74
65
|
_setupBundleSetAuthorization();
|
75
|
-
|
66
|
+
_setUpRiskSetAuthorization();
|
76
67
|
}
|
77
68
|
|
78
69
|
|
@@ -83,11 +74,31 @@ contract InstanceAuthorizationV3
|
|
83
74
|
|
84
75
|
// authorize bundle service role
|
85
76
|
functions = _authorizeForTarget(BUNDLE_SET_TARGET_NAME, getServiceRole(BUNDLE()));
|
86
|
-
_authorize(functions, BundleSet.linkPolicy.selector, "linkPolicy");
|
87
|
-
_authorize(functions, BundleSet.unlinkPolicy.selector, "unlinkPolicy");
|
88
77
|
_authorize(functions, BundleSet.add.selector, "add");
|
89
78
|
_authorize(functions, BundleSet.lock.selector, "lock");
|
90
79
|
_authorize(functions, BundleSet.unlock.selector, "unlock");
|
80
|
+
|
81
|
+
// authorize bundle service role
|
82
|
+
functions = _authorizeForTarget(BUNDLE_SET_TARGET_NAME, getServiceRole(POLICY()));
|
83
|
+
_authorize(functions, BundleSet.linkPolicy.selector, "linkPolicy");
|
84
|
+
_authorize(functions, BundleSet.unlinkPolicy.selector, "unlinkPolicy");
|
85
|
+
}
|
86
|
+
|
87
|
+
function _setUpRiskSetAuthorization()
|
88
|
+
internal
|
89
|
+
{
|
90
|
+
IAccess.FunctionInfo[] storage functions;
|
91
|
+
|
92
|
+
// authorize risk service role
|
93
|
+
functions = _authorizeForTarget(RISK_SET_TARGET_NAME, getServiceRole(RISK()));
|
94
|
+
_authorize(functions, RiskSet.add.selector, "add");
|
95
|
+
_authorize(functions, RiskSet.pause.selector, "pause");
|
96
|
+
_authorize(functions, RiskSet.activate.selector, "activate");
|
97
|
+
|
98
|
+
// authorize policy service role
|
99
|
+
functions = _authorizeForTarget(RISK_SET_TARGET_NAME, getServiceRole(POLICY()));
|
100
|
+
_authorize(functions, RiskSet.linkPolicy.selector, "linkPolicy");
|
101
|
+
_authorize(functions, RiskSet.unlinkPolicy.selector, "unlinkPolicy");
|
91
102
|
}
|
92
103
|
|
93
104
|
|
@@ -99,6 +110,10 @@ contract InstanceAuthorizationV3
|
|
99
110
|
// authorize instance service role
|
100
111
|
functions = _authorizeForTarget(INSTANCE_TARGET_NAME, getServiceRole(INSTANCE()));
|
101
112
|
_authorize(functions, Instance.setInstanceReader.selector, "setInstanceReader");
|
113
|
+
|
114
|
+
// authorize component service role
|
115
|
+
functions = _authorizeForTarget(INSTANCE_TARGET_NAME, getServiceRole(COMPONENT()));
|
116
|
+
_authorize(functions, Instance.setLockedFromService.selector, "setLockedFromService");
|
102
117
|
}
|
103
118
|
|
104
119
|
|
@@ -108,11 +123,12 @@ contract InstanceAuthorizationV3
|
|
108
123
|
IAccess.FunctionInfo[] storage functions;
|
109
124
|
|
110
125
|
// authorize instance role
|
111
|
-
functions = _authorizeForTarget(INSTANCE_ADMIN_TARGET_NAME,
|
126
|
+
functions = _authorizeForTarget(INSTANCE_ADMIN_TARGET_NAME, getComponentRole(INSTANCE()));
|
112
127
|
_authorize(functions, InstanceAdmin.grantRole.selector, "grantRole");
|
113
128
|
|
114
|
-
// authorize
|
115
|
-
|
129
|
+
// authorize component service role
|
130
|
+
functions = _authorizeForTarget(INSTANCE_ADMIN_TARGET_NAME, getServiceRole(COMPONENT()));
|
131
|
+
_authorize(functions, InstanceAdmin.initializeComponentAuthorization.selector, "initializeComponentAuthoriz");
|
116
132
|
}
|
117
133
|
|
118
134
|
|
@@ -121,6 +137,13 @@ contract InstanceAuthorizationV3
|
|
121
137
|
{
|
122
138
|
IAccess.FunctionInfo[] storage functions;
|
123
139
|
|
140
|
+
// authorize accounting service role
|
141
|
+
functions = _authorizeForTarget(INSTANCE_STORE_TARGET_NAME, getServiceRole(ACCOUNTING()));
|
142
|
+
_authorize(functions, InstanceStore.increaseBalance.selector, "increaseBalance");
|
143
|
+
_authorize(functions, InstanceStore.decreaseBalance.selector, "decreaseBalance");
|
144
|
+
_authorize(functions, InstanceStore.increaseFees.selector, "increaseFees");
|
145
|
+
_authorize(functions, InstanceStore.decreaseFees.selector, "decreaseFees");
|
146
|
+
|
124
147
|
// authorize component service role
|
125
148
|
functions = _authorizeForTarget(INSTANCE_STORE_TARGET_NAME, getServiceRole(COMPONENT()));
|
126
149
|
_authorize(functions, InstanceStore.createComponent.selector, "createComponent");
|
@@ -128,11 +151,9 @@ contract InstanceAuthorizationV3
|
|
128
151
|
_authorize(functions, InstanceStore.createPool.selector, "createPool");
|
129
152
|
_authorize(functions, InstanceStore.createProduct.selector, "createProduct");
|
130
153
|
_authorize(functions, InstanceStore.updateProduct.selector, "updateProduct");
|
131
|
-
_authorize(functions, InstanceStore.
|
132
|
-
_authorize(functions, InstanceStore.
|
133
|
-
|
134
|
-
_authorize(functions, InstanceStore.decreaseFees.selector, "decreaseFees");
|
135
|
-
|
154
|
+
_authorize(functions, InstanceStore.createFee.selector, "createFee");
|
155
|
+
_authorize(functions, InstanceStore.updateFee.selector, "updateFee");
|
156
|
+
|
136
157
|
// authorize distribution service role
|
137
158
|
functions = _authorizeForTarget(INSTANCE_STORE_TARGET_NAME, getServiceRole(DISTRIBUTION()));
|
138
159
|
_authorize(functions, InstanceStore.createDistributorType.selector, "createDistributorType");
|
@@ -164,7 +185,7 @@ contract InstanceAuthorizationV3
|
|
164
185
|
_authorize(functions, InstanceStore.decreaseLocked.selector, "decreaseLocked");
|
165
186
|
|
166
187
|
// authorize product service role
|
167
|
-
functions = _authorizeForTarget(INSTANCE_STORE_TARGET_NAME, getServiceRole(
|
188
|
+
functions = _authorizeForTarget(INSTANCE_STORE_TARGET_NAME, getServiceRole(RISK()));
|
168
189
|
_authorize(functions, InstanceStore.createRisk.selector, "createRisk");
|
169
190
|
_authorize(functions, InstanceStore.updateRisk.selector, "updateRisk");
|
170
191
|
_authorize(functions, InstanceStore.updateRiskState.selector, "updateRiskState");
|
@@ -189,6 +210,7 @@ contract InstanceAuthorizationV3
|
|
189
210
|
_authorize(functions, InstanceStore.updateClaim.selector, "updateClaim");
|
190
211
|
_authorize(functions, InstanceStore.createPayout.selector, "createPayout");
|
191
212
|
_authorize(functions, InstanceStore.updatePayout.selector, "updatePayout");
|
213
|
+
_authorize(functions, InstanceStore.updatePayoutState.selector, "updatePayoutState");
|
192
214
|
}
|
193
215
|
}
|
194
216
|
|