@etherisc/gif-next 0.0.2-95b223b-528 → 0.0.2-95f0eec-843
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 +57 -1
- package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.dbg.json +1 -1
- package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +134 -59
- package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +93 -49
- package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.dbg.json +1 -1
- package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.json +85 -9
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +1 -1
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +640 -269
- package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.dbg.json +4 -0
- package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.json +1289 -0
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +1 -1
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +202 -5
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +409 -33
- 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 +525 -213
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +179 -19
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +246 -16
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +420 -27
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +105 -153
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +1 -1
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +381 -46
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +58 -95
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +533 -218
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +149 -81
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +45 -82
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +379 -79
- 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 +145 -114
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +355 -52
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +183 -144
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +380 -45
- 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 +163 -169
- package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +380 -45
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +94 -68
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +175 -141
- package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +355 -52
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +259 -146
- package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +380 -45
- 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 +474 -48
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +377 -10
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +485 -83
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +999 -334
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +380 -52
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +724 -412
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +381 -77
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +82 -56
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +434 -358
- 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 +77 -49
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +1 -1
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +379 -47
- 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 +49 -21
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +56 -3
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +61 -33
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +120 -68
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +98 -54
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +102 -82
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +355 -52
- package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleService.sol/BundleService.json +304 -226
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +119 -75
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +200 -89
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +59 -31
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +333 -169
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
- package/artifacts/contracts/pool/Pool.sol/Pool.json +72 -44
- package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +4 -0
- package/artifacts/contracts/pool/PoolLib.sol/PoolLib.json +522 -0
- package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolService.sol/PoolService.json +574 -360
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +145 -73
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +292 -62
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +105 -45
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +87 -59
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +380 -45
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +171 -174
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +120 -84
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +234 -3
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +63 -17
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +160 -68
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +77 -3
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +70 -42
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +1 -1
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.json +150 -7
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +278 -187
- package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.dbg.json +4 -0
- package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.json +783 -0
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +128 -84
- package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
- package/artifacts/contracts/product/PricingService.sol/PricingService.json +135 -126
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +102 -74
- package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
- package/artifacts/contracts/product/Product.sol/Product.json +81 -53
- package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +1 -1
- package/artifacts/contracts/product/RiskService.sol/RiskService.json +218 -76
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +102 -46
- 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 +51 -16
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +56 -3
- package/artifacts/contracts/registry/IRelease.sol/IRelease.dbg.json +4 -0
- package/artifacts/contracts/{authorization/AccessAdmin.sol/IAccessManagedChecker.json → registry/IRelease.sol/IRelease.json} +6 -6
- 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 +89 -54
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +728 -480
- package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.dbg.json +4 -0
- package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.json +1053 -0
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +75 -39
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +78 -42
- package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +4 -0
- package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +2152 -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 +385 -63
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +437 -26
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +15 -15
- package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
- package/artifacts/contracts/shared/Component.sol/Component.json +60 -32
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +211 -250
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +104 -68
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +1 -1
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +178 -34
- 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 +49 -21
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +131 -153
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +49 -21
- 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/INftOwnable.sol/INftOwnable.json +19 -0
- 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 +139 -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 +56 -3
- package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +1 -1
- package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +2 -2
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +60 -32
- 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 +21 -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 +137 -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 +51 -11
- 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 +268 -39
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +163 -10
- package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
- package/artifacts/contracts/staking/Staking.sol/Staking.json +341 -103
- package/artifacts/contracts/staking/StakingLib.sol/StakingLib.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingLib.sol/StakingLib.json +469 -0
- 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 +112 -50
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +90 -61
- package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingService.sol/StakingService.json +218 -58
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +95 -47
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +162 -148
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +60 -50
- 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 +10 -10
- 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 +93 -37
- 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 +33 -31
- 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 +30 -6
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +42 -157
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +21 -2
- 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/String.sol/StrLib.json +50 -2
- 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 +60 -36
- 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 +101 -2
- package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.json +10 -0
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +64 -26
- package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +15 -2
- package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.json +10 -0
- package/contracts/accounting/AccountingService.sol +18 -7
- package/contracts/accounting/AccountingServiceManager.sol +1 -1
- package/contracts/accounting/IAccountingService.sol +4 -2
- package/contracts/authorization/AccessAdmin.sol +419 -254
- package/contracts/authorization/AccessAdminLib.sol +396 -0
- package/contracts/authorization/AccessManagerCloneable.sol +146 -4
- package/contracts/authorization/Authorization.sol +142 -262
- package/contracts/authorization/IAccess.sol +25 -7
- package/contracts/authorization/IAccessAdmin.sol +87 -80
- package/contracts/authorization/IAuthorization.sol +9 -42
- package/contracts/authorization/IServiceAuthorization.sol +55 -17
- package/contracts/authorization/ServiceAuthorization.sol +247 -33
- package/contracts/distribution/BasicDistribution.sol +13 -11
- package/contracts/distribution/BasicDistributionAuthorization.sol +29 -9
- package/contracts/distribution/Distribution.sol +18 -58
- package/contracts/distribution/DistributionService.sol +168 -77
- package/contracts/distribution/DistributionServiceManager.sol +1 -1
- package/contracts/distribution/IDistributionComponent.sol +3 -10
- package/contracts/distribution/IDistributionService.sol +34 -19
- package/contracts/examples/fire/FirePool.sol +0 -4
- package/contracts/examples/fire/FirePoolAuthorization.sol +1 -1
- package/contracts/examples/fire/FireProduct.sol +2 -7
- package/contracts/examples/fire/FireProductAuthorization.sol +1 -1
- package/contracts/examples/unpermissioned/SimpleDistribution.sol +32 -8
- package/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol +1 -1
- package/contracts/examples/unpermissioned/SimpleOracle.sol +4 -8
- package/contracts/examples/unpermissioned/SimplePool.sol +0 -5
- package/contracts/examples/unpermissioned/SimplePoolAuthorization.sol +1 -1
- package/contracts/examples/unpermissioned/SimpleProduct.sol +26 -11
- package/contracts/examples/unpermissioned/SimpleProductAuthorization.sol +1 -1
- package/contracts/instance/BundleSet.sol +4 -4
- package/contracts/instance/IInstance.sol +91 -17
- package/contracts/instance/IInstanceService.sol +50 -4
- package/contracts/instance/Instance.sol +159 -52
- package/contracts/instance/InstanceAdmin.sol +265 -170
- package/contracts/instance/InstanceAuthorizationV3.sol +75 -34
- package/contracts/instance/InstanceReader.sol +415 -379
- package/contracts/instance/InstanceService.sol +251 -144
- package/contracts/instance/InstanceServiceManager.sol +1 -1
- package/contracts/instance/RiskSet.sol +11 -12
- package/contracts/instance/base/BalanceStore.sol +3 -5
- package/contracts/instance/base/ObjectLifecycle.sol +0 -3
- package/contracts/instance/base/ObjectSet.sol +7 -8
- package/contracts/instance/base/ObjectSetHelperLib.sol +30 -0
- package/contracts/instance/module/IBundle.sol +6 -5
- package/contracts/instance/module/IComponents.sol +16 -5
- package/contracts/instance/module/IDistribution.sol +21 -8
- package/contracts/instance/module/IPolicy.sol +28 -8
- package/contracts/instance/module/IRisk.sol +4 -0
- package/contracts/oracle/BasicOracle.sol +1 -3
- package/contracts/oracle/BasicOracleAuthorization.sol +15 -8
- package/contracts/oracle/IOracle.sol +9 -4
- package/contracts/oracle/Oracle.sol +1 -3
- package/contracts/oracle/OracleService.sol +20 -19
- package/contracts/oracle/OracleServiceManager.sol +1 -1
- package/contracts/pool/BasicPool.sol +2 -15
- package/contracts/pool/BasicPoolAuthorization.sol +29 -16
- package/contracts/pool/BundleService.sol +55 -94
- package/contracts/pool/BundleServiceManager.sol +1 -1
- package/contracts/pool/IBundleService.sol +27 -32
- package/contracts/pool/IPoolService.sol +57 -40
- package/contracts/pool/Pool.sol +11 -23
- package/contracts/pool/PoolLib.sol +341 -0
- package/contracts/pool/PoolService.sol +192 -193
- package/contracts/pool/PoolServiceManager.sol +1 -1
- package/contracts/product/ApplicationService.sol +85 -17
- package/contracts/product/ApplicationServiceManager.sol +1 -1
- package/contracts/product/BasicProduct.sol +0 -2
- package/contracts/product/BasicProductAuthorization.sol +31 -9
- package/contracts/product/ClaimService.sol +127 -169
- package/contracts/product/ClaimServiceManager.sol +1 -1
- package/contracts/product/IApplicationService.sol +23 -1
- package/contracts/product/IClaimService.sol +2 -3
- package/contracts/product/IPolicyService.sol +20 -8
- package/contracts/product/IPricingService.sol +1 -0
- package/contracts/product/IRiskService.sol +11 -7
- package/contracts/product/PolicyService.sol +104 -195
- package/contracts/product/PolicyServiceLib.sol +139 -0
- package/contracts/product/PolicyServiceManager.sol +1 -1
- package/contracts/product/PricingService.sol +38 -35
- package/contracts/product/PricingServiceManager.sol +3 -3
- package/contracts/product/Product.sol +30 -21
- package/contracts/product/RiskService.sol +85 -29
- package/contracts/product/RiskServiceManager.sol +1 -1
- package/contracts/registry/IRegistry.sol +21 -19
- package/contracts/registry/IRelease.sol +29 -0
- package/contracts/registry/Registry.sol +19 -8
- package/contracts/registry/RegistryAdmin.sol +100 -369
- package/contracts/registry/RegistryAuthorization.sol +284 -0
- package/contracts/registry/RegistryService.sol +4 -4
- package/contracts/registry/RegistryServiceManager.sol +1 -1
- package/contracts/registry/ReleaseAdmin.sol +195 -0
- package/contracts/registry/ReleaseLifecycle.sol +2 -0
- package/contracts/registry/ReleaseRegistry.sol +150 -116
- package/contracts/registry/ServiceAuthorizationV3.sol +159 -22
- package/contracts/registry/TokenRegistry.sol +12 -13
- package/contracts/shared/Component.sol +17 -26
- package/contracts/shared/ComponentService.sol +263 -283
- package/contracts/shared/ComponentServiceManager.sol +1 -1
- package/contracts/shared/ContractLib.sol +163 -76
- package/contracts/shared/IComponent.sol +1 -5
- package/contracts/shared/IComponentService.sol +21 -26
- package/contracts/shared/INftOwnable.sol +2 -0
- package/contracts/shared/IRegisterable.sol +15 -5
- package/contracts/shared/IService.sol +3 -5
- package/contracts/shared/InitializableERC165.sol +9 -1
- package/contracts/shared/InstanceLinkedComponent.sol +4 -7
- package/contracts/shared/NftOwnable.sol +8 -6
- package/contracts/shared/PolicyHolder.sol +4 -3
- package/contracts/shared/Registerable.sol +42 -19
- package/contracts/shared/RegistryLinked.sol +1 -1
- package/contracts/shared/Service.sol +13 -30
- package/contracts/shared/TokenHandler.sol +45 -92
- package/contracts/staking/IStaking.sol +41 -19
- package/contracts/staking/IStakingService.sol +21 -8
- package/contracts/staking/Staking.sol +159 -69
- package/contracts/staking/{StakeManagerLib.sol → StakingLib.sol} +80 -23
- package/contracts/staking/StakingReader.sol +28 -19
- package/contracts/staking/StakingService.sol +74 -46
- package/contracts/staking/StakingServiceManager.sol +5 -4
- package/contracts/staking/StakingStore.sol +3 -2
- package/contracts/staking/TargetManagerLib.sol +1 -1
- package/contracts/type/Fee.sol +8 -8
- package/contracts/type/ObjectType.sol +69 -52
- package/contracts/type/RiskId.sol +9 -3
- package/contracts/type/RoleId.sol +63 -45
- package/contracts/type/Seconds.sol +4 -0
- package/contracts/type/Selector.sol +5 -0
- package/contracts/type/String.sol +12 -0
- package/contracts/type/Timestamp.sol +0 -5
- package/contracts/type/UFixed.sol +27 -10
- package/contracts/type/Version.sol +54 -5
- package/contracts/upgradeability/IVersionable.sol +3 -0
- package/contracts/upgradeability/ProxyManager.sol +26 -12
- package/contracts/upgradeability/UpgradableProxyWithAdmin.sol +7 -1
- package/contracts/upgradeability/Versionable.sol +6 -3
- package/package.json +2 -2
- package/artifacts/contracts/authorization/AccessAdmin.sol/IAccessManagedChecker.dbg.json +0 -4
- package/artifacts/contracts/authorization/ReleaseAccessManager.sol/ReleaseAccessManager.dbg.json +0 -4
- package/artifacts/contracts/authorization/ReleaseAccessManager.sol/ReleaseAccessManager.json +0 -1196
- package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +0 -4
- package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +0 -129
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +0 -4
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +0 -474
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +0 -4
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +0 -440
- package/contracts/authorization/ReleaseAccessManager.sol +0 -38
- package/contracts/instance/module/IAccess.sol +0 -46
- package/contracts/shared/ComponentVerifyingService.sol +0 -128
@@ -68,7 +68,6 @@ contract FireProduct is
|
|
68
68
|
address registry,
|
69
69
|
NftId instanceNftid,
|
70
70
|
string memory componentName,
|
71
|
-
address token,
|
72
71
|
IAuthorization authorization
|
73
72
|
)
|
74
73
|
{
|
@@ -78,7 +77,6 @@ contract FireProduct is
|
|
78
77
|
registry,
|
79
78
|
instanceNftid,
|
80
79
|
componentName,
|
81
|
-
token,
|
82
80
|
authorization,
|
83
81
|
initialOwner);
|
84
82
|
}
|
@@ -87,7 +85,6 @@ contract FireProduct is
|
|
87
85
|
address registry,
|
88
86
|
NftId instanceNftId,
|
89
87
|
string memory componentName,
|
90
|
-
address token,
|
91
88
|
IAuthorization authorization,
|
92
89
|
address initialOwner
|
93
90
|
)
|
@@ -98,7 +95,6 @@ contract FireProduct is
|
|
98
95
|
registry,
|
99
96
|
instanceNftId,
|
100
97
|
componentName,
|
101
|
-
token,
|
102
98
|
IComponents.ProductInfo({
|
103
99
|
isProcessingFundedClaims: false,
|
104
100
|
isInterceptingPolicyTransfers: false,
|
@@ -252,8 +248,7 @@ contract FireProduct is
|
|
252
248
|
return _riskMapping[cityName];
|
253
249
|
}
|
254
250
|
_cities.push(cityName);
|
255
|
-
risk =
|
256
|
-
_createRisk(risk, "");
|
251
|
+
risk = _createRisk(bytes32(abi.encodePacked(cityName)), "");
|
257
252
|
_riskMapping[cityName] = risk;
|
258
253
|
}
|
259
254
|
|
@@ -268,7 +263,7 @@ contract FireProduct is
|
|
268
263
|
onlyOwner()
|
269
264
|
onlyNftOfType(policyNftId, POLICY())
|
270
265
|
{
|
271
|
-
_createPolicy(policyNftId, activateAt);
|
266
|
+
_createPolicy(policyNftId, activateAt, AmountLib.max());
|
272
267
|
_collectPremium(policyNftId, activateAt);
|
273
268
|
}
|
274
269
|
|
@@ -23,7 +23,7 @@ contract FireProductAuthorization
|
|
23
23
|
IAccess.FunctionInfo[] storage functions;
|
24
24
|
|
25
25
|
// authorize public role (open access to any account, only allows to lock target)
|
26
|
-
functions = _authorizeForTarget(
|
26
|
+
functions = _authorizeForTarget(getMainTargetName(), PUBLIC_ROLE());
|
27
27
|
// fully public functions
|
28
28
|
_authorize(functions, FireProduct.approveTokenHandler.selector, "approveTokenHandler");
|
29
29
|
_authorize(functions, FireProduct.createApplication.selector, "createApplication");
|
@@ -7,6 +7,9 @@ import {Amount} from "../../type/Amount.sol";
|
|
7
7
|
import {BasicDistribution} from "../../distribution/BasicDistribution.sol";
|
8
8
|
import {IAuthorization} from "../../authorization/IAuthorization.sol";
|
9
9
|
import {NftId} from "../../type/NftId.sol";
|
10
|
+
import {ReferralId} from "../../type/Referral.sol";
|
11
|
+
import {Timestamp, TimestampLib} from "../../type/Timestamp.sol";
|
12
|
+
import {UFixed, UFixedLib} from "../../type/UFixed.sol";
|
10
13
|
|
11
14
|
|
12
15
|
contract SimpleDistribution is
|
@@ -17,8 +20,7 @@ contract SimpleDistribution is
|
|
17
20
|
address registry,
|
18
21
|
NftId productNftId,
|
19
22
|
IAuthorization authorization,
|
20
|
-
address initialOwner
|
21
|
-
address token
|
23
|
+
address initialOwner
|
22
24
|
)
|
23
25
|
{
|
24
26
|
initialize(
|
@@ -26,8 +28,7 @@ contract SimpleDistribution is
|
|
26
28
|
productNftId,
|
27
29
|
authorization,
|
28
30
|
initialOwner,
|
29
|
-
"SimpleDistribution"
|
30
|
-
token);
|
31
|
+
"SimpleDistribution");
|
31
32
|
}
|
32
33
|
|
33
34
|
function initialize(
|
@@ -35,8 +36,7 @@ contract SimpleDistribution is
|
|
35
36
|
NftId productNftId,
|
36
37
|
IAuthorization authorization,
|
37
38
|
address initialOwner,
|
38
|
-
string memory name
|
39
|
-
address token
|
39
|
+
string memory name
|
40
40
|
)
|
41
41
|
public
|
42
42
|
virtual
|
@@ -47,11 +47,35 @@ contract SimpleDistribution is
|
|
47
47
|
productNftId,
|
48
48
|
authorization,
|
49
49
|
initialOwner,
|
50
|
-
name
|
51
|
-
token);
|
50
|
+
name);
|
52
51
|
}
|
53
52
|
|
54
53
|
function approveTokenHandler(IERC20Metadata token, Amount amount) external restricted() onlyOwner() { _approveTokenHandler(token, amount); }
|
55
54
|
function setLocked(bool locked) external onlyOwner() { _setLocked(locked); }
|
56
55
|
function setWallet(address newWallet) external restricted() onlyOwner() { _setWallet(newWallet); }
|
56
|
+
|
57
|
+
/**
|
58
|
+
* @dev create referral codes. This is required for testing only to provide a distributor that is not the message sender.
|
59
|
+
*/
|
60
|
+
function createReferral2(
|
61
|
+
NftId distributorNftId,
|
62
|
+
string memory code,
|
63
|
+
UFixed discountPercentage,
|
64
|
+
uint32 maxReferrals,
|
65
|
+
Timestamp expiryAt,
|
66
|
+
bytes memory data
|
67
|
+
)
|
68
|
+
external
|
69
|
+
virtual
|
70
|
+
returns (ReferralId referralId)
|
71
|
+
{
|
72
|
+
return _createReferral(
|
73
|
+
distributorNftId,
|
74
|
+
code,
|
75
|
+
discountPercentage,
|
76
|
+
maxReferrals,
|
77
|
+
expiryAt,
|
78
|
+
data); // data
|
79
|
+
}
|
80
|
+
|
57
81
|
}
|
@@ -21,7 +21,7 @@ contract SimpleDistributionAuthorization
|
|
21
21
|
|
22
22
|
// authorize public role (open access to any account, only allows to lock target)
|
23
23
|
IAccess.FunctionInfo[] storage functions;
|
24
|
-
functions = _authorizeForTarget(
|
24
|
+
functions = _authorizeForTarget(getMainTargetName(), PUBLIC_ROLE());
|
25
25
|
_authorize(functions, SimpleDistribution.approveTokenHandler.selector, "approveTokenHandler");
|
26
26
|
_authorize(functions, SimpleDistribution.setWallet.selector, "setWallet");
|
27
27
|
}
|
@@ -34,8 +34,7 @@ contract SimpleOracle is
|
|
34
34
|
address registry,
|
35
35
|
NftId productNftId,
|
36
36
|
IAuthorization authorization,
|
37
|
-
address initialOwner
|
38
|
-
address token
|
37
|
+
address initialOwner
|
39
38
|
)
|
40
39
|
{
|
41
40
|
initialize(
|
@@ -43,8 +42,7 @@ contract SimpleOracle is
|
|
43
42
|
productNftId,
|
44
43
|
authorization,
|
45
44
|
initialOwner,
|
46
|
-
"SimpleOracle"
|
47
|
-
token
|
45
|
+
"SimpleOracle"
|
48
46
|
);
|
49
47
|
}
|
50
48
|
|
@@ -53,8 +51,7 @@ contract SimpleOracle is
|
|
53
51
|
NftId productNftId,
|
54
52
|
IAuthorization authorization,
|
55
53
|
address initialOwner,
|
56
|
-
string memory name
|
57
|
-
address token
|
54
|
+
string memory name
|
58
55
|
)
|
59
56
|
public
|
60
57
|
virtual
|
@@ -65,8 +62,7 @@ contract SimpleOracle is
|
|
65
62
|
productNftId,
|
66
63
|
authorization,
|
67
64
|
initialOwner,
|
68
|
-
name
|
69
|
-
token);
|
65
|
+
name);
|
70
66
|
}
|
71
67
|
|
72
68
|
/// @dev use case specific handling of oracle requests
|
@@ -5,7 +5,6 @@ import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/extensions/IER
|
|
5
5
|
|
6
6
|
import {Amount, AmountLib} from "../../type/Amount.sol";
|
7
7
|
import {BasicPool} from "../../pool/BasicPool.sol";
|
8
|
-
import {BasicPoolAuthorization} from "../../pool/BasicPoolAuthorization.sol";
|
9
8
|
import {Fee} from "../../type/Fee.sol";
|
10
9
|
import {IAuthorization} from "../../authorization/IAuthorization.sol";
|
11
10
|
import {IComponents} from "../../instance/module/IComponents.sol";
|
@@ -20,7 +19,6 @@ contract SimplePool is
|
|
20
19
|
constructor(
|
21
20
|
address registry,
|
22
21
|
NftId productNftId,
|
23
|
-
address token,
|
24
22
|
IComponents.PoolInfo memory poolInfo,
|
25
23
|
IAuthorization authorization,
|
26
24
|
address initialOwner
|
@@ -29,7 +27,6 @@ contract SimplePool is
|
|
29
27
|
initialize(
|
30
28
|
registry,
|
31
29
|
productNftId,
|
32
|
-
token,
|
33
30
|
poolInfo,
|
34
31
|
authorization,
|
35
32
|
initialOwner
|
@@ -40,7 +37,6 @@ contract SimplePool is
|
|
40
37
|
function initialize(
|
41
38
|
address registry,
|
42
39
|
NftId productNftId,
|
43
|
-
address token,
|
44
40
|
IComponents.PoolInfo memory poolInfo,
|
45
41
|
IAuthorization authorization,
|
46
42
|
address initialOwner
|
@@ -53,7 +49,6 @@ contract SimplePool is
|
|
53
49
|
registry,
|
54
50
|
productNftId,
|
55
51
|
"SimplePool",
|
56
|
-
token,
|
57
52
|
poolInfo,
|
58
53
|
authorization,
|
59
54
|
initialOwner);
|
@@ -21,7 +21,7 @@ contract SimplePoolAuthorization
|
|
21
21
|
|
22
22
|
// authorize public role (open access to any account, only allows to lock target)
|
23
23
|
IAccess.FunctionInfo[] storage functions;
|
24
|
-
functions = _authorizeForTarget(
|
24
|
+
functions = _authorizeForTarget(getMainTargetName(), PUBLIC_ROLE());
|
25
25
|
_authorize(functions, SimplePool.approveTokenHandler.selector, "approveTokenHandler");
|
26
26
|
_authorize(functions, SimplePool.setWallet.selector, "setWallet");
|
27
27
|
}
|
@@ -37,7 +37,6 @@ contract SimpleProduct is
|
|
37
37
|
address registry,
|
38
38
|
NftId instanceNftId,
|
39
39
|
string memory name,
|
40
|
-
address token,
|
41
40
|
IComponents.ProductInfo memory productInfo,
|
42
41
|
IComponents.FeeInfo memory feeInfo,
|
43
42
|
IAuthorization authorization,
|
@@ -48,7 +47,6 @@ contract SimpleProduct is
|
|
48
47
|
registry,
|
49
48
|
instanceNftId,
|
50
49
|
name,
|
51
|
-
token,
|
52
50
|
productInfo,
|
53
51
|
feeInfo,
|
54
52
|
authorization,
|
@@ -60,7 +58,6 @@ contract SimpleProduct is
|
|
60
58
|
address registry,
|
61
59
|
NftId instanceNftid,
|
62
60
|
string memory name,
|
63
|
-
address token,
|
64
61
|
IComponents.ProductInfo memory productInfo,
|
65
62
|
IComponents.FeeInfo memory feeInfo,
|
66
63
|
IAuthorization authorization,
|
@@ -74,7 +71,6 @@ contract SimpleProduct is
|
|
74
71
|
registry,
|
75
72
|
instanceNftid,
|
76
73
|
name,
|
77
|
-
token,
|
78
74
|
productInfo,
|
79
75
|
feeInfo,
|
80
76
|
authorization,
|
@@ -85,11 +81,11 @@ contract SimpleProduct is
|
|
85
81
|
|
86
82
|
|
87
83
|
function createRisk(
|
88
|
-
|
84
|
+
string memory id,
|
89
85
|
bytes memory data
|
90
|
-
) public {
|
91
|
-
_createRisk(
|
92
|
-
id,
|
86
|
+
) public returns (RiskId) {
|
87
|
+
return _createRisk(
|
88
|
+
bytes32(abi.encodePacked(id)),
|
93
89
|
data
|
94
90
|
);
|
95
91
|
}
|
@@ -152,7 +148,19 @@ contract SimpleProduct is
|
|
152
148
|
bool requirePremiumPayment,
|
153
149
|
Timestamp activateAt
|
154
150
|
) public {
|
155
|
-
_createPolicy(applicationNftId, activateAt);
|
151
|
+
_createPolicy(applicationNftId, activateAt, AmountLib.max());
|
152
|
+
if (requirePremiumPayment == true) {
|
153
|
+
_collectPremium(applicationNftId, activateAt);
|
154
|
+
}
|
155
|
+
}
|
156
|
+
|
157
|
+
function createPolicy2(
|
158
|
+
NftId applicationNftId,
|
159
|
+
bool requirePremiumPayment,
|
160
|
+
Timestamp activateAt,
|
161
|
+
Amount maxPremiumAmount
|
162
|
+
) public {
|
163
|
+
_createPolicy(applicationNftId, activateAt, maxPremiumAmount);
|
156
164
|
if (requirePremiumPayment == true) {
|
157
165
|
_collectPremium(applicationNftId, activateAt);
|
158
166
|
}
|
@@ -188,6 +196,13 @@ contract SimpleProduct is
|
|
188
196
|
_activate(policyNftId, activateAt);
|
189
197
|
}
|
190
198
|
|
199
|
+
function adjustActivation(
|
200
|
+
NftId policyNftId,
|
201
|
+
Timestamp activateAt
|
202
|
+
) public {
|
203
|
+
_adjustActivation(policyNftId, activateAt);
|
204
|
+
}
|
205
|
+
|
191
206
|
function close(
|
192
207
|
NftId policyNftId
|
193
208
|
) public {
|
@@ -263,8 +278,8 @@ contract SimpleProduct is
|
|
263
278
|
function processPayout(
|
264
279
|
NftId policyNftId,
|
265
280
|
PayoutId payoutId
|
266
|
-
) public {
|
267
|
-
_processPayout(policyNftId, payoutId);
|
281
|
+
) public returns (Amount netPayoutAmount, Amount processingFeeAmount) {
|
282
|
+
(netPayoutAmount, processingFeeAmount) = _processPayout(policyNftId, payoutId);
|
268
283
|
}
|
269
284
|
|
270
285
|
function createOracleRequest(
|
@@ -21,7 +21,7 @@ contract SimpleProductAuthorization
|
|
21
21
|
|
22
22
|
// authorize public role (open access to any account, only allows to lock target)
|
23
23
|
IAccess.FunctionInfo[] storage functions;
|
24
|
-
functions = _authorizeForTarget(
|
24
|
+
functions = _authorizeForTarget(getMainTargetName(), PUBLIC_ROLE());
|
25
25
|
_authorize(functions, SimpleProduct.approveTokenHandler.selector, "approveTokenHandler");
|
26
26
|
_authorize(functions, SimpleProduct.setWallet.selector, "setWallet");
|
27
27
|
}
|
@@ -1,13 +1,13 @@
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
2
2
|
pragma solidity ^0.8.20;
|
3
3
|
|
4
|
-
import {IPolicy} from "../instance/module/IPolicy.sol";
|
5
4
|
import {LibNftIdSet} from "../type/NftIdSet.sol";
|
6
5
|
import {NftId, NftIdLib} from "../type/NftId.sol";
|
7
6
|
import {Key32} from "../type/Key32.sol";
|
8
7
|
import {BUNDLE} from "../type/ObjectType.sol";
|
9
8
|
|
10
9
|
import {ObjectSet} from "./base/ObjectSet.sol";
|
10
|
+
import {ObjectSetHelperLib} from "./base/ObjectSetHelperLib.sol";
|
11
11
|
|
12
12
|
contract BundleSet is
|
13
13
|
ObjectSet
|
@@ -60,7 +60,7 @@ contract BundleSet is
|
|
60
60
|
/// @dev add a new bundle to a pool registerd with this instance
|
61
61
|
// the corresponding pool is fetched via instance reader
|
62
62
|
function add(NftId bundleNftId) external restricted() {
|
63
|
-
NftId poolNftId =
|
63
|
+
NftId poolNftId = ObjectSetHelperLib.getPoolNftId(_instanceAddress, bundleNftId);
|
64
64
|
|
65
65
|
// ensure pool is registered with instance
|
66
66
|
if(poolNftId.eqz()) {
|
@@ -74,14 +74,14 @@ contract BundleSet is
|
|
74
74
|
|
75
75
|
/// @dev unlocked (active) bundles are available to collateralize new policies
|
76
76
|
function unlock(NftId bundleNftId) external restricted() {
|
77
|
-
NftId poolNftId =
|
77
|
+
NftId poolNftId = ObjectSetHelperLib.getPoolNftId(_instanceAddress, bundleNftId);
|
78
78
|
_activate(poolNftId, _toBundleKey32(bundleNftId));
|
79
79
|
emit LogBundleSetBundleUnlocked(poolNftId, bundleNftId);
|
80
80
|
}
|
81
81
|
|
82
82
|
/// @dev locked (deactivated) bundles may not collateralize any new policies
|
83
83
|
function lock(NftId bundleNftId) external restricted() {
|
84
|
-
NftId poolNftId =
|
84
|
+
NftId poolNftId = ObjectSetHelperLib.getPoolNftId(_instanceAddress, bundleNftId);
|
85
85
|
_deactivate(poolNftId, _toBundleKey32(bundleNftId));
|
86
86
|
emit LogBundleSetBundleLocked(poolNftId, bundleNftId);
|
87
87
|
}
|
@@ -1,7 +1,8 @@
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
2
2
|
pragma solidity ^0.8.20;
|
3
3
|
|
4
|
-
import {
|
4
|
+
import {IAccess} from "../authorization/IAccess.sol";
|
5
|
+
import {IRegisterable} from "../shared/IRegisterable.sol";
|
5
6
|
|
6
7
|
import {Amount} from "../type/Amount.sol";
|
7
8
|
import {BundleSet} from "./BundleSet.sol";
|
@@ -9,8 +10,6 @@ import {RiskSet} from "./RiskSet.sol";
|
|
9
10
|
import {InstanceAdmin} from "./InstanceAdmin.sol";
|
10
11
|
import {InstanceReader} from "./InstanceReader.sol";
|
11
12
|
import {InstanceStore} from "./InstanceStore.sol";
|
12
|
-
import {IRegisterable} from "../shared/IRegisterable.sol";
|
13
|
-
import {ITransferInterceptor} from "../registry/ITransferInterceptor.sol";
|
14
13
|
import {NftId} from "../type/NftId.sol";
|
15
14
|
import {RoleId} from "../type/RoleId.sol";
|
16
15
|
import {Seconds} from "../type/Seconds.sol";
|
@@ -18,12 +17,25 @@ import {UFixed} from "../type/UFixed.sol";
|
|
18
17
|
|
19
18
|
|
20
19
|
interface IInstance is
|
21
|
-
IRegisterable
|
22
|
-
ITransferInterceptor,
|
23
|
-
IAccessManaged
|
20
|
+
IRegisterable
|
24
21
|
{
|
22
|
+
// role handling
|
23
|
+
event LogInstanceCustomRoleCreated(RoleId roleId, string roleName, RoleId adminRoleId, uint32 maxMemberCount);
|
24
|
+
event LogInstanceCustomRoleActiveSet(RoleId roleId, bool active, address caller);
|
25
|
+
event LogInstanceCustomRoleGranted(RoleId roleId, address account, address caller);
|
26
|
+
event LogInstanceCustomRoleRevoked(RoleId roleId, address account, address caller);
|
27
|
+
|
28
|
+
// target handling
|
29
|
+
event LogInstanceCustomTargetCreated(address target, RoleId targetRoleId, string name);
|
30
|
+
event LogInstanceTargetLocked(address target, bool locked);
|
31
|
+
event LogInstanceCustomTargetFunctionRoleSet(address target, bytes4[] selectors, RoleId roleId);
|
32
|
+
|
33
|
+
// modifier is onlyRoleAdmin
|
34
|
+
error ErrorInstanceNotCustomRole(RoleId roleId);
|
35
|
+
error ErrorInstanceNotRoleAdmin(RoleId roleId, address account);
|
36
|
+
|
25
37
|
error ErrorInstanceInstanceAdminZero();
|
26
|
-
error ErrorInstanceInstanceAdminAlreadySet(address
|
38
|
+
error ErrorInstanceInstanceAdminAlreadySet(address instanceAdmin);
|
27
39
|
error ErrorInstanceInstanceAdminAuthorityMismatch(address instanceAuthority);
|
28
40
|
|
29
41
|
error ErrorInstanceBundleSetAlreadySet(address instanceBundleSet);
|
@@ -43,29 +55,91 @@ interface IInstance is
|
|
43
55
|
uint64 requestsCount;
|
44
56
|
}
|
45
57
|
|
46
|
-
|
47
|
-
function registerProduct(address product) external returns (NftId productNftId);
|
58
|
+
///--- instance ---------------------------------------------------------//
|
48
59
|
|
49
|
-
|
50
|
-
function
|
51
|
-
function revokeRole(RoleId roleId, address account) external;
|
60
|
+
/// @dev Locks/unlocks the complete instance, including all its components.
|
61
|
+
function setInstanceLocked(bool locked) external;
|
52
62
|
|
53
|
-
|
54
|
-
function
|
55
|
-
function setLocked(address target, bool locked) external;
|
63
|
+
/// @dev Upgrades the instance reader to the specified target.
|
64
|
+
function upgradeInstanceReader() external;
|
56
65
|
|
66
|
+
/// @dev Sets the instance reader for the instance.
|
67
|
+
/// Permissioned: only the instance service may call this function.
|
68
|
+
function setInstanceReader(InstanceReader instanceReader) external;
|
69
|
+
|
70
|
+
///--- staking ----------------------------------------------------------//
|
71
|
+
|
72
|
+
/// @dev Sets the duration for locking new stakes on this instance..
|
57
73
|
function setStakingLockingPeriod(Seconds stakeLockingPeriod) external;
|
74
|
+
|
75
|
+
/// @dev Sets the staking reward rate [apr] for this instance.
|
58
76
|
function setStakingRewardRate(UFixed rewardRate) external;
|
77
|
+
|
78
|
+
/// @dev Sets the maximum staked amount for this instance.
|
79
|
+
function setStakingMaxAmount(Amount maxStakedAmount) external;
|
80
|
+
|
81
|
+
/// @dev Refills the staking reward reserves for the specified target.
|
59
82
|
function refillStakingRewardReserves(Amount dipAmount) external;
|
60
83
|
|
61
84
|
/// @dev Defunds the staking reward reserves for the specified target.
|
62
|
-
/// Permissioned: only the target owner may call this function.
|
63
85
|
function withdrawStakingRewardReserves(Amount dipAmount) external returns (Amount newBalance);
|
64
86
|
|
65
|
-
|
87
|
+
///--- product/component ------------------------------------------------//
|
88
|
+
|
89
|
+
/// @dev Locks/unlocks the specified target.
|
90
|
+
function setTargetLocked(address target, bool locked) external;
|
91
|
+
|
92
|
+
/// @dev Register a product with the instance.
|
93
|
+
function registerProduct(address product, address token) external returns (NftId productNftId);
|
94
|
+
|
95
|
+
///--- authz ------------------------------------------------------------//
|
96
|
+
|
97
|
+
/// @dev Creates a new custom role for the calling instance.
|
98
|
+
/// Custom roles are intended to be used for access control of custom components and its helper contracts.
|
99
|
+
/// Custom roles are not intended to be used as target roles for custom contracts.
|
100
|
+
function createRole(string memory roleName, RoleId adminRoleId, uint32 maxMemberCount) external returns (RoleId roleId);
|
101
|
+
|
102
|
+
/// @dev Activates/deactivates the specified role.
|
103
|
+
/// Only instance owner or account with role admin role can call this function.
|
104
|
+
function setRoleActive(RoleId roleId, bool active) external;
|
105
|
+
|
106
|
+
/// @dev Grants the specified role to the account.
|
107
|
+
/// Only active roles can be granted.
|
108
|
+
/// Only instance owner or account with role admin role can call this function.
|
109
|
+
function grantRole(RoleId roleId, address account) external;
|
110
|
+
|
111
|
+
/// @dev Revokes the specified role from the account.
|
112
|
+
/// Only instance owner or account with role admin role can call this function.
|
113
|
+
function revokeRole(RoleId roleId, address account) external;
|
114
|
+
|
115
|
+
/// @dev Creates a new custom target.
|
116
|
+
/// Custom targets are intended to be used for access control helper contracts of components.
|
117
|
+
/// Custom targets are not intended to be used for components.
|
118
|
+
function createTarget(address target, string memory name) external returns (RoleId contractRoleId);
|
119
|
+
|
120
|
+
/// @dev Authorizes the specified functions for the target and provided role.
|
121
|
+
function authorizeFunctions(address target, RoleId roleId, IAccess.FunctionInfo[] memory functions) external;
|
122
|
+
|
123
|
+
/// @dev Removes any role authorization for the specified functions.
|
124
|
+
function unauthorizeFunctions(address target, IAccess.FunctionInfo[] memory functions) external;
|
125
|
+
|
126
|
+
//--- getters -----------------------------------------------------------//
|
127
|
+
|
128
|
+
/// @dev returns the overall locking state of the instance (including all components)
|
129
|
+
function isInstanceLocked() external view returns (bool isLocked);
|
130
|
+
|
131
|
+
/// @dev returns the locking state of the specified target
|
132
|
+
function isTargetLocked(address target) external view returns (bool isLocked);
|
133
|
+
|
134
|
+
// get products
|
135
|
+
function products() external view returns (uint256 productCount);
|
136
|
+
function getProductNftId(uint256 idx) external view returns (NftId productNftId);
|
137
|
+
|
138
|
+
// get supporting contracts
|
66
139
|
function getInstanceReader() external view returns (InstanceReader);
|
67
140
|
function getBundleSet() external view returns (BundleSet);
|
68
141
|
function getRiskSet() external view returns (RiskSet);
|
69
142
|
function getInstanceAdmin() external view returns (InstanceAdmin);
|
70
143
|
function getInstanceStore() external view returns (InstanceStore);
|
144
|
+
function isTokenRegistryDisabled() external view returns (bool);
|
71
145
|
}
|
@@ -1,11 +1,14 @@
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
2
2
|
pragma solidity ^0.8.20;
|
3
3
|
|
4
|
-
import {
|
4
|
+
import {IAccess} from "../authorization/IAccess.sol";
|
5
5
|
import {IInstance} from "./IInstance.sol";
|
6
6
|
import {IService} from "../shared/IService.sol";
|
7
|
+
|
8
|
+
import {Amount} from "../type/Amount.sol";
|
7
9
|
import {NftId} from "../type/NftId.sol";
|
8
10
|
import {ObjectType} from "../type/ObjectType.sol";
|
11
|
+
import {RoleId} from "../type/RoleId.sol";
|
9
12
|
import {Seconds} from "../type/Seconds.sol";
|
10
13
|
import {UFixed} from "../type/UFixed.sol";
|
11
14
|
import {VersionPart} from "../type/Version.sol";
|
@@ -15,7 +18,7 @@ interface IInstanceService is IService {
|
|
15
18
|
// onlyInstance
|
16
19
|
error ErrorInstanceServiceNotRegistered(address instance);
|
17
20
|
error ErrorInstanceServiceNotInstance(address instance, ObjectType objectType);
|
18
|
-
error ErrorInstanceServiceInstanceVersionMismatch(
|
21
|
+
error ErrorInstanceServiceInstanceVersionMismatch(NftId instanceNftId, VersionPart expectedRelease, VersionPart instanceRelease);
|
19
22
|
|
20
23
|
error ErrorInstanceServiceComponentNotInstanceLinked(address component);
|
21
24
|
|
@@ -51,18 +54,61 @@ interface IInstanceService is IService {
|
|
51
54
|
error ErrorInstanceServiceInstanceComponentMismatch(NftId instanceNftId, NftId componentNftId);
|
52
55
|
error ErrorInstanceServiceInvalidComponentType(address componentAddress, ObjectType expectedType, ObjectType componentType);
|
53
56
|
|
54
|
-
event
|
57
|
+
event LogInstanceServiceInstanceLocked(NftId instanceNftId, bool locked);
|
58
|
+
event LogInstanceServiceInstanceCreated(NftId instanceNftId, address instance);
|
59
|
+
event LogInstanceServiceMasterInstanceReaderUpgraded(NftId instanceNfId, address newInstanceReader);
|
60
|
+
event LogInstanceServiceInstanceReaderUpgraded(NftId instanceNfId, address newInstanceReader);
|
61
|
+
|
62
|
+
/// @dev Creates a new custom role for the calling instance.
|
63
|
+
function createRole(string memory roleName, RoleId adminRoleId, uint32 maxMemberCount) external returns (RoleId roleId);
|
64
|
+
|
65
|
+
/// @dev Sets the specified custom role as active or inactive for the calling instance.
|
66
|
+
function setRoleActive(RoleId roleId, bool active) external;
|
67
|
+
|
68
|
+
/// @dev Grants the specified custom role to the specified account for the calling instance.
|
69
|
+
function grantRole(RoleId roleId, address account) external;
|
70
|
+
|
71
|
+
/// @dev Revokes the specified custom role from the specified account for the calling instance.
|
72
|
+
function revokeRole(RoleId roleId, address account) external;
|
73
|
+
|
74
|
+
/// @dev Creates a new custom target for the calling instance.
|
75
|
+
/// All custom trargets are created with a corresponding contract role.
|
76
|
+
function createTarget(address target, string memory name) external returns (RoleId contractRoleId);
|
77
|
+
|
78
|
+
/// @dev Authorizes the specified functions for the specified target.
|
79
|
+
function authorizeFunctions(address target, RoleId roleId, IAccess.FunctionInfo[] memory functions) external;
|
80
|
+
|
81
|
+
/// @dev Removes any role authorization for the specified functions.
|
82
|
+
function unauthorizeFunctions(address target, IAccess.FunctionInfo[] memory functions) external;
|
83
|
+
|
84
|
+
/// @dev Locks/unlocks the specified target constrolled by the corresponding instance admin.
|
85
|
+
function setTargetLocked(address target, bool locked) external;
|
86
|
+
|
87
|
+
/// @dev Locks the complete instance, including all its components.
|
88
|
+
function setInstanceLocked(bool locked) external;
|
55
89
|
|
56
|
-
|
90
|
+
/// @dev Creates a new instance.
|
91
|
+
/// The caller becomes the owner of the new instance.
|
92
|
+
/// Creation of a new instance is achieved by this service through the creation and registration
|
93
|
+
/// of a new clone of the master instance and then setting up the initial wiring and authorization
|
94
|
+
/// of the necessary components.
|
95
|
+
/// @param allowAnyToken specifies whether the new instance is allowed to use any token or
|
96
|
+
/// only tokens that are registered in the `TokenRegistry`. Use of tokens **not** registered in the
|
97
|
+
/// `TokenRegistry` may result in problems with token handline and is therefor not recommended. The
|
98
|
+
/// use of such instances **is not supported** by Etherisc.
|
99
|
+
function createInstance(bool allowAnyToken)
|
57
100
|
external
|
58
101
|
returns (
|
59
102
|
IInstance instance,
|
60
103
|
NftId instanceNftId
|
61
104
|
);
|
62
105
|
|
106
|
+
function upgradeInstanceReader() external;
|
107
|
+
function upgradeMasterInstanceReader(address instanceReaderAddress) external;
|
63
108
|
|
64
109
|
function setStakingLockingPeriod(Seconds stakeLockingPeriod) external;
|
65
110
|
function setStakingRewardRate(UFixed rewardRate) external;
|
111
|
+
function setStakingMaxAmount(Amount maxStakedAmount) external;
|
66
112
|
function refillStakingRewardReserves(address rewardProvider, Amount dipAmount) external;
|
67
113
|
|
68
114
|
/// @dev Defunds the staking reward reserves for the specified target.
|