Re: [闲聊] 今年散户应该都离场了吧

楼主: blackjj3110 (小碗鲁肉饭)   2022-06-30 13:11:34
※ 引述《MACD (MACD)》之铭言:
: 嗨!大家好,我最喜欢讲技术的文章了。
: 最近几个月都研究FlashLoan的技术,也略有心得,这篇来分享一下。
: 我主力目前是DEX之间的币对价差,MEV黑森林中的一小部分,看到有人想当伸手牌,我大
: 概分享几个关键字。DYOR
: 好了,之前发文有人说怎么没有作业,我这不就出作业了,我花了点时间写个合约给大家
: 用,flashloan的,现成的大家都可以用,很棒吧,不过我有留一个有趣的彩蛋在里面,希
: 望大家可以发现,发现的人没有奖品,谢谢。
: 彩蛋可以透过我的测试交易发现。
: 如果你可以完成作业,恭喜你,前端操作合约技能+1,尤其最近AC不玩了,这技能值得你
: 花心力点一下。
: 作业完成目标:参照我的测试tx,跟我部属的合约互动,发起一笔你自己的flashloan。
: TIP:因为是flashloan,你不用做任何合约授权,你只需要付gas fee,这样大家放心了吧
: ,你可以另外生成一个帐号放点gas fee跟合约做安全的神魂交流。
: TIP2:如果你发起的flashloan无法还款,那交易会失败并出现以下错误讯息
: Not enough amount to return loan会记录在tx里时刻的羞辱你喔。
: 部属链:polygon
: 测试tx:0x8be86f4af8e44d57ebdca4eccff335925abeb1990f9727d9907273bc078af0a3
: 合约地址 0xcFb2168Bad58D505aC0D857017CD0cbF7408E81C
恕删......
首先谢谢MACD大,常常分享宝贵经验跟技术给大家..
行情不好的时候,就是静下心来开始学习最好的时候..反正也被割得差不多了..XD
主要还是冒昧想请问M大作业问题..因为 TIP2..果然顺利达成
我的测试tx: 0x25c394257baff2e6d2bd0abecaae7ed74faa403d1895435fdc6691518b984455
原本MACD大的 TX 分析如下
{
hash: '0x8be86f4af8e44d57ebdca4eccff335925abeb1990f9727d9907273bc078af0a3',
from: '0xDcc43055f22A87b0041F368d158a63e7dD7ff4db',
to: '0xcFb2168Bad58D505aC0D857017CD0cbF7408E81C',
gasPrice: 42680000000,
gasLimit: 483277,
nonce: 6,
blockNumber: 25702154
}
TransactionDescription {
args: [
'0x581c7DB44F2616781C86C331d31c1F09db87A746',
BigNumber { _hex: '0x03e8', _isBigNumber: true },
'0xc2132D05D31c914a87C6611C10748AEb04B58e8F',
'0x7ceB23fD6bC0adD59E62ac25578270cFf1b9f619',
'0xa5E0829CaCEd8fFDD4De3c43696c57F7D7A678ff',
'0x1b02dA8Cb0d097eB8D57A175b88c7D8b47997506',
flashLoanPool: '0x581c7DB44F2616781C86C331d31c1F09db87A746',
loanAmount: BigNumber { _hex: '0x03e8', _isBigNumber: true },
loanToken: '0xc2132D05D31c914a87C6611C10748AEb04B58e8F',
metaToken: '0x7ceB23fD6bC0adD59E62ac25578270cFf1b9f619',
router1: '0xa5E0829CaCEd8fFDD4De3c43696c57F7D7A678ff',
router2: '0x1b02dA8Cb0d097eB8D57A175b88c7D8b47997506'
],
我自己的发起 tx 如下
{
hash: '0x25c394257baff2e6d2bd0abecaae7ed74faa403d1895435fdc6691518b984455',
from: '0xafF61F8B106CFc5CAb922FCbE9ce87292C980203',
to: '0xcFb2168Bad58D505aC0D857017CD0cbF7408E81C',
gasPrice: 43000000000,
gasLimit: 483277,
nonce: 0,
blockNumber: 30159826
}
TransactionDescription {
args: [
'0x581c7DB44F2616781C86C331d31c1F09db87A746',
BigNumber { _hex: '0x03e8', _isBigNumber: true },
'0xc2132D05D31c914a87C6611C10748AEb04B58e8F',
'0x7ceB23fD6bC0adD59E62ac25578270cFf1b9f619',
'0xa5E0829CaCEd8fFDD4De3c43696c57F7D7A678ff',
'0x1b02dA8Cb0d097eB8D57A175b88c7D8b47997506',
flashLoanPool: '0x581c7DB44F2616781C86C331d31c1F09db87A746',
loanAmount: BigNumber { _hex: '0x03e8', _isBigNumber: true },
loanToken: '0xc2132D05D31c914a87C6611C10748AEb04B58e8F',
metaToken: '0x7ceB23fD6bC0adD59E62ac25578270cFf1b9f619',
router1: '0xa5E0829CaCEd8fFDD4De3c43696c57F7D7A678ff',
router2: '0x1b02dA8Cb0d097eB8D57A175b88c7D8b47997506'
],
不知道哪边出了问题? 还是必须自己架设 local polygon node? 以上我是先用
ALCHEMY_POLYGON_RPC 挡挡先...
另外追了一下MACD大的 TX log 中
[SC]
0xcfb2168bad58d505ac0d857017cd0cbf7408e81c
[INPUT RAW DATA]
0x53485e5a
0x000000000000000000000000581c7db44f2616781c86c331d31c1f09db87a746 <== DLP
0x00000000000000000000000000000000000000000000000000000000000003e8 <==
LoanAmount
0x000000000000000000000000c2132d05d31c914a87c6611c10748aeb04b58e8f <==
(POS)USDT
0x0000000000000000000000007ceb23fd6bc0add59e62ac25578270cff1b9f619 <== WETH
0x000000000000000000000000a5e0829caced8ffdd4de3c43696c57f7d7a678ff <==
QuickSWAP:Router
0x0000000000000000000000001b02da8cb0d097eb8d57a175b88c7d8b47997506 <==
SushiSwap:Router
内部 18 Logs
0xf6422b997c7f54d1c6a6e103bcb1499eea0a7046 <== Uniswap V2
0xc2755915a85c6f6c1c0f3a86ac8c058f11caa9c9 <== SushiSwap LP Token (SLP)
0x0000000000000000000000000000000000001010 <== Polygon: MATIC Token
[log 129] USDT, DLP -> SC (0x3e8= 1000 = 0.001 USDT)
[log 130] USDT, SC -> QuickSWAP:Router (ff..fff)
[log 131] USDT, SC -> Uniswap V2 (0x3e8=1000= 0.001 USDT)
[log 132] USDT, SC -> QuickSWAP:Router (ff..c17)
[log 133] WETH, Uniswap V2 -> SC (0x5cc1df6fc1=0.000000398389637057 WETH ~
2510.105452)
[log 134] Uniswap V2 (0x10fc9e0097ca0d88257, 0xb6950491ea2)
[log 135] Uniswap V2 (QuickSWAP:Router, SC)(0, 0x3e8, 0x5cc1df6fc1, 0)
[log 136] WETH, SC -> SushiSwap:Router (ff..ffff)
[log 137] WETH, SC -> SLP (0x5cc1df6fc1)
[log 138] WETH, SC -> SushiSwap:Router (ff..a33e20903e)
[log 139] USDT, SLP -> SC (0x3e3= 995 = 0.0095 USDT)
[log 140] SLP , (0x2a2df0342d25923b9b, 0x1c5dedefcb0)
[log 141] SLP, SushiSwap:Router -> SC (0x5cc1df6fc1, 0, 0, 0x3e3)
[log 142] USDT, SC -> DLP (0x3e8)
[log 143] USDT, SC -> Caller (0x1b97=7063 = 0.007063 USDT)
[log 144] USDT, SC -> Caller (0x1b97=7063 = 0.007063 USDT)
[log 145] DLP , (SC, SC, 0, 0x3e8)
[log 146] MATIC,(MATIC, Caller, ???)(0x32509143f829da, 0x10803618b77c1606,
0x147e1fff4a5616db85d30, 0x104de5877383ec2c, 0x147e20026f5f2b1b0870a)
对应到 8 Actions
[log 129] ==> From 0x581c7db44f2616781c86c331d31c1f09db87a746 To
0xcfb2168bad58d505ac0d857017cd0cbf7408e81c For 0.001 ($0.00) (PoS) Tether...
(USDT)
[log 131] ==> From 0xcfb2168bad58d505ac0d857017cd0cbf7408e81c To
0xf6422b997c7f54d1c6a6e103bcb1499eea0a7046 For 0.001 ($0.00) (PoS) Tether...
(USDT)
[log 133] ==> From 0xf6422b997c7f54d1c6a6e103bcb1499eea0a7046 To
0xcfb2168bad58d505ac0d857017cd0cbf7408e81c For 0.000000398389637057 ($0.00)
Wrapped Ethe... (WETH)
[log 137] ==> From 0xcfb2168bad58d505ac0d857017cd0cbf7408e81c To
0xc2755915a85c6f6c1c0f3a86ac8c058f11caa9c9 For 0.000000398389637057 ($0.00)
Wrapped Ethe... (WETH)
[log 141] ==> From 0xc2755915a85c6f6c1c0f3a86ac8c058f11caa9c9 To
0xcfb2168bad58d505ac0d857017cd0cbf7408e81c For 0.000995 ($0.00) (PoS)
Tether... (USDT)
[log 142] ==> From 0xcfb2168bad58d505ac0d857017cd0cbf7408e81c To
0x581c7db44f2616781c86c331d31c1f09db87a746 For 0.001 ($0.00) (PoS) Tether...
(USDT)
[log 143] ==> From 0xcfb2168bad58d505ac0d857017cd0cbf7408e81c To
0xdcc43055f22a87b0041f368d158a63e7dd7ff4db For 0.007063 ($0.01) (PoS)
Tether... (USDT)
[log 144] ==> From 0xcfb2168bad58d505ac0d857017cd0cbf7408e81c To
0xdcc43055f22a87b0041f368d158a63e7dd7ff4db For 0.007063 ($0.01) (PoS)
Tether... (USDT)
应该是我太笨蛋..还是看不出那边是彩蛋ㄟ.(胡乱猜一下..多了Uniswap V2 ?)
斗胆请MACD大明示, 非常感谢~~
作者: natukage (夏影)   2022-06-30 13:21:00
大大你太强大了 我早就放弃了 我连节点都架不出来orz
作者: MACD (MACD)   2022-06-30 13:25:00
既然还有人记得,你如果要成功要嘛转一点token进去合约补足还款要嘛刚好两个池有价差可以还款彩蛋就是还完款后剩下只有一半会退给sender另外一半就给0xdcc这个帐号当作合约使用费你看ERC-20 Token Txn第一笔就是我有转一点USDT进去合约测试有没有问题,所以最后会退跟汇进去USDT差不多的钱出来
作者: justwedave (dave)   2022-06-30 13:57:00
我猜这合约就是flashloan去套利 只是你呼叫时没有交易对给你套 所以才失败
楼主: blackjj3110 (小碗鲁肉饭)   2022-06-30 14:00:00
谢谢MACD大解答我原本以为"stateMutability": "nonpayable" 是不能
作者: MACD (MACD)   2022-06-30 14:09:00
是两个LP套完没有获利还不了钱,所以会失败
楼主: blackjj3110 (小碗鲁肉饭)   2022-06-30 14:09:00
建议先去https://www.alchemy.com 申请免费的URL使用想请问MACD大,如果想测试第一点转usdt去合约补足还款,时间点,该如何拿捏?是不是在同一个block,呼叫合约前,先转usdt 进合约?还是只要合约里,有足够的usdt 就可以?非常感谢。
作者: MACD (MACD)   2022-06-30 14:21:00
合约怎么写可以参考这个系列文minminpp分享的国外githubhttps://github.com/jklepatch/eattheblocks里面有code可以参考只要合约有足够的钱就可以,不用同一个block转一点点就可以了0.001USDT就够了
楼主: blackjj3110 (小碗鲁肉饭)   2022-06-30 14:33:00
谢谢MACD大,也谢谢minminpp大
作者: MACD (MACD)   2022-06-30 16:22:00
恭喜你学会手动跟合约互动XD

Links booklink

Contact Us: admin [ a t ] ucptt.com