Original link: https://igaojin.me/2023/09/18/friend-tech-%E5%A5%97%E5%88%A9%E5%88%B0%E5%BA%95%E6%9C% 89%E5%A4%9A%E5%8D%B7/
background
Recently I am planning to engage in arbitrage with friend tech…
Just write a sql to see how many people are currently making profits. This data will not be based on keys that have not been sold.
The data is here friend tech top profit
Sort by profit amount
Sort by loss amount
The first few profitable accounts are definitely robot accounts. Just look at their data and you will find some problems.
data analysis
All data are based on block 411977 , real user 0xda , purchase tx
The data looks like this
1 2 3 4 5 6 7 8 9 10 11 12
|
fromnoncetotransactionIndexgasPricegasFeestatusnew_status 00xa3afA500e3d88CAfA41AA7B95a8dEF7d2CBce92b941660xfF231524719dB94a0Ef08A88fC4e6939134EadE811254698872434951723127900 10x135557B95fc164cB152e853568b25880Ba06F94A94870x4Ff30D7222B852c67A66Dc8E8d56A8cf92B8411c21254698872394616413986700 20x8ac85761268B9Ac3fDe06d381611b64B232CEa97662930x4Ff30D7222B852c67A66Dc8E8d56A8cf92B8411c31254698872397503555135900 30x1BA4C73e7831b8099377c0583acfF4DBE488dFc6166260x4C99B25DdD0887D88b6C1364E3Df63a3bE76A5c341254698872428797029923900 40xa92a6331d0174c0eDC463B097E8564a492D451FA936090xfF231524719dB94a0Ef08A88fC4e6939134EadE851254698872434951723127900 50x9a34845CCBeA93925B15F5af6d9F4aFae4EC590a937550xfF231524719dB94a0Ef08A88fC4e6939134EadE861254698872434951723127900 60x5ED1222A1c0BdBA479B61201231f539ac131DD69641310x4C99B25DdD0887D88b6C1364E3Df63a3bE76A5c371254698872428797029923900 70xe8C5433d6E8Fc7a2b38eF0391FabA7470c9576e451420x4C99B25DdD0887D88b6C1364E3Df63a3bE76A5c381254698872428797029923900 80x38Cd1a8474A948a5a3e4d4b06c4069F2116DD184855740x4Ff30D7222B852c67A66Dc8E8d56A8cf92B8411c91254698872406164978583500 90x3c2c170296446e241dE2eE39d7036254d55Df9E4936020xfF231524719dB94a0Ef08A88fC4e6939134EadE8101254698872426290299680300
|
Number of transactions
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 twenty one twenty two twenty three twenty four 25 26 27 28 29 30 31
|
import json import pandas as pd
from hexbytes import HexBytes
with open( '4119771_da681.json' ) as f: txs = json.loads(f.read())
def filter_da68 (txs) : flashruntxs = [] for tx in txs: _input = tx[ "input" ] if "da68ee" in _input: flashruntxs.append( { "from" : tx[ "from" ], "nonce" : tx[ "nonce" ], "to" : tx[ "to" ], "transactionIndex" : tx[ "transactionIndex" ], "gasPrice" : tx[ "gasPrice" ], "gasFee" : tx[ "gasFee" ], "status" : tx[ "status" ], } ) return flashruntxs
da68 = filter_da68(txs)
len(da68),len(txs)
( 506 , 517 )
|
You can see that there are 517 transactions in the entire block, of which 506 are related to da68. It is very outrageous, 97.87% of users are here to rush ahead.
How many robots are there in total?
Let’s classify them here according to the contract address. You can see several head robots.
The top 3 account for most transactions.
1 2 3 4 5 6 7 8 9 10 11
|
to_count = df[ 'to' ].value_counts() to_count
0x4C99B25DdD0887D88b6C1364E3Df63a3bE76A5c3 184 0xfF231524719dB94a0Ef08A88fC4e6939134EadE8 161 0x4Ff30D7222B852c67A66Dc8E8d56A8cf92B8411c 123 0xCF205808Ed36593aa40a44F10c7f7C2F67d4A4d4 19 0xe27ddadbC8779D01fC539Bf5BA8529D728418625 9 0x27E8A5B043d3f58dde1c7ab96d2E3cF07558A1f1 8 0xAfE6795A9097BbCE00fe61462d22CCeeF706a3e8 2 Name: to, dtype: int64
|
Looking at how much gas fees these robots spent, I didn’t expect that it only cost $7.69 to send 184 transactions.
1 2 3 4 5 6 7 8 9 10 11 12 13
|
ethprice= 1640 for to in to_count.index: tteth = sum(df[df.to==to].gasFee)/ 1e18 ttusd = tteth*ethprice print(tteth,ttusd)
0.004690181471662096 7.691897613525838 0.004104812550636566 6.731892583043968 0.003097893590529322 5.080545488468088 0.000457215606189089 0.749833594150106 0.000226412037571068 0.3713157416165515 0.00017632952477182 0.2891804206257848 5.0244385725274e-05 0.08240079258944936
|
Let’s take a look at how many trumpets there are among these robots. We also found a few rookie robots…
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 twenty one twenty two twenty three twenty four 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81
|
for to in to_count.index: print( 'to:' ,to) print(df[df.to==to][ 'from' ].value_counts()) print() print( '#' * 30 )
to: 0x4C99B25DdD0887D88b6C1364E3Df63a3bE76A5c3 0x5ED1222A1c0BdBA479B61201231f539ac131DD69 27 0x1BA4C73e7831b8099377c0583acfF4DBE488dFc6 26 0xd9E4b9579a5CF5B336E258820CC95cA34411c9D6 26 0x27C2a598Db389b5276c0156f14B4dE75E490712F 26 0xe8C5433d6E8Fc7a2b38eF0391FabA7470c9576e4 24 0xDd2B7694259a83753918BF5b6dC6961fabd2FDbC 24 0xC81a00ee6839EE0dFbF465d3C08E5F0b0291b71A 20 0x3Ee2183b706cf381e7e4586b8063a779f1E7b7dA 11 Name: from , dtype: int64
############################## to: 0xfF231524719dB94a0Ef08A88fC4e6939134EadE8 0xa3afA500e3d88CAfA41AA7B95a8dEF7d2CBce92b 9 0xa92a6331d0174c0eDC463B097E8564a492D451FA 9 0x2bE3973950D0F1951E12C21bC7bB8e2428101Fdd 9 0x63cEe818600f91C4473CD14cDfD9C10d918B587b 9 0x92c21dB4a7cC0302ccCb71d444aE674Ec3980c93 9 0xCb44B9062eB0Cd22c4C0701385e6482BF4a77759 9 0x57ae46a097751124f8c35A86f64B4c38d2C62675 9 0x8eE3847cAE34e6e0292dc3DF8DD3C0C69a266b97 9 0x807db242cD37b5E2B53697842197611f51693C06 9 0xDb6f56639AaeA09FfEA6080D31A32851524128d4 9 0x9D94BdAf42d7906b3D3c011053ed2cBF42A1cA3f 9 0x244Fb415A8765812B9bc5B52cA14fd83C9d7E0e5 9 0xF689ac0322786Ac2D7245Fcd665fe120ff1d0408 9 0x895D2d10FB9b92D0e1002c1a1bCdb90Ed42c3588 9 0xF53010525Df586e78b14114C9cd05481E79E6C8C 9 0x3c2c170296446e241dE2eE39d7036254d55Df9E4 9 0x9a34845CCBeA93925B15F5af6d9F4aFae4EC590a 9 0x36da68690F238366156890010c411394FC529cd9 8 Name: from , dtype: int64
############################## to: 0x4Ff30D7222B852c67A66Dc8E8d56A8cf92B8411c 0x8ac85761268B9Ac3fDe06d381611b64B232CEa97 13 0x135557B95fc164cB152e853568b25880Ba06F94A 12 0x38Cd1a8474A948a5a3e4d4b06c4069F2116DD184 12 0x3547DbcD816bc17D7dE0e7e67a8B8bEE74384ACF 12 0xa9ff99346829E7c578E6d38C2269997a2FCcEEE1 12 0xd65eD99CB8b3b65CE378e3E5CaE545B751f4DAc6 11 0x1F238B47ab9fD915e5852601E83c6c1358297870 11 0x75Ff68BDe78974ab54a642fD294369447bD9Feef 10 0xf1E7E7Ad07C046abb6e488F73c126B897892755c 10 0x76eF08c772Db73E05fa00398746FbA31eFC5804F 10 0x7CfE232Ed8b0acc111ec780b7Cb95C68f3CF7Aa6 10 Name: from , dtype: int64
############################## to: 0xCF205808Ed36593aa40a44F10c7f7C2F67d4A4d4 0x188eCF8f4290C4e5d641449B88CEf94574174972 15 0xDa68EEe4c5b10D8A574b9ec072335c583B1C67A2 1 0xbEbA981C5697b1CFa7c04fCB523E94bD42F79afB 1 0x40954b9B4bAfC41Ec6387325fD0069C68674a04d 1 0x296D3324Ee4b2316E87f965F4A04F073780f5310 1 Name: from , dtype: int64
############################## to: 0xe27ddadbC8779D01fC539Bf5BA8529D728418625 0xeFa4b454A64049ff93cC37b54102982ACEdf4Eae 9 Name: from , dtype: int64
############################## to: 0x27E8A5B043d3f58dde1c7ab96d2E3cF07558A1f1 0x8b113ad5c2b2E3ddb102305e32259c6b23D12aa3 4 0x89B5BB48f016b809EB2eE78416550487334C1331 4 Name: from , dtype: int64
############################## to: 0xAfE6795A9097BbCE00fe61462d22CCeeF706a3e8 0xC1322133ACbAd823614bf79Ca9eC409fA3A7E39A 2 Name: from , dtype: int64
##############################
|
Take a final look at the overview
26 is the user’s transaction. You can see that all gasPrices are the same as the user’s…
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 twenty one twenty two twenty three twenty four 25 26 27 28 29 30 31 32 33 34 35 36 37 38
|
# Filter out data with transactionIndex in the range of 16-40 filtered_df = df[(df[ 'transactionIndex' ] >= 16 ) & (df[ 'transactionIndex' ] <= 36 )]
# Sort by transactionIndex from small to large sorted_df = filtered_df.sort_values(by= 'transactionIndex' )
def highlight_row (row) : if row[ 'transactionIndex' ] == 26 : return [ 'background-color: yellow' ] * len(row) else : return [ '' ] * len(row)
highlighted_df = filtered_df.style.apply(highlight_row, axis= 1 ) highlighted_df
from noncetotransactionIndexgasPricegasFeestatus 15 0xa9ff99346829E7c578E6d38C2269997a2FCcEEE1 73039 0x4Ff30D7222B852c67A66Dc8E8d56A8cf92B8411c 16 125469887 24061649785835 0 16 0x895d2d10FB9B92D0E1002C1A1BCDB90ed42C358894987 0xFF231524719db94a08a88FC4EDE8 17 125469887231279 0 _ _ 0 _ _ _ _ _ _ _ 0 _ _ _ _ _ _ _ 19 0XC81A00EE6839EE0DFBF465D3C08E5F0B0291B71A 2708 0x4C99B25ddd088b6C1364E3DF63BE76A5C3 20 12546987970299239 0 _ 20 0x244Fb415A8765812B9bc5B52cA14fd83C9d7E0e5 56203 0xfF231524719dB94a0Ef08A88fC4e6939134EadE8 21 125469887 24234031585311 0 21 0x5ED1222A1c0BdBA479B61201231f539ac131DD69 64132 0x4C99B25DdD0887D88b6C1364E3Df63a3bE76A5c3 22 125469887 24287970299239 0 1 _ _ _ _ _ _ _ 23 0x1ba4c73e7831B8099377C0583ACFF4DBE488DFC6 16627 0x4c99b25dddddddd88b6c1363BE76A5C3 24 1254698876064763 0 _ 0 _ _ _ _ _ _ _ 25 0xDa68EEe4c5b10D8A574b9ec072335c583B1C67A2 0 0xCF205808Ed36593aa40a44F10c7f7C2F67d4A4d4 26 125469887 28895454735018 1 26 0x9d94BDAF42D7906B3D3C011053ED2CBF42A1CA3F 55712 0xFF231524719DB94A08A88FC4EDE8 27 1254698895956846186 1 _ 27 0xe8C5433d6E8Fc7a2b38eF0391FabA7470c9576e4 5143 0x4C99B25DdD0887D88b6C1364E3Df63a3bE76A5c3 28 125469887 25586583629689 0 28 0xd9e4b9579A5CF5B336E258820CC95CA34411C9D6 7656 0x4c99b25ddddddddddd in88B6C1363A3BE76A5C3 29 12546586583629689 0 29 0x1F238B47ab9fD915e5852601E83c6c1358297870 188626 0x4Ff30D7222B852c67A66Dc8E8d56A8cf92B8411c 30 125469887 25293638606288 0 30 0XDB6F566399FFEA09FFEA6080D31A32851524128D4 55742 0xFF231524719DB94A08A88FC4E6939134EDE8 31 1254698803297854 0 _ 31 0x27C2a598Db389b5276c0156f14B4dE75E490712F 8112 0x4C99B25DdD0887D88b6C1364E3Df63a3bE76A5c3 32 125469887 25586583629689 0 32 0x8ac85761268B9Ac3fDe06d381611b64B232CEa97 66294 0x4Ff30D7222B852c67A66Dc8E8d56A8cf92B8411c 33 125469887 25293638606288 0 33 0x75Ff68BDe78974ab54a642fD294369447bD9Feef 74796 0x4Ff30D7222B852c67A66Dc8E8d56A8cf92B8411c 34 125469887 25207024371812 0 34 0xDd2B7694259a83753918BF5b6dC6961fabd2FDbC 3181 0x4C99B25DdD0887D88b6C1364E3Df63a3bE76A5c3 35 125469887 25586583629689 0 35 0x807db242cD37b5E2B53697842197611f51693C06 55979 0xfF231524719dB94a0Ef08A88fC4e6939134EadE8 36 125469887 25474803297854 0
|
Code and related data download
https://github.com/jin10086/friend-tech-bot-analyze
Author of this article : Gao Jin
Address of this article : https://igaojin.me/2023/09/18/friend-tech-How many volumes does arbitrage have/
Copyright statement : Please indicate the source when reprinting!
This article is reproduced from: https://igaojin.me/2023/09/18/friend-tech-%E5%A5%97%E5%88%A9%E5%88%B0%E5%BA%95%E6%9C% 89%E5%A4%9A%E5%8D%B7/
This site is only for collection, and the copyright belongs to the original author.