Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

@solana/signers

Package Overview
Dependencies
Maintainers
15
Versions
1002
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@solana/signers - npm Package Compare versions

Comparing version 2.0.0-experimental.8e39a42 to 2.0.0-experimental.900b946

dist/types/fee-payer-signer.d.ts

30

dist/index.browser.js
import { isSignerRole } from '@solana/instructions';
import { getUnsignedTransaction, assertTransactionIsFullySigned, partiallySignTransaction } from '@solana/transactions';
import { getAddressFromPublicKey, isAddress } from '@solana/addresses';
import { generateKeyPair, signBytes } from '@solana/keys';
import { assertTransactionIsFullySigned, partiallySignTransaction } from '@solana/transactions';
import { generateKeyPair, createKeyPairFromBytes, signBytes } from '@solana/keys';

@@ -28,3 +28,6 @@ // src/deduplicate-signers.ts

function getSignersFromTransaction(transaction) {
return deduplicateSigners(transaction.instructions.flatMap(getSignersFromInstruction));
return deduplicateSigners([
...transaction.feePayerSigner ? [transaction.feePayerSigner] : [],
...transaction.instructions.flatMap(getSignersFromInstruction)
]);
}

@@ -56,2 +59,18 @@ function addSignersToInstruction(signers, instruction) {

}
function setTransactionFeePayerSigner(feePayerSigner, transaction) {
if ("feePayer" in transaction && feePayerSigner.address === transaction.feePayer) {
if ("feePayerSigner" in transaction)
return transaction;
const out2 = { ...transaction, feePayerSigner };
Object.freeze(out2);
return out2;
}
const out = {
...getUnsignedTransaction(transaction),
feePayer: feePayerSigner.address,
feePayerSigner
};
Object.freeze(out);
return out;
}

@@ -109,2 +128,5 @@ // src/message-partial-signer.ts

}
async function createKeyPairSignerFromBytes(bytes, extractable) {
return createSignerFromKeyPair(await createKeyPairFromBytes(bytes, extractable));
}
function isMessageModifyingSigner(value) {

@@ -298,4 +320,4 @@ return isAddress(value.address) && "modifyAndSignMessages" in value && typeof value.modifyAndSignMessages === "function";

export { addSignersToInstruction, addSignersToTransaction, assertIsKeyPairSigner, assertIsMessageModifyingSigner, assertIsMessagePartialSigner, assertIsMessageSigner, assertIsTransactionModifyingSigner, assertIsTransactionPartialSigner, assertIsTransactionSendingSigner, assertIsTransactionSigner, assertIsTransactionWithSingleSendingSigner, createNoopSigner, createSignableMessage, createSignerFromKeyPair, generateKeyPairSigner, getSignersFromInstruction, getSignersFromTransaction, isKeyPairSigner, isMessageModifyingSigner, isMessagePartialSigner, isMessageSigner, isTransactionModifyingSigner, isTransactionPartialSigner, isTransactionSendingSigner, isTransactionSigner, isTransactionWithSingleSendingSigner, partiallySignTransactionWithSigners, signAndSendTransactionWithSigners, signTransactionWithSigners };
export { addSignersToInstruction, addSignersToTransaction, assertIsKeyPairSigner, assertIsMessageModifyingSigner, assertIsMessagePartialSigner, assertIsMessageSigner, assertIsTransactionModifyingSigner, assertIsTransactionPartialSigner, assertIsTransactionSendingSigner, assertIsTransactionSigner, assertIsTransactionWithSingleSendingSigner, createKeyPairSignerFromBytes, createNoopSigner, createSignableMessage, createSignerFromKeyPair, generateKeyPairSigner, getSignersFromInstruction, getSignersFromTransaction, isKeyPairSigner, isMessageModifyingSigner, isMessagePartialSigner, isMessageSigner, isTransactionModifyingSigner, isTransactionPartialSigner, isTransactionSendingSigner, isTransactionSigner, isTransactionWithSingleSendingSigner, partiallySignTransactionWithSigners, setTransactionFeePayerSigner, signAndSendTransactionWithSigners, signTransactionWithSigners };
//# sourceMappingURL=out.js.map
//# sourceMappingURL=index.browser.js.map
import { isSignerRole } from '@solana/instructions';
import { getUnsignedTransaction, assertTransactionIsFullySigned, partiallySignTransaction } from '@solana/transactions';
import { getAddressFromPublicKey, isAddress } from '@solana/addresses';
import { generateKeyPair, signBytes } from '@solana/keys';
import { assertTransactionIsFullySigned, partiallySignTransaction } from '@solana/transactions';
import { generateKeyPair, createKeyPairFromBytes, signBytes } from '@solana/keys';

@@ -28,3 +28,6 @@ // src/deduplicate-signers.ts

function getSignersFromTransaction(transaction) {
return deduplicateSigners(transaction.instructions.flatMap(getSignersFromInstruction));
return deduplicateSigners([
...transaction.feePayerSigner ? [transaction.feePayerSigner] : [],
...transaction.instructions.flatMap(getSignersFromInstruction)
]);
}

@@ -56,2 +59,18 @@ function addSignersToInstruction(signers, instruction) {

}
function setTransactionFeePayerSigner(feePayerSigner, transaction) {
if ("feePayer" in transaction && feePayerSigner.address === transaction.feePayer) {
if ("feePayerSigner" in transaction)
return transaction;
const out2 = { ...transaction, feePayerSigner };
Object.freeze(out2);
return out2;
}
const out = {
...getUnsignedTransaction(transaction),
feePayer: feePayerSigner.address,
feePayerSigner
};
Object.freeze(out);
return out;
}

@@ -109,2 +128,5 @@ // src/message-partial-signer.ts

}
async function createKeyPairSignerFromBytes(bytes, extractable) {
return createSignerFromKeyPair(await createKeyPairFromBytes(bytes, extractable));
}
function isMessageModifyingSigner(value) {

@@ -298,4 +320,4 @@ return isAddress(value.address) && "modifyAndSignMessages" in value && typeof value.modifyAndSignMessages === "function";

export { addSignersToInstruction, addSignersToTransaction, assertIsKeyPairSigner, assertIsMessageModifyingSigner, assertIsMessagePartialSigner, assertIsMessageSigner, assertIsTransactionModifyingSigner, assertIsTransactionPartialSigner, assertIsTransactionSendingSigner, assertIsTransactionSigner, assertIsTransactionWithSingleSendingSigner, createNoopSigner, createSignableMessage, createSignerFromKeyPair, generateKeyPairSigner, getSignersFromInstruction, getSignersFromTransaction, isKeyPairSigner, isMessageModifyingSigner, isMessagePartialSigner, isMessageSigner, isTransactionModifyingSigner, isTransactionPartialSigner, isTransactionSendingSigner, isTransactionSigner, isTransactionWithSingleSendingSigner, partiallySignTransactionWithSigners, signAndSendTransactionWithSigners, signTransactionWithSigners };
export { addSignersToInstruction, addSignersToTransaction, assertIsKeyPairSigner, assertIsMessageModifyingSigner, assertIsMessagePartialSigner, assertIsMessageSigner, assertIsTransactionModifyingSigner, assertIsTransactionPartialSigner, assertIsTransactionSendingSigner, assertIsTransactionSigner, assertIsTransactionWithSingleSendingSigner, createKeyPairSignerFromBytes, createNoopSigner, createSignableMessage, createSignerFromKeyPair, generateKeyPairSigner, getSignersFromInstruction, getSignersFromTransaction, isKeyPairSigner, isMessageModifyingSigner, isMessagePartialSigner, isMessageSigner, isTransactionModifyingSigner, isTransactionPartialSigner, isTransactionSendingSigner, isTransactionSigner, isTransactionWithSingleSendingSigner, partiallySignTransactionWithSigners, setTransactionFeePayerSigner, signAndSendTransactionWithSigners, signTransactionWithSigners };
//# sourceMappingURL=out.js.map
//# sourceMappingURL=index.native.js.map
import { isSignerRole } from '@solana/instructions';
import { getUnsignedTransaction, assertTransactionIsFullySigned, partiallySignTransaction } from '@solana/transactions';
import { getAddressFromPublicKey, isAddress } from '@solana/addresses';
import { generateKeyPair, signBytes } from '@solana/keys';
import { assertTransactionIsFullySigned, partiallySignTransaction } from '@solana/transactions';
import { generateKeyPair, createKeyPairFromBytes, signBytes } from '@solana/keys';

@@ -28,3 +28,6 @@ // src/deduplicate-signers.ts

function getSignersFromTransaction(transaction) {
return deduplicateSigners(transaction.instructions.flatMap(getSignersFromInstruction));
return deduplicateSigners([
...transaction.feePayerSigner ? [transaction.feePayerSigner] : [],
...transaction.instructions.flatMap(getSignersFromInstruction)
]);
}

@@ -56,2 +59,18 @@ function addSignersToInstruction(signers, instruction) {

}
function setTransactionFeePayerSigner(feePayerSigner, transaction) {
if ("feePayer" in transaction && feePayerSigner.address === transaction.feePayer) {
if ("feePayerSigner" in transaction)
return transaction;
const out2 = { ...transaction, feePayerSigner };
Object.freeze(out2);
return out2;
}
const out = {
...getUnsignedTransaction(transaction),
feePayer: feePayerSigner.address,
feePayerSigner
};
Object.freeze(out);
return out;
}

@@ -109,2 +128,5 @@ // src/message-partial-signer.ts

}
async function createKeyPairSignerFromBytes(bytes, extractable) {
return createSignerFromKeyPair(await createKeyPairFromBytes(bytes, extractable));
}
function isMessageModifyingSigner(value) {

@@ -298,4 +320,4 @@ return isAddress(value.address) && "modifyAndSignMessages" in value && typeof value.modifyAndSignMessages === "function";

export { addSignersToInstruction, addSignersToTransaction, assertIsKeyPairSigner, assertIsMessageModifyingSigner, assertIsMessagePartialSigner, assertIsMessageSigner, assertIsTransactionModifyingSigner, assertIsTransactionPartialSigner, assertIsTransactionSendingSigner, assertIsTransactionSigner, assertIsTransactionWithSingleSendingSigner, createNoopSigner, createSignableMessage, createSignerFromKeyPair, generateKeyPairSigner, getSignersFromInstruction, getSignersFromTransaction, isKeyPairSigner, isMessageModifyingSigner, isMessagePartialSigner, isMessageSigner, isTransactionModifyingSigner, isTransactionPartialSigner, isTransactionSendingSigner, isTransactionSigner, isTransactionWithSingleSendingSigner, partiallySignTransactionWithSigners, signAndSendTransactionWithSigners, signTransactionWithSigners };
export { addSignersToInstruction, addSignersToTransaction, assertIsKeyPairSigner, assertIsMessageModifyingSigner, assertIsMessagePartialSigner, assertIsMessageSigner, assertIsTransactionModifyingSigner, assertIsTransactionPartialSigner, assertIsTransactionSendingSigner, assertIsTransactionSigner, assertIsTransactionWithSingleSendingSigner, createKeyPairSignerFromBytes, createNoopSigner, createSignableMessage, createSignerFromKeyPair, generateKeyPairSigner, getSignersFromInstruction, getSignersFromTransaction, isKeyPairSigner, isMessageModifyingSigner, isMessagePartialSigner, isMessageSigner, isTransactionModifyingSigner, isTransactionPartialSigner, isTransactionSendingSigner, isTransactionSigner, isTransactionWithSingleSendingSigner, partiallySignTransactionWithSigners, setTransactionFeePayerSigner, signAndSendTransactionWithSigners, signTransactionWithSigners };
//# sourceMappingURL=out.js.map
//# sourceMappingURL=index.node.js.map

10

dist/types/account-signer-meta.d.ts

@@ -5,11 +5,13 @@ import { AccountRole, IAccountLookupMeta, IAccountMeta, IInstruction } from '@solana/instructions';

/** An extension of the IAccountMeta type that keeps track of its transaction signer. */
export interface IAccountSignerMeta<TAddress extends string = string, TSigner extends TransactionSigner = TransactionSigner> extends IAccountMeta<TAddress> {
export interface IAccountSignerMeta<TAddress extends string = string, TSigner extends TransactionSigner<TAddress> = TransactionSigner<TAddress>> extends IAccountMeta<TAddress> {
readonly role: AccountRole.READONLY_SIGNER | AccountRole.WRITABLE_SIGNER;
readonly signer: TSigner;
}
type IAccountMetaWithWithSigner<TSigner extends TransactionSigner = TransactionSigner> = IAccountMeta | IAccountLookupMeta | IAccountSignerMeta<string, TSigner>;
type IAccountMetaWithSigner<TSigner extends TransactionSigner = TransactionSigner> = IAccountMeta | IAccountLookupMeta | IAccountSignerMeta<string, TSigner>;
/** A variation of the instruction type that allows IAccountSignerMeta in its account metas. */
export type IInstructionWithSigners<TSigner extends TransactionSigner = TransactionSigner, TAccounts extends readonly IAccountMetaWithWithSigner<TSigner>[] = readonly IAccountMetaWithWithSigner<TSigner>[]> = Pick<IInstruction<string, TAccounts>, 'accounts'>;
export type IInstructionWithSigners<TSigner extends TransactionSigner = TransactionSigner, TAccounts extends readonly IAccountMetaWithSigner<TSigner>[] = readonly IAccountMetaWithSigner<TSigner>[]> = Pick<IInstruction<string, TAccounts>, 'accounts'>;
/** A variation of the transaction type that allows IAccountSignerMeta in its account metas. */
export type ITransactionWithSigners<TSigner extends TransactionSigner = TransactionSigner, TAccounts extends readonly IAccountMetaWithWithSigner<TSigner>[] = readonly IAccountMetaWithWithSigner<TSigner>[]> = Pick<BaseTransaction<TransactionVersion, IInstruction & IInstructionWithSigners<TSigner, TAccounts>>, 'instructions'>;
export type ITransactionWithSigners<TSigner extends TransactionSigner = TransactionSigner, TAccounts extends readonly IAccountMetaWithSigner<TSigner>[] = readonly IAccountMetaWithSigner<TSigner>[]> = Pick<BaseTransaction<TransactionVersion, IInstruction & IInstructionWithSigners<TSigner, TAccounts>>, 'instructions'> & {
feePayerSigner?: TSigner;
};
/** Extract all signers from an instruction that may contain IAccountSignerMeta accounts. */

@@ -16,0 +18,0 @@ export declare function getSignersFromInstruction<TSigner extends TransactionSigner = TransactionSigner>(instruction: IInstructionWithSigners<TSigner>): readonly TSigner[];

export * from './account-signer-meta.js';
export * from './add-signers.js';
export * from './fee-payer-signer.js';
export * from './keypair-signer.js';

@@ -4,0 +5,0 @@ export * from './message-modifying-signer.js';

@@ -22,2 +22,4 @@ import { Address } from '@solana/addresses';

export declare function generateKeyPairSigner(): Promise<KeyPairSigner>;
/** Creates a signer capable of signing messages and transactions using the 64 bytes of a KeyPair. */
export declare function createKeyPairSignerFromBytes(bytes: Uint8Array, extractable?: boolean): Promise<KeyPairSigner>;
//# sourceMappingURL=keypair-signer.d.ts.map
{
"name": "@solana/signers",
"version": "2.0.0-experimental.8e39a42",
"version": "2.0.0-experimental.900b946",
"description": "An abstraction layer over signing messages and transactions in Solana",

@@ -52,33 +52,8 @@ "exports": {

"dependencies": {
"@solana/addresses": "2.0.0-experimental.8e39a42",
"@solana/errors": "2.0.0-experimental.8e39a42",
"@solana/instructions": "2.0.0-experimental.8e39a42",
"@solana/keys": "2.0.0-experimental.8e39a42",
"@solana/transactions": "2.0.0-experimental.8e39a42"
"@solana/addresses": "2.0.0-experimental.900b946",
"@solana/errors": "2.0.0-experimental.900b946",
"@solana/instructions": "2.0.0-experimental.900b946",
"@solana/keys": "2.0.0-experimental.900b946",
"@solana/transactions": "2.0.0-experimental.900b946"
},
"devDependencies": {
"@solana/eslint-config-solana": "^1.0.2",
"@swc/jest": "^0.2.29",
"@types/jest": "^29.5.11",
"@typescript-eslint/eslint-plugin": "^6.13.2",
"@typescript-eslint/parser": "^6.3.0",
"agadoo": "^3.0.0",
"eslint": "^8.45.0",
"eslint-plugin-jest": "^27.4.2",
"eslint-plugin-sort-keys-fix": "^1.1.2",
"jest": "^29.7.0",
"jest-environment-jsdom": "^29.7.0",
"jest-runner-eslint": "^2.1.2",
"jest-runner-prettier": "^1.0.0",
"prettier": "^3.1",
"tsup": "^8.0.1",
"typescript": "^5.2.2",
"version-from-git": "^1.1.1",
"@solana/rpc-types": "2.0.0-experimental.8e39a42",
"build-scripts": "0.0.0",
"test-config": "0.0.0",
"test-matchers": "0.0.0",
"text-encoding-impl": "0.0.0",
"tsconfig": "0.0.0"
},
"bundlewatch": {

@@ -94,8 +69,8 @@ "defaultCompression": "gzip",

"compile:js": "tsup --config build-scripts/tsup.config.package.ts",
"compile:typedefs": "tsc -p ./tsconfig.declarations.json && node node_modules/build-scripts/add-js-extension-to-types.mjs",
"dev": "jest -c node_modules/test-config/jest-dev.config.ts --rootDir . --watch",
"publish-packages": "pnpm publish --tag experimental --access public --no-git-checks",
"style:fix": "pnpm eslint --fix src/* && pnpm prettier -w src/*",
"test:lint": "jest -c node_modules/test-config/jest-lint.config.ts --rootDir . --silent",
"test:prettier": "jest -c node_modules/test-config/jest-prettier.config.ts --rootDir . --silent",
"compile:typedefs": "tsc -p ./tsconfig.declarations.json && node node_modules/@solana/build-scripts/add-js-extension-to-types.mjs",
"dev": "jest -c node_modules/@solana/test-config/jest-dev.config.ts --rootDir . --watch",
"publish-packages": "npm view $npm_package_name@$npm_package_version > /dev/null 2>&1 || pnpm publish --tag experimental --access public --no-git-checks",
"style:fix": "pnpm eslint --fix src/* && pnpm prettier -w src/* package.json",
"test:lint": "jest -c node_modules/@solana/test-config/jest-lint.config.ts --rootDir . --silent",
"test:prettier": "jest -c node_modules/@solana/test-config/jest-prettier.config.ts --rootDir . --silent",
"test:treeshakability:browser": "agadoo dist/index.browser.js",

@@ -105,5 +80,5 @@ "test:treeshakability:native": "agadoo dist/index.native.js",

"test:typecheck": "tsc --noEmit",
"test:unit:browser": "jest -c node_modules/test-config/jest-unit.config.browser.ts --rootDir . --silent",
"test:unit:node": "jest -c node_modules/test-config/jest-unit.config.node.ts --rootDir . --silent"
"test:unit:browser": "jest -c node_modules/@solana/test-config/jest-unit.config.browser.ts --rootDir . --silent",
"test:unit:node": "jest -c node_modules/@solana/test-config/jest-unit.config.node.ts --rootDir . --silent"
}
}

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc