@etherisc/gif-next 0.0.2-f11de3a-698 → 0.0.2-f12cf4d-104
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 +9 -7
- 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 +136 -360
- 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 +99 -315
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +206 -292
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +125 -117
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +89 -115
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +78 -62
- 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 +1429 -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 +1979 -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 +1430 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +1177 -0
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +1606 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +2281 -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 +31 -86
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +72 -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 +447 -87
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +96 -245
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +99 -87
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +337 -138
- 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/oracle/BasicOracle.sol/BasicOracle.dbg.json +1 -1
- package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +111 -335
- 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 +77 -103
- 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 +87 -303
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +107 -159
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +99 -83
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +107 -323
- 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 +215 -256
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +130 -110
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +84 -47
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +98 -135
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +271 -199
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
- package/artifacts/contracts/pool/Pool.sol/Pool.json +106 -333
- package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolService.sol/PoolService.json +369 -386
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +112 -100
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +92 -168
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +90 -86
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +149 -319
- 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 +311 -187
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +139 -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 +267 -141
- 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 +136 -116
- 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 +365 -349
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +119 -99
- package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
- package/artifacts/contracts/product/PricingService.sol/PricingService.json +215 -309
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +117 -117
- package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
- package/artifacts/contracts/product/Product.sol/Product.json +147 -317
- package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +4 -0
- package/artifacts/contracts/product/RiskService.sol/RiskService.json +638 -0
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +718 -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 +310 -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 +516 -95
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +296 -143
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +94 -284
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +91 -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 +131 -223
- 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 +73 -274
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +424 -277
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +137 -115
- 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 +111 -0
- package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponent.sol/IComponent.json +66 -77
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +388 -19
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +77 -103
- 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 +1 -1
- package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +2 -22
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +87 -303
- 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 +697 -25
- 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 +4 -0
- package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +172 -0
- package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
- package/artifacts/contracts/staking/IStaking.sol/IStaking.json +111 -114
- 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 +63 -93
- package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
- package/artifacts/contracts/staking/Staking.sol/Staking.json +190 -379
- 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 +118 -99
- 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 +87 -165
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +95 -79
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +169 -128
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +54 -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 +32 -8
- 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 +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 +2 -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 +26 -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 +2 -2
- package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +1 -1
- package/artifacts/contracts/type/UFixed.sol/MathLib.json +2 -2
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +15 -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 +1 -1
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +71 -70
- 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 +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 +2 -1
- package/contracts/distribution/Distribution.sol +7 -17
- package/contracts/distribution/DistributionService.sol +85 -67
- package/contracts/distribution/DistributionServiceManager.sol +6 -6
- package/contracts/distribution/IDistributionComponent.sol +1 -1
- package/contracts/distribution/IDistributionService.sol +9 -5
- 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 +58 -0
- package/contracts/examples/unpermissioned/SimpleOracle.sol +137 -0
- package/contracts/examples/unpermissioned/SimplePool.sol +108 -0
- package/contracts/examples/unpermissioned/SimpleProduct.sol +345 -0
- package/contracts/instance/IInstance.sol +10 -30
- package/contracts/instance/IInstanceService.sol +2 -23
- package/contracts/instance/Instance.sol +29 -51
- package/contracts/instance/InstanceAdmin.sol +43 -32
- package/contracts/instance/InstanceAuthorizationV3.sol +11 -21
- package/contracts/instance/InstanceReader.sol +107 -25
- package/contracts/instance/InstanceService.sol +75 -104
- package/contracts/instance/InstanceServiceManager.sol +6 -7
- package/contracts/instance/InstanceStore.sol +11 -1
- package/contracts/instance/base/ObjectLifecycle.sol +9 -4
- package/contracts/instance/module/IComponents.sol +10 -6
- package/contracts/instance/module/IPolicy.sol +26 -25
- package/contracts/oracle/BasicOracle.sol +0 -1
- package/contracts/oracle/IOracleService.sol +2 -1
- package/contracts/oracle/Oracle.sol +6 -16
- package/contracts/oracle/OracleService.sol +56 -42
- package/contracts/oracle/OracleServiceManager.sol +6 -6
- package/contracts/pool/BasicPool.sol +35 -26
- package/contracts/pool/BasicPoolAuthorization.sol +13 -3
- package/contracts/pool/BundleService.sol +112 -69
- package/contracts/pool/BundleServiceManager.sol +6 -6
- package/contracts/pool/IBundleService.sol +16 -9
- package/contracts/pool/IPoolComponent.sol +19 -15
- package/contracts/pool/IPoolService.sol +62 -39
- package/contracts/pool/Pool.sol +145 -128
- package/contracts/pool/PoolService.sol +283 -189
- package/contracts/pool/PoolServiceManager.sol +4 -4
- package/contracts/product/ApplicationService.sol +59 -30
- package/contracts/product/ApplicationServiceManager.sol +4 -4
- package/contracts/product/BasicProduct.sol +9 -12
- package/contracts/product/BasicProductAuthorization.sol +0 -1
- package/contracts/product/ClaimService.sol +315 -118
- package/contracts/product/ClaimServiceManager.sol +4 -4
- package/contracts/product/IApplicationService.sol +1 -0
- package/contracts/product/IClaimService.sol +31 -7
- package/contracts/product/IPolicyService.sol +34 -36
- package/contracts/product/IPricingService.sol +10 -10
- package/contracts/product/IProductComponent.sol +23 -4
- package/contracts/product/{IProductService.sol → IRiskService.sol} +1 -1
- package/contracts/product/PolicyService.sol +383 -217
- package/contracts/product/PolicyServiceManager.sol +4 -4
- package/contracts/product/PricingService.sol +54 -54
- package/contracts/product/PricingServiceManager.sol +3 -3
- package/contracts/product/Product.sol +110 -89
- package/contracts/product/{ProductService.sol → RiskService.sol} +7 -10
- package/contracts/product/RiskServiceManager.sol +39 -0
- package/contracts/registry/ChainNft.sol +68 -38
- package/contracts/registry/IRegistry.sol +57 -18
- package/contracts/registry/IRegistryService.sol +5 -12
- package/contracts/registry/ITransferInterceptor.sol +1 -2
- package/contracts/registry/Registry.sol +350 -201
- package/contracts/registry/RegistryAdmin.sol +151 -54
- package/contracts/registry/RegistryService.sol +35 -46
- package/contracts/registry/RegistryServiceManager.sol +2 -2
- package/contracts/registry/ReleaseLifecycle.sol +6 -3
- package/contracts/registry/ReleaseRegistry.sol +204 -204
- package/contracts/registry/ServiceAuthorizationV3.sol +26 -23
- package/contracts/shared/Component.sol +63 -114
- package/contracts/shared/ComponentService.sol +296 -168
- package/contracts/shared/ComponentServiceManager.sol +8 -5
- package/contracts/shared/ComponentVerifyingService.sol +28 -17
- package/contracts/shared/ContractLib.sol +54 -0
- package/contracts/shared/IComponent.sol +10 -13
- package/contracts/shared/IComponentService.sol +38 -16
- package/contracts/shared/IInstanceLinkedComponent.sol +7 -22
- 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/InitializableERC165.sol +2 -2
- package/contracts/shared/InstanceLinkedComponent.sol +71 -38
- package/contracts/shared/KeyValueStore.sol +1 -1
- package/contracts/shared/Lifecycle.sol +15 -4
- package/contracts/shared/NftOwnable.sol +27 -7
- package/contracts/shared/PolicyHolder.sol +15 -52
- package/contracts/shared/Registerable.sol +19 -11
- package/contracts/shared/RegistryLinked.sol +9 -14
- package/contracts/shared/Service.sol +20 -18
- package/contracts/shared/TokenHandler.sol +366 -27
- package/contracts/shared/TokenHandlerDeployerLib.sol +20 -0
- package/contracts/staking/IStaking.sol +11 -5
- package/contracts/staking/IStakingService.sol +0 -3
- package/contracts/staking/StakeManagerLib.sol +18 -25
- package/contracts/staking/Staking.sol +39 -50
- package/contracts/staking/StakingManager.sol +8 -6
- package/contracts/staking/StakingReader.sol +12 -5
- package/contracts/staking/StakingService.sol +77 -35
- package/contracts/staking/StakingServiceManager.sol +2 -2
- package/contracts/staking/TargetManagerLib.sol +7 -3
- package/contracts/type/Amount.sol +15 -0
- 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/RiskId.sol +16 -2
- package/contracts/type/RoleId.sol +0 -12
- package/contracts/type/Seconds.sol +8 -0
- package/contracts/type/StateId.sol +15 -1
- package/contracts/type/UFixed.sol +4 -0
- package/contracts/upgradeability/ProxyManager.sol +68 -34
- package/contracts/upgradeability/Versionable.sol +2 -2
- package/package.json +4 -3
- 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/InitializableCustom.sol/InitializableCustom.dbg.json +0 -4
- package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.json +0 -39
- package/contracts/authorization/IModuleAuthorization.sol +0 -21
- package/contracts/authorization/ModuleAuthorization.sol +0 -78
- package/contracts/product/ProductServiceManager.sol +0 -39
- package/contracts/shared/InitializableCustom.sol +0 -177
@@ -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,16 +38,16 @@ 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
|
+
address instanceAuthorization
|
45
47
|
)
|
46
48
|
AccessAdmin()
|
47
49
|
{
|
48
|
-
_instanceAuthorization = instanceAuthorization;
|
50
|
+
_instanceAuthorization = IAuthorization(instanceAuthorization);
|
49
51
|
}
|
50
52
|
|
51
53
|
/// @dev Initializes this instance admin with the provided instances authorization specification.
|
@@ -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
|
+
address 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
|
@@ -191,6 +179,8 @@ contract InstanceAuthorizationV3
|
|
191
179
|
functions = _authorizeForTarget(INSTANCE_STORE_TARGET_NAME, getServiceRole(POLICY()));
|
192
180
|
_authorize(functions, InstanceStore.updatePolicy.selector, "updatePolicy");
|
193
181
|
_authorize(functions, InstanceStore.updatePolicyState.selector, "updatePolicyState");
|
182
|
+
_authorize(functions, InstanceStore.createPremium.selector, "createPremium");
|
183
|
+
_authorize(functions, InstanceStore.updatePremiumState.selector, "updatePremiumState");
|
194
184
|
|
195
185
|
// authorize claim service role
|
196
186
|
functions = _authorizeForTarget(INSTANCE_STORE_TARGET_NAME, getServiceRole(CLAIM()));
|
@@ -1,25 +1,20 @@
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
2
2
|
pragma solidity ^0.8.20;
|
3
3
|
|
4
|
-
import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol";
|
5
|
-
|
6
4
|
import {Amount} from "../type/Amount.sol";
|
7
|
-
import {ClaimId} from "../type/ClaimId.sol";
|
5
|
+
import {ClaimId, ClaimIdLib} from "../type/ClaimId.sol";
|
8
6
|
import {DistributorType} from "../type/DistributorType.sol";
|
9
|
-
import {Fee, FeeLib} from "../type/Fee.sol";
|
10
7
|
import {Key32} from "../type/Key32.sol";
|
11
8
|
import {NftId} from "../type/NftId.sol";
|
12
|
-
import {
|
13
|
-
import {PayoutId} from "../type/PayoutId.sol";
|
9
|
+
import {COMPONENT, DISTRIBUTOR, DISTRIBUTION, PREMIUM, PRODUCT, POLICY, POOL, BUNDLE} from "../type/ObjectType.sol";
|
10
|
+
import {PayoutId, PayoutIdLib} from "../type/PayoutId.sol";
|
14
11
|
import {ReferralId, ReferralStatus, ReferralLib, REFERRAL_OK, REFERRAL_ERROR_UNKNOWN, REFERRAL_ERROR_EXPIRED, REFERRAL_ERROR_EXHAUSTED} from "../type/Referral.sol";
|
15
12
|
import {RequestId} from "../type/RequestId.sol";
|
16
13
|
import {RiskId} from "../type/RiskId.sol";
|
17
14
|
import {RoleId} from "../type/RoleId.sol";
|
18
15
|
import {StateId} from "../type/StateId.sol";
|
19
|
-
import {UFixed,
|
20
|
-
import {Version} from "../type/Version.sol";
|
16
|
+
import {UFixed, UFixedLib} from "../type/UFixed.sol";
|
21
17
|
|
22
|
-
import {IRegistry} from "../registry/IRegistry.sol";
|
23
18
|
import {IBundle} from "../instance/module/IBundle.sol";
|
24
19
|
import {IComponents} from "../instance/module/IComponents.sol";
|
25
20
|
import {IDistribution} from "../instance/module/IDistribution.sol";
|
@@ -31,6 +26,7 @@ import {IRisk} from "../instance/module/IRisk.sol";
|
|
31
26
|
import {TimestampLib} from "../type/Timestamp.sol";
|
32
27
|
|
33
28
|
import {InstanceStore} from "./InstanceStore.sol";
|
29
|
+
import {BundleSet} from "./BundleSet.sol";
|
34
30
|
|
35
31
|
|
36
32
|
contract InstanceReader {
|
@@ -42,6 +38,7 @@ contract InstanceReader {
|
|
42
38
|
|
43
39
|
IInstance internal _instance;
|
44
40
|
InstanceStore internal _store;
|
41
|
+
BundleSet internal _bundleSet;
|
45
42
|
|
46
43
|
/// @dev This initializer needs to be called from the instance itself.
|
47
44
|
function initialize() public {
|
@@ -61,6 +58,7 @@ contract InstanceReader {
|
|
61
58
|
_initialized = true;
|
62
59
|
_instance = IInstance(instanceAddress);
|
63
60
|
_store = _instance.getInstanceStore();
|
61
|
+
_bundleSet = _instance.getBundleSet();
|
64
62
|
}
|
65
63
|
|
66
64
|
|
@@ -85,6 +83,41 @@ contract InstanceReader {
|
|
85
83
|
return _store.getState(toPolicyKey(policyNftId));
|
86
84
|
}
|
87
85
|
|
86
|
+
function getPremiumInfo(NftId policyNftId)
|
87
|
+
public
|
88
|
+
view
|
89
|
+
returns (IPolicy.PremiumInfo memory info)
|
90
|
+
{
|
91
|
+
bytes memory data = _store.getData(toPremiumKey(policyNftId));
|
92
|
+
if (data.length > 0) {
|
93
|
+
return abi.decode(data, (IPolicy.PremiumInfo));
|
94
|
+
}
|
95
|
+
}
|
96
|
+
|
97
|
+
function getPremiumInfoState(NftId policyNftId)
|
98
|
+
public
|
99
|
+
view
|
100
|
+
returns (StateId state)
|
101
|
+
{
|
102
|
+
return _store.getState(toPremiumKey(policyNftId));
|
103
|
+
}
|
104
|
+
|
105
|
+
function activeBundles(NftId poolNftId)
|
106
|
+
public
|
107
|
+
view
|
108
|
+
returns (uint256 bundles)
|
109
|
+
{
|
110
|
+
return _bundleSet.activeBundles(poolNftId);
|
111
|
+
}
|
112
|
+
|
113
|
+
function getActiveBundleNftId(NftId poolNftId, uint256 idx)
|
114
|
+
public
|
115
|
+
view
|
116
|
+
returns (NftId bundleNftId)
|
117
|
+
{
|
118
|
+
return _bundleSet.getActiveBundleNftId(poolNftId, idx);
|
119
|
+
}
|
120
|
+
|
88
121
|
function getBundleState(NftId bundleNftId)
|
89
122
|
public
|
90
123
|
view
|
@@ -93,14 +126,8 @@ contract InstanceReader {
|
|
93
126
|
return _store.getState(toBundleKey(bundleNftId));
|
94
127
|
}
|
95
128
|
|
96
|
-
/// @dev
|
97
|
-
|
98
|
-
/// - policy exists
|
99
|
-
/// - has been activated
|
100
|
-
/// - is not yet closed
|
101
|
-
/// - has no open claims
|
102
|
-
/// - claim amount matches sum insured amount or is expired
|
103
|
-
function policyIsCloseable(NftId policyNftId)
|
129
|
+
/// @dev Returns true iff policy is active.
|
130
|
+
function policyIsActive(NftId policyNftId)
|
104
131
|
public
|
105
132
|
view
|
106
133
|
returns (bool isCloseable)
|
@@ -109,17 +136,27 @@ contract InstanceReader {
|
|
109
136
|
|
110
137
|
if (info.productNftId.eqz()) { return false; } // not closeable: policy does not exist (or does not belong to this instance)
|
111
138
|
if (info.activatedAt.eqz()) { return false; } // not closeable: not yet activated
|
112
|
-
if (info.
|
113
|
-
if (info.
|
139
|
+
if (info.activatedAt > TimestampLib.blockTimestamp()) { return false; } // not yet active
|
140
|
+
if (info.expiredAt <= TimestampLib.blockTimestamp()) { return false; } // already expired
|
141
|
+
|
142
|
+
return true;
|
143
|
+
}
|
114
144
|
|
115
|
-
|
116
|
-
|
145
|
+
function claims(NftId policyNftId)
|
146
|
+
public
|
147
|
+
view
|
148
|
+
returns (uint16 claims)
|
149
|
+
{
|
150
|
+
return getPolicyInfo(policyNftId).claimsCount;
|
151
|
+
}
|
117
152
|
|
118
|
-
// not closeable: not yet expired
|
119
|
-
if (TimestampLib.blockTimestamp() < info.expiredAt) { return false; }
|
120
153
|
|
121
|
-
|
122
|
-
|
154
|
+
function getClaimId(uint idx)
|
155
|
+
public
|
156
|
+
view
|
157
|
+
returns (ClaimId claimId)
|
158
|
+
{
|
159
|
+
return ClaimIdLib.toClaimId(idx + 1);
|
123
160
|
}
|
124
161
|
|
125
162
|
function getClaimInfo(NftId policyNftId, ClaimId claimId)
|
@@ -133,6 +170,7 @@ contract InstanceReader {
|
|
133
170
|
}
|
134
171
|
}
|
135
172
|
|
173
|
+
|
136
174
|
function getClaimState(NftId policyNftId, ClaimId claimId)
|
137
175
|
public
|
138
176
|
view
|
@@ -141,6 +179,34 @@ contract InstanceReader {
|
|
141
179
|
return _store.getState(claimId.toKey32(policyNftId));
|
142
180
|
}
|
143
181
|
|
182
|
+
|
183
|
+
function payouts(NftId policyNftId, ClaimId claimId)
|
184
|
+
public
|
185
|
+
view
|
186
|
+
returns (uint24 payouts)
|
187
|
+
{
|
188
|
+
return getClaimInfo(policyNftId, claimId).payoutsCount;
|
189
|
+
}
|
190
|
+
|
191
|
+
|
192
|
+
function getPayoutId(ClaimId claimId, uint24 idx)
|
193
|
+
public
|
194
|
+
view
|
195
|
+
returns (PayoutId payoutId)
|
196
|
+
{
|
197
|
+
return PayoutIdLib.toPayoutId(claimId, idx + 1);
|
198
|
+
}
|
199
|
+
|
200
|
+
|
201
|
+
function getRemainingClaimableAmount(NftId policyNftId)
|
202
|
+
public
|
203
|
+
view
|
204
|
+
returns (Amount remainingClaimableAmount)
|
205
|
+
{
|
206
|
+
IPolicy.PolicyInfo memory info = getPolicyInfo(policyNftId);
|
207
|
+
return info.sumInsuredAmount - info.claimAmount;
|
208
|
+
}
|
209
|
+
|
144
210
|
function getPayoutInfo(NftId policyNftId, PayoutId payoutId)
|
145
211
|
public
|
146
212
|
view
|
@@ -171,6 +237,19 @@ contract InstanceReader {
|
|
171
237
|
}
|
172
238
|
}
|
173
239
|
|
240
|
+
function getWallet(NftId componentNftId)
|
241
|
+
public
|
242
|
+
view
|
243
|
+
returns (address tokenHandler)
|
244
|
+
{
|
245
|
+
bytes memory data = _store.getData(toComponentKey(componentNftId));
|
246
|
+
|
247
|
+
if (data.length > 0) {
|
248
|
+
IComponents.ComponentInfo memory info = abi.decode(data, (IComponents.ComponentInfo));
|
249
|
+
return info.tokenHandler.getWallet();
|
250
|
+
}
|
251
|
+
}
|
252
|
+
|
174
253
|
function getTokenHandler(NftId componentNftId)
|
175
254
|
public
|
176
255
|
view
|
@@ -369,6 +448,9 @@ contract InstanceReader {
|
|
369
448
|
return policyNftId.toKey32(POLICY());
|
370
449
|
}
|
371
450
|
|
451
|
+
function toPremiumKey(NftId policyNftId) public pure returns (Key32) {
|
452
|
+
return policyNftId.toKey32(PREMIUM());
|
453
|
+
}
|
372
454
|
|
373
455
|
function toDistributorKey(NftId distributorNftId) public pure returns (Key32) {
|
374
456
|
return distributorNftId.toKey32(DISTRIBUTOR());
|