@etherisc/gif-next 0.0.2-ff1bf36-818 → 0.0.2-ff596ab-857
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 +85 -8
- package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.dbg.json +4 -0
- package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +1075 -0
- package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +4 -0
- package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +790 -0
- package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.dbg.json +4 -0
- package/artifacts/contracts/{shared/ComponentVerifyingService.sol/ComponentVerifyingService.json → accounting/IAccountingService.sol/IAccountingService.json} +408 -104
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +1 -1
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +673 -262
- package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.dbg.json +4 -0
- package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.json +1289 -0
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +1 -1
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +202 -5
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +456 -24
- 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 +549 -209
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +215 -18
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +265 -16
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +473 -17
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +196 -441
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +1 -1
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +431 -36
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +115 -325
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +682 -375
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +218 -130
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +102 -160
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +478 -108
- 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 +1484 -0
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +805 -0
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +2053 -0
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +805 -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 +1439 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +805 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +1171 -0
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +1647 -0
- package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +805 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +2585 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +805 -0
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +1 -1
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +193 -45
- package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstance.sol/IInstance.json +567 -67
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +385 -60
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +573 -165
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +1034 -311
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +369 -68
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +1688 -735
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +399 -231
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +143 -105
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +973 -650
- package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +4 -0
- package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +866 -0
- package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +8 -8
- 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 +16 -5
- package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.dbg.json +4 -0
- package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.json +168 -0
- 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 +148 -317
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +1 -1
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +429 -37
- 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 +116 -109
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +98 -11
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +124 -269
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +198 -190
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +177 -97
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +173 -326
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +430 -35
- package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleService.sol/BundleService.json +352 -380
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +174 -126
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +247 -121
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +154 -158
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +500 -269
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
- package/artifacts/contracts/pool/Pool.sol/Pool.json +152 -308
- package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +4 -0
- package/artifacts/contracts/pool/PoolLib.sol/PoolLib.json +522 -0
- package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolService.sol/PoolService.json +723 -515
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +218 -110
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +357 -173
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +165 -97
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +305 -389
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +430 -35
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +458 -253
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +187 -123
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +296 -9
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +335 -19
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +300 -64
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +183 -80
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +270 -202
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +1 -1
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.json +286 -21
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +428 -287
- package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.dbg.json +4 -0
- package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.json +783 -0
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +193 -121
- package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
- package/artifacts/contracts/product/PricingService.sol/PricingService.json +247 -332
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +165 -137
- package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
- package/artifacts/contracts/product/Product.sol/Product.json +278 -362
- package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +1 -1
- package/artifacts/contracts/product/RiskService.sol/RiskService.json +364 -186
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +166 -94
- 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 +359 -48
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +169 -37
- package/artifacts/contracts/registry/IRelease.sol/IRelease.dbg.json +4 -0
- package/artifacts/contracts/registry/IRelease.sol/IRelease.json +24 -0
- 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 +565 -109
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +791 -377
- package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.dbg.json +4 -0
- package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.json +1074 -0
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +136 -290
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +141 -89
- package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +4 -0
- package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +2152 -0
- 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 +483 -253
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +489 -20
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +120 -60
- package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
- package/artifacts/contracts/shared/Component.sol/Component.json +100 -227
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +496 -625
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +188 -130
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +4 -0
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +632 -0
- package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +4 -0
- package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.json +24 -0
- package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +4 -0
- package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.json +30 -0
- package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.dbg.json +4 -0
- package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.json +40 -0
- package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponent.sol/IComponent.json +93 -68
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +432 -290
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +116 -109
- package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
- package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.json +42 -6
- 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 +35 -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 +167 -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 +84 -2
- 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 +123 -268
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +48 -7
- 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 +41 -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 +141 -97
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -15
- package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
- package/artifacts/contracts/shared/Service.sol/Service.json +86 -111
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +327 -73
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +4 -0
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +484 -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 +1512 -167
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +235 -123
- package/artifacts/contracts/staking/ITargetLimitHandler.sol/ITargetLimitHandler.dbg.json +4 -0
- package/artifacts/contracts/staking/ITargetLimitHandler.sol/ITargetLimitHandler.json +50 -0
- package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
- package/artifacts/contracts/staking/Staking.sol/Staking.json +1646 -402
- package/artifacts/contracts/staking/StakingLib.sol/StakingLib.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingLib.sol/StakingLib.json +470 -0
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +193 -107
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +295 -183
- package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingService.sol/StakingService.json +282 -281
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +144 -96
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +1645 -790
- package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.dbg.json +4 -0
- package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.json +309 -0
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +180 -77
- 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 +35 -11
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +45 -19
- package/artifacts/contracts/type/ChainId.sol/ChainIdLib.dbg.json +4 -0
- package/artifacts/contracts/type/ChainId.sol/ChainIdLib.json +193 -0
- 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 +94 -38
- 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/Key32Set.sol/LibKey32Set.dbg.json +4 -0
- package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.json +33 -0
- package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/NftId.sol/NftIdLib.json +23 -4
- 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 +33 -31
- 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 +125 -7
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +42 -157
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +69 -2
- package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +1 -1
- package/artifacts/contracts/type/Selector.sol/SelectorLib.json +21 -2
- package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +1 -1
- package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +2 -2
- 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/String.sol/StrLib.json +50 -2
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +3 -3
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +73 -36
- package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
- package/artifacts/contracts/type/Version.sol/VersionLib.json +2 -21
- package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
- package/artifacts/contracts/type/Version.sol/VersionPartLib.json +101 -2
- package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.json +10 -0
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +118 -79
- package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +15 -2
- package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.json +10 -0
- package/contracts/accounting/AccountingService.sol +274 -0
- package/contracts/accounting/AccountingServiceManager.sol +38 -0
- package/contracts/accounting/IAccountingService.sol +47 -0
- package/contracts/authorization/AccessAdmin.sol +458 -269
- package/contracts/authorization/AccessAdminLib.sol +396 -0
- package/contracts/authorization/AccessManagerCloneable.sol +146 -4
- package/contracts/authorization/Authorization.sol +159 -207
- package/contracts/authorization/IAccess.sol +25 -6
- package/contracts/authorization/IAccessAdmin.sol +87 -79
- package/contracts/authorization/IAuthorization.sol +9 -37
- package/contracts/authorization/IServiceAuthorization.sol +57 -17
- package/contracts/authorization/ServiceAuthorization.sol +255 -25
- package/contracts/distribution/BasicDistribution.sol +20 -17
- package/contracts/distribution/BasicDistributionAuthorization.sol +30 -10
- package/contracts/distribution/Distribution.sol +44 -92
- package/contracts/distribution/DistributionService.sol +243 -117
- package/contracts/distribution/DistributionServiceManager.sol +6 -6
- package/contracts/distribution/IDistributionComponent.sol +4 -11
- package/contracts/distribution/IDistributionService.sol +46 -26
- package/contracts/examples/fire/DamageLevel.sol +59 -0
- package/contracts/examples/fire/FirePool.sol +86 -0
- package/contracts/examples/fire/FirePoolAuthorization.sol +35 -0
- package/contracts/examples/fire/FireProduct.sol +433 -0
- package/contracts/examples/fire/FireProductAuthorization.sol +45 -0
- package/contracts/examples/fire/FireUSD.sol +26 -0
- package/contracts/examples/unpermissioned/SimpleDistribution.sol +81 -0
- package/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol +28 -0
- package/contracts/examples/unpermissioned/SimpleOracle.sol +133 -0
- package/contracts/examples/unpermissioned/SimplePool.sol +102 -0
- package/contracts/examples/unpermissioned/SimplePoolAuthorization.sol +28 -0
- package/contracts/examples/unpermissioned/SimpleProduct.sol +437 -0
- package/contracts/examples/unpermissioned/SimpleProductAuthorization.sol +28 -0
- package/contracts/instance/BundleSet.sol +42 -38
- package/contracts/instance/IInstance.sol +100 -18
- package/contracts/instance/IInstanceService.sol +59 -34
- package/contracts/instance/Instance.sol +189 -71
- package/contracts/instance/InstanceAdmin.sol +276 -178
- package/contracts/instance/InstanceAuthorizationV3.sol +120 -58
- package/contracts/instance/InstanceReader.sol +477 -253
- package/contracts/instance/InstanceService.sol +279 -246
- package/contracts/instance/InstanceServiceManager.sol +6 -7
- package/contracts/instance/InstanceStore.sol +23 -2
- package/contracts/instance/RiskSet.sol +126 -0
- package/contracts/instance/base/BalanceStore.sol +4 -6
- package/contracts/instance/base/ObjectCounter.sol +1 -2
- package/contracts/instance/base/ObjectLifecycle.sol +12 -8
- package/contracts/instance/base/ObjectSet.sol +31 -33
- package/contracts/instance/base/ObjectSetHelperLib.sol +30 -0
- package/contracts/instance/module/IBundle.sol +6 -5
- package/contracts/instance/module/IComponents.sol +29 -13
- package/contracts/instance/module/IDistribution.sol +21 -8
- package/contracts/instance/module/IPolicy.sol +49 -28
- package/contracts/instance/module/IRisk.sol +5 -0
- package/contracts/oracle/BasicOracle.sol +2 -5
- package/contracts/oracle/BasicOracleAuthorization.sol +15 -8
- package/contracts/oracle/IOracle.sol +9 -4
- package/contracts/oracle/IOracleService.sol +2 -1
- package/contracts/oracle/Oracle.sol +9 -21
- package/contracts/oracle/OracleService.sol +119 -87
- package/contracts/oracle/OracleServiceManager.sol +6 -6
- package/contracts/pool/BasicPool.sol +34 -38
- package/contracts/pool/BasicPoolAuthorization.sol +34 -11
- package/contracts/pool/BundleService.sol +117 -167
- package/contracts/pool/BundleServiceManager.sol +6 -6
- package/contracts/pool/IBundleService.sol +28 -46
- package/contracts/pool/IPoolComponent.sol +19 -15
- package/contracts/pool/IPoolService.sol +80 -73
- package/contracts/pool/Pool.sol +142 -137
- package/contracts/pool/PoolLib.sol +341 -0
- package/contracts/pool/PoolService.sol +361 -288
- package/contracts/pool/PoolServiceManager.sol +4 -4
- package/contracts/product/ApplicationService.sol +111 -34
- package/contracts/product/ApplicationServiceManager.sol +4 -4
- package/contracts/product/BasicProduct.sol +11 -14
- package/contracts/product/BasicProductAuthorization.sol +32 -12
- package/contracts/product/ClaimService.sol +383 -169
- package/contracts/product/ClaimServiceManager.sol +4 -4
- package/contracts/product/IApplicationService.sol +28 -3
- package/contracts/product/IClaimService.sol +47 -11
- package/contracts/product/IPolicyService.sol +47 -29
- package/contracts/product/IPricingService.sol +11 -10
- package/contracts/product/IProductComponent.sol +27 -5
- package/contracts/product/IRiskService.sol +25 -10
- package/contracts/product/PolicyService.sol +375 -314
- package/contracts/product/PolicyServiceLib.sol +139 -0
- package/contracts/product/PolicyServiceManager.sol +4 -4
- package/contracts/product/PricingService.sol +85 -83
- package/contracts/product/PricingServiceManager.sol +4 -4
- package/contracts/product/Product.sol +177 -94
- package/contracts/product/RiskService.sol +130 -37
- package/contracts/product/RiskServiceManager.sol +4 -4
- package/contracts/registry/ChainNft.sol +72 -40
- package/contracts/registry/IRegistry.sol +70 -32
- package/contracts/registry/IRegistryService.sol +5 -12
- package/contracts/registry/IRelease.sol +29 -0
- package/contracts/registry/ITransferInterceptor.sol +1 -2
- package/contracts/registry/Registry.sol +367 -207
- package/contracts/registry/RegistryAdmin.sol +114 -297
- package/contracts/registry/RegistryAuthorization.sol +336 -0
- package/contracts/registry/RegistryService.sol +38 -49
- package/contracts/registry/RegistryServiceManager.sol +3 -3
- package/contracts/registry/ReleaseAdmin.sol +195 -0
- package/contracts/registry/ReleaseLifecycle.sol +8 -3
- package/contracts/registry/ReleaseRegistry.sol +279 -239
- package/contracts/registry/ServiceAuthorizationV3.sol +205 -63
- package/contracts/registry/TokenRegistry.sol +61 -59
- package/contracts/shared/Component.sol +69 -123
- package/contracts/shared/ComponentService.sol +424 -378
- package/contracts/shared/ComponentServiceManager.sol +8 -5
- package/contracts/shared/ContractLib.sol +312 -0
- package/contracts/shared/IComponent.sol +6 -18
- package/contracts/shared/IComponentService.sol +43 -40
- package/contracts/shared/IInstanceLinkedComponent.sol +3 -22
- package/contracts/shared/IKeyValueStore.sol +1 -1
- package/contracts/shared/ILifecycle.sol +3 -1
- package/contracts/shared/INftOwnable.sol +4 -0
- package/contracts/shared/IPolicyHolder.sol +12 -22
- package/contracts/shared/IRegisterable.sol +22 -1
- package/contracts/shared/IService.sol +3 -5
- package/contracts/shared/InitializableERC165.sol +10 -2
- package/contracts/shared/InstanceLinkedComponent.sol +73 -51
- package/contracts/shared/KeyValueStore.sol +4 -4
- package/contracts/shared/Lifecycle.sol +15 -4
- package/contracts/shared/NftOwnable.sol +31 -9
- package/contracts/shared/PolicyHolder.sol +18 -54
- package/contracts/shared/Registerable.sol +52 -21
- package/contracts/shared/RegistryLinked.sol +9 -14
- package/contracts/shared/Service.sol +20 -35
- package/contracts/shared/TokenHandler.sol +275 -72
- package/contracts/shared/TokenHandlerDeployerLib.sol +10 -2
- package/contracts/staking/IStaking.sol +271 -71
- package/contracts/staking/IStakingService.sol +45 -78
- package/contracts/staking/ITargetLimitHandler.sol +17 -0
- package/contracts/staking/Staking.sol +523 -222
- package/contracts/staking/{StakeManagerLib.sol → StakingLib.sol} +70 -81
- package/contracts/staking/StakingManager.sol +12 -9
- package/contracts/staking/StakingReader.sol +70 -82
- package/contracts/staking/StakingService.sol +63 -149
- package/contracts/staking/StakingServiceManager.sol +7 -5
- package/contracts/staking/StakingStore.sol +1093 -330
- package/contracts/staking/TargetHandler.sol +132 -0
- package/contracts/staking/TargetManagerLib.sol +73 -46
- package/contracts/type/Amount.sol +19 -0
- package/contracts/type/Blocknumber.sol +15 -15
- package/contracts/type/ChainId.sol +101 -0
- package/contracts/type/ClaimId.sol +6 -1
- package/contracts/type/Fee.sol +8 -8
- package/contracts/type/Key32.sol +2 -2
- package/contracts/type/Key32Set.sol +62 -0
- package/contracts/type/NftId.sol +7 -0
- package/contracts/type/ObjectType.sol +73 -37
- package/contracts/type/PayoutId.sol +10 -10
- package/contracts/type/RiskId.sol +38 -6
- package/contracts/type/RoleId.sol +61 -55
- package/contracts/type/Seconds.sol +27 -0
- package/contracts/type/Selector.sol +5 -0
- package/contracts/type/StateId.sol +15 -1
- package/contracts/type/String.sol +12 -0
- package/contracts/type/Timestamp.sol +4 -7
- package/contracts/type/UFixed.sol +38 -126
- package/contracts/type/Version.sol +54 -5
- package/contracts/upgradeability/IVersionable.sol +3 -0
- package/contracts/upgradeability/ProxyManager.sol +93 -45
- package/contracts/upgradeability/UpgradableProxyWithAdmin.sol +12 -2
- package/contracts/upgradeability/Versionable.sol +8 -5
- package/package.json +5 -4
- 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/instance/module/IAccess.sol/IAccess.dbg.json +0 -4
- package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +0 -129
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +0 -4
- package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.dbg.json +0 -4
- package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.json +0 -39
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +0 -4
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +0 -387
- package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +0 -4
- package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +0 -164
- package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +0 -4
- package/artifacts/contracts/type/UFixed.sol/MathLib.json +0 -16
- package/contracts/authorization/IModuleAuthorization.sol +0 -21
- package/contracts/authorization/ModuleAuthorization.sol +0 -78
- package/contracts/instance/module/IAccess.sol +0 -46
- package/contracts/shared/ComponentVerifyingService.sol +0 -117
- package/contracts/shared/InitializableCustom.sol +0 -177
- package/contracts/staking/StakingLifecycle.sol +0 -23
@@ -0,0 +1,133 @@
|
|
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
|
+
)
|
39
|
+
{
|
40
|
+
initialize(
|
41
|
+
registry,
|
42
|
+
productNftId,
|
43
|
+
authorization,
|
44
|
+
initialOwner,
|
45
|
+
"SimpleOracle"
|
46
|
+
);
|
47
|
+
}
|
48
|
+
|
49
|
+
function initialize(
|
50
|
+
address registry,
|
51
|
+
NftId productNftId,
|
52
|
+
IAuthorization authorization,
|
53
|
+
address initialOwner,
|
54
|
+
string memory name
|
55
|
+
)
|
56
|
+
public
|
57
|
+
virtual
|
58
|
+
initializer()
|
59
|
+
{
|
60
|
+
_initializeBasicOracle(
|
61
|
+
registry,
|
62
|
+
productNftId,
|
63
|
+
authorization,
|
64
|
+
initialOwner,
|
65
|
+
name);
|
66
|
+
}
|
67
|
+
|
68
|
+
/// @dev use case specific handling of oracle requests
|
69
|
+
/// for now only log is emitted to verify that request has been received by oracle component
|
70
|
+
function _request(
|
71
|
+
RequestId requestId,
|
72
|
+
NftId requesterId,
|
73
|
+
bytes calldata requestData,
|
74
|
+
Timestamp expiryAt
|
75
|
+
)
|
76
|
+
internal
|
77
|
+
virtual override
|
78
|
+
{
|
79
|
+
SimpleRequest memory request = abi.decode(requestData, (SimpleRequest));
|
80
|
+
|
81
|
+
if (request.synchronous) {
|
82
|
+
_respondSync(requestId);
|
83
|
+
}
|
84
|
+
|
85
|
+
emit LogSimpleOracleRequestReceived(requestId, requesterId, request.synchronous, request.text);
|
86
|
+
}
|
87
|
+
|
88
|
+
|
89
|
+
/// @dev use case specific handling of oracle requests
|
90
|
+
/// for now only log is emitted to verify that cancelling has been received by oracle component
|
91
|
+
function _cancel(
|
92
|
+
RequestId requestId
|
93
|
+
)
|
94
|
+
internal
|
95
|
+
virtual override
|
96
|
+
{
|
97
|
+
emit LogSimpleOracleCancellingReceived(requestId);
|
98
|
+
}
|
99
|
+
|
100
|
+
|
101
|
+
function respondAsync(
|
102
|
+
RequestId requestId,
|
103
|
+
string memory responseText,
|
104
|
+
bool revertInCall,
|
105
|
+
Timestamp revertUntil
|
106
|
+
)
|
107
|
+
external
|
108
|
+
// permissionless, no restricted() for now
|
109
|
+
{
|
110
|
+
bytes memory responseData = abi.encode(
|
111
|
+
SimpleResponse(
|
112
|
+
revertInCall,
|
113
|
+
revertUntil,
|
114
|
+
responseText));
|
115
|
+
|
116
|
+
_respond(requestId, responseData);
|
117
|
+
|
118
|
+
emit LogSimpleOracleAsyncResponseSent(requestId, responseText);
|
119
|
+
}
|
120
|
+
|
121
|
+
|
122
|
+
function _respondSync(
|
123
|
+
RequestId requestId
|
124
|
+
)
|
125
|
+
internal
|
126
|
+
{
|
127
|
+
bytes memory responseData = abi.encode(ANSWER_SYNC);
|
128
|
+
_respond(requestId, responseData);
|
129
|
+
|
130
|
+
emit LogSimpleOracleSyncResponseSent(requestId, ANSWER_SYNC);
|
131
|
+
}
|
132
|
+
|
133
|
+
}
|
@@ -0,0 +1,102 @@
|
|
1
|
+
// SPDX-License-Identifier: Apache-2.0
|
2
|
+
pragma solidity ^0.8.20;
|
3
|
+
|
4
|
+
import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol";
|
5
|
+
|
6
|
+
import {Amount, AmountLib} from "../../type/Amount.sol";
|
7
|
+
import {BasicPool} from "../../pool/BasicPool.sol";
|
8
|
+
import {Fee} from "../../type/Fee.sol";
|
9
|
+
import {IAuthorization} from "../../authorization/IAuthorization.sol";
|
10
|
+
import {IComponents} from "../../instance/module/IComponents.sol";
|
11
|
+
import {NftId} from "../../type/NftId.sol";
|
12
|
+
import {Seconds} from "../../type/Timestamp.sol";
|
13
|
+
import {UFixed} from "../../type/UFixed.sol";
|
14
|
+
|
15
|
+
contract SimplePool is
|
16
|
+
BasicPool
|
17
|
+
{
|
18
|
+
|
19
|
+
constructor(
|
20
|
+
address registry,
|
21
|
+
NftId productNftId,
|
22
|
+
IComponents.PoolInfo memory poolInfo,
|
23
|
+
IAuthorization authorization,
|
24
|
+
address initialOwner
|
25
|
+
)
|
26
|
+
{
|
27
|
+
initialize(
|
28
|
+
registry,
|
29
|
+
productNftId,
|
30
|
+
poolInfo,
|
31
|
+
authorization,
|
32
|
+
initialOwner
|
33
|
+
);
|
34
|
+
}
|
35
|
+
|
36
|
+
|
37
|
+
function initialize(
|
38
|
+
address registry,
|
39
|
+
NftId productNftId,
|
40
|
+
IComponents.PoolInfo memory poolInfo,
|
41
|
+
IAuthorization authorization,
|
42
|
+
address initialOwner
|
43
|
+
)
|
44
|
+
public
|
45
|
+
virtual
|
46
|
+
initializer()
|
47
|
+
{
|
48
|
+
_initializeBasicPool(
|
49
|
+
registry,
|
50
|
+
productNftId,
|
51
|
+
"SimplePool",
|
52
|
+
poolInfo,
|
53
|
+
authorization,
|
54
|
+
initialOwner);
|
55
|
+
}
|
56
|
+
|
57
|
+
|
58
|
+
function createBundle(
|
59
|
+
Fee memory fee,
|
60
|
+
uint256 initialAmount,
|
61
|
+
Seconds lifetime,
|
62
|
+
bytes calldata filter
|
63
|
+
)
|
64
|
+
external
|
65
|
+
virtual
|
66
|
+
returns(NftId bundleNftId, uint256 netStakedAmountInt)
|
67
|
+
{
|
68
|
+
address owner = msg.sender;
|
69
|
+
Amount netStakedAmount;
|
70
|
+
bundleNftId = _createBundle(
|
71
|
+
owner,
|
72
|
+
fee,
|
73
|
+
lifetime,
|
74
|
+
filter
|
75
|
+
);
|
76
|
+
netStakedAmount = _stake(bundleNftId, AmountLib.toAmount(initialAmount));
|
77
|
+
netStakedAmountInt = netStakedAmount.toInt();
|
78
|
+
}
|
79
|
+
|
80
|
+
|
81
|
+
function fundPoolWallet(
|
82
|
+
Amount amount
|
83
|
+
)
|
84
|
+
external
|
85
|
+
{
|
86
|
+
_fundPoolWallet(amount);
|
87
|
+
}
|
88
|
+
|
89
|
+
|
90
|
+
function defundPoolWallet(
|
91
|
+
Amount amount
|
92
|
+
)
|
93
|
+
external
|
94
|
+
{
|
95
|
+
_defundPoolWallet(amount);
|
96
|
+
}
|
97
|
+
|
98
|
+
|
99
|
+
function approveTokenHandler(IERC20Metadata token, Amount amount) external restricted() onlyOwner() { _approveTokenHandler(token, amount); }
|
100
|
+
function setLocked(bool locked) external onlyOwner() { _setLocked(locked); }
|
101
|
+
function setWallet(address newWallet) external restricted() onlyOwner() { _setWallet(newWallet); }
|
102
|
+
}
|
@@ -0,0 +1,28 @@
|
|
1
|
+
// SPDX-License-Identifier: Apache-2.0
|
2
|
+
pragma solidity ^0.8.20;
|
3
|
+
|
4
|
+
import {BasicPoolAuthorization} from "../../pool/BasicPoolAuthorization.sol";
|
5
|
+
import {IAccess} from "../../authorization/IAccess.sol";
|
6
|
+
import {PUBLIC_ROLE} from "../../type/RoleId.sol";
|
7
|
+
import {SimplePool} from "./SimplePool.sol";
|
8
|
+
|
9
|
+
contract SimplePoolAuthorization
|
10
|
+
is BasicPoolAuthorization
|
11
|
+
{
|
12
|
+
constructor(string memory poolName)
|
13
|
+
BasicPoolAuthorization(poolName)
|
14
|
+
{}
|
15
|
+
|
16
|
+
function _setupTargetAuthorizations()
|
17
|
+
internal
|
18
|
+
virtual override
|
19
|
+
{
|
20
|
+
super._setupTargetAuthorizations();
|
21
|
+
|
22
|
+
// authorize public role (open access to any account, only allows to lock target)
|
23
|
+
IAccess.FunctionInfo[] storage functions;
|
24
|
+
functions = _authorizeForTarget(getMainTargetName(), PUBLIC_ROLE());
|
25
|
+
_authorize(functions, SimplePool.approveTokenHandler.selector, "approveTokenHandler");
|
26
|
+
_authorize(functions, SimplePool.setWallet.selector, "setWallet");
|
27
|
+
}
|
28
|
+
}
|
@@ -0,0 +1,437 @@
|
|
1
|
+
// SPDX-License-Identifier: Apache-2.0
|
2
|
+
pragma solidity ^0.8.20;
|
3
|
+
|
4
|
+
import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol";
|
5
|
+
|
6
|
+
import {Amount, AmountLib} from "../../type/Amount.sol";
|
7
|
+
import {BasicProduct} from "../../product/BasicProduct.sol";
|
8
|
+
import {ClaimId} from "../../type/ClaimId.sol";
|
9
|
+
import {IAuthorization} from "../../authorization/IAuthorization.sol";
|
10
|
+
import {IComponents} from "../../instance/module/IComponents.sol";
|
11
|
+
import {IOracleService} from "../../oracle/IOracleService.sol";
|
12
|
+
import {ORACLE} from "../../type/ObjectType.sol";
|
13
|
+
import {NftId} from "../../type/NftId.sol";
|
14
|
+
import {PayoutId} from "../../type/PayoutId.sol";
|
15
|
+
import {ReferralId} from "../../type/Referral.sol";
|
16
|
+
import {RequestId} from "../../type/RequestId.sol";
|
17
|
+
import {RiskId} from "../../type/RiskId.sol";
|
18
|
+
import {Seconds} from "../../type/Seconds.sol";
|
19
|
+
import {SimpleOracle} from "./SimpleOracle.sol";
|
20
|
+
import {StateId} from "../../type/StateId.sol";
|
21
|
+
import {Timestamp, TimestampLib} from "../../type/Timestamp.sol";
|
22
|
+
|
23
|
+
uint64 constant SPECIAL_ROLE_INT = 11111;
|
24
|
+
|
25
|
+
contract SimpleProduct is
|
26
|
+
BasicProduct
|
27
|
+
{
|
28
|
+
|
29
|
+
event LogSimpleProductRequestAsyncFulfilled(RequestId requestId, string responseText, uint256 responseDataLength);
|
30
|
+
event LogSimpleProductRequestSyncFulfilled(RequestId requestId, string responseText, uint256 responseDataLength);
|
31
|
+
|
32
|
+
error ErrorSimpleProductRevertedWhileProcessingResponse(RequestId requestId);
|
33
|
+
|
34
|
+
IOracleService private _oracleService;
|
35
|
+
|
36
|
+
constructor(
|
37
|
+
address registry,
|
38
|
+
NftId instanceNftId,
|
39
|
+
string memory name,
|
40
|
+
IComponents.ProductInfo memory productInfo,
|
41
|
+
IComponents.FeeInfo memory feeInfo,
|
42
|
+
IAuthorization authorization,
|
43
|
+
address initialOwner
|
44
|
+
)
|
45
|
+
{
|
46
|
+
initialize(
|
47
|
+
registry,
|
48
|
+
instanceNftId,
|
49
|
+
name,
|
50
|
+
productInfo,
|
51
|
+
feeInfo,
|
52
|
+
authorization,
|
53
|
+
initialOwner);
|
54
|
+
}
|
55
|
+
|
56
|
+
|
57
|
+
function initialize(
|
58
|
+
address registry,
|
59
|
+
NftId instanceNftid,
|
60
|
+
string memory name,
|
61
|
+
IComponents.ProductInfo memory productInfo,
|
62
|
+
IComponents.FeeInfo memory feeInfo,
|
63
|
+
IAuthorization authorization,
|
64
|
+
address initialOwner
|
65
|
+
)
|
66
|
+
public
|
67
|
+
virtual
|
68
|
+
initializer()
|
69
|
+
{
|
70
|
+
_initializeBasicProduct(
|
71
|
+
registry,
|
72
|
+
instanceNftid,
|
73
|
+
name,
|
74
|
+
productInfo,
|
75
|
+
feeInfo,
|
76
|
+
authorization,
|
77
|
+
initialOwner);
|
78
|
+
|
79
|
+
_oracleService = IOracleService(_getServiceAddress(ORACLE()));
|
80
|
+
}
|
81
|
+
|
82
|
+
|
83
|
+
function createRisk(
|
84
|
+
string memory id,
|
85
|
+
bytes memory data
|
86
|
+
) public returns (RiskId) {
|
87
|
+
return _createRisk(
|
88
|
+
bytes32(abi.encodePacked(id)),
|
89
|
+
data
|
90
|
+
);
|
91
|
+
}
|
92
|
+
|
93
|
+
function updateRisk(
|
94
|
+
RiskId id,
|
95
|
+
bytes memory data
|
96
|
+
) public {
|
97
|
+
_updateRisk(
|
98
|
+
id,
|
99
|
+
data
|
100
|
+
);
|
101
|
+
}
|
102
|
+
|
103
|
+
function setRiskLocked(
|
104
|
+
RiskId id,
|
105
|
+
bool locked
|
106
|
+
) public {
|
107
|
+
_setRiskLocked(
|
108
|
+
id,
|
109
|
+
locked
|
110
|
+
);
|
111
|
+
}
|
112
|
+
|
113
|
+
function closeRisk(
|
114
|
+
RiskId id
|
115
|
+
) public {
|
116
|
+
_closeRisk(id);
|
117
|
+
}
|
118
|
+
|
119
|
+
function createApplication(
|
120
|
+
address applicationOwner,
|
121
|
+
RiskId riskId,
|
122
|
+
uint256 sumInsured,
|
123
|
+
Seconds lifetime,
|
124
|
+
bytes memory applicationData,
|
125
|
+
NftId bundleNftId,
|
126
|
+
ReferralId referralId
|
127
|
+
)
|
128
|
+
public
|
129
|
+
returns (NftId nftId)
|
130
|
+
{
|
131
|
+
Amount sumInsuredAmount = AmountLib.toAmount(sumInsured);
|
132
|
+
Amount premiumAmount = calculatePremium(
|
133
|
+
sumInsuredAmount,
|
134
|
+
riskId,
|
135
|
+
lifetime,
|
136
|
+
applicationData,
|
137
|
+
bundleNftId,
|
138
|
+
referralId);
|
139
|
+
|
140
|
+
return _createApplication(
|
141
|
+
applicationOwner,
|
142
|
+
riskId,
|
143
|
+
sumInsuredAmount,
|
144
|
+
premiumAmount,
|
145
|
+
lifetime,
|
146
|
+
bundleNftId,
|
147
|
+
referralId,
|
148
|
+
applicationData
|
149
|
+
);
|
150
|
+
}
|
151
|
+
|
152
|
+
function createApplication2(
|
153
|
+
address applicationOwner,
|
154
|
+
RiskId riskId,
|
155
|
+
Amount sumInsuredAmount,
|
156
|
+
Amount premiumAmount,
|
157
|
+
Seconds lifetime,
|
158
|
+
bytes memory applicationData,
|
159
|
+
NftId bundleNftId,
|
160
|
+
ReferralId referralId
|
161
|
+
)
|
162
|
+
public
|
163
|
+
returns (NftId nftId)
|
164
|
+
{
|
165
|
+
return _createApplication(
|
166
|
+
applicationOwner,
|
167
|
+
riskId,
|
168
|
+
sumInsuredAmount,
|
169
|
+
premiumAmount,
|
170
|
+
lifetime,
|
171
|
+
bundleNftId,
|
172
|
+
referralId,
|
173
|
+
applicationData
|
174
|
+
);
|
175
|
+
}
|
176
|
+
|
177
|
+
function revoke(
|
178
|
+
NftId applicationNftId
|
179
|
+
) public {
|
180
|
+
_revoke(applicationNftId);
|
181
|
+
}
|
182
|
+
|
183
|
+
function createPolicy(
|
184
|
+
NftId applicationNftId,
|
185
|
+
bool requirePremiumPayment,
|
186
|
+
Timestamp activateAt
|
187
|
+
) public {
|
188
|
+
_createPolicy(applicationNftId, activateAt, AmountLib.max());
|
189
|
+
if (requirePremiumPayment == true) {
|
190
|
+
_collectPremium(applicationNftId, activateAt);
|
191
|
+
}
|
192
|
+
}
|
193
|
+
|
194
|
+
function createPolicy2(
|
195
|
+
NftId applicationNftId,
|
196
|
+
bool requirePremiumPayment,
|
197
|
+
Timestamp activateAt,
|
198
|
+
Amount maxPremiumAmount
|
199
|
+
) public {
|
200
|
+
_createPolicy(applicationNftId, activateAt, maxPremiumAmount);
|
201
|
+
if (requirePremiumPayment == true) {
|
202
|
+
_collectPremium(applicationNftId, activateAt);
|
203
|
+
}
|
204
|
+
}
|
205
|
+
|
206
|
+
function decline(
|
207
|
+
NftId policyNftId
|
208
|
+
) public {
|
209
|
+
_decline(policyNftId);
|
210
|
+
}
|
211
|
+
|
212
|
+
function expire(
|
213
|
+
NftId policyNftId,
|
214
|
+
Timestamp expireAt
|
215
|
+
)
|
216
|
+
public
|
217
|
+
returns (Timestamp)
|
218
|
+
{
|
219
|
+
return _expire(policyNftId, expireAt);
|
220
|
+
}
|
221
|
+
|
222
|
+
function collectPremium(
|
223
|
+
NftId policyNftId,
|
224
|
+
Timestamp activateAt
|
225
|
+
) public {
|
226
|
+
_collectPremium(policyNftId, activateAt);
|
227
|
+
}
|
228
|
+
|
229
|
+
function activate(
|
230
|
+
NftId policyNftId,
|
231
|
+
Timestamp activateAt
|
232
|
+
) public {
|
233
|
+
_activate(policyNftId, activateAt);
|
234
|
+
}
|
235
|
+
|
236
|
+
function adjustActivation(
|
237
|
+
NftId policyNftId,
|
238
|
+
Timestamp activateAt
|
239
|
+
) public {
|
240
|
+
_adjustActivation(policyNftId, activateAt);
|
241
|
+
}
|
242
|
+
|
243
|
+
function close(
|
244
|
+
NftId policyNftId
|
245
|
+
) public {
|
246
|
+
_close(policyNftId);
|
247
|
+
}
|
248
|
+
|
249
|
+
function submitClaim(
|
250
|
+
NftId policyNftId,
|
251
|
+
Amount claimAmount,
|
252
|
+
bytes memory submissionData
|
253
|
+
) public returns (ClaimId) {
|
254
|
+
return _submitClaim(policyNftId, claimAmount, submissionData);
|
255
|
+
}
|
256
|
+
|
257
|
+
function revokeClaim(
|
258
|
+
NftId policyNftId,
|
259
|
+
ClaimId claimId
|
260
|
+
) public {
|
261
|
+
_revokeClaim(policyNftId, claimId);
|
262
|
+
}
|
263
|
+
|
264
|
+
function confirmClaim(
|
265
|
+
NftId policyNftId,
|
266
|
+
ClaimId claimId,
|
267
|
+
Amount confirmedAmount,
|
268
|
+
bytes memory processData
|
269
|
+
) public {
|
270
|
+
_confirmClaim(policyNftId, claimId, confirmedAmount, processData);
|
271
|
+
}
|
272
|
+
|
273
|
+
function declineClaim(
|
274
|
+
NftId policyNftId,
|
275
|
+
ClaimId claimId,
|
276
|
+
bytes memory processData
|
277
|
+
) public {
|
278
|
+
_declineClaim(policyNftId, claimId, processData);
|
279
|
+
}
|
280
|
+
|
281
|
+
function cancelConfirmedClaim(
|
282
|
+
NftId policyNftId,
|
283
|
+
ClaimId claimId
|
284
|
+
) public {
|
285
|
+
_cancelConfirmedClaim(policyNftId, claimId);
|
286
|
+
}
|
287
|
+
|
288
|
+
function createPayout(
|
289
|
+
NftId policyNftId,
|
290
|
+
ClaimId claimId,
|
291
|
+
Amount amount,
|
292
|
+
bytes memory data
|
293
|
+
) public returns (PayoutId) {
|
294
|
+
return _createPayout(policyNftId, claimId, amount, data);
|
295
|
+
}
|
296
|
+
|
297
|
+
function cancelPayout(
|
298
|
+
NftId policyNftId,
|
299
|
+
PayoutId payoutId
|
300
|
+
) public {
|
301
|
+
_cancelPayout(policyNftId, payoutId);
|
302
|
+
}
|
303
|
+
|
304
|
+
// TODO add test
|
305
|
+
function createPayoutForBeneficiary(
|
306
|
+
NftId policyNftId,
|
307
|
+
ClaimId claimId,
|
308
|
+
Amount amount,
|
309
|
+
address beneficiary,
|
310
|
+
bytes memory data
|
311
|
+
) public returns (PayoutId) {
|
312
|
+
return _createPayoutForBeneficiary(policyNftId, claimId, amount, beneficiary, data);
|
313
|
+
}
|
314
|
+
|
315
|
+
function processPayout(
|
316
|
+
NftId policyNftId,
|
317
|
+
PayoutId payoutId
|
318
|
+
) public returns (Amount netPayoutAmount, Amount processingFeeAmount) {
|
319
|
+
(netPayoutAmount, processingFeeAmount) = _processPayout(policyNftId, payoutId);
|
320
|
+
}
|
321
|
+
|
322
|
+
function createOracleRequest(
|
323
|
+
NftId oracleNftId,
|
324
|
+
string memory requestText,
|
325
|
+
Timestamp expiryAt,
|
326
|
+
bool synchronous
|
327
|
+
)
|
328
|
+
public
|
329
|
+
// restricted()
|
330
|
+
returns (RequestId)
|
331
|
+
{
|
332
|
+
bytes memory requestData = abi.encode(SimpleOracle.SimpleRequest(
|
333
|
+
synchronous,
|
334
|
+
requestText));
|
335
|
+
|
336
|
+
if (synchronous) {
|
337
|
+
return _oracleService.request(
|
338
|
+
oracleNftId,
|
339
|
+
requestData,
|
340
|
+
expiryAt,
|
341
|
+
"fulfillOracleRequestSync");
|
342
|
+
} else {
|
343
|
+
return _oracleService.request(
|
344
|
+
oracleNftId,
|
345
|
+
requestData,
|
346
|
+
expiryAt,
|
347
|
+
"fulfillOracleRequestAsync");
|
348
|
+
}
|
349
|
+
}
|
350
|
+
|
351
|
+
function createOracleRequest2(
|
352
|
+
NftId oracleNftId,
|
353
|
+
string memory requestText,
|
354
|
+
Timestamp expiryAt,
|
355
|
+
bool synchronous,
|
356
|
+
string memory callbackMethod
|
357
|
+
)
|
358
|
+
public
|
359
|
+
// restricted()
|
360
|
+
returns (RequestId)
|
361
|
+
{
|
362
|
+
bytes memory requestData = abi.encode(SimpleOracle.SimpleRequest(
|
363
|
+
synchronous,
|
364
|
+
requestText));
|
365
|
+
|
366
|
+
return _oracleService.request(
|
367
|
+
oracleNftId,
|
368
|
+
requestData,
|
369
|
+
expiryAt,
|
370
|
+
callbackMethod);
|
371
|
+
}
|
372
|
+
|
373
|
+
function cancelOracleRequest(
|
374
|
+
RequestId requestId
|
375
|
+
)
|
376
|
+
public
|
377
|
+
// restricted() //
|
378
|
+
{
|
379
|
+
_oracleService.cancel(requestId);
|
380
|
+
}
|
381
|
+
|
382
|
+
function fulfillOracleRequestSync(
|
383
|
+
RequestId requestId,
|
384
|
+
bytes memory responseData
|
385
|
+
)
|
386
|
+
public
|
387
|
+
// restricted() // only oracle service
|
388
|
+
{
|
389
|
+
string memory responseText = abi.decode(responseData, (string));
|
390
|
+
emit LogSimpleProductRequestSyncFulfilled(requestId, responseText, bytes(responseText).length);
|
391
|
+
}
|
392
|
+
|
393
|
+
function fulfillOracleRequestAsync(
|
394
|
+
RequestId requestId,
|
395
|
+
bytes memory responseData
|
396
|
+
)
|
397
|
+
public
|
398
|
+
// restricted() // only oracle service
|
399
|
+
{
|
400
|
+
SimpleOracle.SimpleResponse memory response = abi.decode(
|
401
|
+
responseData, (SimpleOracle.SimpleResponse));
|
402
|
+
|
403
|
+
if (response.revertInCall && response.revertUntil >= TimestampLib.current()) {
|
404
|
+
revert ErrorSimpleProductRevertedWhileProcessingResponse(requestId);
|
405
|
+
}
|
406
|
+
|
407
|
+
emit LogSimpleProductRequestAsyncFulfilled(requestId, response.text, bytes(response.text).length);
|
408
|
+
}
|
409
|
+
|
410
|
+
|
411
|
+
function resend(
|
412
|
+
RequestId requestId
|
413
|
+
)
|
414
|
+
public
|
415
|
+
// restricted() //
|
416
|
+
{
|
417
|
+
_oracleService.resend(requestId);
|
418
|
+
}
|
419
|
+
|
420
|
+
|
421
|
+
function doSomethingOnlyWhenActive()
|
422
|
+
public
|
423
|
+
onlyActive()
|
424
|
+
returns (bool)
|
425
|
+
{
|
426
|
+
return true;
|
427
|
+
}
|
428
|
+
|
429
|
+
|
430
|
+
function getOracleService() public view returns (IOracleService) {
|
431
|
+
return _oracleService;
|
432
|
+
}
|
433
|
+
|
434
|
+
function approveTokenHandler(IERC20Metadata token, Amount amount) external restricted() onlyOwner() { _approveTokenHandler(token, amount); }
|
435
|
+
function setLocked(bool locked) external onlyOwner() { _setLocked(locked); }
|
436
|
+
function setWallet(address newWallet) external restricted() onlyOwner() { _setWallet(newWallet); }
|
437
|
+
}
|