Instant Withdrawal Script
Last updated
PRIVATE_KEY=0x...
RPC_URL=https://...
CHAIN_ID=8453
BASE_URL=https://instant-withdrawal-backend...python instant_withdrawal.pynonce = requests.post(
f"{BASE_URL}/v1/auth/nonce",
json={"address": wallet_address}
).json()["nonce"]message = requests.get(
f"{BASE_URL}/v1/auth/sign-in-message",
params={"address": wallet_address, "domain": DOMAIN, "uri": ORIGIN}
).json()["message"]signed = account.sign_message(encode_defunct(text=message))token = requests.post(
f"{BASE_URL}/v1/auth/login",
json={"message": payload, "signature": signature}
).json()["accessToken"]options = requests.post(
f"{BASE_URL}/v1/fee-options",
params={"account": subaccount, "amount": AMOUNT},
headers={"Authorization": f"Bearer {token}"}
).json()["options"]
call_data = diamond.functions.deallocate(
amount, upnl_sig
)._encode_transaction_data()tx = multi_account.functions._call(
subaccount,
[call_data]
)call_data = diamond.functions.transferToBridge(
amount, BRIDGE_ADDRESS
)._encode_transaction_data()tx = multi_account.functions._call(
subaccount,
[call_data]
)policies = requests.get(
f"{BASE_URL}/v1/pending-fee-policy/{subaccount}",
headers={"Authorization": f"Bearer {token}"}
).json()["policies"]fastest = min(policies, key=lambda p: p["cooldown"])result = requests.post(
f"{BASE_URL}/v1/select-fee-policy",
json={
"symmioBridgeId": bridge_id,
"cooldown": fastest["cooldown"],
"feeAmount": fastest["fee"],
},
headers={"Authorization": f"Bearer {token}"}
).json()