@etherisc/gif-next 0.0.2-abde86b-349 → 0.0.2-ac4bee9-682
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/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +1 -1
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +96 -37
- 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 -13
- 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 +139 -157
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +1 -1
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +77 -17
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +102 -96
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +152 -86
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +104 -60
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +92 -81
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +29 -0
- 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 +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +151 -132
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +133 -127
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +249 -188
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +530 -229
- 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 +78 -40
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +148 -118
- 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 +113 -135
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +91 -133
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +72 -40
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +172 -111
- 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 +121 -139
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +1 -1
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +77 -17
- 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 +87 -76
- 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 +97 -91
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +102 -47
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +72 -36
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +97 -119
- 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 +205 -103
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +108 -60
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +72 -15
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +87 -115
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +213 -195
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
- package/artifacts/contracts/pool/Pool.sol/Pool.json +97 -130
- package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolService.sol/PoolService.json +294 -255
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +83 -47
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +82 -32
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +69 -33
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +142 -92
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +77 -17
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +175 -82
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +102 -58
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +29 -0
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +56 -0
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +65 -1
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +80 -51
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +128 -73
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +1 -1
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.json +29 -0
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +154 -61
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +87 -47
- package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
- package/artifacts/contracts/product/PricingService.sol/PricingService.json +165 -107
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +85 -45
- package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
- package/artifacts/contracts/product/Product.sol/Product.json +138 -88
- package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +1 -1
- package/artifacts/contracts/product/RiskService.sol/RiskService.json +76 -26
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +66 -30
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +2 -2
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +72 -15
- 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 +116 -51
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +206 -165
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +161 -61
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +65 -29
- 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 +123 -225
- 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 +76 -66
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +425 -155
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +103 -63
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +42 -0
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +1 -1
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +21 -2
- package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponent.sol/IComponent.json +66 -51
- 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 +87 -76
- 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/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/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +97 -91
- 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 +18 -2
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +2 -2
- package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
- package/artifacts/contracts/shared/Registerable.sol/Registerable.json +66 -8
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -2
- package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
- package/artifacts/contracts/shared/Service.sol/Service.json +42 -0
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +388 -35
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +4 -0
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +395 -0
- package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +88 -24
- package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
- package/artifacts/contracts/staking/IStaking.sol/IStaking.json +84 -87
- 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 +2 -2
- package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
- package/artifacts/contracts/staking/Staking.sol/Staking.json +154 -166
- 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 +81 -51
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +7 -12
- package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingService.sol/StakingService.json +82 -53
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +69 -33
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +144 -103
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +2 -2
- package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
- package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
- package/artifacts/contracts/type/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 +2 -2
- package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
- package/artifacts/contracts/type/Referral.sol/ReferralLib.json +2 -2
- package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +2 -2
- package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +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/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/UFixed.sol/MathLib.dbg.json +1 -1
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
- package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
- package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +44 -12
- 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 +65 -61
- package/contracts/authorization/Authorization.sol +106 -38
- package/contracts/authorization/IAccess.sol +1 -0
- package/contracts/authorization/IAccessAdmin.sol +4 -2
- 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 +6 -16
- package/contracts/distribution/DistributionService.sol +55 -36
- package/contracts/distribution/IDistributionComponent.sol +1 -1
- 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 +12 -4
- package/contracts/examples/unpermissioned/SimpleOracle.sol +4 -4
- package/contracts/examples/unpermissioned/SimplePool.sol +38 -6
- package/contracts/examples/unpermissioned/SimpleProduct.sol +17 -23
- package/contracts/instance/IInstance.sol +4 -1
- package/contracts/instance/IInstanceService.sol +2 -23
- package/contracts/instance/Instance.sol +20 -17
- package/contracts/instance/InstanceAdmin.sol +17 -28
- package/contracts/instance/InstanceAuthorizationV3.sol +9 -19
- package/contracts/instance/InstanceReader.sol +10 -34
- package/contracts/instance/InstanceService.sol +29 -80
- package/contracts/instance/module/IComponents.sol +7 -5
- package/contracts/instance/module/IPolicy.sol +2 -1
- package/contracts/oracle/BasicOracle.sol +0 -1
- package/contracts/oracle/IOracleService.sol +2 -1
- package/contracts/oracle/Oracle.sol +4 -15
- package/contracts/oracle/OracleService.sol +47 -36
- package/contracts/pool/BasicPool.sol +33 -24
- package/contracts/pool/BasicPoolAuthorization.sol +12 -2
- package/contracts/pool/BundleService.sol +88 -41
- package/contracts/pool/IBundleService.sol +11 -5
- package/contracts/pool/IPoolComponent.sol +1 -7
- package/contracts/pool/IPoolService.sol +25 -24
- package/contracts/pool/Pool.sol +118 -126
- package/contracts/pool/PoolService.sol +203 -131
- package/contracts/product/ApplicationService.sol +9 -1
- package/contracts/product/BasicProduct.sol +8 -12
- package/contracts/product/BasicProductAuthorization.sol +0 -1
- package/contracts/product/ClaimService.sol +99 -58
- package/contracts/product/IClaimService.sol +2 -1
- package/contracts/product/IPolicyService.sol +6 -1
- package/contracts/product/IPricingService.sol +9 -9
- package/contracts/product/IProductComponent.sol +6 -0
- package/contracts/product/PolicyService.sol +76 -27
- package/contracts/product/PricingService.sol +8 -8
- package/contracts/product/Product.sol +56 -56
- package/contracts/registry/ChainNft.sol +6 -9
- package/contracts/registry/IRegistry.sol +6 -3
- package/contracts/registry/IRegistryService.sol +6 -4
- package/contracts/registry/ITransferInterceptor.sol +1 -2
- package/contracts/registry/Registry.sol +22 -4
- package/contracts/registry/RegistryAdmin.sol +29 -31
- package/contracts/registry/RegistryService.sol +37 -55
- package/contracts/registry/ReleaseLifecycle.sol +6 -3
- package/contracts/registry/ReleaseRegistry.sol +202 -208
- package/contracts/registry/ServiceAuthorizationV3.sol +24 -20
- package/contracts/shared/Component.sol +58 -97
- package/contracts/shared/ComponentService.sol +285 -147
- package/contracts/shared/ComponentVerifyingService.sol +27 -15
- package/contracts/shared/ContractLib.sol +17 -1
- package/contracts/shared/IComponent.sol +10 -13
- package/contracts/shared/IComponentService.sol +38 -16
- package/contracts/shared/IInstanceLinkedComponent.sol +3 -11
- package/contracts/shared/ILifecycle.sol +3 -1
- package/contracts/shared/INftOwnable.sol +2 -0
- package/contracts/shared/IRegisterable.sol +11 -0
- package/contracts/shared/InstanceLinkedComponent.sol +66 -32
- package/contracts/shared/KeyValueStore.sol +1 -1
- package/contracts/shared/Lifecycle.sol +15 -4
- package/contracts/shared/NftOwnable.sol +23 -3
- package/contracts/shared/Registerable.sol +15 -7
- package/contracts/shared/RegistryLinked.sol +6 -12
- package/contracts/shared/Service.sol +4 -7
- package/contracts/shared/TokenHandler.sol +324 -66
- package/contracts/shared/TokenHandlerDeployerLib.sol +10 -2
- package/contracts/staking/IStaking.sol +9 -4
- package/contracts/staking/IStakingService.sol +0 -3
- package/contracts/staking/Staking.sol +31 -24
- package/contracts/staking/StakingReader.sol +12 -5
- package/contracts/staking/StakingService.sol +69 -23
- 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 +1 -0
- package/contracts/type/RiskId.sol +16 -2
- package/contracts/type/RoleId.sol +0 -12
- package/contracts/type/StateId.sol +14 -1
- package/contracts/upgradeability/ProxyManager.sol +2 -1
- 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/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/shared/InitializableCustom.sol +0 -177
@@ -12,7 +12,7 @@ import {NftId} from "../type/NftId.sol";
|
|
12
12
|
import {RoleId} from "../type/RoleId.sol";
|
13
13
|
import {SecondsLib} from "../type/Seconds.sol";
|
14
14
|
import {UFixed, UFixedLib} from "../type/UFixed.sol";
|
15
|
-
import {ADMIN_ROLE
|
15
|
+
import {ADMIN_ROLE} from "../type/RoleId.sol";
|
16
16
|
import {ObjectType, INSTANCE, BUNDLE, APPLICATION, CLAIM, DISTRIBUTION, INSTANCE, POLICY, POOL, PRODUCT, REGISTRY, STAKING} from "../type/ObjectType.sol";
|
17
17
|
|
18
18
|
import {Service} from "../shared/Service.sol";
|
@@ -29,7 +29,6 @@ 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";
|
33
32
|
import {IInstance} from "./IInstance.sol";
|
34
33
|
import {InstanceAdmin} from "./InstanceAdmin.sol";
|
35
34
|
import {IInstanceService} from "./IInstanceService.sol";
|
@@ -70,7 +69,7 @@ contract InstanceService is
|
|
70
69
|
revert ErrorInstanceServiceNotInstance(instanceAddress, objectType);
|
71
70
|
}
|
72
71
|
|
73
|
-
VersionPart instanceVersion = IInstance(instanceAddress).
|
72
|
+
VersionPart instanceVersion = IInstance(instanceAddress).getRelease();
|
74
73
|
if (instanceVersion != getVersion().toMajorPart()) {
|
75
74
|
revert ErrorInstanceServiceInstanceVersionMismatch(instanceAddress, instanceVersion);
|
76
75
|
}
|
@@ -97,8 +96,8 @@ contract InstanceService is
|
|
97
96
|
function createInstance()
|
98
97
|
external
|
99
98
|
returns (
|
100
|
-
|
101
|
-
NftId
|
99
|
+
IInstance instance,
|
100
|
+
NftId instanceNftId
|
102
101
|
)
|
103
102
|
{
|
104
103
|
// tx sender will become instance owner
|
@@ -106,24 +105,24 @@ contract InstanceService is
|
|
106
105
|
|
107
106
|
// create instance admin and instance
|
108
107
|
InstanceAdmin instanceAdmin = _createInstanceAdmin();
|
109
|
-
|
108
|
+
instance = _createInstance(instanceAdmin, instanceOwner);
|
110
109
|
|
111
110
|
// register cloned instance with registry
|
112
|
-
|
113
|
-
|
111
|
+
instanceNftId = _registryService.registerInstance(
|
112
|
+
instance, instanceOwner).nftId;
|
114
113
|
|
115
114
|
// register cloned instance as staking target
|
116
115
|
_stakingService.createInstanceTarget(
|
117
|
-
|
116
|
+
instanceNftId,
|
118
117
|
TargetManagerLib.getDefaultLockingPeriod(),
|
119
118
|
TargetManagerLib.getDefaultRewardRate());
|
120
119
|
|
121
120
|
// MUST be set after instance is set up and registered
|
122
|
-
instanceAdmin.initializeInstanceAuthorization(address(
|
121
|
+
instanceAdmin.initializeInstanceAuthorization(address(instance));
|
123
122
|
|
124
123
|
emit LogInstanceCloned(
|
125
|
-
|
126
|
-
address(
|
124
|
+
instanceNftId,
|
125
|
+
address(instance));
|
127
126
|
}
|
128
127
|
|
129
128
|
|
@@ -267,6 +266,7 @@ contract InstanceService is
|
|
267
266
|
function upgradeInstanceReader(NftId instanceNftId)
|
268
267
|
external
|
269
268
|
onlyInstanceOwner(instanceNftId)
|
269
|
+
onlyNftOfType(instanceNftId, INSTANCE())
|
270
270
|
{
|
271
271
|
IRegistry registry = getRegistry();
|
272
272
|
IRegistry.ObjectInfo memory instanceInfo = registry.getObjectInfo(instanceNftId);
|
@@ -277,67 +277,6 @@ contract InstanceService is
|
|
277
277
|
instance.setInstanceReader(upgradedInstanceReaderClone);
|
278
278
|
}
|
279
279
|
|
280
|
-
|
281
|
-
function createGifTarget(
|
282
|
-
NftId instanceNftId,
|
283
|
-
address targetAddress,
|
284
|
-
string memory targetName,
|
285
|
-
bytes4[][] memory selectors,
|
286
|
-
RoleId[] memory roles
|
287
|
-
)
|
288
|
-
external
|
289
|
-
virtual
|
290
|
-
restricted()
|
291
|
-
{
|
292
|
-
_createGifTarget(
|
293
|
-
instanceNftId,
|
294
|
-
targetAddress,
|
295
|
-
targetName,
|
296
|
-
roles,
|
297
|
-
selectors
|
298
|
-
);
|
299
|
-
}
|
300
|
-
|
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
|
-
|
321
|
-
function createComponentTarget(
|
322
|
-
NftId instanceNftId,
|
323
|
-
address targetAddress,
|
324
|
-
string memory targetName,
|
325
|
-
bytes4[][] memory selectors,
|
326
|
-
RoleId[] memory roles
|
327
|
-
)
|
328
|
-
external
|
329
|
-
virtual
|
330
|
-
restricted()
|
331
|
-
{
|
332
|
-
_createGifTarget(
|
333
|
-
instanceNftId,
|
334
|
-
targetAddress,
|
335
|
-
targetName,
|
336
|
-
roles,
|
337
|
-
selectors
|
338
|
-
);
|
339
|
-
}
|
340
|
-
|
341
280
|
/// @dev create new cloned instance admin
|
342
281
|
/// function used to setup a new instance
|
343
282
|
function _createInstanceAdmin()
|
@@ -354,9 +293,11 @@ contract InstanceService is
|
|
354
293
|
clonedAccessManager.initialize(
|
355
294
|
address(clonedInstanceAdmin)); // grant ADMIN_ROLE to instance admin
|
356
295
|
|
296
|
+
address authorization = address(
|
297
|
+
InstanceAdmin(_masterInstanceAdmin).getInstanceAuthorization());
|
357
298
|
clonedInstanceAdmin.initialize(
|
358
299
|
clonedAccessManager,
|
359
|
-
|
300
|
+
authorization);
|
360
301
|
}
|
361
302
|
|
362
303
|
|
@@ -368,14 +309,14 @@ contract InstanceService is
|
|
368
309
|
)
|
369
310
|
internal
|
370
311
|
virtual
|
371
|
-
returns (
|
312
|
+
returns (IInstance)
|
372
313
|
{
|
373
314
|
InstanceStore clonedInstanceStore = InstanceStore(Clones.clone(address(_masterInstanceStore)));
|
374
315
|
BundleSet clonedBundleSet = BundleSet(Clones.clone(_masterInstanceBundleSet));
|
375
316
|
InstanceReader clonedInstanceReader = InstanceReader(Clones.clone(address(_masterInstanceReader)));
|
376
317
|
|
377
318
|
// clone instance
|
378
|
-
clonedInstance = Instance(Clones.clone(_masterInstance));
|
319
|
+
Instance clonedInstance = Instance(Clones.clone(_masterInstance));
|
379
320
|
clonedInstance.initialize(
|
380
321
|
instanceAdmin,
|
381
322
|
clonedInstanceStore,
|
@@ -383,6 +324,7 @@ contract InstanceService is
|
|
383
324
|
clonedInstanceReader,
|
384
325
|
getRegistry(),
|
385
326
|
instanceOwner);
|
327
|
+
return clonedInstance;
|
386
328
|
}
|
387
329
|
|
388
330
|
|
@@ -449,13 +391,20 @@ contract InstanceService is
|
|
449
391
|
revert ErrorInstanceServiceNotInstanceNftId(instanceNftId);
|
450
392
|
}
|
451
393
|
|
452
|
-
|
453
|
-
|
454
|
-
|
394
|
+
if (registry.getNftIdForAddress(componentAddress).gtz()) {
|
395
|
+
IRegistry.ObjectInfo memory componentInfo = registry.getObjectInfo(componentAddress);
|
396
|
+
|
397
|
+
if(componentInfo.parentNftId != instanceNftId) {
|
398
|
+
revert ErrorInstanceServiceInstanceComponentMismatch(instanceNftId, componentInfo.nftId);
|
399
|
+
}
|
400
|
+
|
401
|
+
componentNftId = componentInfo.nftId;
|
402
|
+
} else {
|
403
|
+
|
455
404
|
}
|
456
405
|
|
457
406
|
instance = Instance(instanceInfo.objectAddress);
|
458
|
-
|
407
|
+
|
459
408
|
}
|
460
409
|
|
461
410
|
// From IService
|
@@ -14,17 +14,20 @@ interface IComponents {
|
|
14
14
|
|
15
15
|
struct ComponentInfo {
|
16
16
|
string name; // component name (needs to be unique per instance)
|
17
|
-
NftId productNftId;
|
18
17
|
IERC20Metadata token;
|
19
18
|
TokenHandler tokenHandler;
|
20
|
-
address wallet;
|
21
19
|
bytes data; // will hold component type specific additional info (eg encoded pool info)
|
22
20
|
}
|
23
21
|
|
24
22
|
struct ProductInfo {
|
25
|
-
NftId distributionNftId;
|
26
|
-
NftId poolNftId;
|
27
23
|
bool isProcessingFundedClaims; // custom logic to react to pool events for funded claims
|
24
|
+
bool isInterceptingPolicyTransfers; // custom logic for policy nft transfers
|
25
|
+
bool hasDistribution; // flag to indicate if distribution is enabled
|
26
|
+
uint8 expectedNumberOfOracles; // expected number of oracles
|
27
|
+
uint8 numberOfOracles; // actual number of oracles
|
28
|
+
NftId poolNftId; // mandatory
|
29
|
+
NftId distributionNftId; // 0..1 (optional)
|
30
|
+
NftId [] oracleNftId; // 0..n (optional)
|
28
31
|
Fee productFee; // product fee on net premium
|
29
32
|
Fee processingFee; // product fee on payout amounts
|
30
33
|
Fee distributionFee; // distribution fee for sales that do not include commissions
|
@@ -37,7 +40,6 @@ interface IComponents {
|
|
37
40
|
|
38
41
|
struct PoolInfo {
|
39
42
|
Amount maxBalanceAmount; // max balance amount allowed for pool
|
40
|
-
RoleId bundleOwnerRole; // the required role for bundle owners
|
41
43
|
bool isInterceptingBundleTransfers; // custom logic for bundle nft transfers
|
42
44
|
bool isProcessingConfirmedClaims; // custom logic for claims confirmation
|
43
45
|
bool isExternallyManaged; // funding bundles is restricted to book keeping, actual funds may be provided as needed to support payouts
|
@@ -43,6 +43,7 @@ interface IPolicy {
|
|
43
43
|
|
44
44
|
/// @dev policy data for the full policy lifecycle
|
45
45
|
struct PolicyInfo {
|
46
|
+
// application data, no changes after applying for a policy
|
46
47
|
NftId productNftId;
|
47
48
|
NftId bundleNftId;
|
48
49
|
ReferralId referralId;
|
@@ -50,8 +51,8 @@ interface IPolicy {
|
|
50
51
|
Amount sumInsuredAmount;
|
51
52
|
Amount premiumAmount; // expected premium at application time
|
52
53
|
Seconds lifetime;
|
53
|
-
// policy application data, no changes after applying for a policy
|
54
54
|
bytes applicationData;
|
55
|
+
// policy data that may change during the lifecycle
|
55
56
|
bytes processData;
|
56
57
|
uint16 claimsCount;
|
57
58
|
uint16 openClaimsCount;
|
@@ -3,6 +3,7 @@ pragma solidity ^0.8.20;
|
|
3
3
|
|
4
4
|
import {IService} from "../shared/IService.sol";
|
5
5
|
import {NftId} from "../type/NftId.sol";
|
6
|
+
import {ObjectType} from "../type/ObjectType.sol";
|
6
7
|
import {RequestId} from "../type/RequestId.sol";
|
7
8
|
import {StateId} from "../type/StateId.sol";
|
8
9
|
import {Timestamp} from "../type/Timestamp.sol";
|
@@ -17,7 +18,7 @@ interface IOracleService is IService {
|
|
17
18
|
event LogOracleServiceRequestCancelled(RequestId requestId, NftId requesterNftId);
|
18
19
|
|
19
20
|
// create request
|
20
|
-
error
|
21
|
+
error ErrorOracleServiceProductMismatch(ObjectType callerObjectType, NftId productNft, NftId oracleParentNftId);
|
21
22
|
error ErrorOracleServiceExpiryInThePast(Timestamp blockTimestamp, Timestamp expiryAt);
|
22
23
|
error ErrorOracleServiceCallbackMethodNameEmpty();
|
23
24
|
|
@@ -2,7 +2,7 @@
|
|
2
2
|
pragma solidity ^0.8.20;
|
3
3
|
|
4
4
|
import {Amount} from "../type/Amount.sol";
|
5
|
-
import {COMPONENT, ORACLE} from "../type/ObjectType.sol";
|
5
|
+
import {COMPONENT, PRODUCT, ORACLE} from "../type/ObjectType.sol";
|
6
6
|
import {IAuthorization} from "../authorization/IAuthorization.sol";
|
7
7
|
import {IComponentService} from "../shared/IComponentService.sol";
|
8
8
|
import {IInstanceLinkedComponent} from "../shared/IInstanceLinkedComponent.sol";
|
@@ -27,15 +27,6 @@ abstract contract Oracle is
|
|
27
27
|
}
|
28
28
|
|
29
29
|
|
30
|
-
function register()
|
31
|
-
external
|
32
|
-
virtual
|
33
|
-
onlyOwner()
|
34
|
-
{
|
35
|
-
_getOracleStorage()._componentService.registerOracle();
|
36
|
-
}
|
37
|
-
|
38
|
-
|
39
30
|
function request(
|
40
31
|
RequestId requestId,
|
41
32
|
NftId requesterId,
|
@@ -86,12 +77,11 @@ abstract contract Oracle is
|
|
86
77
|
|
87
78
|
function _initializeOracle(
|
88
79
|
address registry,
|
89
|
-
NftId
|
80
|
+
NftId productNftId,
|
90
81
|
IAuthorization authorization,
|
91
82
|
address initialOwner,
|
92
83
|
string memory name,
|
93
84
|
address token,
|
94
|
-
bytes memory registryData, // writeonly data that will saved in the object info record of the registry
|
95
85
|
bytes memory componentData // component specifidc data
|
96
86
|
)
|
97
87
|
internal
|
@@ -100,19 +90,18 @@ abstract contract Oracle is
|
|
100
90
|
{
|
101
91
|
_initializeInstanceLinkedComponent(
|
102
92
|
registry,
|
103
|
-
|
93
|
+
productNftId,
|
104
94
|
name,
|
105
95
|
token,
|
106
96
|
ORACLE(),
|
107
97
|
authorization,
|
108
98
|
true,
|
109
99
|
initialOwner,
|
110
|
-
registryData,
|
111
100
|
componentData);
|
112
101
|
|
113
102
|
OracleStorage storage $ = _getOracleStorage();
|
114
|
-
$._oracleService = IOracleService(_getServiceAddress(ORACLE()));
|
115
103
|
$._componentService = IComponentService(_getServiceAddress(COMPONENT()));
|
104
|
+
$._oracleService = IOracleService(_getServiceAddress(ORACLE()));
|
116
105
|
|
117
106
|
_registerInterface(type(IOracleComponent).interfaceId);
|
118
107
|
}
|
@@ -11,7 +11,7 @@ import {IOracleComponent} from "./IOracleComponent.sol";
|
|
11
11
|
import {IOracleService} from "./IOracleService.sol";
|
12
12
|
import {IRegistry} from "../registry/IRegistry.sol";
|
13
13
|
import {NftId} from "../type/NftId.sol";
|
14
|
-
import {ObjectType, COMPONENT, ORACLE,
|
14
|
+
import {ObjectType, COMPONENT, ORACLE, PRODUCT} from "../type/ObjectType.sol";
|
15
15
|
import {RequestId} from "../type/RequestId.sol";
|
16
16
|
import {StateId, ACTIVE, KEEP_STATE, FULFILLED, FAILED, CANCELLED} from "../type/StateId.sol";
|
17
17
|
import {Timestamp, TimestampLib} from "../type/Timestamp.sol";
|
@@ -48,6 +48,7 @@ contract OracleService is
|
|
48
48
|
external
|
49
49
|
virtual
|
50
50
|
// restricted() // add authz
|
51
|
+
onlyNftOfType(oracleNftId, ORACLE())
|
51
52
|
returns (
|
52
53
|
RequestId requestId
|
53
54
|
)
|
@@ -66,36 +67,45 @@ contract OracleService is
|
|
66
67
|
ORACLE(),
|
67
68
|
true); // only active
|
68
69
|
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
70
|
+
{
|
71
|
+
// check that requester and oracle share same product cluster
|
72
|
+
if (componentInfo.objectType == PRODUCT()) {
|
73
|
+
if (oracleInfo.parentNftId != componentInfo.nftId) {
|
74
|
+
revert ErrorOracleServiceProductMismatch(componentInfo.objectType, componentInfo.nftId, oracleInfo.parentNftId);
|
75
|
+
}
|
76
|
+
} else {
|
77
|
+
if (oracleInfo.parentNftId != componentInfo.parentNftId) {
|
78
|
+
revert ErrorOracleServiceProductMismatch(componentInfo.objectType, componentInfo.parentNftId, oracleInfo.parentNftId);
|
79
|
+
}
|
80
|
+
}
|
74
81
|
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
82
|
+
// check expiriyAt >= now
|
83
|
+
if (expiryAt < TimestampLib.blockTimestamp()) {
|
84
|
+
revert ErrorOracleServiceExpiryInThePast(TimestampLib.blockTimestamp(), expiryAt);
|
85
|
+
}
|
79
86
|
|
80
|
-
|
81
|
-
|
82
|
-
|
87
|
+
// check callbackMethodName.length > 0
|
88
|
+
if (bytes(callbackMethodName).length == 0) {
|
89
|
+
revert ErrorOracleServiceCallbackMethodNameEmpty();
|
90
|
+
}
|
83
91
|
}
|
84
92
|
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
93
|
+
{
|
94
|
+
// create request info
|
95
|
+
IOracle.RequestInfo memory request = IOracle.RequestInfo({
|
96
|
+
requesterNftId: componentNftId,
|
97
|
+
callbackMethodName: callbackMethodName,
|
98
|
+
oracleNftId: oracleNftId,
|
99
|
+
requestData: requestData,
|
100
|
+
responseData: "",
|
101
|
+
respondedAt: TimestampLib.zero(),
|
102
|
+
expiredAt: expiryAt,
|
103
|
+
isCancelled: false
|
104
|
+
});
|
105
|
+
|
106
|
+
// store request with instance
|
107
|
+
requestId = instance.getInstanceStore().createRequest(request);
|
108
|
+
}
|
99
109
|
|
100
110
|
// call oracle component
|
101
111
|
IOracleComponent(oracleInfo.objectAddress).request(
|
@@ -264,15 +274,16 @@ contract OracleService is
|
|
264
274
|
}
|
265
275
|
|
266
276
|
|
267
|
-
|
268
|
-
|
269
|
-
|
270
|
-
|
271
|
-
|
272
|
-
|
273
|
-
|
274
|
-
|
275
|
-
|
277
|
+
// TODO cleanup
|
278
|
+
// function _getInstanceForComponent(NftId componentNftId)
|
279
|
+
// internal
|
280
|
+
// view
|
281
|
+
// returns(IInstance instance)
|
282
|
+
// {
|
283
|
+
// NftId instanceNftId = getRegistry().getObjectInfo(componentNftId).parentNftId;
|
284
|
+
// address instanceAddress = getRegistry().getObjectAddress(instanceNftId);
|
285
|
+
// return IInstance(instanceAddress);
|
286
|
+
// }
|
276
287
|
|
277
288
|
|
278
289
|
function _getDomain() internal pure override returns(ObjectType) {
|
@@ -1,22 +1,15 @@
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
2
2
|
pragma solidity ^0.8.20;
|
3
3
|
|
4
|
-
import {Amount
|
5
|
-
import {
|
6
|
-
import {Fee, FeeLib} from "../type/Fee.sol";
|
4
|
+
import {Amount} from "../type/Amount.sol";
|
5
|
+
import {Fee} from "../type/Fee.sol";
|
7
6
|
import {IAuthorization} from "../authorization/IAuthorization.sol";
|
8
|
-
import {IBundleService} from "./IBundleService.sol";
|
9
|
-
import {IPoolComponent} from "./IPoolComponent.sol";
|
10
|
-
import {IPoolService} from "./IPoolService.sol";
|
11
7
|
import {IComponents} from "../instance/module/IComponents.sol";
|
12
|
-
import {
|
13
|
-
import {
|
14
|
-
import {
|
15
|
-
import {RoleId, PUBLIC_ROLE} from "../type/RoleId.sol";
|
8
|
+
import {NftId} from "../type/NftId.sol";
|
9
|
+
import {BUNDLE} from "../type/ObjectType.sol";
|
10
|
+
import {RoleId} from "../type/RoleId.sol";
|
16
11
|
import {Seconds} from "../type/Seconds.sol";
|
17
12
|
import {Timestamp} from "../type/Timestamp.sol";
|
18
|
-
import {TokenHandler} from "../shared/TokenHandler.sol";
|
19
|
-
import {UFixed, UFixedLib} from "../type/UFixed.sol";
|
20
13
|
|
21
14
|
import {Pool} from "./Pool.sol";
|
22
15
|
|
@@ -26,10 +19,11 @@ abstract contract BasicPool is
|
|
26
19
|
|
27
20
|
function _initializeBasicPool(
|
28
21
|
address registry,
|
29
|
-
NftId
|
30
|
-
IAuthorization authorization,
|
31
|
-
address token,
|
22
|
+
NftId productNftId,
|
32
23
|
string memory name,
|
24
|
+
address token,
|
25
|
+
IComponents.PoolInfo memory poolInfo,
|
26
|
+
IAuthorization authorization,
|
33
27
|
address initialOwner
|
34
28
|
)
|
35
29
|
internal
|
@@ -38,13 +32,12 @@ abstract contract BasicPool is
|
|
38
32
|
{
|
39
33
|
_initializePool(
|
40
34
|
registry,
|
41
|
-
|
35
|
+
productNftId,
|
42
36
|
name,
|
43
37
|
token,
|
38
|
+
poolInfo,
|
44
39
|
authorization,
|
45
|
-
false, // isInterceptingNftTransfers,
|
46
40
|
initialOwner,
|
47
|
-
"", // registryData
|
48
41
|
""); // componentData
|
49
42
|
}
|
50
43
|
|
@@ -56,6 +49,7 @@ abstract contract BasicPool is
|
|
56
49
|
virtual
|
57
50
|
restricted()
|
58
51
|
onlyBundleOwner(bundleNftId)
|
52
|
+
onlyNftOfType(bundleNftId, BUNDLE())
|
59
53
|
{
|
60
54
|
_stake(bundleNftId, amount);
|
61
55
|
}
|
@@ -69,6 +63,7 @@ abstract contract BasicPool is
|
|
69
63
|
virtual
|
70
64
|
restricted()
|
71
65
|
onlyBundleOwner(bundleNftId)
|
66
|
+
onlyNftOfType(bundleNftId, BUNDLE())
|
72
67
|
{
|
73
68
|
_unstake(bundleNftId, amount);
|
74
69
|
}
|
@@ -82,6 +77,7 @@ abstract contract BasicPool is
|
|
82
77
|
virtual
|
83
78
|
restricted()
|
84
79
|
onlyBundleOwner(bundleNftId)
|
80
|
+
onlyNftOfType(bundleNftId, BUNDLE())
|
85
81
|
returns(Timestamp newExpiredAt)
|
86
82
|
{
|
87
83
|
return _extend(bundleNftId, lifetimeExtension);
|
@@ -93,6 +89,7 @@ abstract contract BasicPool is
|
|
93
89
|
virtual
|
94
90
|
restricted()
|
95
91
|
onlyBundleOwner(bundleNftId)
|
92
|
+
onlyNftOfType(bundleNftId, BUNDLE())
|
96
93
|
{
|
97
94
|
_lockBundle(bundleNftId);
|
98
95
|
}
|
@@ -103,6 +100,7 @@ abstract contract BasicPool is
|
|
103
100
|
virtual
|
104
101
|
restricted()
|
105
102
|
onlyBundleOwner(bundleNftId)
|
103
|
+
onlyNftOfType(bundleNftId, BUNDLE())
|
106
104
|
{
|
107
105
|
_unlockBundle(bundleNftId);
|
108
106
|
}
|
@@ -113,11 +111,15 @@ abstract contract BasicPool is
|
|
113
111
|
virtual
|
114
112
|
restricted()
|
115
113
|
onlyBundleOwner(bundleNftId)
|
114
|
+
onlyNftOfType(bundleNftId, BUNDLE())
|
116
115
|
{
|
117
116
|
_closeBundle(bundleNftId);
|
118
117
|
}
|
119
118
|
|
120
119
|
|
120
|
+
/// @dev Updates the bundle feeds to the specified values.
|
121
|
+
/// @param bundleNftId the bundle Nft Id
|
122
|
+
/// @param fee the new fee values
|
121
123
|
function setBundleFee(
|
122
124
|
NftId bundleNftId,
|
123
125
|
Fee memory fee
|
@@ -126,28 +128,35 @@ abstract contract BasicPool is
|
|
126
128
|
virtual
|
127
129
|
restricted()
|
128
130
|
onlyBundleOwner(bundleNftId)
|
131
|
+
onlyNftOfType(bundleNftId, BUNDLE())
|
129
132
|
{
|
130
133
|
_setBundleFee(bundleNftId, fee);
|
131
134
|
}
|
132
135
|
|
133
136
|
|
134
|
-
|
135
|
-
|
137
|
+
/// @dev Withdraw bundle feeds for the given bundle.
|
138
|
+
/// @param bundleNftId the bundle Nft Id
|
139
|
+
/// @param amount the amount to withdraw. If set to AMOUNT_MAX, the full commission available is withdrawn
|
140
|
+
/// @return withdrawnAmount the effective withdrawn amount
|
141
|
+
function withdrawBundleFees(NftId bundleNftId, Amount amount)
|
142
|
+
external
|
136
143
|
virtual
|
137
144
|
restricted()
|
138
|
-
|
145
|
+
onlyBundleOwner(bundleNftId)
|
146
|
+
onlyNftOfType(bundleNftId, BUNDLE())
|
147
|
+
returns (Amount withdrawnAmount)
|
139
148
|
{
|
140
|
-
|
149
|
+
return _withdrawBundleFees(bundleNftId, amount);
|
141
150
|
}
|
142
151
|
|
143
152
|
|
144
|
-
function
|
153
|
+
function setMaxBalanceAmount(Amount maxBalanceAmount)
|
145
154
|
public
|
146
155
|
virtual
|
147
156
|
restricted()
|
148
157
|
onlyOwner()
|
149
158
|
{
|
150
|
-
|
159
|
+
_setMaxBalanceAmount(maxBalanceAmount);
|
151
160
|
}
|
152
161
|
|
153
162
|
|
@@ -19,6 +19,13 @@ contract BasicPoolAuthorization
|
|
19
19
|
Authorization(poolName)
|
20
20
|
{}
|
21
21
|
|
22
|
+
function _setupServiceTargets()
|
23
|
+
internal
|
24
|
+
virtual override
|
25
|
+
{
|
26
|
+
_addServiceTargetWithRole(POOL());
|
27
|
+
}
|
28
|
+
|
22
29
|
function _setupTargets()
|
23
30
|
internal
|
24
31
|
virtual override
|
@@ -44,7 +51,6 @@ contract BasicPoolAuthorization
|
|
44
51
|
_authorize(functions, BasicPool.setBundleFee.selector, "setBundleFee");
|
45
52
|
|
46
53
|
_authorize(functions, BasicPool.setMaxBalanceAmount.selector, "setMaxBalanceAmount");
|
47
|
-
_authorize(functions, BasicPool.setBundleOwnerRole.selector, "setBundleOwnerRole");
|
48
54
|
_authorize(functions, BasicPool.setFees.selector, "setFees");
|
49
55
|
_authorize(functions, BasicPool.stake.selector, "stake");
|
50
56
|
_authorize(functions, BasicPool.unstake.selector, "unstake");
|
@@ -52,7 +58,11 @@ contract BasicPoolAuthorization
|
|
52
58
|
|
53
59
|
_authorize(functions, IInstanceLinkedComponent.withdrawFees.selector, "withdrawFees");
|
54
60
|
|
55
|
-
_authorize(functions,
|
61
|
+
_authorize(functions, BasicPool.withdrawBundleFees.selector, "withdrawBundleFees");
|
62
|
+
|
63
|
+
// authorize pool service
|
64
|
+
functions = _authorizeForTarget(getTargetName(), getServiceRole(POOL()));
|
65
|
+
_authorize(functions, IPoolComponent.verifyApplication.selector, "verifyApplication");
|
56
66
|
}
|
57
67
|
}
|
58
68
|
|