@etherisc/gif-next 0.0.2-f11de3a-698 → 0.0.2-f12cf4d-104
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +9 -7
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +1 -1
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +105 -65
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +1 -1
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +67 -11
- package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +1 -1
- package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +1 -1
- package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.json +60 -32
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +40 -3
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +19 -0
- package/artifacts/contracts/authorization/ReleaseAccessManager.sol/ReleaseAccessManager.dbg.json +4 -0
- package/artifacts/contracts/authorization/ReleaseAccessManager.sol/ReleaseAccessManager.json +1196 -0
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +68 -5
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +136 -360
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +1 -1
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +82 -22
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +99 -315
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +206 -292
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +125 -117
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +89 -115
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +78 -62
- package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.json +22 -0
- package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.json +1429 -0
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +502 -0
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +1979 -0
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +470 -0
- package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.json +376 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +1430 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +1177 -0
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +1606 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +2281 -0
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +1 -1
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +2 -2
- package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstance.sol/IInstance.json +53 -31
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +31 -86
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +72 -123
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +166 -139
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +57 -97
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +447 -87
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +96 -245
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +99 -87
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +337 -138
- package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +2 -2
- package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +2 -2
- package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +46 -5
- package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +2 -2
- package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
- package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +1 -1
- package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +1 -1
- package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +111 -335
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +1 -1
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +84 -24
- package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +1 -1
- package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +1 -1
- package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +77 -103
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +43 -9
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +87 -303
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +107 -159
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +99 -83
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +107 -323
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +114 -22
- package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleService.sol/BundleService.json +215 -256
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +130 -110
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +84 -47
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +98 -135
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +271 -199
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
- package/artifacts/contracts/pool/Pool.sol/Pool.json +106 -333
- package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolService.sol/PoolService.json +369 -386
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +112 -100
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +92 -168
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +90 -86
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +149 -319
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +82 -22
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +311 -187
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +139 -103
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +34 -0
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +176 -6
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +267 -141
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +114 -85
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +136 -116
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +4 -0
- package/artifacts/contracts/product/{IProductService.sol/IProductService.json → IRiskService.sol/IRiskService.json} +31 -2
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +365 -349
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +119 -99
- package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
- package/artifacts/contracts/product/PricingService.sol/PricingService.json +215 -309
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +117 -117
- package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
- package/artifacts/contracts/product/Product.sol/Product.json +147 -317
- package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +4 -0
- package/artifacts/contracts/product/RiskService.sol/RiskService.json +638 -0
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +718 -0
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +59 -16
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +310 -34
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +114 -35
- package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
- package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +5 -18
- package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
- package/artifacts/contracts/registry/Registry.sol/Registry.json +516 -95
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +296 -143
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +94 -284
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +91 -75
- package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +1 -1
- package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +47 -6
- package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +131 -223
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +66 -8
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +2 -2
- package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
- package/artifacts/contracts/shared/Component.sol/Component.json +73 -274
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +424 -277
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +137 -115
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +47 -112
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +4 -0
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +111 -0
- package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponent.sol/IComponent.json +66 -77
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +388 -19
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +77 -103
- package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
- package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.json +36 -0
- package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
- package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.json +36 -0
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +16 -0
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +15 -47
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +29 -0
- package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
- package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
- package/artifacts/contracts/shared/IService.sol/IService.json +29 -0
- package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +1 -1
- package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +2 -22
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +87 -303
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +42 -1
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +42 -1
- package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +1 -1
- package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +2 -2
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +22 -57
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +19 -141
- package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
- package/artifacts/contracts/shared/Registerable.sol/Registerable.json +58 -89
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -15
- package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
- package/artifacts/contracts/shared/Service.sol/Service.json +47 -112
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +697 -25
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +4 -0
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +395 -0
- package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +4 -0
- package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +172 -0
- package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
- package/artifacts/contracts/staking/IStaking.sol/IStaking.json +111 -114
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +29 -21
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +1 -1
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +63 -93
- package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
- package/artifacts/contracts/staking/Staking.sol/Staking.json +190 -379
- package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +46 -5
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +118 -99
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +6 -11
- package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingService.sol/StakingService.json +87 -165
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +95 -79
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +169 -128
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +54 -23
- package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
- package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
- package/artifacts/contracts/type/Amount.sol/AmountLib.json +32 -8
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
- package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +28 -4
- package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
- package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +2 -2
- package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
- package/artifacts/contracts/type/Fee.sol/FeeLib.json +2 -2
- package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +1 -1
- package/artifacts/contracts/type/Key32.sol/Key32Lib.json +2 -2
- package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/NftId.sol/NftIdLib.json +2 -2
- package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
- package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +2 -2
- package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
- package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +2 -2
- package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +19 -19
- package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
- package/artifacts/contracts/type/Referral.sol/ReferralLib.json +2 -2
- package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +2 -2
- package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +60 -4
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +2 -2
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +26 -2
- package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +1 -1
- package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +1 -1
- package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/StateId.sol/StateIdLib.json +15 -2
- package/artifacts/contracts/type/String.sol/StrLib.dbg.json +1 -1
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +2 -2
- package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +1 -1
- package/artifacts/contracts/type/UFixed.sol/MathLib.json +2 -2
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +15 -2
- package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
- package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +71 -70
- package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +1 -1
- package/contracts/authorization/AccessAdmin.sol +64 -59
- package/contracts/authorization/Authorization.sol +111 -40
- package/contracts/authorization/IAccess.sol +1 -0
- package/contracts/authorization/IAccessAdmin.sol +4 -3
- package/contracts/authorization/IAuthorization.sol +13 -7
- package/contracts/authorization/IServiceAuthorization.sol +3 -1
- package/contracts/authorization/ReleaseAccessManager.sol +38 -0
- package/contracts/authorization/ServiceAuthorization.sol +26 -10
- package/contracts/distribution/BasicDistribution.sol +2 -1
- package/contracts/distribution/Distribution.sol +7 -17
- package/contracts/distribution/DistributionService.sol +85 -67
- package/contracts/distribution/DistributionServiceManager.sol +6 -6
- package/contracts/distribution/IDistributionComponent.sol +1 -1
- package/contracts/distribution/IDistributionService.sol +9 -5
- package/contracts/examples/fire/DamageLevel.sol +59 -0
- package/contracts/examples/fire/FirePool.sol +86 -0
- package/contracts/examples/fire/FirePoolAuthorization.sol +34 -0
- package/contracts/examples/fire/FireProduct.sol +431 -0
- package/contracts/examples/fire/FireProductAuthorization.sol +44 -0
- package/contracts/examples/fire/FireUSD.sol +26 -0
- package/contracts/examples/unpermissioned/SimpleDistribution.sol +58 -0
- package/contracts/examples/unpermissioned/SimpleOracle.sol +137 -0
- package/contracts/examples/unpermissioned/SimplePool.sol +108 -0
- package/contracts/examples/unpermissioned/SimpleProduct.sol +345 -0
- package/contracts/instance/IInstance.sol +10 -30
- package/contracts/instance/IInstanceService.sol +2 -23
- package/contracts/instance/Instance.sol +29 -51
- package/contracts/instance/InstanceAdmin.sol +43 -32
- package/contracts/instance/InstanceAuthorizationV3.sol +11 -21
- package/contracts/instance/InstanceReader.sol +107 -25
- package/contracts/instance/InstanceService.sol +75 -104
- package/contracts/instance/InstanceServiceManager.sol +6 -7
- package/contracts/instance/InstanceStore.sol +11 -1
- package/contracts/instance/base/ObjectLifecycle.sol +9 -4
- package/contracts/instance/module/IComponents.sol +10 -6
- package/contracts/instance/module/IPolicy.sol +26 -25
- package/contracts/oracle/BasicOracle.sol +0 -1
- package/contracts/oracle/IOracleService.sol +2 -1
- package/contracts/oracle/Oracle.sol +6 -16
- package/contracts/oracle/OracleService.sol +56 -42
- package/contracts/oracle/OracleServiceManager.sol +6 -6
- package/contracts/pool/BasicPool.sol +35 -26
- package/contracts/pool/BasicPoolAuthorization.sol +13 -3
- package/contracts/pool/BundleService.sol +112 -69
- package/contracts/pool/BundleServiceManager.sol +6 -6
- package/contracts/pool/IBundleService.sol +16 -9
- package/contracts/pool/IPoolComponent.sol +19 -15
- package/contracts/pool/IPoolService.sol +62 -39
- package/contracts/pool/Pool.sol +145 -128
- package/contracts/pool/PoolService.sol +283 -189
- package/contracts/pool/PoolServiceManager.sol +4 -4
- package/contracts/product/ApplicationService.sol +59 -30
- package/contracts/product/ApplicationServiceManager.sol +4 -4
- package/contracts/product/BasicProduct.sol +9 -12
- package/contracts/product/BasicProductAuthorization.sol +0 -1
- package/contracts/product/ClaimService.sol +315 -118
- package/contracts/product/ClaimServiceManager.sol +4 -4
- package/contracts/product/IApplicationService.sol +1 -0
- package/contracts/product/IClaimService.sol +31 -7
- package/contracts/product/IPolicyService.sol +34 -36
- package/contracts/product/IPricingService.sol +10 -10
- package/contracts/product/IProductComponent.sol +23 -4
- package/contracts/product/{IProductService.sol → IRiskService.sol} +1 -1
- package/contracts/product/PolicyService.sol +383 -217
- package/contracts/product/PolicyServiceManager.sol +4 -4
- package/contracts/product/PricingService.sol +54 -54
- package/contracts/product/PricingServiceManager.sol +3 -3
- package/contracts/product/Product.sol +110 -89
- package/contracts/product/{ProductService.sol → RiskService.sol} +7 -10
- package/contracts/product/RiskServiceManager.sol +39 -0
- package/contracts/registry/ChainNft.sol +68 -38
- package/contracts/registry/IRegistry.sol +57 -18
- package/contracts/registry/IRegistryService.sol +5 -12
- package/contracts/registry/ITransferInterceptor.sol +1 -2
- package/contracts/registry/Registry.sol +350 -201
- package/contracts/registry/RegistryAdmin.sol +151 -54
- package/contracts/registry/RegistryService.sol +35 -46
- package/contracts/registry/RegistryServiceManager.sol +2 -2
- package/contracts/registry/ReleaseLifecycle.sol +6 -3
- package/contracts/registry/ReleaseRegistry.sol +204 -204
- package/contracts/registry/ServiceAuthorizationV3.sol +26 -23
- package/contracts/shared/Component.sol +63 -114
- package/contracts/shared/ComponentService.sol +296 -168
- package/contracts/shared/ComponentServiceManager.sol +8 -5
- package/contracts/shared/ComponentVerifyingService.sol +28 -17
- package/contracts/shared/ContractLib.sol +54 -0
- package/contracts/shared/IComponent.sol +10 -13
- package/contracts/shared/IComponentService.sol +38 -16
- package/contracts/shared/IInstanceLinkedComponent.sol +7 -22
- package/contracts/shared/ILifecycle.sol +3 -1
- package/contracts/shared/INftOwnable.sol +2 -0
- package/contracts/shared/IPolicyHolder.sol +12 -22
- package/contracts/shared/IRegisterable.sol +11 -0
- package/contracts/shared/InitializableERC165.sol +2 -2
- package/contracts/shared/InstanceLinkedComponent.sol +71 -38
- package/contracts/shared/KeyValueStore.sol +1 -1
- package/contracts/shared/Lifecycle.sol +15 -4
- package/contracts/shared/NftOwnable.sol +27 -7
- package/contracts/shared/PolicyHolder.sol +15 -52
- package/contracts/shared/Registerable.sol +19 -11
- package/contracts/shared/RegistryLinked.sol +9 -14
- package/contracts/shared/Service.sol +20 -18
- package/contracts/shared/TokenHandler.sol +366 -27
- package/contracts/shared/TokenHandlerDeployerLib.sol +20 -0
- package/contracts/staking/IStaking.sol +11 -5
- package/contracts/staking/IStakingService.sol +0 -3
- package/contracts/staking/StakeManagerLib.sol +18 -25
- package/contracts/staking/Staking.sol +39 -50
- package/contracts/staking/StakingManager.sol +8 -6
- package/contracts/staking/StakingReader.sol +12 -5
- package/contracts/staking/StakingService.sol +77 -35
- package/contracts/staking/StakingServiceManager.sol +2 -2
- package/contracts/staking/TargetManagerLib.sol +7 -3
- package/contracts/type/Amount.sol +15 -0
- package/contracts/type/ClaimId.sol +6 -1
- package/contracts/type/NftId.sol +1 -0
- package/contracts/type/ObjectType.sol +16 -11
- package/contracts/type/PayoutId.sol +10 -10
- package/contracts/type/RiskId.sol +16 -2
- package/contracts/type/RoleId.sol +0 -12
- package/contracts/type/Seconds.sol +8 -0
- package/contracts/type/StateId.sol +15 -1
- package/contracts/type/UFixed.sol +4 -0
- package/contracts/upgradeability/ProxyManager.sol +68 -34
- package/contracts/upgradeability/Versionable.sol +2 -2
- package/package.json +4 -3
- package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.dbg.json +0 -4
- package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.json +0 -290
- package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.dbg.json +0 -4
- package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.json +0 -390
- package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +0 -4
- package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +0 -4
- package/artifacts/contracts/product/ProductService.sol/ProductService.json +0 -708
- package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
- package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +0 -702
- package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.dbg.json +0 -4
- package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.json +0 -39
- package/contracts/authorization/IModuleAuthorization.sol +0 -21
- package/contracts/authorization/ModuleAuthorization.sol +0 -78
- package/contracts/product/ProductServiceManager.sol +0 -39
- package/contracts/shared/InitializableCustom.sol +0 -177
@@ -0,0 +1,137 @@
|
|
1
|
+
// SPDX-License-Identifier: Apache-2.0
|
2
|
+
pragma solidity ^0.8.20;
|
3
|
+
|
4
|
+
import {IAuthorization} from "../../authorization/IAuthorization.sol";
|
5
|
+
import {NftId} from "../../type/NftId.sol";
|
6
|
+
import {BasicOracle} from "../../oracle/BasicOracle.sol";
|
7
|
+
import {RequestId} from "../../type/RequestId.sol";
|
8
|
+
import {Timestamp} from "../../type/Timestamp.sol";
|
9
|
+
|
10
|
+
contract SimpleOracle is
|
11
|
+
BasicOracle
|
12
|
+
{
|
13
|
+
|
14
|
+
string public constant ANSWER_SYNC = "oracle constant sync answer";
|
15
|
+
|
16
|
+
struct SimpleRequest {
|
17
|
+
bool synchronous;
|
18
|
+
string text;
|
19
|
+
}
|
20
|
+
|
21
|
+
struct SimpleResponse {
|
22
|
+
bool revertInCall;
|
23
|
+
Timestamp revertUntil;
|
24
|
+
string text;
|
25
|
+
}
|
26
|
+
|
27
|
+
event LogSimpleOracleRequestReceived(RequestId requestId, NftId requesterId, bool synchronous, string requestText);
|
28
|
+
event LogSimpleOracleCancellingReceived(RequestId requestId);
|
29
|
+
|
30
|
+
event LogSimpleOracleAsyncResponseSent(RequestId requestId, string responseText);
|
31
|
+
event LogSimpleOracleSyncResponseSent(RequestId requestId, string responseText);
|
32
|
+
|
33
|
+
constructor(
|
34
|
+
address registry,
|
35
|
+
NftId productNftId,
|
36
|
+
IAuthorization authorization,
|
37
|
+
address initialOwner,
|
38
|
+
address token
|
39
|
+
)
|
40
|
+
{
|
41
|
+
initialize(
|
42
|
+
registry,
|
43
|
+
productNftId,
|
44
|
+
authorization,
|
45
|
+
initialOwner,
|
46
|
+
"SimpleOracle",
|
47
|
+
token
|
48
|
+
);
|
49
|
+
}
|
50
|
+
|
51
|
+
function initialize(
|
52
|
+
address registry,
|
53
|
+
NftId productNftId,
|
54
|
+
IAuthorization authorization,
|
55
|
+
address initialOwner,
|
56
|
+
string memory name,
|
57
|
+
address token
|
58
|
+
)
|
59
|
+
public
|
60
|
+
virtual
|
61
|
+
initializer()
|
62
|
+
{
|
63
|
+
_initializeBasicOracle(
|
64
|
+
registry,
|
65
|
+
productNftId,
|
66
|
+
authorization,
|
67
|
+
initialOwner,
|
68
|
+
name,
|
69
|
+
token);
|
70
|
+
}
|
71
|
+
|
72
|
+
/// @dev use case specific handling of oracle requests
|
73
|
+
/// for now only log is emitted to verify that request has been received by oracle component
|
74
|
+
function _request(
|
75
|
+
RequestId requestId,
|
76
|
+
NftId requesterId,
|
77
|
+
bytes calldata requestData,
|
78
|
+
Timestamp expiryAt
|
79
|
+
)
|
80
|
+
internal
|
81
|
+
virtual override
|
82
|
+
{
|
83
|
+
SimpleRequest memory request = abi.decode(requestData, (SimpleRequest));
|
84
|
+
|
85
|
+
if (request.synchronous) {
|
86
|
+
_respondSync(requestId);
|
87
|
+
}
|
88
|
+
|
89
|
+
emit LogSimpleOracleRequestReceived(requestId, requesterId, request.synchronous, request.text);
|
90
|
+
}
|
91
|
+
|
92
|
+
|
93
|
+
/// @dev use case specific handling of oracle requests
|
94
|
+
/// for now only log is emitted to verify that cancelling has been received by oracle component
|
95
|
+
function _cancel(
|
96
|
+
RequestId requestId
|
97
|
+
)
|
98
|
+
internal
|
99
|
+
virtual override
|
100
|
+
{
|
101
|
+
emit LogSimpleOracleCancellingReceived(requestId);
|
102
|
+
}
|
103
|
+
|
104
|
+
|
105
|
+
function respondAsync(
|
106
|
+
RequestId requestId,
|
107
|
+
string memory responseText,
|
108
|
+
bool revertInCall,
|
109
|
+
Timestamp revertUntil
|
110
|
+
)
|
111
|
+
external
|
112
|
+
// permissionless, no restricted() for now
|
113
|
+
{
|
114
|
+
bytes memory responseData = abi.encode(
|
115
|
+
SimpleResponse(
|
116
|
+
revertInCall,
|
117
|
+
revertUntil,
|
118
|
+
responseText));
|
119
|
+
|
120
|
+
_respond(requestId, responseData);
|
121
|
+
|
122
|
+
emit LogSimpleOracleAsyncResponseSent(requestId, responseText);
|
123
|
+
}
|
124
|
+
|
125
|
+
|
126
|
+
function _respondSync(
|
127
|
+
RequestId requestId
|
128
|
+
)
|
129
|
+
internal
|
130
|
+
{
|
131
|
+
bytes memory responseData = abi.encode(ANSWER_SYNC);
|
132
|
+
_respond(requestId, responseData);
|
133
|
+
|
134
|
+
emit LogSimpleOracleSyncResponseSent(requestId, ANSWER_SYNC);
|
135
|
+
}
|
136
|
+
|
137
|
+
}
|
@@ -0,0 +1,108 @@
|
|
1
|
+
// SPDX-License-Identifier: Apache-2.0
|
2
|
+
pragma solidity ^0.8.20;
|
3
|
+
|
4
|
+
import {Amount, AmountLib} from "../../type/Amount.sol";
|
5
|
+
import {BasicPool} from "../../pool/BasicPool.sol";
|
6
|
+
import {BasicPoolAuthorization} from "../../pool/BasicPoolAuthorization.sol";
|
7
|
+
import {Fee} from "../../type/Fee.sol";
|
8
|
+
import {IAuthorization} from "../../authorization/IAuthorization.sol";
|
9
|
+
import {IComponents} from "../../instance/module/IComponents.sol";
|
10
|
+
import {NftId} from "../../type/NftId.sol";
|
11
|
+
import {Seconds} from "../../type/Timestamp.sol";
|
12
|
+
import {UFixed} from "../../type/UFixed.sol";
|
13
|
+
|
14
|
+
contract SimplePool is
|
15
|
+
BasicPool
|
16
|
+
{
|
17
|
+
|
18
|
+
constructor(
|
19
|
+
address registry,
|
20
|
+
NftId productNftId,
|
21
|
+
address token,
|
22
|
+
IComponents.PoolInfo memory poolInfo,
|
23
|
+
IAuthorization authorization,
|
24
|
+
address initialOwner
|
25
|
+
)
|
26
|
+
{
|
27
|
+
initialize(
|
28
|
+
registry,
|
29
|
+
productNftId,
|
30
|
+
token,
|
31
|
+
poolInfo,
|
32
|
+
authorization,
|
33
|
+
initialOwner
|
34
|
+
);
|
35
|
+
}
|
36
|
+
|
37
|
+
|
38
|
+
function initialize(
|
39
|
+
address registry,
|
40
|
+
NftId productNftId,
|
41
|
+
address token,
|
42
|
+
IComponents.PoolInfo memory poolInfo,
|
43
|
+
IAuthorization authorization,
|
44
|
+
address initialOwner
|
45
|
+
)
|
46
|
+
public
|
47
|
+
virtual
|
48
|
+
initializer()
|
49
|
+
{
|
50
|
+
_initializeBasicPool(
|
51
|
+
registry,
|
52
|
+
productNftId,
|
53
|
+
"SimplePool",
|
54
|
+
token,
|
55
|
+
poolInfo,
|
56
|
+
authorization,
|
57
|
+
initialOwner);
|
58
|
+
}
|
59
|
+
|
60
|
+
|
61
|
+
function setWallet(address newWallet)
|
62
|
+
external
|
63
|
+
onlyOwner()
|
64
|
+
{
|
65
|
+
_setWallet(newWallet);
|
66
|
+
}
|
67
|
+
|
68
|
+
|
69
|
+
function createBundle(
|
70
|
+
Fee memory fee,
|
71
|
+
uint256 initialAmount,
|
72
|
+
Seconds lifetime,
|
73
|
+
bytes calldata filter
|
74
|
+
)
|
75
|
+
external
|
76
|
+
virtual
|
77
|
+
returns(NftId bundleNftId, uint256 netStakedAmountInt)
|
78
|
+
{
|
79
|
+
address owner = msg.sender;
|
80
|
+
Amount netStakedAmount;
|
81
|
+
bundleNftId = _createBundle(
|
82
|
+
owner,
|
83
|
+
fee,
|
84
|
+
lifetime,
|
85
|
+
filter
|
86
|
+
);
|
87
|
+
netStakedAmount = _stake(bundleNftId, AmountLib.toAmount(initialAmount));
|
88
|
+
netStakedAmountInt = netStakedAmount.toInt();
|
89
|
+
}
|
90
|
+
|
91
|
+
|
92
|
+
function fundPoolWallet(
|
93
|
+
Amount amount
|
94
|
+
)
|
95
|
+
external
|
96
|
+
{
|
97
|
+
_fundPoolWallet(amount);
|
98
|
+
}
|
99
|
+
|
100
|
+
|
101
|
+
function defundPoolWallet(
|
102
|
+
Amount amount
|
103
|
+
)
|
104
|
+
external
|
105
|
+
{
|
106
|
+
_defundPoolWallet(amount);
|
107
|
+
}
|
108
|
+
}
|
@@ -0,0 +1,345 @@
|
|
1
|
+
// SPDX-License-Identifier: Apache-2.0
|
2
|
+
pragma solidity ^0.8.20;
|
3
|
+
|
4
|
+
import {Amount, AmountLib} from "../../type/Amount.sol";
|
5
|
+
import {BasicProduct} from "../../product/BasicProduct.sol";
|
6
|
+
import {ClaimId} from "../../type/ClaimId.sol";
|
7
|
+
import {IAuthorization} from "../../authorization/IAuthorization.sol";
|
8
|
+
import {IComponents} from "../../instance/module/IComponents.sol";
|
9
|
+
import {IOracleService} from "../../oracle/IOracleService.sol";
|
10
|
+
import {ORACLE} from "../../type/ObjectType.sol";
|
11
|
+
import {NftId} from "../../type/NftId.sol";
|
12
|
+
import {PayoutId} from "../../type/PayoutId.sol";
|
13
|
+
import {ReferralId} from "../../type/Referral.sol";
|
14
|
+
import {RequestId} from "../../type/RequestId.sol";
|
15
|
+
import {RiskId} from "../../type/RiskId.sol";
|
16
|
+
import {Seconds} from "../../type/Seconds.sol";
|
17
|
+
import {SimpleOracle} from "./SimpleOracle.sol";
|
18
|
+
import {StateId} from "../../type/StateId.sol";
|
19
|
+
import {Timestamp, TimestampLib} from "../../type/Timestamp.sol";
|
20
|
+
|
21
|
+
uint64 constant SPECIAL_ROLE_INT = 11111;
|
22
|
+
|
23
|
+
contract SimpleProduct is
|
24
|
+
BasicProduct
|
25
|
+
{
|
26
|
+
|
27
|
+
event LogSimpleProductRequestAsyncFulfilled(RequestId requestId, string responseText, uint256 responseDataLength);
|
28
|
+
event LogSimpleProductRequestSyncFulfilled(RequestId requestId, string responseText, uint256 responseDataLength);
|
29
|
+
|
30
|
+
error ErrorSimpleProductRevertedWhileProcessingResponse(RequestId requestId);
|
31
|
+
|
32
|
+
IOracleService private _oracleService;
|
33
|
+
|
34
|
+
constructor(
|
35
|
+
address registry,
|
36
|
+
NftId instanceNftId,
|
37
|
+
string memory name,
|
38
|
+
address token,
|
39
|
+
IComponents.ProductInfo memory productInfo,
|
40
|
+
IAuthorization authorization,
|
41
|
+
address initialOwner
|
42
|
+
)
|
43
|
+
{
|
44
|
+
initialize(
|
45
|
+
registry,
|
46
|
+
instanceNftId,
|
47
|
+
name,
|
48
|
+
token,
|
49
|
+
productInfo,
|
50
|
+
authorization,
|
51
|
+
initialOwner);
|
52
|
+
}
|
53
|
+
|
54
|
+
|
55
|
+
function initialize(
|
56
|
+
address registry,
|
57
|
+
NftId instanceNftid,
|
58
|
+
string memory name,
|
59
|
+
address token,
|
60
|
+
IComponents.ProductInfo memory productInfo,
|
61
|
+
IAuthorization authorization,
|
62
|
+
address initialOwner
|
63
|
+
)
|
64
|
+
public
|
65
|
+
virtual
|
66
|
+
initializer()
|
67
|
+
{
|
68
|
+
_initializeBasicProduct(
|
69
|
+
registry,
|
70
|
+
instanceNftid,
|
71
|
+
name,
|
72
|
+
token,
|
73
|
+
productInfo,
|
74
|
+
authorization,
|
75
|
+
initialOwner);
|
76
|
+
|
77
|
+
_oracleService = IOracleService(_getServiceAddress(ORACLE()));
|
78
|
+
}
|
79
|
+
|
80
|
+
function createRisk(
|
81
|
+
RiskId id,
|
82
|
+
bytes memory data
|
83
|
+
) public {
|
84
|
+
_createRisk(
|
85
|
+
id,
|
86
|
+
data
|
87
|
+
);
|
88
|
+
}
|
89
|
+
|
90
|
+
function updateRisk(
|
91
|
+
RiskId id,
|
92
|
+
bytes memory data
|
93
|
+
) public {
|
94
|
+
_updateRisk(
|
95
|
+
id,
|
96
|
+
data
|
97
|
+
);
|
98
|
+
}
|
99
|
+
|
100
|
+
function updateRiskState(
|
101
|
+
RiskId id,
|
102
|
+
StateId state
|
103
|
+
) public {
|
104
|
+
_updateRiskState(
|
105
|
+
id,
|
106
|
+
state
|
107
|
+
);
|
108
|
+
}
|
109
|
+
|
110
|
+
function createApplication(
|
111
|
+
address applicationOwner,
|
112
|
+
RiskId riskId,
|
113
|
+
uint256 sumInsured,
|
114
|
+
Seconds lifetime,
|
115
|
+
bytes memory applicationData,
|
116
|
+
NftId bundleNftId,
|
117
|
+
ReferralId referralId
|
118
|
+
)
|
119
|
+
public
|
120
|
+
returns (NftId nftId)
|
121
|
+
{
|
122
|
+
Amount sumInsuredAmount = AmountLib.toAmount(sumInsured);
|
123
|
+
Amount premiumAmount = calculatePremium(
|
124
|
+
sumInsuredAmount,
|
125
|
+
riskId,
|
126
|
+
lifetime,
|
127
|
+
applicationData,
|
128
|
+
bundleNftId,
|
129
|
+
referralId);
|
130
|
+
|
131
|
+
return _createApplication(
|
132
|
+
applicationOwner,
|
133
|
+
riskId,
|
134
|
+
sumInsuredAmount,
|
135
|
+
premiumAmount,
|
136
|
+
lifetime,
|
137
|
+
bundleNftId,
|
138
|
+
referralId,
|
139
|
+
applicationData
|
140
|
+
);
|
141
|
+
}
|
142
|
+
|
143
|
+
function createPolicy(
|
144
|
+
NftId applicationNftId,
|
145
|
+
bool requirePremiumPayment,
|
146
|
+
Timestamp activateAt
|
147
|
+
) public {
|
148
|
+
_createPolicy(applicationNftId, activateAt);
|
149
|
+
if (requirePremiumPayment == true) {
|
150
|
+
_collectPremium(applicationNftId, activateAt);
|
151
|
+
}
|
152
|
+
}
|
153
|
+
|
154
|
+
function decline(
|
155
|
+
NftId policyNftId
|
156
|
+
) public {
|
157
|
+
_decline(policyNftId);
|
158
|
+
}
|
159
|
+
|
160
|
+
function expire(
|
161
|
+
NftId policyNftId,
|
162
|
+
Timestamp expireAt
|
163
|
+
)
|
164
|
+
public
|
165
|
+
returns (Timestamp)
|
166
|
+
{
|
167
|
+
return _expire(policyNftId, expireAt);
|
168
|
+
}
|
169
|
+
|
170
|
+
function collectPremium(
|
171
|
+
NftId policyNftId,
|
172
|
+
Timestamp activateAt
|
173
|
+
) public {
|
174
|
+
_collectPremium(policyNftId, activateAt);
|
175
|
+
}
|
176
|
+
|
177
|
+
function activate(
|
178
|
+
NftId policyNftId,
|
179
|
+
Timestamp activateAt
|
180
|
+
) public {
|
181
|
+
_activate(policyNftId, activateAt);
|
182
|
+
}
|
183
|
+
|
184
|
+
function close(
|
185
|
+
NftId policyNftId
|
186
|
+
) public {
|
187
|
+
_close(policyNftId);
|
188
|
+
}
|
189
|
+
|
190
|
+
function submitClaim(
|
191
|
+
NftId policyNftId,
|
192
|
+
Amount claimAmount,
|
193
|
+
bytes memory submissionData
|
194
|
+
) public returns (ClaimId) {
|
195
|
+
return _submitClaim(policyNftId, claimAmount, submissionData);
|
196
|
+
}
|
197
|
+
|
198
|
+
function confirmClaim(
|
199
|
+
NftId policyNftId,
|
200
|
+
ClaimId claimId,
|
201
|
+
Amount confirmedAmount,
|
202
|
+
bytes memory processData
|
203
|
+
) public {
|
204
|
+
_confirmClaim(policyNftId, claimId, confirmedAmount, processData);
|
205
|
+
}
|
206
|
+
|
207
|
+
function declineClaim(
|
208
|
+
NftId policyNftId,
|
209
|
+
ClaimId claimId,
|
210
|
+
bytes memory processData
|
211
|
+
) public {
|
212
|
+
_declineClaim(policyNftId, claimId, processData);
|
213
|
+
}
|
214
|
+
|
215
|
+
function closeClaim(
|
216
|
+
NftId policyNftId,
|
217
|
+
ClaimId claimId
|
218
|
+
) public {
|
219
|
+
_closeClaim(policyNftId, claimId);
|
220
|
+
}
|
221
|
+
|
222
|
+
function createPayout(
|
223
|
+
NftId policyNftId,
|
224
|
+
ClaimId claimId,
|
225
|
+
Amount amount,
|
226
|
+
bytes memory data
|
227
|
+
) public returns (PayoutId) {
|
228
|
+
return _createPayout(policyNftId, claimId, amount, data);
|
229
|
+
}
|
230
|
+
|
231
|
+
// TODO add test
|
232
|
+
function createPayoutForBeneficiary(
|
233
|
+
NftId policyNftId,
|
234
|
+
ClaimId claimId,
|
235
|
+
Amount amount,
|
236
|
+
address beneficiary,
|
237
|
+
bytes memory data
|
238
|
+
) public returns (PayoutId) {
|
239
|
+
return _createPayoutForBeneficiary(policyNftId, claimId, amount, beneficiary, data);
|
240
|
+
}
|
241
|
+
|
242
|
+
function processPayout(
|
243
|
+
NftId policyNftId,
|
244
|
+
PayoutId payoutId
|
245
|
+
) public {
|
246
|
+
_processPayout(policyNftId, payoutId);
|
247
|
+
}
|
248
|
+
|
249
|
+
function createOracleRequest(
|
250
|
+
NftId oracleNftId,
|
251
|
+
string memory requestText,
|
252
|
+
Timestamp expiryAt,
|
253
|
+
bool synchronous
|
254
|
+
)
|
255
|
+
public
|
256
|
+
// restricted()
|
257
|
+
returns (RequestId)
|
258
|
+
{
|
259
|
+
bytes memory requestData = abi.encode(SimpleOracle.SimpleRequest(
|
260
|
+
synchronous,
|
261
|
+
requestText));
|
262
|
+
|
263
|
+
if (synchronous) {
|
264
|
+
return _oracleService.request(
|
265
|
+
oracleNftId,
|
266
|
+
requestData,
|
267
|
+
expiryAt,
|
268
|
+
"fulfillOracleRequestSync");
|
269
|
+
} else {
|
270
|
+
return _oracleService.request(
|
271
|
+
oracleNftId,
|
272
|
+
requestData,
|
273
|
+
expiryAt,
|
274
|
+
"fulfillOracleRequestAsync");
|
275
|
+
}
|
276
|
+
}
|
277
|
+
|
278
|
+
function cancelOracleRequest(
|
279
|
+
RequestId requestId
|
280
|
+
)
|
281
|
+
public
|
282
|
+
// restricted() //
|
283
|
+
{
|
284
|
+
_oracleService.cancel(requestId);
|
285
|
+
}
|
286
|
+
|
287
|
+
function fulfillOracleRequestSync(
|
288
|
+
RequestId requestId,
|
289
|
+
bytes memory responseData
|
290
|
+
)
|
291
|
+
public
|
292
|
+
// restricted() // only oracle service
|
293
|
+
{
|
294
|
+
string memory responseText = abi.decode(responseData, (string));
|
295
|
+
emit LogSimpleProductRequestSyncFulfilled(requestId, responseText, bytes(responseText).length);
|
296
|
+
}
|
297
|
+
|
298
|
+
function fulfillOracleRequestAsync(
|
299
|
+
RequestId requestId,
|
300
|
+
bytes memory responseData
|
301
|
+
)
|
302
|
+
public
|
303
|
+
// restricted() // only oracle service
|
304
|
+
{
|
305
|
+
SimpleOracle.SimpleResponse memory response = abi.decode(
|
306
|
+
responseData, (SimpleOracle.SimpleResponse));
|
307
|
+
|
308
|
+
if (response.revertInCall && response.revertUntil >= TimestampLib.blockTimestamp()) {
|
309
|
+
revert ErrorSimpleProductRevertedWhileProcessingResponse(requestId);
|
310
|
+
}
|
311
|
+
|
312
|
+
emit LogSimpleProductRequestAsyncFulfilled(requestId, response.text, bytes(response.text).length);
|
313
|
+
}
|
314
|
+
|
315
|
+
|
316
|
+
function resend(
|
317
|
+
RequestId requestId
|
318
|
+
)
|
319
|
+
public
|
320
|
+
// restricted() //
|
321
|
+
{
|
322
|
+
_oracleService.resend(requestId);
|
323
|
+
}
|
324
|
+
|
325
|
+
|
326
|
+
function doSomethingSpecial()
|
327
|
+
public
|
328
|
+
restricted()
|
329
|
+
returns (bool)
|
330
|
+
{
|
331
|
+
return true;
|
332
|
+
}
|
333
|
+
|
334
|
+
function doWhenNotLocked()
|
335
|
+
public
|
336
|
+
restricted()
|
337
|
+
returns (bool)
|
338
|
+
{
|
339
|
+
return true;
|
340
|
+
}
|
341
|
+
|
342
|
+
function getOracleService() public view returns (IOracleService) {
|
343
|
+
return _oracleService;
|
344
|
+
}
|
345
|
+
}
|
@@ -4,39 +4,17 @@ pragma solidity ^0.8.20;
|
|
4
4
|
import {IAccessManaged} from "@openzeppelin/contracts/access/manager/IAccessManaged.sol";
|
5
5
|
|
6
6
|
import {Amount} from "../type/Amount.sol";
|
7
|
-
import {
|
8
|
-
import {
|
9
|
-
import {
|
7
|
+
import {BundleSet} from "./BundleSet.sol";
|
8
|
+
import {InstanceAdmin} from "./InstanceAdmin.sol";
|
9
|
+
import {InstanceReader} from "./InstanceReader.sol";
|
10
|
+
import {InstanceStore} from "./InstanceStore.sol";
|
11
|
+
import {IRegisterable} from "../shared/IRegisterable.sol";
|
12
|
+
import {ITransferInterceptor} from "../registry/ITransferInterceptor.sol";
|
10
13
|
import {NftId} from "../type/NftId.sol";
|
11
|
-
import {StateId} from "../type/StateId.sol";
|
12
|
-
import {ReferralId} from "../type/Referral.sol";
|
13
|
-
import {RiskId} from "../type/RiskId.sol";
|
14
|
-
import {VersionPart} from "../type/Version.sol";
|
15
|
-
import {Key32} from "../type/Key32.sol";
|
16
14
|
import {RoleId} from "../type/RoleId.sol";
|
17
15
|
import {Seconds} from "../type/Seconds.sol";
|
18
16
|
import {UFixed} from "../type/UFixed.sol";
|
19
|
-
|
20
|
-
import {IRegisterable} from "../shared/IRegisterable.sol";
|
21
|
-
|
22
|
-
import {ITransferInterceptor} from "../registry/ITransferInterceptor.sol";
|
23
|
-
|
24
|
-
import {InstanceAdmin} from "./InstanceAdmin.sol";
|
25
|
-
import {BundleSet} from "./BundleSet.sol";
|
26
|
-
import {InstanceReader} from "./InstanceReader.sol";
|
27
|
-
import {InstanceStore} from "./InstanceStore.sol";
|
28
|
-
|
29
|
-
import {IKeyValueStore} from "../shared/IKeyValueStore.sol";
|
30
|
-
|
31
|
-
import {IAccess} from "./module/IAccess.sol";
|
32
|
-
|
33
|
-
import {IBundleService} from "../pool/IBundleService.sol";
|
34
|
-
import {IDistributionService} from "../distribution/IDistributionService.sol";
|
35
|
-
import {IPolicyService} from "../product/IPolicyService.sol";
|
36
|
-
import {IPoolService} from "../pool/IPoolService.sol";
|
37
|
-
import {IProductService} from "../product/IProductService.sol";
|
38
|
-
import {IPolicyService} from "../product/IPolicyService.sol";
|
39
|
-
import {IBundleService} from "../pool/IBundleService.sol";
|
17
|
+
import {VersionPart} from "../type/Version.sol";
|
40
18
|
|
41
19
|
|
42
20
|
interface IInstance is
|
@@ -61,6 +39,9 @@ interface IInstance is
|
|
61
39
|
uint64 requestsCount;
|
62
40
|
}
|
63
41
|
|
42
|
+
/// @dev Register a product with the instance.
|
43
|
+
function registerProduct(address product) external returns (NftId productNftId);
|
44
|
+
|
64
45
|
function createRole(string memory roleName, string memory adminName) external returns (RoleId roleId, RoleId admin);
|
65
46
|
function grantRole(RoleId roleId, address account) external;
|
66
47
|
function revokeRole(RoleId roleId, address account) external;
|
@@ -78,7 +59,6 @@ interface IInstance is
|
|
78
59
|
function withdrawStakingRewardReserves(Amount dipAmount) external returns (Amount newBalance);
|
79
60
|
|
80
61
|
// get instance release and supporting contracts
|
81
|
-
function getMajorVersion() external pure returns (VersionPart majorVersion);
|
82
62
|
function getInstanceReader() external view returns (InstanceReader);
|
83
63
|
function getBundleSet() external view returns (BundleSet);
|
84
64
|
function getInstanceAdmin() external view returns (InstanceAdmin);
|
@@ -3,7 +3,7 @@ pragma solidity ^0.8.20;
|
|
3
3
|
|
4
4
|
import {Amount} from "../type/Amount.sol";
|
5
5
|
import {BundleSet} from "./BundleSet.sol";
|
6
|
-
import {
|
6
|
+
import {IInstance} from "./IInstance.sol";
|
7
7
|
import {IInstanceLinkedComponent} from "../shared/IInstanceLinkedComponent.sol";
|
8
8
|
import {IService} from "../shared/IService.sol";
|
9
9
|
import {NftId} from "../type/NftId.sol";
|
@@ -55,8 +55,7 @@ interface IInstanceService is IService {
|
|
55
55
|
function createInstance()
|
56
56
|
external
|
57
57
|
returns (
|
58
|
-
|
59
|
-
Instance clonedInstance,
|
58
|
+
IInstance instance,
|
60
59
|
NftId instanceNftId
|
61
60
|
);
|
62
61
|
|
@@ -68,25 +67,5 @@ interface IInstanceService is IService {
|
|
68
67
|
/// @dev Defunds the staking reward reserves for the specified target.
|
69
68
|
function withdrawStakingRewardReserves(Amount dipAmount) external returns (Amount newBalance);
|
70
69
|
|
71
|
-
/// @dev Sets up the component authorization for the specified instance.
|
72
|
-
/// The authorization is based on the authz specification provided by the component via getAuthorization.
|
73
|
-
function initializeAuthorization(NftId instanceNftId, IInstanceLinkedComponent component) external;
|
74
|
-
|
75
|
-
function createComponentTarget(
|
76
|
-
NftId instanceNftId,
|
77
|
-
address targetAddress,
|
78
|
-
string memory targetName,
|
79
|
-
bytes4[][] memory selectors,
|
80
|
-
RoleId[] memory roles
|
81
|
-
) external;
|
82
|
-
|
83
|
-
function createGifTarget(
|
84
|
-
NftId instanceNftId,
|
85
|
-
address targetAddress,
|
86
|
-
string memory targetName,
|
87
|
-
bytes4[][] memory selectors,
|
88
|
-
RoleId[] memory roles
|
89
|
-
) external;
|
90
|
-
|
91
70
|
function setComponentLocked(bool locked) external;
|
92
71
|
}
|