@etherisc/gif-next 0.0.2-92c50c2-136 → 0.0.2-9306579-093
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 +32 -3
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +4 -0
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +1234 -0
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +4 -0
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +1206 -0
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +358 -0
- package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +4 -0
- package/artifacts/contracts/authorization/IAccess.sol/IAccess.json +10 -0
- package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +4 -0
- package/artifacts/contracts/{shared → authorization}/IAccessAdmin.sol/IAccessAdmin.json +94 -270
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +258 -0
- package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.json +290 -0
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +4 -0
- package/artifacts/contracts/{registry → authorization}/IServiceAuthorization.sol/IServiceAuthorization.json +10 -10
- package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.json +390 -0
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +190 -0
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +4 -0
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +1363 -0
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +4 -0
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +410 -0
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +64 -447
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +260 -233
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +93 -101
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +109 -157
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +152 -47
- 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 +1512 -0
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +410 -0
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +1999 -0
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +414 -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 +1432 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +1192 -0
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +1566 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +2001 -0
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +4 -0
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +703 -0
- package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstance.sol/IInstance.json +6 -19
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +32 -44
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +28 -178
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +1186 -271
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +4 -0
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +601 -0
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +489 -147
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +57 -224
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +61 -105
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +245 -235
- package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +2 -2
- package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +2 -2
- package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +2 -2
- package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +4 -0
- package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +181 -0
- package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
- package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +1 -1
- package/artifacts/contracts/mock/Dip.sol/Dip.json +2 -2
- package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +4 -0
- package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +1000 -0
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +4 -0
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +418 -0
- package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +1 -1
- package/artifacts/contracts/oracle/IOracle.sol/IOracle.json +43 -1
- package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +1 -1
- package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +58 -31
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +55 -309
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +37 -144
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +60 -80
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +4 -0
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +1297 -0
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +4 -0
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +410 -0
- package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleService.sol/BundleService.json +458 -161
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +154 -86
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +229 -1
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +79 -275
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +360 -171
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
- package/artifacts/contracts/pool/Pool.sol/Pool.json +79 -561
- package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolService.sol/PoolService.json +492 -333
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +98 -82
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +36 -162
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +57 -89
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +4 -0
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +1119 -0
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +4 -0
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +410 -0
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +263 -181
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +104 -100
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +5 -0
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +147 -6
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +295 -119
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +43 -43
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +75 -99
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +4 -0
- package/artifacts/contracts/product/{IProductService.sol/IProductService.json → IRiskService.sol/IRiskService.json} +2 -2
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +406 -321
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +104 -100
- package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
- package/artifacts/contracts/product/PricingService.sol/PricingService.json +118 -265
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +80 -120
- package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
- package/artifacts/contracts/product/Product.sol/Product.json +75 -395
- package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +4 -0
- package/artifacts/contracts/product/RiskService.sol/RiskService.json +588 -0
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +682 -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 +265 -42
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +0 -183
- package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
- package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
- package/artifacts/contracts/registry/Registry.sol/Registry.json +483 -99
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +337 -380
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +23 -313
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +52 -72
- package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +1 -1
- package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +2 -2
- package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +4 -0
- package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +1169 -0
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +24 -16
- 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 +15 -205
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +247 -185
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +105 -107
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +5 -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 +15 -20
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +153 -0
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +47 -31
- package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
- package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +15 -47
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
- package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
- package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +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 +47 -269
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
- package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +4 -0
- package/artifacts/contracts/shared/{NftIdSetManager.sol/NftIdSetManager.json → NftIdSet.sol/NftIdSet.json} +4 -4
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +6 -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 +8 -97
- 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 +5 -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 +42 -21
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +1 -1
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +73 -93
- package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
- package/artifacts/contracts/staking/Staking.sol/Staking.json +100 -256
- package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +2 -2
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +77 -88
- 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 +31 -138
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +56 -76
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +92 -87
- 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 +55 -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 +117 -14
- 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 +2 -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 +71 -2
- package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
- package/artifacts/contracts/type/Version.sol/VersionLib.json +2 -2
- package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
- package/artifacts/contracts/type/Version.sol/VersionPartLib.json +21 -2
- 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 +586 -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/{shared → authorization}/AccessAdmin.sol +158 -325
- package/contracts/authorization/AccessManagerCloneable.sol +16 -0
- package/contracts/authorization/Authorization.sol +221 -0
- package/contracts/authorization/IAccess.sol +48 -0
- package/contracts/{shared → authorization}/IAccessAdmin.sol +22 -55
- package/contracts/authorization/IAuthorization.sol +54 -0
- package/contracts/authorization/IModuleAuthorization.sol +21 -0
- package/contracts/{registry → authorization}/IServiceAuthorization.sol +5 -5
- package/contracts/authorization/ModuleAuthorization.sol +78 -0
- package/contracts/{registry → authorization}/ServiceAuthorization.sol +17 -17
- package/contracts/distribution/BasicDistribution.sol +138 -0
- package/contracts/distribution/BasicDistributionAuthorization.sol +47 -0
- package/contracts/distribution/Distribution.sol +145 -111
- package/contracts/distribution/DistributionService.sol +86 -47
- package/contracts/distribution/DistributionServiceManager.sol +8 -11
- package/contracts/distribution/IDistributionComponent.sol +25 -39
- package/contracts/distribution/IDistributionService.sol +23 -3
- package/contracts/examples/fire/DamageLevel.sol +59 -0
- package/contracts/examples/fire/FirePool.sol +75 -0
- package/contracts/examples/fire/FirePoolAuthorization.sol +34 -0
- package/contracts/examples/fire/FireProduct.sol +412 -0
- package/contracts/examples/fire/FireProductAuthorization.sol +45 -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 +76 -0
- package/contracts/examples/unpermissioned/SimpleProduct.sol +351 -0
- package/contracts/instance/{BundleManager.sol → BundleSet.sol} +23 -23
- package/contracts/instance/IInstance.sol +14 -38
- package/contracts/instance/IInstanceService.sol +13 -18
- package/contracts/instance/Instance.sol +68 -102
- package/contracts/instance/InstanceAdmin.sol +224 -267
- package/contracts/instance/InstanceAuthorizationV3.sol +204 -0
- package/contracts/instance/InstanceReader.sol +137 -34
- package/contracts/instance/InstanceService.sol +115 -89
- package/contracts/instance/InstanceServiceManager.sol +8 -13
- package/contracts/instance/InstanceStore.sol +17 -2
- package/contracts/instance/base/ObjectLifecycle.sol +9 -4
- package/contracts/instance/base/{ObjectManager.sol → ObjectSet.sol} +11 -12
- package/contracts/instance/module/IBundle.sol +1 -1
- package/contracts/instance/module/IComponents.sol +4 -8
- 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 +48 -0
- package/contracts/oracle/BasicOracleAuthorization.sol +46 -0
- package/contracts/oracle/IOracle.sol +16 -0
- package/contracts/oracle/IOracleComponent.sol +2 -1
- package/contracts/oracle/Oracle.sol +73 -51
- package/contracts/oracle/OracleService.sol +11 -8
- package/contracts/oracle/OracleServiceManager.sol +8 -11
- package/contracts/pool/BasicPool.sol +166 -0
- package/contracts/pool/BasicPoolAuthorization.sol +58 -0
- package/contracts/pool/BundleService.sol +221 -56
- package/contracts/pool/BundleServiceManager.sol +8 -11
- package/contracts/pool/IBundleService.sol +42 -5
- package/contracts/pool/IPoolComponent.sol +24 -68
- package/contracts/pool/IPoolService.sol +57 -36
- package/contracts/pool/Pool.sol +192 -138
- package/contracts/pool/PoolService.sol +241 -130
- package/contracts/pool/PoolServiceManager.sol +6 -9
- package/contracts/product/ApplicationService.sol +62 -65
- package/contracts/product/ApplicationServiceManager.sol +6 -6
- package/contracts/product/BasicProduct.sol +53 -0
- package/contracts/product/BasicProductAuthorization.sol +43 -0
- package/contracts/product/ClaimService.sol +254 -115
- 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 +7 -7
- package/contracts/product/IProductComponent.sol +20 -9
- package/contracts/product/{IProductService.sol → IRiskService.sol} +1 -1
- package/contracts/product/PolicyService.sol +404 -193
- package/contracts/product/PolicyServiceManager.sol +6 -9
- package/contracts/product/PricingService.sol +46 -46
- package/contracts/product/PricingServiceManager.sol +5 -8
- package/contracts/product/Product.sol +170 -115
- package/contracts/product/{ProductService.sol → RiskService.sol} +13 -41
- package/contracts/product/RiskServiceManager.sol +39 -0
- package/contracts/registry/ChainNft.sol +65 -32
- package/contracts/registry/IRegistry.sol +65 -19
- package/contracts/registry/IRegistryService.sol +0 -9
- package/contracts/registry/Registry.sol +340 -215
- package/contracts/registry/RegistryAdmin.sol +260 -131
- package/contracts/registry/RegistryService.sol +59 -66
- package/contracts/registry/RegistryServiceManager.sol +4 -4
- package/contracts/registry/{ReleaseManager.sol → ReleaseRegistry.sol} +107 -119
- package/contracts/registry/ServiceAuthorizationV3.sol +20 -22
- package/contracts/registry/TokenRegistry.sol +2 -2
- package/contracts/shared/Component.sol +38 -43
- package/contracts/shared/ComponentService.sol +103 -82
- package/contracts/shared/ComponentServiceManager.sol +10 -7
- package/contracts/shared/ComponentVerifyingService.sol +3 -4
- package/contracts/shared/ContractLib.sol +38 -0
- package/contracts/shared/IComponent.sol +7 -4
- package/contracts/shared/IComponentService.sol +15 -9
- package/contracts/shared/IInstanceLinkedComponent.sol +10 -7
- package/contracts/shared/IPolicyHolder.sol +12 -22
- package/contracts/shared/IService.sol +1 -1
- package/contracts/shared/{ERC165.sol → InitializableERC165.sol} +3 -3
- package/contracts/shared/InstanceLinkedComponent.sol +52 -25
- package/contracts/shared/{NftIdSetManager.sol → NftIdSet.sol} +1 -1
- package/contracts/shared/NftOwnable.sol +7 -7
- package/contracts/shared/PolicyHolder.sol +17 -57
- package/contracts/shared/Registerable.sol +4 -4
- package/contracts/shared/RegistryLinked.sol +3 -2
- package/contracts/shared/Service.sol +19 -15
- package/contracts/shared/TokenHandler.sol +100 -19
- package/contracts/shared/TokenHandlerDeployerLib.sol +12 -0
- package/contracts/staking/IStaking.sol +3 -3
- package/contracts/staking/IStakingService.sol +12 -5
- package/contracts/staking/StakeManagerLib.sol +18 -25
- package/contracts/staking/Staking.sol +27 -42
- package/contracts/staking/StakingManager.sol +10 -12
- package/contracts/staking/StakingReader.sol +23 -20
- package/contracts/staking/StakingService.sol +10 -14
- package/contracts/staking/StakingServiceManager.sol +4 -4
- package/contracts/staking/StakingStore.sol +12 -22
- 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 +53 -18
- package/contracts/type/PayoutId.sol +10 -10
- package/contracts/type/Referral.sol +1 -0
- package/contracts/type/RiskId.sol +15 -1
- package/contracts/type/RoleId.sol +55 -82
- package/contracts/type/Seconds.sol +21 -1
- package/contracts/type/StateId.sol +1 -0
- package/contracts/type/Timestamp.sol +11 -1
- package/contracts/type/UFixed.sol +38 -9
- package/contracts/type/Version.sol +3 -1
- package/contracts/{shared → upgradeability}/ProxyManager.sol +70 -38
- package/contracts/{shared → upgradeability}/UpgradableProxyWithAdmin.sol +1 -3
- package/contracts/{shared → upgradeability}/Versionable.sol +2 -2
- package/package.json +3 -3
- package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +0 -4
- package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +0 -709
- package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.dbg.json +0 -4
- package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.json +0 -228
- package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.dbg.json +0 -4
- package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.json +0 -187
- 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/registry/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +0 -4
- package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +0 -4
- package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +0 -1177
- package/artifacts/contracts/registry/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +0 -4
- package/artifacts/contracts/registry/ServiceAuthorization.sol/ServiceAuthorization.json +0 -190
- package/artifacts/contracts/shared/AccessAdmin.sol/AccessAdmin.dbg.json +0 -4
- package/artifacts/contracts/shared/AccessAdmin.sol/AccessAdmin.json +0 -1559
- package/artifacts/contracts/shared/AccessManagerCustom.sol/AccessManagerCustom.dbg.json +0 -4
- package/artifacts/contracts/shared/AccessManagerCustom.sol/AccessManagerCustom.json +0 -1193
- package/artifacts/contracts/shared/AccessManagerExtended.sol/AccessManagerExtended.dbg.json +0 -4
- package/artifacts/contracts/shared/AccessManagerExtended.sol/AccessManagerExtended.json +0 -1747
- package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.dbg.json +0 -4
- package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.json +0 -1760
- package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.dbg.json +0 -4
- package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.json +0 -1838
- package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.dbg.json +0 -4
- package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.json +0 -1856
- 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/IAccessAdmin.sol/IAccessAdmin.dbg.json +0 -4
- package/artifacts/contracts/shared/IAccessManagerExtended.sol/IAccessManagerExtended.dbg.json +0 -4
- package/artifacts/contracts/shared/IAccessManagerExtended.sol/IAccessManagerExtended.json +0 -1562
- package/artifacts/contracts/shared/IAccessManagerExtendedWithDisable.sol/IAccessManagerExtendedWithDisable.dbg.json +0 -4
- package/artifacts/contracts/shared/IAccessManagerExtendedWithDisable.sol/IAccessManagerExtendedWithDisable.json +0 -1600
- 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/NftIdSetManager.sol/NftIdSetManager.dbg.json +0 -4
- 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/instance/InstanceAuthorizationsLib.sol +0 -377
- package/contracts/product/ProductServiceManager.sol +0 -42
- package/contracts/shared/AccessManagerCustom.sol +0 -741
- package/contracts/shared/AccessManagerExtended.sol +0 -481
- package/contracts/shared/AccessManagerExtendedInitializeable.sol +0 -13
- package/contracts/shared/AccessManagerExtendedWithDisable.sol +0 -137
- package/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol +0 -14
- package/contracts/shared/IAccessManagerExtended.sol +0 -74
- package/contracts/shared/IAccessManagerExtendedWithDisable.sol +0 -18
- package/contracts/shared/InitializableCustom.sol +0 -177
- /package/contracts/{shared → upgradeability}/IVersionable.sol +0 -0
@@ -4,20 +4,20 @@ pragma solidity ^0.8.20;
|
|
4
4
|
import {Clones} from "@openzeppelin/contracts/proxy/Clones.sol";
|
5
5
|
import {ShortString, ShortStrings} from "@openzeppelin/contracts/utils/ShortStrings.sol";
|
6
6
|
|
7
|
+
import {AccessManagerCloneable} from "../authorization/AccessManagerCloneable.sol";
|
7
8
|
import {Amount} from "../type/Amount.sol";
|
8
|
-
import {
|
9
|
+
import {BundleSet} from "./BundleSet.sol";
|
9
10
|
import {ChainNft} from "../registry/ChainNft.sol";
|
10
11
|
import {NftId} from "../type/NftId.sol";
|
11
12
|
import {RoleId} from "../type/RoleId.sol";
|
12
13
|
import {SecondsLib} from "../type/Seconds.sol";
|
13
14
|
import {UFixed, UFixedLib} from "../type/UFixed.sol";
|
14
|
-
import {ADMIN_ROLE,
|
15
|
+
import {ADMIN_ROLE, DISTRIBUTION_OWNER_ROLE, ORACLE_OWNER_ROLE, POOL_OWNER_ROLE, PRODUCT_OWNER_ROLE} from "../type/RoleId.sol";
|
15
16
|
import {ObjectType, INSTANCE, BUNDLE, APPLICATION, CLAIM, DISTRIBUTION, INSTANCE, POLICY, POOL, PRODUCT, REGISTRY, STAKING} from "../type/ObjectType.sol";
|
16
17
|
|
17
18
|
import {Service} from "../shared/Service.sol";
|
18
19
|
import {IInstanceLinkedComponent} from "../shared/IInstanceLinkedComponent.sol";
|
19
20
|
import {IService} from "../shared/IService.sol";
|
20
|
-
import {AccessManagerExtendedInitializeable} from "../shared/AccessManagerExtendedInitializeable.sol";
|
21
21
|
|
22
22
|
import {IDistributionComponent} from "../distribution/IDistributionComponent.sol";
|
23
23
|
import {IPoolComponent} from "../pool/IPoolComponent.sol";
|
@@ -29,12 +29,12 @@ import {IStakingService} from "../staking/IStakingService.sol";
|
|
29
29
|
import {TargetManagerLib} from "../staking/TargetManagerLib.sol";
|
30
30
|
|
31
31
|
import {Instance} from "./Instance.sol";
|
32
|
+
import {IModuleAuthorization} from "../authorization/IModuleAuthorization.sol";
|
32
33
|
import {IInstance} from "./IInstance.sol";
|
33
34
|
import {InstanceAdmin} from "./InstanceAdmin.sol";
|
34
35
|
import {IInstanceService} from "./IInstanceService.sol";
|
35
36
|
import {InstanceReader} from "./InstanceReader.sol";
|
36
37
|
import {InstanceStore} from "./InstanceStore.sol";
|
37
|
-
import {InstanceAuthorizationsLib} from "./InstanceAuthorizationsLib.sol";
|
38
38
|
import {Seconds} from "../type/Seconds.sol";
|
39
39
|
import {VersionPart, VersionPartLib} from "../type/Version.sol";
|
40
40
|
|
@@ -54,13 +54,13 @@ contract InstanceService is
|
|
54
54
|
address internal _masterInstanceAdmin;
|
55
55
|
address internal _masterInstance;
|
56
56
|
address internal _masterInstanceReader;
|
57
|
-
address internal
|
57
|
+
address internal _masterInstanceBundleSet;
|
58
58
|
address internal _masterInstanceStore;
|
59
59
|
|
60
60
|
|
61
61
|
modifier onlyInstance() {
|
62
62
|
address instanceAddress = msg.sender;
|
63
|
-
NftId instanceNftId = getRegistry().
|
63
|
+
NftId instanceNftId = getRegistry().getNftIdForAddress(msg.sender);
|
64
64
|
if (instanceNftId.eqz()) {
|
65
65
|
revert ErrorInstanceServiceNotRegistered(instanceAddress);
|
66
66
|
}
|
@@ -94,78 +94,36 @@ contract InstanceService is
|
|
94
94
|
_;
|
95
95
|
}
|
96
96
|
|
97
|
-
function
|
97
|
+
function createInstance()
|
98
98
|
external
|
99
99
|
returns (
|
100
100
|
Instance clonedInstance,
|
101
101
|
NftId clonedInstanceNftId
|
102
102
|
)
|
103
103
|
{
|
104
|
+
// tx sender will become instance owner
|
104
105
|
address instanceOwner = msg.sender;
|
105
|
-
AccessManagerExtendedInitializeable clonedAccessManager = AccessManagerExtendedInitializeable(
|
106
|
-
Clones.clone(_masterAccessManager));
|
107
|
-
|
108
|
-
// initially grants ADMIN_ROLE to this (being the instance service).
|
109
|
-
// This will allow the instance service to bootstrap the authorizations of the instance.
|
110
|
-
// Instance service will renounce ADMIN_ROLE when bootstraping is finished
|
111
|
-
clonedAccessManager.initialize(address(this));
|
112
|
-
|
113
|
-
clonedInstance = Instance(Clones.clone(_masterInstance));
|
114
|
-
clonedInstance.initialize(
|
115
|
-
address(clonedAccessManager),
|
116
|
-
address(getRegistry()),
|
117
|
-
instanceOwner);
|
118
|
-
// initialize and set before instance reader
|
119
|
-
InstanceStore clonedInstanceStore = InstanceStore(Clones.clone(address(_masterInstanceStore)));
|
120
|
-
clonedInstanceStore.initialize(address(clonedInstance));
|
121
|
-
clonedInstance.setInstanceStore(clonedInstanceStore);
|
122
|
-
|
123
|
-
InstanceReader clonedInstanceReader = InstanceReader(Clones.clone(address(_masterInstanceReader)));
|
124
|
-
clonedInstanceReader.initialize(address(clonedInstance));
|
125
|
-
clonedInstance.setInstanceReader(clonedInstanceReader);
|
126
|
-
|
127
|
-
BundleManager clonedBundleManager = BundleManager(Clones.clone(_masterInstanceBundleManager));
|
128
|
-
clonedBundleManager.initialize(address(clonedInstance));
|
129
|
-
clonedInstance.setBundleManager(clonedBundleManager);
|
130
|
-
|
131
|
-
InstanceAdmin clonedInstanceAdmin = InstanceAdmin(Clones.clone(_masterInstanceAdmin));
|
132
|
-
clonedAccessManager.grantRole(ADMIN_ROLE().toInt(), address(clonedInstanceAdmin), 0);
|
133
|
-
clonedInstanceAdmin.initialize(address(clonedInstance));
|
134
|
-
clonedInstance.setInstanceAdmin(clonedInstanceAdmin);
|
135
|
-
|
136
|
-
// TODO amend setters with instance specific , policy manager ...
|
137
|
-
|
138
|
-
// TODO library does external calls -> but it is registry and access manager -> find out is it best practice
|
139
|
-
InstanceAuthorizationsLib.grantInitialAuthorizations(
|
140
|
-
clonedAccessManager,
|
141
|
-
clonedInstanceAdmin,
|
142
|
-
clonedInstance,
|
143
|
-
clonedBundleManager,
|
144
|
-
clonedInstanceStore,
|
145
|
-
instanceOwner,
|
146
|
-
getRegistry(),
|
147
|
-
getVersion().toMajorPart());
|
148
106
|
|
149
|
-
|
107
|
+
// create instance admin and instance
|
108
|
+
InstanceAdmin instanceAdmin = _createInstanceAdmin();
|
109
|
+
clonedInstance = _createInstance(instanceAdmin, instanceOwner);
|
150
110
|
|
151
|
-
// register
|
152
|
-
|
153
|
-
|
111
|
+
// register cloned instance with registry
|
112
|
+
clonedInstanceNftId = _registryService.registerInstance(
|
113
|
+
clonedInstance, instanceOwner).nftId;
|
154
114
|
|
155
|
-
//
|
115
|
+
// register cloned instance as staking target
|
156
116
|
_stakingService.createInstanceTarget(
|
157
117
|
clonedInstanceNftId,
|
158
118
|
TargetManagerLib.getDefaultLockingPeriod(),
|
159
119
|
TargetManagerLib.getDefaultRewardRate());
|
160
120
|
|
121
|
+
// MUST be set after instance is set up and registered
|
122
|
+
instanceAdmin.initializeInstanceAuthorization(address(clonedInstance));
|
123
|
+
|
161
124
|
emit LogInstanceCloned(
|
162
|
-
|
163
|
-
address(
|
164
|
-
address(clonedInstance),
|
165
|
-
address(clonedInstanceStore),
|
166
|
-
address(clonedBundleManager),
|
167
|
-
address(clonedInstanceReader),
|
168
|
-
clonedInstanceNftId);
|
125
|
+
clonedInstanceNftId,
|
126
|
+
address(clonedInstance));
|
169
127
|
}
|
170
128
|
|
171
129
|
|
@@ -174,7 +132,7 @@ contract InstanceService is
|
|
174
132
|
virtual
|
175
133
|
onlyInstance()
|
176
134
|
{
|
177
|
-
NftId instanceNftId = getRegistry().
|
135
|
+
NftId instanceNftId = getRegistry().getNftIdForAddress(msg.sender);
|
178
136
|
_stakingService.setInstanceLockingPeriod(
|
179
137
|
instanceNftId,
|
180
138
|
stakeLockingPeriod);
|
@@ -186,7 +144,7 @@ contract InstanceService is
|
|
186
144
|
virtual
|
187
145
|
onlyInstance()
|
188
146
|
{
|
189
|
-
NftId instanceNftId = getRegistry().
|
147
|
+
NftId instanceNftId = getRegistry().getNftIdForAddress(msg.sender);
|
190
148
|
_stakingService.setInstanceRewardRate(
|
191
149
|
instanceNftId,
|
192
150
|
rewardRate);
|
@@ -198,7 +156,7 @@ contract InstanceService is
|
|
198
156
|
virtual
|
199
157
|
onlyInstance()
|
200
158
|
{
|
201
|
-
NftId instanceNftId = getRegistry().
|
159
|
+
NftId instanceNftId = getRegistry().getNftIdForAddress(msg.sender);
|
202
160
|
_stakingService.refillInstanceRewardReserves(
|
203
161
|
instanceNftId,
|
204
162
|
rewardProvider,
|
@@ -212,7 +170,7 @@ contract InstanceService is
|
|
212
170
|
onlyInstance()
|
213
171
|
returns (Amount newBalance)
|
214
172
|
{
|
215
|
-
NftId instanceNftId = getRegistry().
|
173
|
+
NftId instanceNftId = getRegistry().getNftIdForAddress(msg.sender);
|
216
174
|
_stakingService.withdrawInstanceRewardReserves(
|
217
175
|
instanceNftId,
|
218
176
|
dipAmount);
|
@@ -235,13 +193,13 @@ contract InstanceService is
|
|
235
193
|
NftId instanceNftId = registry.getObjectInfo(componentAddress).parentNftId;
|
236
194
|
|
237
195
|
IInstance instance = IInstance(
|
238
|
-
registry.
|
239
|
-
instanceNftId).objectAddress);
|
196
|
+
registry.getObjectAddress(instanceNftId));
|
240
197
|
|
241
198
|
// no revert in case already locked
|
242
|
-
|
243
|
-
|
244
|
-
|
199
|
+
// TODO refactor/implement
|
200
|
+
// instance.getInstanceAdmin().setTargetLockedByService(
|
201
|
+
// componentAddress,
|
202
|
+
// locked);
|
245
203
|
}
|
246
204
|
|
247
205
|
|
@@ -255,38 +213,39 @@ contract InstanceService is
|
|
255
213
|
returns(NftId masterInstanceNftId)
|
256
214
|
{
|
257
215
|
if(_masterInstance != address(0)) { revert ErrorInstanceServiceMasterInstanceAlreadySet(); }
|
258
|
-
if(_masterAccessManager != address(0)) { revert ErrorInstanceServiceMasterInstanceAccessManagerAlreadySet(); }
|
259
216
|
if(_masterInstanceAdmin != address(0)) { revert ErrorInstanceServiceMasterInstanceAdminAlreadySet(); }
|
260
|
-
if(
|
217
|
+
if(_masterInstanceBundleSet != address(0)) { revert ErrorInstanceServiceMasterBundleSetAlreadySet(); }
|
261
218
|
|
262
219
|
if(instanceAddress == address(0)) { revert ErrorInstanceServiceInstanceAddressZero(); }
|
263
220
|
|
264
221
|
IInstance instance = IInstance(instanceAddress);
|
222
|
+
address accessManagerAddress = instance.authority();
|
265
223
|
InstanceAdmin instanceAdmin = instance.getInstanceAdmin();
|
266
224
|
address instanceAdminAddress = address(instanceAdmin);
|
267
225
|
InstanceReader instanceReader = instance.getInstanceReader();
|
268
226
|
address instanceReaderAddress = address(instanceReader);
|
269
|
-
|
227
|
+
BundleSet bundleManager = instance.getBundleSet();
|
270
228
|
address bundleManagerAddress = address(bundleManager);
|
271
229
|
InstanceStore instanceStore = instance.getInstanceStore();
|
272
230
|
address instanceStoreAddress = address(instanceStore);
|
273
231
|
|
232
|
+
if(accessManagerAddress == address(0)) { revert ErrorInstanceServiceAccessManagerZero(); }
|
274
233
|
if(instanceAdminAddress == address(0)) { revert ErrorInstanceServiceInstanceAdminZero(); }
|
275
234
|
if(instanceReaderAddress == address(0)) { revert ErrorInstanceServiceInstanceReaderZero(); }
|
276
|
-
if(bundleManagerAddress == address(0)) { revert
|
235
|
+
if(bundleManagerAddress == address(0)) { revert ErrorInstanceServiceBundleSetZero(); }
|
277
236
|
if(instanceStoreAddress == address(0)) { revert ErrorInstanceServiceInstanceStoreZero(); }
|
278
237
|
|
279
238
|
if(instance.authority() != instanceAdmin.authority()) { revert ErrorInstanceServiceInstanceAuthorityMismatch(); }
|
280
|
-
if(bundleManager.authority() != instanceAdmin.authority()) { revert
|
239
|
+
if(bundleManager.authority() != instanceAdmin.authority()) { revert ErrorInstanceServiceBundleSetAuthorityMismatch(); }
|
281
240
|
if(instanceStore.authority() != instanceAdmin.authority()) { revert ErrorInstanceServiceInstanceStoreAuthorityMismatch(); }
|
282
241
|
if(bundleManager.getInstance() != instance) { revert ErrorInstanceServiceBundleMangerInstanceMismatch(); }
|
283
242
|
if(instanceReader.getInstance() != instance) { revert ErrorInstanceServiceInstanceReaderInstanceMismatch2(); }
|
284
243
|
|
285
|
-
_masterAccessManager =
|
244
|
+
_masterAccessManager = accessManagerAddress;
|
286
245
|
_masterInstanceAdmin = instanceAdminAddress;
|
287
246
|
_masterInstance = instanceAddress;
|
288
247
|
_masterInstanceReader = instanceReaderAddress;
|
289
|
-
|
248
|
+
_masterInstanceBundleSet = bundleManagerAddress;
|
290
249
|
_masterInstanceStore = instanceStoreAddress;
|
291
250
|
|
292
251
|
IInstance masterInstance = IInstance(_masterInstance);
|
@@ -314,7 +273,7 @@ contract InstanceService is
|
|
314
273
|
Instance instance = Instance(instanceInfo.objectAddress);
|
315
274
|
|
316
275
|
InstanceReader upgradedInstanceReaderClone = InstanceReader(Clones.clone(address(_masterInstanceReader)));
|
317
|
-
upgradedInstanceReaderClone.
|
276
|
+
upgradedInstanceReaderClone.initializeWithInstance(address(instance));
|
318
277
|
instance.setInstanceReader(upgradedInstanceReaderClone);
|
319
278
|
}
|
320
279
|
|
@@ -340,6 +299,25 @@ contract InstanceService is
|
|
340
299
|
}
|
341
300
|
|
342
301
|
|
302
|
+
function initializeAuthorization(
|
303
|
+
NftId instanceNftId,
|
304
|
+
IInstanceLinkedComponent component
|
305
|
+
)
|
306
|
+
external
|
307
|
+
virtual
|
308
|
+
restricted()
|
309
|
+
{
|
310
|
+
(IInstance instance, ) = _validateInstanceAndComponent(
|
311
|
+
instanceNftId,
|
312
|
+
address(component));
|
313
|
+
|
314
|
+
InstanceAdmin instanceAdmin = instance.getInstanceAdmin();
|
315
|
+
instanceAdmin.initializeComponentAuthorization(
|
316
|
+
component,
|
317
|
+
component.getAuthorization());
|
318
|
+
}
|
319
|
+
|
320
|
+
|
343
321
|
function createComponentTarget(
|
344
322
|
NftId instanceNftId,
|
345
323
|
address targetAddress,
|
@@ -360,6 +338,53 @@ contract InstanceService is
|
|
360
338
|
);
|
361
339
|
}
|
362
340
|
|
341
|
+
/// @dev create new cloned instance admin
|
342
|
+
/// function used to setup a new instance
|
343
|
+
function _createInstanceAdmin()
|
344
|
+
internal
|
345
|
+
virtual
|
346
|
+
returns (InstanceAdmin clonedInstanceAdmin)
|
347
|
+
{
|
348
|
+
// start with setting up a new OZ access manager
|
349
|
+
AccessManagerCloneable clonedAccessManager = AccessManagerCloneable(
|
350
|
+
Clones.clone(_masterAccessManager));
|
351
|
+
|
352
|
+
// set up the instance admin
|
353
|
+
clonedInstanceAdmin = InstanceAdmin(Clones.clone(_masterInstanceAdmin));
|
354
|
+
clonedAccessManager.initialize(
|
355
|
+
address(clonedInstanceAdmin)); // grant ADMIN_ROLE to instance admin
|
356
|
+
|
357
|
+
clonedInstanceAdmin.initialize(
|
358
|
+
clonedAccessManager,
|
359
|
+
InstanceAdmin(_masterInstanceAdmin).getInstanceAuthorization());
|
360
|
+
}
|
361
|
+
|
362
|
+
|
363
|
+
/// @dev create new cloned instance
|
364
|
+
/// function used to setup a new instance
|
365
|
+
function _createInstance(
|
366
|
+
InstanceAdmin instanceAdmin,
|
367
|
+
address instanceOwner
|
368
|
+
)
|
369
|
+
internal
|
370
|
+
virtual
|
371
|
+
returns (Instance clonedInstance)
|
372
|
+
{
|
373
|
+
InstanceStore clonedInstanceStore = InstanceStore(Clones.clone(address(_masterInstanceStore)));
|
374
|
+
BundleSet clonedBundleSet = BundleSet(Clones.clone(_masterInstanceBundleSet));
|
375
|
+
InstanceReader clonedInstanceReader = InstanceReader(Clones.clone(address(_masterInstanceReader)));
|
376
|
+
|
377
|
+
// clone instance
|
378
|
+
clonedInstance = Instance(Clones.clone(_masterInstance));
|
379
|
+
clonedInstance.initialize(
|
380
|
+
instanceAdmin,
|
381
|
+
clonedInstanceStore,
|
382
|
+
clonedBundleSet,
|
383
|
+
clonedInstanceReader,
|
384
|
+
getRegistry(),
|
385
|
+
instanceOwner);
|
386
|
+
}
|
387
|
+
|
363
388
|
|
364
389
|
/// all gif targets MUST be children of instanceNftId
|
365
390
|
function _createGifTarget(
|
@@ -379,12 +404,14 @@ contract InstanceService is
|
|
379
404
|
) = _validateInstanceAndComponent(instanceNftId, targetAddress);
|
380
405
|
|
381
406
|
InstanceAdmin instanceAdmin = instance.getInstanceAdmin();
|
382
|
-
|
407
|
+
|
408
|
+
// TODO refactor/implement
|
409
|
+
// instanceAdmin.createGifTarget(targetAddress, targetName);
|
410
|
+
|
383
411
|
// set proposed target config
|
384
|
-
// TODO restriction: gif targets are set only once and only here?
|
385
|
-
// assume config is a mix of gif and custom roles and no further configuration by INSTANCE_OWNER_ROLE is ever needed?
|
386
412
|
for(uint roleIdx = 0; roleIdx < roles.length; roleIdx++) {
|
387
|
-
|
413
|
+
// TODO refactor/implement
|
414
|
+
// instanceAdmin.setTargetFunctionRoleByService(targetName, selectors[roleIdx], roles[roleIdx]);
|
388
415
|
}
|
389
416
|
}
|
390
417
|
|
@@ -394,21 +421,20 @@ contract InstanceService is
|
|
394
421
|
bytes memory data
|
395
422
|
)
|
396
423
|
internal
|
397
|
-
initializer
|
398
424
|
virtual override
|
425
|
+
initializer()
|
399
426
|
{
|
400
427
|
(
|
401
|
-
address registryAddress
|
402
|
-
//address managerAddress
|
428
|
+
address registryAddress,
|
403
429
|
address authority
|
404
|
-
) = abi.decode(data, (address, address
|
430
|
+
) = abi.decode(data, (address, address));
|
405
431
|
|
406
|
-
|
432
|
+
_initializeService(registryAddress, authority, owner);
|
407
433
|
|
408
434
|
_registryService = IRegistryService(_getServiceAddress(REGISTRY()));
|
409
435
|
_stakingService = IStakingService(_getServiceAddress(STAKING()));
|
410
436
|
|
411
|
-
|
437
|
+
_registerInterface(type(IInstanceService).interfaceId);
|
412
438
|
}
|
413
439
|
|
414
440
|
|
@@ -1,13 +1,9 @@
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
2
2
|
pragma solidity ^0.8.20;
|
3
3
|
|
4
|
-
import {
|
5
|
-
import {
|
6
|
-
import {ProxyManager} from "../shared/ProxyManager.sol";
|
4
|
+
import {IVersionable} from "../upgradeability/IVersionable.sol";
|
5
|
+
import {ProxyManager} from "../upgradeability/ProxyManager.sol";
|
7
6
|
import {InstanceService} from "./InstanceService.sol";
|
8
|
-
import {Registry} from "../registry/Registry.sol";
|
9
|
-
import {RegistryService} from "../registry/RegistryService.sol";
|
10
|
-
import {REGISTRY} from "../type/ObjectType.sol";
|
11
7
|
|
12
8
|
contract InstanceServiceManager is ProxyManager {
|
13
9
|
|
@@ -16,16 +12,15 @@ contract InstanceServiceManager is ProxyManager {
|
|
16
12
|
/// @dev initializes proxy manager with instance service implementation
|
17
13
|
constructor(
|
18
14
|
address authority,
|
19
|
-
address
|
15
|
+
address registry,
|
20
16
|
bytes32 salt
|
21
17
|
)
|
22
|
-
ProxyManager(registryAddress)
|
23
18
|
{
|
24
|
-
InstanceService
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
address(
|
19
|
+
InstanceService svc = new InstanceService{salt: salt}();
|
20
|
+
bytes memory data = abi.encode(registry, authority);
|
21
|
+
IVersionable versionable = initialize(
|
22
|
+
registry,
|
23
|
+
address(svc),
|
29
24
|
data,
|
30
25
|
salt);
|
31
26
|
|
@@ -7,7 +7,7 @@ import {Amount} from "../type/Amount.sol";
|
|
7
7
|
import {Key32} from "../type/Key32.sol";
|
8
8
|
import {NftId} from "../type/NftId.sol";
|
9
9
|
import {ClaimId} from "../type/ClaimId.sol";
|
10
|
-
import {ObjectType, BUNDLE, POLICY, POOL, PRODUCT, COMPONENT, DISTRIBUTOR
|
10
|
+
import {ObjectType, BUNDLE, POLICY, POOL, PREMIUM, PRODUCT, COMPONENT, DISTRIBUTOR} from "../type/ObjectType.sol";
|
11
11
|
import {RequestId} from "../type/RequestId.sol";
|
12
12
|
import {RiskId} from "../type/RiskId.sol";
|
13
13
|
import {StateId} from "../type/StateId.sol";
|
@@ -37,11 +37,15 @@ contract InstanceStore is
|
|
37
37
|
ObjectCounter,
|
38
38
|
ObjectLifecycle
|
39
39
|
{
|
40
|
-
|
40
|
+
|
41
|
+
/// @dev This initializer needs to be called from the instance itself.
|
42
|
+
function initialize()
|
41
43
|
public
|
42
44
|
initializer()
|
43
45
|
{
|
46
|
+
address instance = msg.sender;
|
44
47
|
address authority = IInstance(instance).authority();
|
48
|
+
|
45
49
|
__AccessManaged_init(authority);
|
46
50
|
// double initialization, safe
|
47
51
|
_initializeLifecycle();
|
@@ -112,6 +116,7 @@ contract InstanceStore is
|
|
112
116
|
|
113
117
|
//--- Distributor -------------------------------------------------------//
|
114
118
|
function createDistributor(NftId distributorNftId, IDistribution.DistributorInfo memory info) external restricted() {
|
119
|
+
_registerBalanceTarget(distributorNftId);
|
115
120
|
_create(_toNftKey32(distributorNftId, DISTRIBUTOR()), abi.encode(info));
|
116
121
|
}
|
117
122
|
|
@@ -190,6 +195,16 @@ contract InstanceStore is
|
|
190
195
|
_updateState(_toNftKey32(policyNftId, POLICY()), newState);
|
191
196
|
}
|
192
197
|
|
198
|
+
|
199
|
+
//--- Premium (Policy) ----------------------------------------------//
|
200
|
+
function createPremium(NftId policyNftId, IPolicy.PremiumInfo memory premium) external restricted() {
|
201
|
+
_create(_toNftKey32(policyNftId, PREMIUM()), abi.encode(premium));
|
202
|
+
}
|
203
|
+
|
204
|
+
function updatePremiumState(NftId policyNftId, StateId newState) external restricted() {
|
205
|
+
_updateState(_toNftKey32(policyNftId, PREMIUM()), newState);
|
206
|
+
}
|
207
|
+
|
193
208
|
//--- Claim -------------------------------------------------------------//
|
194
209
|
function createClaim(NftId policyNftId, ClaimId claimId, IPolicy.ClaimInfo memory claim) external restricted() {
|
195
210
|
_create(_toClaimKey32(policyNftId, claimId), abi.encode(claim));
|
@@ -3,7 +3,7 @@ pragma solidity ^0.8.20;
|
|
3
3
|
|
4
4
|
import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";
|
5
5
|
|
6
|
-
import {COMPONENT, BUNDLE, POLICY, REQUEST, RISK, CLAIM, PAYOUT, POOL, PRODUCT, DISTRIBUTION, DISTRIBUTOR, DISTRIBUTOR_TYPE, REFERRAL} from "../../type/ObjectType.sol";
|
6
|
+
import {COMPONENT, BUNDLE, POLICY, REQUEST, RISK, CLAIM, PAYOUT, POOL, PREMIUM, PRODUCT, DISTRIBUTION, DISTRIBUTOR, DISTRIBUTOR_TYPE, REFERRAL} from "../../type/ObjectType.sol";
|
7
7
|
import {ACTIVE, PAUSED, ARCHIVED, CLOSED, APPLIED, COLLATERALIZED, REVOKED, SUBMITTED, CONFIRMED, DECLINED, EXPECTED, PAID, FULFILLED, FAILED, CANCELLED} from "../../type/StateId.sol";
|
8
8
|
import {Lifecycle} from "../../shared/Lifecycle.sol";
|
9
9
|
|
@@ -23,6 +23,7 @@ contract ObjectLifecycle is
|
|
23
23
|
_setupBundleLifecycle();
|
24
24
|
_setupComponentLifecycle();
|
25
25
|
_setupPolicyLifecycle();
|
26
|
+
_setupPremiumLifecycle();
|
26
27
|
_setupClaimLifecycle();
|
27
28
|
_setupPayoutLifecycle();
|
28
29
|
_setupRiskLifecycle();
|
@@ -54,9 +55,12 @@ contract ObjectLifecycle is
|
|
54
55
|
setStateTransition(POLICY(), APPLIED(), REVOKED());
|
55
56
|
setStateTransition(POLICY(), APPLIED(), DECLINED());
|
56
57
|
setStateTransition(POLICY(), APPLIED(), COLLATERALIZED());
|
57
|
-
setStateTransition(POLICY(),
|
58
|
-
|
59
|
-
|
58
|
+
setStateTransition(POLICY(), COLLATERALIZED(), CLOSED());
|
59
|
+
}
|
60
|
+
|
61
|
+
function _setupPremiumLifecycle() private {
|
62
|
+
setInitialState(PREMIUM(), EXPECTED());
|
63
|
+
setStateTransition(PREMIUM(), EXPECTED(), PAID());
|
60
64
|
}
|
61
65
|
|
62
66
|
function _setupClaimLifecycle() private {
|
@@ -68,6 +72,7 @@ contract ObjectLifecycle is
|
|
68
72
|
|
69
73
|
function _setupPayoutLifecycle() private {
|
70
74
|
setInitialState(PAYOUT(), EXPECTED());
|
75
|
+
// TODO: add state cancelled
|
71
76
|
setStateTransition(PAYOUT(), EXPECTED(), PAID());
|
72
77
|
}
|
73
78
|
|
@@ -10,28 +10,27 @@ import {IRegistry} from "../../registry/IRegistry.sol";
|
|
10
10
|
import {LibNftIdSet} from "../../type/NftIdSet.sol";
|
11
11
|
import {NftId} from "../../type/NftId.sol";
|
12
12
|
|
13
|
-
contract
|
13
|
+
contract ObjectSet is
|
14
14
|
Cloneable
|
15
15
|
{
|
16
16
|
|
17
|
-
event
|
17
|
+
event LogObjectSetInitialized(address instance);
|
18
18
|
|
19
|
-
error
|
19
|
+
error ErrorObjectSetNftIdInvalid(NftId instanceNftId);
|
20
20
|
|
21
21
|
mapping(NftId compnentNftId => LibNftIdSet.Set objects) internal _activeObjects;
|
22
22
|
mapping(NftId compnentNftId => LibNftIdSet.Set objects) internal _allObjects;
|
23
|
-
IInstance internal _instance; // store instance address -> more flexible, instance may not be registered during
|
23
|
+
IInstance internal _instance; // store instance address -> more flexible, instance may not be registered during ObjectSet initialization
|
24
24
|
|
25
|
-
/// @dev
|
26
|
-
function initialize(
|
27
|
-
|
28
|
-
|
25
|
+
/// @dev This initializer needs to be called from the instance itself.
|
26
|
+
function initialize()
|
27
|
+
external
|
28
|
+
initializer()
|
29
29
|
{
|
30
|
-
|
31
|
-
__Cloneable_init(
|
32
|
-
_instance = instance;
|
30
|
+
_instance = IInstance(msg.sender);
|
31
|
+
__Cloneable_init(_instance.authority(), address(_instance.getRegistry()));
|
33
32
|
|
34
|
-
emit
|
33
|
+
emit LogObjectSetInitialized(address(_instance));
|
35
34
|
}
|
36
35
|
|
37
36
|
function getInstance() external view returns (IInstance) {
|
@@ -13,7 +13,7 @@ interface IBundle {
|
|
13
13
|
NftId poolNftId;
|
14
14
|
Fee fee; // bundle fee on net premium amounts
|
15
15
|
bytes filter; // required conditions for applications to be considered for collateralization by this bundle
|
16
|
-
|
16
|
+
Timestamp activatedAt;
|
17
17
|
Timestamp expiredAt; // no new policies starting with this timestamp
|
18
18
|
Timestamp closedAt; // no open policies, locked amount = 0
|
19
19
|
}
|
@@ -21,10 +21,10 @@ interface IComponents {
|
|
21
21
|
bytes data; // will hold component type specific additional info (eg encoded pool info)
|
22
22
|
}
|
23
23
|
|
24
|
-
|
25
24
|
struct ProductInfo {
|
26
25
|
NftId distributionNftId;
|
27
26
|
NftId poolNftId;
|
27
|
+
bool isProcessingFundedClaims; // custom logic to react to pool events for funded claims
|
28
28
|
Fee productFee; // product fee on net premium
|
29
29
|
Fee processingFee; // product fee on payout amounts
|
30
30
|
Fee distributionFee; // distribution fee for sales that do not include commissions
|
@@ -36,17 +36,13 @@ interface IComponents {
|
|
36
36
|
|
37
37
|
|
38
38
|
struct PoolInfo {
|
39
|
-
|
39
|
+
Amount maxBalanceAmount; // max balance amount allowed for pool
|
40
40
|
RoleId bundleOwnerRole; // the required role for bundle owners
|
41
|
-
//
|
42
|
-
|
43
|
-
bool isInterceptingBundleTransfers; // intercepts nft transfers for bundles
|
41
|
+
bool isInterceptingBundleTransfers; // custom logic for bundle nft transfers
|
42
|
+
bool isProcessingConfirmedClaims; // custom logic for claims confirmation
|
44
43
|
bool isExternallyManaged; // funding bundles is restricted to book keeping, actual funds may be provided as needed to support payouts
|
45
44
|
bool isVerifyingApplications; // underwriting requires the pool component checks/confirms the applications
|
46
45
|
UFixed collateralizationLevel; // factor to calculate collateral for sum insurance (default 100%)
|
47
46
|
UFixed retentionLevel; // amount of collateral held in pool (default 100%)
|
48
|
-
Fee poolFee; // pool fee on net premium
|
49
|
-
Fee stakingFee; // pool fee on staked capital from investor
|
50
|
-
Fee performanceFee; // pool fee on profits from capital investors
|
51
47
|
}
|
52
48
|
}
|