Transaction
in package
implements
BinarySerializableInterface
Transaction serves as an abstract base class for Ethereum transactions. It represents any transaction, can be signed or unsigned.
Tags
Table of Contents
Interfaces
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
- encodeBin() : string
- encodeBinForSigning() : string
- 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.
- 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.
- 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
- useRpcEstimates() : static
- Estimates gas and fee values using from RPC, trying to use conservative values.
- useRpcEstimatesWithBump() : static
- 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
Properties
$chainId
protected
int|null
$chainId
= null
$dataBin
protected
string
$dataBin
= ""
$gas
protected
int
$gas
= 0
$gasPrice
protected
OOGmp
$gasPrice
$nonce
protected
int
$nonce
= 0
$r
protected
OOGmp
$r
$s
protected
OOGmp
$s
$signed
protected
bool
$signed
= false
$to
protected
Address|null
$to
= null
$v
protected
OOGmp
$v
$value
protected
OOGmp
$value
Methods
__construct()
public
__construct() : mixed
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
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
Return values
static —The decoded Transaction object.
deployAddress()
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()
public
deployAddress() : Address
Tags
Return values
Address —Address where contract will be deployed.
ecRecover()
public
abstract ecRecover() : Address
Tags
Return values
AddressencodeBin()
public
abstract encodeBin() : string
Tags
Return values
stringencodeBinForSigning()
public
abstract encodeBinForSigning(int|null $chainId) : string
Parameters
- $chainId : int|null
Tags
Return values
stringencodeHex()
Encodes the transaction into a hexadecimal string.
public
encodeHex() : string
Tags
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
Return values
string —The hexadecimal encoded transaction.
fromBin()
Alias function for decodeBin()
public
static fromBin(string $bin) : static
Parameters
- $bin : string
Tags
Return values
staticfromHex()
Alias function for decodeHex()
public
static fromHex(string $hex) : static
Parameters
- $hex : string
Tags
Return values
staticfromRPCArr()
Creates a transaction from an RPC array.
public
static fromRPCArr(array<string|int, mixed> $rpcArr) : static
Parameters
- $rpcArr : array<string|int, mixed>
-
The array containing transaction details from RPC.
Tags
Return values
static —The created Transaction object.
gasLimit()
Gets the gas limit of the transaction.
public
gasLimit() : int
Return values
int —The gas limit value.
getSigningHash()
Calculates the hash used for signing the transaction.
public
getSigningHash(int|null $chainId) : Hash
Parameters
- $chainId : int|null
-
Optional chain ID.
Tags
Return values
Hash —The signing hash.
hash()
Calculates the transaction hash.
public
hash() : Hash
Tags
Return values
Hash —The transaction hash.
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
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
Return values
staticsetGasLimit()
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.
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.
sign()
Signs the transaction.
public
sign(Key $key, int|null $chainId) : static
Parameters
- $key : Key
-
Private key for signing.
- $chainId : int|null
-
Optional chain ID.
Tags
Return values
staticsignature()
Gets the signature in wrapper object.
public
signature() : Signature
Return values
Signature —The signature details.
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).
toBin()
Alias function for encodeBin()
public
toBin() : string
Tags
Return values
stringtoHex()
Alias function for encodeHex()
public
toHex() : string
Tags
Return values
stringtotalGasPrice()
Gets the total gas price for the transaction.
public
totalGasPrice() : OOGmp
Return values
OOGmp —Total gas price.
transactionType()
public
abstract transactionType() : TransactionType
Return values
TransactionTypeuseRpcEstimates()
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
Return values
static —The updated Transaction object.
useRpcEstimatesWithBump()
public
abstract useRpcEstimatesWithBump(AbstractRPC $rpc, Address|null $from, int $bumpGasPercentage, int $bumpFeePercentage) : static
Parameters
- $rpc : AbstractRPC
- $from : Address|null
- $bumpGasPercentage : int
- $bumpFeePercentage : int
Tags
Return values
staticv()
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
abstract blanksFromRPCArr(array<string|int, mixed> $rpcArr) : void
Parameters
- $rpcArr : array<string|int, mixed>
setGasPriceOrBaseFee()
protected
setGasPriceOrBaseFee(OOGmp $fee) : static
Parameters
- $fee : OOGmp
Return values
staticsetInnerFromRLPValues()
protected
abstract setInnerFromRLPValues(array<string|int, mixed> $rlpValues) : void
Parameters
- $rlpValues : array<string|int, mixed>