Documentation

CancunTransaction extends LondonTransaction
in package

DencunTransaction is transaction type 3, enabled in Proto-DankSharding ethereum upgrade, defined by EIP 4844

Note that support is only partial, Ether Binder does not interact with consensus layer at all, so transmitting or fetching blobs isn't part of binder.

Tags
see
https://eips.ethereum.org/EIPS/eip-4844

Table of Contents

Properties

$accessList  : array<string|int, mixed>
$blobVersionedHashes  : array<string|int, Hash>
$chainId  : int|null
$dataBin  : string
$gas  : int
$gasFeeTip  : OOGmp
$gasPrice  : OOGmp
$maxFeePerBlobGas  : OOGmp
$nonce  : int
$r  : OOGmp
$s  : OOGmp
$signed  : bool
$to  : Address|null
$v  : OOGmp
$value  : OOGmp

Methods

__construct()  : mixed
accessList()  : array<string|int, mixed>
Returns the transaction's access list.
addVersionedHash()  : void
Adds a versioned hash to the blobVersionedHashes array.
calculateV()  : OOGmp
in typed transactions, the chainID is part of transaction data, and V is "vanilla" ECDSA signature recovery param, without any alteration. See https://eips.ethereum.org/EIPS/eip-2930
chainId()  : int
Returns the chain ID for the transaction.
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 address of the signer from the signature. Returns null address if is not signed.
encodeBin()  : string
RLP-encodes the transaction into binary format.
encodeBinForSigning()  : string
Encodes the transaction for signing with optional chain ID (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.
getBaseFeeCap()  : OOGmp
Returns the base fee cap.
getGasFeeTip()  : OOGmp
Gets the gas fee tip.
getMaxFeePerBlobGas()  : OOGmp
Returns the maximum fee per blob gas.
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.
setAccessList()  : static
Sets the access list for the transaction.
setBaseFeeCap()  : static
Sets the base fee cap for the transaction.
setChainId()  : static
Sets the chain ID for the transaction.
setDataBin()  : static
Sets the data payload for the transaction using binary blob.
setDataHex()  : static
Sets the data for the transaction using a hex string.
setGasFeeTip()  : static
Sets the gas fee tip for the transaction.
setGasLimit()  : static
Sets the gas limit for the transaction.
setMaxFeePerBlobGas()  : void
Sets the maximum fee per blob gas. Note that this value is not serviced by estimations.
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
Calculates the total gas price for the transaction of both tip and base fee.
transactionType()  : TransactionType
Returns the transaction type enum.
useRpcEstimates()  : static
Estimates gas and fee values using from RPC, trying to use conservative values.
useRpcEstimatesWithBump()  : static
Updates the transaction gas and fee estimates using RPC, with added N percent "bump". Note that percentage is added, so if 120% of minimal value is required, param should be 20, not 120.
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.
versionedHashes()  : array<string|int, Hash>
Returns an array of versioned hashes.
blanksFromRPCArr()  : void
internalEncodeBin()  : string
setGasPriceOrBaseFee()  : static
setInnerFromRLPValues()  : void

Properties

Methods

accessList()

Returns the transaction's access list.

public accessList() : array<string|int, mixed>

@return array The access list.

Return values
array<string|int, mixed>

addVersionedHash()

Adds a versioned hash to the blobVersionedHashes array.

public addVersionedHash(Hash $hash) : void
Parameters
$hash : Hash

The versioned hash to add.

calculateV()

in typed transactions, the chainID is part of transaction data, and V is "vanilla" ECDSA signature recovery param, without any alteration. See https://eips.ethereum.org/EIPS/eip-2930

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

Recovery id before chain id calculations.

Tags
inheritDoc
Return values
OOGmp

Final recovery id.

chainId()

Returns the chain ID for the transaction.

public chainId() : int

@return int The chain ID.

Return values
int

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.

ecRecover()

Recovers the address of the signer from the signature. Returns null address if is not signed.

public ecRecover() : Address

@return Address The address of the signer.

Tags
throws
EthBinderRuntimeException

@throws EthBinderLogicException @throws InvalidLengthException

Return values
Address

encodeBinForSigning()

Encodes the transaction for signing with optional chain ID (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 to use for signing. If null, the transaction's current chain ID will be used.

Tags
throws
EthBinderArgumentException
Return values
string

The encoded transaction.

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.

getMaxFeePerBlobGas()

Returns the maximum fee per blob gas.

public getMaxFeePerBlobGas() : OOGmp
Return values
OOGmp

The maximum fee per blob gas.

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.

setAccessList()

Sets the access list for the transaction.

public setAccessList(array<string|int, mixed> $accessList) : static

This invalidates signature if data differs from existing data.

Parameters
$accessList : array<string|int, mixed>

The new access list. @return static

Return values
static

setBaseFeeCap()

Sets the base fee cap for the transaction.

public setBaseFeeCap(OOGmp $fee) : static

This invalidates signature if data differs from existing data.

Parameters
$fee : OOGmp

The new base fee cap.

Return values
static

setChainId()

Sets the chain ID for the transaction.

public setChainId(int $chainId) : static

This invalidates signature if data differs from existing data.

Parameters
$chainId : int

The new chain ID. @return static

Return values
static

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

setGasFeeTip()

Sets the gas fee tip for the transaction.

public setGasFeeTip(OOGmp $gasFeeTip) : static

This invalidates signature if data differs from existing data.

Parameters
$gasFeeTip : OOGmp

The new gas fee tip.

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.

setMaxFeePerBlobGas()

Sets the maximum fee per blob gas. Note that this value is not serviced by estimations.

public setMaxFeePerBlobGas(OOGmp $maxFeePerBlobGas) : void
Parameters
$maxFeePerBlobGas : OOGmp

The maximum fee per blob gas to set.

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()

Calculates the total gas price for the transaction of both tip and base fee.

public totalGasPrice() : OOGmp

@return OOGmp The total gas price.

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()

Updates the transaction gas and fee estimates using RPC, with added N percent "bump". Note that percentage is added, so if 120% of minimal value is required, param should be 20, not 120.

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

This invalidates signature if data differs from existing data.

Parameters
$rpc : AbstractRPC

The RPC client.

$from : Address|null

The sender's address.

$bumpGasPercentage : int

Increase in gas limit as a percentage.

$bumpFeePercentage : int

Increase in fee as a percentage.

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

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.

versionedHashes()

Returns an array of versioned hashes.

public versionedHashes() : array<string|int, Hash>
Return values
array<string|int, Hash>

Array of versioned hashes.

internalEncodeBin()

protected internalEncodeBin(bool $signing, int|null $signingChainID) : string
Parameters
$signing : bool
$signingChainID : int|null
Tags
throws
EthBinderArgumentException
Return values
string

setGasPriceOrBaseFee()

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

setInnerFromRLPValues()

protected setInnerFromRLPValues(array<string|int, mixed> $rlpValues) : void
Parameters
$rlpValues : array<string|int, mixed>

        
On this page

Search results