Algo/AI
Last updated
Last updated
# 1. Build the transaction data using SDK
w3 = Web3()
sdk = GainsTradingSDK()
tx_data = sdk.build.openTrade(trade_params_here)
# 2. Create role modifier contract instance
role_modifier = w3.eth.contract(
address=QIV_ROLE_MODIFIER, # Obtained during the user onboarding process
abi=ROLE_MODIFIER_ABI # We just have this file
)
# 3. Execute through vault's role modifier
tx = role_modifier.functions.execTransactionWithRole(
tx_data.to, # G-Trade address
0, # No ETH value
tx_data.data, # Trading function data
0, # Call (not delegatecall)
ROLE_ID, # Obtained during the user onboarding process
True
).build_transaction({
'from': "some_address",
'gas': 2000000,
'nonce': "some_nonce"
})
# 4. Sign
signed_tx = w3.eth.account.sign_transaction(tx, "some_private_key")
tx_hash = w3.eth.send_raw_transaction(signed_tx.rawTransaction)