PHP WebShell
Текущая директория: /usr/lib/node_modules/bitgo/node_modules/@near-js/signers/lib/commonjs
Просмотр файла: in_memory_signer.cjs
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.InMemorySigner = void 0;
const crypto_1 = require("@near-js/crypto");
const keystores_1 = require("@near-js/keystores");
const sha256_1 = require("@noble/hashes/sha256");
const signer_1 = require("./signer.cjs");
/**
* Signs using in memory key store.
*/
class InMemorySigner extends signer_1.Signer {
keyStore;
constructor(keyStore) {
super();
this.keyStore = keyStore;
}
/**
* Creates a single account Signer instance with account, network and keyPair provided.
*
* Intended to be useful for temporary keys (e.g. claiming a Linkdrop).
*
* @param networkId The targeted network. (ex. default, betanet, etc…)
* @param accountId The NEAR account to assign the key pair to
* @param keyPair The keyPair to use for signing
*/
static async fromKeyPair(networkId, accountId, keyPair) {
const keyStore = new keystores_1.InMemoryKeyStore();
await keyStore.setKey(networkId, accountId, keyPair);
return new InMemorySigner(keyStore);
}
/**
* Creates a public key for the account given
* @param accountId The NEAR account to assign a public key to
* @param networkId The targeted network. (ex. default, betanet, etc…)
* @returns {Promise<PublicKey>}
*/
async createKey(accountId, networkId, keyType) {
const keyPair = keyType === crypto_1.KeyType.SECP256K1 ? crypto_1.KeyPair.fromRandom('secp256k1') : crypto_1.KeyPair.fromRandom('ed25519');
await this.keyStore.setKey(networkId, accountId, keyPair);
return keyPair.getPublicKey();
}
/**
* Gets the existing public key for a given account
* @param accountId The NEAR account to assign a public key to
* @param networkId The targeted network. (ex. default, betanet, etc…)
* @returns {Promise<PublicKey>} Returns the public key or null if not found
*/
async getPublicKey(accountId, networkId) {
const keyPair = await this.keyStore.getKey(networkId, accountId);
if (keyPair === null) {
return null;
}
return keyPair.getPublicKey();
}
/**
* @param message A message to be signed, typically a serialized transaction
* @param accountId the NEAR account signing the message
* @param networkId The targeted network. (ex. default, betanet, etc…)
* @returns {Promise<Signature>}
*/
async signMessage(message, accountId, networkId) {
const hash = new Uint8Array((0, sha256_1.sha256)(message));
if (!accountId) {
throw new Error('InMemorySigner requires provided account id');
}
const keyPair = await this.keyStore.getKey(networkId, accountId);
if (keyPair === null) {
throw new Error(`Key for ${accountId} not found in ${networkId}`);
}
return keyPair.sign(hash);
}
toString() {
return `InMemorySigner(${this.keyStore})`;
}
}
exports.InMemorySigner = InMemorySigner;
Выполнить команду
Для локальной разработки. Не используйте в интернете!