mirror of
https://github.com/discountry/ritmex-bot.git
synced 2026-09-09 08:18:07 +00:00
1.6 KiB
1.6 KiB
Withdrawing (on-chain)
You can withdraw collateral from Nado directly on-chain, by submitting a slow-mode transaction via the Endpoint contract (see Contracts for addresses).
{% hint style="info" %} Note:
- This is an alternative to withdrawing collateral via our off-chain sequencer. See Withdraw Collateral for more details.
- Slow mode transactions have a 1 USDT0 fee; as such, an approval of 1 USDT0 is required for the slow mode withdrawal to succeed. {% endhint %}
Steps
- Assemble the bytes needed for a withdraw collateral transaction by encoding the following struct alongside the transaction type
2:
struct WithdrawCollateral {
bytes32 sender;
uint32 productId;
uint128 amount;
uint64 nonce;
}
- Submit the transaction via
submitSlowModeTransactionon ourEndpointcontract.
Example
function withdrawNadoCollateral(address nadoEndpoint, bytes32 sender, uint32 productId, uint128 amount) internal {
WithdrawCollateral memory withdrawal = new WithdrawCollateral(sender, productId, amount, 0);
bytes memory tx = abi.encodePacked(2, abi.encode(withdrawal));
IEndpoint(nadoEndpoint).submitSlowModeTransaction(tx);
}
Once the transaction is confirmed, it may take a few seconds for it to make its way into the Nado offchain sequencer and for the withdrawal to be processed.