@ -59,11 +59,12 @@ type TransactOpts struct {
Nonce * big . Int // Nonce to use for the transaction execution (nil = use pending state)
Nonce * big . Int // Nonce to use for the transaction execution (nil = use pending state)
Signer SignerFn // Method to use for signing the transaction (mandatory)
Signer SignerFn // Method to use for signing the transaction (mandatory)
Value * big . Int // Funds to transfer along the transaction (nil = 0 = no funds)
Value * big . Int // Funds to transfer along the transaction (nil = 0 = no funds)
GasPrice * big . Int // Gas price to use for the transaction execution (nil = gas price oracle)
GasPrice * big . Int // Gas price to use for the transaction execution (nil = gas price oracle)
GasFeeCap * big . Int // Gas fee cap to use for the 1559 transaction execution (nil = gas price oracle)
GasFeeCap * big . Int // Gas fee cap to use for the 1559 transaction execution (nil = gas price oracle)
GasTipCap * big . Int // Gas priority fee cap to use for the 1559 transaction execution (nil = gas price oracle)
GasTipCap * big . Int // Gas priority fee cap to use for the 1559 transaction execution (nil = gas price oracle)
GasLimit uint64 // Gas limit to set for the transaction execution (0 = estimate)
GasLimit uint64 // Gas limit to set for the transaction execution (0 = estimate)
AccessList types . AccessList // Access list to set for the transaction execution (nil = no access list)
Context context . Context // Network context to support cancellation and timeouts (nil = no timeout)
Context context . Context // Network context to support cancellation and timeouts (nil = no timeout)
@ -300,20 +301,21 @@ func (c *BoundContract) createDynamicTx(opts *TransactOpts, contract *common.Add
return nil , err
return nil , err
}
}
baseTx := & types . DynamicFeeTx {
baseTx := & types . DynamicFeeTx {
To : contract ,
To : contract ,
Nonce : nonce ,
Nonce : nonce ,
GasFeeCap : gasFeeCap ,
GasFeeCap : gasFeeCap ,
GasTipCap : gasTipCap ,
GasTipCap : gasTipCap ,
Gas : gasLimit ,
Gas : gasLimit ,
Value : value ,
Value : value ,
Data : input ,
Data : input ,
AccessList : opts . AccessList ,
}
}
return types . NewTx ( baseTx ) , nil
return types . NewTx ( baseTx ) , nil
}
}
func ( c * BoundContract ) createLegacyTx ( opts * TransactOpts , contract * common . Address , input [ ] byte ) ( * types . Transaction , error ) {
func ( c * BoundContract ) createLegacyTx ( opts * TransactOpts , contract * common . Address , input [ ] byte ) ( * types . Transaction , error ) {
if opts . GasFeeCap != nil || opts . GasTipCap != nil {
if opts . GasFeeCap != nil || opts . GasTipCap != nil || opts . AccessList != nil {
return nil , errors . New ( "maxFeePerGas or maxPriorityFeePerGas specified but london is not active yet" )
return nil , errors . New ( "maxFeePerGas or maxPriorityFeePerGas or accessList specified but london is not active yet" )
}
}
// Normalize value
// Normalize value
value := opts . Value
value := opts . Value