@etherisc/gif-next 0.0.2-e5ea33d → 0.0.2-e63124b-662
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 +376 -20
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +4 -0
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +1253 -0
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +4 -0
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +1206 -0
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +358 -0
- package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +4 -0
- package/artifacts/contracts/{instance/access → authorization}/IAccess.sol/IAccess.json +1 -1
- package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +4 -0
- package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.json +1032 -0
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +258 -0
- package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.json +290 -0
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +148 -0
- package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.json +390 -0
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +190 -0
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +4 -0
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +1505 -0
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +4 -0
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +410 -0
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +4 -0
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +1191 -0
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +4 -0
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +1394 -0
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +4 -0
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +826 -0
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +4 -0
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +900 -0
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +4 -0
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +843 -0
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +4 -0
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +703 -0
- package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstance.sol/IInstance.json +289 -529
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +4 -0
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +757 -0
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +446 -609
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +4 -0
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +1626 -0
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +4 -0
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +601 -0
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +4 -0
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +1735 -0
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +4 -0
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +1160 -0
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +4 -0
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +734 -0
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +4 -0
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +3591 -0
- package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +4 -0
- package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +318 -0
- package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +4 -0
- package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.json +137 -0
- package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +4 -0
- package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +10 -0
- package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +4 -0
- package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +182 -0
- package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +4 -0
- package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +181 -0
- package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +4 -0
- package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +129 -0
- package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +4 -0
- package/artifacts/contracts/instance/{pool/IPoolModule.sol/IPool.json → module/IBundle.sol/IBundle.json} +2 -2
- package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +4 -0
- package/artifacts/contracts/instance/{component/IComponent.sol/IComponent.json → module/IComponents.sol/IComponents.json} +2 -2
- package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +4 -0
- package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.json +10 -0
- package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +4 -0
- package/artifacts/contracts/instance/{policy → module}/IPolicy.sol/IPolicy.json +1 -1
- package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +4 -0
- package/artifacts/contracts/instance/module/IRisk.sol/IRisk.json +10 -0
- package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +4 -0
- package/artifacts/contracts/mock/Dip.sol/Dip.json +376 -0
- package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +4 -0
- package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +1155 -0
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +4 -0
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +418 -0
- package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +4 -0
- package/artifacts/contracts/oracle/IOracle.sol/IOracle.json +52 -0
- package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +4 -0
- package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +772 -0
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +4 -0
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +675 -0
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +4 -0
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +1063 -0
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +4 -0
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +1034 -0
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +4 -0
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +730 -0
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +4 -0
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +1477 -0
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +4 -0
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +410 -0
- package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +4 -0
- package/artifacts/contracts/pool/BundleService.sol/BundleService.json +1134 -0
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +4 -0
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +754 -0
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +4 -0
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +703 -0
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +4 -0
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +959 -0
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +4 -0
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +1078 -0
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +4 -0
- package/artifacts/contracts/pool/Pool.sol/Pool.json +1269 -0
- package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +4 -0
- package/artifacts/contracts/pool/PoolService.sol/PoolService.json +1453 -0
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +4 -0
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +742 -0
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +4 -0
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +863 -0
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +730 -0
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +4 -0
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +1299 -0
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +4 -0
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +410 -0
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +4 -0
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +1315 -0
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +822 -0
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +4 -0
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +512 -0
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +4 -0
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +772 -0
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +4 -0
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +720 -0
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +4 -0
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +549 -0
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +4 -0
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +966 -0
- package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +4 -0
- package/artifacts/contracts/product/IProductService.sol/IProductService.json +400 -0
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +4 -0
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +1183 -0
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +766 -0
- package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +4 -0
- package/artifacts/contracts/product/PricingService.sol/PricingService.json +1012 -0
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +786 -0
- package/artifacts/contracts/product/Product.sol/Product.dbg.json +4 -0
- package/artifacts/contracts/product/Product.sol/Product.json +1257 -0
- package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +4 -0
- package/artifacts/contracts/product/ProductService.sol/ProductService.json +708 -0
- package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +702 -0
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +252 -2
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +733 -102
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +4 -0
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +940 -0
- package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +4 -0
- package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +52 -0
- package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
- package/artifacts/contracts/registry/Registry.sol/Registry.json +1031 -120
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +4 -0
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +1746 -0
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +4 -0
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +1452 -0
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +4 -0
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +721 -0
- package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +4 -0
- package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +164 -0
- package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +4 -0
- package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +1159 -0
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +4 -0
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +214 -0
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +4 -0
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +661 -0
- package/artifacts/contracts/shared/Component.sol/Component.dbg.json +4 -0
- package/artifacts/contracts/shared/Component.sol/Component.json +896 -0
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +4 -0
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +1487 -0
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +4 -0
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +784 -0
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +4 -0
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +539 -0
- package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +4 -0
- package/artifacts/contracts/shared/ERC165.sol/ERC165.json +73 -0
- package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +4 -0
- package/artifacts/contracts/shared/IComponent.sol/IComponent.json +631 -0
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +4 -0
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +880 -0
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +4 -0
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +718 -0
- package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +4 -0
- package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.json +474 -0
- package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +4 -0
- package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.json +110 -0
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +4 -0
- package/artifacts/contracts/{registry/Registry.sol/Registerable.json → shared/INftOwnable.sol/INftOwnable.json} +42 -77
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +4 -0
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +207 -0
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +4 -0
- package/artifacts/contracts/{instance/pool/PoolModule.sol/PoolModule.json → shared/IRegisterable.sol/IRegisterable.json} +98 -79
- package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +4 -0
- package/artifacts/contracts/{instance/access/IAccess.sol/IAccessCheckRole.json → shared/IRegistryLinked.sol/IRegistryLinked.json} +11 -11
- package/artifacts/contracts/shared/IService.sol/IService.dbg.json +4 -0
- package/artifacts/contracts/shared/IService.sol/IService.json +346 -0
- package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.dbg.json +4 -0
- package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.json +39 -0
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +4 -0
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +996 -0
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +4 -0
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +497 -0
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +4 -0
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +133 -0
- package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +4 -0
- package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +306 -0
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +4 -0
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +244 -0
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +4 -0
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +320 -0
- package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +4 -0
- package/artifacts/contracts/shared/Registerable.sol/Registerable.json +353 -0
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +4 -0
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +71 -0
- package/artifacts/contracts/shared/Service.sol/Service.dbg.json +4 -0
- package/artifacts/contracts/shared/Service.sol/Service.json +507 -0
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +4 -0
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +150 -0
- package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +4 -0
- package/artifacts/contracts/staking/IStaking.sol/IStaking.json +1438 -0
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +4 -0
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +1035 -0
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +4 -0
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +460 -0
- package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +4 -0
- package/artifacts/contracts/staking/Staking.sol/Staking.json +2005 -0
- package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +164 -0
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +761 -0
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +592 -0
- package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingService.sol/StakingService.json +1343 -0
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +718 -0
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +2237 -0
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +4 -0
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +571 -0
- package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +4 -0
- package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.json +10 -0
- package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +4 -0
- package/artifacts/contracts/type/Amount.sol/AmountLib.json +345 -0
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +4 -0
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +225 -0
- package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +4 -0
- package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +179 -0
- package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +4 -0
- package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +104 -0
- package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +4 -0
- package/artifacts/contracts/type/Fee.sol/FeeLib.json +312 -0
- package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +4 -0
- package/artifacts/contracts/type/Key32.sol/Key32Lib.json +125 -0
- package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +4 -0
- package/artifacts/contracts/type/NftId.sol/NftIdLib.json +209 -0
- package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +4 -0
- package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +33 -0
- package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +4 -0
- package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +239 -0
- package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +4 -0
- package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +209 -0
- package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +4 -0
- package/artifacts/contracts/type/Referral.sol/ReferralLib.json +142 -0
- package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +4 -0
- package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +204 -0
- package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +4 -0
- package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +86 -0
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +4 -0
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +369 -0
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +4 -0
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +198 -0
- package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +4 -0
- package/artifacts/contracts/type/Selector.sol/SelectorLib.json +129 -0
- package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +4 -0
- package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +10 -0
- package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +4 -0
- package/artifacts/contracts/type/StateId.sol/StateIdLib.json +92 -0
- package/artifacts/contracts/type/String.sol/StrLib.dbg.json +4 -0
- package/artifacts/contracts/type/String.sol/StrLib.json +132 -0
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +4 -0
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +293 -0
- package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +4 -0
- package/artifacts/contracts/type/UFixed.sol/MathLib.json +10 -0
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +4 -0
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +498 -0
- package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +4 -0
- package/artifacts/contracts/type/Version.sol/VersionLib.json +177 -0
- package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +4 -0
- package/artifacts/contracts/type/Version.sol/VersionPartLib.json +68 -0
- package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +4 -0
- package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.json +55 -0
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +4 -0
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +617 -0
- package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
- package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +129 -0
- package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +4 -0
- package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.json +78 -0
- package/contracts/authorization/AccessAdmin.sol +591 -0
- package/contracts/authorization/AccessManagerCloneable.sol +16 -0
- package/contracts/authorization/Authorization.sol +218 -0
- package/contracts/authorization/IAccess.sol +48 -0
- package/contracts/authorization/IAccessAdmin.sol +136 -0
- package/contracts/authorization/IAuthorization.sol +54 -0
- package/contracts/authorization/IModuleAuthorization.sol +21 -0
- package/contracts/authorization/IServiceAuthorization.sol +38 -0
- package/contracts/authorization/ModuleAuthorization.sol +78 -0
- package/contracts/authorization/ServiceAuthorization.sol +90 -0
- package/contracts/distribution/BasicDistribution.sol +149 -0
- package/contracts/distribution/BasicDistributionAuthorization.sol +43 -0
- package/contracts/distribution/Distribution.sol +283 -0
- package/contracts/distribution/DistributionService.sol +288 -0
- package/contracts/distribution/DistributionServiceManager.sol +39 -0
- package/contracts/distribution/IDistributionComponent.sol +48 -0
- package/contracts/distribution/IDistributionService.sol +85 -0
- package/contracts/instance/BundleSet.sol +126 -0
- package/contracts/instance/IInstance.sol +85 -17
- package/contracts/instance/IInstanceService.sol +92 -0
- package/contracts/instance/Instance.sol +246 -56
- package/contracts/instance/InstanceAdmin.sol +266 -0
- package/contracts/instance/InstanceAuthorizationV3.sol +202 -0
- package/contracts/instance/InstanceReader.sol +405 -0
- package/contracts/instance/InstanceService.sol +443 -0
- package/contracts/instance/InstanceServiceManager.sol +40 -0
- package/contracts/instance/InstanceStore.sol +276 -0
- package/contracts/instance/base/BalanceStore.sol +123 -0
- package/contracts/instance/base/Cloneable.sol +28 -0
- package/contracts/instance/base/ObjectCounter.sol +21 -0
- package/contracts/instance/base/ObjectLifecycle.sol +106 -0
- package/contracts/instance/base/ObjectSet.sol +79 -0
- package/contracts/instance/module/IAccess.sol +46 -0
- package/contracts/instance/module/IBundle.sol +20 -0
- package/contracts/instance/module/IComponents.sol +52 -0
- package/contracts/instance/module/IDistribution.sol +42 -0
- package/contracts/instance/module/IPolicy.sol +84 -0
- package/contracts/instance/module/IRisk.sol +11 -0
- package/contracts/mock/Dip.sol +26 -0
- package/contracts/oracle/BasicOracle.sol +48 -0
- package/contracts/oracle/BasicOracleAuthorization.sol +46 -0
- package/contracts/oracle/IOracle.sol +36 -0
- package/contracts/oracle/IOracleComponent.sol +32 -0
- package/contracts/oracle/IOracleService.sol +65 -0
- package/contracts/oracle/Oracle.sol +157 -0
- package/contracts/oracle/OracleService.sol +278 -0
- package/contracts/oracle/OracleServiceManager.sol +39 -0
- package/contracts/pool/BasicPool.sol +164 -0
- package/contracts/pool/BasicPoolAuthorization.sol +49 -0
- package/contracts/pool/BundleService.sol +284 -0
- package/contracts/pool/BundleServiceManager.sol +39 -0
- package/contracts/pool/IBundleService.sol +106 -0
- package/contracts/pool/IPoolComponent.sol +52 -0
- package/contracts/pool/IPoolService.sol +150 -0
- package/contracts/pool/Pool.sol +311 -0
- package/contracts/pool/PoolService.sol +436 -0
- package/contracts/pool/PoolServiceManager.sol +39 -0
- package/contracts/product/ApplicationService.sol +230 -0
- package/contracts/product/ApplicationServiceManager.sol +38 -0
- package/contracts/product/BasicProduct.sol +82 -0
- package/contracts/product/BasicProductAuthorization.sol +40 -0
- package/contracts/product/ClaimService.sol +416 -0
- package/contracts/product/ClaimServiceManager.sol +38 -0
- package/contracts/product/IApplicationService.sol +62 -0
- package/contracts/product/IClaimService.sol +99 -0
- package/contracts/product/IPolicyService.sol +78 -0
- package/contracts/product/IPricingService.sol +39 -0
- package/contracts/product/IProductComponent.sol +39 -0
- package/contracts/product/IProductService.sol +33 -0
- package/contracts/product/PolicyService.sol +475 -0
- package/contracts/product/PolicyServiceManager.sol +39 -0
- package/contracts/product/PricingService.sol +300 -0
- package/contracts/product/PricingServiceManager.sol +39 -0
- package/contracts/product/Product.sol +392 -0
- package/contracts/product/ProductService.sol +99 -0
- package/contracts/product/ProductServiceManager.sol +39 -0
- package/contracts/registry/ChainNft.sol +144 -62
- package/contracts/registry/IRegistry.sol +105 -51
- package/contracts/registry/IRegistryService.sol +69 -0
- package/contracts/registry/ITransferInterceptor.sol +7 -0
- package/contracts/registry/Registry.sol +509 -142
- package/contracts/registry/RegistryAdmin.sol +365 -0
- package/contracts/registry/RegistryService.sol +252 -0
- package/contracts/registry/RegistryServiceManager.sol +53 -0
- package/contracts/registry/ReleaseLifecycle.sol +27 -0
- package/contracts/registry/ReleaseRegistry.sol +487 -0
- package/contracts/registry/ServiceAuthorizationV3.sol +200 -0
- package/contracts/registry/TokenRegistry.sol +315 -0
- package/contracts/shared/Component.sol +281 -0
- package/contracts/shared/ComponentService.sol +581 -0
- package/contracts/shared/ComponentServiceManager.sol +35 -0
- package/contracts/shared/ComponentVerifyingService.sol +117 -0
- package/contracts/shared/ERC165.sol +27 -0
- package/contracts/shared/IComponent.sol +70 -0
- package/contracts/shared/IComponentService.sol +102 -0
- package/contracts/shared/IInstanceLinkedComponent.sol +50 -0
- package/contracts/shared/IKeyValueStore.sol +54 -0
- package/contracts/shared/ILifecycle.sol +29 -0
- package/contracts/shared/INftOwnable.sol +23 -0
- package/contracts/shared/IPolicyHolder.sol +45 -0
- package/contracts/shared/IRegisterable.sol +15 -0
- package/contracts/shared/IRegistryLinked.sol +11 -0
- package/contracts/shared/IService.sol +25 -0
- package/contracts/shared/InitializableCustom.sol +177 -0
- package/contracts/shared/InstanceLinkedComponent.sol +151 -0
- package/contracts/shared/KeyValueStore.sol +131 -0
- package/contracts/shared/Lifecycle.sol +77 -0
- package/contracts/shared/NftIdSet.sol +65 -0
- package/contracts/shared/NftOwnable.sol +107 -0
- package/contracts/shared/PolicyHolder.sol +102 -0
- package/contracts/shared/Registerable.sol +75 -0
- package/contracts/shared/RegistryLinked.sol +43 -0
- package/contracts/shared/Service.sol +82 -0
- package/contracts/shared/TokenHandler.sol +58 -0
- package/contracts/staking/IStaking.sol +167 -0
- package/contracts/staking/IStakingService.sol +160 -0
- package/contracts/staking/StakeManagerLib.sol +231 -0
- package/contracts/staking/Staking.sol +510 -0
- package/contracts/staking/StakingLifecycle.sol +23 -0
- package/contracts/staking/StakingManager.sol +50 -0
- package/contracts/staking/StakingReader.sol +183 -0
- package/contracts/staking/StakingService.sol +411 -0
- package/contracts/staking/StakingServiceManager.sol +44 -0
- package/contracts/staking/StakingStore.sol +605 -0
- package/contracts/staking/TargetManagerLib.sol +207 -0
- package/contracts/type/AddressSet.sol +58 -0
- package/contracts/type/Amount.sol +128 -0
- package/contracts/{types → type}/Blocknumber.sol +21 -3
- package/contracts/type/ClaimId.sol +75 -0
- package/contracts/type/DistributorType.sol +55 -0
- package/contracts/type/Fee.sol +66 -0
- package/contracts/type/Key32.sol +50 -0
- package/contracts/type/NftId.sol +78 -0
- package/contracts/type/NftIdSet.sol +62 -0
- package/contracts/type/ObjectType.sol +271 -0
- package/contracts/type/PayoutId.sol +82 -0
- package/contracts/type/Referral.sol +89 -0
- package/contracts/type/RequestId.sol +75 -0
- package/contracts/type/RiskId.sol +43 -0
- package/contracts/type/RoleId.sol +174 -0
- package/contracts/type/Seconds.sol +81 -0
- package/contracts/type/Selector.sol +102 -0
- package/contracts/type/StateId.sol +135 -0
- package/contracts/type/String.sol +53 -0
- package/contracts/{types → type}/Timestamp.sol +41 -7
- package/contracts/type/UFixed.sol +332 -0
- package/contracts/type/Version.sol +110 -0
- package/contracts/upgradeability/IVersionable.sol +53 -0
- package/contracts/upgradeability/ProxyManager.sol +198 -0
- package/contracts/upgradeability/UpgradableProxyWithAdmin.sol +14 -0
- package/contracts/upgradeability/Versionable.sol +59 -0
- package/package.json +21 -8
- package/artifacts/contracts/components/Component.sol/Component.dbg.json +0 -4
- package/artifacts/contracts/components/Component.sol/Component.json +0 -179
- package/artifacts/contracts/components/Component.sol/InstanceLinked.dbg.json +0 -4
- package/artifacts/contracts/components/Component.sol/InstanceLinked.json +0 -35
- package/artifacts/contracts/components/IPool.sol/IPoolComponent.dbg.json +0 -4
- package/artifacts/contracts/components/IPool.sol/IPoolComponent.json +0 -179
- package/artifacts/contracts/components/IProduct.sol/IProductComponent.dbg.json +0 -4
- package/artifacts/contracts/components/IProduct.sol/IProductComponent.json +0 -192
- package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +0 -4
- package/artifacts/contracts/components/Pool.sol/Pool.json +0 -213
- package/artifacts/contracts/components/Product.sol/Product.dbg.json +0 -4
- package/artifacts/contracts/components/Product.sol/Product.json +0 -231
- package/artifacts/contracts/experiment/errors/Require.sol/Require.dbg.json +0 -4
- package/artifacts/contracts/experiment/errors/Require.sol/Require.json +0 -105
- package/artifacts/contracts/experiment/errors/Revert.sol/Revert.dbg.json +0 -4
- package/artifacts/contracts/experiment/errors/Revert.sol/Revert.json +0 -105
- package/artifacts/contracts/experiment/inheritance/A.sol/A.dbg.json +0 -4
- package/artifacts/contracts/experiment/inheritance/A.sol/A.json +0 -128
- package/artifacts/contracts/experiment/inheritance/A.sol/AShared.dbg.json +0 -4
- package/artifacts/contracts/experiment/inheritance/A.sol/AShared.json +0 -42
- package/artifacts/contracts/experiment/inheritance/B.sol/B.dbg.json +0 -4
- package/artifacts/contracts/experiment/inheritance/B.sol/B.json +0 -76
- package/artifacts/contracts/experiment/inheritance/C.sol/C.dbg.json +0 -4
- package/artifacts/contracts/experiment/inheritance/C.sol/C.json +0 -89
- package/artifacts/contracts/experiment/inheritance/IA.sol/IA.dbg.json +0 -4
- package/artifacts/contracts/experiment/inheritance/IA.sol/IA.json +0 -128
- package/artifacts/contracts/experiment/inheritance/IA.sol/ISharedA.dbg.json +0 -4
- package/artifacts/contracts/experiment/inheritance/IA.sol/ISharedA.json +0 -37
- package/artifacts/contracts/experiment/inheritance/IB.sol/IB.dbg.json +0 -4
- package/artifacts/contracts/experiment/inheritance/IB.sol/IB.json +0 -50
- package/artifacts/contracts/experiment/inheritance/IC.sol/IC.dbg.json +0 -4
- package/artifacts/contracts/experiment/inheritance/IC.sol/IC.json +0 -63
- package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.dbg.json +0 -4
- package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.json +0 -10
- package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.dbg.json +0 -4
- package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.json +0 -10
- package/artifacts/contracts/instance/access/Access.sol/AccessModule.dbg.json +0 -4
- package/artifacts/contracts/instance/access/Access.sol/AccessModule.json +0 -400
- package/artifacts/contracts/instance/access/IAccess.sol/IAccess.dbg.json +0 -4
- package/artifacts/contracts/instance/access/IAccess.sol/IAccessCheckRole.dbg.json +0 -4
- package/artifacts/contracts/instance/access/IAccess.sol/IAccessComponentTypeRoles.dbg.json +0 -4
- package/artifacts/contracts/instance/access/IAccess.sol/IAccessComponentTypeRoles.json +0 -50
- package/artifacts/contracts/instance/access/IAccess.sol/IAccessModule.dbg.json +0 -4
- package/artifacts/contracts/instance/access/IAccess.sol/IAccessModule.json +0 -336
- package/artifacts/contracts/instance/component/ComponentModule.sol/ComponentModule.dbg.json +0 -4
- package/artifacts/contracts/instance/component/ComponentModule.sol/ComponentModule.json +0 -327
- package/artifacts/contracts/instance/component/ComponentModule.sol/ComponentOwnerService.dbg.json +0 -4
- package/artifacts/contracts/instance/component/ComponentModule.sol/ComponentOwnerService.json +0 -147
- package/artifacts/contracts/instance/component/IComponent.sol/IComponent.dbg.json +0 -4
- package/artifacts/contracts/instance/component/IComponent.sol/IComponentContract.dbg.json +0 -4
- package/artifacts/contracts/instance/component/IComponent.sol/IComponentContract.json +0 -179
- package/artifacts/contracts/instance/component/IComponent.sol/IComponentModule.dbg.json +0 -4
- package/artifacts/contracts/instance/component/IComponent.sol/IComponentModule.json +0 -245
- package/artifacts/contracts/instance/component/IComponent.sol/IComponentOwnerService.dbg.json +0 -4
- package/artifacts/contracts/instance/component/IComponent.sol/IComponentOwnerService.json +0 -94
- package/artifacts/contracts/instance/component/IComponent.sol/IInstanceLinked.dbg.json +0 -4
- package/artifacts/contracts/instance/component/IComponent.sol/IInstanceLinked.json +0 -24
- package/artifacts/contracts/instance/policy/IPolicy.sol/IPolicy.dbg.json +0 -4
- package/artifacts/contracts/instance/policy/IPolicy.sol/IPolicyModule.dbg.json +0 -4
- package/artifacts/contracts/instance/policy/IPolicy.sol/IPolicyModule.json +0 -231
- package/artifacts/contracts/instance/policy/PolicyModule.sol/PolicyModule.dbg.json +0 -4
- package/artifacts/contracts/instance/policy/PolicyModule.sol/PolicyModule.json +0 -231
- package/artifacts/contracts/instance/pool/IPoolModule.sol/IPool.dbg.json +0 -4
- package/artifacts/contracts/instance/pool/IPoolModule.sol/IPoolModule.dbg.json +0 -4
- package/artifacts/contracts/instance/pool/IPoolModule.sol/IPoolModule.json +0 -149
- package/artifacts/contracts/instance/pool/PoolModule.sol/PoolModule.dbg.json +0 -4
- package/artifacts/contracts/instance/product/IProductService.sol/IProductModule.dbg.json +0 -4
- package/artifacts/contracts/instance/product/IProductService.sol/IProductModule.json +0 -75
- package/artifacts/contracts/instance/product/IProductService.sol/IProductService.dbg.json +0 -4
- package/artifacts/contracts/instance/product/IProductService.sol/IProductService.json +0 -114
- package/artifacts/contracts/instance/product/ProductService.sol/ProductModule.dbg.json +0 -4
- package/artifacts/contracts/instance/product/ProductService.sol/ProductModule.json +0 -75
- package/artifacts/contracts/instance/product/ProductService.sol/ProductService.dbg.json +0 -4
- package/artifacts/contracts/instance/product/ProductService.sol/ProductService.json +0 -167
- package/artifacts/contracts/registry/IChainNft.sol/IChainNft.dbg.json +0 -4
- package/artifacts/contracts/registry/IChainNft.sol/IChainNft.json +0 -452
- package/artifacts/contracts/registry/IRegistry.sol/IOwnable.dbg.json +0 -4
- package/artifacts/contracts/registry/IRegistry.sol/IOwnable.json +0 -24
- package/artifacts/contracts/registry/IRegistry.sol/IRegisterable.dbg.json +0 -4
- package/artifacts/contracts/registry/IRegistry.sol/IRegisterable.json +0 -166
- package/artifacts/contracts/registry/IRegistry.sol/IRegistryLinked.dbg.json +0 -4
- package/artifacts/contracts/registry/IRegistry.sol/IRegistryLinked.json +0 -49
- package/artifacts/contracts/registry/Registry.sol/Registerable.dbg.json +0 -4
- package/artifacts/contracts/registry/Registry.sol/RegistryLinked.dbg.json +0 -4
- package/artifacts/contracts/registry/Registry.sol/RegistryLinked.json +0 -60
- package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +0 -4
- package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.json +0 -174
- package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +0 -4
- package/artifacts/contracts/types/ChainId.sol/ChainIdLib.json +0 -10
- package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +0 -4
- package/artifacts/contracts/types/NftId.sol/NftIdLib.json +0 -92
- package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +0 -4
- package/artifacts/contracts/types/Timestamp.sol/TimestampLib.json +0 -174
- package/artifacts/contracts/types/UFixed.sol/UFixedMathLib.dbg.json +0 -4
- package/artifacts/contracts/types/UFixed.sol/UFixedMathLib.json +0 -453
- package/contracts/components/Component.sol +0 -60
- package/contracts/components/IPool.sol +0 -9
- package/contracts/components/IProduct.sol +0 -9
- package/contracts/components/Pool.sol +0 -22
- package/contracts/components/Product.sol +0 -55
- package/contracts/experiment/errors/Require.sol +0 -38
- package/contracts/experiment/errors/Revert.sol +0 -44
- package/contracts/experiment/inheritance/A.sol +0 -53
- package/contracts/experiment/inheritance/B.sol +0 -28
- package/contracts/experiment/inheritance/C.sol +0 -34
- package/contracts/experiment/inheritance/IA.sol +0 -13
- package/contracts/experiment/inheritance/IB.sol +0 -10
- package/contracts/experiment/inheritance/IC.sol +0 -12
- package/contracts/experiment/types/TypeA.sol +0 -47
- package/contracts/experiment/types/TypeB.sol +0 -29
- package/contracts/instance/access/Access.sol +0 -165
- package/contracts/instance/access/IAccess.sol +0 -63
- package/contracts/instance/component/ComponentModule.sol +0 -213
- package/contracts/instance/component/IComponent.sol +0 -73
- package/contracts/instance/policy/IPolicy.sol +0 -51
- package/contracts/instance/policy/PolicyModule.sol +0 -91
- package/contracts/instance/pool/IPoolModule.sol +0 -29
- package/contracts/instance/pool/PoolModule.sol +0 -73
- package/contracts/instance/product/IProductService.sol +0 -36
- package/contracts/instance/product/ProductService.sol +0 -112
- package/contracts/registry/IChainNft.sol +0 -21
- package/contracts/types/ChainId.sol +0 -38
- package/contracts/types/NftId.sol +0 -51
- package/contracts/types/UFixed.sol +0 -205
@@ -1,213 +0,0 @@
|
|
1
|
-
// SPDX-License-Identifier: Apache-2.0
|
2
|
-
pragma solidity ^0.8.19;
|
3
|
-
|
4
|
-
import {RegistryLinked} from "../../registry/Registry.sol";
|
5
|
-
import {IRegistry, IRegistryLinked} from "../../registry/IRegistry.sol";
|
6
|
-
import {IAccessComponentTypeRoles, IAccessCheckRole} from "../access/IAccess.sol";
|
7
|
-
import {IInstance} from "../IInstance.sol";
|
8
|
-
|
9
|
-
import {IComponent, IComponentContract, IComponentModule, IComponentOwnerService} from "./IComponent.sol";
|
10
|
-
import {IProductComponent} from "../../components/IProduct.sol";
|
11
|
-
import {IPoolModule} from "../pool/IPoolModule.sol";
|
12
|
-
import {NftId, NftIdLib} from "../../types/NftId.sol";
|
13
|
-
|
14
|
-
abstract contract ComponentModule is
|
15
|
-
IRegistryLinked,
|
16
|
-
IAccessComponentTypeRoles,
|
17
|
-
IAccessCheckRole,
|
18
|
-
IComponentModule
|
19
|
-
{
|
20
|
-
using NftIdLib for NftId;
|
21
|
-
|
22
|
-
mapping(NftId nftId => ComponentInfo info) private _componentInfo;
|
23
|
-
mapping(NftId nftId => NftId poolNftId) private _poolNftIdForProduct;
|
24
|
-
mapping(address cAddress => NftId nftId) private _nftIdByAddress;
|
25
|
-
NftId[] private _nftIds;
|
26
|
-
|
27
|
-
mapping(uint256 cType => bytes32 role) private _componentOwnerRole;
|
28
|
-
|
29
|
-
IComponentOwnerService private _componentOwnerService;
|
30
|
-
|
31
|
-
modifier onlyComponentOwnerService() {
|
32
|
-
require(
|
33
|
-
address(_componentOwnerService) == msg.sender,
|
34
|
-
"ERROR:CMP-001:NOT_OWNER_SERVICE"
|
35
|
-
);
|
36
|
-
_;
|
37
|
-
}
|
38
|
-
|
39
|
-
constructor(address componentOwnerService) {
|
40
|
-
_componentOwnerService = ComponentOwnerService(componentOwnerService);
|
41
|
-
}
|
42
|
-
|
43
|
-
function registerComponent(
|
44
|
-
IComponentContract component
|
45
|
-
) external override onlyComponentOwnerService returns (NftId nftId) {
|
46
|
-
bytes32 typeRole = getRoleForType(component.getType());
|
47
|
-
require(
|
48
|
-
this.hasRole(typeRole, component.getInitialOwner()),
|
49
|
-
"ERROR:CMP-004:TYPE_ROLE_MISSING"
|
50
|
-
);
|
51
|
-
|
52
|
-
nftId = this.getRegistry().register(address(component));
|
53
|
-
|
54
|
-
_componentInfo[nftId] = ComponentInfo(nftId, CState.Active);
|
55
|
-
|
56
|
-
// special case product -> persist product - pool assignment
|
57
|
-
if (component.getType() == this.getRegistry().PRODUCT()) {
|
58
|
-
IProductComponent product = IProductComponent(address(component));
|
59
|
-
NftId poolNftId = product.getPoolNftId();
|
60
|
-
require(poolNftId.gtz(), "ERROR:CMP-005:POOL_UNKNOWN");
|
61
|
-
// add more validation (type, token, ...)
|
62
|
-
|
63
|
-
_poolNftIdForProduct[nftId] = poolNftId;
|
64
|
-
|
65
|
-
// add creation of productInfo
|
66
|
-
} else if (component.getType() == this.getRegistry().POOL()) {
|
67
|
-
IPoolModule poolModule = IPoolModule(address(this));
|
68
|
-
poolModule.createPoolInfo(
|
69
|
-
nftId,
|
70
|
-
address(component), // set pool as its wallet
|
71
|
-
address(0) // don't deal with token yet
|
72
|
-
);
|
73
|
-
}
|
74
|
-
|
75
|
-
_nftIdByAddress[address(component)] = nftId;
|
76
|
-
_nftIds.push(nftId);
|
77
|
-
|
78
|
-
// add logging
|
79
|
-
}
|
80
|
-
|
81
|
-
function getPoolNftId(
|
82
|
-
NftId productNftId
|
83
|
-
) external view override returns (NftId poolNftId) {
|
84
|
-
poolNftId = _poolNftIdForProduct[productNftId];
|
85
|
-
}
|
86
|
-
|
87
|
-
function getComponentOwnerService()
|
88
|
-
external
|
89
|
-
view
|
90
|
-
override
|
91
|
-
returns (IComponentOwnerService)
|
92
|
-
{
|
93
|
-
return _componentOwnerService;
|
94
|
-
}
|
95
|
-
|
96
|
-
function setComponentInfo(
|
97
|
-
ComponentInfo memory info
|
98
|
-
) external onlyComponentOwnerService returns (NftId nftId) {
|
99
|
-
nftId = info.nftId;
|
100
|
-
require(
|
101
|
-
nftId.gtz() && _componentInfo[nftId].nftId.eq(nftId),
|
102
|
-
"ERROR:CMP-006:COMPONENT_UNKNOWN"
|
103
|
-
);
|
104
|
-
|
105
|
-
_componentInfo[nftId] = info;
|
106
|
-
|
107
|
-
// add logging
|
108
|
-
}
|
109
|
-
|
110
|
-
function getComponentInfo(
|
111
|
-
NftId nftId
|
112
|
-
) external view override returns (ComponentInfo memory) {
|
113
|
-
return _componentInfo[nftId];
|
114
|
-
}
|
115
|
-
|
116
|
-
function getComponentOwner(
|
117
|
-
NftId nftId
|
118
|
-
) external view returns (address owner) {}
|
119
|
-
|
120
|
-
function getComponentId(
|
121
|
-
address componentAddress
|
122
|
-
) external view returns (NftId componentNftId) {
|
123
|
-
return _nftIdByAddress[componentAddress];
|
124
|
-
}
|
125
|
-
|
126
|
-
function getComponentId(
|
127
|
-
uint256 idx
|
128
|
-
) external view override returns (NftId componentNftId) {
|
129
|
-
return _nftIds[idx];
|
130
|
-
}
|
131
|
-
|
132
|
-
function components()
|
133
|
-
external
|
134
|
-
view
|
135
|
-
override
|
136
|
-
returns (uint256 numberOfCompnents)
|
137
|
-
{
|
138
|
-
return _nftIds.length;
|
139
|
-
}
|
140
|
-
|
141
|
-
function getRoleForType(uint256 cType) public view returns (bytes32 role) {
|
142
|
-
if (cType == this.getRegistry().PRODUCT()) {
|
143
|
-
return this.PRODUCT_OWNER_ROLE();
|
144
|
-
}
|
145
|
-
if (cType == this.getRegistry().POOL()) {
|
146
|
-
return this.POOL_OWNER_ROLE();
|
147
|
-
}
|
148
|
-
if (cType == this.getRegistry().ORACLE()) {
|
149
|
-
return this.ORACLE_OWNER_ROLE();
|
150
|
-
}
|
151
|
-
}
|
152
|
-
}
|
153
|
-
|
154
|
-
// this is actually the component owner service
|
155
|
-
contract ComponentOwnerService is
|
156
|
-
RegistryLinked,
|
157
|
-
IComponent,
|
158
|
-
IComponentOwnerService
|
159
|
-
{
|
160
|
-
using NftIdLib for NftId;
|
161
|
-
|
162
|
-
modifier onlyComponentOwner(IComponentContract component) {
|
163
|
-
NftId nftId = _registry.getNftId(address(component));
|
164
|
-
require(nftId.gtz(), "ERROR:COS-001:COMPONENT_UNKNOWN");
|
165
|
-
require(
|
166
|
-
msg.sender == _registry.getOwner(nftId),
|
167
|
-
"ERROR:COS-002:NOT_OWNER"
|
168
|
-
);
|
169
|
-
_;
|
170
|
-
}
|
171
|
-
|
172
|
-
constructor(address registry) RegistryLinked(registry) {}
|
173
|
-
|
174
|
-
function register(
|
175
|
-
IComponentContract component
|
176
|
-
) external override returns (NftId nftId) {
|
177
|
-
require(
|
178
|
-
msg.sender == component.getInitialOwner(),
|
179
|
-
"ERROR:COS-003:NOT_OWNER"
|
180
|
-
);
|
181
|
-
|
182
|
-
IInstance instance = component.getInstance();
|
183
|
-
nftId = instance.registerComponent(component);
|
184
|
-
}
|
185
|
-
|
186
|
-
function lock(
|
187
|
-
IComponentContract component
|
188
|
-
) external override onlyComponentOwner(component) {
|
189
|
-
IInstance instance = component.getInstance();
|
190
|
-
ComponentInfo memory info = instance.getComponentInfo(
|
191
|
-
component.getNftId()
|
192
|
-
);
|
193
|
-
require(info.nftId.gtz(), "ERROR_COMPONENT_UNKNOWN");
|
194
|
-
// TODO add state change validation
|
195
|
-
|
196
|
-
info.state = CState.Locked;
|
197
|
-
instance.setComponentInfo(info);
|
198
|
-
}
|
199
|
-
|
200
|
-
function unlock(
|
201
|
-
IComponentContract component
|
202
|
-
) external override onlyComponentOwner(component) {
|
203
|
-
IInstance instance = component.getInstance();
|
204
|
-
ComponentInfo memory info = instance.getComponentInfo(
|
205
|
-
component.getNftId()
|
206
|
-
);
|
207
|
-
require(info.nftId.gtz(), "ERROR_COMPONENT_UNKNOWN");
|
208
|
-
// TODO state change validation
|
209
|
-
|
210
|
-
info.state = CState.Active;
|
211
|
-
instance.setComponentInfo(info);
|
212
|
-
}
|
213
|
-
}
|
@@ -1,73 +0,0 @@
|
|
1
|
-
// SPDX-License-Identifier: Apache-2.0
|
2
|
-
pragma solidity ^0.8.19;
|
3
|
-
|
4
|
-
import {IOwnable, IRegistryLinked, IRegisterable} from "../../registry/IRegistry.sol";
|
5
|
-
import {IInstance} from "../IInstance.sol";
|
6
|
-
import {NftId} from "../../types/NftId.sol";
|
7
|
-
|
8
|
-
interface IComponent {
|
9
|
-
// TODO decide if enum or uints with constants (as in IRegistry.PRODUCT())
|
10
|
-
enum CState {
|
11
|
-
Undefined,
|
12
|
-
Active,
|
13
|
-
Locked
|
14
|
-
}
|
15
|
-
|
16
|
-
// component dynamic info (static info kept in registry)
|
17
|
-
struct ComponentInfo {
|
18
|
-
NftId nftId;
|
19
|
-
CState state;
|
20
|
-
}
|
21
|
-
}
|
22
|
-
|
23
|
-
interface IInstanceLinked {
|
24
|
-
// function setInstance(address instance) external;
|
25
|
-
function getInstance() external view returns (IInstance instance);
|
26
|
-
}
|
27
|
-
|
28
|
-
interface IComponentContract is IRegisterable, IInstanceLinked, IComponent {}
|
29
|
-
|
30
|
-
interface IComponentOwnerService is IRegistryLinked {
|
31
|
-
function register(
|
32
|
-
IComponentContract component
|
33
|
-
) external returns (NftId nftId);
|
34
|
-
|
35
|
-
function lock(IComponentContract component) external;
|
36
|
-
|
37
|
-
function unlock(IComponentContract component) external;
|
38
|
-
}
|
39
|
-
|
40
|
-
interface IComponentModule is IOwnable, IRegistryLinked, IComponent {
|
41
|
-
function registerComponent(
|
42
|
-
IComponentContract component
|
43
|
-
) external returns (NftId nftId);
|
44
|
-
|
45
|
-
function setComponentInfo(
|
46
|
-
ComponentInfo memory info
|
47
|
-
) external returns (NftId componentNftId);
|
48
|
-
|
49
|
-
function getComponentInfo(
|
50
|
-
NftId nftId
|
51
|
-
) external view returns (ComponentInfo memory info);
|
52
|
-
|
53
|
-
function getComponentOwner(
|
54
|
-
NftId nftId
|
55
|
-
) external view returns (address owner);
|
56
|
-
|
57
|
-
function getComponentId(
|
58
|
-
address componentAddress
|
59
|
-
) external view returns (NftId nftId);
|
60
|
-
|
61
|
-
function getComponentId(uint256 idx) external view returns (NftId nftId);
|
62
|
-
|
63
|
-
function getPoolNftId(
|
64
|
-
NftId productNftId
|
65
|
-
) external view returns (NftId poolNftId);
|
66
|
-
|
67
|
-
function components() external view returns (uint256 numberOfCompnents);
|
68
|
-
|
69
|
-
function getComponentOwnerService()
|
70
|
-
external
|
71
|
-
view
|
72
|
-
returns (IComponentOwnerService);
|
73
|
-
}
|
@@ -1,51 +0,0 @@
|
|
1
|
-
// SPDX-License-Identifier: Apache-2.0
|
2
|
-
pragma solidity ^0.8.19;
|
3
|
-
|
4
|
-
import {IOwnable, IRegistryLinked, IRegisterable, IRegistry} from "../../registry/IRegistry.sol";
|
5
|
-
import {IInstance} from "../IInstance.sol";
|
6
|
-
import {IProductService} from "../product/IProductService.sol";
|
7
|
-
import {NftId} from "../../types/NftId.sol";
|
8
|
-
|
9
|
-
// TODO check if there is value to introuce IContract and let IPolicy derive from IContract
|
10
|
-
interface IPolicy {
|
11
|
-
enum PolicyState {
|
12
|
-
Undefined,
|
13
|
-
Applied,
|
14
|
-
Rejected,
|
15
|
-
Active,
|
16
|
-
Closed
|
17
|
-
}
|
18
|
-
|
19
|
-
struct PolicyInfo {
|
20
|
-
NftId nftId;
|
21
|
-
PolicyState state; // applied, withdrawn, rejected, active, closed
|
22
|
-
uint256 sumInsuredAmount;
|
23
|
-
uint256 premiumAmount;
|
24
|
-
uint256 lifetime; // activatedAt + lifetime >= expiredAt
|
25
|
-
uint256 createdAt;
|
26
|
-
uint256 activatedAt; // time of underwriting
|
27
|
-
uint256 expiredAt; // no new claims
|
28
|
-
uint256 closedAt; // no locked capital
|
29
|
-
}
|
30
|
-
}
|
31
|
-
|
32
|
-
interface IPolicyModule is IOwnable, IRegistryLinked, IPolicy {
|
33
|
-
function createApplication(
|
34
|
-
IRegistry.RegistryInfo memory productInfo,
|
35
|
-
address applicationOwner,
|
36
|
-
uint256 sumInsuredAmount,
|
37
|
-
uint256 premiumAmount,
|
38
|
-
uint256 lifetime,
|
39
|
-
NftId bundleNftId
|
40
|
-
) external returns (NftId nftId);
|
41
|
-
|
42
|
-
function activate(NftId nftId) external;
|
43
|
-
|
44
|
-
function getBundleNftForPolicy(
|
45
|
-
NftId nftId
|
46
|
-
) external view returns (NftId bundleNft);
|
47
|
-
|
48
|
-
function getPolicyInfo(
|
49
|
-
NftId nftId
|
50
|
-
) external view returns (PolicyInfo memory info);
|
51
|
-
}
|
@@ -1,91 +0,0 @@
|
|
1
|
-
// SPDX-License-Identifier: Apache-2.0
|
2
|
-
pragma solidity ^0.8.19;
|
3
|
-
|
4
|
-
// import {IOwnable, IRegistryLinked, IRegisterable} from "../../registry/IRegistry.sol";
|
5
|
-
import {IRegistry, IRegistryLinked} from "../../registry/IRegistry.sol";
|
6
|
-
|
7
|
-
import {IProductService} from "../product/IProductService.sol";
|
8
|
-
import {IPolicy, IPolicyModule} from "./IPolicy.sol";
|
9
|
-
import {NftId, NftIdLib} from "../../types/NftId.sol";
|
10
|
-
|
11
|
-
abstract contract PolicyModule is IRegistryLinked, IPolicyModule {
|
12
|
-
using NftIdLib for NftId;
|
13
|
-
|
14
|
-
mapping(NftId nftId => PolicyInfo info) private _policyInfo;
|
15
|
-
mapping(NftId nftId => NftId bundleNftId) private _bundleForPolicy;
|
16
|
-
|
17
|
-
IProductService private _productService;
|
18
|
-
|
19
|
-
// TODO find a better place to avoid dupliation
|
20
|
-
modifier onlyProductService2() {
|
21
|
-
require(
|
22
|
-
address(_productService) == msg.sender,
|
23
|
-
"ERROR:POL-001:NOT_PRODUCT_SERVICE"
|
24
|
-
);
|
25
|
-
_;
|
26
|
-
}
|
27
|
-
|
28
|
-
constructor(address productService) {
|
29
|
-
_productService = IProductService(productService);
|
30
|
-
}
|
31
|
-
|
32
|
-
function createApplication(
|
33
|
-
IRegistry.RegistryInfo memory productInfo,
|
34
|
-
address applicationOwner,
|
35
|
-
uint256 sumInsuredAmount,
|
36
|
-
uint256 premiumAmount,
|
37
|
-
uint256 lifetime,
|
38
|
-
NftId bundleNftId
|
39
|
-
) external override onlyProductService2 returns (NftId nftId) {
|
40
|
-
// TODO add parameter validation
|
41
|
-
if (bundleNftId.gtz()) {
|
42
|
-
IRegistry.RegistryInfo memory bundleInfo = this
|
43
|
-
.getRegistry()
|
44
|
-
.getInfo(bundleNftId);
|
45
|
-
// IRegistry.RegistryInfo memory poolInfo = this.getRegistry().getInfo(bundleInfo.parentNftId);
|
46
|
-
}
|
47
|
-
|
48
|
-
nftId = this.getRegistry().registerObjectForInstance(
|
49
|
-
productInfo.nftId,
|
50
|
-
this.getRegistry().POLICY(),
|
51
|
-
applicationOwner
|
52
|
-
);
|
53
|
-
|
54
|
-
_policyInfo[nftId] = PolicyInfo(
|
55
|
-
nftId,
|
56
|
-
PolicyState.Applied,
|
57
|
-
sumInsuredAmount,
|
58
|
-
premiumAmount,
|
59
|
-
lifetime,
|
60
|
-
block.timestamp,
|
61
|
-
0, // activatedAt
|
62
|
-
0, // expiredAt
|
63
|
-
0 // closedAt
|
64
|
-
);
|
65
|
-
|
66
|
-
_bundleForPolicy[nftId] = bundleNftId;
|
67
|
-
|
68
|
-
// add logging
|
69
|
-
}
|
70
|
-
|
71
|
-
function activate(NftId nftId) external override onlyProductService2 {
|
72
|
-
PolicyInfo storage info = _policyInfo[nftId];
|
73
|
-
info.activatedAt = block.timestamp;
|
74
|
-
info.expiredAt = block.timestamp + info.lifetime;
|
75
|
-
info.state = PolicyState.Active;
|
76
|
-
|
77
|
-
// add logging
|
78
|
-
}
|
79
|
-
|
80
|
-
function getBundleNftForPolicy(
|
81
|
-
NftId nftId
|
82
|
-
) external view returns (NftId bundleNft) {
|
83
|
-
return _bundleForPolicy[nftId];
|
84
|
-
}
|
85
|
-
|
86
|
-
function getPolicyInfo(
|
87
|
-
NftId nftId
|
88
|
-
) external view returns (PolicyInfo memory info) {
|
89
|
-
return _policyInfo[nftId];
|
90
|
-
}
|
91
|
-
}
|
@@ -1,29 +0,0 @@
|
|
1
|
-
// SPDX-License-Identifier: Apache-2.0
|
2
|
-
pragma solidity ^0.8.19;
|
3
|
-
|
4
|
-
import {IOwnable, IRegistry, IRegistryLinked} from "../../registry/IRegistry.sol";
|
5
|
-
import {NftId} from "../../types/NftId.sol";
|
6
|
-
|
7
|
-
interface IPool {
|
8
|
-
struct PoolInfo {
|
9
|
-
NftId nftId;
|
10
|
-
address wallet;
|
11
|
-
address token;
|
12
|
-
uint256 capital;
|
13
|
-
uint256 lockedCapital;
|
14
|
-
}
|
15
|
-
}
|
16
|
-
|
17
|
-
interface IPoolModule is IOwnable, IRegistryLinked, IPool {
|
18
|
-
function underwrite(NftId poolNftId, NftId policyNftId) external;
|
19
|
-
|
20
|
-
function createPoolInfo(
|
21
|
-
NftId nftId,
|
22
|
-
address wallet,
|
23
|
-
address token
|
24
|
-
) external;
|
25
|
-
|
26
|
-
function getPoolInfo(
|
27
|
-
NftId nftId
|
28
|
-
) external view returns (PoolInfo memory info);
|
29
|
-
}
|
@@ -1,73 +0,0 @@
|
|
1
|
-
// SPDX-License-Identifier: Apache-2.0
|
2
|
-
pragma solidity ^0.8.19;
|
3
|
-
|
4
|
-
import {IOwnable, IRegistry, IRegistryLinked} from "../../registry/IRegistry.sol";
|
5
|
-
import {IProductService} from "../product/IProductService.sol";
|
6
|
-
import {IPolicy, IPolicyModule} from "../policy/IPolicy.sol";
|
7
|
-
import {IPoolModule} from "./IPoolModule.sol";
|
8
|
-
import {NftId, NftIdLib} from "../../types/NftId.sol";
|
9
|
-
|
10
|
-
abstract contract PoolModule is IPoolModule {
|
11
|
-
using NftIdLib for NftId;
|
12
|
-
|
13
|
-
uint256 public constant INITIAL_CAPITAL = 10000 * 10 ** 6;
|
14
|
-
|
15
|
-
mapping(NftId nftId => PoolInfo info) private _poolInfo;
|
16
|
-
|
17
|
-
IProductService private _productService;
|
18
|
-
|
19
|
-
modifier onlyProductService() {
|
20
|
-
require(
|
21
|
-
address(_productService) == msg.sender,
|
22
|
-
"ERROR:POL-001:NOT_PRODUCT_SERVICE"
|
23
|
-
);
|
24
|
-
_;
|
25
|
-
}
|
26
|
-
|
27
|
-
constructor(address productService) {
|
28
|
-
_productService = IProductService(productService);
|
29
|
-
}
|
30
|
-
|
31
|
-
function createPoolInfo(
|
32
|
-
NftId nftId,
|
33
|
-
address wallet,
|
34
|
-
address token
|
35
|
-
) public override {
|
36
|
-
require(_poolInfo[nftId].nftId.eqz(), "ERROR:PL-001:ALREADY_CREATED");
|
37
|
-
|
38
|
-
_poolInfo[nftId] = PoolInfo(
|
39
|
-
nftId,
|
40
|
-
wallet,
|
41
|
-
token,
|
42
|
-
INITIAL_CAPITAL,
|
43
|
-
0 // locked capital
|
44
|
-
);
|
45
|
-
}
|
46
|
-
|
47
|
-
function underwrite(
|
48
|
-
NftId poolNftId,
|
49
|
-
NftId policyNftId
|
50
|
-
) external override onlyProductService {
|
51
|
-
PoolInfo storage poolInfo = _poolInfo[poolNftId];
|
52
|
-
require(poolInfo.nftId == poolNftId, "ERROR:PL-002:POOL_UNKNOWN");
|
53
|
-
|
54
|
-
IPolicyModule policyModule = IPolicyModule(address(this));
|
55
|
-
IPolicy.PolicyInfo memory policyInfo = policyModule.getPolicyInfo(
|
56
|
-
policyNftId
|
57
|
-
);
|
58
|
-
|
59
|
-
require(
|
60
|
-
poolInfo.capital - poolInfo.lockedCapital >=
|
61
|
-
policyInfo.sumInsuredAmount,
|
62
|
-
"ERROR:PL-003:CAPACITY_TOO_LOW"
|
63
|
-
);
|
64
|
-
|
65
|
-
poolInfo.lockedCapital += policyInfo.sumInsuredAmount;
|
66
|
-
}
|
67
|
-
|
68
|
-
function getPoolInfo(
|
69
|
-
NftId nftId
|
70
|
-
) external view override returns (PoolInfo memory info) {
|
71
|
-
info = _poolInfo[nftId];
|
72
|
-
}
|
73
|
-
}
|
@@ -1,36 +0,0 @@
|
|
1
|
-
// SPDX-License-Identifier: Apache-2.0
|
2
|
-
pragma solidity ^0.8.19;
|
3
|
-
|
4
|
-
import {IOwnable, IRegistryLinked, IRegisterable} from "../../registry/IRegistry.sol";
|
5
|
-
import {IInstance} from "../IInstance.sol";
|
6
|
-
import {NftId} from "../../types/NftId.sol";
|
7
|
-
|
8
|
-
// TODO or name this IProtectionService to have Product be something more generic (loan, savings account, ...)
|
9
|
-
interface IProductService is IRegistryLinked {
|
10
|
-
function createApplication(
|
11
|
-
address applicationOwner,
|
12
|
-
uint256 sumInsuredAmount,
|
13
|
-
uint256 premiumAmount,
|
14
|
-
uint256 lifetime,
|
15
|
-
NftId bundleNftId
|
16
|
-
) external returns (NftId nftId);
|
17
|
-
|
18
|
-
// function revoke(unit256 nftId) external;
|
19
|
-
|
20
|
-
function underwrite(NftId nftId) external;
|
21
|
-
|
22
|
-
// function decline(uint256 nftId) external;
|
23
|
-
// function expire(uint256 nftId) external;
|
24
|
-
function close(NftId nftId) external;
|
25
|
-
|
26
|
-
// function collectPremium(uint256 nftId, uint256 premiumAmount) external;
|
27
|
-
|
28
|
-
// function createClaim(uint256 nftId, uint256 claimAmount) external;
|
29
|
-
// function confirmClaim(uint256 nftId, uint256 claimId, uint256 claimAmount) external;
|
30
|
-
// function declineClaim(uint256 nftId, uint256 claimId) external;
|
31
|
-
// function closeClaim(uint256 nftId, uint256 claimId) external;
|
32
|
-
}
|
33
|
-
|
34
|
-
interface IProductModule is IOwnable, IRegistryLinked {
|
35
|
-
function getProductService() external view returns (IProductService);
|
36
|
-
}
|
@@ -1,112 +0,0 @@
|
|
1
|
-
// SPDX-License-Identifier: Apache-2.0
|
2
|
-
pragma solidity ^0.8.19;
|
3
|
-
|
4
|
-
// import {IProduct} from "../../components/IProduct.sol";
|
5
|
-
// import {IOwnable, IRegistryLinked, IRegisterable, IRegistry} from "../../registry/IRegistry.sol";
|
6
|
-
// import {IInstance} from "../IInstance.sol";
|
7
|
-
import {IRegistry} from "../../registry/IRegistry.sol";
|
8
|
-
import {IPolicyModule} from "../policy/IPolicy.sol";
|
9
|
-
import {RegistryLinked} from "../../registry/Registry.sol";
|
10
|
-
import {IProductService, IProductModule} from "./IProductService.sol";
|
11
|
-
import {IComponentModule} from "../../instance/component/IComponent.sol";
|
12
|
-
import {IPoolModule} from "../../instance/pool/IPoolModule.sol";
|
13
|
-
import {NftId, NftIdLib} from "../../types/NftId.sol";
|
14
|
-
|
15
|
-
// TODO or name this ProtectionService to have Product be something more generic (loan, savings account, ...)
|
16
|
-
contract ProductService is RegistryLinked, IProductService {
|
17
|
-
using NftIdLib for NftId;
|
18
|
-
|
19
|
-
constructor(address registry) RegistryLinked(registry) {}
|
20
|
-
|
21
|
-
function createApplication(
|
22
|
-
address applicationOwner,
|
23
|
-
uint256 sumInsuredAmount,
|
24
|
-
uint256 premiumAmount,
|
25
|
-
uint256 lifetime,
|
26
|
-
NftId bundleNftId
|
27
|
-
) external override returns (NftId nftId) {
|
28
|
-
// same as only registered product
|
29
|
-
NftId productNftId = _registry.getNftId(msg.sender);
|
30
|
-
require(productNftId.gtz(), "ERROR_PRODUCT_UNKNOWN");
|
31
|
-
IRegistry.RegistryInfo memory productInfo = _registry.getInfo(
|
32
|
-
productNftId
|
33
|
-
);
|
34
|
-
require(
|
35
|
-
productInfo.objectType == _registry.PRODUCT(),
|
36
|
-
"ERROR_NOT_PRODUCT"
|
37
|
-
);
|
38
|
-
|
39
|
-
IRegistry.RegistryInfo memory instanceInfo = _registry.getInfo(
|
40
|
-
productInfo.parentNftId
|
41
|
-
);
|
42
|
-
require(instanceInfo.nftId.gtz(), "ERROR_INSTANCE_UNKNOWN");
|
43
|
-
require(
|
44
|
-
instanceInfo.objectType == _registry.INSTANCE(),
|
45
|
-
"ERROR_NOT_INSTANCE"
|
46
|
-
);
|
47
|
-
|
48
|
-
IPolicyModule policyModule = IPolicyModule(instanceInfo.objectAddress);
|
49
|
-
nftId = policyModule.createApplication(
|
50
|
-
productInfo,
|
51
|
-
applicationOwner,
|
52
|
-
sumInsuredAmount,
|
53
|
-
premiumAmount,
|
54
|
-
lifetime,
|
55
|
-
bundleNftId
|
56
|
-
);
|
57
|
-
|
58
|
-
// add logging
|
59
|
-
}
|
60
|
-
|
61
|
-
function underwrite(NftId nftId) external override {
|
62
|
-
// same as only registered product
|
63
|
-
NftId productNftId = _registry.getNftId(msg.sender);
|
64
|
-
require(productNftId.gtz(), "ERROR_PRODUCT_UNKNOWN");
|
65
|
-
IRegistry.RegistryInfo memory productInfo = _registry.getInfo(
|
66
|
-
productNftId
|
67
|
-
);
|
68
|
-
require(
|
69
|
-
productInfo.objectType == _registry.PRODUCT(),
|
70
|
-
"ERROR_NOT_PRODUCT"
|
71
|
-
);
|
72
|
-
|
73
|
-
IRegistry.RegistryInfo memory instanceInfo = _registry.getInfo(
|
74
|
-
productInfo.parentNftId
|
75
|
-
);
|
76
|
-
require(instanceInfo.nftId.gtz(), "ERROR_INSTANCE_UNKNOWN");
|
77
|
-
require(
|
78
|
-
instanceInfo.objectType == _registry.INSTANCE(),
|
79
|
-
"ERROR_NOT_INSTANCE"
|
80
|
-
);
|
81
|
-
|
82
|
-
// get responsible pool
|
83
|
-
IComponentModule componentModule = IComponentModule(
|
84
|
-
instanceInfo.objectAddress
|
85
|
-
);
|
86
|
-
NftId poolNftId = componentModule.getPoolNftId(productNftId);
|
87
|
-
|
88
|
-
// lock capital (and update pool accounting)
|
89
|
-
IPoolModule poolModule = IPoolModule(instanceInfo.objectAddress);
|
90
|
-
poolModule.underwrite(poolNftId, nftId);
|
91
|
-
|
92
|
-
// activate policy
|
93
|
-
IPolicyModule policyModule = IPolicyModule(instanceInfo.objectAddress);
|
94
|
-
policyModule.activate(nftId);
|
95
|
-
|
96
|
-
// add logging
|
97
|
-
}
|
98
|
-
|
99
|
-
function close(NftId nftId) external override {}
|
100
|
-
}
|
101
|
-
|
102
|
-
abstract contract ProductModule is IProductModule {
|
103
|
-
IProductService private _productService;
|
104
|
-
|
105
|
-
constructor(address productService) {
|
106
|
-
_productService = IProductService(productService);
|
107
|
-
}
|
108
|
-
|
109
|
-
function getProductService() external view returns (IProductService) {
|
110
|
-
return _productService;
|
111
|
-
}
|
112
|
-
}
|