@etherisc/gif-next 0.0.2-f080b71-868 → 0.0.2-f08528a-758
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 +20 -3
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +4 -0
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +1248 -0
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +4 -0
- package/artifacts/contracts/{instance/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.json → authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json} +4 -4
- 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/module/ISetup.sol/ISetup.json → authorization/IAccess.sol/IAccess.json} +2 -2
- 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/{components → distribution}/IDistributionComponent.sol/IDistributionComponent.json +184 -253
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +4 -0
- package/artifacts/contracts/{instance/service → distribution}/IDistributionService.sol/IDistributionService.json +81 -109
- package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +1 -1
- package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +37 -112
- package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstance.sol/IInstance.json +160 -81
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +184 -81
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +153 -168
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +4 -0
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +1621 -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 +1 -1
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +821 -385
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +273 -177
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +126 -65
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +1471 -557
- 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/{Cloneable.sol → base/Cloneable.sol}/Cloneable.json +1 -54
- 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/ObjectManager.sol/ObjectManager.dbg.json +4 -0
- package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.json +181 -0
- package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +8 -116
- 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 +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/{components/IProductComponent.sol/IProductComponent.json → oracle/IOracleComponent.sol/IOracleComponent.json} +160 -218
- 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/{components/Pool.sol/Pool.json → pool/BasicPool.sol/BasicPool.json} +254 -153
- 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/{instance/service → pool}/IBundleService.sol/IBundleService.json +71 -48
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +4 -0
- package/artifacts/contracts/{components → pool}/IPoolComponent.sol/IPoolComponent.json +191 -296
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +4 -0
- package/artifacts/contracts/{instance/service → pool}/IPoolService.sol/IPoolService.json +294 -60
- 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/{components/Distribution.sol/Distribution.json → product/BasicProduct.sol/BasicProduct.json} +370 -400
- 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/{instance/service → product}/IApplicationService.sol/IApplicationService.json +58 -21
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +4 -0
- package/artifacts/contracts/{instance/service → product}/IClaimService.sol/IClaimService.json +336 -39
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +4 -0
- package/artifacts/contracts/{instance/service → product}/IPolicyService.sol/IPolicyService.json +178 -106
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +4 -0
- package/artifacts/contracts/{instance/service → product}/IPricingService.sol/IPricingService.json +50 -19
- 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/{instance/service → product}/IProductService.sol/IProductService.json +11 -61
- 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/{components → product}/Product.sol/Product.json +338 -248
- 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 +2 -2
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +135 -29
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +310 -53
- 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 +371 -43
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +4 -0
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +1741 -0
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +367 -73
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +105 -54
- 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/ReleaseManager.sol/ReleaseManager.dbg.json +1 -1
- package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +697 -97
- 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 +1 -1
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +316 -153
- package/artifacts/contracts/shared/Component.sol/Component.dbg.json +4 -0
- package/artifacts/contracts/{components → shared}/Component.sol/Component.json +139 -85
- 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/{instance/base/ComponentService.sol/ComponentService.json → shared/ComponentVerifyingService.sol/ComponentVerifyingService.json} +27 -127
- package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +1 -1
- package/artifacts/contracts/shared/ERC165.sol/ERC165.json +2 -2
- package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +4 -0
- package/artifacts/contracts/{components → shared}/IComponent.sol/IComponent.json +110 -84
- 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/{instance/base → shared}/IKeyValueStore.sol/IKeyValueStore.json +59 -14
- package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +4 -0
- package/artifacts/contracts/{instance/base → shared}/ILifecycle.sol/ILifecycle.json +1 -6
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +3 -10
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +87 -9
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +3 -10
- package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.json +0 -13
- package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
- package/artifacts/contracts/shared/IService.sol/IService.json +17 -6
- package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +1 -1
- 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/NftIdSetManager.sol/NftIdSetManager.dbg.json +4 -0
- package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.json +306 -0
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +15 -22
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +98 -26
- package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +1 -1
- package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +70 -35
- package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
- package/artifacts/contracts/shared/Registerable.sol/Registerable.json +23 -22
- 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 +17 -6
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +60 -6
- package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
- package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +2 -2
- package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +1 -1
- 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/{types → type}/AddressSet.sol/LibAddressSet.json +3 -3
- 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/{types → type}/DistributorType.sol/DistributorTypeLib.json +5 -5
- 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/{types → type}/Key32.sol/Key32Lib.json +3 -3
- 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/{types → type}/NftIdSet.sol/LibNftIdSet.json +3 -3
- 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/{types → type}/RiskId.sol/RiskIdLib.json +5 -5
- 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/{types → type}/StateId.sol/StateIdLib.json +3 -3
- 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/{types → type}/Timestamp.sol/TimestampLib.json +33 -7
- package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +4 -0
- package/artifacts/contracts/{types → type}/UFixed.sol/MathLib.json +3 -3
- 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/{types → type}/Version.sol/VersionLib.json +3 -3
- package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +4 -0
- package/artifacts/contracts/{types → type}/Version.sol/VersionPartLib.json +3 -3
- package/contracts/authorization/AccessAdmin.sol +588 -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/{components → distribution}/Distribution.sol +162 -159
- package/contracts/distribution/DistributionService.sol +302 -0
- package/contracts/distribution/DistributionServiceManager.sol +42 -0
- package/contracts/distribution/IDistributionComponent.sol +48 -0
- package/contracts/{instance/service → distribution}/IDistributionService.sol +24 -24
- package/contracts/instance/BundleManager.sol +8 -9
- package/contracts/instance/IInstance.sol +48 -22
- package/contracts/instance/IInstanceService.sol +44 -36
- package/contracts/instance/Instance.sol +134 -107
- package/contracts/instance/InstanceAdmin.sol +266 -0
- package/contracts/instance/InstanceAuthorizationV3.sol +202 -0
- package/contracts/instance/InstanceReader.sol +164 -58
- package/contracts/instance/InstanceService.sol +279 -156
- package/contracts/instance/InstanceServiceManager.sol +11 -21
- package/contracts/instance/InstanceStore.sol +154 -97
- 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/{ObjectManager.sol → base/ObjectManager.sol} +13 -16
- package/contracts/instance/module/IAccess.sol +4 -12
- package/contracts/instance/module/IBundle.sol +6 -9
- package/contracts/instance/module/IComponents.sol +21 -10
- package/contracts/instance/module/IDistribution.sol +7 -6
- package/contracts/instance/module/IPolicy.sol +28 -16
- package/contracts/instance/module/IRisk.sol +1 -1
- package/contracts/{test/TestToken.sol → mock/Dip.sol} +5 -5
- 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 +42 -0
- package/contracts/pool/BasicPool.sol +164 -0
- package/contracts/pool/BasicPoolAuthorization.sol +49 -0
- package/contracts/pool/BundleService.sol +296 -0
- package/contracts/pool/BundleServiceManager.sol +42 -0
- package/contracts/{instance/service → pool}/IBundleService.sol +35 -23
- package/contracts/pool/IPoolComponent.sol +52 -0
- package/contracts/{instance/service → pool}/IPoolService.sol +72 -21
- package/contracts/pool/Pool.sol +311 -0
- package/contracts/pool/PoolService.sol +452 -0
- package/contracts/pool/PoolServiceManager.sol +42 -0
- package/contracts/product/ApplicationService.sol +254 -0
- package/contracts/{instance/service → product}/ApplicationServiceManager.sol +11 -8
- package/contracts/product/BasicProduct.sol +82 -0
- package/contracts/product/BasicProductAuthorization.sol +40 -0
- package/contracts/product/ClaimService.sol +442 -0
- package/contracts/{instance/service → product}/ClaimServiceManager.sol +11 -8
- package/contracts/{instance/service → product}/IApplicationService.sol +15 -17
- package/contracts/product/IClaimService.sol +99 -0
- package/contracts/{instance/service → product}/IPolicyService.sol +37 -33
- package/contracts/{instance/service → product}/IPricingService.sol +14 -11
- 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 +42 -0
- package/contracts/{instance/service → product}/PricingService.sol +110 -85
- package/contracts/product/PricingServiceManager.sol +42 -0
- package/contracts/{components → product}/Product.sol +210 -114
- package/contracts/product/ProductService.sol +124 -0
- package/contracts/product/ProductServiceManager.sol +42 -0
- package/contracts/registry/ChainNft.sol +8 -1
- package/contracts/registry/IRegistry.sol +41 -21
- package/contracts/registry/IRegistryService.sol +37 -36
- package/contracts/registry/Registry.sol +194 -83
- package/contracts/registry/RegistryAdmin.sol +365 -0
- package/contracts/registry/RegistryService.sol +71 -91
- package/contracts/registry/RegistryServiceManager.sol +21 -30
- package/contracts/registry/ReleaseLifecycle.sol +27 -0
- package/contracts/registry/ReleaseManager.sol +356 -193
- package/contracts/registry/ServiceAuthorizationV3.sol +200 -0
- package/contracts/registry/TokenRegistry.sol +261 -62
- 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 +1 -1
- package/contracts/{components → shared}/IComponent.sol +23 -29
- package/contracts/shared/IComponentService.sol +102 -0
- package/contracts/shared/IInstanceLinkedComponent.sol +50 -0
- package/contracts/{instance/base → shared}/IKeyValueStore.sol +16 -11
- package/contracts/{instance/base → shared}/ILifecycle.sol +3 -4
- package/contracts/shared/INftOwnable.sol +2 -2
- package/contracts/shared/IPolicyHolder.sol +29 -10
- package/contracts/shared/IRegistryLinked.sol +0 -1
- package/contracts/shared/IService.sol +11 -2
- package/contracts/shared/IVersionable.sol +1 -1
- 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/NftIdSetManager.sol +65 -0
- package/contracts/shared/NftOwnable.sol +3 -16
- package/contracts/shared/PolicyHolder.sol +40 -19
- package/contracts/shared/ProxyManager.sol +34 -4
- package/contracts/shared/Registerable.sol +13 -12
- package/contracts/shared/RegistryLinked.sol +0 -5
- package/contracts/shared/Service.sol +32 -21
- package/contracts/shared/TokenHandler.sol +27 -2
- package/contracts/shared/Versionable.sol +1 -1
- package/contracts/staking/IStaking.sol +168 -0
- package/contracts/staking/IStakingService.sol +153 -0
- package/contracts/staking/StakeManagerLib.sol +231 -0
- package/contracts/staking/Staking.sol +513 -0
- package/contracts/staking/StakingLifecycle.sol +23 -0
- package/contracts/staking/StakingManager.sol +54 -0
- package/contracts/staking/StakingReader.sol +187 -0
- package/contracts/staking/StakingService.sol +411 -0
- package/contracts/staking/StakingServiceManager.sol +44 -0
- package/contracts/staking/StakingStore.sol +615 -0
- package/contracts/staking/TargetManagerLib.sol +207 -0
- package/contracts/{types → type}/AddressSet.sol +1 -1
- package/contracts/type/Amount.sol +128 -0
- package/contracts/{types → type}/Blocknumber.sol +20 -3
- package/contracts/{types → type}/ClaimId.sol +25 -2
- package/contracts/{types → type}/Fee.sol +24 -22
- package/contracts/{types → type}/NftId.sol +14 -16
- package/contracts/{types → type}/NftIdSet.sol +2 -2
- package/contracts/type/ObjectType.sol +275 -0
- package/contracts/{types → type}/PayoutId.sol +33 -5
- package/contracts/{types → type}/Referral.sol +1 -1
- package/contracts/type/RequestId.sol +75 -0
- package/contracts/{types → type}/RiskId.sol +1 -1
- package/contracts/type/RoleId.sol +174 -0
- package/contracts/{types → type}/Seconds.sol +27 -0
- package/contracts/type/Selector.sol +102 -0
- package/contracts/{types → type}/StateId.sol +33 -4
- package/contracts/type/String.sol +53 -0
- package/contracts/{types → type}/Timestamp.sol +10 -1
- package/contracts/{types → type}/UFixed.sol +6 -0
- package/contracts/{types → type}/Version.sol +1 -1
- package/package.json +6 -3
- package/artifacts/contracts/components/Component.sol/Component.dbg.json +0 -4
- package/artifacts/contracts/components/Distribution.sol/Distribution.dbg.json +0 -4
- package/artifacts/contracts/components/IComponent.sol/IComponent.dbg.json +0 -4
- package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.dbg.json +0 -4
- package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +0 -4
- package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +0 -4
- package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +0 -4
- package/artifacts/contracts/components/Product.sol/Product.dbg.json +0 -4
- package/artifacts/contracts/instance/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.dbg.json +0 -4
- package/artifacts/contracts/instance/Cloneable.sol/Cloneable.dbg.json +0 -4
- package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +0 -4
- package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +0 -1348
- package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.dbg.json +0 -4
- package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.json +0 -124
- package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.dbg.json +0 -4
- package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.json +0 -256
- package/artifacts/contracts/instance/base/ComponentService.sol/ComponentService.dbg.json +0 -4
- package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +0 -4
- package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +0 -4
- package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +0 -4
- package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +0 -532
- package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +0 -4
- package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +0 -194
- package/artifacts/contracts/instance/module/ISetup.sol/ISetup.dbg.json +0 -4
- package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.dbg.json +0 -4
- package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.json +0 -10
- package/artifacts/contracts/instance/service/ApplicationService.sol/ApplicationService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/ApplicationService.sol/ApplicationService.json +0 -860
- package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +0 -4
- package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.json +0 -641
- package/artifacts/contracts/instance/service/BundleService.sol/BundleService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/BundleService.sol/BundleService.json +0 -1276
- package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.dbg.json +0 -4
- package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.json +0 -717
- package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.json +0 -849
- package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +0 -4
- package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.json +0 -641
- package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +0 -1539
- package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +0 -4
- package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.json +0 -769
- package/artifacts/contracts/instance/service/IApplicationService.sol/IApplicationService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/IBundleService.sol/IBundleService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/IClaimService.sol/IClaimService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/IPolicyService.sol/IPolicyService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/IPricingService.sol/IPricingService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/IProductService.sol/IProductService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.json +0 -1166
- package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +0 -4
- package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.json +0 -697
- package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +0 -1269
- package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.dbg.json +0 -4
- package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.json +0 -661
- package/artifacts/contracts/instance/service/PricingService.sol/PricingService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/PricingService.sol/PricingService.json +0 -988
- package/artifacts/contracts/instance/service/PricingServiceManager.sol/PricingServiceManager.dbg.json +0 -4
- package/artifacts/contracts/instance/service/PricingServiceManager.sol/PricingServiceManager.json +0 -689
- package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +0 -872
- package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
- package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.json +0 -653
- package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.dbg.json +0 -4
- package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.json +0 -285
- package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.dbg.json +0 -4
- package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.json +0 -107
- package/artifacts/contracts/test/TestFee.sol/TestFee.dbg.json +0 -4
- package/artifacts/contracts/test/TestFee.sol/TestFee.json +0 -119
- package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.dbg.json +0 -4
- package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.json +0 -383
- package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.dbg.json +0 -4
- package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.json +0 -116
- package/artifacts/contracts/test/TestService.sol/TestService.dbg.json +0 -4
- package/artifacts/contracts/test/TestService.sol/TestService.json +0 -596
- package/artifacts/contracts/test/TestToken.sol/TestUsdc.dbg.json +0 -4
- package/artifacts/contracts/test/TestToken.sol/TestUsdc.json +0 -376
- package/artifacts/contracts/test/TestVersion.sol/TestVersion.dbg.json +0 -4
- package/artifacts/contracts/test/TestVersion.sol/TestVersion.json +0 -218
- package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.dbg.json +0 -4
- package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.json +0 -104
- package/artifacts/contracts/test/Usdc.sol/USDC.dbg.json +0 -4
- package/artifacts/contracts/test/Usdc.sol/USDC.json +0 -376
- package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.dbg.json +0 -4
- package/artifacts/contracts/types/Amount.sol/AmountLib.dbg.json +0 -4
- package/artifacts/contracts/types/Amount.sol/AmountLib.json +0 -161
- 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/ClaimId.sol/ClaimIdLib.dbg.json +0 -4
- package/artifacts/contracts/types/ClaimId.sol/ClaimIdLib.json +0 -100
- package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.dbg.json +0 -4
- package/artifacts/contracts/types/Fee.sol/FeeLib.dbg.json +0 -4
- package/artifacts/contracts/types/Fee.sol/FeeLib.json +0 -288
- package/artifacts/contracts/types/Key32.sol/Key32Lib.dbg.json +0 -4
- package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +0 -4
- package/artifacts/contracts/types/NftId.sol/NftIdLib.json +0 -166
- package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.dbg.json +0 -4
- package/artifacts/contracts/types/NumberId.sol/NumberIdLib.dbg.json +0 -4
- package/artifacts/contracts/types/NumberId.sol/NumberIdLib.json +0 -100
- package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.dbg.json +0 -4
- package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.json +0 -92
- package/artifacts/contracts/types/PayoutId.sol/PayoutIdLib.dbg.json +0 -4
- package/artifacts/contracts/types/PayoutId.sol/PayoutIdLib.json +0 -100
- package/artifacts/contracts/types/Referral.sol/ReferralLib.dbg.json +0 -4
- package/artifacts/contracts/types/Referral.sol/ReferralLib.json +0 -142
- package/artifacts/contracts/types/RiskId.sol/RiskIdLib.dbg.json +0 -4
- package/artifacts/contracts/types/RoleId.sol/RoleIdLib.dbg.json +0 -4
- package/artifacts/contracts/types/RoleId.sol/RoleIdLib.json +0 -156
- package/artifacts/contracts/types/Seconds.sol/SecondsLib.dbg.json +0 -4
- package/artifacts/contracts/types/Seconds.sol/SecondsLib.json +0 -124
- package/artifacts/contracts/types/StateId.sol/StateIdLib.dbg.json +0 -4
- package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +0 -4
- package/artifacts/contracts/types/UFixed.sol/MathLib.dbg.json +0 -4
- package/artifacts/contracts/types/UFixed.sol/UFixedLib.dbg.json +0 -4
- package/artifacts/contracts/types/UFixed.sol/UFixedLib.json +0 -479
- package/artifacts/contracts/types/Version.sol/VersionLib.dbg.json +0 -4
- package/artifacts/contracts/types/Version.sol/VersionPartLib.dbg.json +0 -4
- package/contracts/components/Component.sol +0 -253
- package/contracts/components/IDistributionComponent.sol +0 -71
- package/contracts/components/IPoolComponent.sol +0 -113
- package/contracts/components/IProductComponent.sol +0 -40
- package/contracts/components/Pool.sol +0 -303
- package/contracts/instance/AccessManagerUpgradeableInitializeable.sol +0 -13
- package/contracts/instance/Cloneable.sol +0 -51
- package/contracts/instance/InstanceAccessManager.sol +0 -540
- package/contracts/instance/InstanceAuthorizationsLib.sol +0 -299
- package/contracts/instance/base/ComponentService.sol +0 -147
- package/contracts/instance/base/KeyValueStore.sol +0 -180
- package/contracts/instance/base/Lifecycle.sol +0 -109
- package/contracts/instance/module/ISetup.sol +0 -33
- package/contracts/instance/module/ITreasury.sol +0 -23
- package/contracts/instance/service/ApplicationService.sol +0 -183
- package/contracts/instance/service/BundleService.sol +0 -431
- package/contracts/instance/service/BundleServiceManager.sol +0 -51
- package/contracts/instance/service/ClaimService.sol +0 -145
- package/contracts/instance/service/DistributionService.sol +0 -346
- package/contracts/instance/service/DistributionServiceManager.sol +0 -51
- package/contracts/instance/service/IClaimService.sol +0 -61
- package/contracts/instance/service/IProductService.sol +0 -40
- package/contracts/instance/service/PolicyService.sol +0 -376
- package/contracts/instance/service/PolicyServiceManager.sol +0 -54
- package/contracts/instance/service/PoolService.sol +0 -303
- package/contracts/instance/service/PoolServiceManager.sol +0 -51
- package/contracts/instance/service/PricingServiceManager.sol +0 -51
- package/contracts/instance/service/ProductService.sol +0 -210
- package/contracts/instance/service/ProductServiceManager.sol +0 -54
- package/contracts/registry/RegistryAccessManager.sol +0 -216
- package/contracts/shared/ContractDeployerLib.sol +0 -72
- package/contracts/test/TestFee.sol +0 -25
- package/contracts/test/TestRegisterable.sol +0 -18
- package/contracts/test/TestRoleId.sol +0 -14
- package/contracts/test/TestService.sol +0 -25
- package/contracts/test/TestVersion.sol +0 -44
- package/contracts/test/TestVersionable.sol +0 -17
- package/contracts/test/Usdc.sol +0 -26
- package/contracts/types/Amount.sol +0 -60
- package/contracts/types/ChainId.sol +0 -38
- package/contracts/types/NumberId.sol +0 -52
- package/contracts/types/ObjectType.sol +0 -161
- package/contracts/types/RoleId.sol +0 -97
- /package/contracts/{types → type}/DistributorType.sol +0 -0
- /package/contracts/{types → type}/Key32.sol +0 -0
@@ -5,50 +5,69 @@ import {IERC165} from "@openzeppelin/contracts/utils/introspection/IERC165.sol";
|
|
5
5
|
import {IERC721Receiver} from "@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol";
|
6
6
|
import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";
|
7
7
|
|
8
|
+
import {Amount} from "../type/Amount.sol";
|
9
|
+
import {ClaimId} from "../type/ClaimId.sol";
|
8
10
|
import {ERC165} from "./ERC165.sol";
|
9
11
|
import {IPolicyHolder} from "./IPolicyHolder.sol";
|
10
|
-
import {
|
11
|
-
import {
|
12
|
-
import {NumberId} from "../types/NumberId.sol";
|
12
|
+
import {NftId} from "../type/NftId.sol";
|
13
|
+
import {PayoutId, PayoutIdLib} from "../type/PayoutId.sol";
|
13
14
|
import {RegistryLinked} from "./RegistryLinked.sol";
|
15
|
+
import {IRegistry} from "../registry/IRegistry.sol";
|
14
16
|
|
15
17
|
/// @dev template implementation for IPolicyHolder
|
16
18
|
contract PolicyHolder is
|
17
19
|
ERC165,
|
18
|
-
RegistryLinked,
|
20
|
+
RegistryLinked, // TODO need upgradeable version
|
19
21
|
IPolicyHolder
|
20
22
|
{
|
21
23
|
// keccak256(abi.encode(uint256(keccak256("etherisc.storage.PolicyHolder")) - 1)) & ~bytes32(uint256(0xff));
|
22
24
|
// TODO fix address
|
23
25
|
bytes32 public constant POLICY_HOLDER_STORAGE_LOCATION_V1 = 0x07ebcf49758b6ed3af50fa146bec0abe157c0218fe65dc0874c286e9d5da4f00;
|
24
26
|
|
25
|
-
// TODO uncomment/fix/refactor
|
26
27
|
struct PolicyHolderStorage {
|
27
|
-
|
28
|
-
|
29
|
-
bool dummy;
|
28
|
+
mapping(NftId policyId => mapping(PayoutId payoutId => address beneficiary)) _beneficiary;
|
29
|
+
address _beneficiaryDefault;
|
30
30
|
}
|
31
31
|
|
32
32
|
function initializePolicyHolder(
|
33
|
-
address registryAddress
|
33
|
+
address registryAddress,
|
34
|
+
address beneficiaryDefault
|
34
35
|
)
|
35
36
|
public
|
36
37
|
virtual
|
37
38
|
onlyInitializing()
|
38
39
|
{
|
39
40
|
initializeRegistryLinked(registryAddress);
|
41
|
+
|
42
|
+
_getPolicyHolderStorage()._beneficiaryDefault = beneficiaryDefault;
|
43
|
+
|
44
|
+
registerInterface(type(IPolicyHolder).interfaceId);
|
40
45
|
}
|
41
46
|
|
42
47
|
/// @dev empty default implementation
|
43
|
-
function
|
48
|
+
function requestPayout(NftId requestingPolicyNftId, Amount requestedPayoutAmount) external { }
|
49
|
+
|
50
|
+
/// @dev empty default implementation
|
51
|
+
function policyActivated(NftId policyNftId) external {}
|
52
|
+
|
53
|
+
/// @dev empty default implementation
|
54
|
+
function policyExpired(NftId policyNftId) external {}
|
55
|
+
|
56
|
+
/// @dev empty default implementation
|
57
|
+
function claimConfirmed(NftId policyNftId, ClaimId claimId, Amount amount) external {}
|
44
58
|
|
45
59
|
/// @dev empty default implementation
|
46
|
-
function
|
60
|
+
function payoutExecuted(NftId policyNftId, PayoutId payoutId, address beneficiary, Amount amount) external {}
|
61
|
+
|
62
|
+
/// @dev returns payout specific beneficiary
|
63
|
+
/// when no such beneficiary is defined the policy specific beneficiary is returned
|
64
|
+
function getBeneficiary(NftId policyNftId, PayoutId payoutId) external virtual view returns (address beneficiary) {
|
65
|
+
beneficiary = _getPolicyHolderStorage()._beneficiary[policyNftId][payoutId];
|
47
66
|
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
67
|
+
// fallback to claim independent beneficiary
|
68
|
+
if(beneficiary == address(0) && payoutId.gtz()) {
|
69
|
+
beneficiary = _getPolicyHolderStorage()._beneficiary[policyNftId][PayoutIdLib.zero()];
|
70
|
+
}
|
52
71
|
}
|
53
72
|
|
54
73
|
//--- IERC165 functions ---------------//
|
@@ -65,12 +84,14 @@ contract PolicyHolder is
|
|
65
84
|
return IERC721Receiver.onERC721Received.selector;
|
66
85
|
}
|
67
86
|
|
68
|
-
|
69
|
-
|
87
|
+
/// @dev sets policy specific beneficiary (used when no payout specific beneficiary is defined)
|
88
|
+
function _setBeneficiary(NftId policyNftId, address beneficiary) internal {
|
89
|
+
_setBeneficiary(policyNftId, PayoutIdLib.zero(), beneficiary);
|
70
90
|
}
|
71
91
|
|
72
|
-
|
73
|
-
|
92
|
+
/// @dev sets policy and claim specific beneficiary
|
93
|
+
function _setBeneficiary(NftId policyNftId, PayoutId payoutId, address beneficiary) internal {
|
94
|
+
_getPolicyHolderStorage()._beneficiary[policyNftId][payoutId] = beneficiary;
|
74
95
|
}
|
75
96
|
|
76
97
|
function _getPolicyHolderStorage() private pure returns (PolicyHolderStorage storage $) {
|
@@ -3,14 +3,15 @@ pragma solidity ^0.8.20;
|
|
3
3
|
|
4
4
|
import {ITransparentUpgradeableProxy} from "@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol";
|
5
5
|
|
6
|
-
import {Blocknumber, blockNumber} from "../
|
6
|
+
import {Blocknumber, blockNumber} from "../type/Blocknumber.sol";
|
7
7
|
import {IVersionable} from "./IVersionable.sol";
|
8
8
|
import {NftOwnable} from "./NftOwnable.sol";
|
9
9
|
import {Ownable} from "@openzeppelin/contracts/access/Ownable.sol";
|
10
10
|
import {ProxyAdmin} from "@openzeppelin/contracts/proxy/transparent/ProxyAdmin.sol";
|
11
|
-
import {Timestamp, TimestampLib} from "../
|
11
|
+
import {Timestamp, TimestampLib} from "../type/Timestamp.sol";
|
12
12
|
import {UpgradableProxyWithAdmin} from "./UpgradableProxyWithAdmin.sol";
|
13
|
-
import {Version, VersionLib} from "../
|
13
|
+
import {Version, VersionLib} from "../type/Version.sol";
|
14
|
+
import {NftId} from "../type/NftId.sol";
|
14
15
|
|
15
16
|
/// @dev manages proxy deployments for upgradable contracs of type IVersionable
|
16
17
|
contract ProxyManager is
|
@@ -79,6 +80,31 @@ contract ProxyManager is
|
|
79
80
|
emit LogProxyManagerVersionableDeployed(address(_proxy), initialImplementation);
|
80
81
|
}
|
81
82
|
|
83
|
+
function deployDetermenistic(address initialImplementation, bytes memory initializationData, bytes32 salt)
|
84
|
+
public
|
85
|
+
virtual
|
86
|
+
onlyOwner()
|
87
|
+
returns (IVersionable versionable)
|
88
|
+
{
|
89
|
+
if (_versions.length > 0) {
|
90
|
+
revert ErrorProxyManagerAlreadyDeployed();
|
91
|
+
}
|
92
|
+
|
93
|
+
address currentProxyOwner = getOwner();
|
94
|
+
address initialProxyAdminOwner = address(this);
|
95
|
+
|
96
|
+
_proxy = new UpgradableProxyWithAdmin{salt: salt}(
|
97
|
+
initialImplementation,
|
98
|
+
initialProxyAdminOwner,
|
99
|
+
getDeployData(currentProxyOwner, initializationData)
|
100
|
+
);
|
101
|
+
|
102
|
+
versionable = IVersionable(address(_proxy));
|
103
|
+
_updateVersionHistory(versionable.getVersion(), initialImplementation, currentProxyOwner);
|
104
|
+
|
105
|
+
emit LogProxyManagerVersionableDeployed(address(_proxy), initialImplementation);
|
106
|
+
}
|
107
|
+
|
82
108
|
/// @dev upgrade existing contract
|
83
109
|
function upgrade(address newImplementation, bytes memory upgradeData)
|
84
110
|
public
|
@@ -106,6 +132,10 @@ contract ProxyManager is
|
|
106
132
|
|
107
133
|
}
|
108
134
|
|
135
|
+
function linkToProxy() public returns (NftId) {
|
136
|
+
return _linkToNftOwnable(address(_proxy));
|
137
|
+
}
|
138
|
+
|
109
139
|
function getDeployData(address proxyOwner, bytes memory deployData) public pure returns (bytes memory data) {
|
110
140
|
return abi.encodeWithSelector(
|
111
141
|
IVersionable.initializeVersionable.selector,
|
@@ -119,7 +149,7 @@ contract ProxyManager is
|
|
119
149
|
upgradeData);
|
120
150
|
}
|
121
151
|
|
122
|
-
function getProxy() public returns (UpgradableProxyWithAdmin) {
|
152
|
+
function getProxy() public view returns (UpgradableProxyWithAdmin) {
|
123
153
|
return _proxy;
|
124
154
|
}
|
125
155
|
|
@@ -3,13 +3,12 @@ pragma solidity ^0.8.20;
|
|
3
3
|
|
4
4
|
import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";
|
5
5
|
|
6
|
-
import {NftId,
|
6
|
+
import {NftId, NftIdLib} from "../type/NftId.sol";
|
7
7
|
import {NftOwnable} from "../shared/NftOwnable.sol";
|
8
|
-
import {ObjectType} from "../
|
8
|
+
import {ObjectType} from "../type/ObjectType.sol";
|
9
9
|
|
10
10
|
import {IRegistry} from "../registry/IRegistry.sol";
|
11
11
|
import {IRegisterable} from "./IRegisterable.sol";
|
12
|
-
import {Versionable} from "./Versionable.sol";
|
13
12
|
|
14
13
|
contract Registerable is
|
15
14
|
NftOwnable,
|
@@ -25,12 +24,6 @@ contract Registerable is
|
|
25
24
|
bytes _data;
|
26
25
|
}
|
27
26
|
|
28
|
-
function _getRegisterableStorage() private pure returns (RegisterableStorage storage $) {
|
29
|
-
assembly {
|
30
|
-
$.slot := REGISTERABLE_LOCATION_V1
|
31
|
-
}
|
32
|
-
}
|
33
|
-
|
34
27
|
function initializeRegisterable(
|
35
28
|
address registryAddress,
|
36
29
|
NftId parentNftId,
|
@@ -47,7 +40,11 @@ contract Registerable is
|
|
47
40
|
initialOwner,
|
48
41
|
registryAddress);
|
49
42
|
|
50
|
-
RegisterableStorage storage
|
43
|
+
RegisterableStorage storage $;
|
44
|
+
assembly {
|
45
|
+
$.slot := REGISTERABLE_LOCATION_V1
|
46
|
+
}
|
47
|
+
|
51
48
|
$._parentNftId = parentNftId;
|
52
49
|
$._objectType = objectType;
|
53
50
|
$._isInterceptor = isInterceptor;
|
@@ -61,9 +58,13 @@ contract Registerable is
|
|
61
58
|
virtual
|
62
59
|
returns (IRegistry.ObjectInfo memory info)
|
63
60
|
{
|
64
|
-
RegisterableStorage
|
61
|
+
RegisterableStorage storage $;
|
62
|
+
assembly {
|
63
|
+
$.slot := REGISTERABLE_LOCATION_V1
|
64
|
+
}
|
65
|
+
|
65
66
|
info = IRegistry.ObjectInfo(
|
66
|
-
|
67
|
+
NftIdLib.zero(),
|
67
68
|
$._parentNftId,
|
68
69
|
$._objectType,
|
69
70
|
$._isInterceptor,
|
@@ -1,20 +1,18 @@
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
2
|
-
pragma solidity ^0.8.
|
2
|
+
pragma solidity ^0.8.20;
|
3
3
|
|
4
4
|
import {AccessManagedUpgradeable} from "@openzeppelin/contracts-upgradeable/access/manager/AccessManagedUpgradeable.sol";
|
5
5
|
import {IAccessManaged} from "@openzeppelin/contracts/access/manager/IAccessManaged.sol";
|
6
6
|
|
7
|
-
import {
|
8
|
-
import {NftId, zeroNftId} from "../types/NftId.sol";
|
9
|
-
import {Version, VersionPart, VersionLib, VersionPartLib} from "../types/Version.sol";
|
10
|
-
|
11
|
-
import {Versionable} from "./Versionable.sol";
|
7
|
+
import {IRegistry} from "../registry/IRegistry.sol";
|
12
8
|
import {IService} from "./IService.sol";
|
13
9
|
import {IVersionable} from "./IVersionable.sol";
|
14
|
-
import {
|
10
|
+
import {NftId} from "../type/NftId.sol";
|
11
|
+
import {ObjectType, REGISTRY, SERVICE} from "../type/ObjectType.sol";
|
15
12
|
import {Registerable} from "./Registerable.sol";
|
16
|
-
|
17
|
-
import {
|
13
|
+
import {RoleId, RoleIdLib} from "../type/RoleId.sol";
|
14
|
+
import {Version, VersionPart, VersionLib, VersionPartLib} from "../type/Version.sol";
|
15
|
+
import {Versionable} from "./Versionable.sol";
|
18
16
|
|
19
17
|
|
20
18
|
/// @dev service base contract
|
@@ -27,15 +25,6 @@ abstract contract Service is
|
|
27
25
|
|
28
26
|
uint8 private constant GIF_MAJOR_VERSION = 3;
|
29
27
|
|
30
|
-
// from Versionable
|
31
|
-
function getVersion()
|
32
|
-
public
|
33
|
-
pure
|
34
|
-
virtual override (IVersionable, Versionable)
|
35
|
-
returns(Version)
|
36
|
-
{
|
37
|
-
return VersionLib.toVersion(GIF_MAJOR_VERSION,0,0);
|
38
|
-
}
|
39
28
|
|
40
29
|
function initializeService(
|
41
30
|
address registry,
|
@@ -58,9 +47,7 @@ abstract contract Service is
|
|
58
47
|
if(authority != address(0)) {
|
59
48
|
__AccessManaged_init(authority);
|
60
49
|
} else {
|
61
|
-
address registryServiceAddress =
|
62
|
-
REGISTRY(),
|
63
|
-
VersionPartLib.toVersionPart(GIF_MAJOR_VERSION));
|
50
|
+
address registryServiceAddress = _getServiceAddress(REGISTRY());
|
64
51
|
|
65
52
|
// copy authority from already registered registry services
|
66
53
|
__AccessManaged_init(IAccessManaged(registryServiceAddress).authority());
|
@@ -69,4 +56,28 @@ abstract contract Service is
|
|
69
56
|
registerInterface(type(IAccessManaged).interfaceId);
|
70
57
|
registerInterface(type(IService).interfaceId);
|
71
58
|
}
|
59
|
+
|
60
|
+
function getDomain() external virtual pure returns(ObjectType serviceDomain) {
|
61
|
+
return _getDomain();
|
62
|
+
}
|
63
|
+
|
64
|
+
function getRoleId() external virtual pure returns(RoleId serviceRoleId) {
|
65
|
+
return RoleIdLib.roleForTypeAndVersion(_getDomain(), VersionPartLib.toVersionPart(GIF_MAJOR_VERSION));
|
66
|
+
}
|
67
|
+
|
68
|
+
// from Versionable
|
69
|
+
function getVersion()
|
70
|
+
public
|
71
|
+
pure
|
72
|
+
virtual override (IVersionable, Versionable)
|
73
|
+
returns(Version)
|
74
|
+
{
|
75
|
+
return VersionLib.toVersion(GIF_MAJOR_VERSION,0,0);
|
76
|
+
}
|
77
|
+
|
78
|
+
function _getDomain() internal virtual pure returns (ObjectType);
|
79
|
+
|
80
|
+
function _getServiceAddress(ObjectType domain) internal view returns (address) {
|
81
|
+
return getRegistry().getServiceAddress(domain, VersionPartLib.toVersionPart(GIF_MAJOR_VERSION));
|
82
|
+
}
|
72
83
|
}
|
@@ -4,7 +4,10 @@ pragma solidity ^0.8.20;
|
|
4
4
|
import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol";
|
5
5
|
import {SafeERC20} from "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol";
|
6
6
|
|
7
|
+
import {Amount} from "../type/Amount.sol";
|
8
|
+
|
7
9
|
/// @dev token specific transfer helper
|
10
|
+
/// a default token contract is provided via contract constructor
|
8
11
|
/// relies internally on oz SafeERC20.safeTransferFrom
|
9
12
|
contract TokenHandler {
|
10
13
|
IERC20Metadata private _token;
|
@@ -13,16 +16,38 @@ contract TokenHandler {
|
|
13
16
|
_token = IERC20Metadata(token);
|
14
17
|
}
|
15
18
|
|
19
|
+
/// @dev transfer amount default tokens
|
16
20
|
function transfer(
|
17
21
|
address from,
|
18
22
|
address to,
|
19
|
-
|
23
|
+
Amount amount
|
24
|
+
)
|
25
|
+
external
|
26
|
+
{
|
27
|
+
SafeERC20.safeTransferFrom(
|
28
|
+
_token,
|
29
|
+
from,
|
30
|
+
to,
|
31
|
+
amount.toInt());
|
32
|
+
}
|
33
|
+
|
34
|
+
/// @dev transfer amount of the specified token
|
35
|
+
function safeTransferFrom(
|
36
|
+
address token,
|
37
|
+
address from,
|
38
|
+
address to,
|
39
|
+
Amount amount
|
20
40
|
)
|
21
41
|
external
|
22
42
|
{
|
23
|
-
SafeERC20.safeTransferFrom(
|
43
|
+
SafeERC20.safeTransferFrom(
|
44
|
+
IERC20Metadata(token),
|
45
|
+
from,
|
46
|
+
to,
|
47
|
+
amount.toInt());
|
24
48
|
}
|
25
49
|
|
50
|
+
/// @dev returns the default token defined for this TokenHandler
|
26
51
|
function getToken()
|
27
52
|
external
|
28
53
|
view
|
@@ -4,7 +4,7 @@ pragma solidity ^0.8.20;
|
|
4
4
|
import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";
|
5
5
|
|
6
6
|
import {IVersionable} from "./IVersionable.sol";
|
7
|
-
import {Version, VersionLib} from "../
|
7
|
+
import {Version, VersionLib} from "../type/Version.sol";
|
8
8
|
|
9
9
|
|
10
10
|
abstract contract Versionable is
|
@@ -0,0 +1,168 @@
|
|
1
|
+
// SPDX-License-Identifier: Apache-2.0
|
2
|
+
pragma solidity ^0.8.20;
|
3
|
+
|
4
|
+
import {Amount} from "../type/Amount.sol";
|
5
|
+
import {IComponent} from "../shared/IComponent.sol";
|
6
|
+
import {IVersionable} from "../shared/IVersionable.sol";
|
7
|
+
import {NftId} from "../type/NftId.sol";
|
8
|
+
import {NftIdSetManager} from "../shared/NftIdSetManager.sol";
|
9
|
+
import {ObjectType} from "../type/ObjectType.sol";
|
10
|
+
import {Seconds} from "../type/Seconds.sol";
|
11
|
+
import {StakingReader} from "./StakingReader.sol";
|
12
|
+
import {StakingStore} from "./StakingStore.sol";
|
13
|
+
import {Timestamp} from "../type/Timestamp.sol";
|
14
|
+
import {UFixed} from "../type/UFixed.sol";
|
15
|
+
|
16
|
+
interface IStaking is
|
17
|
+
IComponent,
|
18
|
+
IVersionable
|
19
|
+
{
|
20
|
+
// staking rate
|
21
|
+
event LogStakingStakingRateSet(uint256 chainId, address token, UFixed oldStakingRate, UFixed newStakingRate);
|
22
|
+
|
23
|
+
// target parameters
|
24
|
+
event LogStakingLockingPeriodSet(NftId targetNftId, Seconds oldLockingPeriod, Seconds lockingPeriod);
|
25
|
+
event LogStakingRewardRateSet(NftId targetNftId, UFixed oldRewardRate, UFixed rewardRate);
|
26
|
+
|
27
|
+
// modifiers
|
28
|
+
error ErrorStakingNotStake(NftId stakeNftId);
|
29
|
+
error ErrorStakingNotTarget(NftId targetNftId);
|
30
|
+
|
31
|
+
error ErrorStakingNotStakingOwner();
|
32
|
+
error ErrorStakingNotNftOwner(NftId nftId);
|
33
|
+
|
34
|
+
// staking rate
|
35
|
+
error ErrorStakingTokenNotRegistered(uint256 chainId, address token);
|
36
|
+
|
37
|
+
// check dip balance and allowance
|
38
|
+
error ErrorStakingDipBalanceInsufficient(address owner, uint256 amount, uint256 dipBalance);
|
39
|
+
error ErrorStakingDipAllowanceInsufficient(address owner, address tokenHandler, uint256 amount, uint256 dipAllowance);
|
40
|
+
|
41
|
+
error ErrorStakingStakingReaderStakingMismatch(address stakingByStakingReader);
|
42
|
+
error ErrorStakingTargetAlreadyRegistered(NftId targetNftId);
|
43
|
+
error ErrorStakingTargetNftIdZero();
|
44
|
+
error ErrorStakingTargetTypeNotSupported(NftId targetNftId, ObjectType objectType);
|
45
|
+
error ErrorStakingTargetUnexpectedObjectType(NftId targetNftId, ObjectType expectedObjectType, ObjectType actualObjectType);
|
46
|
+
error ErrorStakingLockingPeriodZero(NftId targetNftId);
|
47
|
+
error ErrorStakingLockingPeriodTooLong(NftId targetNftId, Seconds maxLockingPeriod, Seconds lockingPeriod);
|
48
|
+
error ErrorStakingRewardRateTooHigh(NftId targetNftId, UFixed maxRewardRate, UFixed rewardRate);
|
49
|
+
error ErrorStakingTargetNotFound(NftId targetNftId);
|
50
|
+
error ErrorStakingTargetTokenNotFound(NftId targetNftId, uint256 chainId, address token);
|
51
|
+
|
52
|
+
error ErrorStakingTargetNotActive(NftId targetNftId);
|
53
|
+
error ErrorStakingStakeAmountZero(NftId targetNftId);
|
54
|
+
|
55
|
+
// info for individual stake
|
56
|
+
struct StakeInfo {
|
57
|
+
Timestamp lockedUntil;
|
58
|
+
}
|
59
|
+
|
60
|
+
struct TargetInfo {
|
61
|
+
ObjectType objectType;
|
62
|
+
uint256 chainId;
|
63
|
+
Seconds lockingPeriod;
|
64
|
+
UFixed rewardRate;
|
65
|
+
}
|
66
|
+
|
67
|
+
// staking rate management
|
68
|
+
|
69
|
+
/// @dev sets the rate that converts 1 token of total value locked into the
|
70
|
+
/// the required staked dip amount to back up the locked token value
|
71
|
+
function setStakingRate(uint256 chainId, address token, UFixed stakingRate) external;
|
72
|
+
|
73
|
+
|
74
|
+
// target management
|
75
|
+
|
76
|
+
function registerTarget(
|
77
|
+
NftId targetNftId,
|
78
|
+
ObjectType expectedObjectType,
|
79
|
+
uint256 chainId,
|
80
|
+
Seconds initialLockingPeriod,
|
81
|
+
UFixed initialRewardRate
|
82
|
+
) external;
|
83
|
+
|
84
|
+
|
85
|
+
/// @dev set the stake locking period to the specified duration.
|
86
|
+
/// permissioned: only the staking service may call this function
|
87
|
+
function setLockingPeriod(NftId targetNftId, Seconds lockingPeriod) external;
|
88
|
+
|
89
|
+
/// @dev update the target specific reward rate.
|
90
|
+
/// permissioned: only the staking service may call this function
|
91
|
+
function setRewardRate(NftId targetNftId, UFixed rewardRate) external;
|
92
|
+
|
93
|
+
/// @dev (re)fills the staking reward reserves for the specified target
|
94
|
+
/// unpermissioned: anybody may fill up staking reward reserves
|
95
|
+
function refillRewardReserves(NftId targetNftId, Amount dipAmount) external returns (Amount newBalance);
|
96
|
+
|
97
|
+
/// @dev defunds the staking reward reserves for the specified target
|
98
|
+
/// permissioned: only the staking service may call this function
|
99
|
+
function withdrawRewardReserves(NftId targetNftId, Amount dipAmount) external returns (Amount newBalance);
|
100
|
+
|
101
|
+
|
102
|
+
/// @dev increases the total value locked amount for the specified target by the provided token amount.
|
103
|
+
/// function is called when a new policy is collateralized.
|
104
|
+
/// function restricted to the pool service.
|
105
|
+
function increaseTotalValueLocked(NftId targetNftId, address token, Amount amount) external returns (Amount newBalance);
|
106
|
+
|
107
|
+
|
108
|
+
/// @dev decreases the total value locked amount for the specified target by the provided token amount.
|
109
|
+
/// function is called when a new policy is closed or payouts are executed.
|
110
|
+
/// function restricted to the pool service.
|
111
|
+
function decreaseTotalValueLocked(NftId targetNftId, address token, Amount amount) external returns (Amount newBalance);
|
112
|
+
|
113
|
+
|
114
|
+
function updateRemoteTvl(NftId targetNftId, address token, Amount amount) external;
|
115
|
+
|
116
|
+
// staking functions
|
117
|
+
|
118
|
+
/// @dev creat a new stake info object
|
119
|
+
/// permissioned: only staking service may call this function.
|
120
|
+
function createStake(NftId stakeNftId, NftId targetNftId, Amount dipAmount) external;
|
121
|
+
|
122
|
+
/// @dev increase the staked dip by dipAmount for the specified stake.
|
123
|
+
/// staking rewards are updated and added to the staked dips as well.
|
124
|
+
/// the function returns the new total amount of staked dips.
|
125
|
+
function stake(NftId stakeNftId, Amount dipAmount) external returns (Amount stakeBalance);
|
126
|
+
|
127
|
+
/// @dev restakes the dips to a new target.
|
128
|
+
/// the sum of the staked dips and the accumulated rewards will be restaked.
|
129
|
+
/// permissioned: only staking service may call this function.
|
130
|
+
function restake(NftId stakeNftId, NftId newTargetNftId) external returns (NftId newStakeNftId);
|
131
|
+
|
132
|
+
/// @dev retuns the specified amount of dips to the holder of the specified stake nft.
|
133
|
+
/// if dipAmount is set to Amount.max() all staked dips and all rewards are transferred to
|
134
|
+
/// permissioned: only staking service may call this function.
|
135
|
+
function unstake(NftId stakeNftId)
|
136
|
+
external
|
137
|
+
returns (
|
138
|
+
Amount unstakedAmount,
|
139
|
+
Amount rewardsClaimedAmount
|
140
|
+
);
|
141
|
+
|
142
|
+
/// @dev update stake rewards for current time.
|
143
|
+
/// may be called before an announement of a decrease of a reward rate reduction.
|
144
|
+
/// calling this functions ensures that reward balance is updated using the current (higher) reward rate.
|
145
|
+
/// unpermissioned.
|
146
|
+
function updateRewards(NftId stakeNftId) external;
|
147
|
+
|
148
|
+
/// @dev transfers all rewards accumulated so far to the holder of the specified stake nft.
|
149
|
+
/// permissioned: only staking service may call this function.
|
150
|
+
function claimRewards(NftId stakeNftId)
|
151
|
+
external
|
152
|
+
returns (
|
153
|
+
Amount rewardsClaimedAmount
|
154
|
+
);
|
155
|
+
|
156
|
+
//--- helper functions --------------------------------------------------//
|
157
|
+
|
158
|
+
/// @dev transfers the specified amount of dips from the from address to the staking wallet.
|
159
|
+
function collectDipAmount(address from, Amount dipAmount) external;
|
160
|
+
|
161
|
+
/// @dev transfers the specified amount of dips from the staking wallet to the to addess.
|
162
|
+
function transferDipAmount(address to, Amount dipAmount) external;
|
163
|
+
|
164
|
+
//--- view and pure functions -------------------------------------------//
|
165
|
+
|
166
|
+
function getStakingStore() external view returns (StakingStore stakingStore);
|
167
|
+
function getStakingReader() external view returns (StakingReader reader);
|
168
|
+
}
|