@etherisc/gif-next 0.0.2-f634e5c-828 → 0.0.2-f689687-279
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 +1 -1
- 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 +259 -184
- 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 +104 -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 +288 -147
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +1 -1
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +88 -45
- package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstance.sol/IInstance.json +54 -21
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +53 -3
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +80 -40
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +331 -99
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +127 -40
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +294 -196
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +65 -58
- 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 +1 -1
- package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +96 -53
- 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 +75 -68
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +25 -27
- 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 -201
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +33 -55
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +38 -80
- 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 +236 -281
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +61 -47
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +57 -50
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +16 -18
- 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 +27 -3
- 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 +27 -50
- 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 +105 -137
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +40 -38
- 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/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 +315 -49
- 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 +105 -442
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +40 -70
- 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 +57 -4
- package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +1 -1
- package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +1 -1
- 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 +27 -291
- 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 +32 -32
- 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 +128 -128
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +22 -22
- 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/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/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 +1 -1
- package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.json +2 -2
- package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/NftId.sol/NftIdLib.json +2 -2
- package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
- package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +2 -2
- package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
- package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +2 -2
- package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +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 +23 -4
- 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/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 +156 -82
- 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 -14
- 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 +25 -0
- package/contracts/instance/BundleSet.sol +4 -4
- package/contracts/instance/IInstance.sol +6 -7
- package/contracts/instance/IInstanceService.sol +2 -0
- package/contracts/instance/Instance.sol +19 -11
- package/contracts/instance/InstanceAdmin.sol +216 -62
- package/contracts/instance/InstanceAuthorizationV3.sol +18 -23
- package/contracts/instance/InstanceReader.sol +79 -35
- package/contracts/instance/InstanceService.sol +43 -31
- package/contracts/instance/InstanceServiceManager.sol +1 -1
- package/contracts/instance/InstanceStore.sol +13 -2
- package/contracts/instance/RiskSet.sol +11 -12
- package/contracts/instance/base/ObjectLifecycle.sol +4 -2
- package/contracts/instance/base/ObjectSet.sol +7 -8
- package/contracts/instance/base/ObjectSetHelperLib.sol +30 -0
- package/contracts/instance/module/IComponents.sol +3 -2
- package/contracts/instance/module/IRisk.sol +2 -0
- package/contracts/oracle/BasicOracleAuthorization.sol +3 -12
- package/contracts/oracle/Oracle.sol +1 -1
- package/contracts/oracle/OracleService.sol +16 -15
- package/contracts/oracle/OracleServiceManager.sol +1 -1
- package/contracts/pool/BasicPoolAuthorization.sol +21 -13
- package/contracts/pool/BundleService.sol +35 -63
- package/contracts/pool/BundleServiceManager.sol +1 -1
- package/contracts/pool/IBundleService.sol +13 -20
- package/contracts/pool/IPoolService.sol +50 -38
- package/contracts/pool/Pool.sol +9 -9
- package/contracts/pool/PoolLib.sol +216 -0
- package/contracts/pool/PoolService.sol +307 -162
- package/contracts/pool/PoolServiceManager.sol +1 -1
- package/contracts/product/ApplicationService.sol +3 -3
- 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/IClaimService.sol +14 -2
- package/contracts/product/IPolicyService.sol +3 -2
- package/contracts/product/IProductComponent.sol +4 -1
- package/contracts/product/PolicyService.sol +74 -82
- 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 +36 -0
- package/contracts/product/RiskService.sol +61 -23
- package/contracts/product/RiskServiceManager.sol +1 -1
- 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 -226
- 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 +124 -99
- package/contracts/registry/ServiceAuthorizationV3.sol +85 -14
- package/contracts/registry/TokenRegistry.sol +6 -8
- package/contracts/shared/Component.sol +32 -27
- package/contracts/shared/ComponentService.sol +89 -266
- package/contracts/shared/ComponentServiceManager.sol +1 -1
- package/contracts/shared/ComponentVerifyingService.sol +1 -1
- package/contracts/shared/ContractLib.sol +32 -3
- package/contracts/shared/IComponent.sol +3 -9
- package/contracts/shared/IComponentService.sol +1 -23
- 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 -88
- 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 -42
- package/contracts/staking/StakingServiceManager.sol +5 -4
- package/contracts/type/ObjectType.sol +46 -21
- package/contracts/type/RiskId.sol +5 -0
- package/contracts/type/RoleId.sol +24 -4
- package/contracts/type/Selector.sol +5 -0
- package/contracts/type/Timestamp.sol +0 -5
- 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/contracts/authorization/ReleaseAccessManager.sol +0 -38
- package/contracts/instance/module/IAccess.sol +0 -46
@@ -60,6 +60,8 @@ interface IInstanceService is IService {
|
|
60
60
|
NftId instanceNftId
|
61
61
|
);
|
62
62
|
|
63
|
+
function upgradeInstanceReader(NftId instanceNftId) external;
|
64
|
+
function upgradeMasterInstanceReader(address instanceReaderAddress) external;
|
63
65
|
|
64
66
|
function setStakingLockingPeriod(Seconds stakeLockingPeriod) external;
|
65
67
|
function setStakingRewardRate(UFixed rewardRate) external;
|
@@ -1,8 +1,6 @@
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
2
2
|
pragma solidity ^0.8.20;
|
3
3
|
|
4
|
-
import {AccessManagedUpgradeable} from "@openzeppelin/contracts-upgradeable/access/manager/AccessManagedUpgradeable.sol";
|
5
|
-
|
6
4
|
import {Amount} from "../type/Amount.sol";
|
7
5
|
import {BundleSet} from "./BundleSet.sol";
|
8
6
|
import {RiskSet} from "./RiskSet.sol";
|
@@ -22,18 +20,19 @@ import {UFixed} from "../type/UFixed.sol";
|
|
22
20
|
|
23
21
|
contract Instance is
|
24
22
|
IInstance,
|
25
|
-
AccessManagedUpgradeable,
|
26
23
|
Registerable
|
27
24
|
{
|
28
25
|
bool private _initialized;
|
29
26
|
|
30
27
|
IComponentService internal _componentService;
|
31
28
|
IInstanceService internal _instanceService;
|
29
|
+
|
32
30
|
InstanceAdmin internal _instanceAdmin;
|
33
31
|
InstanceReader internal _instanceReader;
|
34
32
|
BundleSet internal _bundleSet;
|
35
33
|
RiskSet internal _riskSet;
|
36
34
|
InstanceStore internal _instanceStore;
|
35
|
+
NftId [] internal _products;
|
37
36
|
|
38
37
|
modifier onlyChainNft() {
|
39
38
|
if(msg.sender != getRegistry().getChainNftAddress()) {
|
@@ -54,16 +53,15 @@ contract Instance is
|
|
54
53
|
external
|
55
54
|
initializer()
|
56
55
|
{
|
57
|
-
|
58
|
-
if(_instanceAdmin.authority() == address(0)) {
|
56
|
+
if(address(instanceAdmin) == address(0)) {
|
59
57
|
revert ErrorInstanceInstanceAdminZero();
|
60
58
|
}
|
61
59
|
|
62
|
-
|
63
|
-
__AccessManaged_init(_instanceAdmin.authority());
|
60
|
+
_instanceAdmin = instanceAdmin;
|
64
61
|
|
65
62
|
// setup instance object info
|
66
|
-
|
63
|
+
__Registerable_init(
|
64
|
+
instanceAdmin.authority(),
|
67
65
|
address(registry),
|
68
66
|
registry.getNftId(),
|
69
67
|
INSTANCE(),
|
@@ -79,8 +77,8 @@ contract Instance is
|
|
79
77
|
|
80
78
|
// initialize instance supporting contracts
|
81
79
|
_instanceStore.initialize();
|
82
|
-
_bundleSet.initialize();
|
83
|
-
_riskSet.initialize();
|
80
|
+
_bundleSet.initialize(instanceAdmin.authority(), address(registry));
|
81
|
+
_riskSet.initialize(instanceAdmin.authority(), address(registry));
|
84
82
|
_instanceReader.initialize();
|
85
83
|
|
86
84
|
_componentService = IComponentService(
|
@@ -97,12 +95,14 @@ contract Instance is
|
|
97
95
|
}
|
98
96
|
|
99
97
|
//--- ProductRegistration ----------------------------------------------//
|
98
|
+
|
100
99
|
function registerProduct(address product)
|
101
100
|
external
|
102
101
|
onlyOwner()
|
103
102
|
returns (NftId productNftId)
|
104
103
|
{
|
105
|
-
|
104
|
+
productNftId = _componentService.registerProduct(product);
|
105
|
+
_products.push(productNftId);
|
106
106
|
}
|
107
107
|
|
108
108
|
//--- Staking ----------------------------------------------------------//
|
@@ -215,6 +215,14 @@ contract Instance is
|
|
215
215
|
|
216
216
|
//--- external view functions -------------------------------------------//
|
217
217
|
|
218
|
+
function products() external view returns (uint256 productCount) {
|
219
|
+
return _products.length;
|
220
|
+
}
|
221
|
+
|
222
|
+
function getProductNftid(uint256 idx) external view returns (NftId productNftId) {
|
223
|
+
return _products[idx];
|
224
|
+
}
|
225
|
+
|
218
226
|
function getInstanceReader() external view returns (InstanceReader) {
|
219
227
|
return _instanceReader;
|
220
228
|
}
|
@@ -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
|
@@ -27,67 +28,95 @@ contract InstanceAdmin is
|
|
27
28
|
|
28
29
|
uint64 public constant CUSTOM_ROLE_ID_MIN = 10000; // MUST be even
|
29
30
|
|
31
|
+
error ErrorInstanceAdminCallerNotInstanceOwner(address caller);
|
32
|
+
error ErrorInstanceAdminInstanceAlreadyLocked();
|
30
33
|
error ErrorInstanceAdminNotRegistered(address target);
|
34
|
+
|
31
35
|
error ErrorInstanceAdminAlreadyAuthorized(address target);
|
36
|
+
error ErrorInstanceAdminNotComponentRole(RoleId roleId);
|
37
|
+
error ErrorInstanceAdminRoleAlreadyExists(RoleId roleId);
|
38
|
+
error ErrorInstanceAdminRoleTypeNotContract(RoleId roleId, IAccess.RoleType roleType);
|
39
|
+
|
32
40
|
error ErrorInstanceAdminReleaseMismatch();
|
33
41
|
error ErrorInstanceAdminExpectedTargetMissing(string targetName);
|
34
42
|
|
35
43
|
IInstance internal _instance;
|
36
44
|
IRegistry internal _registry;
|
37
|
-
uint64 internal
|
45
|
+
uint64 internal _customIdNext;
|
46
|
+
|
47
|
+
mapping(address target => RoleId roleId) internal _targetRoleId;
|
48
|
+
uint64 internal _components;
|
38
49
|
|
39
50
|
IAuthorization internal _instanceAuthorization;
|
40
51
|
|
52
|
+
|
53
|
+
modifier onlyInstanceOwner() {
|
54
|
+
if(msg.sender != _registry.ownerOf(address(_instance))) {
|
55
|
+
revert ErrorInstanceAdminCallerNotInstanceOwner(msg.sender);
|
56
|
+
}
|
57
|
+
_;
|
58
|
+
}
|
59
|
+
|
41
60
|
/// @dev Only used for master instance admin.
|
42
61
|
/// Contracts created via constructor come with disabled initializers.
|
43
62
|
constructor(
|
44
63
|
address instanceAuthorization
|
45
|
-
)
|
46
|
-
|
47
|
-
|
64
|
+
) {
|
65
|
+
initialize(new AccessManagerCloneable());
|
66
|
+
|
48
67
|
_instanceAuthorization = IAuthorization(instanceAuthorization);
|
68
|
+
|
69
|
+
_disableInitializers();
|
49
70
|
}
|
50
71
|
|
51
|
-
|
52
|
-
/// Internally the function creates an instance specific OpenZeppelin AccessManager that is used as the authority
|
53
|
-
/// for the inststance authorizatios.
|
54
|
-
/// Important: Initialization of this instance admin is only complete after calling function initializeInstance.
|
72
|
+
|
55
73
|
function initialize(
|
56
|
-
AccessManagerCloneable
|
57
|
-
|
74
|
+
AccessManagerCloneable clonedAccessManager,
|
75
|
+
IRegistry registry,
|
76
|
+
VersionPart release
|
58
77
|
)
|
59
78
|
external
|
60
79
|
initializer()
|
61
80
|
{
|
62
|
-
|
63
|
-
_initializeAuthority(address(accessManager));
|
81
|
+
__AccessAdmin_init(clonedAccessManager);
|
64
82
|
|
65
|
-
|
66
|
-
|
83
|
+
clonedAccessManager.completeSetup(
|
84
|
+
address(registry),
|
85
|
+
release);
|
67
86
|
|
68
|
-
|
69
|
-
_instanceAuthorization = IAuthorization(instanceAuthorization);
|
87
|
+
_registry = registry;
|
70
88
|
}
|
71
89
|
|
72
|
-
/// @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.
|
73
92
|
/// Important: The instance MUST be registered and all instance supporting contracts must be wired to this instance.
|
74
|
-
function
|
93
|
+
function completeSetup(
|
94
|
+
address instance,
|
95
|
+
address authorization
|
96
|
+
)
|
75
97
|
external
|
98
|
+
reinitializer(uint64(getRelease().toInt()))
|
99
|
+
onlyDeployer()
|
76
100
|
{
|
77
|
-
|
101
|
+
_components = 0;
|
102
|
+
_customIdNext = CUSTOM_ROLE_ID_MIN;
|
103
|
+
_instance = IInstance(instance);
|
104
|
+
_instanceAuthorization = IAuthorization(authorization);
|
78
105
|
|
79
|
-
|
80
|
-
_instance = IInstance(instanceAddress);
|
81
|
-
_registry = _instance.getRegistry();
|
106
|
+
_checkTargetIsReadyForAuthorization(instance);
|
82
107
|
|
83
108
|
// check matching releases
|
84
|
-
if (_instanceAuthorization.getRelease() !=
|
109
|
+
if (_instanceAuthorization.getRelease() != getRelease()) {
|
85
110
|
revert ErrorInstanceAdminReleaseMismatch();
|
86
111
|
}
|
87
112
|
|
113
|
+
// create instance role and target
|
114
|
+
_setupInstance(instance);
|
115
|
+
|
88
116
|
// add instance authorization
|
89
117
|
_createRoles(_instanceAuthorization);
|
90
|
-
|
118
|
+
|
119
|
+
_setupInstanceHelperTargetsWithRoles();
|
91
120
|
_createTargetAuthorizations(_instanceAuthorization);
|
92
121
|
}
|
93
122
|
|
@@ -98,47 +127,53 @@ contract InstanceAdmin is
|
|
98
127
|
IInstanceLinkedComponent component
|
99
128
|
)
|
100
129
|
external
|
130
|
+
restricted()
|
101
131
|
{
|
102
132
|
// checks
|
103
|
-
// get authorization specification
|
104
|
-
IAuthorization authorization = component.getAuthorization();
|
105
|
-
string memory targetName = authorization.getTargetName();
|
106
133
|
_checkTargetIsReadyForAuthorization(address(component));
|
107
134
|
|
135
|
+
// setup target and role for component (including token handler)
|
136
|
+
_setupComponentAndTokenHandler(component);
|
108
137
|
|
109
|
-
// create roles
|
138
|
+
// create other roles
|
139
|
+
IAuthorization authorization = component.getAuthorization();
|
110
140
|
_createRoles(authorization);
|
111
141
|
|
112
|
-
//
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
true, // checkAuthority
|
117
|
-
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");
|
118
146
|
|
119
|
-
|
120
|
-
|
121
|
-
|
122
|
-
|
123
|
-
|
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);
|
124
152
|
|
125
|
-
|
126
|
-
|
127
|
-
|
128
|
-
|
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());
|
129
161
|
|
130
|
-
|
131
|
-
|
132
|
-
|
133
|
-
getPublicRole(),
|
134
|
-
functions);
|
162
|
+
_createRole(
|
163
|
+
instanceRoleId,
|
164
|
+
_instanceAuthorization.getRoleInfo(instanceRoleId));
|
135
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
|
136
174
|
_grantRoleToAccount(
|
137
|
-
|
138
|
-
|
139
|
-
address(component));
|
140
|
-
|
141
|
-
_createTargetAuthorizations(authorization);
|
175
|
+
instanceRoleId,
|
176
|
+
instance);
|
142
177
|
}
|
143
178
|
|
144
179
|
/// @dev Creates a custom role
|
@@ -160,6 +195,19 @@ contract InstanceAdmin is
|
|
160
195
|
_grantRoleToAccount(roleId, account);
|
161
196
|
}
|
162
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
|
+
|
163
211
|
function setTargetLocked(address target, bool locked)
|
164
212
|
external
|
165
213
|
restricted()
|
@@ -178,12 +226,102 @@ contract InstanceAdmin is
|
|
178
226
|
return _instanceAuthorization;
|
179
227
|
}
|
180
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
|
+
|
181
319
|
|
182
320
|
function _checkTargetIsReadyForAuthorization(address target)
|
183
321
|
internal
|
184
322
|
view
|
185
323
|
{
|
186
|
-
if (
|
324
|
+
if (!_registry.isRegistered(target)) {
|
187
325
|
revert ErrorInstanceAdminNotRegistered(target);
|
188
326
|
}
|
189
327
|
|
@@ -197,13 +335,18 @@ contract InstanceAdmin is
|
|
197
335
|
internal
|
198
336
|
{
|
199
337
|
RoleId[] memory roles = authorization.getRoles();
|
338
|
+
RoleId mainTargetRoleId = authorization.getTargetRole(
|
339
|
+
authorization.getMainTarget());
|
340
|
+
|
200
341
|
RoleId roleId;
|
201
342
|
RoleInfo memory roleInfo;
|
202
343
|
|
203
344
|
for(uint256 i = 0; i < roles.length; i++) {
|
345
|
+
|
204
346
|
roleId = roles[i];
|
205
347
|
|
206
|
-
if
|
348
|
+
// skip main target role, create role if not exists
|
349
|
+
if (roleId != mainTargetRoleId && !roleExists(roleId)) {
|
207
350
|
_createRole(
|
208
351
|
roleId,
|
209
352
|
authorization.getRoleInfo(roleId));
|
@@ -212,6 +355,16 @@ contract InstanceAdmin is
|
|
212
355
|
}
|
213
356
|
|
214
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
|
+
|
215
368
|
function _createTargetAuthorizations(IAuthorization authorization)
|
216
369
|
internal
|
217
370
|
{
|
@@ -262,11 +415,12 @@ contract InstanceAdmin is
|
|
262
415
|
}
|
263
416
|
}
|
264
417
|
|
265
|
-
function
|
418
|
+
function _setupInstanceHelperTargetsWithRoles()
|
266
419
|
internal
|
267
420
|
{
|
421
|
+
// _checkAndCreateTargetWithRole(address(_instance), INSTANCE_TARGET_NAME);
|
422
|
+
|
268
423
|
// create module targets
|
269
|
-
_checkAndCreateTargetWithRole(address(_instance), INSTANCE_TARGET_NAME);
|
270
424
|
_checkAndCreateTargetWithRole(address(_instance.getInstanceStore()), INSTANCE_STORE_TARGET_NAME);
|
271
425
|
_checkAndCreateTargetWithRole(address(_instance.getInstanceAdmin()), INSTANCE_ADMIN_TARGET_NAME);
|
272
426
|
_checkAndCreateTargetWithRole(address(_instance.getBundleSet()), BUNDLE_SET_TARGET_NAME);
|
@@ -2,7 +2,7 @@
|
|
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
8
|
import {BundleSet} from "../instance/BundleSet.sol";
|
@@ -26,27 +26,14 @@ contract InstanceAuthorizationV3
|
|
26
26
|
string public constant BUNDLE_SET_TARGET_NAME = "BundleSet";
|
27
27
|
string public constant RISK_SET_TARGET_NAME = "RiskSet";
|
28
28
|
|
29
|
-
constructor()
|
30
|
-
|
31
|
-
|
32
|
-
function _setupRoles()
|
33
|
-
internal
|
34
|
-
override
|
35
|
-
{
|
36
|
-
// empty implementation
|
37
|
-
}
|
38
|
-
|
29
|
+
constructor()
|
30
|
+
Authorization(INSTANCE_TARGET_NAME, INSTANCE())
|
31
|
+
{ }
|
39
32
|
|
40
33
|
function _setupTargets()
|
41
34
|
internal
|
42
35
|
override
|
43
36
|
{
|
44
|
-
// instance target
|
45
|
-
_addTargetWithRole(
|
46
|
-
INSTANCE_TARGET_NAME,
|
47
|
-
_toTargetRoleId(INSTANCE()),
|
48
|
-
INSTANCE_ROLE_NAME);
|
49
|
-
|
50
37
|
// instance supporting targets
|
51
38
|
_addTarget(INSTANCE_STORE_TARGET_NAME);
|
52
39
|
_addTarget(INSTANCE_ADMIN_TARGET_NAME);
|
@@ -55,6 +42,7 @@ contract InstanceAuthorizationV3
|
|
55
42
|
|
56
43
|
// service targets relevant to instance
|
57
44
|
_addServiceTargetWithRole(INSTANCE());
|
45
|
+
_addServiceTargetWithRole(ACCOUNTING());
|
58
46
|
_addServiceTargetWithRole(COMPONENT());
|
59
47
|
_addServiceTargetWithRole(DISTRIBUTION());
|
60
48
|
_addServiceTargetWithRole(ORACLE());
|
@@ -131,11 +119,12 @@ contract InstanceAuthorizationV3
|
|
131
119
|
IAccess.FunctionInfo[] storage functions;
|
132
120
|
|
133
121
|
// authorize instance role
|
134
|
-
functions = _authorizeForTarget(INSTANCE_ADMIN_TARGET_NAME,
|
122
|
+
functions = _authorizeForTarget(INSTANCE_ADMIN_TARGET_NAME, getComponentRole(INSTANCE()));
|
135
123
|
_authorize(functions, InstanceAdmin.grantRole.selector, "grantRole");
|
136
124
|
|
137
125
|
// authorize component service role
|
138
126
|
functions = _authorizeForTarget(INSTANCE_ADMIN_TARGET_NAME, getServiceRole(COMPONENT()));
|
127
|
+
_authorize(functions, InstanceAdmin.initializeComponentAuthorization.selector, "initializeComponentAuthoriz");
|
139
128
|
_authorize(functions, InstanceAdmin.setTargetLocked.selector, "setTargetLocked");
|
140
129
|
}
|
141
130
|
|
@@ -145,6 +134,13 @@ contract InstanceAuthorizationV3
|
|
145
134
|
{
|
146
135
|
IAccess.FunctionInfo[] storage functions;
|
147
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
|
+
|
148
144
|
// authorize component service role
|
149
145
|
functions = _authorizeForTarget(INSTANCE_STORE_TARGET_NAME, getServiceRole(COMPONENT()));
|
150
146
|
_authorize(functions, InstanceStore.createComponent.selector, "createComponent");
|
@@ -152,11 +148,9 @@ contract InstanceAuthorizationV3
|
|
152
148
|
_authorize(functions, InstanceStore.createPool.selector, "createPool");
|
153
149
|
_authorize(functions, InstanceStore.createProduct.selector, "createProduct");
|
154
150
|
_authorize(functions, InstanceStore.updateProduct.selector, "updateProduct");
|
155
|
-
_authorize(functions, InstanceStore.
|
156
|
-
_authorize(functions, InstanceStore.
|
157
|
-
|
158
|
-
_authorize(functions, InstanceStore.decreaseFees.selector, "decreaseFees");
|
159
|
-
|
151
|
+
_authorize(functions, InstanceStore.createFee.selector, "createFee");
|
152
|
+
_authorize(functions, InstanceStore.updateFee.selector, "updateFee");
|
153
|
+
|
160
154
|
// authorize distribution service role
|
161
155
|
functions = _authorizeForTarget(INSTANCE_STORE_TARGET_NAME, getServiceRole(DISTRIBUTION()));
|
162
156
|
_authorize(functions, InstanceStore.createDistributorType.selector, "createDistributorType");
|
@@ -213,6 +207,7 @@ contract InstanceAuthorizationV3
|
|
213
207
|
_authorize(functions, InstanceStore.updateClaim.selector, "updateClaim");
|
214
208
|
_authorize(functions, InstanceStore.createPayout.selector, "createPayout");
|
215
209
|
_authorize(functions, InstanceStore.updatePayout.selector, "updatePayout");
|
210
|
+
_authorize(functions, InstanceStore.updatePayoutState.selector, "updatePayoutState");
|
216
211
|
}
|
217
212
|
}
|
218
213
|
|