PHP WebShell
Текущая директория: /opt/BitGoJS/node_modules/avalanche/src/apis/evm
Просмотр файла: basetx.ts
/**
* @packageDocumentation
* @module API-EVM-BaseTx
*/
import { Buffer } from "buffer/"
import BinTools from "../../utils/bintools"
import { KeyChain, KeyPair } from "./keychain"
import { EVMStandardBaseTx } from "../../common/evmtx"
import { Credential } from "../../common/credentials"
import { DefaultNetworkID } from "../../utils/constants"
import { SelectTxClass } from "./tx"
import { SerializedEncoding } from "../../utils/serialization"
/**
* @ignore
*/
const bintools: BinTools = BinTools.getInstance()
/**
* Class representing a base for all transactions.
*/
export class EVMBaseTx extends EVMStandardBaseTx<KeyPair, KeyChain> {
protected _typeName = "BaseTx"
protected _typeID = undefined
//serialize is inherited
deserialize(fields: object, encoding: SerializedEncoding = "hex") {
super.deserialize(fields, encoding)
}
/**
* Returns the id of the [[BaseTx]]
*/
getTxType(): number {
return this._typeID
}
/**
* Takes a {@link https://github.com/feross/buffer|Buffer} containing an [[BaseTx]], parses it, populates the class, and returns the length of the BaseTx in bytes.
*
* @param bytes A {@link https://github.com/feross/buffer|Buffer} containing a raw [[BaseTx]]
*
* @returns The length of the raw [[BaseTx]]
*
* @remarks assume not-checksummed
*/
fromBuffer(bytes: Buffer, offset: number = 0): number {
this.networkID = bintools.copyFrom(bytes, offset, offset + 4)
offset += 4
this.blockchainID = bintools.copyFrom(bytes, offset, offset + 32)
offset += 32
return offset
}
/**
* Takes the bytes of an [[UnsignedTx]] and returns an array of [[Credential]]s
*
* @param msg A Buffer for the [[UnsignedTx]]
* @param kc An [[KeyChain]] used in signing
*
* @returns An array of [[Credential]]s
*/
sign(msg: Buffer, kc: KeyChain): Credential[] {
const creds: Credential[] = []
return creds
}
clone(): this {
const newEVMBaseTx: EVMBaseTx = new EVMBaseTx()
newEVMBaseTx.fromBuffer(this.toBuffer())
return newEVMBaseTx as this
}
create(...args: any[]): this {
return new EVMBaseTx(...args) as this
}
select(id: number, ...args: any[]): this {
const newEVMBaseTx: EVMBaseTx = SelectTxClass(id, ...args)
return newEVMBaseTx as this
}
/**
* Class representing an EVMBaseTx which is the foundation for all EVM transactions.
*
* @param networkID Optional networkID, [[DefaultNetworkID]]
* @param blockchainID Optional blockchainID, default Buffer.alloc(32, 16)
*/
constructor(
networkID: number = DefaultNetworkID,
blockchainID: Buffer = Buffer.alloc(32, 16)
) {
super(networkID, blockchainID)
}
}
Выполнить команду
Для локальной разработки. Не используйте в интернете!