@etherisc/gif-next 0.0.2-b421459-499 → 0.0.2-b43fece-589
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 +19 -2
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +1 -1
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +105 -65
- 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 +67 -11
- 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 +60 -32
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +40 -3
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +19 -0
- package/artifacts/contracts/authorization/ReleaseAccessManager.sol/ReleaseAccessManager.dbg.json +4 -0
- package/artifacts/contracts/authorization/ReleaseAccessManager.sol/ReleaseAccessManager.json +1196 -0
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +68 -5
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +206 -309
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +1 -1
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +82 -22
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +134 -277
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +284 -223
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +116 -104
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +121 -92
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +149 -31
- package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.json +22 -0
- package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.json +1491 -0
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +502 -0
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +2037 -0
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +470 -0
- package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.json +376 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +1471 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +1231 -0
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +1613 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +2327 -0
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +1 -1
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +2 -2
- package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstance.sol/IInstance.json +53 -31
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +29 -84
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +56 -123
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +166 -139
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +57 -97
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +464 -141
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +77 -242
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +75 -87
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +340 -253
- 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 +46 -5
- 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/mock/Dip.sol/Dip.json +2 -2
- package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +1 -1
- package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +164 -280
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +1 -1
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +84 -24
- 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 +96 -80
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +43 -9
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +106 -262
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +91 -159
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +75 -83
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +152 -345
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +114 -22
- package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleService.sol/BundleService.json +490 -171
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +161 -89
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +277 -16
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +107 -145
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +422 -215
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
- package/artifacts/contracts/pool/Pool.sol/Pool.json +118 -328
- package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolService.sol/PoolService.json +558 -392
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +107 -87
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +76 -168
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +72 -92
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +160 -281
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +82 -22
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +303 -187
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +119 -103
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +34 -0
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +176 -6
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +323 -118
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +114 -85
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +148 -97
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +4 -0
- package/artifacts/contracts/product/{IProductService.sol/IProductService.json → IRiskService.sol/IRiskService.json} +31 -2
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +444 -325
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +119 -103
- package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
- package/artifacts/contracts/product/PricingService.sol/PricingService.json +202 -307
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +96 -120
- package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
- package/artifacts/contracts/product/Product.sol/Product.json +160 -281
- package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +4 -0
- package/artifacts/contracts/product/RiskService.sol/RiskService.json +622 -0
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +694 -0
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +59 -16
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +286 -34
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +114 -35
- package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
- package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +5 -18
- package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
- package/artifacts/contracts/registry/Registry.sol/Registry.json +492 -95
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +283 -143
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +78 -284
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +67 -75
- package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +1 -1
- package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +47 -6
- package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +129 -221
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +66 -8
- 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 +65 -236
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +526 -245
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +136 -106
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +47 -112
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +4 -0
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +92 -0
- package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponent.sol/IComponent.json +55 -54
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +474 -19
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +85 -80
- package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
- package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.json +36 -0
- package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
- package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.json +36 -0
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +16 -0
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +15 -47
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +29 -0
- 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 +29 -0
- package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +4 -0
- package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +53 -0
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +98 -265
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +42 -1
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +42 -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 +22 -57
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +19 -141
- package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
- package/artifacts/contracts/shared/Registerable.sol/Registerable.json +58 -89
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -15
- package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
- package/artifacts/contracts/shared/Service.sol/Service.json +47 -112
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +330 -11
- package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +4 -0
- package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +108 -0
- package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
- package/artifacts/contracts/staking/IStaking.sol/IStaking.json +82 -55
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +29 -21
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +1 -1
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +73 -93
- package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
- package/artifacts/contracts/staking/Staking.sol/Staking.json +174 -291
- package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +46 -5
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +106 -91
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +6 -11
- package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingService.sol/StakingService.json +71 -165
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +71 -79
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +174 -128
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +59 -23
- package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
- package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
- package/artifacts/contracts/type/Amount.sol/AmountLib.json +61 -8
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +2 -2
- package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +28 -4
- 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 +7 -2
- 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/NftId.sol/NftIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/NftId.sol/NftIdLib.json +2 -2
- package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
- package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +2 -2
- package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
- package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +2 -2
- package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +19 -19
- 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 +60 -4
- 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/Seconds.sol/SecondsLib.json +50 -2
- 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/StateId.sol/StateIdLib.json +15 -2
- package/artifacts/contracts/type/String.sol/StrLib.dbg.json +1 -1
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +23 -4
- package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +1 -1
- package/artifacts/contracts/type/UFixed.sol/MathLib.json +9 -3
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +52 -2
- 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 +4 -0
- package/artifacts/contracts/{shared → upgradeability}/IVersionable.sol/IVersionable.json +1 -1
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +4 -0
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +602 -0
- package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
- package/artifacts/contracts/{shared → upgradeability}/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +3 -3
- package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +4 -0
- package/artifacts/contracts/{shared → upgradeability}/Versionable.sol/Versionable.json +1 -1
- package/contracts/authorization/AccessAdmin.sol +64 -59
- package/contracts/authorization/Authorization.sol +111 -40
- package/contracts/authorization/IAccess.sol +1 -0
- package/contracts/authorization/IAccessAdmin.sol +4 -3
- package/contracts/authorization/IAuthorization.sol +13 -7
- package/contracts/authorization/IServiceAuthorization.sol +3 -1
- package/contracts/authorization/ReleaseAccessManager.sol +38 -0
- package/contracts/authorization/ServiceAuthorization.sol +26 -10
- package/contracts/distribution/BasicDistribution.sol +6 -16
- package/contracts/distribution/BasicDistributionAuthorization.sol +5 -1
- package/contracts/distribution/Distribution.sol +28 -26
- package/contracts/distribution/DistributionService.sol +128 -75
- package/contracts/distribution/DistributionServiceManager.sol +8 -11
- package/contracts/distribution/IDistributionComponent.sol +9 -5
- package/contracts/distribution/IDistributionService.sol +18 -2
- package/contracts/examples/fire/DamageLevel.sol +59 -0
- package/contracts/examples/fire/FirePool.sol +86 -0
- package/contracts/examples/fire/FirePoolAuthorization.sol +34 -0
- package/contracts/examples/fire/FireProduct.sol +431 -0
- package/contracts/examples/fire/FireProductAuthorization.sol +44 -0
- package/contracts/examples/fire/FireUSD.sol +26 -0
- package/contracts/examples/unpermissioned/SimpleDistribution.sol +50 -0
- package/contracts/examples/unpermissioned/SimpleOracle.sol +137 -0
- package/contracts/examples/unpermissioned/SimplePool.sol +81 -0
- package/contracts/examples/unpermissioned/SimpleProduct.sol +345 -0
- package/contracts/instance/IInstance.sol +10 -30
- package/contracts/instance/IInstanceService.sol +0 -20
- package/contracts/instance/Instance.sol +29 -51
- package/contracts/instance/InstanceAdmin.sol +42 -31
- package/contracts/instance/InstanceAuthorizationV3.sol +13 -21
- package/contracts/instance/InstanceReader.sol +115 -25
- package/contracts/instance/InstanceService.sol +65 -97
- package/contracts/instance/InstanceServiceManager.sol +8 -13
- package/contracts/instance/InstanceStore.sol +12 -1
- package/contracts/instance/base/ObjectLifecycle.sol +9 -4
- package/contracts/instance/module/IBundle.sol +1 -1
- package/contracts/instance/module/IComponents.sol +11 -12
- package/contracts/instance/module/IDistribution.sol +0 -1
- package/contracts/instance/module/IPolicy.sol +24 -24
- package/contracts/mock/Dip.sol +1 -1
- package/contracts/oracle/BasicOracle.sol +0 -1
- package/contracts/oracle/IOracleComponent.sol +2 -1
- package/contracts/oracle/IOracleService.sol +2 -1
- package/contracts/oracle/Oracle.sol +21 -22
- package/contracts/oracle/OracleService.sol +56 -42
- package/contracts/oracle/OracleServiceManager.sol +8 -11
- package/contracts/pool/BasicPool.sol +38 -27
- package/contracts/pool/BasicPoolAuthorization.sol +22 -3
- package/contracts/pool/BundleService.sol +258 -69
- package/contracts/pool/BundleServiceManager.sol +8 -11
- package/contracts/pool/IBundleService.sol +44 -10
- package/contracts/pool/IPoolComponent.sol +20 -10
- package/contracts/pool/IPoolService.sol +67 -45
- package/contracts/pool/Pool.sol +150 -116
- package/contracts/pool/PoolService.sol +336 -166
- package/contracts/pool/PoolServiceManager.sol +6 -9
- package/contracts/product/ApplicationService.sol +70 -65
- package/contracts/product/ApplicationServiceManager.sol +6 -6
- package/contracts/product/BasicProduct.sol +11 -44
- package/contracts/product/BasicProductAuthorization.sol +2 -0
- package/contracts/product/ClaimService.sol +316 -146
- package/contracts/product/ClaimServiceManager.sol +6 -6
- package/contracts/product/IApplicationService.sol +1 -0
- package/contracts/product/IClaimService.sol +31 -7
- package/contracts/product/IPolicyService.sol +34 -32
- package/contracts/product/IPricingService.sol +10 -10
- package/contracts/product/IProductComponent.sol +24 -4
- package/contracts/product/{IProductService.sol → IRiskService.sol} +1 -1
- package/contracts/product/PolicyService.sol +419 -203
- package/contracts/product/PolicyServiceManager.sol +6 -9
- package/contracts/product/PricingService.sol +54 -54
- package/contracts/product/PricingServiceManager.sol +5 -8
- package/contracts/product/Product.sol +126 -87
- package/contracts/product/{ProductService.sol → RiskService.sol} +13 -41
- package/contracts/product/RiskServiceManager.sol +39 -0
- package/contracts/registry/ChainNft.sol +68 -38
- package/contracts/registry/IRegistry.sol +55 -18
- package/contracts/registry/IRegistryService.sol +5 -12
- package/contracts/registry/ITransferInterceptor.sol +1 -2
- package/contracts/registry/Registry.sol +342 -201
- package/contracts/registry/RegistryAdmin.sol +134 -51
- package/contracts/registry/RegistryService.sol +39 -64
- package/contracts/registry/RegistryServiceManager.sol +4 -4
- package/contracts/registry/ReleaseLifecycle.sol +6 -3
- package/contracts/registry/ReleaseRegistry.sol +204 -190
- package/contracts/registry/ServiceAuthorizationV3.sol +26 -23
- package/contracts/shared/Component.sol +47 -63
- package/contracts/shared/ComponentService.sol +314 -150
- package/contracts/shared/ComponentServiceManager.sol +10 -7
- package/contracts/shared/ComponentVerifyingService.sol +23 -16
- package/contracts/shared/ContractLib.sol +38 -0
- package/contracts/shared/IComponent.sol +10 -6
- package/contracts/shared/IComponentService.sol +38 -20
- package/contracts/shared/IInstanceLinkedComponent.sol +8 -17
- package/contracts/shared/ILifecycle.sol +3 -1
- package/contracts/shared/INftOwnable.sol +2 -0
- package/contracts/shared/IPolicyHolder.sol +12 -22
- package/contracts/shared/IRegisterable.sol +11 -0
- package/contracts/shared/IService.sol +1 -1
- package/contracts/shared/{ERC165.sol → InitializableERC165.sol} +3 -3
- package/contracts/shared/InstanceLinkedComponent.sol +85 -23
- package/contracts/shared/KeyValueStore.sol +1 -1
- package/contracts/shared/Lifecycle.sol +15 -4
- package/contracts/shared/NftOwnable.sol +29 -9
- package/contracts/shared/PolicyHolder.sol +17 -57
- package/contracts/shared/Registerable.sol +19 -11
- package/contracts/shared/RegistryLinked.sol +3 -2
- package/contracts/shared/Service.sol +23 -22
- package/contracts/shared/TokenHandler.sol +100 -19
- package/contracts/shared/TokenHandlerDeployerLib.sol +12 -0
- package/contracts/staking/IStaking.sol +3 -2
- package/contracts/staking/IStakingService.sol +0 -3
- package/contracts/staking/StakeManagerLib.sol +18 -25
- package/contracts/staking/Staking.sol +28 -42
- package/contracts/staking/StakingManager.sol +10 -11
- package/contracts/staking/StakingReader.sol +17 -13
- package/contracts/staking/StakingService.sol +25 -29
- package/contracts/staking/StakingServiceManager.sol +4 -4
- package/contracts/staking/StakingStore.sol +5 -15
- package/contracts/staking/TargetManagerLib.sol +7 -3
- package/contracts/type/Amount.sol +27 -5
- package/contracts/type/Blocknumber.sol +7 -1
- package/contracts/type/ClaimId.sol +6 -1
- package/contracts/type/NftId.sol +1 -0
- package/contracts/type/ObjectType.sol +16 -11
- package/contracts/type/PayoutId.sol +10 -10
- package/contracts/type/Referral.sol +1 -0
- package/contracts/type/RiskId.sol +16 -2
- package/contracts/type/RoleId.sol +0 -12
- package/contracts/type/Seconds.sol +21 -1
- package/contracts/type/StateId.sol +15 -1
- package/contracts/type/Timestamp.sol +11 -1
- package/contracts/type/UFixed.sol +33 -10
- package/contracts/{shared → upgradeability}/ProxyManager.sol +71 -38
- package/contracts/{shared → upgradeability}/UpgradableProxyWithAdmin.sol +1 -3
- package/contracts/{shared → upgradeability}/Versionable.sol +2 -2
- package/package.json +2 -1
- package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.dbg.json +0 -4
- package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.json +0 -290
- package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.dbg.json +0 -4
- package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.json +0 -390
- package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +0 -4
- package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +0 -4
- package/artifacts/contracts/product/ProductService.sol/ProductService.json +0 -708
- package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
- package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +0 -702
- package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +0 -4
- package/artifacts/contracts/shared/ERC165.sol/ERC165.json +0 -73
- package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +0 -4
- package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.dbg.json +0 -4
- package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.json +0 -39
- package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +0 -4
- package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +0 -617
- package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +0 -4
- package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +0 -4
- package/contracts/authorization/IModuleAuthorization.sol +0 -21
- package/contracts/authorization/ModuleAuthorization.sol +0 -78
- package/contracts/product/ProductServiceManager.sol +0 -42
- package/contracts/shared/InitializableCustom.sol +0 -177
- /package/contracts/{shared → upgradeability}/IVersionable.sol +0 -0
@@ -4,39 +4,17 @@ pragma solidity ^0.8.20;
|
|
4
4
|
import {IAccessManaged} from "@openzeppelin/contracts/access/manager/IAccessManaged.sol";
|
5
5
|
|
6
6
|
import {Amount} from "../type/Amount.sol";
|
7
|
-
import {
|
8
|
-
import {
|
9
|
-
import {
|
7
|
+
import {BundleSet} from "./BundleSet.sol";
|
8
|
+
import {InstanceAdmin} from "./InstanceAdmin.sol";
|
9
|
+
import {InstanceReader} from "./InstanceReader.sol";
|
10
|
+
import {InstanceStore} from "./InstanceStore.sol";
|
11
|
+
import {IRegisterable} from "../shared/IRegisterable.sol";
|
12
|
+
import {ITransferInterceptor} from "../registry/ITransferInterceptor.sol";
|
10
13
|
import {NftId} from "../type/NftId.sol";
|
11
|
-
import {StateId} from "../type/StateId.sol";
|
12
|
-
import {ReferralId} from "../type/Referral.sol";
|
13
|
-
import {RiskId} from "../type/RiskId.sol";
|
14
|
-
import {VersionPart} from "../type/Version.sol";
|
15
|
-
import {Key32} from "../type/Key32.sol";
|
16
14
|
import {RoleId} from "../type/RoleId.sol";
|
17
15
|
import {Seconds} from "../type/Seconds.sol";
|
18
16
|
import {UFixed} from "../type/UFixed.sol";
|
19
|
-
|
20
|
-
import {IRegisterable} from "../shared/IRegisterable.sol";
|
21
|
-
|
22
|
-
import {ITransferInterceptor} from "../registry/ITransferInterceptor.sol";
|
23
|
-
|
24
|
-
import {InstanceAdmin} from "./InstanceAdmin.sol";
|
25
|
-
import {BundleSet} from "./BundleSet.sol";
|
26
|
-
import {InstanceReader} from "./InstanceReader.sol";
|
27
|
-
import {InstanceStore} from "./InstanceStore.sol";
|
28
|
-
|
29
|
-
import {IKeyValueStore} from "../shared/IKeyValueStore.sol";
|
30
|
-
|
31
|
-
import {IAccess} from "./module/IAccess.sol";
|
32
|
-
|
33
|
-
import {IBundleService} from "../pool/IBundleService.sol";
|
34
|
-
import {IDistributionService} from "../distribution/IDistributionService.sol";
|
35
|
-
import {IPolicyService} from "../product/IPolicyService.sol";
|
36
|
-
import {IPoolService} from "../pool/IPoolService.sol";
|
37
|
-
import {IProductService} from "../product/IProductService.sol";
|
38
|
-
import {IPolicyService} from "../product/IPolicyService.sol";
|
39
|
-
import {IBundleService} from "../pool/IBundleService.sol";
|
17
|
+
import {VersionPart} from "../type/Version.sol";
|
40
18
|
|
41
19
|
|
42
20
|
interface IInstance is
|
@@ -61,6 +39,9 @@ interface IInstance is
|
|
61
39
|
uint64 requestsCount;
|
62
40
|
}
|
63
41
|
|
42
|
+
/// @dev Register a product with the instance.
|
43
|
+
function registerProduct(address product) external returns (NftId productNftId);
|
44
|
+
|
64
45
|
function createRole(string memory roleName, string memory adminName) external returns (RoleId roleId, RoleId admin);
|
65
46
|
function grantRole(RoleId roleId, address account) external;
|
66
47
|
function revokeRole(RoleId roleId, address account) external;
|
@@ -78,7 +59,6 @@ interface IInstance is
|
|
78
59
|
function withdrawStakingRewardReserves(Amount dipAmount) external returns (Amount newBalance);
|
79
60
|
|
80
61
|
// get instance release and supporting contracts
|
81
|
-
function getMajorVersion() external pure returns (VersionPart majorVersion);
|
82
62
|
function getInstanceReader() external view returns (InstanceReader);
|
83
63
|
function getBundleSet() external view returns (BundleSet);
|
84
64
|
function getInstanceAdmin() external view returns (InstanceAdmin);
|
@@ -68,25 +68,5 @@ interface IInstanceService is IService {
|
|
68
68
|
/// @dev Defunds the staking reward reserves for the specified target.
|
69
69
|
function withdrawStakingRewardReserves(Amount dipAmount) external returns (Amount newBalance);
|
70
70
|
|
71
|
-
/// @dev Sets up the component authorization for the specified instance.
|
72
|
-
/// The authorization is based on the authz specification provided by the component via getAuthorization.
|
73
|
-
function initializeAuthorization(NftId instanceNftId, IInstanceLinkedComponent component) external;
|
74
|
-
|
75
|
-
function createComponentTarget(
|
76
|
-
NftId instanceNftId,
|
77
|
-
address targetAddress,
|
78
|
-
string memory targetName,
|
79
|
-
bytes4[][] memory selectors,
|
80
|
-
RoleId[] memory roles
|
81
|
-
) external;
|
82
|
-
|
83
|
-
function createGifTarget(
|
84
|
-
NftId instanceNftId,
|
85
|
-
address targetAddress,
|
86
|
-
string memory targetName,
|
87
|
-
bytes4[][] memory selectors,
|
88
|
-
RoleId[] memory roles
|
89
|
-
) external;
|
90
|
-
|
91
71
|
function setComponentLocked(bool locked) external;
|
92
72
|
}
|
@@ -4,54 +4,30 @@ pragma solidity ^0.8.20;
|
|
4
4
|
import {AccessManagedUpgradeable} from "@openzeppelin/contracts-upgradeable/access/manager/AccessManagedUpgradeable.sol";
|
5
5
|
|
6
6
|
import {Amount} from "../type/Amount.sol";
|
7
|
-
import {
|
8
|
-
import {
|
9
|
-
import {RiskId} from "../type/RiskId.sol";
|
10
|
-
import {ObjectType, BUNDLE, DISTRIBUTION, INSTANCE, POLICY, POOL, ROLE, PRODUCT, TARGET, COMPONENT, DISTRIBUTOR, DISTRIBUTOR_TYPE} from "../type/ObjectType.sol";
|
11
|
-
import {RoleId} from "../type/RoleId.sol";
|
12
|
-
import {ClaimId} from "../type/ClaimId.sol";
|
13
|
-
import {ReferralId} from "../type/Referral.sol";
|
14
|
-
import {PayoutId} from "../type/PayoutId.sol";
|
15
|
-
import {DistributorType} from "../type/DistributorType.sol";
|
16
|
-
import {Seconds} from "../type/Seconds.sol";
|
17
|
-
import {UFixed} from "../type/UFixed.sol";
|
18
|
-
import {VersionPart, VersionPartLib} from "../type/Version.sol";
|
19
|
-
|
20
|
-
import {Registerable} from "../shared/Registerable.sol";
|
21
|
-
import {TokenHandler} from "../shared/TokenHandler.sol";
|
22
|
-
|
23
|
-
import {IRegistry} from "../registry/IRegistry.sol";
|
24
|
-
|
7
|
+
import {BundleSet} from "./BundleSet.sol";
|
8
|
+
import {COMPONENT, INSTANCE} from "../type/ObjectType.sol";
|
25
9
|
import {IInstance} from "./IInstance.sol";
|
10
|
+
import {IComponentService} from "../shared/IComponentService.sol";
|
26
11
|
import {IInstanceService} from "./IInstanceService.sol";
|
27
12
|
import {InstanceReader} from "./InstanceReader.sol";
|
28
13
|
import {InstanceAdmin} from "./InstanceAdmin.sol";
|
29
|
-
import {BundleSet} from "./BundleSet.sol";
|
30
14
|
import {InstanceStore} from "./InstanceStore.sol";
|
31
|
-
|
32
|
-
import {
|
33
|
-
|
34
|
-
import {
|
35
|
-
import {
|
36
|
-
import {
|
37
|
-
import {
|
38
|
-
import {IRisk} from "./module/IRisk.sol";
|
39
|
-
|
40
|
-
import {IDistributionService} from "../distribution/IDistributionService.sol";
|
41
|
-
import {IPoolService} from "../pool/IPoolService.sol";
|
42
|
-
import {IProductService} from "../product/IProductService.sol";
|
43
|
-
import {IPolicyService} from "../product/IPolicyService.sol";
|
44
|
-
import {IBundleService} from "../pool/IBundleService.sol";
|
15
|
+
import {IRegistry} from "../registry/IRegistry.sol";
|
16
|
+
import {NftId} from "../type/NftId.sol";
|
17
|
+
import {Registerable} from "../shared/Registerable.sol";
|
18
|
+
import {RoleId} from "../type/RoleId.sol";
|
19
|
+
import {Seconds} from "../type/Seconds.sol";
|
20
|
+
import {UFixed} from "../type/UFixed.sol";
|
21
|
+
import {VersionPart, VersionPartLib} from "../type/Version.sol";
|
45
22
|
|
46
23
|
contract Instance is
|
47
24
|
IInstance,
|
48
25
|
AccessManagedUpgradeable,
|
49
26
|
Registerable
|
50
27
|
{
|
51
|
-
uint256 public constant GIF_MAJOR_VERSION = 3;
|
52
|
-
|
53
28
|
bool private _initialized;
|
54
29
|
|
30
|
+
IComponentService internal _componentService;
|
55
31
|
IInstanceService internal _instanceService;
|
56
32
|
InstanceAdmin internal _instanceAdmin;
|
57
33
|
InstanceReader internal _instanceReader;
|
@@ -78,7 +54,6 @@ contract Instance is
|
|
78
54
|
{
|
79
55
|
_instanceAdmin = instanceAdmin;
|
80
56
|
if(_instanceAdmin.authority() == address(0)) {
|
81
|
-
// TODO rename error
|
82
57
|
revert ErrorInstanceInstanceAdminZero();
|
83
58
|
}
|
84
59
|
|
@@ -86,7 +61,7 @@ contract Instance is
|
|
86
61
|
__AccessManaged_init(_instanceAdmin.authority());
|
87
62
|
|
88
63
|
// setup instance object info
|
89
|
-
|
64
|
+
_initializeRegisterable(
|
90
65
|
address(registry),
|
91
66
|
registry.getNftId(),
|
92
67
|
INSTANCE(),
|
@@ -104,19 +79,32 @@ contract Instance is
|
|
104
79
|
_bundleManager.initialize();
|
105
80
|
_instanceReader.initialize();
|
106
81
|
|
82
|
+
_componentService = IComponentService(
|
83
|
+
getRegistry().getServiceAddress(
|
84
|
+
COMPONENT(),
|
85
|
+
getRelease()));
|
86
|
+
|
107
87
|
_instanceService = IInstanceService(
|
108
88
|
getRegistry().getServiceAddress(
|
109
89
|
INSTANCE(),
|
110
|
-
|
90
|
+
getRelease()));
|
111
91
|
|
112
|
-
|
92
|
+
_registerInterface(type(IInstance).interfaceId);
|
93
|
+
}
|
94
|
+
|
95
|
+
//--- ProductRegistration ----------------------------------------------//
|
96
|
+
function registerProduct(address product)
|
97
|
+
external
|
98
|
+
onlyOwner()
|
99
|
+
returns (NftId productNftId)
|
100
|
+
{
|
101
|
+
return _componentService.registerProduct(product);
|
113
102
|
}
|
114
103
|
|
115
104
|
//--- Staking ----------------------------------------------------------//
|
116
105
|
|
117
106
|
function setStakingLockingPeriod(Seconds stakeLockingPeriod)
|
118
107
|
external
|
119
|
-
// TODO decide if onlyOwner or restricted to instance owner role is better
|
120
108
|
onlyOwner()
|
121
109
|
{
|
122
110
|
_instanceService.setStakingLockingPeriod(stakeLockingPeriod);
|
@@ -203,13 +191,7 @@ contract Instance is
|
|
203
191
|
|
204
192
|
//--- ITransferInterceptor ----------------------------------------------//
|
205
193
|
|
206
|
-
|
207
|
-
function nftMint(address to, uint256 tokenId) external onlyChainNft {
|
208
|
-
// TODO refactor
|
209
|
-
// _instanceAdmin.transferInstanceOwnerRole(address(0), to);
|
210
|
-
}
|
211
|
-
|
212
|
-
function nftTransferFrom(address from, address to, uint256 tokenId) external onlyChainNft {
|
194
|
+
function nftTransferFrom(address from, address to, uint256 tokenId, address operator) external onlyChainNft {
|
213
195
|
// TODO refactor
|
214
196
|
// _instanceAdmin.transferInstanceOwnerRole(from, to);
|
215
197
|
}
|
@@ -246,9 +228,5 @@ contract Instance is
|
|
246
228
|
return _instanceStore;
|
247
229
|
}
|
248
230
|
|
249
|
-
function getMajorVersion() public pure returns (VersionPart majorVersion) {
|
250
|
-
return VersionPartLib.toVersionPart(GIF_MAJOR_VERSION);
|
251
|
-
}
|
252
|
-
|
253
231
|
//--- internal view/pure functions --------------------------------------//
|
254
232
|
}
|
@@ -7,13 +7,15 @@ import {AccessAdmin} from "../authorization/AccessAdmin.sol";
|
|
7
7
|
import {AccessManagerCloneable} from "../authorization/AccessManagerCloneable.sol";
|
8
8
|
import {IAccessAdmin} from "../authorization/IAccessAdmin.sol";
|
9
9
|
import {IAuthorization} from "../authorization/IAuthorization.sol";
|
10
|
-
import {
|
10
|
+
import {IInstanceLinkedComponent} from "../shared/IInstanceLinkedComponent.sol";
|
11
|
+
import {IAuthorization} from "../authorization/IAuthorization.sol";
|
11
12
|
import {IRegistry} from "../registry/IRegistry.sol";
|
12
13
|
import {IInstance} from "./IInstance.sol";
|
13
14
|
import {IService} from "../shared/IService.sol";
|
14
15
|
import {ObjectType, ObjectTypeLib, ALL, POOL, RELEASE} from "../type/ObjectType.sol";
|
15
|
-
import {RoleId, RoleIdLib, ADMIN_ROLE, PUBLIC_ROLE
|
16
|
+
import {RoleId, RoleIdLib, ADMIN_ROLE, PUBLIC_ROLE} from "../type/RoleId.sol";
|
16
17
|
import {Str, StrLib} from "../type/String.sol";
|
18
|
+
import {TokenHandler} from "../shared/TokenHandler.sol";
|
17
19
|
import {VersionPart} from "../type/Version.sol";
|
18
20
|
|
19
21
|
|
@@ -36,12 +38,12 @@ contract InstanceAdmin is
|
|
36
38
|
IRegistry internal _registry;
|
37
39
|
uint64 _idNext;
|
38
40
|
|
39
|
-
|
41
|
+
IAuthorization _instanceAuthorization;
|
40
42
|
|
41
43
|
/// @dev Only used for master instance admin.
|
42
44
|
/// Contracts created via constructor come with disabled initializers.
|
43
45
|
constructor(
|
44
|
-
|
46
|
+
IAuthorization instanceAuthorization
|
45
47
|
)
|
46
48
|
AccessAdmin()
|
47
49
|
{
|
@@ -54,7 +56,7 @@ contract InstanceAdmin is
|
|
54
56
|
/// Important: Initialization of this instance admin is only complete after calling function initializeInstance.
|
55
57
|
function initialize(
|
56
58
|
AccessManagerCloneable accessManager,
|
57
|
-
|
59
|
+
IAuthorization instanceAuthorization
|
58
60
|
)
|
59
61
|
external
|
60
62
|
initializer()
|
@@ -66,7 +68,7 @@ contract InstanceAdmin is
|
|
66
68
|
_createAdminAndPublicRoles();
|
67
69
|
|
68
70
|
// store instance authorization specification
|
69
|
-
_instanceAuthorization =
|
71
|
+
_instanceAuthorization = IAuthorization(instanceAuthorization);
|
70
72
|
}
|
71
73
|
|
72
74
|
function _checkTargetIsReadyForAuthorization(address target)
|
@@ -94,7 +96,7 @@ contract InstanceAdmin is
|
|
94
96
|
_registry = _instance.getRegistry();
|
95
97
|
|
96
98
|
// check matching releases
|
97
|
-
if (_instanceAuthorization.getRelease() != _instance.
|
99
|
+
if (_instanceAuthorization.getRelease() != _instance.getRelease()) {
|
98
100
|
revert ErrorInstanceAdminReleaseMismatch();
|
99
101
|
}
|
100
102
|
|
@@ -102,50 +104,56 @@ contract InstanceAdmin is
|
|
102
104
|
_createRoles(_instanceAuthorization);
|
103
105
|
_createModuleTargetsWithRoles();
|
104
106
|
_createTargetAuthorizations(_instanceAuthorization);
|
105
|
-
|
106
|
-
// grant component owner roles to instance owner
|
107
|
-
_grantComponentOwnerRoles();
|
108
107
|
}
|
109
108
|
|
110
109
|
|
111
110
|
/// @dev Initializes the authorization for the specified component.
|
112
111
|
/// Important: The component MUST be registered.
|
113
112
|
function initializeComponentAuthorization(
|
114
|
-
|
115
|
-
IAuthorization authorization
|
113
|
+
IInstanceLinkedComponent component
|
116
114
|
)
|
117
115
|
external
|
118
116
|
{
|
119
|
-
_checkTargetIsReadyForAuthorization(
|
117
|
+
_checkTargetIsReadyForAuthorization(address(component));
|
120
118
|
|
119
|
+
// get authorization specification
|
120
|
+
IAuthorization authorization = component.getAuthorization();
|
121
|
+
|
122
|
+
// create roles
|
121
123
|
_createRoles(authorization);
|
122
124
|
|
123
125
|
// create component target
|
124
126
|
_createTarget(
|
125
|
-
|
127
|
+
address(component),
|
126
128
|
authorization.getTargetName(),
|
127
129
|
true, // checkAuthority
|
128
130
|
false); // custom
|
129
131
|
|
132
|
+
_createTarget(
|
133
|
+
address(component.getTokenHandler()),
|
134
|
+
string(abi.encodePacked(authorization.getTargetName(), "TH")),
|
135
|
+
true,
|
136
|
+
false);
|
137
|
+
|
138
|
+
FunctionInfo[] memory functions = new FunctionInfo[](3);
|
139
|
+
functions[0] = toFunction(TokenHandler.collectTokens.selector, "collectTokens");
|
140
|
+
functions[1] = toFunction(TokenHandler.collectTokensToThreeRecipients.selector, "collectTokensToThreeRecipients");
|
141
|
+
functions[2] = toFunction(TokenHandler.distributeTokens.selector, "distributeTokens");
|
142
|
+
|
143
|
+
// FIXME: make this a bit nicer and work with IAuthorization. Use a specific role, not public - access to TokenHandler must be restricted
|
144
|
+
_authorizeTargetFunctions(
|
145
|
+
address(component.getTokenHandler()),
|
146
|
+
getPublicRole(),
|
147
|
+
functions);
|
148
|
+
|
130
149
|
_grantRoleToAccount(
|
131
150
|
authorization.getTargetRole(
|
132
|
-
authorization.
|
133
|
-
|
151
|
+
authorization.getMainTarget()),
|
152
|
+
address(component));
|
134
153
|
|
135
154
|
_createTargetAuthorizations(authorization);
|
136
155
|
}
|
137
156
|
|
138
|
-
|
139
|
-
function _grantComponentOwnerRoles()
|
140
|
-
internal
|
141
|
-
{
|
142
|
-
address instanceOwner = _registry.ownerOf(_instance.getNftId());
|
143
|
-
_grantRoleToAccount(DISTRIBUTION_OWNER_ROLE(), instanceOwner);
|
144
|
-
_grantRoleToAccount(ORACLE_OWNER_ROLE(), instanceOwner);
|
145
|
-
_grantRoleToAccount(POOL_OWNER_ROLE(), instanceOwner);
|
146
|
-
_grantRoleToAccount(PRODUCT_OWNER_ROLE(), instanceOwner);
|
147
|
-
}
|
148
|
-
|
149
157
|
/// @dev Creates a custom role
|
150
158
|
// TODO implement
|
151
159
|
// function createRole()
|
@@ -169,7 +177,7 @@ contract InstanceAdmin is
|
|
169
177
|
function getInstanceAuthorization()
|
170
178
|
external
|
171
179
|
view
|
172
|
-
returns (
|
180
|
+
returns (IAuthorization instanceAuthorizaion)
|
173
181
|
{
|
174
182
|
return _instanceAuthorization;
|
175
183
|
}
|
@@ -184,9 +192,12 @@ contract InstanceAdmin is
|
|
184
192
|
|
185
193
|
for(uint256 i = 0; i < roles.length; i++) {
|
186
194
|
roleId = roles[i];
|
187
|
-
|
188
|
-
|
189
|
-
|
195
|
+
|
196
|
+
if (!roleExists(roleId)) {
|
197
|
+
_createRole(
|
198
|
+
roleId,
|
199
|
+
authorization.getRoleInfo(roleId));
|
200
|
+
}
|
190
201
|
}
|
191
202
|
}
|
192
203
|
|
@@ -5,46 +5,33 @@ import {
|
|
5
5
|
PRODUCT, ORACLE, POOL, INSTANCE, COMPONENT, DISTRIBUTION, APPLICATION, POLICY, CLAIM, BUNDLE
|
6
6
|
} from "../../contracts/type/ObjectType.sol";
|
7
7
|
|
8
|
-
import {
|
9
|
-
ADMIN_ROLE, DISTRIBUTION_OWNER_ROLE, ORACLE_OWNER_ROLE, POOL_OWNER_ROLE, PRODUCT_OWNER_ROLE
|
10
|
-
} from "../../contracts/type/RoleId.sol";
|
11
|
-
|
12
8
|
import {BundleSet} from "../instance/BundleSet.sol";
|
13
9
|
import {IAccess} from "../authorization/IAccess.sol";
|
14
10
|
import {Instance} from "../instance/Instance.sol";
|
15
11
|
import {InstanceAdmin} from "../instance/InstanceAdmin.sol";
|
16
12
|
import {InstanceStore} from "../instance/InstanceStore.sol";
|
17
|
-
import {
|
18
|
-
import {RoleId} from "../type/RoleId.sol";
|
19
|
-
import {VersionPart, VersionPartLib} from "../type/Version.sol";
|
13
|
+
import {Authorization} from "../authorization/Authorization.sol";
|
20
14
|
|
21
15
|
|
22
16
|
contract InstanceAuthorizationV3
|
23
|
-
is
|
17
|
+
is Authorization
|
24
18
|
{
|
25
19
|
|
20
|
+
string public constant INSTANCE_ROLE_NAME = "InstanceRole";
|
21
|
+
|
26
22
|
string public constant INSTANCE_TARGET_NAME = "Instance";
|
27
23
|
string public constant INSTANCE_STORE_TARGET_NAME = "InstanceStore";
|
28
24
|
string public constant INSTANCE_ADMIN_TARGET_NAME = "InstanceAdmin";
|
29
25
|
string public constant BUNDLE_SET_TARGET_NAME = "BundleSet";
|
30
26
|
|
31
|
-
|
32
|
-
string public constant DISTRIBUTION_OWNER_ROLE_NAME = "DistributionOwnerRole";
|
33
|
-
string public constant ORACLE_OWNER_ROLE_NAME = "OracleOwnerRole";
|
34
|
-
string public constant POOL_OWNER_ROLE_NAME = "PoolOwnerRole";
|
35
|
-
string public constant PRODUCT_OWNER_ROLE_NAME = "ProductOwnerRole";
|
36
|
-
|
37
|
-
constructor() ModuleAuthorization(INSTANCE_TARGET_NAME) {}
|
27
|
+
constructor() Authorization(INSTANCE_TARGET_NAME) {}
|
38
28
|
|
39
29
|
|
40
30
|
function _setupRoles()
|
41
31
|
internal
|
42
32
|
override
|
43
33
|
{
|
44
|
-
|
45
|
-
_addGifRole(ORACLE_OWNER_ROLE(), ORACLE_OWNER_ROLE_NAME);
|
46
|
-
_addGifRole(POOL_OWNER_ROLE(), POOL_OWNER_ROLE_NAME);
|
47
|
-
_addGifRole(PRODUCT_OWNER_ROLE(), PRODUCT_OWNER_ROLE_NAME);
|
34
|
+
// empty implementation
|
48
35
|
}
|
49
36
|
|
50
37
|
|
@@ -55,7 +42,7 @@ contract InstanceAuthorizationV3
|
|
55
42
|
// instance target
|
56
43
|
_addTargetWithRole(
|
57
44
|
INSTANCE_TARGET_NAME,
|
58
|
-
|
45
|
+
_toTargetRoleId(INSTANCE()),
|
59
46
|
INSTANCE_ROLE_NAME);
|
60
47
|
|
61
48
|
// instance supporting targets
|
@@ -85,6 +72,7 @@ contract InstanceAuthorizationV3
|
|
85
72
|
_setupInstanceAdminAuthorization();
|
86
73
|
_setupInstanceStoreAuthorization();
|
87
74
|
_setupBundleSetAuthorization();
|
75
|
+
|
88
76
|
}
|
89
77
|
|
90
78
|
|
@@ -120,7 +108,7 @@ contract InstanceAuthorizationV3
|
|
120
108
|
IAccess.FunctionInfo[] storage functions;
|
121
109
|
|
122
110
|
// authorize instance role
|
123
|
-
functions = _authorizeForTarget(INSTANCE_ADMIN_TARGET_NAME,
|
111
|
+
functions = _authorizeForTarget(INSTANCE_ADMIN_TARGET_NAME, _toTargetRoleId(INSTANCE()));
|
124
112
|
_authorize(functions, InstanceAdmin.grantRole.selector, "grantRole");
|
125
113
|
|
126
114
|
// authorize instance service role
|
@@ -141,7 +129,9 @@ contract InstanceAuthorizationV3
|
|
141
129
|
_authorize(functions, InstanceStore.createProduct.selector, "createProduct");
|
142
130
|
_authorize(functions, InstanceStore.updateProduct.selector, "updateProduct");
|
143
131
|
_authorize(functions, InstanceStore.increaseBalance.selector, "increaseBalance");
|
132
|
+
_authorize(functions, InstanceStore.decreaseBalance.selector, "decreaseBalance");
|
144
133
|
_authorize(functions, InstanceStore.increaseFees.selector, "increaseFees");
|
134
|
+
_authorize(functions, InstanceStore.decreaseFees.selector, "decreaseFees");
|
145
135
|
|
146
136
|
// authorize distribution service role
|
147
137
|
functions = _authorizeForTarget(INSTANCE_STORE_TARGET_NAME, getServiceRole(DISTRIBUTION()));
|
@@ -189,6 +179,8 @@ contract InstanceAuthorizationV3
|
|
189
179
|
functions = _authorizeForTarget(INSTANCE_STORE_TARGET_NAME, getServiceRole(POLICY()));
|
190
180
|
_authorize(functions, InstanceStore.updatePolicy.selector, "updatePolicy");
|
191
181
|
_authorize(functions, InstanceStore.updatePolicyState.selector, "updatePolicyState");
|
182
|
+
_authorize(functions, InstanceStore.createPremium.selector, "createPremium");
|
183
|
+
_authorize(functions, InstanceStore.updatePremiumState.selector, "updatePremiumState");
|
192
184
|
|
193
185
|
// authorize claim service role
|
194
186
|
functions = _authorizeForTarget(INSTANCE_STORE_TARGET_NAME, getServiceRole(CLAIM()));
|