3. Build Flash Loan
Flash loan transaction manifest
# Gable flash loan transaction
# (1) get loan
# call get flashloan method
# provide: loan amount
# return: loan + transient token
CALL_METHOD
Address("component_rdx1cpmh7lyg0hx6efv5q79lv6rqxdqpuh27y99nzm0jpwu2u44ne243ws")
"get_flashloan"
Decimal("<loan_amountt>");
# (2) use loan
# take XRD loan from worktop
TAKE_FROM_WORKTOP
Address("resource_rdx1tknxxxxxxxxxradxrdxxxxxxxxx009923554798xxxxxxxxxradxrd")
Bucket("xrd_bucket1");
# for instance call a method that takes some XRD ...
# ... and returns GAB
CALL_METHOD
"swap"
Address("<some_component_address>")
Bucket("xrd_bucket1");
# take GAB loan from worktop
TAKE_FROM_WORKTOP
Address("resource_rdx1tknu3dqlkysz9lt08s7spuvllz3kk2k2yccslfpdk73t4lnznl9jck")
Bucket("gab_bucket");
# for instance call a method that takes some GAB ...
# ... and returns some XRD
CALL_METHOD
"swap"
Address("<some_component_address>")
Bucket("gab_bucket");
# (3) return loan
# take XRD from worktop
TAKE_FROM_WORKTOP
Address("<resource_tdx_c_1qyqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq40v2wv>")
Bucket("xrd_bucket2");
# take transient token from worktop
TAKE_FROM_WORKTOP
Address("resource_tdx_c_1q2xltzyu94nesddh0yyq9h9vuzz5l904n2yt93ltfsssg3ygd5")
Bucket("transient_bucket");
# call repay flashloan method
# provide: XRD plus transient token
# return: residual XRD
CALL_METHOD
Address("component_tdx_c_1qwxltzyu94nesddh0yyq9h9vuzz5l904n2yt93ltfsssa7pd6s")
"repay_flashloan"
Bucket("xrd_bucket2")
Bucket("transient_bucket");
# the residual XRD (your profit) will be returned to your wallet
CALL_METHOD
Address("<your_account_address>")
"deposit_batch"
Expression("ENTIRE_WORKTOP");Last updated