@etherisc/gif-next 0.0.2-e9c5694-914 → 0.0.2-ea09fbf-195
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 +27 -6
- 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 +103 -55
- 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 +2 -2
- package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +1 -1
- package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +1 -1
- package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.json +37 -5
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +1 -1
- 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 +106 -186
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +1 -1
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +2 -2
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +57 -89
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +154 -108
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +75 -53
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +44 -58
- 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 +101 -164
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +49 -17
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +258 -290
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +17 -17
- 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 +137 -129
- package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +470 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +90 -126
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +225 -162
- package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +502 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +630 -317
- package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +470 -0
- 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 +94 -47
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +77 -20
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +131 -56
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +239 -92
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +40 -27
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +478 -197
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +104 -74
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +49 -27
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +410 -370
- 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/ObjectSetHelper.sol/ObjectSetHelperLib.dbg.json +4 -0
- package/artifacts/contracts/instance/base/ObjectSetHelper.sol/ObjectSetHelperLib.json +168 -0
- package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
- package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +1 -1
- package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +1 -1
- package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +74 -154
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +1 -1
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +2 -2
- 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 +44 -58
- 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 +58 -90
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +112 -81
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +69 -27
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +57 -104
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +49 -17
- package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleService.sol/BundleService.json +128 -226
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +60 -74
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +46 -60
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +44 -97
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +104 -78
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
- package/artifacts/contracts/pool/Pool.sol/Pool.json +57 -128
- package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolService.sol/PoolService.json +175 -174
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +64 -38
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +105 -63
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +45 -27
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +163 -175
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +2 -2
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +251 -144
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +79 -57
- 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 +143 -3
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +65 -22
- 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 +150 -144
- 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 +158 -140
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +73 -47
- package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
- package/artifacts/contracts/product/PricingService.sol/PricingService.json +99 -76
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +60 -38
- package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
- package/artifacts/contracts/product/Product.sol/Product.json +163 -175
- package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +1 -1
- package/artifacts/contracts/product/RiskService.sol/RiskService.json +88 -73
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +54 -24
- 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 +31 -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 +69 -40
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +188 -213
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +69 -46
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +42 -20
- package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +4 -0
- package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +1795 -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 +310 -52
- 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 +57 -75
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +250 -421
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +71 -61
- 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 +454 -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 +44 -44
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +134 -248
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +44 -58
- 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 +57 -89
- 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 +388 -35
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +4 -0
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +395 -0
- package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +88 -24
- package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
- package/artifacts/contracts/staking/IStaking.sol/IStaking.json +62 -80
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +27 -3
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +1 -1
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +3 -3
- package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
- package/artifacts/contracts/staking/Staking.sol/Staking.json +134 -173
- 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 +58 -46
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +2 -2
- package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingService.sol/StakingService.json +73 -50
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +46 -24
- 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 +3 -3
- 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/SelectorSetLib.dbg.json +1 -1
- 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 +18 -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 +136 -73
- package/contracts/authorization/AccessManagerCloneable.sol +136 -3
- package/contracts/authorization/IAccessAdmin.sol +6 -3
- package/contracts/distribution/BasicDistribution.sol +6 -6
- package/contracts/distribution/BasicDistributionAuthorization.sol +1 -1
- package/contracts/distribution/Distribution.sol +32 -30
- package/contracts/distribution/DistributionService.sol +34 -32
- package/contracts/distribution/DistributionServiceManager.sol +1 -1
- package/contracts/distribution/IDistributionService.sol +5 -6
- package/contracts/examples/fire/FirePool.sol +22 -5
- package/contracts/examples/fire/FirePoolAuthorization.sol +1 -0
- package/contracts/examples/fire/FireProduct.sol +31 -8
- package/contracts/examples/fire/FireProductAuthorization.sol +1 -0
- package/contracts/examples/unpermissioned/SimpleDistribution.sol +7 -0
- package/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol +28 -0
- package/contracts/examples/unpermissioned/SimplePool.sol +33 -2
- package/contracts/examples/unpermissioned/SimplePoolAuthorization.sol +28 -0
- package/contracts/examples/unpermissioned/SimpleProduct.sol +40 -21
- package/contracts/examples/unpermissioned/SimpleProductAuthorization.sol +28 -0
- package/contracts/instance/BundleSet.sol +42 -38
- package/contracts/instance/IInstance.sol +8 -8
- package/contracts/instance/IInstanceService.sol +9 -9
- package/contracts/instance/Instance.sol +20 -17
- package/contracts/instance/InstanceAdmin.sol +96 -47
- package/contracts/instance/InstanceAuthorizationV3.sol +45 -14
- package/contracts/instance/InstanceReader.sol +108 -7
- package/contracts/instance/InstanceService.sol +73 -82
- 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/ObjectSetHelper.sol +30 -0
- package/contracts/instance/module/IComponents.sol +4 -4
- package/contracts/instance/module/IPolicy.sol +2 -1
- package/contracts/instance/module/IRisk.sol +3 -0
- package/contracts/oracle/Oracle.sol +1 -1
- package/contracts/oracle/OracleService.sol +92 -73
- package/contracts/oracle/OracleServiceManager.sol +1 -1
- package/contracts/pool/BasicPool.sol +24 -3
- package/contracts/pool/BasicPoolAuthorization.sol +12 -1
- package/contracts/pool/BundleService.sol +26 -94
- package/contracts/pool/BundleServiceManager.sol +1 -1
- package/contracts/pool/IBundleService.sol +2 -24
- package/contracts/pool/IPoolComponent.sol +1 -7
- package/contracts/pool/IPoolService.sol +12 -26
- package/contracts/pool/Pool.sol +112 -102
- package/contracts/pool/PoolService.sol +171 -100
- 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 +9 -11
- package/contracts/product/BasicProductAuthorization.sol +1 -2
- package/contracts/product/ClaimService.sol +147 -51
- package/contracts/product/ClaimServiceManager.sol +1 -1
- package/contracts/product/IApplicationService.sol +5 -2
- package/contracts/product/IClaimService.sol +13 -0
- package/contracts/product/IPolicyService.sol +17 -7
- package/contracts/product/IProductComponent.sol +4 -1
- package/contracts/product/PolicyService.sol +244 -199
- 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 +47 -39
- package/contracts/product/RiskService.sol +78 -23
- 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 +12 -3
- package/contracts/registry/RegistryAdmin.sol +121 -225
- 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 +129 -119
- package/contracts/registry/ServiceAuthorizationV3.sol +88 -40
- package/contracts/registry/TokenRegistry.sol +6 -8
- package/contracts/shared/Component.sol +59 -98
- package/contracts/shared/ComponentService.sol +206 -251
- package/contracts/shared/ComponentServiceManager.sol +1 -1
- package/contracts/shared/ComponentVerifyingService.sol +15 -13
- package/contracts/shared/ContractLib.sol +223 -9
- package/contracts/shared/IComponent.sol +4 -17
- package/contracts/shared/IComponentService.sol +20 -24
- 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 +2 -18
- package/contracts/shared/NftOwnable.sol +4 -4
- package/contracts/shared/PolicyHolder.sol +1 -1
- package/contracts/shared/Registerable.sol +44 -20
- package/contracts/shared/RegistryLinked.sol +7 -13
- package/contracts/shared/Service.sol +8 -27
- package/contracts/shared/TokenHandler.sol +316 -66
- package/contracts/shared/TokenHandlerDeployerLib.sol +10 -2
- package/contracts/staking/IStaking.sol +9 -4
- package/contracts/staking/Staking.sol +62 -33
- package/contracts/staking/StakingService.sol +41 -9
- 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 +32 -18
- package/contracts/type/RiskId.sol +23 -6
- package/contracts/type/RoleId.sol +5 -2
- 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 +3 -3
- package/artifacts/contracts/authorization/ReleaseAccessManager.sol/ReleaseAccessManager.dbg.json +0 -4
- package/artifacts/contracts/authorization/ReleaseAccessManager.sol/ReleaseAccessManager.json +0 -1196
- 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
@@ -8,11 +8,16 @@ import {ReentrancyGuardUpgradeable} from "@openzeppelin/contracts-upgradeable/ut
|
|
8
8
|
import {AccessManagerCloneable} from "./AccessManagerCloneable.sol";
|
9
9
|
import {ContractLib} from "../shared/ContractLib.sol";
|
10
10
|
import {IAccessAdmin} from "./IAccessAdmin.sol";
|
11
|
+
import {IRegistry} from "../registry/IRegistry.sol";
|
11
12
|
import {RoleId, RoleIdLib, ADMIN_ROLE, PUBLIC_ROLE} from "../type/RoleId.sol";
|
12
13
|
import {Selector, SelectorLib, SelectorSetLib} from "../type/Selector.sol";
|
13
14
|
import {Str, StrLib} from "../type/String.sol";
|
14
15
|
import {TimestampLib} from "../type/Timestamp.sol";
|
16
|
+
import {VersionPart} from "../type/Version.sol";
|
15
17
|
|
18
|
+
interface IAccessManagedChecker {
|
19
|
+
function authority() external view returns (address);
|
20
|
+
}
|
16
21
|
|
17
22
|
/**
|
18
23
|
* @dev A generic access amin contract that implements role based access control based on OpenZeppelin's AccessManager contract.
|
@@ -68,7 +73,7 @@ contract AccessAdmin is
|
|
68
73
|
|
69
74
|
modifier onlyDeployer() {
|
70
75
|
// special case for cloned AccessAdmin contracts
|
71
|
-
// IMPORTANT cloning and
|
76
|
+
// IMPORTANT cloning and initialize authority needs to be done in a single transaction
|
72
77
|
if (_deployer == address(0)) {
|
73
78
|
_deployer = msg.sender;
|
74
79
|
}
|
@@ -95,8 +100,15 @@ contract AccessAdmin is
|
|
95
100
|
_;
|
96
101
|
}
|
97
102
|
|
98
|
-
modifier onlyExistingRole(
|
99
|
-
|
103
|
+
modifier onlyExistingRole(
|
104
|
+
RoleId roleId,
|
105
|
+
bool onlyActiveRole,
|
106
|
+
bool allowLockedRoles
|
107
|
+
)
|
108
|
+
{
|
109
|
+
if (!allowLockedRoles) {
|
110
|
+
_checkRoleExists(roleId, onlyActiveRole);
|
111
|
+
}
|
100
112
|
_;
|
101
113
|
}
|
102
114
|
|
@@ -105,15 +117,90 @@ contract AccessAdmin is
|
|
105
117
|
_;
|
106
118
|
}
|
107
119
|
|
108
|
-
|
109
|
-
_deployer = msg.sender;
|
110
|
-
_authority = new AccessManagerCloneable();
|
111
|
-
_authority.initialize(address(this));
|
120
|
+
//-------------- initialization functions ------------------------------//
|
112
121
|
|
113
|
-
|
114
|
-
|
122
|
+
// event LogAccessAdminDebug(string message);
|
123
|
+
|
124
|
+
/// @dev Initializes this admin with the provided accessManager (and authorization specification).
|
125
|
+
/// Internally initializes access manager with this admin and creates basic role setup.
|
126
|
+
function initialize(
|
127
|
+
AccessManagerCloneable authority
|
128
|
+
)
|
129
|
+
public
|
130
|
+
initializer()
|
131
|
+
{
|
132
|
+
__AccessAdmin_init(authority);
|
115
133
|
}
|
116
134
|
|
135
|
+
|
136
|
+
function __AccessAdmin_init(
|
137
|
+
AccessManagerCloneable authority
|
138
|
+
)
|
139
|
+
internal
|
140
|
+
onlyInitializing()
|
141
|
+
onlyDeployer() // initializes deployer if not initialized yet
|
142
|
+
{
|
143
|
+
authority.initialize(address(this));
|
144
|
+
|
145
|
+
// set and initialize this access manager contract as
|
146
|
+
// the admin (ADMIN_ROLE) of the provided authority
|
147
|
+
__AccessManaged_init(address(authority));
|
148
|
+
_authority = authority;
|
149
|
+
|
150
|
+
// create admin and public roles
|
151
|
+
_initializeAdminAndPublicRoles();
|
152
|
+
|
153
|
+
// additional use case specific initialization
|
154
|
+
_initializeCustom();
|
155
|
+
}
|
156
|
+
|
157
|
+
|
158
|
+
function getRegistry() public view returns (IRegistry registry) {
|
159
|
+
return _authority.getRegistry();
|
160
|
+
}
|
161
|
+
|
162
|
+
|
163
|
+
function getRelease() public view returns (VersionPart release) {
|
164
|
+
return _authority.getRelease();
|
165
|
+
}
|
166
|
+
|
167
|
+
|
168
|
+
function _initializeAdminAndPublicRoles()
|
169
|
+
internal
|
170
|
+
virtual
|
171
|
+
onlyInitializing()
|
172
|
+
{
|
173
|
+
RoleId adminRoleId = RoleIdLib.toRoleId(_authority.ADMIN_ROLE());
|
174
|
+
|
175
|
+
// setup admin role
|
176
|
+
_createRoleUnchecked(
|
177
|
+
ADMIN_ROLE(),
|
178
|
+
toRole({
|
179
|
+
adminRoleId: ADMIN_ROLE(),
|
180
|
+
roleType: RoleType.Contract,
|
181
|
+
maxMemberCount: 1,
|
182
|
+
name: ADMIN_ROLE_NAME}));
|
183
|
+
|
184
|
+
// add this contract as admin role member
|
185
|
+
_roleMembers[adminRoleId].add(address(this));
|
186
|
+
|
187
|
+
// setup public role
|
188
|
+
_createRoleUnchecked(
|
189
|
+
PUBLIC_ROLE(),
|
190
|
+
toRole({
|
191
|
+
adminRoleId: ADMIN_ROLE(),
|
192
|
+
roleType: RoleType.Gif,
|
193
|
+
maxMemberCount: type(uint32).max,
|
194
|
+
name: PUBLIC_ROLE_NAME}));
|
195
|
+
}
|
196
|
+
|
197
|
+
|
198
|
+
function _initializeCustom()
|
199
|
+
internal
|
200
|
+
virtual
|
201
|
+
onlyInitializing()
|
202
|
+
{ }
|
203
|
+
|
117
204
|
//--- view functions for roles ------------------------------------------//
|
118
205
|
|
119
206
|
function roles() external view returns (uint256 numberOfRoles) {
|
@@ -152,6 +239,7 @@ contract AccessAdmin is
|
|
152
239
|
return _roleMembers[roleId].at(idx);
|
153
240
|
}
|
154
241
|
|
242
|
+
// TODO false because not role member or because role not exists?
|
155
243
|
function hasRole(address account, RoleId roleId) public view returns (bool) {
|
156
244
|
(bool isMember, ) = _authority.hasRole(
|
157
245
|
RoleId.unwrap(roleId),
|
@@ -260,7 +348,11 @@ contract AccessAdmin is
|
|
260
348
|
bytes4[] memory functionSelectors = _processFunctionSelectors(target, functions, addFunctions);
|
261
349
|
|
262
350
|
// apply authz via access manager
|
263
|
-
_grantRoleAccessToFunctions(
|
351
|
+
_grantRoleAccessToFunctions(
|
352
|
+
target,
|
353
|
+
roleId,
|
354
|
+
functionSelectors,
|
355
|
+
false); // allowLockedRoles
|
264
356
|
}
|
265
357
|
|
266
358
|
function _unauthorizeTargetFunctions(
|
@@ -271,7 +363,12 @@ contract AccessAdmin is
|
|
271
363
|
{
|
272
364
|
bool addFunctions = false;
|
273
365
|
bytes4[] memory functionSelectors = _processFunctionSelectors(target, functions, addFunctions);
|
274
|
-
|
366
|
+
|
367
|
+
_grantRoleAccessToFunctions(
|
368
|
+
target,
|
369
|
+
getAdminRole(),
|
370
|
+
functionSelectors,
|
371
|
+
true); // allowLockedRoles
|
275
372
|
}
|
276
373
|
|
277
374
|
function _processFunctionSelectors(
|
@@ -280,6 +377,7 @@ contract AccessAdmin is
|
|
280
377
|
bool addFunctions
|
281
378
|
)
|
282
379
|
internal
|
380
|
+
onlyExistingTarget(target)
|
283
381
|
returns (
|
284
382
|
bytes4[] memory functionSelectors
|
285
383
|
)
|
@@ -305,68 +403,16 @@ contract AccessAdmin is
|
|
305
403
|
}
|
306
404
|
}
|
307
405
|
|
308
|
-
function _initializeAuthority(
|
309
|
-
address authorityAddress
|
310
|
-
)
|
311
|
-
internal
|
312
|
-
virtual
|
313
|
-
onlyInitializing()
|
314
|
-
onlyDeployer()
|
315
|
-
{
|
316
|
-
if (authority() != address(0)) {
|
317
|
-
revert ErrorAuthorityAlreadySet();
|
318
|
-
}
|
319
|
-
|
320
|
-
_authority = AccessManagerCloneable(authorityAddress);
|
321
|
-
__AccessManaged_init(address(_authority));
|
322
|
-
}
|
323
|
-
|
324
|
-
|
325
|
-
function _initializeAdminAndPublicRoles()
|
326
|
-
internal
|
327
|
-
virtual
|
328
|
-
onlyInitializing()
|
329
|
-
{
|
330
|
-
_createAdminAndPublicRoles();
|
331
|
-
}
|
332
|
-
|
333
|
-
|
334
|
-
/// @dev internal setup function that can be used in both constructor and initializer.
|
335
|
-
function _createAdminAndPublicRoles()
|
336
|
-
internal
|
337
|
-
{
|
338
|
-
RoleId adminRoleId = RoleIdLib.toRoleId(_authority.ADMIN_ROLE());
|
339
|
-
|
340
|
-
// setup admin role
|
341
|
-
_createRoleUnchecked(
|
342
|
-
ADMIN_ROLE(),
|
343
|
-
toRole({
|
344
|
-
adminRoleId: ADMIN_ROLE(),
|
345
|
-
roleType: RoleType.Contract,
|
346
|
-
maxMemberCount: 1,
|
347
|
-
name: ADMIN_ROLE_NAME}));
|
348
|
-
|
349
|
-
// add this contract as admin role member
|
350
|
-
_roleMembers[adminRoleId].add(address(this));
|
351
|
-
|
352
|
-
// setup public role
|
353
|
-
_createRoleUnchecked(
|
354
|
-
PUBLIC_ROLE(),
|
355
|
-
toRole({
|
356
|
-
adminRoleId: ADMIN_ROLE(),
|
357
|
-
roleType: RoleType.Gif,
|
358
|
-
maxMemberCount: type(uint32).max,
|
359
|
-
name: PUBLIC_ROLE_NAME}));
|
360
|
-
}
|
361
|
-
|
362
|
-
|
363
406
|
/// @dev grant the specified role access to all functions in the provided selector list
|
364
407
|
function _grantRoleAccessToFunctions(
|
365
408
|
address target,
|
366
409
|
RoleId roleId,
|
367
|
-
bytes4[] memory functionSelectors
|
410
|
+
bytes4[] memory functionSelectors,
|
411
|
+
bool allowLockedRoles // admin and public roles are locked
|
368
412
|
)
|
369
413
|
internal
|
414
|
+
onlyExistingTarget(target)
|
415
|
+
onlyExistingRole(roleId, true, allowLockedRoles)
|
370
416
|
{
|
371
417
|
_authority.setTargetFunctionRole(
|
372
418
|
target,
|
@@ -380,7 +426,7 @@ contract AccessAdmin is
|
|
380
426
|
/// @dev grant the specified role to the provided account
|
381
427
|
function _grantRoleToAccount(RoleId roleId, address account)
|
382
428
|
internal
|
383
|
-
onlyExistingRole(roleId, true)
|
429
|
+
onlyExistingRole(roleId, true, false)
|
384
430
|
{
|
385
431
|
// check max role members will not be exceeded
|
386
432
|
if (_roleMembers[roleId].length() >= _roleInfo[roleId].maxMemberCount) {
|
@@ -408,7 +454,7 @@ contract AccessAdmin is
|
|
408
454
|
/// @dev revoke the specified role from the provided account
|
409
455
|
function _revokeRoleFromAccount(RoleId roleId, address account)
|
410
456
|
internal
|
411
|
-
onlyExistingRole(roleId, false)
|
457
|
+
onlyExistingRole(roleId, false, false)
|
412
458
|
{
|
413
459
|
|
414
460
|
// check role removal is permitted
|
@@ -492,7 +538,6 @@ contract AccessAdmin is
|
|
492
538
|
bool custom
|
493
539
|
)
|
494
540
|
internal
|
495
|
-
nonReentrant()
|
496
541
|
{
|
497
542
|
// check target does not yet exist
|
498
543
|
if(targetExists(target)) {
|
@@ -516,7 +561,7 @@ contract AccessAdmin is
|
|
516
561
|
}
|
517
562
|
|
518
563
|
// check target is an access managed contract
|
519
|
-
if (!
|
564
|
+
if (!_isAccessManaged(target)) {
|
520
565
|
revert ErrorTargetNotAccessManaged(target);
|
521
566
|
}
|
522
567
|
|
@@ -545,6 +590,23 @@ contract AccessAdmin is
|
|
545
590
|
}
|
546
591
|
|
547
592
|
|
593
|
+
function _isAccessManaged(address target)
|
594
|
+
internal
|
595
|
+
view
|
596
|
+
returns (bool)
|
597
|
+
{
|
598
|
+
if (!ContractLib.isContract(target)) {
|
599
|
+
return false;
|
600
|
+
}
|
601
|
+
|
602
|
+
(bool success, ) = target.staticcall(
|
603
|
+
abi.encodeWithSelector(
|
604
|
+
IAccessManagedChecker.authority.selector));
|
605
|
+
|
606
|
+
return success;
|
607
|
+
}
|
608
|
+
|
609
|
+
|
548
610
|
function _setTargetClosed(address target, bool locked)
|
549
611
|
internal
|
550
612
|
{
|
@@ -571,8 +633,9 @@ contract AccessAdmin is
|
|
571
633
|
}
|
572
634
|
|
573
635
|
uint64 roleIdInt = RoleId.unwrap(roleId);
|
574
|
-
if (roleIdInt == _authority.ADMIN_ROLE()
|
575
|
-
|
636
|
+
if (roleIdInt == _authority.ADMIN_ROLE())
|
637
|
+
// TODO cleanup
|
638
|
+
//|| roleIdInt == _authority.PUBLIC_ROLE()) prevents granting of public role
|
576
639
|
{
|
577
640
|
revert ErrorRoleIsLocked(roleId);
|
578
641
|
}
|
@@ -2,15 +2,148 @@
|
|
2
2
|
pragma solidity ^0.8.20;
|
3
3
|
|
4
4
|
import {AccessManagerUpgradeable} from "@openzeppelin/contracts-upgradeable/access/manager/AccessManagerUpgradeable.sol";
|
5
|
+
import {IAccessManaged} from "@openzeppelin/contracts/access/manager/IAccessManaged.sol";
|
6
|
+
import {IAccessManager} from "@openzeppelin/contracts/access/manager/IAccessManager.sol";
|
5
7
|
|
8
|
+
import {InitializableERC165} from "../shared/InitializableERC165.sol";
|
9
|
+
import {RegistryLinked} from "../shared/RegistryLinked.sol";
|
10
|
+
import {VersionPart, VersionLib} from "../type/Version.sol";
|
11
|
+
|
12
|
+
|
13
|
+
/// @dev An AccessManager based on OpenZeppelin that is cloneable and has a central lock property.
|
14
|
+
/// The lock property allows to lock all services of a release in a central place.
|
15
|
+
/// Cloned by upon release preparation and instance cloning.
|
6
16
|
contract AccessManagerCloneable is
|
7
|
-
AccessManagerUpgradeable
|
17
|
+
AccessManagerUpgradeable,
|
18
|
+
InitializableERC165,
|
19
|
+
RegistryLinked
|
8
20
|
{
|
21
|
+
error ErrorAccessManagerCallerNotAdmin(address caller);
|
22
|
+
error ErrorAccessManagerRegistryAlreadySet(address registry);
|
23
|
+
error ErrorAccessManagerInvalidRelease(VersionPart release);
|
24
|
+
|
25
|
+
error ErrorAccessManagerTargetAdminLocked(address target);
|
26
|
+
error ErrorAccessManagerCallerAdminLocked(address caller);
|
9
27
|
|
10
|
-
|
28
|
+
VersionPart private _release;
|
29
|
+
bool private _isLocked;
|
30
|
+
|
31
|
+
modifier onlyAdminRole() {
|
32
|
+
(bool isMember, ) = hasRole(ADMIN_ROLE, msg.sender);
|
33
|
+
if(!isMember) {
|
34
|
+
revert ErrorAccessManagerCallerNotAdmin(msg.sender);
|
35
|
+
}
|
36
|
+
_;
|
37
|
+
}
|
38
|
+
|
39
|
+
function initialize(address admin)
|
11
40
|
external
|
12
41
|
initializer()
|
13
42
|
{
|
14
|
-
__AccessManager_init(
|
43
|
+
__AccessManager_init(admin);
|
44
|
+
_initializeERC165();
|
45
|
+
_registerInterface(type(IAccessManager).interfaceId);
|
46
|
+
}
|
47
|
+
|
48
|
+
|
49
|
+
/// @dev Completes the setup of the access manager.
|
50
|
+
/// Links the access manager to the registry and sets the release version.
|
51
|
+
function completeSetup(
|
52
|
+
address registry,
|
53
|
+
VersionPart release
|
54
|
+
)
|
55
|
+
external
|
56
|
+
onlyAdminRole
|
57
|
+
reinitializer(uint64(release.toInt()))
|
58
|
+
{
|
59
|
+
_completeSetup(registry, release, true);
|
60
|
+
}
|
61
|
+
|
62
|
+
/// @dev Completes the setup of the access manager.
|
63
|
+
/// Links the access manager to the registry and sets the release version.
|
64
|
+
function completeSetup(
|
65
|
+
address registry,
|
66
|
+
VersionPart release,
|
67
|
+
bool verifyRelease
|
68
|
+
)
|
69
|
+
public
|
70
|
+
onlyAdminRole
|
71
|
+
reinitializer(uint64(release.toInt()))
|
72
|
+
{
|
73
|
+
_completeSetup(registry, release, verifyRelease);
|
74
|
+
}
|
75
|
+
|
76
|
+
/// @dev Returns true if the caller is authorized to call the target with the given selector and the manager lock is not set to locked.
|
77
|
+
/// Feturn values as in OpenZeppelin AccessManager.
|
78
|
+
/// For a locked manager the function reverts with ErrorAccessManagerTargetAdminLocked.
|
79
|
+
function canCall(
|
80
|
+
address caller,
|
81
|
+
address target,
|
82
|
+
bytes4 selector
|
83
|
+
)
|
84
|
+
public
|
85
|
+
view
|
86
|
+
virtual override
|
87
|
+
returns (
|
88
|
+
bool immediate,
|
89
|
+
uint32 delay
|
90
|
+
)
|
91
|
+
{
|
92
|
+
(immediate, delay) = super.canCall(caller, target, selector);
|
93
|
+
|
94
|
+
// locking of all contracts under control of this access manager
|
95
|
+
if (isLocked()) {
|
96
|
+
revert ErrorAccessManagerTargetAdminLocked(target);
|
97
|
+
}
|
98
|
+
}
|
99
|
+
|
100
|
+
|
101
|
+
/// @dev Locks/unlocks all services of this access manager.
|
102
|
+
/// Only the corresponding access admin can lock/unlock the services.
|
103
|
+
function setLocked(bool locked)
|
104
|
+
external
|
105
|
+
onlyAdminRole()
|
106
|
+
{
|
107
|
+
_isLocked = locked;
|
108
|
+
}
|
109
|
+
|
110
|
+
|
111
|
+
/// @dev Returns the release version of this access manager.
|
112
|
+
/// For the registry admin release 3 is returned.
|
113
|
+
/// For the release admin and the instance admin the actual release version is returned.
|
114
|
+
function getRelease() external view returns (VersionPart release) {
|
115
|
+
return _release;
|
116
|
+
}
|
117
|
+
|
118
|
+
|
119
|
+
/// @dev Returns true iff all contracts of this access manager are locked.
|
120
|
+
function isLocked()
|
121
|
+
public
|
122
|
+
view
|
123
|
+
returns (bool)
|
124
|
+
{
|
125
|
+
return _isLocked;
|
126
|
+
}
|
127
|
+
|
128
|
+
|
129
|
+
function _completeSetup(
|
130
|
+
address registry,
|
131
|
+
VersionPart release,
|
132
|
+
bool verifyRelease
|
133
|
+
)
|
134
|
+
internal
|
135
|
+
{
|
136
|
+
// checks
|
137
|
+
if(address(getRegistry()) != address(0)) {
|
138
|
+
revert ErrorAccessManagerRegistryAlreadySet(address(getRegistry()) );
|
139
|
+
}
|
140
|
+
|
141
|
+
if (verifyRelease && !release.isValidRelease()) {
|
142
|
+
revert ErrorAccessManagerInvalidRelease(release);
|
143
|
+
}
|
144
|
+
|
145
|
+
// effects
|
146
|
+
__RegistryLinked_init(registry);
|
147
|
+
_release = release;
|
15
148
|
}
|
16
149
|
}
|
@@ -4,14 +4,16 @@ pragma solidity ^0.8.20;
|
|
4
4
|
import {IAccessManaged} from "@openzeppelin/contracts/access/manager/IAccessManaged.sol";
|
5
5
|
|
6
6
|
import {IAccess} from "./IAccess.sol";
|
7
|
+
import {IRegistryLinked} from "../shared/IRegistryLinked.sol";
|
7
8
|
import {RoleId} from "../type/RoleId.sol";
|
8
9
|
import {Selector} from "../type/Selector.sol";
|
9
10
|
import {Str} from "../type/String.sol";
|
10
|
-
import {
|
11
|
+
import {VersionPart} from "../type/Version.sol";
|
11
12
|
|
12
13
|
interface IAccessAdmin is
|
13
14
|
IAccessManaged,
|
14
|
-
IAccess
|
15
|
+
IAccess,
|
16
|
+
IRegistryLinked
|
15
17
|
{
|
16
18
|
|
17
19
|
// roles
|
@@ -29,7 +31,6 @@ interface IAccessAdmin is
|
|
29
31
|
error ErrorNotRoleOwner(RoleId roleId);
|
30
32
|
|
31
33
|
// initialize authority
|
32
|
-
error ErrorAuthorityAlreadySet();
|
33
34
|
error ErrorAdminRoleMissing();
|
34
35
|
|
35
36
|
// create role
|
@@ -106,6 +107,8 @@ interface IAccessAdmin is
|
|
106
107
|
|
107
108
|
//--- view functions ----------------------------------------------------//
|
108
109
|
|
110
|
+
function getRelease() external view returns (VersionPart release);
|
111
|
+
|
109
112
|
function roles() external view returns (uint256 numberOfRoles);
|
110
113
|
function getRoleId(uint256 idx) external view returns (RoleId roleId);
|
111
114
|
function getAdminRole() external view returns (RoleId roleId);
|
@@ -44,8 +44,8 @@ contract BasicDistribution is
|
|
44
44
|
)
|
45
45
|
external
|
46
46
|
virtual
|
47
|
-
onlyOwner()
|
48
47
|
restricted()
|
48
|
+
onlyOwner()
|
49
49
|
returns (DistributorType distributorType)
|
50
50
|
{
|
51
51
|
return _createDistributorType(
|
@@ -67,25 +67,25 @@ contract BasicDistribution is
|
|
67
67
|
)
|
68
68
|
external
|
69
69
|
virtual
|
70
|
-
onlyOwner()
|
71
70
|
restricted()
|
71
|
+
onlyOwner()
|
72
72
|
returns(NftId distributorNftId)
|
73
73
|
{
|
74
74
|
return _createDistributor(distributor, distributorType, data);
|
75
75
|
}
|
76
76
|
|
77
|
-
function
|
77
|
+
function changeDistributorType(
|
78
78
|
NftId distributorNftId,
|
79
79
|
DistributorType distributorType,
|
80
80
|
bytes memory data
|
81
81
|
)
|
82
82
|
external
|
83
83
|
virtual
|
84
|
+
restricted()
|
84
85
|
onlyOwner()
|
85
86
|
onlyNftOfType(distributorNftId, DISTRIBUTOR())
|
86
|
-
restricted()
|
87
87
|
{
|
88
|
-
|
88
|
+
_changeDistributorType(distributorNftId, distributorType, data);
|
89
89
|
}
|
90
90
|
|
91
91
|
/**
|
@@ -101,8 +101,8 @@ contract BasicDistribution is
|
|
101
101
|
)
|
102
102
|
external
|
103
103
|
virtual
|
104
|
-
onlyDistributor()
|
105
104
|
restricted()
|
105
|
+
onlyDistributor()
|
106
106
|
returns (ReferralId referralId)
|
107
107
|
{
|
108
108
|
NftId distributorNftId = getDistributorNftId(msg.sender);
|
@@ -37,7 +37,7 @@ contract BasicDistributionAuthorization
|
|
37
37
|
_authorize(functions, BasicDistribution.setFees.selector, "setFees");
|
38
38
|
_authorize(functions, BasicDistribution.createDistributorType.selector, "createDistributorType");
|
39
39
|
_authorize(functions, BasicDistribution.createDistributor.selector, "createDistributor");
|
40
|
-
_authorize(functions, BasicDistribution.
|
40
|
+
_authorize(functions, BasicDistribution.changeDistributorType.selector, "changeDistributorType");
|
41
41
|
_authorize(functions, BasicDistribution.createReferral.selector, "createReferral");
|
42
42
|
|
43
43
|
_authorize(functions, IInstanceLinkedComponent.withdrawFees.selector, "withdrawFees");
|
@@ -37,6 +37,32 @@ abstract contract Distribution is
|
|
37
37
|
}
|
38
38
|
|
39
39
|
|
40
|
+
function processRenewal(
|
41
|
+
ReferralId referralId,
|
42
|
+
uint256 feeAmount
|
43
|
+
)
|
44
|
+
external
|
45
|
+
virtual
|
46
|
+
restricted()
|
47
|
+
{
|
48
|
+
// default is no action
|
49
|
+
}
|
50
|
+
|
51
|
+
|
52
|
+
/// @inheritdoc IDistributionComponent
|
53
|
+
function withdrawCommission(NftId distributorNftId, Amount amount)
|
54
|
+
external
|
55
|
+
virtual
|
56
|
+
restricted()
|
57
|
+
onlyDistributor()
|
58
|
+
onlyNftOfType(distributorNftId, DISTRIBUTOR())
|
59
|
+
onlyNftOwner(distributorNftId)
|
60
|
+
returns (Amount withdrawnAmount)
|
61
|
+
{
|
62
|
+
return _withdrawCommission(distributorNftId, amount);
|
63
|
+
}
|
64
|
+
|
65
|
+
|
40
66
|
function isDistributor(address candidate)
|
41
67
|
public
|
42
68
|
view
|
@@ -97,35 +123,12 @@ abstract contract Distribution is
|
|
97
123
|
}
|
98
124
|
|
99
125
|
|
100
|
-
function processRenewal(
|
101
|
-
ReferralId referralId,
|
102
|
-
uint256 feeAmount
|
103
|
-
)
|
104
|
-
external
|
105
|
-
virtual
|
106
|
-
restricted()
|
107
|
-
{
|
108
|
-
// default is no action
|
109
|
-
}
|
110
|
-
|
111
126
|
/// @dev Returns true iff the component needs to be called when selling/renewing policis
|
112
127
|
function isVerifying() external pure returns (bool verifying) {
|
113
128
|
return true;
|
114
129
|
}
|
115
130
|
|
116
|
-
|
117
|
-
function withdrawCommission(NftId distributorNftId, Amount amount)
|
118
|
-
external
|
119
|
-
virtual
|
120
|
-
restricted()
|
121
|
-
onlyDistributor()
|
122
|
-
onlyNftOfType(distributorNftId, DISTRIBUTOR())
|
123
|
-
onlyNftOwner(distributorNftId)
|
124
|
-
returns (Amount withdrawnAmount)
|
125
|
-
{
|
126
|
-
return _withdrawCommission(distributorNftId, amount);
|
127
|
-
}
|
128
|
-
|
131
|
+
|
129
132
|
function _initializeDistribution(
|
130
133
|
address registry,
|
131
134
|
NftId productNftId,
|
@@ -223,7 +226,7 @@ abstract contract Distribution is
|
|
223
226
|
}
|
224
227
|
|
225
228
|
/// @dev Uptates the distributor type for the specified distributor.
|
226
|
-
function
|
229
|
+
function _changeDistributorType(
|
227
230
|
NftId distributorNftId,
|
228
231
|
DistributorType distributorType,
|
229
232
|
bytes memory data
|
@@ -232,11 +235,10 @@ abstract contract Distribution is
|
|
232
235
|
virtual
|
233
236
|
{
|
234
237
|
DistributionStorage storage $ = _getDistributionStorage();
|
235
|
-
|
236
|
-
|
237
|
-
|
238
|
-
|
239
|
-
// data);
|
238
|
+
$._distributionService.changeDistributorType(
|
239
|
+
distributorNftId,
|
240
|
+
distributorType,
|
241
|
+
data);
|
240
242
|
}
|
241
243
|
|
242
244
|
/// @dev Create a new referral code for the provided distributor.
|