@etherisc/gif-next 0.0.2-2296e6c-721 → 0.0.2-2298fe6-554
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 +1 -1
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +1 -1
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +33 -52
- 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/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 +0 -19
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +1 -1
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +30 -177
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +1 -1
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +2 -2
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +0 -147
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +85 -192
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +84 -104
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.json +1463 -0
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +410 -0
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +1712 -0
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +414 -0
- package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.json +376 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +1411 -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 +1517 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +1978 -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/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +10 -99
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +95 -98
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +14 -14
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +84 -65
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +39 -146
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +61 -81
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +82 -207
- package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +2 -2
- package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +2 -2
- package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +2 -2
- package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +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 +20 -167
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +1 -1
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +2 -2
- 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/IOracleService.sol/IOracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +0 -147
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +37 -144
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +60 -80
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +0 -147
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +2 -2
- package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleService.sol/BundleService.json +81 -188
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +82 -102
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +0 -10
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
- package/artifacts/contracts/pool/Pool.sol/Pool.json +0 -147
- package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolService.sol/PoolService.json +43 -160
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +63 -83
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +31 -146
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +57 -81
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +0 -147
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +2 -2
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +190 -175
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +92 -100
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +98 -0
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +83 -11
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +198 -185
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +99 -95
- package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
- package/artifacts/contracts/product/PricingService.sol/PricingService.json +55 -162
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +68 -88
- package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
- package/artifacts/contracts/product/Product.sol/Product.json +0 -147
- package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +1 -1
- package/artifacts/contracts/product/RiskService.sol/RiskService.json +25 -132
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +54 -74
- 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 +221 -21
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
- package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
- package/artifacts/contracts/registry/Registry.sol/Registry.json +419 -82
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +244 -132
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +23 -130
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +52 -72
- package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +1 -1
- package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +2 -2
- package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +24 -14
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +2 -2
- 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 +0 -147
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +75 -182
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +89 -99
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +5 -112
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +4 -0
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +92 -0
- package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
- package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +14 -46
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
- package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
- package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.dbg.json +1 -1
- 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 +0 -147
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
- package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +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 +6 -57
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +18 -140
- package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
- package/artifacts/contracts/shared/Registerable.sol/Registerable.json +8 -97
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -15
- package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
- package/artifacts/contracts/shared/Service.sol/Service.json +5 -112
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +1 -1
- package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
- package/artifacts/contracts/staking/IStaking.sol/IStaking.json +16 -0
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +1 -1
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +83 -30
- package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
- package/artifacts/contracts/staking/Staking.sol/Staking.json +66 -189
- package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +2 -2
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +73 -84
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +2 -2
- package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingService.sol/StakingService.json +31 -138
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +56 -76
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +2 -2
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +2 -2
- package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
- package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
- package/artifacts/contracts/type/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 +2 -2
- 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/Key32.sol/Key32Lib.dbg.json +1 -1
- 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/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +2 -2
- package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
- package/artifacts/contracts/type/Referral.sol/ReferralLib.json +2 -2
- package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/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/Seconds.sol/SecondsLib.dbg.json +1 -1
- package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +1 -1
- package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +1 -1
- package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/StateId.sol/StateIdLib.json +2 -2
- package/artifacts/contracts/type/String.sol/StrLib.dbg.json +1 -1
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
- package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +1 -1
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
- package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
- package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +39 -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 +25 -24
- package/contracts/authorization/IAccessAdmin.sol +0 -1
- package/contracts/distribution/Distribution.sol +1 -1
- package/contracts/distribution/DistributionService.sol +8 -8
- package/contracts/distribution/DistributionServiceManager.sol +6 -6
- package/contracts/examples/fire/FirePool.sol +75 -0
- package/contracts/examples/fire/FirePoolAuthorization.sol +34 -0
- package/contracts/examples/fire/FireProduct.sol +329 -0
- package/contracts/examples/fire/FireProductAuthorization.sol +34 -0
- package/contracts/examples/fire/FireUSD.sol +26 -0
- package/contracts/examples/unpermissioned/SimpleDistribution.sol +50 -0
- package/contracts/examples/unpermissioned/SimpleOracle.sol +137 -0
- package/contracts/examples/unpermissioned/SimplePool.sol +76 -0
- package/contracts/examples/unpermissioned/SimpleProduct.sol +351 -0
- package/contracts/instance/Instance.sol +2 -2
- package/contracts/instance/InstanceAuthorizationV3.sol +1 -0
- package/contracts/instance/InstanceReader.sol +8 -0
- package/contracts/instance/InstanceService.sol +10 -11
- package/contracts/instance/InstanceServiceManager.sol +6 -7
- package/contracts/instance/InstanceStore.sol +0 -4
- package/contracts/instance/base/ObjectLifecycle.sol +2 -1
- package/contracts/instance/module/IPolicy.sol +5 -5
- package/contracts/oracle/Oracle.sol +1 -1
- package/contracts/oracle/OracleService.sol +8 -6
- package/contracts/oracle/OracleServiceManager.sol +6 -6
- package/contracts/pool/BundleService.sol +8 -8
- package/contracts/pool/BundleServiceManager.sol +6 -6
- package/contracts/pool/Pool.sol +1 -1
- package/contracts/pool/PoolService.sol +5 -6
- package/contracts/pool/PoolServiceManager.sol +4 -4
- package/contracts/product/ApplicationService.sol +4 -6
- package/contracts/product/ApplicationServiceManager.sol +4 -4
- package/contracts/product/ClaimService.sol +201 -71
- package/contracts/product/ClaimServiceManager.sol +4 -4
- package/contracts/product/IClaimService.sol +27 -5
- package/contracts/product/IPolicyService.sol +9 -5
- package/contracts/product/PolicyService.sol +115 -38
- package/contracts/product/PolicyServiceManager.sol +4 -4
- package/contracts/product/PricingService.sol +4 -5
- package/contracts/product/PricingServiceManager.sol +3 -3
- package/contracts/product/Product.sol +23 -5
- package/contracts/product/RiskService.sol +4 -5
- package/contracts/product/RiskServiceManager.sol +4 -4
- package/contracts/registry/ChainNft.sol +65 -32
- package/contracts/registry/IRegistry.sol +49 -15
- package/contracts/registry/Registry.sol +321 -195
- package/contracts/registry/RegistryAdmin.sol +140 -50
- package/contracts/registry/RegistryService.sol +2 -2
- package/contracts/registry/RegistryServiceManager.sol +2 -2
- package/contracts/registry/ReleaseRegistry.sol +12 -6
- package/contracts/shared/Component.sol +6 -6
- package/contracts/shared/ComponentService.sol +7 -7
- package/contracts/shared/ComponentServiceManager.sol +8 -5
- package/contracts/shared/ComponentVerifyingService.sol +1 -1
- package/contracts/shared/ContractLib.sol +38 -0
- package/contracts/shared/IPolicyHolder.sol +12 -22
- package/contracts/shared/InitializableERC165.sol +2 -2
- package/contracts/shared/InstanceLinkedComponent.sol +4 -4
- package/contracts/shared/NftOwnable.sol +5 -5
- package/contracts/shared/PolicyHolder.sol +12 -53
- package/contracts/shared/Registerable.sol +4 -4
- package/contracts/shared/RegistryLinked.sol +3 -2
- package/contracts/shared/Service.sol +16 -11
- package/contracts/staking/IStaking.sol +1 -0
- package/contracts/staking/StakeManagerLib.sol +18 -0
- package/contracts/staking/Staking.sol +6 -5
- package/contracts/staking/StakingManager.sol +8 -6
- package/contracts/staking/StakingService.sol +2 -2
- package/contracts/staking/StakingServiceManager.sol +2 -2
- package/contracts/type/NftId.sol +1 -0
- package/contracts/type/RiskId.sol +15 -1
- package/contracts/type/StateId.sol +1 -0
- package/contracts/upgradeability/ProxyManager.sol +67 -34
- package/contracts/upgradeability/Versionable.sol +2 -2
- package/package.json +1 -1
|
@@ -0,0 +1,76 @@
|
|
|
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 {NftId} from "../../type/NftId.sol";
|
|
10
|
+
import {Seconds} from "../../type/Timestamp.sol";
|
|
11
|
+
import {UFixed} from "../../type/UFixed.sol";
|
|
12
|
+
|
|
13
|
+
contract SimplePool is
|
|
14
|
+
BasicPool
|
|
15
|
+
{
|
|
16
|
+
|
|
17
|
+
constructor(
|
|
18
|
+
address registry,
|
|
19
|
+
NftId instanceNftId,
|
|
20
|
+
address token,
|
|
21
|
+
IAuthorization authorization,
|
|
22
|
+
address initialOwner
|
|
23
|
+
)
|
|
24
|
+
{
|
|
25
|
+
initialize(
|
|
26
|
+
registry,
|
|
27
|
+
instanceNftId,
|
|
28
|
+
token,
|
|
29
|
+
authorization,
|
|
30
|
+
initialOwner
|
|
31
|
+
);
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
function initialize(
|
|
35
|
+
address registry,
|
|
36
|
+
NftId instanceNftId,
|
|
37
|
+
address token,
|
|
38
|
+
IAuthorization authorization,
|
|
39
|
+
address initialOwner
|
|
40
|
+
)
|
|
41
|
+
public
|
|
42
|
+
virtual
|
|
43
|
+
initializer()
|
|
44
|
+
{
|
|
45
|
+
_initializeBasicPool(
|
|
46
|
+
registry,
|
|
47
|
+
instanceNftId,
|
|
48
|
+
authorization,
|
|
49
|
+
token,
|
|
50
|
+
"SimplePool",
|
|
51
|
+
initialOwner);
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
function createBundle(
|
|
55
|
+
Fee memory fee,
|
|
56
|
+
uint256 initialAmount,
|
|
57
|
+
Seconds lifetime,
|
|
58
|
+
bytes calldata filter
|
|
59
|
+
)
|
|
60
|
+
external
|
|
61
|
+
virtual
|
|
62
|
+
returns(NftId bundleNftId, uint256 netStakedAmountInt)
|
|
63
|
+
{
|
|
64
|
+
address owner = msg.sender;
|
|
65
|
+
Amount netStakedAmount;
|
|
66
|
+
bundleNftId = _createBundle(
|
|
67
|
+
owner,
|
|
68
|
+
fee,
|
|
69
|
+
lifetime,
|
|
70
|
+
filter
|
|
71
|
+
);
|
|
72
|
+
netStakedAmount = _stake(bundleNftId, AmountLib.toAmount(initialAmount));
|
|
73
|
+
netStakedAmountInt = netStakedAmount.toInt();
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
}
|
|
@@ -0,0 +1,351 @@
|
|
|
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 {IOracleService} from "../../oracle/IOracleService.sol";
|
|
9
|
+
import {ORACLE} from "../../type/ObjectType.sol";
|
|
10
|
+
import {NftId} from "../../type/NftId.sol";
|
|
11
|
+
import {PayoutId} from "../../type/PayoutId.sol";
|
|
12
|
+
import {ReferralId} from "../../type/Referral.sol";
|
|
13
|
+
import {RequestId} from "../../type/RequestId.sol";
|
|
14
|
+
import {RiskId} from "../../type/RiskId.sol";
|
|
15
|
+
import {Seconds} from "../../type/Seconds.sol";
|
|
16
|
+
import {SimpleOracle} from "./SimpleOracle.sol";
|
|
17
|
+
import {StateId} from "../../type/StateId.sol";
|
|
18
|
+
import {Timestamp, TimestampLib} from "../../type/Timestamp.sol";
|
|
19
|
+
|
|
20
|
+
uint64 constant SPECIAL_ROLE_INT = 11111;
|
|
21
|
+
|
|
22
|
+
contract SimpleProduct is
|
|
23
|
+
BasicProduct
|
|
24
|
+
{
|
|
25
|
+
|
|
26
|
+
event LogSimpleProductRequestAsyncFulfilled(RequestId requestId, string responseText, uint256 responseDataLength);
|
|
27
|
+
event LogSimpleProductRequestSyncFulfilled(RequestId requestId, string responseText, uint256 responseDataLength);
|
|
28
|
+
|
|
29
|
+
error ErrorSimpleProductRevertedWhileProcessingResponse(RequestId requestId);
|
|
30
|
+
|
|
31
|
+
IOracleService private _oracleService;
|
|
32
|
+
|
|
33
|
+
constructor(
|
|
34
|
+
address registry,
|
|
35
|
+
NftId instanceNftid,
|
|
36
|
+
IAuthorization authorization,
|
|
37
|
+
address initialOwner,
|
|
38
|
+
address token,
|
|
39
|
+
bool isInterceptor,
|
|
40
|
+
address pool,
|
|
41
|
+
address distribution
|
|
42
|
+
)
|
|
43
|
+
{
|
|
44
|
+
initialize(
|
|
45
|
+
registry,
|
|
46
|
+
instanceNftid,
|
|
47
|
+
authorization,
|
|
48
|
+
initialOwner,
|
|
49
|
+
"SimpleProduct",
|
|
50
|
+
token,
|
|
51
|
+
isInterceptor,
|
|
52
|
+
pool,
|
|
53
|
+
distribution);
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
|
|
57
|
+
function initialize(
|
|
58
|
+
address registry,
|
|
59
|
+
NftId instanceNftid,
|
|
60
|
+
IAuthorization authorization,
|
|
61
|
+
address initialOwner,
|
|
62
|
+
string memory name,
|
|
63
|
+
address token,
|
|
64
|
+
bool isInterceptor,
|
|
65
|
+
address pool,
|
|
66
|
+
address distribution
|
|
67
|
+
)
|
|
68
|
+
public
|
|
69
|
+
virtual
|
|
70
|
+
initializer()
|
|
71
|
+
{
|
|
72
|
+
_initializeBasicProduct(
|
|
73
|
+
registry,
|
|
74
|
+
instanceNftid,
|
|
75
|
+
authorization,
|
|
76
|
+
initialOwner,
|
|
77
|
+
name,
|
|
78
|
+
token,
|
|
79
|
+
isInterceptor,
|
|
80
|
+
pool,
|
|
81
|
+
distribution);
|
|
82
|
+
|
|
83
|
+
_oracleService = IOracleService(_getServiceAddress(ORACLE()));
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
function createRisk(
|
|
87
|
+
RiskId id,
|
|
88
|
+
bytes memory data
|
|
89
|
+
) public {
|
|
90
|
+
_createRisk(
|
|
91
|
+
id,
|
|
92
|
+
data
|
|
93
|
+
);
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
function updateRisk(
|
|
97
|
+
RiskId id,
|
|
98
|
+
bytes memory data
|
|
99
|
+
) public {
|
|
100
|
+
_updateRisk(
|
|
101
|
+
id,
|
|
102
|
+
data
|
|
103
|
+
);
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
function updateRiskState(
|
|
107
|
+
RiskId id,
|
|
108
|
+
StateId state
|
|
109
|
+
) public {
|
|
110
|
+
_updateRiskState(
|
|
111
|
+
id,
|
|
112
|
+
state
|
|
113
|
+
);
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
function createApplication(
|
|
117
|
+
address applicationOwner,
|
|
118
|
+
RiskId riskId,
|
|
119
|
+
uint256 sumInsured,
|
|
120
|
+
Seconds lifetime,
|
|
121
|
+
bytes memory applicationData,
|
|
122
|
+
NftId bundleNftId,
|
|
123
|
+
ReferralId referralId
|
|
124
|
+
)
|
|
125
|
+
public
|
|
126
|
+
returns (NftId nftId)
|
|
127
|
+
{
|
|
128
|
+
Amount sumInsuredAmount = AmountLib.toAmount(sumInsured);
|
|
129
|
+
Amount premiumAmount = calculatePremium(
|
|
130
|
+
sumInsuredAmount,
|
|
131
|
+
riskId,
|
|
132
|
+
lifetime,
|
|
133
|
+
applicationData,
|
|
134
|
+
bundleNftId,
|
|
135
|
+
referralId);
|
|
136
|
+
|
|
137
|
+
return _createApplication(
|
|
138
|
+
applicationOwner,
|
|
139
|
+
riskId,
|
|
140
|
+
sumInsuredAmount,
|
|
141
|
+
premiumAmount,
|
|
142
|
+
lifetime,
|
|
143
|
+
bundleNftId,
|
|
144
|
+
referralId,
|
|
145
|
+
applicationData
|
|
146
|
+
);
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
function createPolicy(
|
|
150
|
+
NftId applicationNftId,
|
|
151
|
+
bool requirePremiumPayment,
|
|
152
|
+
Timestamp activateAt
|
|
153
|
+
) public {
|
|
154
|
+
_createPolicy(applicationNftId, activateAt);
|
|
155
|
+
if (requirePremiumPayment == true) {
|
|
156
|
+
_collectPremium(applicationNftId, activateAt);
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
function decline(
|
|
161
|
+
NftId policyNftId
|
|
162
|
+
) public {
|
|
163
|
+
_decline(policyNftId);
|
|
164
|
+
}
|
|
165
|
+
|
|
166
|
+
function expire(
|
|
167
|
+
NftId policyNftId,
|
|
168
|
+
Timestamp expireAt
|
|
169
|
+
)
|
|
170
|
+
public
|
|
171
|
+
returns (Timestamp)
|
|
172
|
+
{
|
|
173
|
+
return _expire(policyNftId, expireAt);
|
|
174
|
+
}
|
|
175
|
+
|
|
176
|
+
function collectPremium(
|
|
177
|
+
NftId policyNftId,
|
|
178
|
+
Timestamp activateAt
|
|
179
|
+
) public {
|
|
180
|
+
_collectPremium(policyNftId, activateAt);
|
|
181
|
+
}
|
|
182
|
+
|
|
183
|
+
function activate(
|
|
184
|
+
NftId policyNftId,
|
|
185
|
+
Timestamp activateAt
|
|
186
|
+
) public {
|
|
187
|
+
_activate(policyNftId, activateAt);
|
|
188
|
+
}
|
|
189
|
+
|
|
190
|
+
function close(
|
|
191
|
+
NftId policyNftId
|
|
192
|
+
) public {
|
|
193
|
+
_close(policyNftId);
|
|
194
|
+
}
|
|
195
|
+
|
|
196
|
+
function submitClaim(
|
|
197
|
+
NftId policyNftId,
|
|
198
|
+
Amount claimAmount,
|
|
199
|
+
bytes memory submissionData
|
|
200
|
+
) public returns (ClaimId) {
|
|
201
|
+
return _submitClaim(policyNftId, claimAmount, submissionData);
|
|
202
|
+
}
|
|
203
|
+
|
|
204
|
+
function confirmClaim(
|
|
205
|
+
NftId policyNftId,
|
|
206
|
+
ClaimId claimId,
|
|
207
|
+
Amount confirmedAmount,
|
|
208
|
+
bytes memory processData
|
|
209
|
+
) public {
|
|
210
|
+
_confirmClaim(policyNftId, claimId, confirmedAmount, processData);
|
|
211
|
+
}
|
|
212
|
+
|
|
213
|
+
function declineClaim(
|
|
214
|
+
NftId policyNftId,
|
|
215
|
+
ClaimId claimId,
|
|
216
|
+
bytes memory processData
|
|
217
|
+
) public {
|
|
218
|
+
_declineClaim(policyNftId, claimId, processData);
|
|
219
|
+
}
|
|
220
|
+
|
|
221
|
+
function closeClaim(
|
|
222
|
+
NftId policyNftId,
|
|
223
|
+
ClaimId claimId
|
|
224
|
+
) public {
|
|
225
|
+
_closeClaim(policyNftId, claimId);
|
|
226
|
+
}
|
|
227
|
+
|
|
228
|
+
function createPayout(
|
|
229
|
+
NftId policyNftId,
|
|
230
|
+
ClaimId claimId,
|
|
231
|
+
Amount amount,
|
|
232
|
+
bytes memory data
|
|
233
|
+
) public returns (PayoutId) {
|
|
234
|
+
return _createPayout(policyNftId, claimId, amount, data);
|
|
235
|
+
}
|
|
236
|
+
|
|
237
|
+
// TODO add test
|
|
238
|
+
function createPayoutForBeneficiary(
|
|
239
|
+
NftId policyNftId,
|
|
240
|
+
ClaimId claimId,
|
|
241
|
+
Amount amount,
|
|
242
|
+
address beneficiary,
|
|
243
|
+
bytes memory data
|
|
244
|
+
) public returns (PayoutId) {
|
|
245
|
+
return _createPayoutForBeneficiary(policyNftId, claimId, amount, beneficiary, data);
|
|
246
|
+
}
|
|
247
|
+
|
|
248
|
+
function processPayout(
|
|
249
|
+
NftId policyNftId,
|
|
250
|
+
PayoutId payoutId
|
|
251
|
+
) public {
|
|
252
|
+
_processPayout(policyNftId, payoutId);
|
|
253
|
+
}
|
|
254
|
+
|
|
255
|
+
function createOracleRequest(
|
|
256
|
+
NftId oracleNftId,
|
|
257
|
+
string memory requestText,
|
|
258
|
+
Timestamp expiryAt,
|
|
259
|
+
bool synchronous
|
|
260
|
+
)
|
|
261
|
+
public
|
|
262
|
+
// restricted()
|
|
263
|
+
returns (RequestId)
|
|
264
|
+
{
|
|
265
|
+
bytes memory requestData = abi.encode(SimpleOracle.SimpleRequest(
|
|
266
|
+
synchronous,
|
|
267
|
+
requestText));
|
|
268
|
+
|
|
269
|
+
if (synchronous) {
|
|
270
|
+
return _oracleService.request(
|
|
271
|
+
oracleNftId,
|
|
272
|
+
requestData,
|
|
273
|
+
expiryAt,
|
|
274
|
+
"fulfillOracleRequestSync");
|
|
275
|
+
} else {
|
|
276
|
+
return _oracleService.request(
|
|
277
|
+
oracleNftId,
|
|
278
|
+
requestData,
|
|
279
|
+
expiryAt,
|
|
280
|
+
"fulfillOracleRequestAsync");
|
|
281
|
+
}
|
|
282
|
+
}
|
|
283
|
+
|
|
284
|
+
function cancelOracleRequest(
|
|
285
|
+
RequestId requestId
|
|
286
|
+
)
|
|
287
|
+
public
|
|
288
|
+
// restricted() //
|
|
289
|
+
{
|
|
290
|
+
_oracleService.cancel(requestId);
|
|
291
|
+
}
|
|
292
|
+
|
|
293
|
+
function fulfillOracleRequestSync(
|
|
294
|
+
RequestId requestId,
|
|
295
|
+
bytes memory responseData
|
|
296
|
+
)
|
|
297
|
+
public
|
|
298
|
+
// restricted() // only oracle service
|
|
299
|
+
{
|
|
300
|
+
string memory responseText = abi.decode(responseData, (string));
|
|
301
|
+
emit LogSimpleProductRequestSyncFulfilled(requestId, responseText, bytes(responseText).length);
|
|
302
|
+
}
|
|
303
|
+
|
|
304
|
+
function fulfillOracleRequestAsync(
|
|
305
|
+
RequestId requestId,
|
|
306
|
+
bytes memory responseData
|
|
307
|
+
)
|
|
308
|
+
public
|
|
309
|
+
// restricted() // only oracle service
|
|
310
|
+
{
|
|
311
|
+
SimpleOracle.SimpleResponse memory response = abi.decode(
|
|
312
|
+
responseData, (SimpleOracle.SimpleResponse));
|
|
313
|
+
|
|
314
|
+
if (response.revertInCall && response.revertUntil >= TimestampLib.blockTimestamp()) {
|
|
315
|
+
revert ErrorSimpleProductRevertedWhileProcessingResponse(requestId);
|
|
316
|
+
}
|
|
317
|
+
|
|
318
|
+
emit LogSimpleProductRequestAsyncFulfilled(requestId, response.text, bytes(response.text).length);
|
|
319
|
+
}
|
|
320
|
+
|
|
321
|
+
|
|
322
|
+
function resend(
|
|
323
|
+
RequestId requestId
|
|
324
|
+
)
|
|
325
|
+
public
|
|
326
|
+
// restricted() //
|
|
327
|
+
{
|
|
328
|
+
_oracleService.resend(requestId);
|
|
329
|
+
}
|
|
330
|
+
|
|
331
|
+
|
|
332
|
+
function doSomethingSpecial()
|
|
333
|
+
public
|
|
334
|
+
restricted()
|
|
335
|
+
returns (bool)
|
|
336
|
+
{
|
|
337
|
+
return true;
|
|
338
|
+
}
|
|
339
|
+
|
|
340
|
+
function doWhenNotLocked()
|
|
341
|
+
public
|
|
342
|
+
restricted()
|
|
343
|
+
returns (bool)
|
|
344
|
+
{
|
|
345
|
+
return true;
|
|
346
|
+
}
|
|
347
|
+
|
|
348
|
+
function getOracleService() public view returns (IOracleService) {
|
|
349
|
+
return _oracleService;
|
|
350
|
+
}
|
|
351
|
+
}
|
|
@@ -61,7 +61,7 @@ contract Instance is
|
|
|
61
61
|
__AccessManaged_init(_instanceAdmin.authority());
|
|
62
62
|
|
|
63
63
|
// setup instance object info
|
|
64
|
-
|
|
64
|
+
_initializeRegisterable(
|
|
65
65
|
address(registry),
|
|
66
66
|
registry.getNftId(),
|
|
67
67
|
INSTANCE(),
|
|
@@ -84,7 +84,7 @@ contract Instance is
|
|
|
84
84
|
INSTANCE(),
|
|
85
85
|
getMajorVersion()));
|
|
86
86
|
|
|
87
|
-
|
|
87
|
+
_registerInterface(type(IInstance).interfaceId);
|
|
88
88
|
}
|
|
89
89
|
|
|
90
90
|
//--- Staking ----------------------------------------------------------//
|
|
@@ -190,6 +190,7 @@ contract InstanceAuthorizationV3
|
|
|
190
190
|
_authorize(functions, InstanceStore.updatePolicy.selector, "updatePolicy");
|
|
191
191
|
_authorize(functions, InstanceStore.updatePolicyState.selector, "updatePolicyState");
|
|
192
192
|
_authorize(functions, InstanceStore.createPremium.selector, "createPremium");
|
|
193
|
+
_authorize(functions, InstanceStore.updatePremiumState.selector, "updatePremiumState");
|
|
193
194
|
|
|
194
195
|
// authorize claim service role
|
|
195
196
|
functions = _authorizeForTarget(INSTANCE_STORE_TARGET_NAME, getServiceRole(CLAIM()));
|
|
@@ -91,6 +91,14 @@ contract InstanceReader {
|
|
|
91
91
|
}
|
|
92
92
|
}
|
|
93
93
|
|
|
94
|
+
function getPremiumInfoState(NftId policyNftId)
|
|
95
|
+
public
|
|
96
|
+
view
|
|
97
|
+
returns (StateId state)
|
|
98
|
+
{
|
|
99
|
+
return _store.getState(toPremiumKey(policyNftId));
|
|
100
|
+
}
|
|
101
|
+
|
|
94
102
|
function getBundleState(NftId bundleNftId)
|
|
95
103
|
public
|
|
96
104
|
view
|
|
@@ -60,7 +60,7 @@ contract InstanceService is
|
|
|
60
60
|
|
|
61
61
|
modifier onlyInstance() {
|
|
62
62
|
address instanceAddress = msg.sender;
|
|
63
|
-
NftId instanceNftId = getRegistry().
|
|
63
|
+
NftId instanceNftId = getRegistry().getNftIdForAddress(msg.sender);
|
|
64
64
|
if (instanceNftId.eqz()) {
|
|
65
65
|
revert ErrorInstanceServiceNotRegistered(instanceAddress);
|
|
66
66
|
}
|
|
@@ -132,7 +132,7 @@ contract InstanceService is
|
|
|
132
132
|
virtual
|
|
133
133
|
onlyInstance()
|
|
134
134
|
{
|
|
135
|
-
NftId instanceNftId = getRegistry().
|
|
135
|
+
NftId instanceNftId = getRegistry().getNftIdForAddress(msg.sender);
|
|
136
136
|
_stakingService.setInstanceLockingPeriod(
|
|
137
137
|
instanceNftId,
|
|
138
138
|
stakeLockingPeriod);
|
|
@@ -144,7 +144,7 @@ contract InstanceService is
|
|
|
144
144
|
virtual
|
|
145
145
|
onlyInstance()
|
|
146
146
|
{
|
|
147
|
-
NftId instanceNftId = getRegistry().
|
|
147
|
+
NftId instanceNftId = getRegistry().getNftIdForAddress(msg.sender);
|
|
148
148
|
_stakingService.setInstanceRewardRate(
|
|
149
149
|
instanceNftId,
|
|
150
150
|
rewardRate);
|
|
@@ -156,7 +156,7 @@ contract InstanceService is
|
|
|
156
156
|
virtual
|
|
157
157
|
onlyInstance()
|
|
158
158
|
{
|
|
159
|
-
NftId instanceNftId = getRegistry().
|
|
159
|
+
NftId instanceNftId = getRegistry().getNftIdForAddress(msg.sender);
|
|
160
160
|
_stakingService.refillInstanceRewardReserves(
|
|
161
161
|
instanceNftId,
|
|
162
162
|
rewardProvider,
|
|
@@ -170,7 +170,7 @@ contract InstanceService is
|
|
|
170
170
|
onlyInstance()
|
|
171
171
|
returns (Amount newBalance)
|
|
172
172
|
{
|
|
173
|
-
NftId instanceNftId = getRegistry().
|
|
173
|
+
NftId instanceNftId = getRegistry().getNftIdForAddress(msg.sender);
|
|
174
174
|
_stakingService.withdrawInstanceRewardReserves(
|
|
175
175
|
instanceNftId,
|
|
176
176
|
dipAmount);
|
|
@@ -422,21 +422,20 @@ contract InstanceService is
|
|
|
422
422
|
bytes memory data
|
|
423
423
|
)
|
|
424
424
|
internal
|
|
425
|
-
initializer
|
|
426
425
|
virtual override
|
|
426
|
+
initializer()
|
|
427
427
|
{
|
|
428
428
|
(
|
|
429
|
-
address registryAddress
|
|
430
|
-
//address managerAddress
|
|
429
|
+
address registryAddress,
|
|
431
430
|
address authority
|
|
432
|
-
) = abi.decode(data, (address, address
|
|
431
|
+
) = abi.decode(data, (address, address));
|
|
433
432
|
|
|
434
|
-
|
|
433
|
+
_initializeService(registryAddress, authority, owner);
|
|
435
434
|
|
|
436
435
|
_registryService = IRegistryService(_getServiceAddress(REGISTRY()));
|
|
437
436
|
_stakingService = IStakingService(_getServiceAddress(STAKING()));
|
|
438
437
|
|
|
439
|
-
|
|
438
|
+
_registerInterface(type(IInstanceService).interfaceId);
|
|
440
439
|
}
|
|
441
440
|
|
|
442
441
|
|
|
@@ -12,16 +12,15 @@ contract InstanceServiceManager is ProxyManager {
|
|
|
12
12
|
/// @dev initializes proxy manager with instance service implementation
|
|
13
13
|
constructor(
|
|
14
14
|
address authority,
|
|
15
|
-
address
|
|
15
|
+
address registry,
|
|
16
16
|
bytes32 salt
|
|
17
17
|
)
|
|
18
|
-
ProxyManager(registryAddress)
|
|
19
18
|
{
|
|
20
|
-
InstanceService
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
address(
|
|
19
|
+
InstanceService svc = new InstanceService{salt: salt}();
|
|
20
|
+
bytes memory data = abi.encode(registry, authority);
|
|
21
|
+
IVersionable versionable = initialize(
|
|
22
|
+
registry,
|
|
23
|
+
address(svc),
|
|
25
24
|
data,
|
|
26
25
|
salt);
|
|
27
26
|
|
|
@@ -201,10 +201,6 @@ contract InstanceStore is
|
|
|
201
201
|
_create(_toNftKey32(policyNftId, PREMIUM()), abi.encode(premium));
|
|
202
202
|
}
|
|
203
203
|
|
|
204
|
-
function updatePremium(NftId policyNftId, IPolicy.PremiumInfo memory premium, StateId newState) external restricted() {
|
|
205
|
-
_update(_toNftKey32(policyNftId, PREMIUM()), abi.encode(premium), newState);
|
|
206
|
-
}
|
|
207
|
-
|
|
208
204
|
function updatePremiumState(NftId policyNftId, StateId newState) external restricted() {
|
|
209
205
|
_updateState(_toNftKey32(policyNftId, PREMIUM()), newState);
|
|
210
206
|
}
|
|
@@ -59,7 +59,8 @@ contract ObjectLifecycle is
|
|
|
59
59
|
}
|
|
60
60
|
|
|
61
61
|
function _setupPremiumLifecycle() private {
|
|
62
|
-
setInitialState(PREMIUM(),
|
|
62
|
+
setInitialState(PREMIUM(), EXPECTED());
|
|
63
|
+
setStateTransition(PREMIUM(), EXPECTED(), PAID());
|
|
63
64
|
}
|
|
64
65
|
|
|
65
66
|
function _setupClaimLifecycle() private {
|
|
@@ -49,7 +49,6 @@ interface IPolicy {
|
|
|
49
49
|
RiskId riskId;
|
|
50
50
|
Amount sumInsuredAmount;
|
|
51
51
|
Amount premiumAmount; // expected premium at application time
|
|
52
|
-
Amount premiumPaidAmount; // actual paid premium
|
|
53
52
|
Seconds lifetime;
|
|
54
53
|
// policy application data, no changes after applying for a policy
|
|
55
54
|
bytes applicationData;
|
|
@@ -69,8 +68,8 @@ interface IPolicy {
|
|
|
69
68
|
Amount paidAmount;
|
|
70
69
|
uint8 payoutsCount;
|
|
71
70
|
uint8 openPayoutsCount;
|
|
72
|
-
bytes submissionData; // claim submission data, no changes after submitting the claim
|
|
73
|
-
bytes processData; // data that may include information supporting confirm or decline
|
|
71
|
+
bytes submissionData; // use case specific claim submission data, no changes after submitting the claim
|
|
72
|
+
bytes processData; // use case specific data that may include information supporting confirm or decline
|
|
74
73
|
Timestamp closedAt; // payment of confirmed claim amount (or declinedAt)
|
|
75
74
|
}
|
|
76
75
|
|
|
@@ -78,7 +77,8 @@ interface IPolicy {
|
|
|
78
77
|
struct PayoutInfo {
|
|
79
78
|
ClaimId claimId;
|
|
80
79
|
Amount amount;
|
|
81
|
-
|
|
82
|
-
|
|
80
|
+
address beneficiary; // for address(0) beneficiary is policy nft owner
|
|
81
|
+
bytes data; // use case specific supporting data
|
|
82
|
+
Timestamp paidAt; // timestamp for actual payout
|
|
83
83
|
}
|
|
84
84
|
}
|
|
@@ -114,7 +114,7 @@ abstract contract Oracle is
|
|
|
114
114
|
$._oracleService = IOracleService(_getServiceAddress(ORACLE()));
|
|
115
115
|
$._componentService = IComponentService(_getServiceAddress(COMPONENT()));
|
|
116
116
|
|
|
117
|
-
|
|
117
|
+
_registerInterface(type(IOracleComponent).interfaceId);
|
|
118
118
|
}
|
|
119
119
|
|
|
120
120
|
|
|
@@ -27,14 +27,16 @@ contract OracleService is
|
|
|
27
27
|
bytes memory data
|
|
28
28
|
)
|
|
29
29
|
internal
|
|
30
|
-
initializer
|
|
31
30
|
virtual override
|
|
31
|
+
initializer()
|
|
32
32
|
{
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
33
|
+
(
|
|
34
|
+
address registryAddress,
|
|
35
|
+
address authority
|
|
36
|
+
) = abi.decode(data, (address, address));
|
|
37
|
+
|
|
38
|
+
_initializeService(registryAddress, authority, owner);
|
|
39
|
+
_registerInterface(type(IOracleService).interfaceId);
|
|
38
40
|
}
|
|
39
41
|
|
|
40
42
|
function request(
|
|
@@ -12,15 +12,15 @@ contract OracleServiceManager is ProxyManager {
|
|
|
12
12
|
/// @dev initializes proxy manager with service implementation and deploys instance
|
|
13
13
|
constructor(
|
|
14
14
|
address authority,
|
|
15
|
-
address
|
|
15
|
+
address registry,
|
|
16
16
|
bytes32 salt
|
|
17
17
|
)
|
|
18
|
-
ProxyManager(registryAddress)
|
|
19
18
|
{
|
|
20
|
-
OracleService
|
|
21
|
-
bytes memory data = abi.encode(
|
|
22
|
-
IVersionable versionable =
|
|
23
|
-
|
|
19
|
+
OracleService svc = new OracleService{salt: salt}();
|
|
20
|
+
bytes memory data = abi.encode(registry, authority);
|
|
21
|
+
IVersionable versionable = initialize(
|
|
22
|
+
registry,
|
|
23
|
+
address(svc),
|
|
24
24
|
data,
|
|
25
25
|
salt);
|
|
26
26
|
|