@etherisc/gif-next 0.0.2-e5a6af8-639 → 0.0.2-e5bdc7a-061
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/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +1 -1
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +2 -2
- 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/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/IAuthorization.sol/IAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/ReleaseAccessManager.sol/ReleaseAccessManager.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 +55 -133
- 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 +8 -38
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +133 -78
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +78 -46
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +11 -23
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +23 -0
- 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 +38 -147
- 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 +92 -190
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +2 -2
- 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 +66 -107
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +33 -87
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +155 -141
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +391 -205
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +1 -1
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +147 -42
- package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstance.sol/IInstance.json +46 -0
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +24 -4
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +78 -11
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +85 -72
- 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 +302 -74
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +61 -25
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +46 -22
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +36 -46
- package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +4 -0
- package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +810 -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 +2 -2
- 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 +22 -100
- 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 +11 -23
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +8 -38
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +84 -60
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +66 -22
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +8 -53
- 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 +101 -206
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +58 -70
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +19 -57
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +11 -62
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +77 -75
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
- package/artifacts/contracts/pool/Pool.sol/Pool.json +8 -77
- package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolService.sol/PoolService.json +153 -159
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +61 -33
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +66 -31
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +42 -22
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +13 -38
- 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 +84 -76
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +67 -47
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +34 -7
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +38 -19
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +16 -23
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +132 -121
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +70 -42
- package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
- package/artifacts/contracts/product/PricingService.sol/PricingService.json +54 -38
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +56 -32
- package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
- package/artifacts/contracts/product/Product.sol/Product.json +13 -38
- package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +1 -1
- package/artifacts/contracts/product/RiskService.sol/RiskService.json +34 -18
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +40 -16
- 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 +24 -0
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
- 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 +62 -38
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +107 -94
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +32 -16
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +39 -15
- 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 +12 -12
- 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 +2 -2
- package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
- package/artifacts/contracts/shared/Component.sol/Component.json +8 -38
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +169 -102
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +74 -42
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +1 -1
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +1 -1
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +402 -6
- 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/IComponent.sol/IComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponent.sol/IComponent.json +11 -23
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +67 -0
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +11 -23
- 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/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
- package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
- 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 +8 -38
- 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 +2 -2
- 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/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 +29 -59
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +1 -1
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +2 -2
- package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
- package/artifacts/contracts/staking/Staking.sol/Staking.json +80 -152
- 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 +50 -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 +36 -20
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +43 -19
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +2 -2
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +2 -2
- package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
- package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
- package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +2 -2
- package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
- package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +2 -2
- package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
- package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +1 -1
- package/artifacts/contracts/type/Key32.sol/Key32Lib.json +2 -2
- package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.dbg.json +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 +43 -5
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +2 -2
- 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/UFixed.sol/MathLib.dbg.json +1 -1
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
- package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
- package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
- 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/authorization/AccessAdmin.sol +21 -1
- package/contracts/distribution/BasicDistribution.sol +2 -2
- package/contracts/distribution/BasicDistributionAuthorization.sol +1 -1
- package/contracts/distribution/Distribution.sol +5 -6
- package/contracts/distribution/DistributionService.sol +19 -20
- package/contracts/distribution/IDistributionService.sol +5 -6
- package/contracts/examples/fire/FirePool.sol +19 -8
- package/contracts/examples/fire/FireProduct.sol +24 -11
- package/contracts/examples/unpermissioned/SimpleDistribution.sol +8 -0
- package/contracts/examples/unpermissioned/SimplePool.sol +34 -2
- package/contracts/examples/unpermissioned/SimpleProduct.sol +15 -21
- package/contracts/instance/BundleSet.sol +38 -34
- package/contracts/instance/IInstance.sol +6 -0
- package/contracts/instance/IInstanceService.sol +7 -5
- package/contracts/instance/Instance.sol +14 -5
- package/contracts/instance/InstanceAdmin.sol +6 -5
- package/contracts/instance/InstanceAuthorizationV3.sol +30 -7
- package/contracts/instance/InstanceReader.sol +85 -1
- package/contracts/instance/InstanceService.sol +32 -19
- package/contracts/instance/RiskSet.sol +119 -0
- package/contracts/instance/base/ObjectSet.sol +24 -25
- package/contracts/instance/module/IComponents.sol +1 -2
- package/contracts/instance/module/IPolicy.sol +2 -1
- package/contracts/instance/module/IRisk.sol +1 -0
- package/contracts/oracle/OracleService.sol +87 -69
- package/contracts/pool/BasicPool.sol +24 -3
- package/contracts/pool/BasicPoolAuthorization.sol +12 -1
- package/contracts/pool/BundleService.sol +37 -94
- package/contracts/pool/IBundleService.sol +2 -23
- 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 +177 -99
- package/contracts/product/ApplicationService.sol +20 -18
- package/contracts/product/BasicProduct.sol +7 -11
- package/contracts/product/ClaimService.sol +19 -9
- package/contracts/product/IApplicationService.sol +5 -2
- package/contracts/product/IPolicyService.sol +17 -7
- package/contracts/product/PolicyService.sol +241 -191
- package/contracts/product/PricingService.sol +4 -1
- package/contracts/product/Product.sol +12 -40
- package/contracts/product/RiskService.sol +14 -3
- package/contracts/registry/IRegistry.sol +2 -0
- package/contracts/registry/Registry.sol +9 -1
- package/contracts/registry/RegistryAdmin.sol +14 -11
- package/contracts/registry/ReleaseRegistry.sol +2 -18
- package/contracts/registry/ServiceAuthorizationV3.sol +12 -31
- package/contracts/shared/Component.sol +35 -83
- package/contracts/shared/ComponentService.sol +105 -34
- package/contracts/shared/ComponentVerifyingService.sol +15 -13
- package/contracts/shared/ContractLib.sol +196 -10
- package/contracts/shared/IComponent.sol +5 -12
- package/contracts/shared/IComponentService.sol +13 -3
- package/contracts/shared/InstanceLinkedComponent.sol +1 -9
- package/contracts/shared/NftOwnable.sol +5 -1
- package/contracts/shared/Registerable.sol +0 -2
- package/contracts/shared/RegistryLinked.sol +6 -12
- 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 +29 -21
- package/contracts/staking/StakingService.sol +55 -8
- 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 +2 -0
- package/contracts/type/RiskId.sol +18 -6
- package/package.json +3 -3
@@ -6,6 +6,7 @@ import {BasicPool} from "../../pool/BasicPool.sol";
|
|
6
6
|
import {BasicPoolAuthorization} from "../../pool/BasicPoolAuthorization.sol";
|
7
7
|
import {Fee} from "../../type/Fee.sol";
|
8
8
|
import {IAuthorization} from "../../authorization/IAuthorization.sol";
|
9
|
+
import {IComponents} from "../../instance/module/IComponents.sol";
|
9
10
|
import {NftId} from "../../type/NftId.sol";
|
10
11
|
import {Seconds} from "../../type/Timestamp.sol";
|
11
12
|
import {UFixed} from "../../type/UFixed.sol";
|
@@ -18,6 +19,7 @@ contract SimplePool is
|
|
18
19
|
address registry,
|
19
20
|
NftId productNftId,
|
20
21
|
address token,
|
22
|
+
IComponents.PoolInfo memory poolInfo,
|
21
23
|
IAuthorization authorization,
|
22
24
|
address initialOwner
|
23
25
|
)
|
@@ -26,15 +28,18 @@ contract SimplePool is
|
|
26
28
|
registry,
|
27
29
|
productNftId,
|
28
30
|
token,
|
31
|
+
poolInfo,
|
29
32
|
authorization,
|
30
33
|
initialOwner
|
31
34
|
);
|
32
35
|
}
|
33
36
|
|
37
|
+
|
34
38
|
function initialize(
|
35
39
|
address registry,
|
36
40
|
NftId productNftId,
|
37
41
|
address token,
|
42
|
+
IComponents.PoolInfo memory poolInfo,
|
38
43
|
IAuthorization authorization,
|
39
44
|
address initialOwner
|
40
45
|
)
|
@@ -45,12 +50,22 @@ contract SimplePool is
|
|
45
50
|
_initializeBasicPool(
|
46
51
|
registry,
|
47
52
|
productNftId,
|
48
|
-
authorization,
|
49
|
-
token,
|
50
53
|
"SimplePool",
|
54
|
+
token,
|
55
|
+
poolInfo,
|
56
|
+
authorization,
|
51
57
|
initialOwner);
|
52
58
|
}
|
53
59
|
|
60
|
+
|
61
|
+
function setWallet(address newWallet)
|
62
|
+
external
|
63
|
+
onlyOwner()
|
64
|
+
{
|
65
|
+
_setWallet(newWallet);
|
66
|
+
}
|
67
|
+
|
68
|
+
|
54
69
|
function createBundle(
|
55
70
|
Fee memory fee,
|
56
71
|
uint256 initialAmount,
|
@@ -73,4 +88,21 @@ contract SimplePool is
|
|
73
88
|
netStakedAmountInt = netStakedAmount.toInt();
|
74
89
|
}
|
75
90
|
|
91
|
+
|
92
|
+
function fundPoolWallet(
|
93
|
+
Amount amount
|
94
|
+
)
|
95
|
+
external
|
96
|
+
{
|
97
|
+
_fundPoolWallet(amount);
|
98
|
+
}
|
99
|
+
|
100
|
+
|
101
|
+
function defundPoolWallet(
|
102
|
+
Amount amount
|
103
|
+
)
|
104
|
+
external
|
105
|
+
{
|
106
|
+
_defundPoolWallet(amount);
|
107
|
+
}
|
76
108
|
}
|
@@ -5,6 +5,7 @@ import {Amount, AmountLib} from "../../type/Amount.sol";
|
|
5
5
|
import {BasicProduct} from "../../product/BasicProduct.sol";
|
6
6
|
import {ClaimId} from "../../type/ClaimId.sol";
|
7
7
|
import {IAuthorization} from "../../authorization/IAuthorization.sol";
|
8
|
+
import {IComponents} from "../../instance/module/IComponents.sol";
|
8
9
|
import {IOracleService} from "../../oracle/IOracleService.sol";
|
9
10
|
import {ORACLE} from "../../type/ObjectType.sol";
|
10
11
|
import {NftId} from "../../type/NftId.sol";
|
@@ -33,37 +34,32 @@ contract SimpleProduct is
|
|
33
34
|
constructor(
|
34
35
|
address registry,
|
35
36
|
NftId instanceNftId,
|
36
|
-
|
37
|
-
address initialOwner,
|
37
|
+
string memory name,
|
38
38
|
address token,
|
39
|
-
|
40
|
-
|
41
|
-
|
39
|
+
IComponents.ProductInfo memory productInfo,
|
40
|
+
IAuthorization authorization,
|
41
|
+
address initialOwner
|
42
42
|
)
|
43
43
|
{
|
44
44
|
initialize(
|
45
45
|
registry,
|
46
46
|
instanceNftId,
|
47
|
-
|
48
|
-
initialOwner,
|
49
|
-
"SimpleProduct",
|
47
|
+
name,
|
50
48
|
token,
|
51
|
-
|
52
|
-
|
53
|
-
|
49
|
+
productInfo,
|
50
|
+
authorization,
|
51
|
+
initialOwner);
|
54
52
|
}
|
55
53
|
|
56
54
|
|
57
55
|
function initialize(
|
58
56
|
address registry,
|
59
57
|
NftId instanceNftid,
|
60
|
-
IAuthorization authorization,
|
61
|
-
address initialOwner,
|
62
58
|
string memory name,
|
63
59
|
address token,
|
64
|
-
|
65
|
-
|
66
|
-
|
60
|
+
IComponents.ProductInfo memory productInfo,
|
61
|
+
IAuthorization authorization,
|
62
|
+
address initialOwner
|
67
63
|
)
|
68
64
|
public
|
69
65
|
virtual
|
@@ -72,13 +68,11 @@ contract SimpleProduct is
|
|
72
68
|
_initializeBasicProduct(
|
73
69
|
registry,
|
74
70
|
instanceNftid,
|
75
|
-
authorization,
|
76
|
-
initialOwner,
|
77
71
|
name,
|
78
72
|
token,
|
79
|
-
|
80
|
-
|
81
|
-
|
73
|
+
productInfo,
|
74
|
+
authorization,
|
75
|
+
initialOwner);
|
82
76
|
|
83
77
|
_oracleService = IOracleService(_getServiceAddress(ORACLE()));
|
84
78
|
}
|
@@ -1,20 +1,18 @@
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
2
2
|
pragma solidity ^0.8.20;
|
3
3
|
|
4
|
-
import {IInstance} from "./IInstance.sol";
|
5
|
-
import {INSTANCE} from "../type/ObjectType.sol";
|
6
|
-
import {InstanceReader} from "./InstanceReader.sol";
|
7
4
|
import {IPolicy} from "../instance/module/IPolicy.sol";
|
8
|
-
import {IRegistry} from "../registry/IRegistry.sol";
|
9
5
|
import {LibNftIdSet} from "../type/NftIdSet.sol";
|
10
|
-
import {NftId} from "../type/NftId.sol";
|
11
|
-
import {
|
6
|
+
import {NftId, NftIdLib} from "../type/NftId.sol";
|
7
|
+
import {Key32} from "../type/Key32.sol";
|
8
|
+
import {BUNDLE} from "../type/ObjectType.sol";
|
12
9
|
|
13
10
|
import {ObjectSet} from "./base/ObjectSet.sol";
|
14
11
|
|
15
12
|
contract BundleSet is
|
16
13
|
ObjectSet
|
17
14
|
{
|
15
|
+
using LibNftIdSet for LibNftIdSet.Set;
|
18
16
|
|
19
17
|
event LogBundleSetPolicyLinked(NftId bundleNftId, NftId policyNftId);
|
20
18
|
event LogBundleSetPolicyUnlinked(NftId bundleNftId, NftId policyNftId);
|
@@ -34,40 +32,28 @@ contract BundleSet is
|
|
34
32
|
mapping(NftId bundleNftId => LibNftIdSet.Set policies) internal _activePolicies;
|
35
33
|
|
36
34
|
/// @dev links a policy to its bundle
|
37
|
-
|
38
|
-
function linkPolicy(NftId policyNftId) external restricted() {
|
39
|
-
NftId bundleNftId = _instance.getInstanceReader().getPolicyInfo(policyNftId).bundleNftId;
|
40
|
-
// decision will likely depend on the decision what to check here and what in the service
|
41
|
-
NftId poolNftId = _instance.getInstanceReader().getBundleInfo(bundleNftId).poolNftId;
|
35
|
+
function linkPolicy(NftId poolNftId, NftId bundleNftId, NftId policyNftId) external restricted() {
|
42
36
|
|
43
37
|
// ensure bundle is unlocked (in active set) and registered with this instance
|
44
|
-
if (!_isActive(poolNftId, bundleNftId)) {
|
38
|
+
if (!_isActive(poolNftId, _toBundleKey32(bundleNftId))) {
|
45
39
|
revert ErrorBundleSetBundleLocked(bundleNftId, policyNftId);
|
46
40
|
}
|
47
41
|
|
48
|
-
|
42
|
+
_activePolicies[bundleNftId].add(policyNftId);
|
49
43
|
emit LogBundleSetPolicyLinked(bundleNftId, policyNftId);
|
50
44
|
}
|
51
45
|
|
52
46
|
|
53
47
|
/// @dev unlinks a policy from its bundle
|
54
|
-
|
55
|
-
// - the policy MUST be past its expiry period and it MUST NOT have any open claims
|
56
|
-
// - the policy's payoutAmount MUST be equal to its sumInsuredAmount and MUST NOT have any open claims
|
57
|
-
function unlinkPolicy(NftId policyNftId) external restricted() {
|
58
|
-
IPolicy.PolicyInfo memory policyInfo = _instance.getInstanceReader().getPolicyInfo(policyNftId);
|
59
|
-
|
60
|
-
NftId bundleNftId = policyInfo.bundleNftId;
|
61
|
-
// decision will likely depend on the decision what to check here and what in the service
|
62
|
-
NftId poolNftId = _instance.getInstanceReader().getBundleInfo(bundleNftId).poolNftId;
|
48
|
+
function unlinkPolicy(NftId poolNftId, NftId bundleNftId, NftId policyNftId) external restricted() {
|
63
49
|
|
64
50
|
// ensure bundle is registered with this instance
|
65
|
-
if (!_contains(poolNftId, bundleNftId)) {
|
51
|
+
if (!_contains(poolNftId, _toBundleKey32(bundleNftId))) {
|
66
52
|
revert ErrorBundleSetBundleUnknown(bundleNftId);
|
67
53
|
}
|
68
54
|
|
69
|
-
|
70
|
-
emit LogBundleSetPolicyUnlinked(
|
55
|
+
_activePolicies[bundleNftId].remove(policyNftId);
|
56
|
+
emit LogBundleSetPolicyUnlinked(bundleNftId, policyNftId);
|
71
57
|
}
|
72
58
|
|
73
59
|
|
@@ -81,7 +67,7 @@ contract BundleSet is
|
|
81
67
|
revert ErrorBundleSetBundleNotRegistered(bundleNftId);
|
82
68
|
}
|
83
69
|
|
84
|
-
_add(poolNftId, bundleNftId);
|
70
|
+
_add(poolNftId, _toBundleKey32(bundleNftId));
|
85
71
|
emit LogBundleSetBundleAdded(poolNftId, bundleNftId);
|
86
72
|
}
|
87
73
|
|
@@ -89,38 +75,56 @@ contract BundleSet is
|
|
89
75
|
/// @dev unlocked (active) bundles are available to collateralize new policies
|
90
76
|
function unlock(NftId bundleNftId) external restricted() {
|
91
77
|
NftId poolNftId = _instance.getInstanceReader().getBundleInfo(bundleNftId).poolNftId;
|
92
|
-
_activate(poolNftId, bundleNftId);
|
78
|
+
_activate(poolNftId, _toBundleKey32(bundleNftId));
|
93
79
|
emit LogBundleSetBundleUnlocked(poolNftId, bundleNftId);
|
94
80
|
}
|
95
81
|
|
96
82
|
/// @dev locked (deactivated) bundles may not collateralize any new policies
|
97
83
|
function lock(NftId bundleNftId) external restricted() {
|
98
84
|
NftId poolNftId = _instance.getInstanceReader().getBundleInfo(bundleNftId).poolNftId;
|
99
|
-
_deactivate(poolNftId, bundleNftId);
|
85
|
+
_deactivate(poolNftId, _toBundleKey32(bundleNftId));
|
100
86
|
emit LogBundleSetBundleLocked(poolNftId, bundleNftId);
|
101
87
|
}
|
102
88
|
|
89
|
+
|
90
|
+
function checkBundle(NftId productNftId, NftId bundleId)
|
91
|
+
public
|
92
|
+
view
|
93
|
+
returns (bool exists, bool active)
|
94
|
+
{
|
95
|
+
Key32 bundleKey32 = bundleId.toKey32(BUNDLE());
|
96
|
+
exists = _contains(productNftId, bundleKey32);
|
97
|
+
|
98
|
+
if (exists) {
|
99
|
+
active = _isActive(productNftId, bundleKey32);
|
100
|
+
}
|
101
|
+
}
|
102
|
+
|
103
103
|
function bundles(NftId poolNftId) external view returns(uint256) {
|
104
104
|
return _objects(poolNftId);
|
105
105
|
}
|
106
106
|
|
107
|
-
function getBundleNftId(NftId poolNftId, uint256 idx) external view returns(NftId
|
108
|
-
return _getObject(poolNftId, idx);
|
107
|
+
function getBundleNftId(NftId poolNftId, uint256 idx) external view returns(NftId) {
|
108
|
+
return NftIdLib.toNftId(_getObject(poolNftId, idx).toKeyId());
|
109
109
|
}
|
110
110
|
|
111
111
|
function activeBundles(NftId poolNftId) external view returns(uint256) {
|
112
112
|
return _activeObjs(poolNftId);
|
113
113
|
}
|
114
114
|
|
115
|
-
function getActiveBundleNftId(NftId poolNftId, uint256 idx) external view returns(NftId
|
116
|
-
return _getActiveObject(poolNftId, idx);
|
115
|
+
function getActiveBundleNftId(NftId poolNftId, uint256 idx) external view returns(NftId) {
|
116
|
+
return NftIdLib.toNftId(_getActiveObject(poolNftId, idx).toKeyId());
|
117
117
|
}
|
118
118
|
|
119
119
|
function activePolicies(NftId bundleNftId) external view returns(uint256) {
|
120
|
-
return
|
120
|
+
return _activePolicies[bundleNftId].size();
|
121
121
|
}
|
122
122
|
|
123
123
|
function getActivePolicy(NftId bundleNftId, uint256 idx) external view returns(NftId policyNftId) {
|
124
|
-
return
|
124
|
+
return _activePolicies[bundleNftId].getElementAt(idx);
|
125
|
+
}
|
126
|
+
|
127
|
+
function _toBundleKey32(NftId nftId) private pure returns (Key32) {
|
128
|
+
return nftId.toKey32(BUNDLE());
|
125
129
|
}
|
126
130
|
}
|
@@ -5,6 +5,7 @@ import {IAccessManaged} from "@openzeppelin/contracts/access/manager/IAccessMana
|
|
5
5
|
|
6
6
|
import {Amount} from "../type/Amount.sol";
|
7
7
|
import {BundleSet} from "./BundleSet.sol";
|
8
|
+
import {RiskSet} from "./RiskSet.sol";
|
8
9
|
import {InstanceAdmin} from "./InstanceAdmin.sol";
|
9
10
|
import {InstanceReader} from "./InstanceReader.sol";
|
10
11
|
import {InstanceStore} from "./InstanceStore.sol";
|
@@ -30,6 +31,10 @@ interface IInstance is
|
|
30
31
|
error ErrorInstanceBundleSetInstanceMismatch(address instance);
|
31
32
|
error ErrorInstanceBundleSetAuthorityMismatch(address instanceAuthority);
|
32
33
|
|
34
|
+
error ErrorInstanceRiskSetAlreadySet(address instanceRiskSet);
|
35
|
+
error ErrorInstanceRiskSetInstanceMismatch(address instance);
|
36
|
+
error ErrorInstanceRiskSetAuthorityMismatch(address instanceAuthority);
|
37
|
+
|
33
38
|
error ErrorInstanceInstanceReaderInstanceMismatch(address instanceAuthority);
|
34
39
|
|
35
40
|
error ErrorInstanceInstanceStoreAlreadySet(address instanceStore);
|
@@ -61,6 +66,7 @@ interface IInstance is
|
|
61
66
|
// get instance release and supporting contracts
|
62
67
|
function getInstanceReader() external view returns (InstanceReader);
|
63
68
|
function getBundleSet() external view returns (BundleSet);
|
69
|
+
function getRiskSet() external view returns (RiskSet);
|
64
70
|
function getInstanceAdmin() external view returns (InstanceAdmin);
|
65
71
|
function getInstanceStore() external view returns (InstanceStore);
|
66
72
|
}
|
@@ -2,8 +2,7 @@
|
|
2
2
|
pragma solidity ^0.8.20;
|
3
3
|
|
4
4
|
import {Amount} from "../type/Amount.sol";
|
5
|
-
import {
|
6
|
-
import {Instance} from "./Instance.sol";
|
5
|
+
import {IInstance} from "./IInstance.sol";
|
7
6
|
import {IInstanceLinkedComponent} from "../shared/IInstanceLinkedComponent.sol";
|
8
7
|
import {IService} from "../shared/IService.sol";
|
9
8
|
import {NftId} from "../type/NftId.sol";
|
@@ -25,6 +24,7 @@ interface IInstanceService is IService {
|
|
25
24
|
error ErrorInstanceServiceMasterInstanceAlreadySet();
|
26
25
|
error ErrorInstanceServiceMasterInstanceAdminAlreadySet();
|
27
26
|
error ErrorInstanceServiceMasterBundleSetAlreadySet();
|
27
|
+
error ErrorInstanceServiceMasterRiskSetAlreadySet();
|
28
28
|
error ErrorInstanceServiceInstanceAddressZero();
|
29
29
|
|
30
30
|
error ErrorInstanceServiceMasterInstanceReaderNotSet();
|
@@ -36,12 +36,15 @@ interface IInstanceService is IService {
|
|
36
36
|
error ErrorInstanceServiceInstanceAdminZero();
|
37
37
|
error ErrorInstanceServiceInstanceReaderZero();
|
38
38
|
error ErrorInstanceServiceBundleSetZero();
|
39
|
+
error ErrorInstanceServiceRiskSetZero();
|
39
40
|
error ErrorInstanceServiceInstanceStoreZero();
|
40
41
|
|
41
42
|
error ErrorInstanceServiceInstanceAuthorityMismatch();
|
42
43
|
error ErrorInstanceServiceBundleSetAuthorityMismatch();
|
44
|
+
error ErrorInstanceServiceRiskSetAuthorityMismatch();
|
43
45
|
error ErrorInstanceServiceInstanceReaderInstanceMismatch2();
|
44
|
-
error
|
46
|
+
error ErrorInstanceServiceBundleSetInstanceMismatch();
|
47
|
+
error ErrorInstanceServiceRiskSetInstanceMismatch();
|
45
48
|
error ErrorInstanceServiceInstanceStoreAuthorityMismatch();
|
46
49
|
|
47
50
|
error ErrorInstanceServiceRequestUnauhorized(address caller);
|
@@ -55,8 +58,7 @@ interface IInstanceService is IService {
|
|
55
58
|
function createInstance()
|
56
59
|
external
|
57
60
|
returns (
|
58
|
-
|
59
|
-
Instance clonedInstance,
|
61
|
+
IInstance instance,
|
60
62
|
NftId instanceNftId
|
61
63
|
);
|
62
64
|
|
@@ -5,6 +5,7 @@ import {AccessManagedUpgradeable} from "@openzeppelin/contracts-upgradeable/acce
|
|
5
5
|
|
6
6
|
import {Amount} from "../type/Amount.sol";
|
7
7
|
import {BundleSet} from "./BundleSet.sol";
|
8
|
+
import {RiskSet} from "./RiskSet.sol";
|
8
9
|
import {COMPONENT, INSTANCE} from "../type/ObjectType.sol";
|
9
10
|
import {IInstance} from "./IInstance.sol";
|
10
11
|
import {IComponentService} from "../shared/IComponentService.sol";
|
@@ -31,7 +32,8 @@ contract Instance is
|
|
31
32
|
IInstanceService internal _instanceService;
|
32
33
|
InstanceAdmin internal _instanceAdmin;
|
33
34
|
InstanceReader internal _instanceReader;
|
34
|
-
BundleSet internal
|
35
|
+
BundleSet internal _bundleSet;
|
36
|
+
RiskSet internal _riskSet;
|
35
37
|
InstanceStore internal _instanceStore;
|
36
38
|
|
37
39
|
modifier onlyChainNft() {
|
@@ -44,7 +46,8 @@ contract Instance is
|
|
44
46
|
function initialize(
|
45
47
|
InstanceAdmin instanceAdmin,
|
46
48
|
InstanceStore instanceStore,
|
47
|
-
BundleSet
|
49
|
+
BundleSet bundleSet,
|
50
|
+
RiskSet riskSet,
|
48
51
|
InstanceReader instanceReader,
|
49
52
|
IRegistry registry,
|
50
53
|
address initialOwner
|
@@ -71,12 +74,14 @@ contract Instance is
|
|
71
74
|
|
72
75
|
// store instance supporting contracts
|
73
76
|
_instanceStore = instanceStore;
|
74
|
-
|
77
|
+
_bundleSet = bundleSet;
|
78
|
+
_riskSet = riskSet;
|
75
79
|
_instanceReader = instanceReader;
|
76
80
|
|
77
81
|
// initialize instance supporting contracts
|
78
82
|
_instanceStore.initialize();
|
79
|
-
|
83
|
+
_bundleSet.initialize();
|
84
|
+
_riskSet.initialize();
|
80
85
|
_instanceReader.initialize();
|
81
86
|
|
82
87
|
_componentService = IComponentService(
|
@@ -217,7 +222,11 @@ contract Instance is
|
|
217
222
|
}
|
218
223
|
|
219
224
|
function getBundleSet() external view returns (BundleSet) {
|
220
|
-
return
|
225
|
+
return _bundleSet;
|
226
|
+
}
|
227
|
+
|
228
|
+
function getRiskSet() external view returns (RiskSet) {
|
229
|
+
return _riskSet;
|
221
230
|
}
|
222
231
|
|
223
232
|
function getInstanceAdmin() external view returns (InstanceAdmin) {
|
@@ -5,7 +5,6 @@ import {AccessManager} from "@openzeppelin/contracts/access/manager/AccessManage
|
|
5
5
|
|
6
6
|
import {AccessAdmin} from "../authorization/AccessAdmin.sol";
|
7
7
|
import {AccessManagerCloneable} from "../authorization/AccessManagerCloneable.sol";
|
8
|
-
import {IAccessAdmin} from "../authorization/IAccessAdmin.sol";
|
9
8
|
import {IAuthorization} from "../authorization/IAuthorization.sol";
|
10
9
|
import {IInstanceLinkedComponent} from "../shared/IInstanceLinkedComponent.sol";
|
11
10
|
import {IAuthorization} from "../authorization/IAuthorization.sol";
|
@@ -26,6 +25,7 @@ contract InstanceAdmin is
|
|
26
25
|
string public constant INSTANCE_STORE_TARGET_NAME = "InstanceStore";
|
27
26
|
string public constant INSTANCE_ADMIN_TARGET_NAME = "InstanceAdmin";
|
28
27
|
string public constant BUNDLE_SET_TARGET_NAME = "BundleSet";
|
28
|
+
string public constant RISK_SET_TAGET_NAME = "RiskSet";
|
29
29
|
|
30
30
|
uint64 public constant CUSTOM_ROLE_ID_MIN = 10000; // MUST be even
|
31
31
|
|
@@ -43,11 +43,11 @@ contract InstanceAdmin is
|
|
43
43
|
/// @dev Only used for master instance admin.
|
44
44
|
/// Contracts created via constructor come with disabled initializers.
|
45
45
|
constructor(
|
46
|
-
|
46
|
+
address instanceAuthorization
|
47
47
|
)
|
48
48
|
AccessAdmin()
|
49
49
|
{
|
50
|
-
_instanceAuthorization = instanceAuthorization;
|
50
|
+
_instanceAuthorization = IAuthorization(instanceAuthorization);
|
51
51
|
}
|
52
52
|
|
53
53
|
/// @dev Initializes this instance admin with the provided instances authorization specification.
|
@@ -56,7 +56,7 @@ contract InstanceAdmin is
|
|
56
56
|
/// Important: Initialization of this instance admin is only complete after calling function initializeInstance.
|
57
57
|
function initialize(
|
58
58
|
AccessManagerCloneable accessManager,
|
59
|
-
|
59
|
+
address instanceAuthorization
|
60
60
|
)
|
61
61
|
external
|
62
62
|
initializer()
|
@@ -242,7 +242,7 @@ contract InstanceAdmin is
|
|
242
242
|
_createTarget(
|
243
243
|
target,
|
244
244
|
targetName,
|
245
|
-
false, // check authority TODO check normal targets, don't check service targets (they share authority with
|
245
|
+
false, // check authority TODO check normal targets, don't check service targets (they share authority with release admin)
|
246
246
|
false);
|
247
247
|
|
248
248
|
// assign target role if defined
|
@@ -260,6 +260,7 @@ contract InstanceAdmin is
|
|
260
260
|
_checkAndCreateTargetWithRole(address(_instance.getInstanceStore()), INSTANCE_STORE_TARGET_NAME);
|
261
261
|
_checkAndCreateTargetWithRole(address(_instance.getInstanceAdmin()), INSTANCE_ADMIN_TARGET_NAME);
|
262
262
|
_checkAndCreateTargetWithRole(address(_instance.getBundleSet()), BUNDLE_SET_TARGET_NAME);
|
263
|
+
_checkAndCreateTargetWithRole(address(_instance.getRiskSet()), RISK_SET_TAGET_NAME);
|
263
264
|
|
264
265
|
// create targets for services that need to access the module targets
|
265
266
|
ObjectType[] memory serviceDomains = _instanceAuthorization.getServiceDomains();
|
@@ -2,10 +2,11 @@
|
|
2
2
|
pragma solidity ^0.8.20;
|
3
3
|
|
4
4
|
import {
|
5
|
-
PRODUCT, ORACLE, POOL, INSTANCE, COMPONENT, DISTRIBUTION, APPLICATION, POLICY, CLAIM, BUNDLE
|
5
|
+
PRODUCT, ORACLE, POOL, INSTANCE, COMPONENT, DISTRIBUTION, APPLICATION, POLICY, CLAIM, BUNDLE, RISK
|
6
6
|
} from "../../contracts/type/ObjectType.sol";
|
7
7
|
|
8
|
-
import {BundleSet} from "../instance/BundleSet.sol";
|
8
|
+
import {BundleSet} from "../instance/BundleSet.sol";
|
9
|
+
import {RiskSet} from "../instance/RiskSet.sol";
|
9
10
|
import {IAccess} from "../authorization/IAccess.sol";
|
10
11
|
import {Instance} from "../instance/Instance.sol";
|
11
12
|
import {InstanceAdmin} from "../instance/InstanceAdmin.sol";
|
@@ -23,6 +24,7 @@ contract InstanceAuthorizationV3
|
|
23
24
|
string public constant INSTANCE_STORE_TARGET_NAME = "InstanceStore";
|
24
25
|
string public constant INSTANCE_ADMIN_TARGET_NAME = "InstanceAdmin";
|
25
26
|
string public constant BUNDLE_SET_TARGET_NAME = "BundleSet";
|
27
|
+
string public constant RISK_SET_TARGET_NAME = "RiskSet";
|
26
28
|
|
27
29
|
constructor() Authorization(INSTANCE_TARGET_NAME) {}
|
28
30
|
|
@@ -49,6 +51,7 @@ contract InstanceAuthorizationV3
|
|
49
51
|
_addTarget(INSTANCE_STORE_TARGET_NAME);
|
50
52
|
_addTarget(INSTANCE_ADMIN_TARGET_NAME);
|
51
53
|
_addTarget(BUNDLE_SET_TARGET_NAME);
|
54
|
+
_addTarget(RISK_SET_TARGET_NAME);
|
52
55
|
|
53
56
|
// service targets relevant to instance
|
54
57
|
_addServiceTargetWithRole(INSTANCE());
|
@@ -57,7 +60,7 @@ contract InstanceAuthorizationV3
|
|
57
60
|
_addServiceTargetWithRole(ORACLE());
|
58
61
|
_addServiceTargetWithRole(POOL());
|
59
62
|
_addServiceTargetWithRole(BUNDLE());
|
60
|
-
_addServiceTargetWithRole(
|
63
|
+
_addServiceTargetWithRole(RISK());
|
61
64
|
_addServiceTargetWithRole(APPLICATION());
|
62
65
|
_addServiceTargetWithRole(POLICY());
|
63
66
|
_addServiceTargetWithRole(CLAIM());
|
@@ -72,7 +75,7 @@ contract InstanceAuthorizationV3
|
|
72
75
|
_setupInstanceAdminAuthorization();
|
73
76
|
_setupInstanceStoreAuthorization();
|
74
77
|
_setupBundleSetAuthorization();
|
75
|
-
|
78
|
+
_setUpRiskSetAuthorization();
|
76
79
|
}
|
77
80
|
|
78
81
|
|
@@ -83,11 +86,31 @@ contract InstanceAuthorizationV3
|
|
83
86
|
|
84
87
|
// authorize bundle service role
|
85
88
|
functions = _authorizeForTarget(BUNDLE_SET_TARGET_NAME, getServiceRole(BUNDLE()));
|
86
|
-
_authorize(functions, BundleSet.linkPolicy.selector, "linkPolicy");
|
87
|
-
_authorize(functions, BundleSet.unlinkPolicy.selector, "unlinkPolicy");
|
88
89
|
_authorize(functions, BundleSet.add.selector, "add");
|
89
90
|
_authorize(functions, BundleSet.lock.selector, "lock");
|
90
91
|
_authorize(functions, BundleSet.unlock.selector, "unlock");
|
92
|
+
|
93
|
+
// authorize bundle service role
|
94
|
+
functions = _authorizeForTarget(BUNDLE_SET_TARGET_NAME, getServiceRole(POLICY()));
|
95
|
+
_authorize(functions, BundleSet.linkPolicy.selector, "linkPolicy");
|
96
|
+
_authorize(functions, BundleSet.unlinkPolicy.selector, "unlinkPolicy");
|
97
|
+
}
|
98
|
+
|
99
|
+
function _setUpRiskSetAuthorization()
|
100
|
+
internal
|
101
|
+
{
|
102
|
+
IAccess.FunctionInfo[] storage functions;
|
103
|
+
|
104
|
+
// authorize risk service role
|
105
|
+
functions = _authorizeForTarget(RISK_SET_TARGET_NAME, getServiceRole(RISK()));
|
106
|
+
_authorize(functions, RiskSet.add.selector, "add");
|
107
|
+
_authorize(functions, RiskSet.pause.selector, "pause");
|
108
|
+
_authorize(functions, RiskSet.activate.selector, "activate");
|
109
|
+
|
110
|
+
// authorize policy service role
|
111
|
+
functions = _authorizeForTarget(RISK_SET_TARGET_NAME, getServiceRole(POLICY()));
|
112
|
+
_authorize(functions, RiskSet.linkPolicy.selector, "linkPolicy");
|
113
|
+
_authorize(functions, RiskSet.unlinkPolicy.selector, "unlinkPolicy");
|
91
114
|
}
|
92
115
|
|
93
116
|
|
@@ -164,7 +187,7 @@ contract InstanceAuthorizationV3
|
|
164
187
|
_authorize(functions, InstanceStore.decreaseLocked.selector, "decreaseLocked");
|
165
188
|
|
166
189
|
// authorize product service role
|
167
|
-
functions = _authorizeForTarget(INSTANCE_STORE_TARGET_NAME, getServiceRole(
|
190
|
+
functions = _authorizeForTarget(INSTANCE_STORE_TARGET_NAME, getServiceRole(RISK()));
|
168
191
|
_authorize(functions, InstanceStore.createRisk.selector, "createRisk");
|
169
192
|
_authorize(functions, InstanceStore.updateRisk.selector, "updateRisk");
|
170
193
|
_authorize(functions, InstanceStore.updateRiskState.selector, "updateRiskState");
|