Documentation

LegacyTransaction extends Transaction
in package

LegacyTransaction is a class for handling Ethereum legacy transactions (pre EIP1559), with pre EIP155 or post EIP155 support

Tags
author

DubbaThony

Table of Contents

Properties

$chainId  : int|null
$dataBin  : string
$gas  : int
$gasPrice  : OOGmp
$nonce  : int
$r  : OOGmp
$s  : OOGmp
$signed  : bool
$to  : Address|null
$v  : OOGmp
$value  : OOGmp

Methods

__construct()  : mixed
calculateV()  : OOGmp
Calculates the recovery id (v) for signature accounting for EIP155 (replay protection).
dataBin()  : string
Gets the binary data payload of the transaction.
dataHex()  : string
Gets the transaction data in hex format.
decodeBin()  : static
Decodes a binary RLP-encoded transaction. Accepts both legacy formatting and typed transaction.
decodeHex()  : static
Decodes a hexadecimal RLP-encoded transaction. Accepts both legacy formatting and typed transaction.
deployAddress()  : Address
Gets the address where the contract will be deployed if it's deploy transaction. If it is not deploy transaction, it will return null address - Address::NULL()
ecRecover()  : Address
Recovers the sender address from the transaction signature.
encodeBin()  : string
Encodes the transaction into a binary blob.
encodeBinForSigning()  : string
Encodes the transaction for signing purposes (which differs from encoding for storage or transfer. Difference is for example missing fields).
encodeHex()  : string
Encodes the transaction into a hexadecimal string.
encodeHexForSigning()  : string
Encodes the transaction into a hexadecimal string for signing purposes (which differs from encoding for storage or transfer. Difference is for example missing fields).
fromBin()  : static
Alias function for decodeBin()
fromHex()  : static
Alias function for decodeHex()
fromRPCArr()  : static
Creates a transaction from an RPC array.
gasLimit()  : int
Gets the gas limit of the transaction.
getSigningHash()  : Hash
Calculates the hash used for signing the transaction.
hash()  : Hash
Calculates the transaction hash.
isReplayProtected()  : bool
Checks if the transaction is replay-protected (post EIP155).
isSigned()  : bool
Checks if the transaction is signed.
nonce()  : int
Gets the nonce of the transaction.
nonceFromRPC()  : Transaction
Convenience function that fetches nonce from RPC and places it into transaction.
r()  : OOGmp
Gets the ECDSA 'r' value of the signature.
s()  : OOGmp
Gets the ECDSA 's' value of the signature.
setDataBin()  : static
Sets the data payload for the transaction using binary blob.
setDataHex()  : static
Sets the data for the transaction using a hex string.
setGasLimit()  : static
Sets the gas limit for the transaction.
setGasPrice()  : static
Sets the gas price for the transaction.
setNonce()  : static
Sets the nonce for the transaction.
setSignature()  : static
Sets the signature. Note that there is no guarantee the signature will work correctly.
setTo()  : static
Sets the recipient address for the transaction. If it's null, the transaction is contract deploy transaction.
setValue()  : static
Sets the value for the transaction.
setValueFmt()  : static
Sets the value for the transaction using WeiFormatter. Accepts "human" input.
sign()  : static
Signs the transaction.
signature()  : Signature
Gets the signature in wrapper object.
to()  : Address|null
Gets the recipient address of the transaction, null if it's deploy transaction.
toBin()  : string
Alias function for encodeBin()
toHex()  : string
Alias function for encodeHex()
totalGasPrice()  : OOGmp
Gets the total gas price for the transaction.
transactionType()  : TransactionType
Returns the type of the transaction, which is always LEGACY.
useRpcEstimates()  : static
Estimates gas and fee values using from RPC, trying to use conservative values.
useRpcEstimatesWithBump()  : static
Uses RPC to estimate gas and fee, then sets them with an optional bump.
v()  : OOGmp
Gets the ECDSA 'v' value of the signature.
value()  : OOGmp
Gets the value of the transaction.
valueFmt()  : string
Gets the value of the transaction and formats it with WeiFormatter, proxying params to it.
blanksFromRPCArr()  : void
setGasPriceOrBaseFee()  : static
setInnerFromRLPValues()  : void
internalEncodeBin()  : string

Properties

Methods

calculateV()

Calculates the recovery id (v) for signature accounting for EIP155 (replay protection).

public calculateV(OOGmp $recovery) : OOGmp
Parameters
$recovery : OOGmp

Recovery id before chain id calculations.

Return values
OOGmp

Final recovery id.

dataBin()

Gets the binary data payload of the transaction.

public dataBin() : string
Return values
string

The binary data.

dataHex()

Gets the transaction data in hex format.

public dataHex() : string
Return values
string

Data in hex.

decodeBin()

Decodes a binary RLP-encoded transaction. Accepts both legacy formatting and typed transaction.

public static decodeBin(string $rlp) : static
Parameters
$rlp : string

The RLP-encoded transaction as a binary string.

Tags
throws
BadAddressChecksumException
throws
EthBinderLogicException
throws
EthBinderRuntimeException
throws
InvalidHexException
throws
InvalidHexLengthException
throws
NotSupportedException
Return values
static

The decoded Transaction object.

decodeHex()

Decodes a hexadecimal RLP-encoded transaction. Accepts both legacy formatting and typed transaction.

public static decodeHex(string $rlp) : static
Parameters
$rlp : string

The RLP-encoded transaction as a hexadecimal string.

Tags
throws
BadAddressChecksumException
throws
EthBinderLogicException
throws
EthBinderRuntimeException
throws
InvalidHexException
throws
InvalidHexLengthException
throws
NotSupportedException
Return values
static

The decoded Transaction object.

encodeBin()

Encodes the transaction into a binary blob.

public encodeBin() : string
Return values
string

Binary blob of the transaction.

encodeBinForSigning()

Encodes the transaction for signing purposes (which differs from encoding for storage or transfer. Difference is for example missing fields).

public encodeBinForSigning(int|null $chainId) : string
Parameters
$chainId : int|null

The chain ID of the Ethereum network.

Return values
string

Binary representation of the transaction for signing.

encodeHex()

Encodes the transaction into a hexadecimal string.

public encodeHex() : string
Tags
throws
EthBinderArgumentException
Return values
string

The hexadecimal encoded transaction.

encodeHexForSigning()

Encodes the transaction into a hexadecimal string for signing purposes (which differs from encoding for storage or transfer. Difference is for example missing fields).

public encodeHexForSigning(int|null $chainId) : string
Parameters
$chainId : int|null

The chain ID for the transaction.

Tags
throws
EthBinderArgumentException
Return values
string

The hexadecimal encoded transaction.

gasLimit()

Gets the gas limit of the transaction.

public gasLimit() : int
Return values
int

The gas limit value.

isReplayProtected()

Checks if the transaction is replay-protected (post EIP155).

public isReplayProtected() : bool
Return values
bool

True if the transaction is replay-protected, false otherwise.

isSigned()

Checks if the transaction is signed.

public isSigned() : bool
Return values
bool

True if signed, false otherwise.

nonce()

Gets the nonce of the transaction.

public nonce() : int
Return values
int

The nonce value.

nonceFromRPC()

Convenience function that fetches nonce from RPC and places it into transaction.

public nonceFromRPC(Address $from, AbstractRPC $rpc) : Transaction

If new nonce mismatches currently set nonce, it invalidates signature.

Parameters
$from : Address

Address of which to set next nonce.

$rpc : AbstractRPC

RPC to query transaction count from.

Tags
throws
EthBinderRuntimeException
throws
RPCGeneralException
throws
RPCInvalidResponseParamException
throws
RPCNotFoundException
Return values
Transaction

self for chainable API.

r()

Gets the ECDSA 'r' value of the signature.

public r() : OOGmp
Return values
OOGmp

The 'r' value.

s()

Gets the ECDSA 's' value of the signature.

public s() : OOGmp
Return values
OOGmp

The 's' value.

setDataBin()

Sets the data payload for the transaction using binary blob.

public setDataBin(string $dataBin) : static

This invalidates signature if data differs from existing data.

Parameters
$dataBin : string

The binary data.

Return values
static

The updated Transaction object.

setDataHex()

Sets the data for the transaction using a hex string.

public setDataHex(string $dataHex) : static

This invalidates signature if data differs from existing data.

Parameters
$dataHex : string

Data in hex format.

Tags
throws
HexBlobNotEvenException
throws
InvalidHexException
Return values
static

setGasLimit()

Sets the gas limit for the transaction.

public setGasLimit(int $gasLimit) : static

This invalidates signature if data differs from existing data.

Parameters
$gasLimit : int

The gas limit value.

Return values
static

The updated Transaction object.

setGasPrice()

Sets the gas price for the transaction.

public setGasPrice(OOGmp $gasPrice) : static
Parameters
$gasPrice : OOGmp

The new gas price.

Return values
static

Returns the instance of the class.

setNonce()

Sets the nonce for the transaction.

public setNonce(int $nonce) : static

This invalidates signature if data differs from existing data.

Parameters
$nonce : int

The nonce value.

Return values
static

The updated Transaction object.

setSignature()

Sets the signature. Note that there is no guarantee the signature will work correctly.

public setSignature(Signature $s) : static

This is for advanced use only. Ensure to properly account for EIP 155 in signature's V.

Parameters
$s : Signature
Return values
static

The updated Transaction object.

setTo()

Sets the recipient address for the transaction. If it's null, the transaction is contract deploy transaction.

public setTo(Address|null $address) : static

This invalidates signature if data differs from existing data.

Parameters
$address : Address|null

The Address object or null. If null, the transaction is contract deploy

Return values
static

The updated Transaction object.

setValue()

Sets the value for the transaction.

public setValue(OOGmp $valueWEI) : static

This invalidates signature if data differs from existing data.

Parameters
$valueWEI : OOGmp

The value in Wei.

Return values
static

The updated Transaction object.

setValueFmt()

Sets the value for the transaction using WeiFormatter. Accepts "human" input.

public setValueFmt(float|int|string|OOGmp $human[, int|string|EtherFormats $format = EtherFormats::ETHER ]) : static

This invalidates signature if data differs from existing data.

Parameters
$human : float|int|string|OOGmp
$format : int|string|EtherFormats = EtherFormats::ETHER
Return values
static

The updated Transaction object.

to()

Gets the recipient address of the transaction, null if it's deploy transaction.

public to() : Address|null
Return values
Address|null

The recipient address or null (deploy).

totalGasPrice()

Gets the total gas price for the transaction.

public totalGasPrice() : OOGmp
Return values
OOGmp

Total gas price.

useRpcEstimates()

Estimates gas and fee values using from RPC, trying to use conservative values.

public useRpcEstimates(AbstractRPC $rpc, Address $from) : static

This invalidates signature if data differs from existing data

Parameters
$rpc : AbstractRPC

The RPC client.

$from : Address

The sender address.

Tags
throws
RPCGeneralException
throws
RPCNotFoundException
throws
RPCInvalidResponseParamException
throws
EthBinderLogicException
throws
EthBinderRuntimeException
Return values
static

The updated Transaction object.

useRpcEstimatesWithBump()

Uses RPC to estimate gas and fee, then sets them with an optional bump.

public useRpcEstimatesWithBump(AbstractRPC $rpc, Address|null $from, int $bumpGasPercentage, int $bumpFeePercentage) : static
Parameters
$rpc : AbstractRPC

The RPC client.

$from : Address|null

The sender's address.

$bumpGasPercentage : int

Percentage to bump the estimated gas.

$bumpFeePercentage : int

Percentage to bump the estimated fee.

Tags
throws
RPCGeneralException
throws
RPCInvalidResponseParamException
throws
RPCNotFoundException
Return values
static

Returns the instance of the class.

v()

Gets the ECDSA 'v' value of the signature.

public v() : OOGmp
Return values
OOGmp

The 'v' value.

value()

Gets the value of the transaction.

public value() : OOGmp
Return values
OOGmp

The value in Wei.

valueFmt()

Gets the value of the transaction and formats it with WeiFormatter, proxying params to it.

public valueFmt(int $finalDecimals[, int|string|EtherFormats $format = EtherFormats::ETHER ]) : string
Parameters
$finalDecimals : int

Number of decimals for formatting.

$format : int|string|EtherFormats = EtherFormats::ETHER

Ether format.

Return values
string

Formatted value.

blanksFromRPCArr()

protected blanksFromRPCArr(array<string|int, mixed> $rpcArr) : void
Parameters
$rpcArr : array<string|int, mixed>

setGasPriceOrBaseFee()

protected setGasPriceOrBaseFee(OOGmp $fee) : static
Parameters
$fee : OOGmp
Return values
static

internalEncodeBin()

private internalEncodeBin(bool $signing, int|null $signingChainID) : string
Parameters
$signing : bool
$signingChainID : int|null
Return values
string

        
On this page

Search results