@solana/transaction-messages
Version:
Helpers for creating transaction messages
1 lines • 129 kB
Source Map (JSON)
{"version":3,"sources":["../src/blockhash.ts","../../codecs-strings/src/assertions.ts","../../codecs-strings/src/baseX.ts","../../codecs-strings/src/base58.ts","../src/codecs/address-table-lookup.ts","../src/codecs/header.ts","../src/codecs/instruction.ts","../src/codecs/transaction-version.ts","../src/codecs/message.ts","../src/compile/accounts.ts","../src/compile/address-table-lookups.ts","../src/compile/header.ts","../src/compile/instructions.ts","../src/compile/lifetime-token.ts","../src/compile/static-accounts.ts","../src/compile/message.ts","../src/compress-transaction-message.ts","../src/create-transaction-message.ts","../src/durable-nonce.ts","../src/fee-payer.ts","../src/instructions.ts","../src/decompile-message.ts"],"names":["assertIsBlockhash","SolanaError","SOLANA_ERROR__TRANSACTION__EXPECTED_BLOCKHASH_LIFETIME","alphabet","SOLANA_ERROR__CODECS__INVALID_STRING_FOR_BASE","createEncoder","createDecoder","getArrayEncoder","getU8Encoder","getShortU16Encoder","getStructEncoder","getAddressEncoder","getArrayDecoder","getU8Decoder","getShortU16Decoder","transformDecoder","getStructDecoder","getAddressDecoder","transformEncoder","addEncoderSizePrefix","getBytesEncoder","addDecoderSizePrefix","getBytesDecoder","SOLANA_ERROR__TRANSACTION__VERSION_NUMBER_OUT_OF_RANGE","combineCodec","fixEncoderSize","fixDecoderSize","AccountRole","instructions","isWritableRole","SOLANA_ERROR__TRANSACTION__INVOKED_PROGRAMS_CANNOT_PAY_FEES","SOLANA_ERROR__TRANSACTION__INVOKED_PROGRAMS_MUST_NOT_BE_WRITABLE","mergeRoles","getAddressComparator","isSignerRole","SOLANA_ERROR__TRANSACTION__EXPECTED_NONCE_LIFETIME","SOLANA_ERROR__TRANSACTION__FAILED_TO_DECOMPILE_ADDRESS_LOOKUP_TABLE_CONTENTS_MISSING","SOLANA_ERROR__TRANSACTION__FAILED_TO_DECOMPILE_ADDRESS_LOOKUP_TABLE_INDEX_OUT_OF_RANGE","SOLANA_ERROR__TRANSACTION__FAILED_TO_DECOMPILE_INSTRUCTION_PROGRAM_ADDRESS_NOT_FOUND","assertIsAddress","SOLANA_ERROR__TRANSACTION__FAILED_TO_DECOMPILE_FEE_PAYER_MISSING","pipe"],"mappings":"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","file":"index.browser.cjs","sourcesContent":["import { SOLANA_ERROR__TRANSACTION__EXPECTED_BLOCKHASH_LIFETIME, SolanaError } from '@solana/errors';\nimport { assertIsBlockhash, type Blockhash } from '@solana/rpc-types';\n\nimport { TransactionMessageWithDurableNonceLifetime } from './durable-nonce';\nimport { BaseTransactionMessage } from './transaction-message';\n\n/**\n * A constraint which, when applied to a transaction message, makes that transaction message\n * eligible to land on the network. The transaction message will continue to be eligible to land\n * until the network considers the `blockhash` to be expired.\n *\n * This can happen when the network proceeds past the `lastValidBlockHeight` for which the blockhash\n * is considered valid, or when the network switches to a fork where that blockhash is not present.\n */\ntype BlockhashLifetimeConstraint = Readonly<{\n /**\n * A recent blockhash observed by the transaction proposer.\n *\n * The transaction message will be considered eligible to land until the network determines this\n * blockhash to be too old, or has switched to a fork where it is not present.\n */\n blockhash: Blockhash;\n /**\n * This is the block height beyond which the network will consider the blockhash to be too old\n * to make a transaction message eligible to land.\n */\n lastValidBlockHeight: bigint;\n}>;\n\n/**\n * Represents a transaction message whose lifetime is defined by the age of the blockhash it\n * includes.\n *\n * Such a transaction can only be landed on the network if the current block height of the network\n * is less than or equal to the value of\n * `TransactionMessageWithBlockhashLifetime['lifetimeConstraint']['lastValidBlockHeight']`.\n */\nexport interface TransactionMessageWithBlockhashLifetime {\n readonly lifetimeConstraint: BlockhashLifetimeConstraint;\n}\n\n/**\n * A type guard that returns `true` if the transaction message conforms to the\n * {@link TransactionMessageWithBlockhashLifetime} type, and refines its type for use in your\n * program.\n *\n * @example\n * ```ts\n * import { isTransactionMessageWithBlockhashLifetime } from '@solana/transaction-messages';\n *\n * if (isTransactionMessageWithBlockhashLifetime(message)) {\n * // At this point, `message` has been refined to a `TransactionMessageWithBlockhashLifetime`.\n * const { blockhash } = message.lifetimeConstraint;\n * const { value: blockhashIsValid } = await rpc.isBlockhashValid(blockhash).send();\n * setBlockhashIsValid(blockhashIsValid);\n * } else {\n * setError(\n * `${getSignatureFromTransaction(transaction)} does not have a blockhash-based lifetime`,\n * );\n * }\n * ```\n */\nexport function isTransactionMessageWithBlockhashLifetime(\n transactionMessage: BaseTransactionMessage | (BaseTransactionMessage & TransactionMessageWithBlockhashLifetime),\n): transactionMessage is BaseTransactionMessage & TransactionMessageWithBlockhashLifetime {\n const lifetimeConstraintShapeMatches =\n 'lifetimeConstraint' in transactionMessage &&\n typeof transactionMessage.lifetimeConstraint.blockhash === 'string' &&\n typeof transactionMessage.lifetimeConstraint.lastValidBlockHeight === 'bigint';\n if (!lifetimeConstraintShapeMatches) return false;\n try {\n assertIsBlockhash(transactionMessage.lifetimeConstraint.blockhash);\n return true;\n } catch {\n return false;\n }\n}\n\n/**\n * From time to time you might acquire a transaction message, that you expect to have a\n * blockhash-based lifetime, from an untrusted network API or user input. Use this function to\n * assert that such a transaction message actually has a blockhash-based lifetime.\n *\n * @example\n * ```ts\n * import { assertIsTransactionMessageWithBlockhashLifetime } from '@solana/transaction-messages';\n *\n * try {\n * // If this type assertion function doesn't throw, then\n * // Typescript will upcast `message` to `TransactionMessageWithBlockhashLifetime`.\n * assertIsTransactionMessageWithBlockhashLifetime(message);\n * // At this point, `message` is a `TransactionMessageWithBlockhashLifetime` that can be used\n * // with the RPC.\n * const { blockhash } = message.lifetimeConstraint;\n * const { value: blockhashIsValid } = await rpc.isBlockhashValid(blockhash).send();\n * } catch (e) {\n * // `message` turned out not to have a blockhash-based lifetime\n * }\n * ```\n */\nexport function assertIsTransactionMessageWithBlockhashLifetime(\n transactionMessage: BaseTransactionMessage | (BaseTransactionMessage & TransactionMessageWithBlockhashLifetime),\n): asserts transactionMessage is BaseTransactionMessage & TransactionMessageWithBlockhashLifetime {\n if (!isTransactionMessageWithBlockhashLifetime(transactionMessage)) {\n throw new SolanaError(SOLANA_ERROR__TRANSACTION__EXPECTED_BLOCKHASH_LIFETIME);\n }\n}\n\n/**\n * Given a blockhash and the last block height at which that blockhash is considered usable to land\n * transactions, this method will return a new transaction message having the same type as the one\n * supplied plus the `TransactionMessageWithBlockhashLifetime` type.\n *\n * @example\n * ```ts\n * import { setTransactionMessageLifetimeUsingBlockhash } from '@solana/transaction-messages';\n *\n * const { value: latestBlockhash } = await rpc.getLatestBlockhash().send();\n * const txMessageWithBlockhashLifetime = setTransactionMessageLifetimeUsingBlockhash(latestBlockhash, txMessage);\n * ```\n */\nexport function setTransactionMessageLifetimeUsingBlockhash<\n TTransactionMessage extends BaseTransactionMessage & TransactionMessageWithDurableNonceLifetime,\n>(\n blockhashLifetimeConstraint: BlockhashLifetimeConstraint,\n transactionMessage: TTransactionMessage,\n): Omit<TTransactionMessage, 'lifetimeConstraint'> & TransactionMessageWithBlockhashLifetime;\n\nexport function setTransactionMessageLifetimeUsingBlockhash<\n TTransactionMessage extends\n | BaseTransactionMessage\n | (BaseTransactionMessage & TransactionMessageWithBlockhashLifetime),\n>(\n blockhashLifetimeConstraint: BlockhashLifetimeConstraint,\n transactionMessage: TTransactionMessage,\n): TransactionMessageWithBlockhashLifetime & TTransactionMessage;\n\nexport function setTransactionMessageLifetimeUsingBlockhash(\n blockhashLifetimeConstraint: BlockhashLifetimeConstraint,\n transactionMessage: BaseTransactionMessage | (BaseTransactionMessage & TransactionMessageWithBlockhashLifetime),\n) {\n if (\n 'lifetimeConstraint' in transactionMessage &&\n transactionMessage.lifetimeConstraint.blockhash === blockhashLifetimeConstraint.blockhash &&\n transactionMessage.lifetimeConstraint.lastValidBlockHeight === blockhashLifetimeConstraint.lastValidBlockHeight\n ) {\n return transactionMessage;\n }\n const out = {\n ...transactionMessage,\n lifetimeConstraint: Object.freeze(blockhashLifetimeConstraint),\n };\n Object.freeze(out);\n return out;\n}\n","import { SOLANA_ERROR__CODECS__INVALID_STRING_FOR_BASE, SolanaError } from '@solana/errors';\n\n/**\n * Asserts that a given string contains only characters from the specified alphabet.\n *\n * This function validates whether a string consists exclusively of characters\n * from the provided `alphabet`. If the validation fails, it throws an error\n * indicating the invalid base string.\n *\n * @param alphabet - The allowed set of characters for the base encoding.\n * @param testValue - The string to validate against the given alphabet.\n * @param givenValue - The original string provided by the user (defaults to `testValue`).\n *\n * @throws {SolanaError} If `testValue` contains characters not present in `alphabet`.\n *\n * @example\n * Validating a base-8 encoded string.\n * ```ts\n * assertValidBaseString('01234567', '123047'); // Passes\n * assertValidBaseString('01234567', '128'); // Throws error\n * ```\n */\nexport function assertValidBaseString(alphabet: string, testValue: string, givenValue = testValue) {\n if (!testValue.match(new RegExp(`^[${alphabet}]*$`))) {\n throw new SolanaError(SOLANA_ERROR__CODECS__INVALID_STRING_FOR_BASE, {\n alphabet,\n base: alphabet.length,\n value: givenValue,\n });\n }\n}\n","import {\n combineCodec,\n createDecoder,\n createEncoder,\n VariableSizeCodec,\n VariableSizeDecoder,\n VariableSizeEncoder,\n} from '@solana/codecs-core';\n\nimport { assertValidBaseString } from './assertions';\n\n/**\n * Returns an encoder for base-X encoded strings.\n *\n * This encoder serializes strings using a custom alphabet, treating the length of the alphabet as the base.\n * The encoding process involves converting the input string to a numeric value in base-X, then\n * encoding that value into bytes while preserving leading zeroes.\n *\n * For more details, see {@link getBaseXCodec}.\n *\n * @param alphabet - The set of characters defining the base-X encoding.\n * @returns A `VariableSizeEncoder<string>` for encoding base-X strings.\n *\n * @example\n * Encoding a base-X string using a custom alphabet.\n * ```ts\n * const encoder = getBaseXEncoder('0123456789abcdef');\n * const bytes = encoder.encode('deadface'); // 0xdeadface\n * ```\n *\n * @see {@link getBaseXCodec}\n */\nexport const getBaseXEncoder = (alphabet: string): VariableSizeEncoder<string> => {\n return createEncoder({\n getSizeFromValue: (value: string): number => {\n const [leadingZeroes, tailChars] = partitionLeadingZeroes(value, alphabet[0]);\n if (!tailChars) return value.length;\n\n const base10Number = getBigIntFromBaseX(tailChars, alphabet);\n return leadingZeroes.length + Math.ceil(base10Number.toString(16).length / 2);\n },\n write(value: string, bytes, offset) {\n // Check if the value is valid.\n assertValidBaseString(alphabet, value);\n if (value === '') return offset;\n\n // Handle leading zeroes.\n const [leadingZeroes, tailChars] = partitionLeadingZeroes(value, alphabet[0]);\n if (!tailChars) {\n bytes.set(new Uint8Array(leadingZeroes.length).fill(0), offset);\n return offset + leadingZeroes.length;\n }\n\n // From baseX to base10.\n let base10Number = getBigIntFromBaseX(tailChars, alphabet);\n\n // From base10 to bytes.\n const tailBytes: number[] = [];\n while (base10Number > 0n) {\n tailBytes.unshift(Number(base10Number % 256n));\n base10Number /= 256n;\n }\n\n const bytesToAdd = [...Array(leadingZeroes.length).fill(0), ...tailBytes];\n bytes.set(bytesToAdd, offset);\n return offset + bytesToAdd.length;\n },\n });\n};\n\n/**\n * Returns a decoder for base-X encoded strings.\n *\n * This decoder deserializes base-X encoded strings from a byte array using a custom alphabet.\n * The decoding process converts the byte array into a numeric value in base-10, then\n * maps that value back to characters in the specified base-X alphabet.\n *\n * For more details, see {@link getBaseXCodec}.\n *\n * @param alphabet - The set of characters defining the base-X encoding.\n * @returns A `VariableSizeDecoder<string>` for decoding base-X strings.\n *\n * @example\n * Decoding a base-X string using a custom alphabet.\n * ```ts\n * const decoder = getBaseXDecoder('0123456789abcdef');\n * const value = decoder.decode(new Uint8Array([0xde, 0xad, 0xfa, 0xce])); // \"deadface\"\n * ```\n *\n * @see {@link getBaseXCodec}\n */\nexport const getBaseXDecoder = (alphabet: string): VariableSizeDecoder<string> => {\n return createDecoder({\n read(rawBytes, offset): [string, number] {\n const bytes = offset === 0 ? rawBytes : rawBytes.slice(offset);\n if (bytes.length === 0) return ['', 0];\n\n // Handle leading zeroes.\n let trailIndex = bytes.findIndex(n => n !== 0);\n trailIndex = trailIndex === -1 ? bytes.length : trailIndex;\n const leadingZeroes = alphabet[0].repeat(trailIndex);\n if (trailIndex === bytes.length) return [leadingZeroes, rawBytes.length];\n\n // From bytes to base10.\n const base10Number = bytes.slice(trailIndex).reduce((sum, byte) => sum * 256n + BigInt(byte), 0n);\n\n // From base10 to baseX.\n const tailChars = getBaseXFromBigInt(base10Number, alphabet);\n\n return [leadingZeroes + tailChars, rawBytes.length];\n },\n });\n};\n\n/**\n * Returns a codec for encoding and decoding base-X strings.\n *\n * This codec serializes strings using a custom alphabet, treating the length of the alphabet as the base.\n * The encoding process converts the input string into a numeric value in base-X, which is then encoded as bytes.\n * The decoding process reverses this transformation to reconstruct the original string.\n *\n * This codec supports leading zeroes by treating the first character of the alphabet as the zero character.\n *\n * @param alphabet - The set of characters defining the base-X encoding.\n * @returns A `VariableSizeCodec<string>` for encoding and decoding base-X strings.\n *\n * @example\n * Encoding and decoding a base-X string using a custom alphabet.\n * ```ts\n * const codec = getBaseXCodec('0123456789abcdef');\n * const bytes = codec.encode('deadface'); // 0xdeadface\n * const value = codec.decode(bytes); // \"deadface\"\n * ```\n *\n * @remarks\n * This codec does not enforce a size boundary. It will encode and decode all bytes necessary to represent the string.\n *\n * If you need a fixed-size base-X codec, consider using {@link fixCodecSize}.\n *\n * ```ts\n * const codec = fixCodecSize(getBaseXCodec('0123456789abcdef'), 8);\n * ```\n *\n * If you need a size-prefixed base-X codec, consider using {@link addCodecSizePrefix}.\n *\n * ```ts\n * const codec = addCodecSizePrefix(getBaseXCodec('0123456789abcdef'), getU32Codec());\n * ```\n *\n * Separate {@link getBaseXEncoder} and {@link getBaseXDecoder} functions are available.\n *\n * ```ts\n * const bytes = getBaseXEncoder('0123456789abcdef').encode('deadface');\n * const value = getBaseXDecoder('0123456789abcdef').decode(bytes);\n * ```\n *\n * @see {@link getBaseXEncoder}\n * @see {@link getBaseXDecoder}\n */\nexport const getBaseXCodec = (alphabet: string): VariableSizeCodec<string> =>\n combineCodec(getBaseXEncoder(alphabet), getBaseXDecoder(alphabet));\n\nfunction partitionLeadingZeroes(\n value: string,\n zeroCharacter: string,\n): [leadingZeros: string, tailChars: string | undefined] {\n const [leadingZeros, tailChars] = value.split(new RegExp(`((?!${zeroCharacter}).*)`));\n return [leadingZeros, tailChars];\n}\n\nfunction getBigIntFromBaseX(value: string, alphabet: string): bigint {\n const base = BigInt(alphabet.length);\n let sum = 0n;\n for (const char of value) {\n sum *= base;\n sum += BigInt(alphabet.indexOf(char));\n }\n return sum;\n}\n\nfunction getBaseXFromBigInt(value: bigint, alphabet: string): string {\n const base = BigInt(alphabet.length);\n const tailChars = [];\n while (value > 0n) {\n tailChars.unshift(alphabet[Number(value % base)]);\n value /= base;\n }\n return tailChars.join('');\n}\n","import { getBaseXCodec, getBaseXDecoder, getBaseXEncoder } from './baseX';\n\nconst alphabet = '123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz';\n\n/**\n * Returns an encoder for base-58 strings.\n *\n * This encoder serializes strings using a base-58 encoding scheme,\n * commonly used in cryptocurrency addresses and other compact representations.\n *\n * For more details, see {@link getBase58Codec}.\n *\n * @returns A `VariableSizeEncoder<string>` for encoding base-58 strings.\n *\n * @example\n * Encoding a base-58 string.\n * ```ts\n * const encoder = getBase58Encoder();\n * const bytes = encoder.encode('heLLo'); // 0x1b6a3070\n * ```\n *\n * @see {@link getBase58Codec}\n */\nexport const getBase58Encoder = () => getBaseXEncoder(alphabet);\n\n/**\n * Returns a decoder for base-58 strings.\n *\n * This decoder deserializes base-58 encoded strings from a byte array.\n *\n * For more details, see {@link getBase58Codec}.\n *\n * @returns A `VariableSizeDecoder<string>` for decoding base-58 strings.\n *\n * @example\n * Decoding a base-58 string.\n * ```ts\n * const decoder = getBase58Decoder();\n * const value = decoder.decode(new Uint8Array([0x1b, 0x6a, 0x30, 0x70])); // \"heLLo\"\n * ```\n *\n * @see {@link getBase58Codec}\n */\nexport const getBase58Decoder = () => getBaseXDecoder(alphabet);\n\n/**\n * Returns a codec for encoding and decoding base-58 strings.\n *\n * This codec serializes strings using a base-58 encoding scheme,\n * commonly used in cryptocurrency addresses and other compact representations.\n *\n * @returns A `VariableSizeCodec<string>` for encoding and decoding base-58 strings.\n *\n * @example\n * Encoding and decoding a base-58 string.\n * ```ts\n * const codec = getBase58Codec();\n * const bytes = codec.encode('heLLo'); // 0x1b6a3070\n * const value = codec.decode(bytes); // \"heLLo\"\n * ```\n *\n * @remarks\n * This codec does not enforce a size boundary. It will encode and decode all bytes necessary to represent the string.\n *\n * If you need a fixed-size base-58 codec, consider using {@link fixCodecSize}.\n *\n * ```ts\n * const codec = fixCodecSize(getBase58Codec(), 8);\n * ```\n *\n * If you need a size-prefixed base-58 codec, consider using {@link addCodecSizePrefix}.\n *\n * ```ts\n * const codec = addCodecSizePrefix(getBase58Codec(), getU32Codec());\n * ```\n *\n * Separate {@link getBase58Encoder} and {@link getBase58Decoder} functions are available.\n *\n * ```ts\n * const bytes = getBase58Encoder().encode('heLLo');\n * const value = getBase58Decoder().decode(bytes);\n * ```\n *\n * @see {@link getBase58Encoder}\n * @see {@link getBase58Decoder}\n */\nexport const getBase58Codec = () => getBaseXCodec(alphabet);\n","import { getAddressDecoder, getAddressEncoder } from '@solana/addresses';\nimport {\n combineCodec,\n type Encoder,\n transformDecoder,\n type VariableSizeCodec,\n type VariableSizeDecoder,\n type VariableSizeEncoder,\n} from '@solana/codecs-core';\nimport { getArrayDecoder, getArrayEncoder, getStructDecoder, getStructEncoder } from '@solana/codecs-data-structures';\nimport { getShortU16Decoder, getShortU16Encoder, getU8Decoder, getU8Encoder } from '@solana/codecs-numbers';\n\nimport type { getCompiledAddressTableLookups } from '../compile/address-table-lookups';\n\ntype AddressTableLookup = ReturnType<typeof getCompiledAddressTableLookups>[number];\n\nlet memoizedAddressTableLookupEncoder: VariableSizeEncoder<AddressTableLookup> | undefined;\nexport function getAddressTableLookupEncoder(): VariableSizeEncoder<AddressTableLookup> {\n if (!memoizedAddressTableLookupEncoder) {\n const indexEncoder = getArrayEncoder(getU8Encoder(), { size: getShortU16Encoder() }) as Encoder<\n readonly number[]\n >;\n memoizedAddressTableL