Node Transactions
dYdX node transaction helpers.
Tx
dataclass
Transaction builder, signer, simulator, and broadcaster.
Source code in pkg/src/dydx/node/tx/__init__.py
31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 | |
context
instance-attribute
Shared node configuration and wallet sequence state.
broadcast(tx, *, mode=tx_proto.BroadcastMode(2), raise_on_error=True)
async
Broadcast signed transaction bytes.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
tx
|
TxRaw
|
Signed raw transaction to broadcast. |
required |
mode
|
BroadcastMode
|
Cosmos broadcast mode. |
BroadcastMode(2)
|
raise_on_error
|
bool
|
Raise |
True
|
Returns:
| Type | Description |
|---|---|
BroadcastTxResponse
|
Cosmos broadcast response. |
Raises:
| Type | Description |
|---|---|
ApiError
|
Raised when no transaction response is returned or when the
broadcast fails and |
Source code in pkg/src/dydx/node/tx/__init__.py
fee(*, gas_limit=1000000, amount=0, denom=None)
Build a Cosmos transaction fee.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
gas_limit
|
int
|
Gas limit to include in the transaction fee. |
1000000
|
amount
|
int
|
Fee amount. Zero produces an empty fee coin list. |
0
|
denom
|
str | None
|
Fee denomination. Defaults to the node USDC denomination. |
None
|
Returns:
| Type | Description |
|---|---|
Fee
|
Cosmos transaction fee message. |
Source code in pkg/src/dydx/node/tx/__init__.py
is_invalid_sequence_error(response)
Return whether a broadcast response indicates a stale wallet sequence.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
response
|
BroadcastTxResponse
|
Broadcast response returned by the chain transaction service. |
required |
Returns:
| Type | Description |
|---|---|
bool
|
Whether the raw log contains a known account-sequence failure marker. |
Source code in pkg/src/dydx/node/tx/__init__.py
refresh_wallet()
async
Refresh the node wallet account number and sequence from chain state.
Raises:
| Type | Description |
|---|---|
AuthError
|
Raised when the node was constructed without a wallet. |
BadRequest
|
Raised when account metadata cannot be loaded from chain. |
Source code in pkg/src/dydx/node/tx/__init__.py
sign(messages, *, wallet=None, fee=None, memo=None, options=None)
Build and sign a transaction from protocol messages.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
messages
|
Sequence[Message]
|
Protocol messages to pack into the transaction body. |
required |
wallet
|
Wallet | None
|
Optional wallet override. Defaults to the node wallet. |
None
|
fee
|
Fee | None
|
Optional explicit Cosmos transaction fee. |
None
|
memo
|
str | None
|
Optional transaction memo. Defaults to the node memo. |
None
|
options
|
TxOptions | None
|
Optional explicit account number and sequence. |
None
|
Returns:
| Type | Description |
|---|---|
TxRaw
|
Signed raw transaction ready for simulation or broadcast. |
Source code in pkg/src/dydx/node/tx/__init__.py
sign_and_broadcast(messages, *, fee=None, mode=tx_proto.BroadcastMode(2), memo=None, simulate=False)
async
Sign protocol messages and broadcast them.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
messages
|
Sequence[Message]
|
Protocol messages to pack into one transaction. |
required |
fee
|
Fee | None
|
Optional explicit Cosmos transaction fee. |
None
|
mode
|
BroadcastMode
|
Cosmos broadcast mode. |
BroadcastMode(2)
|
memo
|
str | None
|
Optional transaction memo. Defaults to the node memo. |
None
|
simulate
|
bool
|
Whether to simulate the signed transaction before broadcast. |
False
|
Returns:
| Type | Description |
|---|---|
BroadcastTxResponse
|
Cosmos broadcast response. |
Raises:
| Type | Description |
|---|---|
ApiError
|
Raised when broadcast fails after the sequence refresh retry. |
Source code in pkg/src/dydx/node/tx/__init__.py
sign_and_broadcast_once(messages, *, fee=None, mode=tx_proto.BroadcastMode(2), memo=None, simulate=False, raise_on_error=True)
async
Sign protocol messages once and broadcast the signed transaction.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
messages
|
Sequence[Message]
|
Protocol messages to pack into one transaction. |
required |
fee
|
Fee | None
|
Optional explicit Cosmos transaction fee. |
None
|
mode
|
BroadcastMode
|
Cosmos broadcast mode. |
BroadcastMode(2)
|
memo
|
str | None
|
Optional transaction memo. Defaults to the node memo. |
None
|
simulate
|
bool
|
Whether to simulate the signed transaction before broadcast. |
False
|
raise_on_error
|
bool
|
Raise |
True
|
Returns:
| Type | Description |
|---|---|
BroadcastTxResponse
|
Cosmos broadcast response. |
Source code in pkg/src/dydx/node/tx/__init__.py
signer_info(wallet, *, sequence)
Build direct-signing signer metadata.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
wallet
|
Wallet
|
Wallet whose public key signs the transaction. |
required |
sequence
|
int
|
Cosmos account sequence to include in signer metadata. |
required |
Returns:
| Type | Description |
|---|---|
SignerInfo
|
Cosmos signer info message for sign mode direct. |
Source code in pkg/src/dydx/node/tx/__init__.py
simulate(tx)
async
Simulate signed transaction bytes.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
tx
|
TxRaw
|
Signed raw transaction to simulate. |
required |
Returns:
| Type | Description |
|---|---|
SimulateResponse
|
Cosmos simulation response. |
Source code in pkg/src/dydx/node/tx/__init__.py
TxOptions
dataclass
Explicit account metadata for transaction signing.
Source code in pkg/src/dydx/node/tx/__init__.py
account_number
instance-attribute
Cosmos account number included in the direct-sign document.
sequence
instance-attribute
Cosmos account sequence used for this signed transaction.