123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158 |
- import type { BigNumberish, BytesLike } from "../utils/index.js";
- /**
- * A SignatureLike
- *
- * @_docloc: api/crypto:Signing
- */
- export type SignatureLike = Signature | string | {
- r: string;
- s: string;
- v: BigNumberish;
- yParity?: 0 | 1;
- yParityAndS?: string;
- } | {
- r: string;
- yParityAndS: string;
- yParity?: 0 | 1;
- s?: string;
- v?: number;
- } | {
- r: string;
- s: string;
- yParity: 0 | 1;
- v?: BigNumberish;
- yParityAndS?: string;
- };
- /**
- * A Signature @TODO
- *
- *
- * @_docloc: api/crypto:Signing
- */
- export declare class Signature {
- #private;
- /**
- * The ``r`` value for a signautre.
- *
- * This represents the ``x`` coordinate of a "reference" or
- * challenge point, from which the ``y`` can be computed.
- */
- get r(): string;
- set r(value: BytesLike);
- /**
- * The ``s`` value for a signature.
- */
- get s(): string;
- set s(_value: BytesLike);
- /**
- * The ``v`` value for a signature.
- *
- * Since a given ``x`` value for ``r`` has two possible values for
- * its correspondin ``y``, the ``v`` indicates which of the two ``y``
- * values to use.
- *
- * It is normalized to the values ``27`` or ``28`` for legacy
- * purposes.
- */
- get v(): 27 | 28;
- set v(value: BigNumberish);
- /**
- * The EIP-155 ``v`` for legacy transactions. For non-legacy
- * transactions, this value is ``null``.
- */
- get networkV(): null | bigint;
- /**
- * The chain ID for EIP-155 legacy transactions. For non-legacy
- * transactions, this value is ``null``.
- */
- get legacyChainId(): null | bigint;
- /**
- * The ``yParity`` for the signature.
- *
- * See ``v`` for more details on how this value is used.
- */
- get yParity(): 0 | 1;
- /**
- * The [[link-eip-2098]] compact representation of the ``yParity``
- * and ``s`` compacted into a single ``bytes32``.
- */
- get yParityAndS(): string;
- /**
- * The [[link-eip-2098]] compact representation.
- */
- get compactSerialized(): string;
- /**
- * The serialized representation.
- */
- get serialized(): string;
- /**
- * @private
- */
- constructor(guard: any, r: string, s: string, v: 27 | 28);
- /**
- * Returns a new identical [[Signature]].
- */
- clone(): Signature;
- /**
- * Returns a representation that is compatible with ``JSON.stringify``.
- */
- toJSON(): any;
- /**
- * Compute the chain ID from the ``v`` in a legacy EIP-155 transactions.
- *
- * @example:
- * Signature.getChainId(45)
- * //_result:
- *
- * Signature.getChainId(46)
- * //_result:
- */
- static getChainId(v: BigNumberish): bigint;
- /**
- * Compute the ``v`` for a chain ID for a legacy EIP-155 transactions.
- *
- * Legacy transactions which use [[link-eip-155]] hijack the ``v``
- * property to include the chain ID.
- *
- * @example:
- * Signature.getChainIdV(5, 27)
- * //_result:
- *
- * Signature.getChainIdV(5, 28)
- * //_result:
- *
- */
- static getChainIdV(chainId: BigNumberish, v: 27 | 28): bigint;
- /**
- * Compute the normalized legacy transaction ``v`` from a ``yParirty``,
- * a legacy transaction ``v`` or a legacy [[link-eip-155]] transaction.
- *
- * @example:
- * // The values 0 and 1 imply v is actually yParity
- * Signature.getNormalizedV(0)
- * //_result:
- *
- * // Legacy non-EIP-1559 transaction (i.e. 27 or 28)
- * Signature.getNormalizedV(27)
- * //_result:
- *
- * // Legacy EIP-155 transaction (i.e. >= 35)
- * Signature.getNormalizedV(46)
- * //_result:
- *
- * // Invalid values throw
- * Signature.getNormalizedV(5)
- * //_error:
- */
- static getNormalizedV(v: BigNumberish): 27 | 28;
- /**
- * Creates a new [[Signature]].
- *
- * If no %%sig%% is provided, a new [[Signature]] is created
- * with default values.
- *
- * If %%sig%% is a string, it is parsed.
- */
- static from(sig?: SignatureLike): Signature;
- }
- //# sourceMappingURL=signature.d.ts.map
|