@etherisc/gif-next 0.0.2-f12cf4d-104 → 0.0.2-f13fd28-503
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 +23 -1
- 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 +100 -102
- 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 -53
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +140 -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 -40
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +50 -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 -56
- 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 -199
- 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 +140 -91
- 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 -77
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +111 -62
- 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 -161
- 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 -39
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +75 -18
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +150 -59
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +362 -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 -73
- 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 -70
- 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 -40
- 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 -54
- 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 -53
- 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 -40
- 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 -53
- 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 -144
- 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 -131
- 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 -144
- 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 +200 -472
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +50 -64
- 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 +106 -305
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +38 -40
- 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 -53
- 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 +41 -29
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +98 -3
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +1 -1
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +49 -33
- package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
- package/artifacts/contracts/staking/Staking.sol/Staking.json +101 -60
- 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 +31 -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 +137 -51
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +22 -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 +6 -6
- package/contracts/distribution/BasicDistributionAuthorization.sol +22 -9
- package/contracts/distribution/Distribution.sol +32 -30
- package/contracts/distribution/DistributionService.sol +32 -30
- package/contracts/distribution/DistributionServiceManager.sol +1 -1
- package/contracts/distribution/IDistributionService.sol +5 -6
- 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 -9
- package/contracts/instance/IInstanceService.sol +7 -6
- package/contracts/instance/Instance.sol +33 -18
- package/contracts/instance/InstanceAdmin.sol +247 -82
- package/contracts/instance/InstanceAuthorizationV3.sol +50 -31
- package/contracts/instance/InstanceReader.sol +162 -32
- package/contracts/instance/InstanceService.sol +62 -72
- 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 +84 -40
- package/contracts/registry/TokenRegistry.sol +6 -8
- package/contracts/shared/Component.sol +40 -42
- package/contracts/shared/ComponentService.sol +199 -286
- 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 +9 -27
- package/contracts/shared/IInstanceLinkedComponent.sol +0 -11
- package/contracts/shared/IRegisterable.sol +15 -4
- package/contracts/shared/IService.sol +3 -5
- package/contracts/shared/InstanceLinkedComponent.sol +3 -11
- 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 +1 -9
- package/contracts/staking/IStakingService.sol +11 -1
- package/contracts/staking/StakeManagerLib.sol +63 -7
- package/contracts/staking/Staking.sol +45 -20
- package/contracts/staking/StakingReader.sol +1 -1
- package/contracts/staking/StakingService.sol +53 -57
- 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,22 +1,20 @@
|
|
1
1
|
// SPDX-License-Identifier: UNLICENSED
|
2
2
|
pragma solidity ^0.8.20;
|
3
3
|
|
4
|
-
import {
|
5
|
-
|
6
|
-
import {AccessAdmin} from "../authorization/AccessAdmin.sol";
|
7
|
-
import {AccessManagerCloneable} from "../authorization/AccessManagerCloneable.sol";
|
8
|
-
import {IAccessAdmin} from "../authorization/IAccessAdmin.sol";
|
4
|
+
import {IAccess} from "../authorization/IAccess.sol";
|
9
5
|
import {IAuthorization} from "../authorization/IAuthorization.sol";
|
10
6
|
import {IInstanceLinkedComponent} from "../shared/IInstanceLinkedComponent.sol";
|
11
|
-
import {IAuthorization} from "../authorization/IAuthorization.sol";
|
12
7
|
import {IRegistry} from "../registry/IRegistry.sol";
|
13
8
|
import {IInstance} from "./IInstance.sol";
|
14
|
-
|
15
|
-
import {
|
16
|
-
import {
|
9
|
+
|
10
|
+
import {AccessAdmin} from "../authorization/AccessAdmin.sol";
|
11
|
+
import {AccessManagerCloneable} from "../authorization/AccessManagerCloneable.sol";
|
12
|
+
import {NftId} from "../type/NftId.sol";
|
13
|
+
import {ObjectType} from "../type/ObjectType.sol";
|
14
|
+
import {RoleId, RoleIdLib} from "../type/RoleId.sol";
|
17
15
|
import {Str, StrLib} from "../type/String.sol";
|
18
16
|
import {TokenHandler} from "../shared/TokenHandler.sol";
|
19
|
-
import {VersionPart} from "../type/Version.sol";
|
17
|
+
import {VersionPart, VersionPartLib} from "../type/Version.sol";
|
20
18
|
|
21
19
|
|
22
20
|
contract InstanceAdmin is
|
@@ -26,83 +24,99 @@ contract InstanceAdmin is
|
|
26
24
|
string public constant INSTANCE_STORE_TARGET_NAME = "InstanceStore";
|
27
25
|
string public constant INSTANCE_ADMIN_TARGET_NAME = "InstanceAdmin";
|
28
26
|
string public constant BUNDLE_SET_TARGET_NAME = "BundleSet";
|
27
|
+
string public constant RISK_SET_TAGET_NAME = "RiskSet";
|
29
28
|
|
30
29
|
uint64 public constant CUSTOM_ROLE_ID_MIN = 10000; // MUST be even
|
31
30
|
|
31
|
+
error ErrorInstanceAdminCallerNotInstanceOwner(address caller);
|
32
|
+
error ErrorInstanceAdminInstanceAlreadyLocked();
|
32
33
|
error ErrorInstanceAdminNotRegistered(address target);
|
34
|
+
|
33
35
|
error ErrorInstanceAdminAlreadyAuthorized(address target);
|
36
|
+
error ErrorInstanceAdminNotComponentRole(RoleId roleId);
|
37
|
+
error ErrorInstanceAdminRoleAlreadyExists(RoleId roleId);
|
38
|
+
error ErrorInstanceAdminRoleTypeNotContract(RoleId roleId, IAccess.RoleType roleType);
|
39
|
+
|
34
40
|
error ErrorInstanceAdminReleaseMismatch();
|
35
41
|
error ErrorInstanceAdminExpectedTargetMissing(string targetName);
|
36
42
|
|
37
|
-
IInstance _instance;
|
43
|
+
IInstance internal _instance;
|
38
44
|
IRegistry internal _registry;
|
39
|
-
uint64
|
45
|
+
uint64 internal _customIdNext;
|
40
46
|
|
41
|
-
|
47
|
+
mapping(address target => RoleId roleId) internal _targetRoleId;
|
48
|
+
uint64 internal _components;
|
49
|
+
|
50
|
+
IAuthorization internal _instanceAuthorization;
|
51
|
+
|
52
|
+
|
53
|
+
modifier onlyInstanceOwner() {
|
54
|
+
if(msg.sender != _registry.ownerOf(address(_instance))) {
|
55
|
+
revert ErrorInstanceAdminCallerNotInstanceOwner(msg.sender);
|
56
|
+
}
|
57
|
+
_;
|
58
|
+
}
|
42
59
|
|
43
60
|
/// @dev Only used for master instance admin.
|
44
61
|
/// Contracts created via constructor come with disabled initializers.
|
45
62
|
constructor(
|
46
63
|
address instanceAuthorization
|
47
|
-
)
|
48
|
-
|
49
|
-
|
64
|
+
) {
|
65
|
+
initialize(new AccessManagerCloneable());
|
66
|
+
|
50
67
|
_instanceAuthorization = IAuthorization(instanceAuthorization);
|
68
|
+
|
69
|
+
_disableInitializers();
|
51
70
|
}
|
52
71
|
|
53
|
-
|
54
|
-
/// Internally the function creates an instance specific OpenZeppelin AccessManager that is used as the authority
|
55
|
-
/// for the inststance authorizatios.
|
56
|
-
/// Important: Initialization of this instance admin is only complete after calling function initializeInstance.
|
72
|
+
|
57
73
|
function initialize(
|
58
|
-
AccessManagerCloneable
|
59
|
-
|
74
|
+
AccessManagerCloneable clonedAccessManager,
|
75
|
+
IRegistry registry,
|
76
|
+
VersionPart release
|
60
77
|
)
|
61
78
|
external
|
62
|
-
initializer()
|
79
|
+
initializer()
|
63
80
|
{
|
64
|
-
|
65
|
-
_initializeAuthority(address(accessManager));
|
66
|
-
|
67
|
-
// create basic instance independent setup
|
68
|
-
_createAdminAndPublicRoles();
|
81
|
+
__AccessAdmin_init(clonedAccessManager);
|
69
82
|
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
function _checkTargetIsReadyForAuthorization(address target)
|
75
|
-
internal
|
76
|
-
view
|
77
|
-
{
|
78
|
-
if (address(_registry) != address(0) && !_registry.isRegistered(target)) {
|
79
|
-
revert ErrorInstanceAdminNotRegistered(target);
|
80
|
-
}
|
83
|
+
clonedAccessManager.completeSetup(
|
84
|
+
address(registry),
|
85
|
+
release);
|
81
86
|
|
82
|
-
|
83
|
-
revert ErrorInstanceAdminAlreadyAuthorized(target);
|
84
|
-
}
|
87
|
+
_registry = registry;
|
85
88
|
}
|
86
89
|
|
87
|
-
/// @dev Completes the initialization of this instance admin using the provided instance.
|
90
|
+
/// @dev Completes the initialization of this instance admin using the provided instance, registry and version.
|
91
|
+
/// Important: Initialization of instance admin is only complete after calling this function.
|
88
92
|
/// Important: The instance MUST be registered and all instance supporting contracts must be wired to this instance.
|
89
|
-
function
|
93
|
+
function completeSetup(
|
94
|
+
address instance,
|
95
|
+
address authorization
|
96
|
+
)
|
90
97
|
external
|
98
|
+
reinitializer(uint64(getRelease().toInt()))
|
99
|
+
onlyDeployer()
|
91
100
|
{
|
92
|
-
|
101
|
+
_components = 0;
|
102
|
+
_customIdNext = CUSTOM_ROLE_ID_MIN;
|
103
|
+
_instance = IInstance(instance);
|
104
|
+
_instanceAuthorization = IAuthorization(authorization);
|
93
105
|
|
94
|
-
|
95
|
-
_instance = IInstance(instanceAddress);
|
96
|
-
_registry = _instance.getRegistry();
|
106
|
+
_checkTargetIsReadyForAuthorization(instance);
|
97
107
|
|
98
108
|
// check matching releases
|
99
|
-
if (_instanceAuthorization.getRelease() !=
|
109
|
+
if (_instanceAuthorization.getRelease() != getRelease()) {
|
100
110
|
revert ErrorInstanceAdminReleaseMismatch();
|
101
111
|
}
|
102
112
|
|
113
|
+
// create instance role and target
|
114
|
+
_setupInstance(instance);
|
115
|
+
|
103
116
|
// add instance authorization
|
104
117
|
_createRoles(_instanceAuthorization);
|
105
|
-
|
118
|
+
|
119
|
+
_setupInstanceHelperTargetsWithRoles();
|
106
120
|
_createTargetAuthorizations(_instanceAuthorization);
|
107
121
|
}
|
108
122
|
|
@@ -113,45 +127,53 @@ contract InstanceAdmin is
|
|
113
127
|
IInstanceLinkedComponent component
|
114
128
|
)
|
115
129
|
external
|
130
|
+
restricted()
|
116
131
|
{
|
132
|
+
// checks
|
117
133
|
_checkTargetIsReadyForAuthorization(address(component));
|
118
134
|
|
119
|
-
//
|
120
|
-
|
135
|
+
// setup target and role for component (including token handler)
|
136
|
+
_setupComponentAndTokenHandler(component);
|
121
137
|
|
122
|
-
// create roles
|
138
|
+
// create other roles
|
139
|
+
IAuthorization authorization = component.getAuthorization();
|
123
140
|
_createRoles(authorization);
|
124
141
|
|
125
|
-
//
|
126
|
-
|
127
|
-
|
128
|
-
|
129
|
-
true, // checkAuthority
|
130
|
-
false); // custom
|
142
|
+
// TODO cleanup
|
143
|
+
// FunctionInfo[] memory functions = new FunctionInfo[](2);
|
144
|
+
// functions[0] = toFunction(TokenHandler.pullToken.selector, "pullToken");
|
145
|
+
// functions[1] = toFunction(TokenHandler.pushToken.selector, "pushToken");
|
131
146
|
|
132
|
-
|
133
|
-
|
134
|
-
|
135
|
-
|
136
|
-
|
147
|
+
// // FIXME: make this a bit nicer and work with IAuthorization. Use a specific role, not public - access to TokenHandler must be restricted
|
148
|
+
// _authorizeTargetFunctions(
|
149
|
+
// address(component.getTokenHandler()),
|
150
|
+
// getPublicRole(),
|
151
|
+
// functions);
|
137
152
|
|
138
|
-
|
139
|
-
|
140
|
-
|
141
|
-
|
153
|
+
_createTargetAuthorizations(authorization);
|
154
|
+
}
|
155
|
+
|
156
|
+
// create instance role and target
|
157
|
+
function _setupInstance(address instance) internal {
|
158
|
+
// create instance role
|
159
|
+
RoleId instanceRoleId = _instanceAuthorization.getTargetRole(
|
160
|
+
_instanceAuthorization.getMainTarget());
|
142
161
|
|
143
|
-
|
144
|
-
|
145
|
-
|
146
|
-
getPublicRole(),
|
147
|
-
functions);
|
162
|
+
_createRole(
|
163
|
+
instanceRoleId,
|
164
|
+
_instanceAuthorization.getRoleInfo(instanceRoleId));
|
148
165
|
|
166
|
+
// create instance target
|
167
|
+
_createTarget(
|
168
|
+
instance,
|
169
|
+
_instanceAuthorization.getMainTargetName(),
|
170
|
+
true, // checkAuthority
|
171
|
+
false); // custom
|
172
|
+
|
173
|
+
// assign instance role to instance
|
149
174
|
_grantRoleToAccount(
|
150
|
-
|
151
|
-
|
152
|
-
address(component));
|
153
|
-
|
154
|
-
_createTargetAuthorizations(authorization);
|
175
|
+
instanceRoleId,
|
176
|
+
instance);
|
155
177
|
}
|
156
178
|
|
157
179
|
/// @dev Creates a custom role
|
@@ -173,6 +195,28 @@ contract InstanceAdmin is
|
|
173
195
|
_grantRoleToAccount(roleId, account);
|
174
196
|
}
|
175
197
|
|
198
|
+
|
199
|
+
function setInstanceLocked(bool locked)
|
200
|
+
external
|
201
|
+
onlyInstanceOwner()
|
202
|
+
{
|
203
|
+
AccessManagerCloneable accessManager = AccessManagerCloneable(authority());
|
204
|
+
|
205
|
+
if(accessManager.isLocked() == locked) {
|
206
|
+
revert ErrorInstanceAdminInstanceAlreadyLocked();
|
207
|
+
}
|
208
|
+
accessManager.setLocked(locked);
|
209
|
+
}
|
210
|
+
|
211
|
+
function setTargetLocked(address target, bool locked)
|
212
|
+
external
|
213
|
+
restricted()
|
214
|
+
{
|
215
|
+
_setTargetClosed(target, locked);
|
216
|
+
}
|
217
|
+
|
218
|
+
|
219
|
+
|
176
220
|
/// @dev Returns the instance authorization specification used to set up this instance admin.
|
177
221
|
function getInstanceAuthorization()
|
178
222
|
external
|
@@ -182,18 +226,127 @@ contract InstanceAdmin is
|
|
182
226
|
return _instanceAuthorization;
|
183
227
|
}
|
184
228
|
|
229
|
+
// ------------------- Internal functions ------------------- //
|
230
|
+
|
231
|
+
function _setupComponentAndTokenHandler(IInstanceLinkedComponent component)
|
232
|
+
internal
|
233
|
+
{
|
234
|
+
|
235
|
+
IAuthorization authorization = component.getAuthorization();
|
236
|
+
string memory targetName = authorization.getMainTargetName();
|
237
|
+
|
238
|
+
// create component role and target
|
239
|
+
RoleId componentRoleId = _createComponentRoleId(component, authorization);
|
240
|
+
|
241
|
+
// create component's target
|
242
|
+
_createTarget(
|
243
|
+
address(component),
|
244
|
+
targetName,
|
245
|
+
true, // checkAuthority
|
246
|
+
false); // custom
|
247
|
+
|
248
|
+
// create component's token handler target
|
249
|
+
NftId componentNftId = _registry.getNftIdForAddress(address(component));
|
250
|
+
address tokenHandler = address(
|
251
|
+
_instance.getInstanceReader().getComponentInfo(
|
252
|
+
componentNftId).tokenHandler);
|
253
|
+
|
254
|
+
_createTarget(
|
255
|
+
tokenHandler,
|
256
|
+
authorization.getTokenHandlerName(),
|
257
|
+
true,
|
258
|
+
false);
|
259
|
+
|
260
|
+
// assign component role to component
|
261
|
+
_grantRoleToAccount(
|
262
|
+
componentRoleId,
|
263
|
+
address(component));
|
264
|
+
|
265
|
+
// token handler does not require its own role
|
266
|
+
// token handler is not calling other components
|
267
|
+
}
|
268
|
+
|
269
|
+
|
270
|
+
function _createComponentRoleId(
|
271
|
+
IInstanceLinkedComponent component,
|
272
|
+
IAuthorization authorization
|
273
|
+
)
|
274
|
+
internal
|
275
|
+
returns (RoleId componentRoleId)
|
276
|
+
{
|
277
|
+
// checks
|
278
|
+
// check component is not yet authorized
|
279
|
+
if (_targetRoleId[address(component)].gtz()) {
|
280
|
+
revert ErrorInstanceAdminAlreadyAuthorized(address(component));
|
281
|
+
}
|
282
|
+
|
283
|
+
// check generic component role
|
284
|
+
RoleId genericComponentRoleId = authorization.getTargetRole(
|
285
|
+
authorization.getMainTarget());
|
286
|
+
|
287
|
+
if (!genericComponentRoleId.isComponentRole()) {
|
288
|
+
revert ErrorInstanceAdminNotComponentRole(genericComponentRoleId);
|
289
|
+
}
|
290
|
+
|
291
|
+
// check component role does not exist
|
292
|
+
componentRoleId = toComponentRole(
|
293
|
+
genericComponentRoleId,
|
294
|
+
_components);
|
295
|
+
|
296
|
+
if (roleExists(componentRoleId)) {
|
297
|
+
revert ErrorInstanceAdminRoleAlreadyExists(componentRoleId);
|
298
|
+
}
|
299
|
+
|
300
|
+
// check role info
|
301
|
+
IAccess.RoleInfo memory roleInfo = authorization.getRoleInfo(
|
302
|
+
genericComponentRoleId);
|
303
|
+
|
304
|
+
if (roleInfo.roleType != IAccess.RoleType.Contract) {
|
305
|
+
revert ErrorInstanceAdminRoleTypeNotContract(
|
306
|
+
componentRoleId,
|
307
|
+
roleInfo.roleType);
|
308
|
+
}
|
309
|
+
|
310
|
+
// effects
|
311
|
+
_targetRoleId[address(component)] = componentRoleId;
|
312
|
+
_components++;
|
313
|
+
|
314
|
+
_createRole(
|
315
|
+
componentRoleId,
|
316
|
+
roleInfo);
|
317
|
+
}
|
318
|
+
|
319
|
+
|
320
|
+
function _checkTargetIsReadyForAuthorization(address target)
|
321
|
+
internal
|
322
|
+
view
|
323
|
+
{
|
324
|
+
if (!_registry.isRegistered(target)) {
|
325
|
+
revert ErrorInstanceAdminNotRegistered(target);
|
326
|
+
}
|
327
|
+
|
328
|
+
if (targetExists(target)) {
|
329
|
+
revert ErrorInstanceAdminAlreadyAuthorized(target);
|
330
|
+
}
|
331
|
+
}
|
332
|
+
|
185
333
|
|
186
334
|
function _createRoles(IAuthorization authorization)
|
187
335
|
internal
|
188
336
|
{
|
189
337
|
RoleId[] memory roles = authorization.getRoles();
|
338
|
+
RoleId mainTargetRoleId = authorization.getTargetRole(
|
339
|
+
authorization.getMainTarget());
|
340
|
+
|
190
341
|
RoleId roleId;
|
191
342
|
RoleInfo memory roleInfo;
|
192
343
|
|
193
344
|
for(uint256 i = 0; i < roles.length; i++) {
|
345
|
+
|
194
346
|
roleId = roles[i];
|
195
347
|
|
196
|
-
if
|
348
|
+
// skip main target role, create role if not exists
|
349
|
+
if (roleId != mainTargetRoleId && !roleExists(roleId)) {
|
197
350
|
_createRole(
|
198
351
|
roleId,
|
199
352
|
authorization.getRoleInfo(roleId));
|
@@ -202,6 +355,16 @@ contract InstanceAdmin is
|
|
202
355
|
}
|
203
356
|
|
204
357
|
|
358
|
+
function toComponentRole(RoleId roleId, uint64 componentIdx)
|
359
|
+
internal
|
360
|
+
pure
|
361
|
+
returns (RoleId)
|
362
|
+
{
|
363
|
+
return RoleIdLib.toRoleId(
|
364
|
+
RoleIdLib.toInt(roleId) + componentIdx);
|
365
|
+
}
|
366
|
+
|
367
|
+
|
205
368
|
function _createTargetAuthorizations(IAuthorization authorization)
|
206
369
|
internal
|
207
370
|
{
|
@@ -242,7 +405,7 @@ contract InstanceAdmin is
|
|
242
405
|
_createTarget(
|
243
406
|
target,
|
244
407
|
targetName,
|
245
|
-
false, // check authority TODO check normal targets, don't check service targets (they share authority with
|
408
|
+
false, // check authority TODO check normal targets, don't check service targets (they share authority with release admin)
|
246
409
|
false);
|
247
410
|
|
248
411
|
// assign target role if defined
|
@@ -252,14 +415,16 @@ contract InstanceAdmin is
|
|
252
415
|
}
|
253
416
|
}
|
254
417
|
|
255
|
-
function
|
418
|
+
function _setupInstanceHelperTargetsWithRoles()
|
256
419
|
internal
|
257
420
|
{
|
421
|
+
// _checkAndCreateTargetWithRole(address(_instance), INSTANCE_TARGET_NAME);
|
422
|
+
|
258
423
|
// create module targets
|
259
|
-
_checkAndCreateTargetWithRole(address(_instance), INSTANCE_TARGET_NAME);
|
260
424
|
_checkAndCreateTargetWithRole(address(_instance.getInstanceStore()), INSTANCE_STORE_TARGET_NAME);
|
261
425
|
_checkAndCreateTargetWithRole(address(_instance.getInstanceAdmin()), INSTANCE_ADMIN_TARGET_NAME);
|
262
426
|
_checkAndCreateTargetWithRole(address(_instance.getBundleSet()), BUNDLE_SET_TARGET_NAME);
|
427
|
+
_checkAndCreateTargetWithRole(address(_instance.getRiskSet()), RISK_SET_TAGET_NAME);
|
263
428
|
|
264
429
|
// create targets for services that need to access the module targets
|
265
430
|
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
|
|
@@ -108,11 +119,13 @@ contract InstanceAuthorizationV3
|
|
108
119
|
IAccess.FunctionInfo[] storage functions;
|
109
120
|
|
110
121
|
// authorize instance role
|
111
|
-
functions = _authorizeForTarget(INSTANCE_ADMIN_TARGET_NAME,
|
122
|
+
functions = _authorizeForTarget(INSTANCE_ADMIN_TARGET_NAME, getComponentRole(INSTANCE()));
|
112
123
|
_authorize(functions, InstanceAdmin.grantRole.selector, "grantRole");
|
113
124
|
|
114
|
-
// authorize
|
115
|
-
|
125
|
+
// authorize component service role
|
126
|
+
functions = _authorizeForTarget(INSTANCE_ADMIN_TARGET_NAME, getServiceRole(COMPONENT()));
|
127
|
+
_authorize(functions, InstanceAdmin.initializeComponentAuthorization.selector, "initializeComponentAuthoriz");
|
128
|
+
_authorize(functions, InstanceAdmin.setTargetLocked.selector, "setTargetLocked");
|
116
129
|
}
|
117
130
|
|
118
131
|
|
@@ -121,6 +134,13 @@ contract InstanceAuthorizationV3
|
|
121
134
|
{
|
122
135
|
IAccess.FunctionInfo[] storage functions;
|
123
136
|
|
137
|
+
// authorize accounting service role
|
138
|
+
functions = _authorizeForTarget(INSTANCE_STORE_TARGET_NAME, getServiceRole(ACCOUNTING()));
|
139
|
+
_authorize(functions, InstanceStore.increaseBalance.selector, "increaseBalance");
|
140
|
+
_authorize(functions, InstanceStore.decreaseBalance.selector, "decreaseBalance");
|
141
|
+
_authorize(functions, InstanceStore.increaseFees.selector, "increaseFees");
|
142
|
+
_authorize(functions, InstanceStore.decreaseFees.selector, "decreaseFees");
|
143
|
+
|
124
144
|
// authorize component service role
|
125
145
|
functions = _authorizeForTarget(INSTANCE_STORE_TARGET_NAME, getServiceRole(COMPONENT()));
|
126
146
|
_authorize(functions, InstanceStore.createComponent.selector, "createComponent");
|
@@ -128,11 +148,9 @@ contract InstanceAuthorizationV3
|
|
128
148
|
_authorize(functions, InstanceStore.createPool.selector, "createPool");
|
129
149
|
_authorize(functions, InstanceStore.createProduct.selector, "createProduct");
|
130
150
|
_authorize(functions, InstanceStore.updateProduct.selector, "updateProduct");
|
131
|
-
_authorize(functions, InstanceStore.
|
132
|
-
_authorize(functions, InstanceStore.
|
133
|
-
|
134
|
-
_authorize(functions, InstanceStore.decreaseFees.selector, "decreaseFees");
|
135
|
-
|
151
|
+
_authorize(functions, InstanceStore.createFee.selector, "createFee");
|
152
|
+
_authorize(functions, InstanceStore.updateFee.selector, "updateFee");
|
153
|
+
|
136
154
|
// authorize distribution service role
|
137
155
|
functions = _authorizeForTarget(INSTANCE_STORE_TARGET_NAME, getServiceRole(DISTRIBUTION()));
|
138
156
|
_authorize(functions, InstanceStore.createDistributorType.selector, "createDistributorType");
|
@@ -164,7 +182,7 @@ contract InstanceAuthorizationV3
|
|
164
182
|
_authorize(functions, InstanceStore.decreaseLocked.selector, "decreaseLocked");
|
165
183
|
|
166
184
|
// authorize product service role
|
167
|
-
functions = _authorizeForTarget(INSTANCE_STORE_TARGET_NAME, getServiceRole(
|
185
|
+
functions = _authorizeForTarget(INSTANCE_STORE_TARGET_NAME, getServiceRole(RISK()));
|
168
186
|
_authorize(functions, InstanceStore.createRisk.selector, "createRisk");
|
169
187
|
_authorize(functions, InstanceStore.updateRisk.selector, "updateRisk");
|
170
188
|
_authorize(functions, InstanceStore.updateRiskState.selector, "updateRiskState");
|
@@ -189,6 +207,7 @@ contract InstanceAuthorizationV3
|
|
189
207
|
_authorize(functions, InstanceStore.updateClaim.selector, "updateClaim");
|
190
208
|
_authorize(functions, InstanceStore.createPayout.selector, "createPayout");
|
191
209
|
_authorize(functions, InstanceStore.updatePayout.selector, "updatePayout");
|
210
|
+
_authorize(functions, InstanceStore.updatePayoutState.selector, "updatePayoutState");
|
192
211
|
}
|
193
212
|
}
|
194
213
|
|