@etherisc/gif-next 0.0.2-e6ad61d-739 → 0.0.2-e802d97-713
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 +338 -19
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +4 -0
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +1416 -0
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +4 -0
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +1349 -0
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +4 -0
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +818 -0
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +4 -0
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +975 -0
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +4 -0
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +814 -0
- package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +4 -0
- package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +778 -0
- package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstance.sol/IInstance.json +331 -1138
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +4 -0
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +650 -0
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +463 -1216
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +4 -0
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +708 -0
- package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.dbg.json +4 -0
- package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.json +228 -0
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +4 -0
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +1701 -0
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +4 -0
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +1053 -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 +3642 -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 +190 -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/ObjectManager.sol/ObjectManager.dbg.json +4 -0
- package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.json +256 -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/{access/IAccess.sol/IAccess.json → module/IBundle.sol/IBundle.json} +2 -2
- package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +4 -0
- package/artifacts/contracts/instance/module/IComponents.sol/IComponents.json +10 -0
- package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +4 -0
- package/artifacts/contracts/instance/{component/IComponent.sol/IComponent.json → module/IDistribution.sol/IDistribution.json} +2 -2
- 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/{pool/IPoolModule.sol/IPool.json → module/IRisk.sol/IRisk.json} +2 -2
- 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/IOracle.sol/IOracle.dbg.json +4 -0
- package/artifacts/contracts/{instance/treasury/ITreasury.sol/ITreasury.json → oracle/IOracle.sol/IOracle.json} +2 -2
- package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +4 -0
- package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +759 -0
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +4 -0
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +662 -0
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +4 -0
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +1146 -0
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +4 -0
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +997 -0
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +4 -0
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +718 -0
- package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +4 -0
- package/artifacts/contracts/pool/BundleService.sol/BundleService.json +1105 -0
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +4 -0
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +746 -0
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +4 -0
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +690 -0
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +4 -0
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +1154 -0
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +4 -0
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +1065 -0
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +4 -0
- package/artifacts/contracts/pool/Pool.sol/Pool.json +1565 -0
- package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +4 -0
- package/artifacts/contracts/pool/PoolService.sol/PoolService.json +1432 -0
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +4 -0
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +738 -0
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +4 -0
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +834 -0
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +722 -0
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +4 -0
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +1278 -0
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +810 -0
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +4 -0
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +499 -0
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +4 -0
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +759 -0
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +4 -0
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +707 -0
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +4 -0
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +536 -0
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +4 -0
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +995 -0
- package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +4 -0
- package/artifacts/contracts/product/IProductService.sol/IProductService.json +387 -0
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +4 -0
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +1146 -0
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +754 -0
- package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +4 -0
- package/artifacts/contracts/product/PricingService.sol/PricingService.json +983 -0
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +778 -0
- package/artifacts/contracts/product/Product.sol/Product.dbg.json +4 -0
- package/artifacts/contracts/product/Product.sol/Product.json +1397 -0
- package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +4 -0
- package/artifacts/contracts/product/ProductService.sol/ProductService.json +679 -0
- package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +694 -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 +744 -26
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +4 -0
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +1110 -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 +1026 -52
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +4 -0
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +407 -0
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +4 -0
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +1415 -0
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +4 -0
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +709 -0
- package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +4 -0
- package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +1292 -0
- package/artifacts/contracts/registry/ServiceAuthorizationsLib.sol/ServiceAuthorizationsLib.dbg.json +4 -0
- package/artifacts/contracts/registry/ServiceAuthorizationsLib.sol/ServiceAuthorizationsLib.json +137 -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/AccessManagerCustom.sol/AccessManagerCustom.dbg.json +4 -0
- package/artifacts/contracts/shared/AccessManagerCustom.sol/AccessManagerCustom.json +1193 -0
- package/artifacts/contracts/shared/AccessManagerExtended.sol/AccessManagerExtended.dbg.json +4 -0
- package/artifacts/contracts/shared/AccessManagerExtended.sol/AccessManagerExtended.json +1715 -0
- package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.dbg.json +4 -0
- package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.json +1728 -0
- package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.dbg.json +4 -0
- package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.json +1806 -0
- package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.dbg.json +4 -0
- package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.json +1824 -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 +1490 -0
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +4 -0
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +792 -0
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +4 -0
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +526 -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/IAccessManagerExtended.sol/IAccessManagerExtended.dbg.json +4 -0
- package/artifacts/contracts/shared/IAccessManagerExtended.sol/IAccessManagerExtended.json +1562 -0
- package/artifacts/contracts/shared/IAccessManagerExtendedWithDisable.sol/IAccessManagerExtendedWithDisable.dbg.json +4 -0
- package/artifacts/contracts/shared/IAccessManagerExtendedWithDisable.sol/IAccessManagerExtendedWithDisable.json +1600 -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 +867 -0
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +4 -0
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +705 -0
- package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +4 -0
- package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.json +468 -0
- package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +4 -0
- package/artifacts/contracts/{instance/lifecycle/ILifecycle.sol/ILifecycleModule.json → shared/ILifecycle.sol/ILifecycle.json} +10 -77
- 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/shared/IRegisterable.sol/IRegisterable.json +181 -0
- 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/{instance/component/ComponentModule.sol/ComponentModule.json → shared/IService.sol/IService.json} +168 -134
- package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +4 -0
- package/artifacts/contracts/shared/IVersionable.sol/IVersionable.json +55 -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 +1036 -0
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +4 -0
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +571 -0
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +4 -0
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +194 -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 +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/ProxyManager.sol/ProxyManager.dbg.json +4 -0
- package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +617 -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/{registry/IChainNft.sol/IChainNft.json → shared/Service.sol/Service.json} +260 -218
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +4 -0
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +150 -0
- package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
- package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +129 -0
- package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +4 -0
- package/artifacts/contracts/shared/Versionable.sol/Versionable.json +78 -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 +993 -0
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +4 -0
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +444 -0
- package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +4 -0
- package/artifacts/contracts/staking/Staking.sol/Staking.json +2045 -0
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +777 -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 +1324 -0
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +726 -0
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +2189 -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 +105 -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 +156 -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/StateId.sol/StateIdLib.dbg.json +4 -0
- package/artifacts/contracts/{types → type}/StateId.sol/StateIdLib.json +3 -3
- 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/{types/ChainId.sol/ChainIdLib.json → type/UFixed.sol/MathLib.json} +4 -4
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +4 -0
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +479 -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 +49 -0
- package/contracts/distribution/Distribution.sol +261 -0
- package/contracts/distribution/DistributionService.sol +298 -0
- package/contracts/distribution/DistributionServiceManager.sol +42 -0
- package/contracts/distribution/IDistributionComponent.sol +66 -0
- package/contracts/distribution/IDistributionService.sol +81 -0
- package/contracts/instance/BundleManager.sol +126 -0
- package/contracts/instance/IInstance.sol +79 -22
- package/contracts/instance/IInstanceService.sol +81 -0
- package/contracts/instance/Instance.sol +217 -53
- package/contracts/instance/InstanceAdmin.sol +331 -0
- package/contracts/instance/InstanceAuthorizationsLib.sol +377 -0
- package/contracts/instance/InstanceReader.sol +390 -0
- package/contracts/instance/InstanceService.sol +362 -0
- package/contracts/instance/InstanceServiceManager.sol +44 -0
- package/contracts/instance/InstanceStore.sol +281 -0
- package/contracts/instance/base/BalanceStore.sol +118 -0
- package/contracts/instance/base/Cloneable.sol +51 -0
- package/contracts/instance/base/ObjectCounter.sol +21 -0
- package/contracts/instance/base/ObjectManager.sol +82 -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/IOracle.sol +20 -0
- package/contracts/oracle/IOracleComponent.sol +32 -0
- package/contracts/oracle/IOracleService.sol +65 -0
- package/contracts/oracle/Oracle.sol +145 -0
- package/contracts/oracle/OracleService.sol +277 -0
- package/contracts/oracle/OracleServiceManager.sol +42 -0
- package/contracts/pool/BundleService.sol +296 -0
- package/contracts/pool/BundleServiceManager.sol +42 -0
- package/contracts/pool/IBundleService.sol +106 -0
- package/contracts/pool/IPoolComponent.sol +112 -0
- package/contracts/pool/IPoolService.sol +150 -0
- package/contracts/pool/Pool.sol +299 -0
- package/contracts/pool/PoolService.sol +453 -0
- package/contracts/pool/PoolServiceManager.sol +42 -0
- package/contracts/product/ApplicationService.sol +254 -0
- package/contracts/product/ApplicationServiceManager.sol +38 -0
- package/contracts/product/ClaimService.sol +442 -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 +42 -0
- package/contracts/product/IProductService.sol +33 -0
- package/contracts/product/PolicyService.sol +475 -0
- package/contracts/product/PolicyServiceManager.sol +42 -0
- package/contracts/product/PricingService.sol +301 -0
- package/contracts/product/PricingServiceManager.sol +42 -0
- package/contracts/product/Product.sol +377 -0
- package/contracts/product/ProductService.sol +124 -0
- package/contracts/product/ProductServiceManager.sol +42 -0
- package/contracts/registry/ChainNft.sol +144 -62
- package/contracts/registry/IRegistry.sol +99 -42
- package/contracts/registry/IRegistryService.sol +69 -0
- package/contracts/registry/ITransferInterceptor.sol +7 -0
- package/contracts/registry/Registry.sol +521 -127
- package/contracts/registry/RegistryAdmin.sol +237 -0
- package/contracts/registry/RegistryService.sol +266 -0
- package/contracts/registry/RegistryServiceManager.sol +58 -0
- package/contracts/registry/ReleaseManager.sol +600 -0
- package/contracts/registry/ServiceAuthorizationsLib.sol +173 -0
- package/contracts/registry/TokenRegistry.sol +315 -0
- package/contracts/shared/AccessManagerCustom.sol +736 -0
- package/contracts/shared/AccessManagerExtended.sol +470 -0
- package/contracts/shared/AccessManagerExtendedInitializeable.sol +13 -0
- package/contracts/shared/AccessManagerExtendedWithDisable.sol +137 -0
- package/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol +14 -0
- package/contracts/shared/Component.sol +281 -0
- package/contracts/shared/ComponentService.sol +618 -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/IAccessManagerExtended.sol +74 -0
- package/contracts/shared/IAccessManagerExtendedWithDisable.sol +18 -0
- package/contracts/shared/IComponent.sol +70 -0
- package/contracts/shared/IComponentService.sol +102 -0
- package/contracts/shared/IInstanceLinkedComponent.sol +46 -0
- package/contracts/shared/IKeyValueStore.sol +53 -0
- package/contracts/shared/ILifecycle.sol +30 -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 +18 -0
- package/contracts/shared/IVersionable.sol +53 -0
- package/contracts/shared/InitializableCustom.sol +177 -0
- package/contracts/shared/InstanceLinkedComponent.sol +144 -0
- package/contracts/shared/KeyValueStore.sol +127 -0
- package/contracts/shared/Lifecycle.sol +130 -0
- package/contracts/shared/NftIdSetManager.sol +65 -0
- package/contracts/shared/NftOwnable.sol +107 -0
- package/contracts/shared/PolicyHolder.sol +102 -0
- package/contracts/shared/ProxyManager.sol +199 -0
- package/contracts/shared/Registerable.sol +75 -0
- package/contracts/shared/RegistryLinked.sol +43 -0
- package/contracts/shared/Service.sol +77 -0
- package/contracts/shared/TokenHandler.sol +58 -0
- package/contracts/shared/UpgradableProxyWithAdmin.sol +16 -0
- package/contracts/shared/Versionable.sol +59 -0
- package/contracts/staking/IStaking.sol +168 -0
- package/contracts/staking/IStakingService.sol +149 -0
- package/contracts/staking/StakeManagerLib.sol +179 -0
- package/contracts/staking/Staking.sol +551 -0
- package/contracts/staking/StakingManager.sol +54 -0
- package/contracts/staking/StakingReader.sol +187 -0
- package/contracts/staking/StakingService.sol +406 -0
- package/contracts/staking/StakingServiceManager.sol +45 -0
- package/contracts/staking/StakingStore.sol +572 -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/{types → type}/ObjectType.sol +81 -20
- 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 +146 -0
- package/contracts/type/Seconds.sol +81 -0
- package/contracts/{types → type}/StateId.sol +50 -6
- package/contracts/{types → type}/Timestamp.sol +41 -7
- package/contracts/type/UFixed.sol +326 -0
- package/contracts/type/Version.sol +108 -0
- package/package.json +14 -7
- package/artifacts/contracts/components/Component.sol/Component.dbg.json +0 -4
- package/artifacts/contracts/components/Component.sol/Component.json +0 -205
- 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 -255
- package/artifacts/contracts/components/IProduct.sol/IProductComponent.dbg.json +0 -4
- package/artifacts/contracts/components/IProduct.sol/IProductComponent.json +0 -74
- package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +0 -4
- package/artifacts/contracts/components/Pool.sol/Pool.json +0 -328
- package/artifacts/contracts/components/Product.sol/Product.dbg.json +0 -4
- package/artifacts/contracts/components/Product.sol/Product.json +0 -346
- 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/statemachine/Dummy.sol/LifeCycleModule.dbg.json +0 -4
- package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.json +0 -59
- package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.dbg.json +0 -4
- package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.json +0 -124
- package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.dbg.json +0 -4
- package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.json +0 -74
- package/artifacts/contracts/experiment/statemachine/SM.sol/SM.dbg.json +0 -4
- package/artifacts/contracts/experiment/statemachine/SM.sol/SM.json +0 -124
- package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.dbg.json +0 -4
- package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.json +0 -207
- 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/ComponentOwnerService.dbg.json +0 -4
- package/artifacts/contracts/instance/component/ComponentModule.sol/ComponentOwnerService.json +0 -202
- 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 -205
- package/artifacts/contracts/instance/component/IComponent.sol/IComponentModule.dbg.json +0 -4
- package/artifacts/contracts/instance/component/IComponent.sol/IComponentModule.json +0 -217
- package/artifacts/contracts/instance/component/IComponent.sol/IComponentOwnerService.dbg.json +0 -4
- package/artifacts/contracts/instance/component/IComponent.sol/IComponentOwnerService.json +0 -141
- 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/lifecycle/ILifecycle.sol/ILifecycle.dbg.json +0 -4
- package/artifacts/contracts/instance/lifecycle/ILifecycle.sol/ILifecycle.json +0 -134
- package/artifacts/contracts/instance/lifecycle/ILifecycle.sol/ILifecycleModule.dbg.json +0 -4
- package/artifacts/contracts/instance/lifecycle/LifecycleModule.sol/LifecycleModule.dbg.json +0 -4
- package/artifacts/contracts/instance/lifecycle/LifecycleModule.sol/LifecycleModule.json +0 -221
- 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 -254
- package/artifacts/contracts/instance/policy/PolicyModule.sol/PolicyModule.dbg.json +0 -4
- package/artifacts/contracts/instance/policy/PolicyModule.sol/PolicyModule.json +0 -254
- 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 -129
- package/artifacts/contracts/instance/pool/PoolModule.sol/PoolModule.dbg.json +0 -4
- package/artifacts/contracts/instance/pool/PoolModule.sol/PoolModule.json +0 -155
- 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 -127
- 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 -196
- package/artifacts/contracts/instance/treasury/ITreasury.sol/ITreasury.dbg.json +0 -4
- package/artifacts/contracts/instance/treasury/ITreasury.sol/ITreasuryModule.dbg.json +0 -4
- package/artifacts/contracts/instance/treasury/ITreasury.sol/ITreasuryModule.json +0 -490
- package/artifacts/contracts/instance/treasury/TokenHandler.sol/TokenHandler.dbg.json +0 -4
- package/artifacts/contracts/instance/treasury/TokenHandler.sol/TokenHandler.json +0 -45
- package/artifacts/contracts/instance/treasury/TreasuryModule.sol/TreasuryModule.dbg.json +0 -4
- package/artifacts/contracts/instance/treasury/TreasuryModule.sol/TreasuryModule.json +0 -490
- package/artifacts/contracts/registry/IChainNft.sol/IChainNft.dbg.json +0 -4
- 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/NftId.sol/NftIdLib.dbg.json +0 -4
- package/artifacts/contracts/types/NftId.sol/NftIdLib.json +0 -92
- 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/StateId.sol/StateIdLib.dbg.json +0 -4
- 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 -479
- package/contracts/components/Component.sol +0 -77
- package/contracts/components/IPool.sol +0 -15
- package/contracts/components/IProduct.sol +0 -16
- package/contracts/components/Pool.sol +0 -52
- package/contracts/components/Product.sol +0 -89
- 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/statemachine/Dummy.sol +0 -27
- package/contracts/experiment/statemachine/ISM.sol +0 -25
- package/contracts/experiment/statemachine/README.md +0 -112
- package/contracts/experiment/statemachine/SM.sol +0 -57
- package/contracts/experiment/statemachine/SimpleStateMachine.sol +0 -31
- 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 -274
- package/contracts/instance/component/IComponent.sol +0 -74
- package/contracts/instance/lifecycle/ILifecycle.sol +0 -47
- package/contracts/instance/lifecycle/LifecycleModule.sol +0 -88
- package/contracts/instance/policy/IPolicy.sol +0 -50
- package/contracts/instance/policy/PolicyModule.sol +0 -114
- package/contracts/instance/pool/IPoolModule.sol +0 -23
- package/contracts/instance/pool/PoolModule.sol +0 -81
- package/contracts/instance/product/IProductService.sol +0 -36
- package/contracts/instance/product/ProductService.sol +0 -136
- package/contracts/instance/treasury/ITreasury.sol +0 -91
- package/contracts/instance/treasury/TokenHandler.sol +0 -24
- package/contracts/instance/treasury/TreasuryModule.sol +0 -168
- package/contracts/registry/IChainNft.sol +0 -21
- package/contracts/types/ChainId.sol +0 -38
- package/contracts/types/Fee.sol +0 -32
- package/contracts/types/NftId.sol +0 -51
- package/contracts/types/UFixed.sol +0 -210
@@ -1,91 +0,0 @@
|
|
1
|
-
// SPDX-License-Identifier: Apache-2.0
|
2
|
-
pragma solidity ^0.8.19;
|
3
|
-
|
4
|
-
import {IERC20} from "@openzeppelin/contracts/token/ERC20/IERC20.sol";
|
5
|
-
|
6
|
-
import {IRegistryLinked} from "../../registry/IRegistry.sol";
|
7
|
-
|
8
|
-
import {NftId} from "../../types/NftId.sol";
|
9
|
-
import {UFixed} from "../../types/UFixed.sol";
|
10
|
-
import {Fee} from "../../types/Fee.sol";
|
11
|
-
|
12
|
-
import {TokenHandler} from "./TokenHandler.sol";
|
13
|
-
|
14
|
-
interface ITreasury {
|
15
|
-
// TODO add events
|
16
|
-
// TODO add errors
|
17
|
-
}
|
18
|
-
|
19
|
-
interface ITreasuryModule is IRegistryLinked, ITreasury {
|
20
|
-
struct ProductSetup {
|
21
|
-
NftId productNftId;
|
22
|
-
NftId distributorNftId;
|
23
|
-
NftId poolNftId;
|
24
|
-
IERC20 token;
|
25
|
-
TokenHandler tokenHandler;
|
26
|
-
address wallet;
|
27
|
-
Fee policyFee;
|
28
|
-
Fee processingFee;
|
29
|
-
}
|
30
|
-
|
31
|
-
struct DistributorSetup {
|
32
|
-
NftId distributorNftId;
|
33
|
-
address wallet;
|
34
|
-
Fee commissionFees;
|
35
|
-
}
|
36
|
-
|
37
|
-
struct PoolSetup {
|
38
|
-
NftId poolNftId;
|
39
|
-
address wallet;
|
40
|
-
Fee stakingFee;
|
41
|
-
Fee performanceFee;
|
42
|
-
}
|
43
|
-
|
44
|
-
function registerProduct(
|
45
|
-
NftId productNftId,
|
46
|
-
NftId distributorNftId,
|
47
|
-
NftId poolNftId,
|
48
|
-
IERC20 token,
|
49
|
-
address wallet,
|
50
|
-
Fee memory policyFee,
|
51
|
-
Fee memory processingFee
|
52
|
-
) external;
|
53
|
-
|
54
|
-
function setProductFees(
|
55
|
-
NftId productNftId,
|
56
|
-
Fee memory policyFee,
|
57
|
-
Fee memory processingFee
|
58
|
-
) external;
|
59
|
-
|
60
|
-
function registerPool(
|
61
|
-
NftId poolNftId,
|
62
|
-
address wallet,
|
63
|
-
Fee memory stakingFee,
|
64
|
-
Fee memory performanceFee
|
65
|
-
) external;
|
66
|
-
|
67
|
-
function setPoolFees(
|
68
|
-
NftId poolNftId,
|
69
|
-
Fee memory stakingFee,
|
70
|
-
Fee memory performanceFee
|
71
|
-
) external;
|
72
|
-
|
73
|
-
function processPremium(NftId policyNftId, NftId productNftId) external;
|
74
|
-
|
75
|
-
function getTokenHandler(
|
76
|
-
NftId productNftId
|
77
|
-
) external view returns (TokenHandler tokenHandler);
|
78
|
-
|
79
|
-
function getProductSetup(
|
80
|
-
NftId productNftId
|
81
|
-
) external view returns (ProductSetup memory setup);
|
82
|
-
|
83
|
-
function getPoolSetup(
|
84
|
-
NftId poolNftId
|
85
|
-
) external view returns (PoolSetup memory setup);
|
86
|
-
|
87
|
-
function calculateFeeAmount(
|
88
|
-
uint256 amount,
|
89
|
-
Fee memory fee
|
90
|
-
) external pure returns (uint256 feeAmount, uint256 netAmount);
|
91
|
-
}
|
@@ -1,24 +0,0 @@
|
|
1
|
-
// SPDX-License-Identifier: Apache-2.0
|
2
|
-
pragma solidity ^0.8.19;
|
3
|
-
|
4
|
-
import {IERC20} from "@openzeppelin/contracts/token/ERC20/IERC20.sol";
|
5
|
-
|
6
|
-
contract TokenHandler {
|
7
|
-
// TODO use oz safeTransferFrom
|
8
|
-
|
9
|
-
IERC20 _token;
|
10
|
-
|
11
|
-
constructor(address token) {
|
12
|
-
_token = IERC20(token);
|
13
|
-
}
|
14
|
-
|
15
|
-
// TODO add logging
|
16
|
-
function transfer(
|
17
|
-
address from,
|
18
|
-
address to,
|
19
|
-
uint256 amount
|
20
|
-
) external // TODO add authz (only treasury)
|
21
|
-
{
|
22
|
-
_token.transferFrom(from, to, amount);
|
23
|
-
}
|
24
|
-
}
|
@@ -1,168 +0,0 @@
|
|
1
|
-
// SPDX-License-Identifier: Apache-2.0
|
2
|
-
pragma solidity ^0.8.19;
|
3
|
-
|
4
|
-
import "@openzeppelin/contracts/token/ERC20/IERC20.sol";
|
5
|
-
|
6
|
-
import {NftId} from "../../types/NftId.sol";
|
7
|
-
import {Fee, feeIsZero} from "../../types/Fee.sol";
|
8
|
-
import {UFixed, UFixedMathLib} from "../../types/UFixed.sol";
|
9
|
-
import {IProductComponent} from "../../components/IProduct.sol";
|
10
|
-
import {IPolicy, IPolicyModule} from "../policy/IPolicy.sol";
|
11
|
-
import {TokenHandler} from "./TokenHandler.sol";
|
12
|
-
import {ITreasuryModule} from "./ITreasury.sol";
|
13
|
-
import {TokenHandler} from "./TokenHandler.sol";
|
14
|
-
|
15
|
-
abstract contract TreasuryModule is ITreasuryModule {
|
16
|
-
mapping(NftId productNftId => ProductSetup setup) private _productSetup;
|
17
|
-
mapping(NftId distributorNftId => DistributorSetup setup)
|
18
|
-
private _distributorSetup;
|
19
|
-
mapping(NftId poolNftId => PoolSetup setup) private _poolSetup;
|
20
|
-
|
21
|
-
IPolicyModule private _policyModule;
|
22
|
-
|
23
|
-
constructor() {
|
24
|
-
_policyModule = IPolicyModule(address(this));
|
25
|
-
}
|
26
|
-
|
27
|
-
function registerProduct(
|
28
|
-
NftId productNftId,
|
29
|
-
NftId distributorNftId,
|
30
|
-
NftId poolNftId,
|
31
|
-
IERC20 token,
|
32
|
-
address wallet,
|
33
|
-
Fee memory policyFee,
|
34
|
-
Fee memory processingFee
|
35
|
-
) external override // TODO add authz (only component module)
|
36
|
-
{
|
37
|
-
// TODO add validation
|
38
|
-
|
39
|
-
// deploy product specific handler contract
|
40
|
-
TokenHandler tokenHandler = new TokenHandler(address(token));
|
41
|
-
|
42
|
-
_productSetup[productNftId] = ProductSetup(
|
43
|
-
productNftId,
|
44
|
-
distributorNftId,
|
45
|
-
poolNftId,
|
46
|
-
token,
|
47
|
-
tokenHandler,
|
48
|
-
wallet,
|
49
|
-
policyFee,
|
50
|
-
processingFee
|
51
|
-
);
|
52
|
-
|
53
|
-
// TODO add logging
|
54
|
-
}
|
55
|
-
|
56
|
-
function setProductFees(
|
57
|
-
NftId productNftId,
|
58
|
-
Fee memory policyFee,
|
59
|
-
Fee memory processingFee
|
60
|
-
) external override // TODO add authz (only component owner service)
|
61
|
-
{
|
62
|
-
// TODO add validation
|
63
|
-
|
64
|
-
ProductSetup storage setup = _productSetup[productNftId];
|
65
|
-
setup.policyFee = policyFee;
|
66
|
-
setup.processingFee = processingFee;
|
67
|
-
|
68
|
-
// TODO add logging
|
69
|
-
}
|
70
|
-
|
71
|
-
function registerPool(
|
72
|
-
NftId poolNftId,
|
73
|
-
address wallet,
|
74
|
-
Fee memory stakingFee,
|
75
|
-
Fee memory performanceFee
|
76
|
-
) external override // TODO add authz (only component module)
|
77
|
-
{
|
78
|
-
// TODO add validation
|
79
|
-
|
80
|
-
_poolSetup[poolNftId] = PoolSetup(
|
81
|
-
poolNftId,
|
82
|
-
wallet,
|
83
|
-
stakingFee,
|
84
|
-
performanceFee
|
85
|
-
);
|
86
|
-
|
87
|
-
// TODO add logging
|
88
|
-
}
|
89
|
-
|
90
|
-
function setPoolFees(
|
91
|
-
NftId poolNftId,
|
92
|
-
Fee memory stakingFee,
|
93
|
-
Fee memory performanceFee
|
94
|
-
) external override // TODO add authz (only component owner service)
|
95
|
-
{
|
96
|
-
// TODO add validation
|
97
|
-
|
98
|
-
PoolSetup storage setup = _poolSetup[poolNftId];
|
99
|
-
setup.stakingFee = stakingFee;
|
100
|
-
setup.performanceFee = performanceFee;
|
101
|
-
|
102
|
-
// TODO add logging
|
103
|
-
}
|
104
|
-
|
105
|
-
function getTokenHandler(
|
106
|
-
NftId productNftId
|
107
|
-
) external view override returns (TokenHandler tokenHandler) {
|
108
|
-
return _productSetup[productNftId].tokenHandler;
|
109
|
-
}
|
110
|
-
|
111
|
-
function getProductSetup(
|
112
|
-
NftId productNftId
|
113
|
-
) external view override returns (ProductSetup memory setup) {
|
114
|
-
return _productSetup[productNftId];
|
115
|
-
}
|
116
|
-
|
117
|
-
function getPoolSetup(
|
118
|
-
NftId poolNftId
|
119
|
-
) external view override returns (PoolSetup memory setup) {
|
120
|
-
return _poolSetup[poolNftId];
|
121
|
-
}
|
122
|
-
|
123
|
-
function processPremium(
|
124
|
-
NftId policyNftId,
|
125
|
-
NftId productNftId
|
126
|
-
) external override // TODO add authz (only product service)
|
127
|
-
{
|
128
|
-
IPolicy.PolicyInfo memory policyInfo = _policyModule.getPolicyInfo(
|
129
|
-
policyNftId
|
130
|
-
);
|
131
|
-
require(
|
132
|
-
policyInfo.nftId == policyNftId,
|
133
|
-
"ERROR:TRS-020:POLICY_UNKNOWN"
|
134
|
-
);
|
135
|
-
|
136
|
-
ProductSetup memory product = _productSetup[productNftId];
|
137
|
-
TokenHandler tokenHandler = product.tokenHandler;
|
138
|
-
address policyOwner = this.getRegistry().getOwner(policyNftId);
|
139
|
-
address poolWallet = _poolSetup[product.poolNftId].wallet;
|
140
|
-
// TODO add validation
|
141
|
-
|
142
|
-
if (feeIsZero(product.policyFee)) {
|
143
|
-
tokenHandler.transfer(
|
144
|
-
policyOwner,
|
145
|
-
poolWallet,
|
146
|
-
policyInfo.premiumAmount
|
147
|
-
);
|
148
|
-
} else {
|
149
|
-
(uint256 feeAmount, uint256 netAmount) = calculateFeeAmount(
|
150
|
-
policyInfo.premiumAmount,
|
151
|
-
product.policyFee
|
152
|
-
);
|
153
|
-
|
154
|
-
tokenHandler.transfer(policyOwner, product.wallet, feeAmount);
|
155
|
-
tokenHandler.transfer(policyOwner, poolWallet, netAmount);
|
156
|
-
}
|
157
|
-
}
|
158
|
-
|
159
|
-
function calculateFeeAmount(
|
160
|
-
uint256 amount,
|
161
|
-
Fee memory fee
|
162
|
-
) public pure override returns (uint256 feeAmount, uint256 netAmount) {
|
163
|
-
UFixed fractionalAmount = UFixedMathLib.itof(amount) *
|
164
|
-
fee.fractionalFee;
|
165
|
-
feeAmount = UFixedMathLib.ftoi(fractionalAmount) + fee.fixedFee;
|
166
|
-
netAmount = amount - feeAmount;
|
167
|
-
}
|
168
|
-
}
|
@@ -1,21 +0,0 @@
|
|
1
|
-
// SPDX-License-Identifier: Apache-2.0
|
2
|
-
pragma solidity ^0.8.19;
|
3
|
-
|
4
|
-
import {IERC721Enumerable} from "@openzeppelin/contracts/token/ERC721/extensions/IERC721Enumerable.sol";
|
5
|
-
|
6
|
-
interface IChainNft is IERC721Enumerable {
|
7
|
-
function mint(
|
8
|
-
address to,
|
9
|
-
string memory uri
|
10
|
-
) external returns (uint256 tokenId);
|
11
|
-
|
12
|
-
function burn(uint256 tokenId) external;
|
13
|
-
|
14
|
-
function setURI(uint256 tokenId, string memory uri) external;
|
15
|
-
|
16
|
-
function exists(uint256 tokenId) external view returns (bool);
|
17
|
-
|
18
|
-
function totalMinted() external view returns (uint256);
|
19
|
-
|
20
|
-
function getRegistryAddress() external view returns (address registry);
|
21
|
-
}
|
@@ -1,38 +0,0 @@
|
|
1
|
-
// SPDX-License-Identifier: Apache-2.0
|
2
|
-
pragma solidity ^0.8.19;
|
3
|
-
|
4
|
-
/// @dev bytes5 (uint40) allows for chain ids up to 13 digits
|
5
|
-
type ChainId is bytes5;
|
6
|
-
|
7
|
-
// type bindings
|
8
|
-
using {eqChainId as ==, neChainId as !=, ChainIdLib.toInt} for ChainId global;
|
9
|
-
|
10
|
-
// general pure free functions
|
11
|
-
/// @dev Converts the uint256 to a ChainId.
|
12
|
-
function toChainId(uint256 chainId) pure returns (ChainId) {
|
13
|
-
return ChainId.wrap(bytes5(uint40(chainId)));
|
14
|
-
}
|
15
|
-
|
16
|
-
/// @dev Return the ChainId for the chain the contract is deployed to
|
17
|
-
function thisChainId() view returns (ChainId) {
|
18
|
-
return toChainId(block.chainid);
|
19
|
-
}
|
20
|
-
|
21
|
-
// pure free functions for operators
|
22
|
-
/// @dev Returns true if the values are equal (==).
|
23
|
-
function eqChainId(ChainId a, ChainId b) pure returns (bool isSame) {
|
24
|
-
return ChainId.unwrap(a) == ChainId.unwrap(b);
|
25
|
-
}
|
26
|
-
|
27
|
-
/// @dev Returns true if the values are not equal (!=).
|
28
|
-
function neChainId(ChainId a, ChainId b) pure returns (bool isDifferent) {
|
29
|
-
return ChainId.unwrap(a) != ChainId.unwrap(b);
|
30
|
-
}
|
31
|
-
|
32
|
-
// library functions that operate on user defined type
|
33
|
-
library ChainIdLib {
|
34
|
-
/// @dev Converts the ChainId to a uint256.
|
35
|
-
function toInt(ChainId chainId) internal pure returns (uint256) {
|
36
|
-
return uint256(uint40(ChainId.unwrap(chainId)));
|
37
|
-
}
|
38
|
-
}
|
package/contracts/types/Fee.sol
DELETED
@@ -1,32 +0,0 @@
|
|
1
|
-
// SPDX-License-Identifier: Apache-2.0
|
2
|
-
pragma solidity ^0.8.19;
|
3
|
-
|
4
|
-
import {UFixed} from "./UFixed.sol";
|
5
|
-
|
6
|
-
struct Fee {
|
7
|
-
UFixed fractionalFee;
|
8
|
-
uint256 fixedFee;
|
9
|
-
}
|
10
|
-
|
11
|
-
// general pure free functions
|
12
|
-
/// @dev Converts the uint256 to a NftId.
|
13
|
-
function toFee(
|
14
|
-
UFixed fractionalFee,
|
15
|
-
uint256 fixedFee
|
16
|
-
) pure returns (Fee memory fee) {
|
17
|
-
return Fee(fractionalFee, fixedFee);
|
18
|
-
}
|
19
|
-
|
20
|
-
/// @dev Return the NftId zero (0)
|
21
|
-
function zeroFee() pure returns (Fee memory fee) {
|
22
|
-
return Fee(UFixed.wrap(0), 0);
|
23
|
-
}
|
24
|
-
|
25
|
-
// pure free functions for operators
|
26
|
-
function feeIsSame(Fee memory a, Fee memory b) pure returns (bool isSame) {
|
27
|
-
return a.fixedFee == b.fixedFee && a.fractionalFee == b.fractionalFee;
|
28
|
-
}
|
29
|
-
|
30
|
-
function feeIsZero(Fee memory fee) pure returns (bool) {
|
31
|
-
return fee.fixedFee == 0 && UFixed.unwrap(fee.fractionalFee) == 0;
|
32
|
-
}
|
@@ -1,51 +0,0 @@
|
|
1
|
-
// SPDX-License-Identifier: Apache-2.0
|
2
|
-
pragma solidity ^0.8.19;
|
3
|
-
|
4
|
-
// uint96 allows for chain ids up to 13 digits
|
5
|
-
type NftId is uint96;
|
6
|
-
|
7
|
-
// type bindings
|
8
|
-
using {eqNftId as ==, neNftId as !=, NftIdLib.toInt} for NftId global;
|
9
|
-
|
10
|
-
// general pure free functions
|
11
|
-
/// @dev Converts the uint256 to a NftId.
|
12
|
-
function toNftId(uint256 id) pure returns (NftId) {
|
13
|
-
return NftId.wrap(uint96(id));
|
14
|
-
}
|
15
|
-
|
16
|
-
/// @dev Return the NftId zero (0)
|
17
|
-
function zeroNftId() pure returns (NftId) {
|
18
|
-
return NftId.wrap(0);
|
19
|
-
}
|
20
|
-
|
21
|
-
// pure free functions for operators
|
22
|
-
function eqNftId(NftId a, NftId b) pure returns (bool isSame) {
|
23
|
-
return NftId.unwrap(a) == NftId.unwrap(b);
|
24
|
-
}
|
25
|
-
|
26
|
-
function neNftId(NftId a, NftId b) pure returns (bool isDifferent) {
|
27
|
-
return NftId.unwrap(a) != NftId.unwrap(b);
|
28
|
-
}
|
29
|
-
|
30
|
-
// library functions that operate on user defined type
|
31
|
-
library NftIdLib {
|
32
|
-
/// @dev Converts the NftId to a uint256.
|
33
|
-
function toInt(NftId nftId) public pure returns (uint96) {
|
34
|
-
return uint96(NftId.unwrap(nftId));
|
35
|
-
}
|
36
|
-
|
37
|
-
/// @dev Returns true if the value is non-zero (> 0).
|
38
|
-
function gtz(NftId a) public pure returns (bool) {
|
39
|
-
return NftId.unwrap(a) > 0;
|
40
|
-
}
|
41
|
-
|
42
|
-
/// @dev Returns true if the value is zero (== 0).
|
43
|
-
function eqz(NftId a) public pure returns (bool) {
|
44
|
-
return NftId.unwrap(a) == 0;
|
45
|
-
}
|
46
|
-
|
47
|
-
/// @dev Returns true if the values are equal (==).
|
48
|
-
function eq(NftId a, NftId b) public pure returns (bool isSame) {
|
49
|
-
return eqNftId(a, b);
|
50
|
-
}
|
51
|
-
}
|
@@ -1,210 +0,0 @@
|
|
1
|
-
// SPDX-License-Identifier: Apache-2.0
|
2
|
-
pragma solidity ^0.8.19;
|
3
|
-
|
4
|
-
import {Math} from "@openzeppelin/contracts/utils/math/Math.sol";
|
5
|
-
|
6
|
-
/// @dev UFixed is a fixed point number with 18 decimals precision.
|
7
|
-
type UFixed is uint256;
|
8
|
-
|
9
|
-
using {
|
10
|
-
addUFixed as +,
|
11
|
-
subUFixed as -,
|
12
|
-
mulUFixed as *,
|
13
|
-
divUFixed as /,
|
14
|
-
gtUFixed as >,
|
15
|
-
gteUFixed as >=,
|
16
|
-
ltUFixed as <,
|
17
|
-
lteUFixed as <=,
|
18
|
-
eqUFixed as ==
|
19
|
-
} for UFixed global;
|
20
|
-
|
21
|
-
function addUFixed(UFixed a, UFixed b) pure returns (UFixed) {
|
22
|
-
return UFixed.wrap(UFixed.unwrap(a) + UFixed.unwrap(b));
|
23
|
-
}
|
24
|
-
|
25
|
-
function subUFixed(UFixed a, UFixed b) pure returns (UFixed) {
|
26
|
-
require(a >= b, "ERROR:UFM-010:NEGATIVE_RESULT");
|
27
|
-
return UFixed.wrap(UFixed.unwrap(a) - UFixed.unwrap(b));
|
28
|
-
}
|
29
|
-
|
30
|
-
function mulUFixed(UFixed a, UFixed b) pure returns (UFixed) {
|
31
|
-
return
|
32
|
-
UFixed.wrap(Math.mulDiv(UFixed.unwrap(a), UFixed.unwrap(b), 10 ** 18));
|
33
|
-
}
|
34
|
-
|
35
|
-
function divUFixed(UFixed a, UFixed b) pure returns (UFixed) {
|
36
|
-
require(UFixed.unwrap(b) > 0, "ERROR:UFM-020:DIVISOR_ZERO");
|
37
|
-
|
38
|
-
return
|
39
|
-
UFixed.wrap(Math.mulDiv(UFixed.unwrap(a), 10 ** 18, UFixed.unwrap(b)));
|
40
|
-
}
|
41
|
-
|
42
|
-
function gtUFixed(UFixed a, UFixed b) pure returns (bool isGreaterThan) {
|
43
|
-
return UFixed.unwrap(a) > UFixed.unwrap(b);
|
44
|
-
}
|
45
|
-
|
46
|
-
function gteUFixed(UFixed a, UFixed b) pure returns (bool isGreaterThan) {
|
47
|
-
return UFixed.unwrap(a) >= UFixed.unwrap(b);
|
48
|
-
}
|
49
|
-
|
50
|
-
function ltUFixed(UFixed a, UFixed b) pure returns (bool isGreaterThan) {
|
51
|
-
return UFixed.unwrap(a) < UFixed.unwrap(b);
|
52
|
-
}
|
53
|
-
|
54
|
-
function lteUFixed(UFixed a, UFixed b) pure returns (bool isGreaterThan) {
|
55
|
-
return UFixed.unwrap(a) <= UFixed.unwrap(b);
|
56
|
-
}
|
57
|
-
|
58
|
-
function eqUFixed(UFixed a, UFixed b) pure returns (bool isEqual) {
|
59
|
-
return UFixed.unwrap(a) == UFixed.unwrap(b);
|
60
|
-
}
|
61
|
-
|
62
|
-
function gtzUFixed(UFixed a) pure returns (bool isZero) {
|
63
|
-
return UFixed.unwrap(a) > 0;
|
64
|
-
}
|
65
|
-
|
66
|
-
function eqzUFixed(UFixed a) pure returns (bool isZero) {
|
67
|
-
return UFixed.unwrap(a) == 0;
|
68
|
-
}
|
69
|
-
|
70
|
-
function deltaUFixed(UFixed a, UFixed b) pure returns (UFixed) {
|
71
|
-
if (a > b) {
|
72
|
-
return a - b;
|
73
|
-
}
|
74
|
-
|
75
|
-
return b - a;
|
76
|
-
}
|
77
|
-
|
78
|
-
library UFixedMathLib {
|
79
|
-
|
80
|
-
int8 public constant EXP = 18;
|
81
|
-
uint256 public constant MULTIPLIER = 10 ** uint256(int256(EXP));
|
82
|
-
uint256 public constant MULTIPLIER_HALF = MULTIPLIER / 2;
|
83
|
-
|
84
|
-
/// @dev returns the rounding mode DOWN - 0.4 becomes 0, 0.5 becomes 0, 0.6 becomes 0
|
85
|
-
function ROUNDING_DOWN() public pure returns (uint8) {
|
86
|
-
return uint8(0);
|
87
|
-
}
|
88
|
-
|
89
|
-
/// @dev returns the rounding mode UP - 0.4 becomes 1, 0.5 becomes 1, 0.6 becomes 1
|
90
|
-
function ROUNDING_UP() public pure returns (uint8) {
|
91
|
-
return uint8(1);
|
92
|
-
}
|
93
|
-
|
94
|
-
/// @dev returns the rounding mode HALF_UP - 0.4 becomes 0, 0.5 becomes 1, 0.6 becomes 1
|
95
|
-
function ROUNDING_HALF_UP() public pure returns (uint8) {
|
96
|
-
return uint8(2);
|
97
|
-
}
|
98
|
-
|
99
|
-
/// @dev returns the decimals precision of the UFixed type
|
100
|
-
function decimals() public pure returns (uint256) {
|
101
|
-
return uint8(EXP);
|
102
|
-
}
|
103
|
-
|
104
|
-
/// @dev Converts the uint256 to a UFixed.
|
105
|
-
function itof(uint256 a) public pure returns (UFixed) {
|
106
|
-
return UFixed.wrap(a * MULTIPLIER);
|
107
|
-
}
|
108
|
-
|
109
|
-
// TODO rename to toUFixed
|
110
|
-
/// @dev Converts the uint256 to a UFixed with given exponent.
|
111
|
-
function itof(uint256 a, int8 exp) public pure returns (UFixed) {
|
112
|
-
require(EXP + exp >= 0, "ERROR:FM-010:EXPONENT_TOO_SMALL");
|
113
|
-
require(EXP + exp <= 64, "ERROR:FM-011:EXPONENT_TOO_LARGE");
|
114
|
-
|
115
|
-
return UFixed.wrap(a * 10 ** uint8(EXP + exp));
|
116
|
-
}
|
117
|
-
|
118
|
-
/// @dev Converts a UFixed to a uint256.
|
119
|
-
function ftoi(UFixed a) public pure returns (uint256) {
|
120
|
-
return ftoi(a, ROUNDING_HALF_UP());
|
121
|
-
}
|
122
|
-
|
123
|
-
/// @dev Converts a UFixed to a uint256 with given rounding mode.
|
124
|
-
function ftoi(UFixed a, uint8 rounding) public pure returns (uint256) {
|
125
|
-
if (rounding == ROUNDING_HALF_UP()) {
|
126
|
-
return
|
127
|
-
Math.mulDiv(
|
128
|
-
UFixed.unwrap(a) + MULTIPLIER_HALF,
|
129
|
-
1,
|
130
|
-
MULTIPLIER,
|
131
|
-
Math.Rounding.Down
|
132
|
-
);
|
133
|
-
} else if (rounding == ROUNDING_DOWN()) {
|
134
|
-
return
|
135
|
-
Math.mulDiv(
|
136
|
-
UFixed.unwrap(a),
|
137
|
-
1,
|
138
|
-
MULTIPLIER,
|
139
|
-
Math.Rounding.Down
|
140
|
-
);
|
141
|
-
} else {
|
142
|
-
return
|
143
|
-
Math.mulDiv(UFixed.unwrap(a), 1, MULTIPLIER, Math.Rounding.Up);
|
144
|
-
}
|
145
|
-
}
|
146
|
-
|
147
|
-
/// @dev adds two UFixed numbers
|
148
|
-
function add(UFixed a, UFixed b) public pure returns (UFixed) {
|
149
|
-
return addUFixed(a, b);
|
150
|
-
}
|
151
|
-
|
152
|
-
/// @dev subtracts two UFixed numbers
|
153
|
-
function sub(UFixed a, UFixed b) public pure returns (UFixed) {
|
154
|
-
return subUFixed(a, b);
|
155
|
-
}
|
156
|
-
|
157
|
-
/// @dev multiplies two UFixed numbers
|
158
|
-
function mul(UFixed a, UFixed b) public pure returns (UFixed) {
|
159
|
-
return mulUFixed(a, b);
|
160
|
-
}
|
161
|
-
|
162
|
-
/// @dev divides two UFixed numbers
|
163
|
-
function div(UFixed a, UFixed b) public pure returns (UFixed) {
|
164
|
-
return divUFixed(a, b);
|
165
|
-
}
|
166
|
-
|
167
|
-
/// @dev return true if UFixed a is greater than UFixed b
|
168
|
-
function gt(UFixed a, UFixed b) public pure returns (bool isGreaterThan) {
|
169
|
-
return gtUFixed(a, b);
|
170
|
-
}
|
171
|
-
|
172
|
-
/// @dev return true if UFixed a is greater than or equal to UFixed b
|
173
|
-
function gte(UFixed a, UFixed b) public pure returns (bool isGreaterThan) {
|
174
|
-
return gteUFixed(a, b);
|
175
|
-
}
|
176
|
-
|
177
|
-
/// @dev return true if UFixed a is less than UFixed b
|
178
|
-
function lt(UFixed a, UFixed b) public pure returns (bool isGreaterThan) {
|
179
|
-
return ltUFixed(a, b);
|
180
|
-
}
|
181
|
-
|
182
|
-
/// @dev return true if UFixed a is less than or equal to UFixed b
|
183
|
-
function lte(UFixed a, UFixed b) public pure returns (bool isGreaterThan) {
|
184
|
-
return lteUFixed(a, b);
|
185
|
-
}
|
186
|
-
|
187
|
-
/// @dev return true if UFixed a is equal to UFixed b
|
188
|
-
function eq(UFixed a, UFixed b) public pure returns (bool isEqual) {
|
189
|
-
return eqUFixed(a, b);
|
190
|
-
}
|
191
|
-
|
192
|
-
/// @dev return true if UFixed a is not zero
|
193
|
-
function gtz(UFixed a) public pure returns (bool isZero) {
|
194
|
-
return gtzUFixed(a);
|
195
|
-
}
|
196
|
-
|
197
|
-
/// @dev return true if UFixed a is zero
|
198
|
-
function eqz(UFixed a) public pure returns (bool isZero) {
|
199
|
-
return eqzUFixed(a);
|
200
|
-
}
|
201
|
-
|
202
|
-
function zero() public pure returns (UFixed) {
|
203
|
-
return UFixed.wrap(0);
|
204
|
-
}
|
205
|
-
|
206
|
-
/// @dev return the absolute delta between two UFixed numbers
|
207
|
-
function delta(UFixed a, UFixed b) public pure returns (UFixed) {
|
208
|
-
return deltaUFixed(a, b);
|
209
|
-
}
|
210
|
-
}
|