@xyo-network/xl1-protocol-model 1.26.1
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/dist/neutral/BlockNumber/BlockNumber.d.ts +35 -0
- package/dist/neutral/BlockNumber/BlockNumber.d.ts.map +1 -0
- package/dist/neutral/BlockNumber/EthBlockNumber.d.ts +46 -0
- package/dist/neutral/BlockNumber/EthBlockNumber.d.ts.map +1 -0
- package/dist/neutral/BlockNumber/Numberish.d.ts +6 -0
- package/dist/neutral/BlockNumber/Numberish.d.ts.map +1 -0
- package/dist/neutral/BlockNumber/XL1BlockNumber.d.ts +46 -0
- package/dist/neutral/BlockNumber/XL1BlockNumber.d.ts.map +1 -0
- package/dist/neutral/BlockNumber/index.d.ts +5 -0
- package/dist/neutral/BlockNumber/index.d.ts.map +1 -0
- package/dist/neutral/Initializable.d.ts +9 -0
- package/dist/neutral/Initializable.d.ts.map +1 -0
- package/dist/neutral/RecordKeyType.d.ts +4 -0
- package/dist/neutral/RecordKeyType.d.ts.map +1 -0
- package/dist/neutral/Step/StepHash.d.ts +11 -0
- package/dist/neutral/Step/StepHash.d.ts.map +1 -0
- package/dist/neutral/Step/StepIdentity.d.ts +19 -0
- package/dist/neutral/Step/StepIdentity.d.ts.map +1 -0
- package/dist/neutral/Step/StepSizes.d.ts +12 -0
- package/dist/neutral/Step/StepSizes.d.ts.map +1 -0
- package/dist/neutral/Step/index.d.ts +4 -0
- package/dist/neutral/Step/index.d.ts.map +1 -0
- package/dist/neutral/TransferPayload.d.ts +79 -0
- package/dist/neutral/TransferPayload.d.ts.map +1 -0
- package/dist/neutral/amount/ShiftedBigIntConfig.d.ts +9 -0
- package/dist/neutral/amount/ShiftedBigIntConfig.d.ts.map +1 -0
- package/dist/neutral/amount/XL1AmountInstance.d.ts +16 -0
- package/dist/neutral/amount/XL1AmountInstance.d.ts.map +1 -0
- package/dist/neutral/amount/index.d.ts +3 -0
- package/dist/neutral/amount/index.d.ts.map +1 -0
- package/dist/neutral/block/AllowedBlockPayload.d.ts +40 -0
- package/dist/neutral/block/AllowedBlockPayload.d.ts.map +1 -0
- package/dist/neutral/block/BlockBoundWitness.d.ts +544 -0
- package/dist/neutral/block/BlockBoundWitness.d.ts.map +1 -0
- package/dist/neutral/block/HydratedBlock.d.ts +1466 -0
- package/dist/neutral/block/HydratedBlock.d.ts.map +1 -0
- package/dist/neutral/block/index.d.ts +6 -0
- package/dist/neutral/block/index.d.ts.map +1 -0
- package/dist/neutral/block/signed/SignedBlockBoundWitness.d.ts +168 -0
- package/dist/neutral/block/signed/SignedBlockBoundWitness.d.ts.map +1 -0
- package/dist/neutral/block/signed/SignedBlockBoundWitnessWithHashMeta.d.ts +286 -0
- package/dist/neutral/block/signed/SignedBlockBoundWitnessWithHashMeta.d.ts.map +1 -0
- package/dist/neutral/block/signed/SignedBlockBoundWitnessWithStorageMeta.d.ts +343 -0
- package/dist/neutral/block/signed/SignedBlockBoundWitnessWithStorageMeta.d.ts.map +1 -0
- package/dist/neutral/block/signed/index.d.ts +4 -0
- package/dist/neutral/block/signed/index.d.ts.map +1 -0
- package/dist/neutral/block/unsigned/UnsignedBlockBoundWitness.d.ts +168 -0
- package/dist/neutral/block/unsigned/UnsignedBlockBoundWitness.d.ts.map +1 -0
- package/dist/neutral/block/unsigned/index.d.ts +2 -0
- package/dist/neutral/block/unsigned/index.d.ts.map +1 -0
- package/dist/neutral/chain/Chain.d.ts +4 -0
- package/dist/neutral/chain/Chain.d.ts.map +1 -0
- package/dist/neutral/chain/ChainAnalyzer.d.ts +10 -0
- package/dist/neutral/chain/ChainAnalyzer.d.ts.map +1 -0
- package/dist/neutral/chain/ChainId.d.ts +4 -0
- package/dist/neutral/chain/ChainId.d.ts.map +1 -0
- package/dist/neutral/chain/index.d.ts +4 -0
- package/dist/neutral/chain/index.d.ts.map +1 -0
- package/dist/neutral/fields/Addressable.d.ts +6 -0
- package/dist/neutral/fields/Addressable.d.ts.map +1 -0
- package/dist/neutral/fields/BlockDuration.d.ts +25 -0
- package/dist/neutral/fields/BlockDuration.d.ts.map +1 -0
- package/dist/neutral/fields/BlockNumber.d.ts +32 -0
- package/dist/neutral/fields/BlockNumber.d.ts.map +1 -0
- package/dist/neutral/fields/ChainReference.d.ts +11 -0
- package/dist/neutral/fields/ChainReference.d.ts.map +1 -0
- package/dist/neutral/fields/index.d.ts +5 -0
- package/dist/neutral/fields/index.d.ts.map +1 -0
- package/dist/neutral/index.d.ts +15 -0
- package/dist/neutral/index.d.ts.map +1 -0
- package/dist/neutral/index.mjs +1699 -0
- package/dist/neutral/index.mjs.map +1 -0
- package/dist/neutral/map/AsyncMap.d.ts +42 -0
- package/dist/neutral/map/AsyncMap.d.ts.map +1 -0
- package/dist/neutral/map/MapType.d.ts +17 -0
- package/dist/neutral/map/MapType.d.ts.map +1 -0
- package/dist/neutral/map/SyncMap.d.ts +41 -0
- package/dist/neutral/map/SyncMap.d.ts.map +1 -0
- package/dist/neutral/map/index.d.ts +4 -0
- package/dist/neutral/map/index.d.ts.map +1 -0
- package/dist/neutral/model/AccountBalance.d.ts +133 -0
- package/dist/neutral/model/AccountBalance.d.ts.map +1 -0
- package/dist/neutral/model/ArrayBuffer.d.ts +6 -0
- package/dist/neutral/model/ArrayBuffer.d.ts.map +1 -0
- package/dist/neutral/model/BlockRange/BlockRange.d.ts +32 -0
- package/dist/neutral/model/BlockRange/BlockRange.d.ts.map +1 -0
- package/dist/neutral/model/BlockRange/EthBlockRange.d.ts +32 -0
- package/dist/neutral/model/BlockRange/EthBlockRange.d.ts.map +1 -0
- package/dist/neutral/model/BlockRange/Numberish.d.ts +4 -0
- package/dist/neutral/model/BlockRange/Numberish.d.ts.map +1 -0
- package/dist/neutral/model/BlockRange/Range.d.ts +18 -0
- package/dist/neutral/model/BlockRange/Range.d.ts.map +1 -0
- package/dist/neutral/model/BlockRange/XL1BlockRange.d.ts +32 -0
- package/dist/neutral/model/BlockRange/XL1BlockRange.d.ts.map +1 -0
- package/dist/neutral/model/BlockRange/index.d.ts +5 -0
- package/dist/neutral/model/BlockRange/index.d.ts.map +1 -0
- package/dist/neutral/model/BlockRate.d.ts +290 -0
- package/dist/neutral/model/BlockRate.d.ts.map +1 -0
- package/dist/neutral/model/ChainQualification.d.ts +57 -0
- package/dist/neutral/model/ChainQualification.d.ts.map +1 -0
- package/dist/neutral/model/Context/BaseContext.d.ts +5 -0
- package/dist/neutral/model/Context/BaseContext.d.ts.map +1 -0
- package/dist/neutral/model/Context/BaseContext.zod.d.ts +26 -0
- package/dist/neutral/model/Context/BaseContext.zod.d.ts.map +1 -0
- package/dist/neutral/model/Context/BlockContext.d.ts +9 -0
- package/dist/neutral/model/Context/BlockContext.d.ts.map +1 -0
- package/dist/neutral/model/Context/BlockContext.zod.d.ts +33 -0
- package/dist/neutral/model/Context/BlockContext.zod.d.ts.map +1 -0
- package/dist/neutral/model/Context/CachingContext.d.ts +5 -0
- package/dist/neutral/model/Context/CachingContext.d.ts.map +1 -0
- package/dist/neutral/model/Context/CachingContext.zod.d.ts +10 -0
- package/dist/neutral/model/Context/CachingContext.zod.d.ts.map +1 -0
- package/dist/neutral/model/Context/ChainContext.d.ts +9 -0
- package/dist/neutral/model/Context/ChainContext.d.ts.map +1 -0
- package/dist/neutral/model/Context/ChainContext.zod.d.ts +115 -0
- package/dist/neutral/model/Context/ChainContext.zod.d.ts.map +1 -0
- package/dist/neutral/model/Context/HeadContext.d.ts +5 -0
- package/dist/neutral/model/Context/HeadContext.d.ts.map +1 -0
- package/dist/neutral/model/Context/HeadContext.zod.d.ts +70 -0
- package/dist/neutral/model/Context/HeadContext.zod.d.ts.map +1 -0
- package/dist/neutral/model/Context/index.d.ts +11 -0
- package/dist/neutral/model/Context/index.d.ts.map +1 -0
- package/dist/neutral/model/GatewayName.d.ts +6 -0
- package/dist/neutral/model/GatewayName.d.ts.map +1 -0
- package/dist/neutral/model/HydratedTransaction.d.ts +2300 -0
- package/dist/neutral/model/HydratedTransaction.d.ts.map +1 -0
- package/dist/neutral/model/OpCodes.d.ts +3 -0
- package/dist/neutral/model/OpCodes.d.ts.map +1 -0
- package/dist/neutral/model/PayloadMap.d.ts +10 -0
- package/dist/neutral/model/PayloadMap.d.ts.map +1 -0
- package/dist/neutral/model/Permission.d.ts +59 -0
- package/dist/neutral/model/Permission.d.ts.map +1 -0
- package/dist/neutral/model/Position.d.ts +13 -0
- package/dist/neutral/model/Position.d.ts.map +1 -0
- package/dist/neutral/model/PositionId.d.ts +6 -0
- package/dist/neutral/model/PositionId.d.ts.map +1 -0
- package/dist/neutral/model/RangeMultipliers.d.ts +10 -0
- package/dist/neutral/model/RangeMultipliers.d.ts.map +1 -0
- package/dist/neutral/model/RewardShare.d.ts +3 -0
- package/dist/neutral/model/RewardShare.d.ts.map +1 -0
- package/dist/neutral/model/RewardsRangeOptions.d.ts +16 -0
- package/dist/neutral/model/RewardsRangeOptions.d.ts.map +1 -0
- package/dist/neutral/model/Sequence.d.ts +15 -0
- package/dist/neutral/model/Sequence.d.ts.map +1 -0
- package/dist/neutral/model/Stake.d.ts +121 -0
- package/dist/neutral/model/Stake.d.ts.map +1 -0
- package/dist/neutral/model/StakeShare.d.ts +3 -0
- package/dist/neutral/model/StakeShare.d.ts.map +1 -0
- package/dist/neutral/model/TimeDomain.d.ts +4 -0
- package/dist/neutral/model/TimeDomain.d.ts.map +1 -0
- package/dist/neutral/model/TransferPair.d.ts +12 -0
- package/dist/neutral/model/TransferPair.d.ts.map +1 -0
- package/dist/neutral/model/addresses.d.ts +28 -0
- package/dist/neutral/model/addresses.d.ts.map +1 -0
- package/dist/neutral/model/defaultRewardRatio.d.ts +3 -0
- package/dist/neutral/model/defaultRewardRatio.d.ts.map +1 -0
- package/dist/neutral/model/defaultTransactionFees.d.ts +4 -0
- package/dist/neutral/model/defaultTransactionFees.d.ts.map +1 -0
- package/dist/neutral/model/index.d.ts +28 -0
- package/dist/neutral/model/index.d.ts.map +1 -0
- package/dist/neutral/model/minTransactionFees.d.ts +4 -0
- package/dist/neutral/model/minTransactionFees.d.ts.map +1 -0
- package/dist/neutral/model/rewards.d.ts +15 -0
- package/dist/neutral/model/rewards.d.ts.map +1 -0
- package/dist/neutral/model/version.d.ts +11 -0
- package/dist/neutral/model/version.d.ts.map +1 -0
- package/dist/neutral/payload/StepIdentityPayload.d.ts +20 -0
- package/dist/neutral/payload/StepIdentityPayload.d.ts.map +1 -0
- package/dist/neutral/payload/elevatable/Bridge/BridgeCompletion.d.ts +23 -0
- package/dist/neutral/payload/elevatable/Bridge/BridgeCompletion.d.ts.map +1 -0
- package/dist/neutral/payload/elevatable/Bridge/BridgeDestinationObservation.d.ts +33 -0
- package/dist/neutral/payload/elevatable/Bridge/BridgeDestinationObservation.d.ts.map +1 -0
- package/dist/neutral/payload/elevatable/Bridge/BridgeDetails.d.ts +45 -0
- package/dist/neutral/payload/elevatable/Bridge/BridgeDetails.d.ts.map +1 -0
- package/dist/neutral/payload/elevatable/Bridge/BridgeIntent.d.ts +31 -0
- package/dist/neutral/payload/elevatable/Bridge/BridgeIntent.d.ts.map +1 -0
- package/dist/neutral/payload/elevatable/Bridge/BridgeSourceObservation.d.ts +33 -0
- package/dist/neutral/payload/elevatable/Bridge/BridgeSourceObservation.d.ts.map +1 -0
- package/dist/neutral/payload/elevatable/Bridge/index.d.ts +6 -0
- package/dist/neutral/payload/elevatable/Bridge/index.d.ts.map +1 -0
- package/dist/neutral/payload/elevatable/ChainStakeIntent.d.ts +24 -0
- package/dist/neutral/payload/elevatable/ChainStakeIntent.d.ts.map +1 -0
- package/dist/neutral/payload/elevatable/Executable.d.ts +20 -0
- package/dist/neutral/payload/elevatable/Executable.d.ts.map +1 -0
- package/dist/neutral/payload/elevatable/Hash.d.ts +21 -0
- package/dist/neutral/payload/elevatable/Hash.d.ts.map +1 -0
- package/dist/neutral/payload/elevatable/StepComplete.d.ts +22 -0
- package/dist/neutral/payload/elevatable/StepComplete.d.ts.map +1 -0
- package/dist/neutral/payload/elevatable/Time.d.ts +71 -0
- package/dist/neutral/payload/elevatable/Time.d.ts.map +1 -0
- package/dist/neutral/payload/elevatable/index.d.ts +7 -0
- package/dist/neutral/payload/elevatable/index.d.ts.map +1 -0
- package/dist/neutral/payload/index.d.ts +3 -0
- package/dist/neutral/payload/index.d.ts.map +1 -0
- package/dist/neutral/provider/Provider.d.ts +6 -0
- package/dist/neutral/provider/Provider.d.ts.map +1 -0
- package/dist/neutral/provider/ProviderMoniker.d.ts +9 -0
- package/dist/neutral/provider/ProviderMoniker.d.ts.map +1 -0
- package/dist/neutral/provider/index.d.ts +3 -0
- package/dist/neutral/provider/index.d.ts.map +1 -0
- package/dist/neutral/transaction/TransactionBoundWitness.d.ts +2127 -0
- package/dist/neutral/transaction/TransactionBoundWitness.d.ts.map +1 -0
- package/dist/neutral/transaction/TransactionFees.d.ts +138 -0
- package/dist/neutral/transaction/TransactionFees.d.ts.map +1 -0
- package/dist/neutral/transaction/TransactionGasCosts.d.ts +38 -0
- package/dist/neutral/transaction/TransactionGasCosts.d.ts.map +1 -0
- package/dist/neutral/transaction/index.d.ts +4 -0
- package/dist/neutral/transaction/index.d.ts.map +1 -0
- package/dist/neutral/xl1/AttoXL1.d.ts +15 -0
- package/dist/neutral/xl1/AttoXL1.d.ts.map +1 -0
- package/dist/neutral/xl1/FemtoXL1.d.ts +15 -0
- package/dist/neutral/xl1/FemtoXL1.d.ts.map +1 -0
- package/dist/neutral/xl1/MicroXL1.d.ts +15 -0
- package/dist/neutral/xl1/MicroXL1.d.ts.map +1 -0
- package/dist/neutral/xl1/MilliXL1.d.ts +15 -0
- package/dist/neutral/xl1/MilliXL1.d.ts.map +1 -0
- package/dist/neutral/xl1/NanoXL1.d.ts +15 -0
- package/dist/neutral/xl1/NanoXL1.d.ts.map +1 -0
- package/dist/neutral/xl1/PicoXL1.d.ts +15 -0
- package/dist/neutral/xl1/PicoXL1.d.ts.map +1 -0
- package/dist/neutral/xl1/XL1.d.ts +15 -0
- package/dist/neutral/xl1/XL1.d.ts.map +1 -0
- package/dist/neutral/xl1/XL1Units.d.ts +10 -0
- package/dist/neutral/xl1/XL1Units.d.ts.map +1 -0
- package/dist/neutral/xl1/index.d.ts +9 -0
- package/dist/neutral/xl1/index.d.ts.map +1 -0
- package/dist/neutral/xl1/isXL1Factory.d.ts +12 -0
- package/dist/neutral/xl1/isXL1Factory.d.ts.map +1 -0
- package/dist/neutral/xl1/xl1MaxValue.d.ts +3 -0
- package/dist/neutral/xl1/xl1MaxValue.d.ts.map +1 -0
- package/package.json +65 -0
- package/src/BlockNumber/BlockNumber.ts +24 -0
- package/src/BlockNumber/EthBlockNumber.ts +25 -0
- package/src/BlockNumber/Numberish.ts +9 -0
- package/src/BlockNumber/XL1BlockNumber.ts +25 -0
- package/src/BlockNumber/index.ts +4 -0
- package/src/RecordKeyType.ts +5 -0
- package/src/Step/StepHash.ts +10 -0
- package/src/Step/StepIdentity.ts +46 -0
- package/src/Step/StepSizes.ts +47 -0
- package/src/Step/index.ts +3 -0
- package/src/TransferPayload.ts +35 -0
- package/src/amount/ShiftedBigIntConfig.ts +8 -0
- package/src/amount/XL1AmountInstance.ts +19 -0
- package/src/amount/index.ts +2 -0
- package/src/block/AllowedBlockPayload.ts +73 -0
- package/src/block/BlockBoundWitness.ts +72 -0
- package/src/block/HydratedBlock.ts +135 -0
- package/src/block/index.ts +5 -0
- package/src/block/signed/SignedBlockBoundWitness.ts +22 -0
- package/src/block/signed/SignedBlockBoundWitnessWithHashMeta.ts +35 -0
- package/src/block/signed/SignedBlockBoundWitnessWithStorageMeta.ts +41 -0
- package/src/block/signed/index.ts +3 -0
- package/src/block/unsigned/UnsignedBlockBoundWitness.ts +22 -0
- package/src/block/unsigned/index.ts +1 -0
- package/src/chain/Chain.ts +7 -0
- package/src/chain/ChainAnalyzer.ts +11 -0
- package/src/chain/ChainId.ts +4 -0
- package/src/chain/index.ts +3 -0
- package/src/fields/Addressable.ts +7 -0
- package/src/fields/BlockDuration.ts +25 -0
- package/src/fields/BlockNumber.ts +40 -0
- package/src/fields/ChainReference.ts +11 -0
- package/src/fields/index.ts +4 -0
- package/src/index.ts +14 -0
- package/src/map/AsyncMap.ts +38 -0
- package/src/map/MapType.ts +27 -0
- package/src/map/SyncMap.ts +38 -0
- package/src/map/index.ts +3 -0
- package/src/model/AccountBalance.ts +58 -0
- package/src/model/ArrayBuffer.ts +44 -0
- package/src/model/BlockRange/BlockRange.ts +43 -0
- package/src/model/BlockRange/EthBlockRange.ts +43 -0
- package/src/model/BlockRange/Numberish.ts +6 -0
- package/src/model/BlockRange/Range.ts +17 -0
- package/src/model/BlockRange/XL1BlockRange.ts +43 -0
- package/src/model/BlockRange/index.ts +4 -0
- package/src/model/BlockRate.ts +108 -0
- package/src/model/ChainQualification.ts +48 -0
- package/src/model/Context/BaseContext.ts +6 -0
- package/src/model/Context/BaseContext.zod.ts +36 -0
- package/src/model/Context/BlockContext.ts +12 -0
- package/src/model/Context/BlockContext.zod.ts +20 -0
- package/src/model/Context/CachingContext.ts +6 -0
- package/src/model/Context/CachingContext.zod.ts +4 -0
- package/src/model/Context/ChainContext.ts +12 -0
- package/src/model/Context/ChainContext.zod.ts +17 -0
- package/src/model/Context/HeadContext.ts +6 -0
- package/src/model/Context/HeadContext.zod.ts +13 -0
- package/src/model/Context/index.ts +10 -0
- package/src/model/GatewayName.ts +4 -0
- package/src/model/HydratedTransaction.ts +169 -0
- package/src/model/OpCodes.ts +2 -0
- package/src/model/PayloadMap.ts +13 -0
- package/src/model/Permission.ts +29 -0
- package/src/model/Position.ts +21 -0
- package/src/model/PositionId.ts +4 -0
- package/src/model/RangeMultipliers.ts +13 -0
- package/src/model/RewardShare.ts +2 -0
- package/src/model/RewardsRangeOptions.ts +13 -0
- package/src/model/Sequence.ts +21 -0
- package/src/model/Stake.ts +47 -0
- package/src/model/StakeShare.ts +2 -0
- package/src/model/TimeDomain.ts +8 -0
- package/src/model/TransferPair.ts +7 -0
- package/src/model/addresses.ts +36 -0
- package/src/model/defaultRewardRatio.ts +3 -0
- package/src/model/defaultTransactionFees.ts +11 -0
- package/src/model/index.ts +27 -0
- package/src/model/minTransactionFees.ts +10 -0
- package/src/model/rewards.ts +18 -0
- package/src/model/spec/fixtures/index.ts +2 -0
- package/src/model/spec/fixtures/signedHydratedTransaction.ts +58 -0
- package/src/model/spec/fixtures/unsignedHydratedTransaction.ts +62 -0
- package/src/model/version.ts +10 -0
- package/src/payload/StepIdentityPayload.ts +25 -0
- package/src/payload/elevatable/Bridge/BridgeCompletion.ts +28 -0
- package/src/payload/elevatable/Bridge/BridgeDestinationObservation.ts +38 -0
- package/src/payload/elevatable/Bridge/BridgeDetails.ts +69 -0
- package/src/payload/elevatable/Bridge/BridgeIntent.ts +36 -0
- package/src/payload/elevatable/Bridge/BridgeSourceObservation.ts +37 -0
- package/src/payload/elevatable/Bridge/index.ts +5 -0
- package/src/payload/elevatable/ChainStakeIntent.ts +45 -0
- package/src/payload/elevatable/Executable.ts +35 -0
- package/src/payload/elevatable/Hash.ts +25 -0
- package/src/payload/elevatable/StepComplete.ts +31 -0
- package/src/payload/elevatable/Time.ts +61 -0
- package/src/payload/elevatable/index.ts +6 -0
- package/src/payload/index.ts +2 -0
- package/src/provider/Provider.ts +6 -0
- package/src/provider/ProviderMoniker.ts +15 -0
- package/src/provider/index.ts +2 -0
- package/src/transaction/TransactionBoundWitness.ts +187 -0
- package/src/transaction/TransactionFees.ts +73 -0
- package/src/transaction/TransactionGasCosts.ts +42 -0
- package/src/transaction/index.ts +3 -0
- package/src/xl1/AttoXL1.ts +19 -0
- package/src/xl1/FemtoXL1.ts +20 -0
- package/src/xl1/MicroXL1.ts +20 -0
- package/src/xl1/MilliXL1.ts +20 -0
- package/src/xl1/NanoXL1.ts +20 -0
- package/src/xl1/PicoXL1.ts +20 -0
- package/src/xl1/XL1.ts +20 -0
- package/src/xl1/XL1Units.ts +26 -0
- package/src/xl1/index.ts +8 -0
- package/src/xl1/isXL1Factory.ts +56 -0
- package/src/xl1/xl1MaxValue.ts +2 -0
|
@@ -0,0 +1,187 @@
|
|
|
1
|
+
import {
|
|
2
|
+
AddressZod,
|
|
3
|
+
zodAsFactory, zodIsFactory, zodToFactory,
|
|
4
|
+
} from '@xylabs/sdk-js'
|
|
5
|
+
import {
|
|
6
|
+
BoundWitnessZod, HashMetaZod, SignedBoundWitnessZod, StorageMetaZod,
|
|
7
|
+
UnsignedBoundWitnessZod,
|
|
8
|
+
WithHashMetaZod,
|
|
9
|
+
WithStorageMetaZod,
|
|
10
|
+
} from '@xyo-network/sdk-js'
|
|
11
|
+
import { z } from 'zod'
|
|
12
|
+
|
|
13
|
+
import { XL1BlockNumberZod } from '../BlockNumber/index.ts'
|
|
14
|
+
import { ChainZod } from '../chain/index.ts'
|
|
15
|
+
import { TransactionFeesHexZod } from './TransactionFees.ts'
|
|
16
|
+
|
|
17
|
+
/** BlockStartZod constant. */
|
|
18
|
+
export const BlockStartZod = z.object({ nbf: XL1BlockNumberZod })
|
|
19
|
+
/** BlockEndZod constant. */
|
|
20
|
+
export const BlockEndZod = z.object({ exp: XL1BlockNumberZod })
|
|
21
|
+
/** BlockDurationZod constant. */
|
|
22
|
+
export const BlockDurationZod = z.object({ nbf: XL1BlockNumberZod, exp: XL1BlockNumberZod })
|
|
23
|
+
/** BlockScriptsZod constant. */
|
|
24
|
+
export const BlockScriptsZod = z.object({ script: z.array(z.string()).optional() })
|
|
25
|
+
|
|
26
|
+
/** TransactionFeesZod constant. */
|
|
27
|
+
export const TransactionFeesZod = z.object({ fees: TransactionFeesHexZod })
|
|
28
|
+
|
|
29
|
+
/** TransactionBoundWitnessIdentityFields constant. */
|
|
30
|
+
export const TransactionBoundWitnessIdentityFields = z.object({ chain: ChainZod, from: AddressZod })
|
|
31
|
+
|
|
32
|
+
/** TransactionBoundWitnessFieldsZod constant. */
|
|
33
|
+
export const TransactionBoundWitnessFieldsZod = z.object()
|
|
34
|
+
.safeExtend(BlockDurationZod.shape)
|
|
35
|
+
.safeExtend(TransactionFeesZod.shape)
|
|
36
|
+
.safeExtend(TransactionBoundWitnessIdentityFields.shape)
|
|
37
|
+
.safeExtend(BlockScriptsZod.shape)
|
|
38
|
+
|
|
39
|
+
/** TransactionBoundWitnessFields type. */
|
|
40
|
+
export type TransactionBoundWitnessFields = z.infer<typeof TransactionBoundWitnessFieldsZod>
|
|
41
|
+
|
|
42
|
+
/** TransactionBoundWitnessZod constant. */
|
|
43
|
+
export const TransactionBoundWitnessZod = BoundWitnessZod
|
|
44
|
+
.safeExtend(TransactionBoundWitnessFieldsZod.shape)
|
|
45
|
+
|
|
46
|
+
/** TransactionBoundWitness type. */
|
|
47
|
+
export type TransactionBoundWitness = z.infer<typeof TransactionBoundWitnessZod>
|
|
48
|
+
|
|
49
|
+
/** Type guard that checks if a value is a valid TransactionBoundWitness. */
|
|
50
|
+
export const isTransactionBoundWitness = zodIsFactory(TransactionBoundWitnessZod)
|
|
51
|
+
/** Converts a value to TransactionBoundWitness, throwing if invalid. */
|
|
52
|
+
export const asTransactionBoundWitness = zodAsFactory(TransactionBoundWitnessZod, 'asTransactionBoundWitness')
|
|
53
|
+
/** toTransactionBoundWitness constant. */
|
|
54
|
+
export const toTransactionBoundWitness = zodToFactory(TransactionBoundWitnessZod, 'toTransactionBoundWitness')
|
|
55
|
+
|
|
56
|
+
/** TransactionBoundWitnessWithHashMetaZod constant. */
|
|
57
|
+
export const TransactionBoundWitnessWithHashMetaZod = TransactionBoundWitnessZod
|
|
58
|
+
.safeExtend(HashMetaZod.shape)
|
|
59
|
+
|
|
60
|
+
/** TransactionBoundWitnessWithHashMeta type. */
|
|
61
|
+
export type TransactionBoundWitnessWithHashMeta = z.infer<typeof TransactionBoundWitnessWithHashMetaZod>
|
|
62
|
+
|
|
63
|
+
/** Type guard that checks if a value is a valid TransactionBoundWitnessWithHashMeta. */
|
|
64
|
+
export const isTransactionBoundWitnessWithHashMeta = zodIsFactory(TransactionBoundWitnessWithHashMetaZod)
|
|
65
|
+
/** Converts a value to TransactionBoundWitnessWithHashMeta, throwing if invalid. */
|
|
66
|
+
export const asTransactionBoundWitnessWithHashMeta = zodAsFactory(TransactionBoundWitnessWithHashMetaZod, 'asTransactionBoundWitnessWithHashMeta')
|
|
67
|
+
/** toTransactionBoundWitnessWithHashMeta constant. */
|
|
68
|
+
export const toTransactionBoundWitnessWithHashMeta = zodToFactory(TransactionBoundWitnessWithHashMetaZod, 'toTransactionBoundWitnessWithHashMeta')
|
|
69
|
+
|
|
70
|
+
/** TransactionBoundWitnessWithStorageMetaZod constant. */
|
|
71
|
+
export const TransactionBoundWitnessWithStorageMetaZod = TransactionBoundWitnessZod
|
|
72
|
+
.safeExtend(StorageMetaZod.shape)
|
|
73
|
+
|
|
74
|
+
/** TransactionBoundWitnessWithStorageMeta type. */
|
|
75
|
+
export type TransactionBoundWitnessWithStorageMeta = z.infer<typeof TransactionBoundWitnessWithStorageMetaZod>
|
|
76
|
+
|
|
77
|
+
/** Type guard that checks if a value is a valid TransactionBoundWitnessWithStorageMeta. */
|
|
78
|
+
export const isTransactionBoundWitnessWithStorageMeta = zodIsFactory(TransactionBoundWitnessWithStorageMetaZod)
|
|
79
|
+
/** Converts a value to TransactionBoundWitnessWithStorageMeta, throwing if invalid. */
|
|
80
|
+
export const asTransactionBoundWitnessWithStorageMeta = zodAsFactory(TransactionBoundWitnessWithStorageMetaZod, 'asTransactionBoundWitnessWithStorageMeta')
|
|
81
|
+
/** toTransactionBoundWitnessWithStorageMeta constant. */
|
|
82
|
+
export const toTransactionBoundWitnessWithStorageMeta = zodToFactory(TransactionBoundWitnessWithStorageMetaZod, 'toTransactionBoundWitnessWithStorageMeta')
|
|
83
|
+
|
|
84
|
+
/** UnsignedTransactionBoundWitnessZod constant. */
|
|
85
|
+
export const UnsignedTransactionBoundWitnessZod = UnsignedBoundWitnessZod
|
|
86
|
+
.safeExtend(TransactionBoundWitnessFieldsZod.shape)
|
|
87
|
+
|
|
88
|
+
/** UnsignedTransactionBoundWitness type. */
|
|
89
|
+
export type UnsignedTransactionBoundWitness = z.infer<typeof UnsignedTransactionBoundWitnessZod>
|
|
90
|
+
|
|
91
|
+
/** Type guard that checks if a value is a valid UnsignedTransactionBoundWitness. */
|
|
92
|
+
export const isUnsignedTransactionBoundWitness = zodIsFactory(UnsignedTransactionBoundWitnessZod)
|
|
93
|
+
/** Converts a value to UnsignedTransactionBoundWitness, throwing if invalid. */
|
|
94
|
+
export const asUnsignedTransactionBoundWitness = zodAsFactory(UnsignedTransactionBoundWitnessZod, 'asUnsignedTransactionBoundWitness')
|
|
95
|
+
/** toUnsignedTransactionBoundWitness constant. */
|
|
96
|
+
export const toUnsignedTransactionBoundWitness = zodToFactory(UnsignedTransactionBoundWitnessZod, 'toUnsignedTransactionBoundWitness')
|
|
97
|
+
|
|
98
|
+
/** UnsignedTransactionBoundWitnessWithHashMetaZod constant. */
|
|
99
|
+
export const UnsignedTransactionBoundWitnessWithHashMetaZod = UnsignedTransactionBoundWitnessZod.safeExtend(HashMetaZod.shape)
|
|
100
|
+
|
|
101
|
+
/** UnsignedTransactionBoundWitnessWithHashMeta type. */
|
|
102
|
+
export type UnsignedTransactionBoundWitnessWithHashMeta = z.infer<typeof UnsignedTransactionBoundWitnessWithHashMetaZod>
|
|
103
|
+
|
|
104
|
+
/** Type guard that checks if a value is a valid UnsignedTransactionBoundWitnessWithHashMeta. */
|
|
105
|
+
export const isUnsignedTransactionBoundWitnessWithHashMeta = zodIsFactory(UnsignedTransactionBoundWitnessWithHashMetaZod)
|
|
106
|
+
/** Converts a value to UnsignedTransactionBoundWitnessWithHashMeta, throwing if invalid. */
|
|
107
|
+
export const asUnsignedTransactionBoundWitnessWithHashMeta = zodAsFactory(
|
|
108
|
+
UnsignedTransactionBoundWitnessWithHashMetaZod,
|
|
109
|
+
'asUnsignedTransactionBoundWitnessWithHashMeta',
|
|
110
|
+
)
|
|
111
|
+
/** toUnsignedTransactionBoundWitnessWithHashMeta constant. */
|
|
112
|
+
export const toUnsignedTransactionBoundWitnessWithHashMeta = zodToFactory(
|
|
113
|
+
UnsignedTransactionBoundWitnessWithHashMetaZod,
|
|
114
|
+
'toUnsignedTransactionBoundWitnessWithHashMeta',
|
|
115
|
+
)
|
|
116
|
+
|
|
117
|
+
/** UnsignedTransactionBoundWitnessWithStorageMetaZod constant. */
|
|
118
|
+
export const UnsignedTransactionBoundWitnessWithStorageMetaZod = UnsignedTransactionBoundWitnessZod
|
|
119
|
+
.safeExtend(StorageMetaZod.shape)
|
|
120
|
+
|
|
121
|
+
/** UnsignedTransactionBoundWitnessWithStorageMeta type. */
|
|
122
|
+
export type UnsignedTransactionBoundWitnessWithStorageMeta = z.infer<typeof UnsignedTransactionBoundWitnessWithStorageMetaZod>
|
|
123
|
+
|
|
124
|
+
/** Type guard that checks if a value is a valid UnsignedTransactionBoundWitnessWithStorageMeta. */
|
|
125
|
+
export const isUnsignedTransactionBoundWitnessWithStorageMeta = zodIsFactory(UnsignedTransactionBoundWitnessWithStorageMetaZod)
|
|
126
|
+
/** Converts a value to UnsignedTransactionBoundWitnessWithStorageMeta, throwing if invalid. */
|
|
127
|
+
export const asUnsignedTransactionBoundWitnessWithStorageMeta = zodAsFactory(
|
|
128
|
+
UnsignedTransactionBoundWitnessWithStorageMetaZod,
|
|
129
|
+
'asUnsignedTransactionBoundWitnessWithStorageMeta',
|
|
130
|
+
)
|
|
131
|
+
/** toUnsignedTransactionBoundWitnessWithStorageMeta constant. */
|
|
132
|
+
export const toUnsignedTransactionBoundWitnessWithStorageMeta = zodToFactory(
|
|
133
|
+
UnsignedTransactionBoundWitnessWithStorageMetaZod,
|
|
134
|
+
'toUnsignedTransactionBoundWitnessWithStorageMeta',
|
|
135
|
+
)
|
|
136
|
+
|
|
137
|
+
/** SignedTransactionBoundWitnessZod constant. */
|
|
138
|
+
export const SignedTransactionBoundWitnessZod = SignedBoundWitnessZod
|
|
139
|
+
.safeExtend(TransactionBoundWitnessFieldsZod.shape)
|
|
140
|
+
|
|
141
|
+
/** SignedTransactionBoundWitness type. */
|
|
142
|
+
export type SignedTransactionBoundWitness = z.infer<typeof SignedTransactionBoundWitnessZod>
|
|
143
|
+
|
|
144
|
+
/** Type guard that checks if a value is a valid SignedTransactionBoundWitness. */
|
|
145
|
+
export const isSignedTransactionBoundWitness = zodIsFactory(SignedTransactionBoundWitnessZod)
|
|
146
|
+
/** Converts a value to SignedTransactionBoundWitness, throwing if invalid. */
|
|
147
|
+
export const asSignedTransactionBoundWitness = zodAsFactory(SignedTransactionBoundWitnessZod, 'asSignedTransactionBoundWitness')
|
|
148
|
+
/** toSignedTransactionBoundWitness constant. */
|
|
149
|
+
export const toSignedTransactionBoundWitness = zodToFactory(SignedTransactionBoundWitnessZod, 'toSignedTransactionBoundWitness')
|
|
150
|
+
|
|
151
|
+
/** SignedTransactionBoundWitnessWithHashMetaZod constant. */
|
|
152
|
+
export const SignedTransactionBoundWitnessWithHashMetaZod = WithHashMetaZod(SignedTransactionBoundWitnessZod)
|
|
153
|
+
|
|
154
|
+
/** SignedTransactionBoundWitnessWithHashMeta type. */
|
|
155
|
+
export type SignedTransactionBoundWitnessWithHashMeta = z.infer<typeof SignedTransactionBoundWitnessWithHashMetaZod>
|
|
156
|
+
|
|
157
|
+
/** Type guard that checks if a value is a valid SignedTransactionBoundWitnessWithHashMeta. */
|
|
158
|
+
export const isSignedTransactionBoundWitnessWithHashMeta = zodIsFactory(SignedTransactionBoundWitnessWithHashMetaZod)
|
|
159
|
+
/** Converts a value to SignedTransactionBoundWitnessWithHashMeta, throwing if invalid. */
|
|
160
|
+
export const asSignedTransactionBoundWitnessWithHashMeta = zodAsFactory(
|
|
161
|
+
SignedTransactionBoundWitnessWithHashMetaZod,
|
|
162
|
+
'asSignedTransactionBoundWitnessWithHashMeta',
|
|
163
|
+
)
|
|
164
|
+
/** toSignedTransactionBoundWitnessWithHashMeta constant. */
|
|
165
|
+
export const toSignedTransactionBoundWitnessWithHashMeta = zodToFactory(
|
|
166
|
+
SignedTransactionBoundWitnessWithHashMetaZod,
|
|
167
|
+
'toSignedTransactionBoundWitnessWithHashMeta',
|
|
168
|
+
)
|
|
169
|
+
|
|
170
|
+
/** SignedTransactionBoundWitnessWithStorageMetaZod constant. */
|
|
171
|
+
export const SignedTransactionBoundWitnessWithStorageMetaZod = WithStorageMetaZod(SignedTransactionBoundWitnessZod)
|
|
172
|
+
|
|
173
|
+
/** SignedTransactionBoundWitnessWithStorageMeta type. */
|
|
174
|
+
export type SignedTransactionBoundWitnessWithStorageMeta = z.infer<typeof SignedTransactionBoundWitnessWithStorageMetaZod>
|
|
175
|
+
|
|
176
|
+
/** Type guard that checks if a value is a valid SignedTransactionBoundWitnessWithStorageMeta. */
|
|
177
|
+
export const isSignedTransactionBoundWitnessWithStorageMeta = zodIsFactory(SignedTransactionBoundWitnessWithStorageMetaZod)
|
|
178
|
+
/** Converts a value to SignedTransactionBoundWitnessWithStorageMeta, throwing if invalid. */
|
|
179
|
+
export const asSignedTransactionBoundWitnessWithStorageMeta = zodAsFactory(
|
|
180
|
+
SignedTransactionBoundWitnessWithStorageMetaZod,
|
|
181
|
+
'asSignedTransactionBoundWitnessWithStorageMeta',
|
|
182
|
+
)
|
|
183
|
+
/** toSignedTransactionBoundWitnessWithStorageMeta constant. */
|
|
184
|
+
export const toSignedTransactionBoundWitnessWithStorageMeta = zodToFactory(
|
|
185
|
+
SignedTransactionBoundWitnessWithStorageMetaZod,
|
|
186
|
+
'toSignedTransactionBoundWitnessWithStorageMeta',
|
|
187
|
+
)
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
import {
|
|
2
|
+
BigIntToJsonZod, HexZod, JsonToBigIntZod,
|
|
3
|
+
zodAsFactory, zodIsFactory, zodToFactory,
|
|
4
|
+
} from '@xylabs/sdk-js'
|
|
5
|
+
import { z } from 'zod'
|
|
6
|
+
|
|
7
|
+
import { asAttoXL1 } from '../xl1/index.ts'
|
|
8
|
+
|
|
9
|
+
/** AttoZod constant. */
|
|
10
|
+
export const AttoZod = z.bigint()
|
|
11
|
+
/** JsonToAttoZod constant. */
|
|
12
|
+
export const JsonToAttoZod = JsonToBigIntZod.transform(v => asAttoXL1(v))
|
|
13
|
+
|
|
14
|
+
/** AttoToJsonZod constant. */
|
|
15
|
+
|
|
16
|
+
/** TransactionFeesHexZod constant. */
|
|
17
|
+
export const TransactionFeesHexZod = z.object({
|
|
18
|
+
base: HexZod,
|
|
19
|
+
gasLimit: HexZod,
|
|
20
|
+
gasPrice: HexZod,
|
|
21
|
+
priority: HexZod,
|
|
22
|
+
})
|
|
23
|
+
|
|
24
|
+
/** TransactionFeesHex type. */
|
|
25
|
+
export type TransactionFeesHex = z.infer<typeof TransactionFeesHexZod>
|
|
26
|
+
|
|
27
|
+
/** Type guard that checks if a value is a valid TransactionFeesHex. */
|
|
28
|
+
export const isTransactionFeesHex = zodIsFactory(TransactionFeesHexZod)
|
|
29
|
+
/** Converts a value to TransactionFeesHex, throwing if invalid. */
|
|
30
|
+
export const asTransactionFeesHex = zodAsFactory(TransactionFeesHexZod, 'asTransactionFeesHex')
|
|
31
|
+
/** toTransactionFeesHex constant. */
|
|
32
|
+
export const toTransactionFeesHex = zodToFactory(TransactionFeesHexZod, 'toTransactionFeesHex')
|
|
33
|
+
|
|
34
|
+
/** TransactionFeesBigIntZod constant. */
|
|
35
|
+
export const TransactionFeesBigIntZod = z.object({
|
|
36
|
+
base: AttoZod,
|
|
37
|
+
gasLimit: AttoZod,
|
|
38
|
+
gasPrice: AttoZod,
|
|
39
|
+
priority: AttoZod,
|
|
40
|
+
})
|
|
41
|
+
|
|
42
|
+
/** TransactionFeesBigInt type. */
|
|
43
|
+
export type TransactionFeesBigInt = z.infer<typeof TransactionFeesBigIntZod>
|
|
44
|
+
|
|
45
|
+
/** Type guard that checks if a value is a valid TransactionFeesBigInt. */
|
|
46
|
+
export const isTransactionFeesBigInt = zodIsFactory(TransactionFeesBigIntZod)
|
|
47
|
+
/** Converts a value to TransactionFeesBigInt, throwing if invalid. */
|
|
48
|
+
export const asTransactionFeesBigInt = zodAsFactory(TransactionFeesBigIntZod, 'asTransactionFeesBigInt')
|
|
49
|
+
/** toTransactionFeesBigInt constant. */
|
|
50
|
+
export const toTransactionFeesBigInt = zodToFactory(TransactionFeesBigIntZod, 'toTransactionFeesBigInt')
|
|
51
|
+
|
|
52
|
+
/** TransactionFeesJsonToBigIntZod constant. */
|
|
53
|
+
export const TransactionFeesJsonToBigIntZod = TransactionFeesHexZod.transform(val => ({
|
|
54
|
+
base: JsonToBigIntZod.parse(val.base),
|
|
55
|
+
gasLimit: JsonToBigIntZod.parse(val.gasLimit),
|
|
56
|
+
gasPrice: JsonToBigIntZod.parse(val.gasPrice),
|
|
57
|
+
priority: JsonToBigIntZod.parse(val.priority),
|
|
58
|
+
}))
|
|
59
|
+
|
|
60
|
+
/** TransactionFeesBigIntToJsonZod constant. */
|
|
61
|
+
export const TransactionFeesBigIntToJsonZod = TransactionFeesBigIntZod.transform(val => ({
|
|
62
|
+
base: BigIntToJsonZod.parse(val.base),
|
|
63
|
+
gasLimit: BigIntToJsonZod.parse(val.gasLimit),
|
|
64
|
+
gasPrice: BigIntToJsonZod.parse(val.gasPrice),
|
|
65
|
+
priority: BigIntToJsonZod.parse(val.priority),
|
|
66
|
+
}))
|
|
67
|
+
|
|
68
|
+
/** TransactionFeesJsonToBigIntZodType type. */
|
|
69
|
+
export type TransactionFeesJsonToBigIntZodType = z.infer<typeof TransactionFeesJsonToBigIntZod>
|
|
70
|
+
/** TransactionFeesBigIntToJsonZodType type. */
|
|
71
|
+
export type TransactionFeesBigIntToJsonZodType = z.infer<typeof TransactionFeesBigIntToJsonZod>
|
|
72
|
+
|
|
73
|
+
export { BigIntToJsonZod as AttoToJsonZod } from '@xylabs/sdk-js'
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
/** TransactionGasCosts constant. */
|
|
2
|
+
export const TransactionGasCosts = {
|
|
3
|
+
/**
|
|
4
|
+
* The cost of storing each character that is added to the chain
|
|
5
|
+
* This includes the transaction JSON and all the elevated payloads' JSON
|
|
6
|
+
*/
|
|
7
|
+
characterStorage: 10n,
|
|
8
|
+
|
|
9
|
+
/** The cost of static validating every payload that will be included in the chain */
|
|
10
|
+
payloadValidation: 1000n,
|
|
11
|
+
|
|
12
|
+
/** The cost of validating each signature that will be included in the chain */
|
|
13
|
+
signatureValidation: 1000n,
|
|
14
|
+
|
|
15
|
+
/** The cost of validating each hash that will be included in the chain */
|
|
16
|
+
hashValidation: 100n,
|
|
17
|
+
|
|
18
|
+
/** The cost of validating a balance state, triggered by a Transfer payload or gas collection */
|
|
19
|
+
balanceValidation: 100n,
|
|
20
|
+
} as const
|
|
21
|
+
|
|
22
|
+
/** Gas Calculation
|
|
23
|
+
*
|
|
24
|
+
* 1 Million microXL1 (mXL1) = 1 XL1
|
|
25
|
+
*
|
|
26
|
+
* Gas amount is calculated as follows:
|
|
27
|
+
*
|
|
28
|
+
* 1. Each byte in the transaction cost 10 gas
|
|
29
|
+
* 2. Each payload validation in the transaction costs 1000 gas
|
|
30
|
+
* 3. Each signature verification in the transaction costs 1000 gas
|
|
31
|
+
* 4. Each hash validation in the transaction costs 100 gas
|
|
32
|
+
* 5. Each balance validation in the transaction costs 100 gas
|
|
33
|
+
* 6. Processing/Compute/Storage Cost?
|
|
34
|
+
* 7. operation Costs?
|
|
35
|
+
*
|
|
36
|
+
* The total gas cost is calculated by multiplying the gas amount by the gas price.
|
|
37
|
+
*
|
|
38
|
+
* minGasPrice is initially set to 100 mXL1
|
|
39
|
+
* minBase is initially set to 1000 mXL1
|
|
40
|
+
* minPriority is always 0 mXL1, but can be set to increase the priority of the transaction
|
|
41
|
+
*
|
|
42
|
+
*/
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import {
|
|
2
|
+
asXL1Factory, isXL1Factory, toXL1Factory,
|
|
3
|
+
} from './isXL1Factory.ts'
|
|
4
|
+
import { xl1MaxValue } from './xl1MaxValue.ts'
|
|
5
|
+
import { XL1Places } from './XL1Units.ts'
|
|
6
|
+
|
|
7
|
+
/** Maximum value for the AttoXL1 branded type. */
|
|
8
|
+
export const AttoXL1MaxValue = xl1MaxValue(XL1Places.atto)
|
|
9
|
+
/** AttoXL1 type. */
|
|
10
|
+
export type AttoXL1 = bigint & { readonly _tag: 'AttoXL1' }
|
|
11
|
+
/** Type guard that checks if a value is a valid AttoXL1. */
|
|
12
|
+
export const isAttoXL1 = isXL1Factory<AttoXL1>(XL1Places.atto)
|
|
13
|
+
/** Converts a value to AttoXL1, throwing if invalid. */
|
|
14
|
+
export const asAttoXL1 = asXL1Factory<AttoXL1>(XL1Places.atto)
|
|
15
|
+
/** Converts a bigint value to AttoXL1 without validation. */
|
|
16
|
+
export const toAttoXL1 = toXL1Factory<AttoXL1>(XL1Places.atto)
|
|
17
|
+
|
|
18
|
+
/** Shorthand alias for asAttoXL1. */
|
|
19
|
+
export const AttoXL1 = asAttoXL1
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import {
|
|
2
|
+
asXL1Factory, isXL1Factory, toXL1Factory,
|
|
3
|
+
} from './isXL1Factory.ts'
|
|
4
|
+
import { xl1MaxValue } from './xl1MaxValue.ts'
|
|
5
|
+
import { XL1Places } from './XL1Units.ts'
|
|
6
|
+
|
|
7
|
+
/** Maximum value for the FemtoXL1 branded type. */
|
|
8
|
+
export const FemtoXL1MaxValue = xl1MaxValue(XL1Places.femto)
|
|
9
|
+
/** FemtoXL1 type. */
|
|
10
|
+
export type FemtoXL1 = bigint & { readonly _tag: 'FemtoXL1' }
|
|
11
|
+
/** Type guard that checks if a value is a valid FemtoXL1. */
|
|
12
|
+
export const isFemtoXL1 = isXL1Factory<FemtoXL1>(XL1Places.femto)
|
|
13
|
+
/** Converts a value to FemtoXL1, throwing if invalid. */
|
|
14
|
+
export const asFemtoXL1 = asXL1Factory<FemtoXL1>(XL1Places.femto)
|
|
15
|
+
|
|
16
|
+
/** Converts a bigint value to FemtoXL1 without validation. */
|
|
17
|
+
export const toFemtoXL1 = toXL1Factory<FemtoXL1>(XL1Places.femto)
|
|
18
|
+
|
|
19
|
+
/** Shorthand alias for asFemtoXL1. */
|
|
20
|
+
export const FemtoXL1 = asFemtoXL1
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import {
|
|
2
|
+
asXL1Factory, isXL1Factory, toXL1Factory,
|
|
3
|
+
} from './isXL1Factory.ts'
|
|
4
|
+
import { xl1MaxValue } from './xl1MaxValue.ts'
|
|
5
|
+
import { XL1Places } from './XL1Units.ts'
|
|
6
|
+
|
|
7
|
+
/** Maximum value for the MicroXL1 branded type. */
|
|
8
|
+
export const MicroXL1MaxValue = xl1MaxValue(XL1Places.micro)
|
|
9
|
+
/** MicroXL1 type. */
|
|
10
|
+
export type MicroXL1 = bigint & { readonly _tag: 'MicroXL1' }
|
|
11
|
+
/** Type guard that checks if a value is a valid MicroXL1. */
|
|
12
|
+
export const isMicroXL1 = isXL1Factory<MicroXL1>(XL1Places.micro)
|
|
13
|
+
/** Converts a value to MicroXL1, throwing if invalid. */
|
|
14
|
+
export const asMicroXL1 = asXL1Factory<MicroXL1>(XL1Places.micro)
|
|
15
|
+
|
|
16
|
+
/** Converts a bigint value to MicroXL1 without validation. */
|
|
17
|
+
export const toMicroXL1 = toXL1Factory<MicroXL1>(XL1Places.micro)
|
|
18
|
+
|
|
19
|
+
/** Shorthand alias for asMicroXL1. */
|
|
20
|
+
export const MicroXL1 = asMicroXL1
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import {
|
|
2
|
+
asXL1Factory, isXL1Factory, toXL1Factory,
|
|
3
|
+
} from './isXL1Factory.ts'
|
|
4
|
+
import { xl1MaxValue } from './xl1MaxValue.ts'
|
|
5
|
+
import { XL1Places } from './XL1Units.ts'
|
|
6
|
+
|
|
7
|
+
/** Maximum value for the MilliXL1 branded type. */
|
|
8
|
+
export const MilliXL1MaxValue = xl1MaxValue(XL1Places.milli)
|
|
9
|
+
/** MilliXL1 type. */
|
|
10
|
+
export type MilliXL1 = bigint & { readonly _tag: 'MilliXL1' }
|
|
11
|
+
/** Type guard that checks if a value is a valid MilliXL1. */
|
|
12
|
+
export const isMilliXL1 = isXL1Factory<MilliXL1>(XL1Places.milli)
|
|
13
|
+
/** Converts a value to MilliXL1, throwing if invalid. */
|
|
14
|
+
export const asMilliXL1 = asXL1Factory<MilliXL1>(XL1Places.milli)
|
|
15
|
+
|
|
16
|
+
/** Converts a bigint value to MilliXL1 without validation. */
|
|
17
|
+
export const toMilliXL1 = toXL1Factory<MilliXL1>(XL1Places.milli)
|
|
18
|
+
|
|
19
|
+
/** Shorthand alias for asMilliXL1. */
|
|
20
|
+
export const MilliXL1 = asMilliXL1
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import {
|
|
2
|
+
asXL1Factory, isXL1Factory, toXL1Factory,
|
|
3
|
+
} from './isXL1Factory.ts'
|
|
4
|
+
import { xl1MaxValue } from './xl1MaxValue.ts'
|
|
5
|
+
import { XL1Places } from './XL1Units.ts'
|
|
6
|
+
|
|
7
|
+
/** Maximum value for the NanoXL1 branded type. */
|
|
8
|
+
export const NanoXL1MaxValue = xl1MaxValue(XL1Places.nano)
|
|
9
|
+
/** NanoXL1 type. */
|
|
10
|
+
export type NanoXL1 = bigint & { readonly _tag: 'NanoXL1' }
|
|
11
|
+
/** Type guard that checks if a value is a valid NanoXL1. */
|
|
12
|
+
export const isNanoXL1 = isXL1Factory<NanoXL1>(XL1Places.nano)
|
|
13
|
+
/** Converts a value to NanoXL1, throwing if invalid. */
|
|
14
|
+
export const asNanoXL1 = asXL1Factory<NanoXL1>(XL1Places.nano)
|
|
15
|
+
|
|
16
|
+
/** Converts a bigint value to NanoXL1 without validation. */
|
|
17
|
+
export const toNanoXL1 = toXL1Factory<NanoXL1>(XL1Places.nano)
|
|
18
|
+
|
|
19
|
+
/** Shorthand alias for asNanoXL1. */
|
|
20
|
+
export const NanoXL1 = asNanoXL1
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import {
|
|
2
|
+
asXL1Factory, isXL1Factory, toXL1Factory,
|
|
3
|
+
} from './isXL1Factory.ts'
|
|
4
|
+
import { xl1MaxValue } from './xl1MaxValue.ts'
|
|
5
|
+
import { XL1Places } from './XL1Units.ts'
|
|
6
|
+
|
|
7
|
+
/** PicoXL1MaxValue constant. */
|
|
8
|
+
export const PicoXL1MaxValue = xl1MaxValue(XL1Places.pico)
|
|
9
|
+
/** PicoXL1 type. */
|
|
10
|
+
export type PicoXL1 = bigint & { readonly _tag: 'PicoXL1' }
|
|
11
|
+
/** Type guard that checks if a value is a valid PicoXL1. */
|
|
12
|
+
export const isPicoXL1 = isXL1Factory<PicoXL1>(XL1Places.pico)
|
|
13
|
+
/** Converts a value to PicoXL1, throwing if invalid. */
|
|
14
|
+
export const asPicoXL1 = asXL1Factory<PicoXL1>(XL1Places.pico)
|
|
15
|
+
|
|
16
|
+
/** toPicoXL1 constant. */
|
|
17
|
+
export const toPicoXL1 = toXL1Factory<PicoXL1>(XL1Places.pico)
|
|
18
|
+
|
|
19
|
+
/** PicoXL1 constant. */
|
|
20
|
+
export const PicoXL1 = asPicoXL1
|
package/src/xl1/XL1.ts
ADDED
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import {
|
|
2
|
+
asXL1Factory, isXL1Factory, toXL1Factory,
|
|
3
|
+
} from './isXL1Factory.ts'
|
|
4
|
+
import { xl1MaxValue } from './xl1MaxValue.ts'
|
|
5
|
+
import { XL1Places } from './XL1Units.ts'
|
|
6
|
+
|
|
7
|
+
/** XL1MaxValue constant. */
|
|
8
|
+
export const XL1MaxValue = xl1MaxValue(XL1Places.xl1)
|
|
9
|
+
/** XL1 type. */
|
|
10
|
+
export type XL1 = bigint & { readonly _tag: 'XL1' }
|
|
11
|
+
/** Type guard that checks if a value is a valid XL1. */
|
|
12
|
+
export const isXL1 = isXL1Factory<XL1>(XL1Places.xl1)
|
|
13
|
+
/** Converts a value to XL1, throwing if invalid. */
|
|
14
|
+
export const asXL1 = asXL1Factory<XL1>(XL1Places.xl1)
|
|
15
|
+
|
|
16
|
+
/** toXL1 constant. */
|
|
17
|
+
export const toXL1 = toXL1Factory<XL1>(XL1Places.xl1)
|
|
18
|
+
|
|
19
|
+
/** XL1 constant. */
|
|
20
|
+
export const XL1 = asXL1
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
type XL1Units = 'xl1' | 'milli' | 'micro' | 'nano' | 'pico' | 'femto' | 'atto'
|
|
2
|
+
|
|
3
|
+
/** Decimal place definitions for each XL1 currency unit (atto=18, femto=15, etc.). */
|
|
4
|
+
export const XL1Places: Record<XL1Units, bigint> = {
|
|
5
|
+
xl1: 18n,
|
|
6
|
+
milli: 15n,
|
|
7
|
+
micro: 12n,
|
|
8
|
+
nano: 9n,
|
|
9
|
+
pico: 6n,
|
|
10
|
+
femto: 3n,
|
|
11
|
+
atto: 0n,
|
|
12
|
+
} as const
|
|
13
|
+
|
|
14
|
+
/**
|
|
15
|
+
* Convert factor by which a respective unit is multiplied to convert it to AttoXL1 or
|
|
16
|
+
* by which AttoXL1 is divided to convert it to respective unit is multiplied.
|
|
17
|
+
*/
|
|
18
|
+
export const AttoXL1ConvertFactor: Record<XL1Units, bigint> = {
|
|
19
|
+
xl1: 10n ** XL1Places.xl1,
|
|
20
|
+
milli: 10n ** XL1Places.milli,
|
|
21
|
+
micro: 10n ** XL1Places.micro,
|
|
22
|
+
nano: 10n ** XL1Places.nano,
|
|
23
|
+
pico: 10n ** XL1Places.pico,
|
|
24
|
+
femto: 10n ** XL1Places.femto,
|
|
25
|
+
atto: 10n ** XL1Places.atto,
|
|
26
|
+
} as const
|
package/src/xl1/index.ts
ADDED
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { z } from 'zod'
|
|
2
|
+
|
|
3
|
+
import { xl1MaxValue } from './xl1MaxValue.ts'
|
|
4
|
+
|
|
5
|
+
/** Type guard that checks if a value is a valid XL1Factory. */
|
|
6
|
+
export const isXL1Factory = <T extends bigint>(places: bigint) => (val: unknown): val is T => {
|
|
7
|
+
if (typeof val !== 'bigint') return false
|
|
8
|
+
return val >= 0n && val <= xl1MaxValue(places)
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
/** Creates a Zod schema factory for XL1 branded bigint types. */
|
|
12
|
+
export const XL1ZodFactory = <T extends bigint>(places: bigint, name: string) => {
|
|
13
|
+
const is = isXL1Factory<T>(places)
|
|
14
|
+
const message = `Invalid value for ${name}, must be between 0 and ${xl1MaxValue(places)}`
|
|
15
|
+
return z.bigint().refine(
|
|
16
|
+
(x) => {
|
|
17
|
+
const result = is(x)
|
|
18
|
+
return result
|
|
19
|
+
},
|
|
20
|
+
{ message },
|
|
21
|
+
)
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
/** Creates a Zod transform factory that converts values between XL1 unit types. */
|
|
25
|
+
export const XL1TransformZodFactory = <T extends bigint>(places: bigint, name: string) => {
|
|
26
|
+
const is = isXL1Factory<T>(places)
|
|
27
|
+
const message = `Invalid value for ${name}, must be between 0 and ${xl1MaxValue(places)}`
|
|
28
|
+
return z.union([z.bigint(), z.number(), z.string(), z.boolean()]).transform(val => BigInt(val) as T).refine(
|
|
29
|
+
(x) => {
|
|
30
|
+
const result = is(x)
|
|
31
|
+
return result
|
|
32
|
+
},
|
|
33
|
+
{ message },
|
|
34
|
+
)
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
/** Converts a value to XL1Factory, throwing if invalid. */
|
|
38
|
+
export const asXL1Factory = <T extends bigint>(places: bigint) => {
|
|
39
|
+
const zod = XL1ZodFactory<T>(places, 'local')
|
|
40
|
+
return (val: unknown): T => {
|
|
41
|
+
const result = zod.safeParse(val)
|
|
42
|
+
if (result.success) {
|
|
43
|
+
return result.data as T
|
|
44
|
+
}
|
|
45
|
+
throw result.error
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
/** Creates a factory function that converts bigint values to a specific XL1 branded type. */
|
|
50
|
+
export const toXL1Factory = <T extends bigint>(places: bigint) => {
|
|
51
|
+
const zod = XL1TransformZodFactory<T>(places, 'local')
|
|
52
|
+
return (val: unknown): T | undefined => {
|
|
53
|
+
const result = zod.safeParse(val)
|
|
54
|
+
return result.success ? result.data as T : undefined
|
|
55
|
+
}
|
|
56
|
+
}
|