UNPKG

o1js

Version:

TypeScript framework for zk-SNARKs and zkApps

101 lines (100 loc) 3.64 kB
import { Binable } from '../../bindings/lib/binable.js'; import { PublicKey, Scalar } from './curve-bigint.js'; import { Field } from './field-bigint.js'; import { Signature, SignatureJson } from './signature.js'; import { NetworkId, SignedRosetta } from './types.js'; import * as Json from './types.js'; export { publicKeyToHex, signatureFromHex, signatureJsonFromHex, signatureToHex, signatureJsonToHex, fieldFromHex, fieldToHex, rosettaTransactionToSignedCommand, signTransaction, verifyTransaction, rosettaCombineSignature, rosettaCombinePayload, UnsignedPayload, UnsignedTransaction, SignedTransaction, }; declare function publicKeyToHex(publicKey: PublicKey): string; declare function signatureFromHex(signatureHex: string): Signature; declare function signatureJsonFromHex(signatureHex: string): SignatureJson; declare function signatureJsonToHex(signatureJson: SignatureJson): string; declare function signatureToHex(signature: Signature): string; declare function fieldToHex<T extends Field | Scalar>(binable: Binable<T>, x: T, paddingBit?: boolean): string; declare function fieldFromHex<T extends Field | Scalar>(binable: Binable<T>, hex: string): [T, boolean]; declare function signTransaction(transaction: UnsignedTransaction, privateKey: string, network: NetworkId): SignedRosetta<UnsignedTransaction>; declare function verifyTransaction(signedTransaction: SignedRosetta<UnsignedTransaction>, network: NetworkId): boolean; declare function rosettaCombineSignature(signature: SignedRosetta<UnsignedTransaction>, signingPayload: unknown): RosettaSignature; declare function rosettaCombinePayload(unsignedPayload: UnsignedPayload, privateKey: Json.PrivateKey, network: NetworkId): { network_identifier: { blockchain: string; network: NetworkId; }; unsigned_transaction: string; signatures: RosettaSignature[]; }; declare function rosettaTransactionToSignedCommand({ signature, payment, stake_delegation, }: SignedTransaction): { signature: string; signer: string; payload: { common: { fee: string; fee_payer_pk: string; nonce: string; valid_until: string | null; memo: string; }; body: (string | { source_pk: string; receiver_pk: string; amount: string; })[]; } | { common: { fee: string; fee_payer_pk: string; nonce: string; valid_until: string | null; memo: string; }; body: (string | (string | { delegator: string; new_delegate: string; })[])[]; }; }; type UnsignedPayload = { unsigned_transaction: string; payloads: unknown[]; }; type UnsignedTransaction = { randomOracleInput: string; signerInput: { prefix: string[]; suffix: string[]; }; payment: Payment | null; stakeDelegation: StakeDelegation | null; }; type SignedTransaction = { signature: string; payment: Payment | null; stake_delegation: StakeDelegation | null; }; type RosettaSignature = { hex_bytes: string; public_key: { hex_bytes: string; curve_type: string; }; signature_type: string; signing_payload: unknown; }; type Payment = { to: string; from: string; fee: string; token: string; nonce: string; memo: string | null; amount: string; valid_until: string | null; }; type StakeDelegation = { delegator: string; new_delegate: string; fee: string; nonce: string; memo: string | null; valid_until: string | null; };