@solana/compat 5.0.1-canary-20251119225544 → 5.1.0-canary-20251203224929
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.
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/address.ts","../src/instruction.ts","../src/keypair.ts","../src/transaction.ts"],"names":["AccountRole","createKeyPairFromBytes","SolanaError","SOLANA_ERROR__TRANSACTION__MESSAGE_SIGNATURES_MISMATCH"],"mappings":";;;;;;;AAeO,SAAS,oBAA6C,
|
|
1
|
+
{"version":3,"sources":["../src/address.ts","../src/instruction.ts","../src/keypair.ts","../src/transaction.ts"],"names":["AccountRole","createKeyPairFromBytes","SolanaError","SOLANA_ERROR__TRANSACTION__MESSAGE_SIGNATURES_MISMATCH"],"mappings":"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","file":"index.browser.cjs","sourcesContent":["import { Address } from '@solana/addresses';\nimport { PublicKey } from '@solana/web3.js';\n\n/**\n * Converts a legacy [PublicKey](https://solana-foundation.github.io/solana-web3.js/classes/PublicKey.html)\n * object to an {@link Address}.\n *\n * @example\n * ```ts\n * import { fromLegacyPublicKey } from '@solana/compat';\n *\n * const legacyPublicKey = new PublicKey('49XBVQsvSW44ULKL9qufS9YqQPbdcps1TQRijx4FQ9sH');\n * const address = fromLegacyPublicKey(legacyPublicKey);\n * ```\n */\nexport function fromLegacyPublicKey<TAddress extends string>(publicKey: PublicKey): Address<TAddress> {\n return publicKey.toBase58() as Address<TAddress>;\n}\n","import { AccountRole, Instruction } from '@solana/instructions';\nimport { TransactionInstruction } from '@solana/web3.js';\n\nimport { fromLegacyPublicKey } from './address';\n\n/**\n * This can be used to convert a legacy [`TransactionInstruction`](https://solana-foundation.github.io/solana-web3.js/classes/TransactionInstruction.html)\n * object to an {@link Instruction}.\n *\n * @example\n * ```ts\n * import { fromLegacyTransactionInstruction } from '@solana/compat';\n *\n * // Imagine a function that returns a legacy `TransactionInstruction`\n * const legacyInstruction = getMyLegacyInstruction();\n * const instruction = fromLegacyTransactionInstruction(legacyInstruction);\n * ```\n */\nexport function fromLegacyTransactionInstruction(legacyInstruction: TransactionInstruction): Instruction {\n const data = legacyInstruction.data?.byteLength > 0 ? Uint8Array.from(legacyInstruction.data) : undefined;\n const accounts = legacyInstruction.keys.map(accountMeta =>\n Object.freeze({\n address: fromLegacyPublicKey(accountMeta.pubkey),\n role: determineRole(accountMeta.isSigner, accountMeta.isWritable),\n }),\n );\n const programAddress = fromLegacyPublicKey(legacyInstruction.programId);\n return Object.freeze({\n ...(accounts.length ? { accounts: Object.freeze(accounts) } : null),\n ...(data ? { data } : null),\n programAddress,\n });\n}\n\nfunction determineRole(isSigner: boolean, isWritable: boolean): AccountRole {\n if (isSigner && isWritable) return AccountRole.WRITABLE_SIGNER;\n if (isSigner) return AccountRole.READONLY_SIGNER;\n if (isWritable) return AccountRole.WRITABLE;\n return AccountRole.READONLY;\n}\n","import { createKeyPairFromBytes } from '@solana/keys';\nimport { Keypair } from '@solana/web3.js';\n\n/**\n * Converts a legacy [Keypair](https://solana-foundation.github.io/solana-web3.js/classes/Keypair.html)\n * object to a native Ed25519 {@link CryptoKeyPair} object.\n *\n * @example\n * ```ts\n * import { fromLegacyKeypair } from '@solana/compat';\n *\n * const legacyKeyPair = Keypair.generate();\n * const { privateKey, publicKey } = await fromLegacyKeypair(legacyKeyPair);\n * ```\n */\nexport async function fromLegacyKeypair(keypair: Keypair, extractable?: boolean): Promise<CryptoKeyPair> {\n const bytes = new Uint8Array(64);\n bytes.set(keypair.secretKey);\n bytes.set(keypair.publicKey.toBytes(), /* offset */ 32);\n return await createKeyPairFromBytes(bytes, extractable);\n}\n","import { ReadonlyUint8Array } from '@solana/codecs-core';\nimport { SOLANA_ERROR__TRANSACTION__MESSAGE_SIGNATURES_MISMATCH, SolanaError } from '@solana/errors';\nimport type { SignatureBytes } from '@solana/keys';\nimport { type SignaturesMap, Transaction, TransactionMessageBytes } from '@solana/transactions';\nimport type { PublicKey, VersionedTransaction } from '@solana/web3.js';\n\nfunction convertSignatures(transaction: VersionedTransaction, staticAccountKeys: PublicKey[]): SignaturesMap {\n return Object.fromEntries(\n transaction.signatures.map((sig, index) => {\n const address = staticAccountKeys[index];\n if (sig.every(b => b === 0)) {\n // all-0 signatures are stored as null\n return [address, null];\n } else {\n return [address, sig as ReadonlyUint8Array as SignatureBytes];\n }\n }),\n );\n}\n\n/**\n * This can be used to convert a legacy [VersionedTransaction](https://solana-foundation.github.io/solana-web3.js/classes/VersionedTransaction.html)\n * object to a {@link Transaction}.\n *\n * @example\n * ```ts\n * import { fromVersionedTransaction } from '@solana/compat';\n *\n * // Imagine a function that returns a legacy `VersionedTransaction`\n * const legacyVersionedTransaction = getMyLegacyVersionedTransaction();\n * const transaction = fromVersionedTransaction(legacyVersionedTransaction);\n * ```\n */\nexport function fromVersionedTransaction(transaction: VersionedTransaction): Transaction {\n const { message } = transaction;\n const staticAccountKeys = message.staticAccountKeys;\n\n const { numRequiredSignatures } = message.header;\n if (numRequiredSignatures !== transaction.signatures.length) {\n throw new SolanaError(SOLANA_ERROR__TRANSACTION__MESSAGE_SIGNATURES_MISMATCH, {\n numRequiredSignatures: transaction.message.header.numRequiredSignatures,\n signaturesLength: transaction.signatures.length,\n signerAddresses: staticAccountKeys.slice(0, numRequiredSignatures).map(p => p.toBase58()),\n });\n }\n\n const messageBytes = message.serialize() as ReadonlyUint8Array as TransactionMessageBytes;\n const signatures = convertSignatures(transaction, staticAccountKeys);\n\n return {\n messageBytes,\n signatures: Object.freeze(signatures),\n };\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/address.ts","../src/instruction.ts","../src/keypair.ts","../src/transaction.ts"],"names":[],"mappings":";;;;;AAeO,SAAS,oBAA6C,
|
|
1
|
+
{"version":3,"sources":["../src/address.ts","../src/instruction.ts","../src/keypair.ts","../src/transaction.ts"],"names":[],"mappings":"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","file":"index.browser.mjs","sourcesContent":["import { Address } from '@solana/addresses';\nimport { PublicKey } from '@solana/web3.js';\n\n/**\n * Converts a legacy [PublicKey](https://solana-foundation.github.io/solana-web3.js/classes/PublicKey.html)\n * object to an {@link Address}.\n *\n * @example\n * ```ts\n * import { fromLegacyPublicKey } from '@solana/compat';\n *\n * const legacyPublicKey = new PublicKey('49XBVQsvSW44ULKL9qufS9YqQPbdcps1TQRijx4FQ9sH');\n * const address = fromLegacyPublicKey(legacyPublicKey);\n * ```\n */\nexport function fromLegacyPublicKey<TAddress extends string>(publicKey: PublicKey): Address<TAddress> {\n return publicKey.toBase58() as Address<TAddress>;\n}\n","import { AccountRole, Instruction } from '@solana/instructions';\nimport { TransactionInstruction } from '@solana/web3.js';\n\nimport { fromLegacyPublicKey } from './address';\n\n/**\n * This can be used to convert a legacy [`TransactionInstruction`](https://solana-foundation.github.io/solana-web3.js/classes/TransactionInstruction.html)\n * object to an {@link Instruction}.\n *\n * @example\n * ```ts\n * import { fromLegacyTransactionInstruction } from '@solana/compat';\n *\n * // Imagine a function that returns a legacy `TransactionInstruction`\n * const legacyInstruction = getMyLegacyInstruction();\n * const instruction = fromLegacyTransactionInstruction(legacyInstruction);\n * ```\n */\nexport function fromLegacyTransactionInstruction(legacyInstruction: TransactionInstruction): Instruction {\n const data = legacyInstruction.data?.byteLength > 0 ? Uint8Array.from(legacyInstruction.data) : undefined;\n const accounts = legacyInstruction.keys.map(accountMeta =>\n Object.freeze({\n address: fromLegacyPublicKey(accountMeta.pubkey),\n role: determineRole(accountMeta.isSigner, accountMeta.isWritable),\n }),\n );\n const programAddress = fromLegacyPublicKey(legacyInstruction.programId);\n return Object.freeze({\n ...(accounts.length ? { accounts: Object.freeze(accounts) } : null),\n ...(data ? { data } : null),\n programAddress,\n });\n}\n\nfunction determineRole(isSigner: boolean, isWritable: boolean): AccountRole {\n if (isSigner && isWritable) return AccountRole.WRITABLE_SIGNER;\n if (isSigner) return AccountRole.READONLY_SIGNER;\n if (isWritable) return AccountRole.WRITABLE;\n return AccountRole.READONLY;\n}\n","import { createKeyPairFromBytes } from '@solana/keys';\nimport { Keypair } from '@solana/web3.js';\n\n/**\n * Converts a legacy [Keypair](https://solana-foundation.github.io/solana-web3.js/classes/Keypair.html)\n * object to a native Ed25519 {@link CryptoKeyPair} object.\n *\n * @example\n * ```ts\n * import { fromLegacyKeypair } from '@solana/compat';\n *\n * const legacyKeyPair = Keypair.generate();\n * const { privateKey, publicKey } = await fromLegacyKeypair(legacyKeyPair);\n * ```\n */\nexport async function fromLegacyKeypair(keypair: Keypair, extractable?: boolean): Promise<CryptoKeyPair> {\n const bytes = new Uint8Array(64);\n bytes.set(keypair.secretKey);\n bytes.set(keypair.publicKey.toBytes(), /* offset */ 32);\n return await createKeyPairFromBytes(bytes, extractable);\n}\n","import { ReadonlyUint8Array } from '@solana/codecs-core';\nimport { SOLANA_ERROR__TRANSACTION__MESSAGE_SIGNATURES_MISMATCH, SolanaError } from '@solana/errors';\nimport type { SignatureBytes } from '@solana/keys';\nimport { type SignaturesMap, Transaction, TransactionMessageBytes } from '@solana/transactions';\nimport type { PublicKey, VersionedTransaction } from '@solana/web3.js';\n\nfunction convertSignatures(transaction: VersionedTransaction, staticAccountKeys: PublicKey[]): SignaturesMap {\n return Object.fromEntries(\n transaction.signatures.map((sig, index) => {\n const address = staticAccountKeys[index];\n if (sig.every(b => b === 0)) {\n // all-0 signatures are stored as null\n return [address, null];\n } else {\n return [address, sig as ReadonlyUint8Array as SignatureBytes];\n }\n }),\n );\n}\n\n/**\n * This can be used to convert a legacy [VersionedTransaction](https://solana-foundation.github.io/solana-web3.js/classes/VersionedTransaction.html)\n * object to a {@link Transaction}.\n *\n * @example\n * ```ts\n * import { fromVersionedTransaction } from '@solana/compat';\n *\n * // Imagine a function that returns a legacy `VersionedTransaction`\n * const legacyVersionedTransaction = getMyLegacyVersionedTransaction();\n * const transaction = fromVersionedTransaction(legacyVersionedTransaction);\n * ```\n */\nexport function fromVersionedTransaction(transaction: VersionedTransaction): Transaction {\n const { message } = transaction;\n const staticAccountKeys = message.staticAccountKeys;\n\n const { numRequiredSignatures } = message.header;\n if (numRequiredSignatures !== transaction.signatures.length) {\n throw new SolanaError(SOLANA_ERROR__TRANSACTION__MESSAGE_SIGNATURES_MISMATCH, {\n numRequiredSignatures: transaction.message.header.numRequiredSignatures,\n signaturesLength: transaction.signatures.length,\n signerAddresses: staticAccountKeys.slice(0, numRequiredSignatures).map(p => p.toBase58()),\n });\n }\n\n const messageBytes = message.serialize() as ReadonlyUint8Array as TransactionMessageBytes;\n const signatures = convertSignatures(transaction, staticAccountKeys);\n\n return {\n messageBytes,\n signatures: Object.freeze(signatures),\n };\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/address.ts","../src/instruction.ts","../src/keypair.ts","../src/transaction.ts"],"names":[],"mappings":";;;;;AAeO,SAAS,oBAA6C,
|
|
1
|
+
{"version":3,"sources":["../src/address.ts","../src/instruction.ts","../src/keypair.ts","../src/transaction.ts"],"names":[],"mappings":";;;;;AAeO,SAAS,oBAA6C,SAAA,EAAyC;AAClG,EAAA,OAAO,UAAU,QAAA,EAAS;AAC9B;ACCO,SAAS,iCAAiC,iBAAA,EAAwD;AACrG,EAAA,MAAM,IAAA,GAAO,kBAAkB,IAAA,EAAM,UAAA,GAAa,IAAI,UAAA,CAAW,IAAA,CAAK,iBAAA,CAAkB,IAAI,CAAA,GAAI,MAAA;AAChG,EAAA,MAAM,QAAA,GAAW,kBAAkB,IAAA,CAAK,GAAA;AAAA,IAAI,CAAA,WAAA,KACxC,OAAO,MAAA,CAAO;AAAA,MACV,OAAA,EAAS,mBAAA,CAAoB,WAAA,CAAY,MAAM,CAAA;AAAA,MAC/C,IAAA,EAAM,aAAA,CAAc,WAAA,CAAY,QAAA,EAAU,YAAY,UAAU;AAAA,KACnE;AAAA,GACL;AACA,EAAA,MAAM,cAAA,GAAiB,mBAAA,CAAoB,iBAAA,CAAkB,SAAS,CAAA;AACtE,EAAA,OAAO,OAAO,MAAA,CAAO;AAAA,IACjB,GAAI,SAAS,MAAA,GAAS,EAAE,UAAU,MAAA,CAAO,MAAA,CAAO,QAAQ,CAAA,EAAE,GAAI,IAAA;AAAA,IAC9D,GAAI,IAAA,GAAO,EAAE,IAAA,EAAK,GAAI,IAAA;AAAA,IACtB;AAAA,GACH,CAAA;AACL;AAEA,SAAS,aAAA,CAAc,UAAmB,UAAA,EAAkC;AACxE,EAAA,IAAI,QAAA,IAAY,UAAA,EAAY,OAAO,WAAA,CAAY,eAAA;AAC/C,EAAA,IAAI,QAAA,SAAiB,WAAA,CAAY,eAAA;AACjC,EAAA,IAAI,UAAA,SAAmB,WAAA,CAAY,QAAA;AACnC,EAAA,OAAO,WAAA,CAAY,QAAA;AACvB;ACxBA,eAAsB,iBAAA,CAAkB,SAAkB,WAAA,EAA+C;AACrG,EAAA,MAAM,KAAA,GAAQ,IAAI,UAAA,CAAW,EAAE,CAAA;AAC/B,EAAA,KAAA,CAAM,GAAA,CAAI,QAAQ,SAAS,CAAA;AAC3B,EAAA,KAAA,CAAM,GAAA;AAAA,IAAI,OAAA,CAAQ,UAAU,OAAA,EAAQ;AAAA;AAAA,IAAgB;AAAA,GAAE;AACtD,EAAA,OAAO,MAAM,sBAAA,CAAuB,KAAA,EAAO,WAAW,CAAA;AAC1D;ACdA,SAAS,iBAAA,CAAkB,aAAmC,iBAAA,EAA+C;AACzG,EAAA,OAAO,MAAA,CAAO,WAAA;AAAA,IACV,WAAA,CAAY,UAAA,CAAW,GAAA,CAAI,CAAC,KAAK,KAAA,KAAU;AACvC,MAAA,MAAM,OAAA,GAAU,kBAAkB,KAAK,CAAA;AACvC,MAAA,IAAI,GAAA,CAAI,KAAA,CAAM,CAAA,CAAA,KAAK,CAAA,KAAM,CAAC,CAAA,EAAG;AAEzB,QAAA,OAAO,CAAC,SAAS,IAAI,CAAA;AAAA,MACzB,CAAA,MAAO;AACH,QAAA,OAAO,CAAC,SAAS,GAA2C,CAAA;AAAA,MAChE;AAAA,IACJ,CAAC;AAAA,GACL;AACJ;AAeO,SAAS,yBAAyB,WAAA,EAAgD;AACrF,EAAA,MAAM,EAAE,SAAQ,GAAI,WAAA;AACpB,EAAA,MAAM,oBAAoB,OAAA,CAAQ,iBAAA;AAElC,EAAA,MAAM,EAAE,qBAAA,EAAsB,GAAI,OAAA,CAAQ,MAAA;AAC1C,EAAA,IAAI,qBAAA,KAA0B,WAAA,CAAY,UAAA,CAAW,MAAA,EAAQ;AACzD,IAAA,MAAM,IAAI,YAAY,sDAAA,EAAwD;AAAA,MAC1E,qBAAA,EAAuB,WAAA,CAAY,OAAA,CAAQ,MAAA,CAAO,qBAAA;AAAA,MAClD,gBAAA,EAAkB,YAAY,UAAA,CAAW,MAAA;AAAA,MACzC,eAAA,EAAiB,iBAAA,CAAkB,KAAA,CAAM,CAAA,EAAG,qBAAqB,EAAE,GAAA,CAAI,CAAA,CAAA,KAAK,CAAA,CAAE,QAAA,EAAU;AAAA,KAC3F,CAAA;AAAA,EACL;AAEA,EAAA,MAAM,YAAA,GAAe,QAAQ,SAAA,EAAU;AACvC,EAAA,MAAM,UAAA,GAAa,iBAAA,CAAkB,WAAA,EAAa,iBAAiB,CAAA;AAEnE,EAAA,OAAO;AAAA,IACH,YAAA;AAAA,IACA,UAAA,EAAY,MAAA,CAAO,MAAA,CAAO,UAAU;AAAA,GACxC;AACJ","file":"index.native.mjs","sourcesContent":["import { Address } from '@solana/addresses';\nimport { PublicKey } from '@solana/web3.js';\n\n/**\n * Converts a legacy [PublicKey](https://solana-foundation.github.io/solana-web3.js/classes/PublicKey.html)\n * object to an {@link Address}.\n *\n * @example\n * ```ts\n * import { fromLegacyPublicKey } from '@solana/compat';\n *\n * const legacyPublicKey = new PublicKey('49XBVQsvSW44ULKL9qufS9YqQPbdcps1TQRijx4FQ9sH');\n * const address = fromLegacyPublicKey(legacyPublicKey);\n * ```\n */\nexport function fromLegacyPublicKey<TAddress extends string>(publicKey: PublicKey): Address<TAddress> {\n return publicKey.toBase58() as Address<TAddress>;\n}\n","import { AccountRole, Instruction } from '@solana/instructions';\nimport { TransactionInstruction } from '@solana/web3.js';\n\nimport { fromLegacyPublicKey } from './address';\n\n/**\n * This can be used to convert a legacy [`TransactionInstruction`](https://solana-foundation.github.io/solana-web3.js/classes/TransactionInstruction.html)\n * object to an {@link Instruction}.\n *\n * @example\n * ```ts\n * import { fromLegacyTransactionInstruction } from '@solana/compat';\n *\n * // Imagine a function that returns a legacy `TransactionInstruction`\n * const legacyInstruction = getMyLegacyInstruction();\n * const instruction = fromLegacyTransactionInstruction(legacyInstruction);\n * ```\n */\nexport function fromLegacyTransactionInstruction(legacyInstruction: TransactionInstruction): Instruction {\n const data = legacyInstruction.data?.byteLength > 0 ? Uint8Array.from(legacyInstruction.data) : undefined;\n const accounts = legacyInstruction.keys.map(accountMeta =>\n Object.freeze({\n address: fromLegacyPublicKey(accountMeta.pubkey),\n role: determineRole(accountMeta.isSigner, accountMeta.isWritable),\n }),\n );\n const programAddress = fromLegacyPublicKey(legacyInstruction.programId);\n return Object.freeze({\n ...(accounts.length ? { accounts: Object.freeze(accounts) } : null),\n ...(data ? { data } : null),\n programAddress,\n });\n}\n\nfunction determineRole(isSigner: boolean, isWritable: boolean): AccountRole {\n if (isSigner && isWritable) return AccountRole.WRITABLE_SIGNER;\n if (isSigner) return AccountRole.READONLY_SIGNER;\n if (isWritable) return AccountRole.WRITABLE;\n return AccountRole.READONLY;\n}\n","import { createKeyPairFromBytes } from '@solana/keys';\nimport { Keypair } from '@solana/web3.js';\n\n/**\n * Converts a legacy [Keypair](https://solana-foundation.github.io/solana-web3.js/classes/Keypair.html)\n * object to a native Ed25519 {@link CryptoKeyPair} object.\n *\n * @example\n * ```ts\n * import { fromLegacyKeypair } from '@solana/compat';\n *\n * const legacyKeyPair = Keypair.generate();\n * const { privateKey, publicKey } = await fromLegacyKeypair(legacyKeyPair);\n * ```\n */\nexport async function fromLegacyKeypair(keypair: Keypair, extractable?: boolean): Promise<CryptoKeyPair> {\n const bytes = new Uint8Array(64);\n bytes.set(keypair.secretKey);\n bytes.set(keypair.publicKey.toBytes(), /* offset */ 32);\n return await createKeyPairFromBytes(bytes, extractable);\n}\n","import { ReadonlyUint8Array } from '@solana/codecs-core';\nimport { SOLANA_ERROR__TRANSACTION__MESSAGE_SIGNATURES_MISMATCH, SolanaError } from '@solana/errors';\nimport type { SignatureBytes } from '@solana/keys';\nimport { type SignaturesMap, Transaction, TransactionMessageBytes } from '@solana/transactions';\nimport type { PublicKey, VersionedTransaction } from '@solana/web3.js';\n\nfunction convertSignatures(transaction: VersionedTransaction, staticAccountKeys: PublicKey[]): SignaturesMap {\n return Object.fromEntries(\n transaction.signatures.map((sig, index) => {\n const address = staticAccountKeys[index];\n if (sig.every(b => b === 0)) {\n // all-0 signatures are stored as null\n return [address, null];\n } else {\n return [address, sig as ReadonlyUint8Array as SignatureBytes];\n }\n }),\n );\n}\n\n/**\n * This can be used to convert a legacy [VersionedTransaction](https://solana-foundation.github.io/solana-web3.js/classes/VersionedTransaction.html)\n * object to a {@link Transaction}.\n *\n * @example\n * ```ts\n * import { fromVersionedTransaction } from '@solana/compat';\n *\n * // Imagine a function that returns a legacy `VersionedTransaction`\n * const legacyVersionedTransaction = getMyLegacyVersionedTransaction();\n * const transaction = fromVersionedTransaction(legacyVersionedTransaction);\n * ```\n */\nexport function fromVersionedTransaction(transaction: VersionedTransaction): Transaction {\n const { message } = transaction;\n const staticAccountKeys = message.staticAccountKeys;\n\n const { numRequiredSignatures } = message.header;\n if (numRequiredSignatures !== transaction.signatures.length) {\n throw new SolanaError(SOLANA_ERROR__TRANSACTION__MESSAGE_SIGNATURES_MISMATCH, {\n numRequiredSignatures: transaction.message.header.numRequiredSignatures,\n signaturesLength: transaction.signatures.length,\n signerAddresses: staticAccountKeys.slice(0, numRequiredSignatures).map(p => p.toBase58()),\n });\n }\n\n const messageBytes = message.serialize() as ReadonlyUint8Array as TransactionMessageBytes;\n const signatures = convertSignatures(transaction, staticAccountKeys);\n\n return {\n messageBytes,\n signatures: Object.freeze(signatures),\n };\n}\n"]}
|
package/dist/index.node.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/address.ts","../src/instruction.ts","../src/keypair.ts","../src/transaction.ts"],"names":["AccountRole","createKeyPairFromBytes","SolanaError","SOLANA_ERROR__TRANSACTION__MESSAGE_SIGNATURES_MISMATCH"],"mappings":";;;;;;;AAeO,SAAS,oBAA6C,
|
|
1
|
+
{"version":3,"sources":["../src/address.ts","../src/instruction.ts","../src/keypair.ts","../src/transaction.ts"],"names":["AccountRole","createKeyPairFromBytes","SolanaError","SOLANA_ERROR__TRANSACTION__MESSAGE_SIGNATURES_MISMATCH"],"mappings":"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","file":"index.node.cjs","sourcesContent":["import { Address } from '@solana/addresses';\nimport { PublicKey } from '@solana/web3.js';\n\n/**\n * Converts a legacy [PublicKey](https://solana-foundation.github.io/solana-web3.js/classes/PublicKey.html)\n * object to an {@link Address}.\n *\n * @example\n * ```ts\n * import { fromLegacyPublicKey } from '@solana/compat';\n *\n * const legacyPublicKey = new PublicKey('49XBVQsvSW44ULKL9qufS9YqQPbdcps1TQRijx4FQ9sH');\n * const address = fromLegacyPublicKey(legacyPublicKey);\n * ```\n */\nexport function fromLegacyPublicKey<TAddress extends string>(publicKey: PublicKey): Address<TAddress> {\n return publicKey.toBase58() as Address<TAddress>;\n}\n","import { AccountRole, Instruction } from '@solana/instructions';\nimport { TransactionInstruction } from '@solana/web3.js';\n\nimport { fromLegacyPublicKey } from './address';\n\n/**\n * This can be used to convert a legacy [`TransactionInstruction`](https://solana-foundation.github.io/solana-web3.js/classes/TransactionInstruction.html)\n * object to an {@link Instruction}.\n *\n * @example\n * ```ts\n * import { fromLegacyTransactionInstruction } from '@solana/compat';\n *\n * // Imagine a function that returns a legacy `TransactionInstruction`\n * const legacyInstruction = getMyLegacyInstruction();\n * const instruction = fromLegacyTransactionInstruction(legacyInstruction);\n * ```\n */\nexport function fromLegacyTransactionInstruction(legacyInstruction: TransactionInstruction): Instruction {\n const data = legacyInstruction.data?.byteLength > 0 ? Uint8Array.from(legacyInstruction.data) : undefined;\n const accounts = legacyInstruction.keys.map(accountMeta =>\n Object.freeze({\n address: fromLegacyPublicKey(accountMeta.pubkey),\n role: determineRole(accountMeta.isSigner, accountMeta.isWritable),\n }),\n );\n const programAddress = fromLegacyPublicKey(legacyInstruction.programId);\n return Object.freeze({\n ...(accounts.length ? { accounts: Object.freeze(accounts) } : null),\n ...(data ? { data } : null),\n programAddress,\n });\n}\n\nfunction determineRole(isSigner: boolean, isWritable: boolean): AccountRole {\n if (isSigner && isWritable) return AccountRole.WRITABLE_SIGNER;\n if (isSigner) return AccountRole.READONLY_SIGNER;\n if (isWritable) return AccountRole.WRITABLE;\n return AccountRole.READONLY;\n}\n","import { createKeyPairFromBytes } from '@solana/keys';\nimport { Keypair } from '@solana/web3.js';\n\n/**\n * Converts a legacy [Keypair](https://solana-foundation.github.io/solana-web3.js/classes/Keypair.html)\n * object to a native Ed25519 {@link CryptoKeyPair} object.\n *\n * @example\n * ```ts\n * import { fromLegacyKeypair } from '@solana/compat';\n *\n * const legacyKeyPair = Keypair.generate();\n * const { privateKey, publicKey } = await fromLegacyKeypair(legacyKeyPair);\n * ```\n */\nexport async function fromLegacyKeypair(keypair: Keypair, extractable?: boolean): Promise<CryptoKeyPair> {\n const bytes = new Uint8Array(64);\n bytes.set(keypair.secretKey);\n bytes.set(keypair.publicKey.toBytes(), /* offset */ 32);\n return await createKeyPairFromBytes(bytes, extractable);\n}\n","import { ReadonlyUint8Array } from '@solana/codecs-core';\nimport { SOLANA_ERROR__TRANSACTION__MESSAGE_SIGNATURES_MISMATCH, SolanaError } from '@solana/errors';\nimport type { SignatureBytes } from '@solana/keys';\nimport { type SignaturesMap, Transaction, TransactionMessageBytes } from '@solana/transactions';\nimport type { PublicKey, VersionedTransaction } from '@solana/web3.js';\n\nfunction convertSignatures(transaction: VersionedTransaction, staticAccountKeys: PublicKey[]): SignaturesMap {\n return Object.fromEntries(\n transaction.signatures.map((sig, index) => {\n const address = staticAccountKeys[index];\n if (sig.every(b => b === 0)) {\n // all-0 signatures are stored as null\n return [address, null];\n } else {\n return [address, sig as ReadonlyUint8Array as SignatureBytes];\n }\n }),\n );\n}\n\n/**\n * This can be used to convert a legacy [VersionedTransaction](https://solana-foundation.github.io/solana-web3.js/classes/VersionedTransaction.html)\n * object to a {@link Transaction}.\n *\n * @example\n * ```ts\n * import { fromVersionedTransaction } from '@solana/compat';\n *\n * // Imagine a function that returns a legacy `VersionedTransaction`\n * const legacyVersionedTransaction = getMyLegacyVersionedTransaction();\n * const transaction = fromVersionedTransaction(legacyVersionedTransaction);\n * ```\n */\nexport function fromVersionedTransaction(transaction: VersionedTransaction): Transaction {\n const { message } = transaction;\n const staticAccountKeys = message.staticAccountKeys;\n\n const { numRequiredSignatures } = message.header;\n if (numRequiredSignatures !== transaction.signatures.length) {\n throw new SolanaError(SOLANA_ERROR__TRANSACTION__MESSAGE_SIGNATURES_MISMATCH, {\n numRequiredSignatures: transaction.message.header.numRequiredSignatures,\n signaturesLength: transaction.signatures.length,\n signerAddresses: staticAccountKeys.slice(0, numRequiredSignatures).map(p => p.toBase58()),\n });\n }\n\n const messageBytes = message.serialize() as ReadonlyUint8Array as TransactionMessageBytes;\n const signatures = convertSignatures(transaction, staticAccountKeys);\n\n return {\n messageBytes,\n signatures: Object.freeze(signatures),\n };\n}\n"]}
|
package/dist/index.node.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/address.ts","../src/instruction.ts","../src/keypair.ts","../src/transaction.ts"],"names":[],"mappings":";;;;;AAeO,SAAS,oBAA6C,
|
|
1
|
+
{"version":3,"sources":["../src/address.ts","../src/instruction.ts","../src/keypair.ts","../src/transaction.ts"],"names":[],"mappings":"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","file":"index.node.mjs","sourcesContent":["import { Address } from '@solana/addresses';\nimport { PublicKey } from '@solana/web3.js';\n\n/**\n * Converts a legacy [PublicKey](https://solana-foundation.github.io/solana-web3.js/classes/PublicKey.html)\n * object to an {@link Address}.\n *\n * @example\n * ```ts\n * import { fromLegacyPublicKey } from '@solana/compat';\n *\n * const legacyPublicKey = new PublicKey('49XBVQsvSW44ULKL9qufS9YqQPbdcps1TQRijx4FQ9sH');\n * const address = fromLegacyPublicKey(legacyPublicKey);\n * ```\n */\nexport function fromLegacyPublicKey<TAddress extends string>(publicKey: PublicKey): Address<TAddress> {\n return publicKey.toBase58() as Address<TAddress>;\n}\n","import { AccountRole, Instruction } from '@solana/instructions';\nimport { TransactionInstruction } from '@solana/web3.js';\n\nimport { fromLegacyPublicKey } from './address';\n\n/**\n * This can be used to convert a legacy [`TransactionInstruction`](https://solana-foundation.github.io/solana-web3.js/classes/TransactionInstruction.html)\n * object to an {@link Instruction}.\n *\n * @example\n * ```ts\n * import { fromLegacyTransactionInstruction } from '@solana/compat';\n *\n * // Imagine a function that returns a legacy `TransactionInstruction`\n * const legacyInstruction = getMyLegacyInstruction();\n * const instruction = fromLegacyTransactionInstruction(legacyInstruction);\n * ```\n */\nexport function fromLegacyTransactionInstruction(legacyInstruction: TransactionInstruction): Instruction {\n const data = legacyInstruction.data?.byteLength > 0 ? Uint8Array.from(legacyInstruction.data) : undefined;\n const accounts = legacyInstruction.keys.map(accountMeta =>\n Object.freeze({\n address: fromLegacyPublicKey(accountMeta.pubkey),\n role: determineRole(accountMeta.isSigner, accountMeta.isWritable),\n }),\n );\n const programAddress = fromLegacyPublicKey(legacyInstruction.programId);\n return Object.freeze({\n ...(accounts.length ? { accounts: Object.freeze(accounts) } : null),\n ...(data ? { data } : null),\n programAddress,\n });\n}\n\nfunction determineRole(isSigner: boolean, isWritable: boolean): AccountRole {\n if (isSigner && isWritable) return AccountRole.WRITABLE_SIGNER;\n if (isSigner) return AccountRole.READONLY_SIGNER;\n if (isWritable) return AccountRole.WRITABLE;\n return AccountRole.READONLY;\n}\n","import { createKeyPairFromBytes } from '@solana/keys';\nimport { Keypair } from '@solana/web3.js';\n\n/**\n * Converts a legacy [Keypair](https://solana-foundation.github.io/solana-web3.js/classes/Keypair.html)\n * object to a native Ed25519 {@link CryptoKeyPair} object.\n *\n * @example\n * ```ts\n * import { fromLegacyKeypair } from '@solana/compat';\n *\n * const legacyKeyPair = Keypair.generate();\n * const { privateKey, publicKey } = await fromLegacyKeypair(legacyKeyPair);\n * ```\n */\nexport async function fromLegacyKeypair(keypair: Keypair, extractable?: boolean): Promise<CryptoKeyPair> {\n const bytes = new Uint8Array(64);\n bytes.set(keypair.secretKey);\n bytes.set(keypair.publicKey.toBytes(), /* offset */ 32);\n return await createKeyPairFromBytes(bytes, extractable);\n}\n","import { ReadonlyUint8Array } from '@solana/codecs-core';\nimport { SOLANA_ERROR__TRANSACTION__MESSAGE_SIGNATURES_MISMATCH, SolanaError } from '@solana/errors';\nimport type { SignatureBytes } from '@solana/keys';\nimport { type SignaturesMap, Transaction, TransactionMessageBytes } from '@solana/transactions';\nimport type { PublicKey, VersionedTransaction } from '@solana/web3.js';\n\nfunction convertSignatures(transaction: VersionedTransaction, staticAccountKeys: PublicKey[]): SignaturesMap {\n return Object.fromEntries(\n transaction.signatures.map((sig, index) => {\n const address = staticAccountKeys[index];\n if (sig.every(b => b === 0)) {\n // all-0 signatures are stored as null\n return [address, null];\n } else {\n return [address, sig as ReadonlyUint8Array as SignatureBytes];\n }\n }),\n );\n}\n\n/**\n * This can be used to convert a legacy [VersionedTransaction](https://solana-foundation.github.io/solana-web3.js/classes/VersionedTransaction.html)\n * object to a {@link Transaction}.\n *\n * @example\n * ```ts\n * import { fromVersionedTransaction } from '@solana/compat';\n *\n * // Imagine a function that returns a legacy `VersionedTransaction`\n * const legacyVersionedTransaction = getMyLegacyVersionedTransaction();\n * const transaction = fromVersionedTransaction(legacyVersionedTransaction);\n * ```\n */\nexport function fromVersionedTransaction(transaction: VersionedTransaction): Transaction {\n const { message } = transaction;\n const staticAccountKeys = message.staticAccountKeys;\n\n const { numRequiredSignatures } = message.header;\n if (numRequiredSignatures !== transaction.signatures.length) {\n throw new SolanaError(SOLANA_ERROR__TRANSACTION__MESSAGE_SIGNATURES_MISMATCH, {\n numRequiredSignatures: transaction.message.header.numRequiredSignatures,\n signaturesLength: transaction.signatures.length,\n signerAddresses: staticAccountKeys.slice(0, numRequiredSignatures).map(p => p.toBase58()),\n });\n }\n\n const messageBytes = message.serialize() as ReadonlyUint8Array as TransactionMessageBytes;\n const signatures = convertSignatures(transaction, staticAccountKeys);\n\n return {\n messageBytes,\n signatures: Object.freeze(signatures),\n };\n}\n"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@solana/compat",
|
|
3
|
-
"version": "5.0
|
|
3
|
+
"version": "5.1.0-canary-20251203224929",
|
|
4
4
|
"description": "Helpers for converting from legacy web3js classes",
|
|
5
5
|
"homepage": "https://www.solanakit.com/api#solanacompat",
|
|
6
6
|
"exports": {
|
|
@@ -55,12 +55,12 @@
|
|
|
55
55
|
"maintained node versions"
|
|
56
56
|
],
|
|
57
57
|
"dependencies": {
|
|
58
|
-
"@solana/
|
|
59
|
-
"@solana/
|
|
60
|
-
"@solana/errors": "5.0
|
|
61
|
-
"@solana/
|
|
62
|
-
"@solana/
|
|
63
|
-
"@solana/transactions": "5.0
|
|
58
|
+
"@solana/addresses": "5.1.0-canary-20251203224929",
|
|
59
|
+
"@solana/codecs-core": "5.1.0-canary-20251203224929",
|
|
60
|
+
"@solana/errors": "5.1.0-canary-20251203224929",
|
|
61
|
+
"@solana/keys": "5.1.0-canary-20251203224929",
|
|
62
|
+
"@solana/instructions": "5.1.0-canary-20251203224929",
|
|
63
|
+
"@solana/transactions": "5.1.0-canary-20251203224929"
|
|
64
64
|
},
|
|
65
65
|
"peerDependencies": {
|
|
66
66
|
"typescript": ">=5.3.3"
|