An 2296/intermediate swaps tables 2 (#157)

* create testing data

* table w failed and successful txfers

* initial model

* create transfers2 and testing data

* add expected results

* testing additions

* check-in

* remove not-null requirement

* add business test cases, simplify, need acct owners

* wip

* clean tests and update model

* update model for edge cases

* fix expected test case

* check in

* logic for unordered swaps

* create single model for all dex swaps

* check in updates

* remove mint actions

* general model

* remove jup v4

* clean up

* update transfers2

* update name

* test that specific tx are excluded

* initial changes per pr comments

* add program_id

* Add base_events and combine union

* uncomment incremental logic

* move block_id filter to base_events

* remove flatten, map accounts directly to transfer to/from

* filter out non-swap actions and fix join logic

* remove raydium logic and rename

* remove raydium swap in test

* Include TRPY swaps

* update table config

* add program_id column to yml

* add additional test records

* updates per PR comments

* remove dependency of excluded tx test on csv

* remove unnecessary program_id

* remove orca dex references

* additional inner join logic

* query cleanup/formatting

* add test cases

* add back delegate mapping for saber + test cases

* An 2455/intermediate swaps raydium (#161)

* Intermediate swaps model for raydium

* add test cases, remove unnecessary filter and hook

* tweak event filters and join optimizations

* revisions per pr comments

* update excluded tx tests and remove csv dependency

* add token accts

* add test cases, round amts to 8 decimals

* use associated accts given in swap instruction

* handle multisig authorities

* add test case

Co-authored-by: Desmond Hui <desmond@flipsidecrypto.com>

* add udf to get swapper from multi signer txs

python udf for getting swapper if multiple signers

* use udf for getting multi signer swapper

* add more multi signer test cases

* add mappings and test cases for solrise initiated swaps

Co-authored-by: Desmond Hui <desmond@flipsidecrypto.com>
This commit is contained in:
tarikceric 2022-12-05 10:28:14 -06:00 committed by GitHub
parent f7419aafb6
commit 2cc12c6960
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
11 changed files with 1686 additions and 0 deletions

View File

@ -0,0 +1,94 @@
tx_id,succeeded,swapper,from_mint,from_amt,to_mint,to_amt,swap_index
4psUxWtHv1c3aWUeNDb8tiu8tzwV1anoBbLBhLfz1SvMszWUYNnm8XMCXfpfpdqK52664K4ro7fiLXVunv7sjf7i,TRUE,74EaqbbMDZwnoybvbvifP21bNmQu9aQgpekx4anAuxsx,So11111111111111111111111111111111111111112,1,EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v,198.857425,1
5hjScoKbdHrAnAFf9yyAktrspQWiFSK8yQK3B2ej91MXz4iSwTUh5ryTt2Hnhb4hAAnmQBMHudAtmgGqsrVNCCMp,TRUE,7UwBQLT7uc8DFabDUwRBgTCjm2Tprh79HoDwhPCap6v7,So11111111111111111111111111111111111111112,0.108984108,4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R,2.8511,1
2q8rnKLm5CM2ejsCfeJ1w5JCXefkgW1sVUfL4HmfDqn2rhk2dp8e8U7WHcuCvczWNFqUTZAvsNt48YRVKs1JZcer,TRUE,2GGQEUXqc7dj3HYBXsPCy7kGEoXyXx6k9U8ooDxJtRnn,EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v,55,Gz3u6eJaKEviYpPC5AwUziz891kNX76PNdsmJrnaNNY4,8324.852812161,1
2q8rnKLm5CM2ejsCfeJ1w5JCXefkgW1sVUfL4HmfDqn2rhk2dp8e8U7WHcuCvczWNFqUTZAvsNt48YRVKs1JZcer,TRUE,2GGQEUXqc7dj3HYBXsPCy7kGEoXyXx6k9U8ooDxJtRnn,Gz3u6eJaKEviYpPC5AwUziz891kNX76PNdsmJrnaNNY4,8324.852812161,EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v,55.200353,2
2HYYtA1p674cH6uYoEPkHdtDqBqLZDTGbuJefcJR1NfsAqofJ8kTyXxYhCtcTJxVyiZWni3wctMimii6sWNegwMU,TRUE,J2TL2WhHC1d2AtScxtwaHjYWJkGgPbCuQZgNQ7JjMkMq,EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v,69.55625,7Q2afV64in6N6SeZsAAB81TJzwDoD6zpqmHkzi9Dcavn,0.49425037,1
2HYYtA1p674cH6uYoEPkHdtDqBqLZDTGbuJefcJR1NfsAqofJ8kTyXxYhCtcTJxVyiZWni3wctMimii6sWNegwMU,TRUE,J2TL2WhHC1d2AtScxtwaHjYWJkGgPbCuQZgNQ7JjMkMq,7Q2afV64in6N6SeZsAAB81TJzwDoD6zpqmHkzi9Dcavn,0.49425037,So11111111111111111111111111111111111111112,0.500092956,2
4ppnFcPZq4e25vfXqpMoaKjyFdsbaCQVNmE4UYFYue2F7XcrQJz9VnCoq1AZGczqYKMWuQWmqsobVSK5pSoiwdx7,TRUE,Eda9aTLZvkW1oNYh9xwXAhZ1jpQjmztHrDcLQEFjuqNp,4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R,19.99552,7xKXtg2CW87d97TXJSDpbD5jBkheTqA83TZRuJosgAsU,2763,1
4ppnFcPZq4e25vfXqpMoaKjyFdsbaCQVNmE4UYFYue2F7XcrQJz9VnCoq1AZGczqYKMWuQWmqsobVSK5pSoiwdx7,TRUE,Eda9aTLZvkW1oNYh9xwXAhZ1jpQjmztHrDcLQEFjuqNp,,,4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R,0.005511,2
4ppnFcPZq4e25vfXqpMoaKjyFdsbaCQVNmE4UYFYue2F7XcrQJz9VnCoq1AZGczqYKMWuQWmqsobVSK5pSoiwdx7,TRUE,Eda9aTLZvkW1oNYh9xwXAhZ1jpQjmztHrDcLQEFjuqNp,7xKXtg2CW87d97TXJSDpbD5jBkheTqA83TZRuJosgAsU,2762.999979571,EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v,80.614118,3
3W94CoGdVY9Lo4mRHi3zEq7YYGb3Z4M9hAte2hyA2A2ybAUawTYvJ3Pq7egsCPTrXcUmZ8F4nu4zukYMRkYEXBTN,TRUE,CSF2iMkMcogig1H5Mh8bFmZ2SqLzZeM6juQTjAdXiCso,So11111111111111111111111111111111111111112,0.759743751,mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So,0.736088883,1
5TDdGQREPn6xB8AC9gHhhwbqSc99qsP2pzHJ3s6FTTVDFZ3cUpRS35qtVMQvU2RYroKPZgZSMsKkHgvWwH2Bjgjv,TRUE,Ari31tr1mgSBfB7NrTnGFeYKJHq8XRjvPteuxZvnAegG,EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v,0.6,PHnyhLEnsD9SiP9tk9kHHKiCxCTPFnymzPspDqAicMe,6.981833,1
3q2GQEoUHubwoFTf6pjU9nZYu9ymz5tdWkgpygjnsCsEYvyy2QWfJTgYCcaTvSJ1SW6RN3sz4nrukMm2dDct4ir,TRUE,J2TL2WhHC1d2AtScxtwaHjYWJkGgPbCuQZgNQ7JjMkMq,EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v,107.805,SHDWyBxihqiCj6YekG2GUr7wqKLeLAMK1gHZck9pL6y,127.98,1
3q2GQEoUHubwoFTf6pjU9nZYu9ymz5tdWkgpygjnsCsEYvyy2QWfJTgYCcaTvSJ1SW6RN3sz4nrukMm2dDct4ir,TRUE,J2TL2WhHC1d2AtScxtwaHjYWJkGgPbCuQZgNQ7JjMkMq,,,EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v,0.002736,2
3q2GQEoUHubwoFTf6pjU9nZYu9ymz5tdWkgpygjnsCsEYvyy2QWfJTgYCcaTvSJ1SW6RN3sz4nrukMm2dDct4ir,TRUE,J2TL2WhHC1d2AtScxtwaHjYWJkGgPbCuQZgNQ7JjMkMq,SHDWyBxihqiCj6YekG2GUr7wqKLeLAMK1gHZck9pL6y,127.979999969,So11111111111111111111111111111111111111112,1.002256168,3
5hr56Qdh5ZogtFBaoDPnLroEa7yVAfC6NjbbboNrpUGAoCWcgTtPSXe9Jdx8NhE85u1BAeUT1472C3R42YbDwJXj,TRUE,5gu8vE7cv89RoocZxCPW2nN4rMMuGhb68NTd6hKb2wZD,EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v,22.969288,Ea5SjE2Y6yvCeW5dYTn7PYMuW5ikXkvbGdcmSnXeaLjS,23.08524,1
4JDczNYimuD8Czc2KW6oruTHtis2UQjAe18r52ngeHaxporYBbzYXwAbKK6R1Pk1VCTmuKqSnnnZL7VyYzdTZk5r,TRUE,9VTZx66r7NJt47DWWzwLfyU9uVFpM9BaQWmurwdoVHFH,Ea5SjE2Y6yvCeW5dYTn7PYMuW5ikXkvbGdcmSnXeaLjS,0.099987,BUD1144GGYwmMRFs4Whjfkom5UHqC9a8dZHPVvR2vfPx,0.004894,1
2kyYvZSnQfd5eaew78fzVpUfDYmHVMyKvQpQ7cs3oqFH5U3UuqzNZyDDuS5Um2eFJCSbjPPdAWqkN9SAP6SPHzZ3,TRUE,4VAyiJCirbe7MyRF4GFtJ2upPa9pVUNrDqeyk4BjQZ1E,EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v,106.895063,DubwWZNWiNGMMeeQHPnMATNj77YZPZSAz2WVR5WjLJqz,1288.645966409,1
2kyYvZSnQfd5eaew78fzVpUfDYmHVMyKvQpQ7cs3oqFH5U3UuqzNZyDDuS5Um2eFJCSbjPPdAWqkN9SAP6SPHzZ3,TRUE,4VAyiJCirbe7MyRF4GFtJ2upPa9pVUNrDqeyk4BjQZ1E,EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v,0.107002,,,2
2kyYvZSnQfd5eaew78fzVpUfDYmHVMyKvQpQ7cs3oqFH5U3UuqzNZyDDuS5Um2eFJCSbjPPdAWqkN9SAP6SPHzZ3,TRUE,4VAyiJCirbe7MyRF4GFtJ2upPa9pVUNrDqeyk4BjQZ1E,DubwWZNWiNGMMeeQHPnMATNj77YZPZSAz2WVR5WjLJqz,1287.357319612,So11111111111111111111111111111111111111112,0.79222844,3
2kyYvZSnQfd5eaew78fzVpUfDYmHVMyKvQpQ7cs3oqFH5U3UuqzNZyDDuS5Um2eFJCSbjPPdAWqkN9SAP6SPHzZ3,TRUE,4VAyiJCirbe7MyRF4GFtJ2upPa9pVUNrDqeyk4BjQZ1E,DubwWZNWiNGMMeeQHPnMATNj77YZPZSAz2WVR5WjLJqz,1.288645966,,,4
2xWWgyut3mQdPaeiuQ5G3UtbJT2rsahhp4eeiVaCmnjBbYGdN1jvhG326hvETXVtXNYnqyeCbgh7aMoPsqH9oHK5,TRUE,3pBf38wn65xeMKw6U1HbmrnE8fWMoHFN98ZoinprtNV6,EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v,103.193484,7xKXtg2CW87d97TXJSDpbD5jBkheTqA83TZRuJosgAsU,3428.144575443,1
2xWWgyut3mQdPaeiuQ5G3UtbJT2rsahhp4eeiVaCmnjBbYGdN1jvhG326hvETXVtXNYnqyeCbgh7aMoPsqH9oHK5,TRUE,3pBf38wn65xeMKw6U1HbmrnE8fWMoHFN98ZoinprtNV6,7xKXtg2CW87d97TXJSDpbD5jBkheTqA83TZRuJosgAsU,3424.716429216,So11111111111111111111111111111111111111112,0.762365186,2
2xWWgyut3mQdPaeiuQ5G3UtbJT2rsahhp4eeiVaCmnjBbYGdN1jvhG326hvETXVtXNYnqyeCbgh7aMoPsqH9oHK5,TRUE,3pBf38wn65xeMKw6U1HbmrnE8fWMoHFN98ZoinprtNV6,7xKXtg2CW87d97TXJSDpbD5jBkheTqA83TZRuJosgAsU,3.428144575,,,3
5UexvqZu5dcQ3rN4PV2DuXStLu1aThf4hNs1gH1jEtZbV81XRWiCDUjzKJFNtUEB9dbv8Tu5NNAqzuB47U6EQQ3J,TRUE,J1gXYvi5SnjYkAKqbt7SotGuzdEM6Ff1G3RCxuHyDyXz,Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB,5747,EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v,5746.42461,1
5UexvqZu5dcQ3rN4PV2DuXStLu1aThf4hNs1gH1jEtZbV81XRWiCDUjzKJFNtUEB9dbv8Tu5NNAqzuB47U6EQQ3J,TRUE,J1gXYvi5SnjYkAKqbt7SotGuzdEM6Ff1G3RCxuHyDyXz,Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB,302.490881,EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v,302.508428,2
5gtKQy7xpySbWFXtMGbtM3coc8v9A7dLHf4A3x4TTvE8i3BaHLGrr5QFksjbRLmDob9GePjVjuq5DPhDtTE8cG9M,FALSE,9Eh43X6T9wST3N55HDxfhjkSQL2mF3ggFphM26MwcsEK,EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v,25000,2FPyTwcZLUg1MDrwsyoP4D6s1tM7hAkHYRjkNb5w6Pxk,9.419363,1
5cDK9Qqk6CEcsdtirvtaEtD5aEnhi8iRtjjD4gSq2MHHoi336KnogSJ82iMSzimCZNKXnwSiV5jRSgcBfPsMEuap,TRUE,GNisgcTZZ2WS5PFAEkVUbFso3wNe22cjhmZiEjGcqeHD,So11111111111111111111111111111111111111112,546.15,5oVNBeEEQvYi1cX3ir8Dx5n1P7pdxydbGF2X4TxVusJm,535.080118783,1
5cDK9Qqk6CEcsdtirvtaEtD5aEnhi8iRtjjD4gSq2MHHoi336KnogSJ82iMSzimCZNKXnwSiV5jRSgcBfPsMEuap,TRUE,GNisgcTZZ2WS5PFAEkVUbFso3wNe22cjhmZiEjGcqeHD,So11111111111111111111111111111111111111112,446.85,5oVNBeEEQvYi1cX3ir8Dx5n1P7pdxydbGF2X4TxVusJm,437.640755648,2
4va5YTjeRQKkhqaRHQVFR7LUGe1V6NYz2HqYDW4uCCCJw7veFFeBmCYRoYyfe11BVSzfCu1JR8dC31wwQzTDQhca,TRUE,61pBb8wg3LoZ3B5pW7UxL3zZMSTFELpDb6jGPSThrR97,EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v,40.373314,So11111111111111111111111111111111111111112,0.933728607,1
4va5YTjeRQKkhqaRHQVFR7LUGe1V6NYz2HqYDW4uCCCJw7veFFeBmCYRoYyfe11BVSzfCu1JR8dC31wwQzTDQhca,TRUE,61pBb8wg3LoZ3B5pW7UxL3zZMSTFELpDb6jGPSThrR97,So11111111111111111111111111111111111111112,0.003734914,,,2
5FoqrCd2EUhVGWZSCZsKcXpmsEVjcqWkcG6vXNDTXMfKAoBnGCSg1tziLGad8K37UHy9oKe9WHCQXkzKwqiRBx3o,FALSE,J3xKkSUowia5q483zwQmijSfnVocGsWg6duFzQYHL9Nn,EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v,267.77735,So11111111111111111111111111111111111111112,2.741542943,1
5FoqrCd2EUhVGWZSCZsKcXpmsEVjcqWkcG6vXNDTXMfKAoBnGCSg1tziLGad8K37UHy9oKe9WHCQXkzKwqiRBx3o,FALSE,J3xKkSUowia5q483zwQmijSfnVocGsWg6duFzQYHL9Nn,So11111111111111111111111111111111111111112,2.741542943,EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v,267.72231,2
6234EwRrPAFwzM5rcieMKHpzAjHTX4o2AK5uMVEogFMgz5n596n2cXXNZ7UVp2BiWMzzpihcBwnpaKYVEgMhxzmp,TRUE,J3xKkSUowia5q483zwQmijSfnVocGsWg6duFzQYHL9Nn,mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So,1.512,EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v,211.772161,1
6234EwRrPAFwzM5rcieMKHpzAjHTX4o2AK5uMVEogFMgz5n596n2cXXNZ7UVp2BiWMzzpihcBwnpaKYVEgMhxzmp,TRUE,J3xKkSUowia5q483zwQmijSfnVocGsWg6duFzQYHL9Nn,EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v,211.772161,mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So,1.512029228,2
8d6AQJ5KTJUkn2vb8U6EW2pXLDPEgfwPZ3nEsoBgF212YdsgAiAkatJcnfEcsvvrizxGS8nw8j8VqYNjozXpYs7,TRUE,9aH7PQxKLGv2Z6PRGjvBLuKYGKqFncRfSUeg4ztzrZCM,So11111111111111111111111111111111111111112,10,EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v,986.215356,1
8d6AQJ5KTJUkn2vb8U6EW2pXLDPEgfwPZ3nEsoBgF212YdsgAiAkatJcnfEcsvvrizxGS8nw8j8VqYNjozXpYs7,TRUE,9aH7PQxKLGv2Z6PRGjvBLuKYGKqFncRfSUeg4ztzrZCM,EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v,986.215356,So11111111111111111111111111111111111111112,10.002896001,2
5D9K8nKmHqaiEfNYAbDj6PWfsCCkdg3EcGYszQ9AbaBLC1ve5gpaNPrms1Eruj4aZhTg5DKSp3WAdjkCvHr1WcsY,TRUE,Q5fRgShb9GswfKokajjAba5tsWeRN6wHYP5tBNhsqbU,So11111111111111111111111111111111111111112,0.001,mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So,0.000966306,1
5D9K8nKmHqaiEfNYAbDj6PWfsCCkdg3EcGYszQ9AbaBLC1ve5gpaNPrms1Eruj4aZhTg5DKSp3WAdjkCvHr1WcsY,TRUE,Q5fRgShb9GswfKokajjAba5tsWeRN6wHYP5tBNhsqbU,mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So,0.000966306,So11111111111111111111111111111111111111112,0.000999799,2
57cxdqYXcqAiZwyhEVg8WomEjh68LVmcfBmpzh5cUTi9kaZfWTGWCgBwWshWm3QkBkTzchTcuj2w4Pyhc2MGmyzf,TRUE,FRAnJ8DFBX4PUKqVvndquemt6D4qmVRjtTotVVjEJxxh,So11111111111111111111111111111111111111112,1.70882161,EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v,168.774954,1
57cxdqYXcqAiZwyhEVg8WomEjh68LVmcfBmpzh5cUTi9kaZfWTGWCgBwWshWm3QkBkTzchTcuj2w4Pyhc2MGmyzf,TRUE,FRAnJ8DFBX4PUKqVvndquemt6D4qmVRjtTotVVjEJxxh,EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v,0.168774,,,2
3HUuJga6Xhwbzns8JAXB3BotAJKRFAmua3EtdN6wMEcr3fDUB2NzXD6ZYXJkWDNsg2akc98JcaNDAc24uTkGwwHN,TRUE,J3xKkSUowia5q483zwQmijSfnVocGsWg6duFzQYHL9Nn,EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v,511.855168,mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So,6.05,1
3HUuJga6Xhwbzns8JAXB3BotAJKRFAmua3EtdN6wMEcr3fDUB2NzXD6ZYXJkWDNsg2akc98JcaNDAc24uTkGwwHN,TRUE,J3xKkSUowia5q483zwQmijSfnVocGsWg6duFzQYHL9Nn,,,EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v,0.068585,2
3HUuJga6Xhwbzns8JAXB3BotAJKRFAmua3EtdN6wMEcr3fDUB2NzXD6ZYXJkWDNsg2akc98JcaNDAc24uTkGwwHN,TRUE,J3xKkSUowia5q483zwQmijSfnVocGsWg6duFzQYHL9Nn,mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So,6.05,EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v,512.018668,3
2QTw3GMqsqnV1WdTvhJsELKauEeBP6bo34UKSUbpejxvUeEisZECAkWXaVv7NmwZdJrBxxhnHperdg2PCb1AkNHm,TRUE,81aJvJkJ6CaUhYcGx4VNLiAcDk5nQyqfw4gbstm84Eqh,EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v,34,Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB,34.024478,1
2QTw3GMqsqnV1WdTvhJsELKauEeBP6bo34UKSUbpejxvUeEisZECAkWXaVv7NmwZdJrBxxhnHperdg2PCb1AkNHm,TRUE,81aJvJkJ6CaUhYcGx4VNLiAcDk5nQyqfw4gbstm84Eqh,Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB,34.024478,So11111111111111111111111111111111111111112,0.880711326,2
2QTw3GMqsqnV1WdTvhJsELKauEeBP6bo34UKSUbpejxvUeEisZECAkWXaVv7NmwZdJrBxxhnHperdg2PCb1AkNHm,TRUE,81aJvJkJ6CaUhYcGx4VNLiAcDk5nQyqfw4gbstm84Eqh,So11111111111111111111111111111111111111112,0.007486046,,,3
2hZuCGiMkuXxPJ4jZwKf8zzxzs4gUteDb28ZTFd5KnVpmfseP8YBWzRHuLP63iWiwUgb8mFM74o3cmJmag4YniKU,TRUE,4vp8RAz8qGxrkrNJ1axKJCtUEzXE7CKwtnZGVGE6c8k9,So11111111111111111111111111111111111111112,0.499965047,7vfCXTUXx5WJV5JADk17DUJ4ksgau7utNKj4b963voxs,0.0188,1
2hZuCGiMkuXxPJ4jZwKf8zzxzs4gUteDb28ZTFd5KnVpmfseP8YBWzRHuLP63iWiwUgb8mFM74o3cmJmag4YniKU,TRUE,4vp8RAz8qGxrkrNJ1axKJCtUEzXE7CKwtnZGVGE6c8k9,,,So11111111111111111111111111111111111111112,0.002626511,2
4Xdjhm8219RTPpfsi5tMtBKjbUNgm8Kh2kphNpH5vLqGFxFeh3dcntQT5nMZGFaD93BZWJwFtviB1afjWEdXZRsu,TRUE,7676mEXc51P1Je4D2XrHqVdFcAZmvf3Y2Ujo8GZfWXQc,EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v,28500,So11111111111111111111111111111111111111112,270.3,1
4Xdjhm8219RTPpfsi5tMtBKjbUNgm8Kh2kphNpH5vLqGFxFeh3dcntQT5nMZGFaD93BZWJwFtviB1afjWEdXZRsu,TRUE,7676mEXc51P1Je4D2XrHqVdFcAZmvf3Y2Ujo8GZfWXQc,,,EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v,0.336192,2
4Xdjhm8219RTPpfsi5tMtBKjbUNgm8Kh2kphNpH5vLqGFxFeh3dcntQT5nMZGFaD93BZWJwFtviB1afjWEdXZRsu,TRUE,7676mEXc51P1Je4D2XrHqVdFcAZmvf3Y2Ujo8GZfWXQc,EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v,1498.5,So11111111111111111111111111111111111111112,14.218227761,3
4Xdjhm8219RTPpfsi5tMtBKjbUNgm8Kh2kphNpH5vLqGFxFeh3dcntQT5nMZGFaD93BZWJwFtviB1afjWEdXZRsu,TRUE,7676mEXc51P1Je4D2XrHqVdFcAZmvf3Y2Ujo8GZfWXQc,EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v,1.5,,,4
2CAg4pz6eyZ6eaZznsr4WseRkscjETmzRJ68LJKAxHnd6Whd4Yrvrcfq3UxsVjrF835GF7upMUqSvL6WVJAHLJSc,TRUE,8ZryiFWWZmMT7MHnNBhHffumcEBu25RYMyQhYEMWGFzu,ATLASXmbPQxBUYbxPsV97usA3fPQYEqzQBUHgiFCUsXx,59.40825068,So11111111111111111111111111111111111111112,0.026927753,1
5TDdGQREPn6xB8AC9gHhhwbqSc99qsP2pzHJ3s6FTTVDFZ3cUpRS35qtVMQvU2RYroKPZgZSMsKkHgvWwH2Bjgjv,TRUE,Ari31tr1mgSBfB7NrTnGFeYKJHq8XRjvPteuxZvnAegG,EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v,0.6,PHnyhLEnsD9SiP9tk9kHHKiCxCTPFnymzPspDqAicMe,6.981833,1
3yVbSdBHnaoccDG4XpbTQrV1NNbqNiVdKYHio1iPNAnRpdnP1xK1sg6NdkdZKRhjj7tnve589UX3p55UBGWssTCD,TRUE,J2TL2WhHC1d2AtScxtwaHjYWJkGgPbCuQZgNQ7JjMkMq,So11111111111111111111111111111111111111112,1,Ea5SjE2Y6yvCeW5dYTn7PYMuW5ikXkvbGdcmSnXeaLjS,104.86192,1
3yVbSdBHnaoccDG4XpbTQrV1NNbqNiVdKYHio1iPNAnRpdnP1xK1sg6NdkdZKRhjj7tnve589UX3p55UBGWssTCD,TRUE,J2TL2WhHC1d2AtScxtwaHjYWJkGgPbCuQZgNQ7JjMkMq,Ea5SjE2Y6yvCeW5dYTn7PYMuW5ikXkvbGdcmSnXeaLjS,104.86192,EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v,104.435351,2
3W94CoGdVY9Lo4mRHi3zEq7YYGb3Z4M9hAte2hyA2A2ybAUawTYvJ3Pq7egsCPTrXcUmZ8F4nu4zukYMRkYEXBTN,TRUE,CSF2iMkMcogig1H5Mh8bFmZ2SqLzZeM6juQTjAdXiCso,So11111111111111111111111111111111111111112,0.759743751,mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So,0.736088883,1
33fd31332UvoH9YLi2ZDarDqWqmuD2fsFDigc79LKtT1XVYY6N1M8htAkPfjP989yDfKUv8EmprRAcFrZSxQ38Cn,TRUE,An8Q8yMbaYfFY9jhYj59vSc3p15hxiPcY1qYdaVcVyEK,EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v,218.547238,So11111111111111111111111111111111111111112,1.601351659,1
3c9M2C4mE3Q14PmiTMTHkQNMkzPRZSCdMXRc1oYooV8iiFJGLyfSMRgsZVWrXVWqsgvsaw6cgv21DXxCRamK8JHJ,TRUE,D6FMG1nxZAZcPgVjfKcxKzSoTuWUrm3gwABmgn9cdyX4,,,EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v,0.398722,1
3c9M2C4mE3Q14PmiTMTHkQNMkzPRZSCdMXRc1oYooV8iiFJGLyfSMRgsZVWrXVWqsgvsaw6cgv21DXxCRamK8JHJ,TRUE,D6FMG1nxZAZcPgVjfKcxKzSoTuWUrm3gwABmgn9cdyX4,EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v,0.000398,Fse2oFDfbwT89CqtuoFaHCBnGTMFLartDYDjPLZyc7e,0,2
nmN84qNUcZtGpCCxm1r8Qct3Z8vgPMRXFfd7QFohE28dVociEgbSA9xrkn44WgKa8GbTH86u3EiicCakCsbKiya,TRUE,D6FMG1nxZAZcPgVjfKcxKzSoTuWUrm3gwABmgn9cdyX4,,,EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v,0.403479,1
nmN84qNUcZtGpCCxm1r8Qct3Z8vgPMRXFfd7QFohE28dVociEgbSA9xrkn44WgKa8GbTH86u3EiicCakCsbKiya,TRUE,D6FMG1nxZAZcPgVjfKcxKzSoTuWUrm3gwABmgn9cdyX4,EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v,0.000403,Fse2oFDfbwT89CqtuoFaHCBnGTMFLartDYDjPLZyc7e,9,2
24XyX2uYVEJoXNLhkgeYPoTtsLDLUoqcxc65sWL4Yn4w9fcUYbbYpLwiFg2PoWgZ5sqUwAjjhvk28DaEP5Vm2mR2,TRUE,5sRWm1HRK3d4NNxYV81xYaW5CqvKsGASnM4Z297RD56v,EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v,18736.605642,FCqfQSujuPxy6V42UvafBhsysWtEq1vhjfMN1PUbgaxA,18742.37017709,1
3YjCXu1hbUC31rB7fq9YWry731dAK2SQiReZvaG7vzxg2T9Go1CKqjizk835Ym6emh2xUTS6pafGF2hAg5nRcW6x,TRUE,GUvoD8DWtUPXxiQNJAqJFnHyAytt5w7Zpb4Du3ySw3W9,8XSsNvaKU9FDhYWAv7Yc7qSNwuJSzVrXBNEk7AFiWF69,1600,JEFFSQ3s8T3wKsvp4tnRAsUBW7Cqgnf8ukBZC4C8XBm1,1597.57537839,1
3YjCXu1hbUC31rB7fq9YWry731dAK2SQiReZvaG7vzxg2T9Go1CKqjizk835Ym6emh2xUTS6pafGF2hAg5nRcW6x,TRUE,GUvoD8DWtUPXxiQNJAqJFnHyAytt5w7Zpb4Du3ySw3W9,EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v,1597.575378,Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB,1597.52423,2
4YaaEGVvhr1ojqv1kSse5zBEs8RLSvZfhfFmJPPRYPKuK7QLdwxxFP9wkbrjRj5HZNZHMRAr6JkCxRnM3KpWzxHP,TRUE,DdDTLPkUf5ZsuhytMkcfVZ5sku6jBNdv9GnYBzorQEji,EjmyN6qEC1Tf1JxiG1ae7UTJhUxSwk1TCWNWqxWV4J6o,2197.33847522,88881Hu2jGMfCs9tMu5Rr7Ah7WBNBuXqde4nR5ZmKYYy,2196.38096256,1
37LsDiRR7kC5PBoWp3AEvBbuxV45r2qPywbAyFKCYdYQi7uaG11aLhpmoEP5CnBwUzFNF13ZpkCUBELG3yy1gPDV,TRUE,AU2myQWVKTCfSthGGyLEUCHgoYr9g7LmxhftDRFBrtng,JEFFSQ3s8T3wKsvp4tnRAsUBW7Cqgnf8ukBZC4C8XBm1,500,PUhuAtMHsKavMTwZsLaDeKy2jb7ciETHJP7rhbKLJGY,499.017073663,1
3YVDZZ54VG7vNQvdzkHrx4sfMcBeSUoAUg7U8cE5Rod3GLsXShTAg53BEZ8fHB2Uwkq7Yh75cN9p82H1JVXYXHyz,TRUE,5WZ2k1jttJiM6grc49QrvW7V9mh1RnxG59nYD7c1DqGV,7xKXtg2CW87d97TXJSDpbD5jBkheTqA83TZRuJosgAsU,222.405638284,EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v,2.16,1
7mN7acM2k7mspxfkqhq66xx8nqLa8BigcDwM8URB48QRr9MkiL5E6nG6hrCyURrqRAssAGZzrsVhRfVtKvhmMS9,FALSE,GfCaec9YGspHjEDk199z4X8NqR4vXopwM1afRn9CMhqB,EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v,200,DUSTawucrTsGU8hcqRdHDCbuYhCPADMLM2VcCb8VnFnQ,65.745211297,1
7mN7acM2k7mspxfkqhq66xx8nqLa8BigcDwM8URB48QRr9MkiL5E6nG6hrCyURrqRAssAGZzrsVhRfVtKvhmMS9,FALSE,GfCaec9YGspHjEDk199z4X8NqR4vXopwM1afRn9CMhqB,DUSTawucrTsGU8hcqRdHDCbuYhCPADMLM2VcCb8VnFnQ,65,EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v,188.4246,2
2YYqA2s9bwZLiTEfBoQYCdXKznFFjHy1orhTHpP6MG63m29uckPovWQjbzoCnUbRcvP3PvR3btLK7kTHFc4PmqiY,TRUE,5hoGstgd4FKaBxvBMbZwPNb2vo41VXWhwxt86X4KHL43,EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v,0.50363,So11111111111111111111111111111111111111112,0.013245787,1
8NvbDSTvXQtBexQTSgQCqeZDBsZX4vzSeEnxEQ72aXbbxYmEbSxkfCVxm2oe9JCLLD6hVVYQgK24hkHPq1ncKw1,TRUE,5WZ2k1jttJiM6grc49QrvW7V9mh1RnxG59nYD7c1DqGV,7xKXtg2CW87d97TXJSDpbD5jBkheTqA83TZRuJosgAsU,729.722800013,EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v,7.01,1
5rMrTe9UhfSTm6ZNSjN7UqNhuDFKaZmbCmgHKqhSRAZi5cAs9d6zuff95RP9sbRsbkmQX3jRtGAn2erarE9pV8cD,TRUE,5kqGoFPBGoYpFcxpa6BFRp3zfNormf52KCo5vQ8Qn5bx,So11111111111111111111111111111111111111112,0,mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So,0.000000001,1
5rMrTe9UhfSTm6ZNSjN7UqNhuDFKaZmbCmgHKqhSRAZi5cAs9d6zuff95RP9sbRsbkmQX3jRtGAn2erarE9pV8cD,TRUE,5kqGoFPBGoYpFcxpa6BFRp3zfNormf52KCo5vQ8Qn5bx,So11111111111111111111111111111111111111112,0,mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So,0.000000001,2
5rMrTe9UhfSTm6ZNSjN7UqNhuDFKaZmbCmgHKqhSRAZi5cAs9d6zuff95RP9sbRsbkmQX3jRtGAn2erarE9pV8cD,TRUE,5kqGoFPBGoYpFcxpa6BFRp3zfNormf52KCo5vQ8Qn5bx,mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So,0.000000001,So11111111111111111111111111111111111111112,0.000000001,3
ojKvTxF4MXgPEoxYYyxakcRbDko4eSYhmUqpCe9hTLJ4QSBxgfotDRbFW2v829N1zapX8MVeQ2D2kX3XnT8hwdL,TRUE,4KVBskF8LWptkBCC1Ldj98Ym7ndHhvVfnwS3AJDwUSzw,9vMJfxuKxXBoEa7rM12mYLMwTacLMLDJqHozw96WQL8i,19.002452,EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v,0.722861,1
ojKvTxF4MXgPEoxYYyxakcRbDko4eSYhmUqpCe9hTLJ4QSBxgfotDRbFW2v829N1zapX8MVeQ2D2kX3XnT8hwdL,TRUE,4KVBskF8LWptkBCC1Ldj98Ym7ndHhvVfnwS3AJDwUSzw,EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v,0.722861,9vMJfxuKxXBoEa7rM12mYLMwTacLMLDJqHozw96WQL8i,19.020759,2
BkLJ56E93ai36Mwx7Wv8PoXVZ2RZUbCGCGMawZWU2nbEpU3QiipyG9Lr6CajGMtM6s5BnPWqSYuLLf3GzsAe5hQ,TRUE,HGSXs82RMXbTULPwJmrBdB33zrSvn3qvhk7Nrjwb8BVA,USDH1SM1ojwWUga67PGrgFWUHibbjqMvuMaDkRJTgkX,1,EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v,0.998039,1
BkLJ56E93ai36Mwx7Wv8PoXVZ2RZUbCGCGMawZWU2nbEpU3QiipyG9Lr6CajGMtM6s5BnPWqSYuLLf3GzsAe5hQ,TRUE,HGSXs82RMXbTULPwJmrBdB33zrSvn3qvhk7Nrjwb8BVA,EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v,0.998039,7dHbWXmci3dT8UFYWYZweBLXgycu7Y3iL6trKn1Y7ARj,0.027274552,2
BkLJ56E93ai36Mwx7Wv8PoXVZ2RZUbCGCGMawZWU2nbEpU3QiipyG9Lr6CajGMtM6s5BnPWqSYuLLf3GzsAe5hQ,TRUE,HGSXs82RMXbTULPwJmrBdB33zrSvn3qvhk7Nrjwb8BVA,7dHbWXmci3dT8UFYWYZweBLXgycu7Y3iL6trKn1Y7ARj,0.027274551,USDH1SM1ojwWUga67PGrgFWUHibbjqMvuMaDkRJTgkX,1.00022,3
Zn4aQD6ScgbNfmcKRSYAuyDJ4AWibjwmKGLW2W4QrvMpWtxvHxTta7cxUYMgWTKTHHACF9hV78yKFdkG3CddKju,TRUE,ogDsdvMKRRRMmsrT2hTPdkQBu1qY2z1jBDzgpi8HZri,7dHbWXmci3dT8UFYWYZweBLXgycu7Y3iL6trKn1Y7ARj,5.28470615,So11111111111111111111111111111111111111112,5.52707464,1
4QJDoXfwFnR354DApr36GCLJGjamwwwSTkgVEwpLbTgwEy8LCqEJsiJPfjEfwQhNtQPQJnmqUjTEcBNRKQ1vfNPN,TRUE,HdGsWDaxSDBesEYXmAYsG7WZYkKxUv3qhGJgmXSXnm3d,So11111111111111111111111111111111111111112,0.429831294,mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So,0.407981907,1
5eCovtQh92hfW16oLWCv82uBkbXbkR1GJV6DvYYqik7mSoiJftUy39TqGgJqzkkMD2SpVYNWJPsuxGFHPGn9iVnb,TRUE,FnJZCfHc6LuZKCWMJGsHmpmqPeVVpxiJR3upiFp8TWsG,CASHVDm2wsJXfhj6VWxb7GiMdoLc17Du7paH4bNr5woT,12.782187,EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v,12.784509,1
3UrFWezXZNQKf1uScXa7ZWuLW1xGvTwT8zexhP4STWfjkHW22cpUBNVRfn82wZGo1LYVMsrRKiaH3FV3NfzrSssH,TRUE,GtRpifc7ULdyi7zriCU8bs8oDrUR5xfVRdNUeCjoBX37,So11111111111111111111111111111111111111112,1.02,7dHbWXmci3dT8UFYWYZweBLXgycu7Y3iL6trKn1Y7ARj,0.972054099,1
5kvu9vpkL4zRo7fRaSDAv5iebwKmiVXWWMKx5puXUcszqRcg8YmX5KLHD2NG2BmKYMCAJddTrrJ1M7vYEUaKJtYp,TRUE,9DiVSe2kfRuKK74L2otNtHqdpNbpqD3aGY1QDtRjuVq5,EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v,0.0001,Ea5SjE2Y6yvCeW5dYTn7PYMuW5ikXkvbGdcmSnXeaLjS,0.000101,1
394empadgqiJ5EE2KHbTsQVA8V9mssJxFVc5Ygs1jT3DkZYbPxWVyLdLiuSTWbQKCcYy6FMkmCwX5Dm4rZmNe8E4,TRUE,AUq7ZTdLessJAEYWicbiLM8dxERVMNaU5rVjndp9MKU5,EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v,0.298803,So11111111111111111111111111111111111111112,0.007107501,1
394empadgqiJ5EE2KHbTsQVA8V9mssJxFVc5Ygs1jT3DkZYbPxWVyLdLiuSTWbQKCcYy6FMkmCwX5Dm4rZmNe8E4,TRUE,AUq7ZTdLessJAEYWicbiLM8dxERVMNaU5rVjndp9MKU5,So11111111111111111111111111111111111111112,0.000017768,,,2
4TnvetxYacY6NCZfLNm8rQARU7nDdg5ADrXEfGiiT946ZhDZhSRJuBHcTpQs2BFEHHNc7gr8dMZqV2L8hQAfwyc6,TRUE,E7L6VcjJHw7ArB2umHwygn5dbBYRMSmNWz3kN7r8y3up,4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R,0.985331,So11111111111111111111111111111111111111112,0.016440047,1
4TnvetxYacY6NCZfLNm8rQARU7nDdg5ADrXEfGiiT946ZhDZhSRJuBHcTpQs2BFEHHNc7gr8dMZqV2L8hQAfwyc6,TRUE,E7L6VcjJHw7ArB2umHwygn5dbBYRMSmNWz3kN7r8y3up,So11111111111111111111111111111111111111112,0.000411001,,,2
5VYTErgkrxA6Z52UczoPpE1x7UCdAQeeTy4WLxaoWAPiMBNuUPhTwYz8aBDMhgECcnsQVy7y9JVaH5W9ka2kBAUE,TRUE,ExCnKpsswsQi4c86gZADu4JCAwBYBDrg2ytbqDXdy7fm,2FPyTwcZLUg1MDrwsyoP4D6s1tM7hAkHYRjkNb5w6Pxk,1.615,EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v,3245.932366,1
5CGW8p9v9gWqF4vcmornAoiFyPptvgtyjsGpGHF6HdowRL24xUx5txqK6oXQuh9w2xNngYtWrsjhGe1Ex62Wt852,TRUE,SAueccx6WsL4pujbfib14C6M1gPfikXBUSt16YRxFgv,EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v,679.934673,ATLASXmbPQxBUYbxPsV97usA3fPQYEqzQBUHgiFCUsXx,74733.50602518,1
3sRvFwjkHorCbgjdpyHmzUoChRgiR6Hrg74JZG6TnfND2jwnUTv9j2jRnKPkCfUL3HL1JRW5ZgwRKS3P2oxeou97,TRUE,GK5k5riTuuSwSAE1HP5PHCsrFDBP8YoGivAwTzWPuRqE,So11111111111111111111111111111111111111112,27.124552627,7dHbWXmci3dT8UFYWYZweBLXgycu7Y3iL6trKn1Y7ARj,25.510966409,1
3sRvFwjkHorCbgjdpyHmzUoChRgiR6Hrg74JZG6TnfND2jwnUTv9j2jRnKPkCfUL3HL1JRW5ZgwRKS3P2oxeou97,TRUE,GK5k5riTuuSwSAE1HP5PHCsrFDBP8YoGivAwTzWPuRqE,7dHbWXmci3dT8UFYWYZweBLXgycu7Y3iL6trKn1Y7ARj,25.510966409,EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v,863.952462,2
1 tx_id succeeded swapper from_mint from_amt to_mint to_amt swap_index
2 4psUxWtHv1c3aWUeNDb8tiu8tzwV1anoBbLBhLfz1SvMszWUYNnm8XMCXfpfpdqK52664K4ro7fiLXVunv7sjf7i TRUE 74EaqbbMDZwnoybvbvifP21bNmQu9aQgpekx4anAuxsx So11111111111111111111111111111111111111112 1 EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v 198.857425 1
3 5hjScoKbdHrAnAFf9yyAktrspQWiFSK8yQK3B2ej91MXz4iSwTUh5ryTt2Hnhb4hAAnmQBMHudAtmgGqsrVNCCMp TRUE 7UwBQLT7uc8DFabDUwRBgTCjm2Tprh79HoDwhPCap6v7 So11111111111111111111111111111111111111112 0.108984108 4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R 2.8511 1
4 2q8rnKLm5CM2ejsCfeJ1w5JCXefkgW1sVUfL4HmfDqn2rhk2dp8e8U7WHcuCvczWNFqUTZAvsNt48YRVKs1JZcer TRUE 2GGQEUXqc7dj3HYBXsPCy7kGEoXyXx6k9U8ooDxJtRnn EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v 55 Gz3u6eJaKEviYpPC5AwUziz891kNX76PNdsmJrnaNNY4 8324.852812161 1
5 2q8rnKLm5CM2ejsCfeJ1w5JCXefkgW1sVUfL4HmfDqn2rhk2dp8e8U7WHcuCvczWNFqUTZAvsNt48YRVKs1JZcer TRUE 2GGQEUXqc7dj3HYBXsPCy7kGEoXyXx6k9U8ooDxJtRnn Gz3u6eJaKEviYpPC5AwUziz891kNX76PNdsmJrnaNNY4 8324.852812161 EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v 55.200353 2
6 2HYYtA1p674cH6uYoEPkHdtDqBqLZDTGbuJefcJR1NfsAqofJ8kTyXxYhCtcTJxVyiZWni3wctMimii6sWNegwMU TRUE J2TL2WhHC1d2AtScxtwaHjYWJkGgPbCuQZgNQ7JjMkMq EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v 69.55625 7Q2afV64in6N6SeZsAAB81TJzwDoD6zpqmHkzi9Dcavn 0.49425037 1
7 2HYYtA1p674cH6uYoEPkHdtDqBqLZDTGbuJefcJR1NfsAqofJ8kTyXxYhCtcTJxVyiZWni3wctMimii6sWNegwMU TRUE J2TL2WhHC1d2AtScxtwaHjYWJkGgPbCuQZgNQ7JjMkMq 7Q2afV64in6N6SeZsAAB81TJzwDoD6zpqmHkzi9Dcavn 0.49425037 So11111111111111111111111111111111111111112 0.500092956 2
8 4ppnFcPZq4e25vfXqpMoaKjyFdsbaCQVNmE4UYFYue2F7XcrQJz9VnCoq1AZGczqYKMWuQWmqsobVSK5pSoiwdx7 TRUE Eda9aTLZvkW1oNYh9xwXAhZ1jpQjmztHrDcLQEFjuqNp 4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R 19.99552 7xKXtg2CW87d97TXJSDpbD5jBkheTqA83TZRuJosgAsU 2763 1
9 4ppnFcPZq4e25vfXqpMoaKjyFdsbaCQVNmE4UYFYue2F7XcrQJz9VnCoq1AZGczqYKMWuQWmqsobVSK5pSoiwdx7 TRUE Eda9aTLZvkW1oNYh9xwXAhZ1jpQjmztHrDcLQEFjuqNp 4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R 0.005511 2
10 4ppnFcPZq4e25vfXqpMoaKjyFdsbaCQVNmE4UYFYue2F7XcrQJz9VnCoq1AZGczqYKMWuQWmqsobVSK5pSoiwdx7 TRUE Eda9aTLZvkW1oNYh9xwXAhZ1jpQjmztHrDcLQEFjuqNp 7xKXtg2CW87d97TXJSDpbD5jBkheTqA83TZRuJosgAsU 2762.999979571 EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v 80.614118 3
11 3W94CoGdVY9Lo4mRHi3zEq7YYGb3Z4M9hAte2hyA2A2ybAUawTYvJ3Pq7egsCPTrXcUmZ8F4nu4zukYMRkYEXBTN TRUE CSF2iMkMcogig1H5Mh8bFmZ2SqLzZeM6juQTjAdXiCso So11111111111111111111111111111111111111112 0.759743751 mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So 0.736088883 1
12 5TDdGQREPn6xB8AC9gHhhwbqSc99qsP2pzHJ3s6FTTVDFZ3cUpRS35qtVMQvU2RYroKPZgZSMsKkHgvWwH2Bjgjv TRUE Ari31tr1mgSBfB7NrTnGFeYKJHq8XRjvPteuxZvnAegG EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v 0.6 PHnyhLEnsD9SiP9tk9kHHKiCxCTPFnymzPspDqAicMe 6.981833 1
13 3q2GQEoUHubwoFTf6pjU9nZYu9ymz5tdWkgpygjnsCsEYvyy2QWfJTgYCcaTvSJ1SW6RN3sz4nrukMm2dDct4ir TRUE J2TL2WhHC1d2AtScxtwaHjYWJkGgPbCuQZgNQ7JjMkMq EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v 107.805 SHDWyBxihqiCj6YekG2GUr7wqKLeLAMK1gHZck9pL6y 127.98 1
14 3q2GQEoUHubwoFTf6pjU9nZYu9ymz5tdWkgpygjnsCsEYvyy2QWfJTgYCcaTvSJ1SW6RN3sz4nrukMm2dDct4ir TRUE J2TL2WhHC1d2AtScxtwaHjYWJkGgPbCuQZgNQ7JjMkMq EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v 0.002736 2
15 3q2GQEoUHubwoFTf6pjU9nZYu9ymz5tdWkgpygjnsCsEYvyy2QWfJTgYCcaTvSJ1SW6RN3sz4nrukMm2dDct4ir TRUE J2TL2WhHC1d2AtScxtwaHjYWJkGgPbCuQZgNQ7JjMkMq SHDWyBxihqiCj6YekG2GUr7wqKLeLAMK1gHZck9pL6y 127.979999969 So11111111111111111111111111111111111111112 1.002256168 3
16 5hr56Qdh5ZogtFBaoDPnLroEa7yVAfC6NjbbboNrpUGAoCWcgTtPSXe9Jdx8NhE85u1BAeUT1472C3R42YbDwJXj TRUE 5gu8vE7cv89RoocZxCPW2nN4rMMuGhb68NTd6hKb2wZD EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v 22.969288 Ea5SjE2Y6yvCeW5dYTn7PYMuW5ikXkvbGdcmSnXeaLjS 23.08524 1
17 4JDczNYimuD8Czc2KW6oruTHtis2UQjAe18r52ngeHaxporYBbzYXwAbKK6R1Pk1VCTmuKqSnnnZL7VyYzdTZk5r TRUE 9VTZx66r7NJt47DWWzwLfyU9uVFpM9BaQWmurwdoVHFH Ea5SjE2Y6yvCeW5dYTn7PYMuW5ikXkvbGdcmSnXeaLjS 0.099987 BUD1144GGYwmMRFs4Whjfkom5UHqC9a8dZHPVvR2vfPx 0.004894 1
18 2kyYvZSnQfd5eaew78fzVpUfDYmHVMyKvQpQ7cs3oqFH5U3UuqzNZyDDuS5Um2eFJCSbjPPdAWqkN9SAP6SPHzZ3 TRUE 4VAyiJCirbe7MyRF4GFtJ2upPa9pVUNrDqeyk4BjQZ1E EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v 106.895063 DubwWZNWiNGMMeeQHPnMATNj77YZPZSAz2WVR5WjLJqz 1288.645966409 1
19 2kyYvZSnQfd5eaew78fzVpUfDYmHVMyKvQpQ7cs3oqFH5U3UuqzNZyDDuS5Um2eFJCSbjPPdAWqkN9SAP6SPHzZ3 TRUE 4VAyiJCirbe7MyRF4GFtJ2upPa9pVUNrDqeyk4BjQZ1E EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v 0.107002 2
20 2kyYvZSnQfd5eaew78fzVpUfDYmHVMyKvQpQ7cs3oqFH5U3UuqzNZyDDuS5Um2eFJCSbjPPdAWqkN9SAP6SPHzZ3 TRUE 4VAyiJCirbe7MyRF4GFtJ2upPa9pVUNrDqeyk4BjQZ1E DubwWZNWiNGMMeeQHPnMATNj77YZPZSAz2WVR5WjLJqz 1287.357319612 So11111111111111111111111111111111111111112 0.79222844 3
21 2kyYvZSnQfd5eaew78fzVpUfDYmHVMyKvQpQ7cs3oqFH5U3UuqzNZyDDuS5Um2eFJCSbjPPdAWqkN9SAP6SPHzZ3 TRUE 4VAyiJCirbe7MyRF4GFtJ2upPa9pVUNrDqeyk4BjQZ1E DubwWZNWiNGMMeeQHPnMATNj77YZPZSAz2WVR5WjLJqz 1.288645966 4
22 2xWWgyut3mQdPaeiuQ5G3UtbJT2rsahhp4eeiVaCmnjBbYGdN1jvhG326hvETXVtXNYnqyeCbgh7aMoPsqH9oHK5 TRUE 3pBf38wn65xeMKw6U1HbmrnE8fWMoHFN98ZoinprtNV6 EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v 103.193484 7xKXtg2CW87d97TXJSDpbD5jBkheTqA83TZRuJosgAsU 3428.144575443 1
23 2xWWgyut3mQdPaeiuQ5G3UtbJT2rsahhp4eeiVaCmnjBbYGdN1jvhG326hvETXVtXNYnqyeCbgh7aMoPsqH9oHK5 TRUE 3pBf38wn65xeMKw6U1HbmrnE8fWMoHFN98ZoinprtNV6 7xKXtg2CW87d97TXJSDpbD5jBkheTqA83TZRuJosgAsU 3424.716429216 So11111111111111111111111111111111111111112 0.762365186 2
24 2xWWgyut3mQdPaeiuQ5G3UtbJT2rsahhp4eeiVaCmnjBbYGdN1jvhG326hvETXVtXNYnqyeCbgh7aMoPsqH9oHK5 TRUE 3pBf38wn65xeMKw6U1HbmrnE8fWMoHFN98ZoinprtNV6 7xKXtg2CW87d97TXJSDpbD5jBkheTqA83TZRuJosgAsU 3.428144575 3
25 5UexvqZu5dcQ3rN4PV2DuXStLu1aThf4hNs1gH1jEtZbV81XRWiCDUjzKJFNtUEB9dbv8Tu5NNAqzuB47U6EQQ3J TRUE J1gXYvi5SnjYkAKqbt7SotGuzdEM6Ff1G3RCxuHyDyXz Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB 5747 EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v 5746.42461 1
26 5UexvqZu5dcQ3rN4PV2DuXStLu1aThf4hNs1gH1jEtZbV81XRWiCDUjzKJFNtUEB9dbv8Tu5NNAqzuB47U6EQQ3J TRUE J1gXYvi5SnjYkAKqbt7SotGuzdEM6Ff1G3RCxuHyDyXz Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB 302.490881 EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v 302.508428 2
27 5gtKQy7xpySbWFXtMGbtM3coc8v9A7dLHf4A3x4TTvE8i3BaHLGrr5QFksjbRLmDob9GePjVjuq5DPhDtTE8cG9M FALSE 9Eh43X6T9wST3N55HDxfhjkSQL2mF3ggFphM26MwcsEK EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v 25000 2FPyTwcZLUg1MDrwsyoP4D6s1tM7hAkHYRjkNb5w6Pxk 9.419363 1
28 5cDK9Qqk6CEcsdtirvtaEtD5aEnhi8iRtjjD4gSq2MHHoi336KnogSJ82iMSzimCZNKXnwSiV5jRSgcBfPsMEuap TRUE GNisgcTZZ2WS5PFAEkVUbFso3wNe22cjhmZiEjGcqeHD So11111111111111111111111111111111111111112 546.15 5oVNBeEEQvYi1cX3ir8Dx5n1P7pdxydbGF2X4TxVusJm 535.080118783 1
29 5cDK9Qqk6CEcsdtirvtaEtD5aEnhi8iRtjjD4gSq2MHHoi336KnogSJ82iMSzimCZNKXnwSiV5jRSgcBfPsMEuap TRUE GNisgcTZZ2WS5PFAEkVUbFso3wNe22cjhmZiEjGcqeHD So11111111111111111111111111111111111111112 446.85 5oVNBeEEQvYi1cX3ir8Dx5n1P7pdxydbGF2X4TxVusJm 437.640755648 2
30 4va5YTjeRQKkhqaRHQVFR7LUGe1V6NYz2HqYDW4uCCCJw7veFFeBmCYRoYyfe11BVSzfCu1JR8dC31wwQzTDQhca TRUE 61pBb8wg3LoZ3B5pW7UxL3zZMSTFELpDb6jGPSThrR97 EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v 40.373314 So11111111111111111111111111111111111111112 0.933728607 1
31 4va5YTjeRQKkhqaRHQVFR7LUGe1V6NYz2HqYDW4uCCCJw7veFFeBmCYRoYyfe11BVSzfCu1JR8dC31wwQzTDQhca TRUE 61pBb8wg3LoZ3B5pW7UxL3zZMSTFELpDb6jGPSThrR97 So11111111111111111111111111111111111111112 0.003734914 2
32 5FoqrCd2EUhVGWZSCZsKcXpmsEVjcqWkcG6vXNDTXMfKAoBnGCSg1tziLGad8K37UHy9oKe9WHCQXkzKwqiRBx3o FALSE J3xKkSUowia5q483zwQmijSfnVocGsWg6duFzQYHL9Nn EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v 267.77735 So11111111111111111111111111111111111111112 2.741542943 1
33 5FoqrCd2EUhVGWZSCZsKcXpmsEVjcqWkcG6vXNDTXMfKAoBnGCSg1tziLGad8K37UHy9oKe9WHCQXkzKwqiRBx3o FALSE J3xKkSUowia5q483zwQmijSfnVocGsWg6duFzQYHL9Nn So11111111111111111111111111111111111111112 2.741542943 EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v 267.72231 2
34 6234EwRrPAFwzM5rcieMKHpzAjHTX4o2AK5uMVEogFMgz5n596n2cXXNZ7UVp2BiWMzzpihcBwnpaKYVEgMhxzmp TRUE J3xKkSUowia5q483zwQmijSfnVocGsWg6duFzQYHL9Nn mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So 1.512 EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v 211.772161 1
35 6234EwRrPAFwzM5rcieMKHpzAjHTX4o2AK5uMVEogFMgz5n596n2cXXNZ7UVp2BiWMzzpihcBwnpaKYVEgMhxzmp TRUE J3xKkSUowia5q483zwQmijSfnVocGsWg6duFzQYHL9Nn EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v 211.772161 mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So 1.512029228 2
36 8d6AQJ5KTJUkn2vb8U6EW2pXLDPEgfwPZ3nEsoBgF212YdsgAiAkatJcnfEcsvvrizxGS8nw8j8VqYNjozXpYs7 TRUE 9aH7PQxKLGv2Z6PRGjvBLuKYGKqFncRfSUeg4ztzrZCM So11111111111111111111111111111111111111112 10 EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v 986.215356 1
37 8d6AQJ5KTJUkn2vb8U6EW2pXLDPEgfwPZ3nEsoBgF212YdsgAiAkatJcnfEcsvvrizxGS8nw8j8VqYNjozXpYs7 TRUE 9aH7PQxKLGv2Z6PRGjvBLuKYGKqFncRfSUeg4ztzrZCM EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v 986.215356 So11111111111111111111111111111111111111112 10.002896001 2
38 5D9K8nKmHqaiEfNYAbDj6PWfsCCkdg3EcGYszQ9AbaBLC1ve5gpaNPrms1Eruj4aZhTg5DKSp3WAdjkCvHr1WcsY TRUE Q5fRgShb9GswfKokajjAba5tsWeRN6wHYP5tBNhsqbU So11111111111111111111111111111111111111112 0.001 mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So 0.000966306 1
39 5D9K8nKmHqaiEfNYAbDj6PWfsCCkdg3EcGYszQ9AbaBLC1ve5gpaNPrms1Eruj4aZhTg5DKSp3WAdjkCvHr1WcsY TRUE Q5fRgShb9GswfKokajjAba5tsWeRN6wHYP5tBNhsqbU mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So 0.000966306 So11111111111111111111111111111111111111112 0.000999799 2
40 57cxdqYXcqAiZwyhEVg8WomEjh68LVmcfBmpzh5cUTi9kaZfWTGWCgBwWshWm3QkBkTzchTcuj2w4Pyhc2MGmyzf TRUE FRAnJ8DFBX4PUKqVvndquemt6D4qmVRjtTotVVjEJxxh So11111111111111111111111111111111111111112 1.70882161 EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v 168.774954 1
41 57cxdqYXcqAiZwyhEVg8WomEjh68LVmcfBmpzh5cUTi9kaZfWTGWCgBwWshWm3QkBkTzchTcuj2w4Pyhc2MGmyzf TRUE FRAnJ8DFBX4PUKqVvndquemt6D4qmVRjtTotVVjEJxxh EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v 0.168774 2
42 3HUuJga6Xhwbzns8JAXB3BotAJKRFAmua3EtdN6wMEcr3fDUB2NzXD6ZYXJkWDNsg2akc98JcaNDAc24uTkGwwHN TRUE J3xKkSUowia5q483zwQmijSfnVocGsWg6duFzQYHL9Nn EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v 511.855168 mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So 6.05 1
43 3HUuJga6Xhwbzns8JAXB3BotAJKRFAmua3EtdN6wMEcr3fDUB2NzXD6ZYXJkWDNsg2akc98JcaNDAc24uTkGwwHN TRUE J3xKkSUowia5q483zwQmijSfnVocGsWg6duFzQYHL9Nn EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v 0.068585 2
44 3HUuJga6Xhwbzns8JAXB3BotAJKRFAmua3EtdN6wMEcr3fDUB2NzXD6ZYXJkWDNsg2akc98JcaNDAc24uTkGwwHN TRUE J3xKkSUowia5q483zwQmijSfnVocGsWg6duFzQYHL9Nn mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So 6.05 EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v 512.018668 3
45 2QTw3GMqsqnV1WdTvhJsELKauEeBP6bo34UKSUbpejxvUeEisZECAkWXaVv7NmwZdJrBxxhnHperdg2PCb1AkNHm TRUE 81aJvJkJ6CaUhYcGx4VNLiAcDk5nQyqfw4gbstm84Eqh EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v 34 Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB 34.024478 1
46 2QTw3GMqsqnV1WdTvhJsELKauEeBP6bo34UKSUbpejxvUeEisZECAkWXaVv7NmwZdJrBxxhnHperdg2PCb1AkNHm TRUE 81aJvJkJ6CaUhYcGx4VNLiAcDk5nQyqfw4gbstm84Eqh Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB 34.024478 So11111111111111111111111111111111111111112 0.880711326 2
47 2QTw3GMqsqnV1WdTvhJsELKauEeBP6bo34UKSUbpejxvUeEisZECAkWXaVv7NmwZdJrBxxhnHperdg2PCb1AkNHm TRUE 81aJvJkJ6CaUhYcGx4VNLiAcDk5nQyqfw4gbstm84Eqh So11111111111111111111111111111111111111112 0.007486046 3
48 2hZuCGiMkuXxPJ4jZwKf8zzxzs4gUteDb28ZTFd5KnVpmfseP8YBWzRHuLP63iWiwUgb8mFM74o3cmJmag4YniKU TRUE 4vp8RAz8qGxrkrNJ1axKJCtUEzXE7CKwtnZGVGE6c8k9 So11111111111111111111111111111111111111112 0.499965047 7vfCXTUXx5WJV5JADk17DUJ4ksgau7utNKj4b963voxs 0.0188 1
49 2hZuCGiMkuXxPJ4jZwKf8zzxzs4gUteDb28ZTFd5KnVpmfseP8YBWzRHuLP63iWiwUgb8mFM74o3cmJmag4YniKU TRUE 4vp8RAz8qGxrkrNJ1axKJCtUEzXE7CKwtnZGVGE6c8k9 So11111111111111111111111111111111111111112 0.002626511 2
50 4Xdjhm8219RTPpfsi5tMtBKjbUNgm8Kh2kphNpH5vLqGFxFeh3dcntQT5nMZGFaD93BZWJwFtviB1afjWEdXZRsu TRUE 7676mEXc51P1Je4D2XrHqVdFcAZmvf3Y2Ujo8GZfWXQc EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v 28500 So11111111111111111111111111111111111111112 270.3 1
51 4Xdjhm8219RTPpfsi5tMtBKjbUNgm8Kh2kphNpH5vLqGFxFeh3dcntQT5nMZGFaD93BZWJwFtviB1afjWEdXZRsu TRUE 7676mEXc51P1Je4D2XrHqVdFcAZmvf3Y2Ujo8GZfWXQc EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v 0.336192 2
52 4Xdjhm8219RTPpfsi5tMtBKjbUNgm8Kh2kphNpH5vLqGFxFeh3dcntQT5nMZGFaD93BZWJwFtviB1afjWEdXZRsu TRUE 7676mEXc51P1Je4D2XrHqVdFcAZmvf3Y2Ujo8GZfWXQc EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v 1498.5 So11111111111111111111111111111111111111112 14.218227761 3
53 4Xdjhm8219RTPpfsi5tMtBKjbUNgm8Kh2kphNpH5vLqGFxFeh3dcntQT5nMZGFaD93BZWJwFtviB1afjWEdXZRsu TRUE 7676mEXc51P1Je4D2XrHqVdFcAZmvf3Y2Ujo8GZfWXQc EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v 1.5 4
54 2CAg4pz6eyZ6eaZznsr4WseRkscjETmzRJ68LJKAxHnd6Whd4Yrvrcfq3UxsVjrF835GF7upMUqSvL6WVJAHLJSc TRUE 8ZryiFWWZmMT7MHnNBhHffumcEBu25RYMyQhYEMWGFzu ATLASXmbPQxBUYbxPsV97usA3fPQYEqzQBUHgiFCUsXx 59.40825068 So11111111111111111111111111111111111111112 0.026927753 1
55 5TDdGQREPn6xB8AC9gHhhwbqSc99qsP2pzHJ3s6FTTVDFZ3cUpRS35qtVMQvU2RYroKPZgZSMsKkHgvWwH2Bjgjv TRUE Ari31tr1mgSBfB7NrTnGFeYKJHq8XRjvPteuxZvnAegG EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v 0.6 PHnyhLEnsD9SiP9tk9kHHKiCxCTPFnymzPspDqAicMe 6.981833 1
56 3yVbSdBHnaoccDG4XpbTQrV1NNbqNiVdKYHio1iPNAnRpdnP1xK1sg6NdkdZKRhjj7tnve589UX3p55UBGWssTCD TRUE J2TL2WhHC1d2AtScxtwaHjYWJkGgPbCuQZgNQ7JjMkMq So11111111111111111111111111111111111111112 1 Ea5SjE2Y6yvCeW5dYTn7PYMuW5ikXkvbGdcmSnXeaLjS 104.86192 1
57 3yVbSdBHnaoccDG4XpbTQrV1NNbqNiVdKYHio1iPNAnRpdnP1xK1sg6NdkdZKRhjj7tnve589UX3p55UBGWssTCD TRUE J2TL2WhHC1d2AtScxtwaHjYWJkGgPbCuQZgNQ7JjMkMq Ea5SjE2Y6yvCeW5dYTn7PYMuW5ikXkvbGdcmSnXeaLjS 104.86192 EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v 104.435351 2
58 3W94CoGdVY9Lo4mRHi3zEq7YYGb3Z4M9hAte2hyA2A2ybAUawTYvJ3Pq7egsCPTrXcUmZ8F4nu4zukYMRkYEXBTN TRUE CSF2iMkMcogig1H5Mh8bFmZ2SqLzZeM6juQTjAdXiCso So11111111111111111111111111111111111111112 0.759743751 mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So 0.736088883 1
59 33fd31332UvoH9YLi2ZDarDqWqmuD2fsFDigc79LKtT1XVYY6N1M8htAkPfjP989yDfKUv8EmprRAcFrZSxQ38Cn TRUE An8Q8yMbaYfFY9jhYj59vSc3p15hxiPcY1qYdaVcVyEK EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v 218.547238 So11111111111111111111111111111111111111112 1.601351659 1
60 3c9M2C4mE3Q14PmiTMTHkQNMkzPRZSCdMXRc1oYooV8iiFJGLyfSMRgsZVWrXVWqsgvsaw6cgv21DXxCRamK8JHJ TRUE D6FMG1nxZAZcPgVjfKcxKzSoTuWUrm3gwABmgn9cdyX4 EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v 0.398722 1
61 3c9M2C4mE3Q14PmiTMTHkQNMkzPRZSCdMXRc1oYooV8iiFJGLyfSMRgsZVWrXVWqsgvsaw6cgv21DXxCRamK8JHJ TRUE D6FMG1nxZAZcPgVjfKcxKzSoTuWUrm3gwABmgn9cdyX4 EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v 0.000398 Fse2oFDfbwT89CqtuoFaHCBnGTMFLartDYDjPLZyc7e 0 2
62 nmN84qNUcZtGpCCxm1r8Qct3Z8vgPMRXFfd7QFohE28dVociEgbSA9xrkn44WgKa8GbTH86u3EiicCakCsbKiya TRUE D6FMG1nxZAZcPgVjfKcxKzSoTuWUrm3gwABmgn9cdyX4 EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v 0.403479 1
63 nmN84qNUcZtGpCCxm1r8Qct3Z8vgPMRXFfd7QFohE28dVociEgbSA9xrkn44WgKa8GbTH86u3EiicCakCsbKiya TRUE D6FMG1nxZAZcPgVjfKcxKzSoTuWUrm3gwABmgn9cdyX4 EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v 0.000403 Fse2oFDfbwT89CqtuoFaHCBnGTMFLartDYDjPLZyc7e 9 2
64 24XyX2uYVEJoXNLhkgeYPoTtsLDLUoqcxc65sWL4Yn4w9fcUYbbYpLwiFg2PoWgZ5sqUwAjjhvk28DaEP5Vm2mR2 TRUE 5sRWm1HRK3d4NNxYV81xYaW5CqvKsGASnM4Z297RD56v EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v 18736.605642 FCqfQSujuPxy6V42UvafBhsysWtEq1vhjfMN1PUbgaxA 18742.37017709 1
65 3YjCXu1hbUC31rB7fq9YWry731dAK2SQiReZvaG7vzxg2T9Go1CKqjizk835Ym6emh2xUTS6pafGF2hAg5nRcW6x TRUE GUvoD8DWtUPXxiQNJAqJFnHyAytt5w7Zpb4Du3ySw3W9 8XSsNvaKU9FDhYWAv7Yc7qSNwuJSzVrXBNEk7AFiWF69 1600 JEFFSQ3s8T3wKsvp4tnRAsUBW7Cqgnf8ukBZC4C8XBm1 1597.57537839 1
66 3YjCXu1hbUC31rB7fq9YWry731dAK2SQiReZvaG7vzxg2T9Go1CKqjizk835Ym6emh2xUTS6pafGF2hAg5nRcW6x TRUE GUvoD8DWtUPXxiQNJAqJFnHyAytt5w7Zpb4Du3ySw3W9 EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v 1597.575378 Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB 1597.52423 2
67 4YaaEGVvhr1ojqv1kSse5zBEs8RLSvZfhfFmJPPRYPKuK7QLdwxxFP9wkbrjRj5HZNZHMRAr6JkCxRnM3KpWzxHP TRUE DdDTLPkUf5ZsuhytMkcfVZ5sku6jBNdv9GnYBzorQEji EjmyN6qEC1Tf1JxiG1ae7UTJhUxSwk1TCWNWqxWV4J6o 2197.33847522 88881Hu2jGMfCs9tMu5Rr7Ah7WBNBuXqde4nR5ZmKYYy 2196.38096256 1
68 37LsDiRR7kC5PBoWp3AEvBbuxV45r2qPywbAyFKCYdYQi7uaG11aLhpmoEP5CnBwUzFNF13ZpkCUBELG3yy1gPDV TRUE AU2myQWVKTCfSthGGyLEUCHgoYr9g7LmxhftDRFBrtng JEFFSQ3s8T3wKsvp4tnRAsUBW7Cqgnf8ukBZC4C8XBm1 500 PUhuAtMHsKavMTwZsLaDeKy2jb7ciETHJP7rhbKLJGY 499.017073663 1
69 3YVDZZ54VG7vNQvdzkHrx4sfMcBeSUoAUg7U8cE5Rod3GLsXShTAg53BEZ8fHB2Uwkq7Yh75cN9p82H1JVXYXHyz TRUE 5WZ2k1jttJiM6grc49QrvW7V9mh1RnxG59nYD7c1DqGV 7xKXtg2CW87d97TXJSDpbD5jBkheTqA83TZRuJosgAsU 222.405638284 EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v 2.16 1
70 7mN7acM2k7mspxfkqhq66xx8nqLa8BigcDwM8URB48QRr9MkiL5E6nG6hrCyURrqRAssAGZzrsVhRfVtKvhmMS9 FALSE GfCaec9YGspHjEDk199z4X8NqR4vXopwM1afRn9CMhqB EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v 200 DUSTawucrTsGU8hcqRdHDCbuYhCPADMLM2VcCb8VnFnQ 65.745211297 1
71 7mN7acM2k7mspxfkqhq66xx8nqLa8BigcDwM8URB48QRr9MkiL5E6nG6hrCyURrqRAssAGZzrsVhRfVtKvhmMS9 FALSE GfCaec9YGspHjEDk199z4X8NqR4vXopwM1afRn9CMhqB DUSTawucrTsGU8hcqRdHDCbuYhCPADMLM2VcCb8VnFnQ 65 EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v 188.4246 2
72 2YYqA2s9bwZLiTEfBoQYCdXKznFFjHy1orhTHpP6MG63m29uckPovWQjbzoCnUbRcvP3PvR3btLK7kTHFc4PmqiY TRUE 5hoGstgd4FKaBxvBMbZwPNb2vo41VXWhwxt86X4KHL43 EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v 0.50363 So11111111111111111111111111111111111111112 0.013245787 1
73 8NvbDSTvXQtBexQTSgQCqeZDBsZX4vzSeEnxEQ72aXbbxYmEbSxkfCVxm2oe9JCLLD6hVVYQgK24hkHPq1ncKw1 TRUE 5WZ2k1jttJiM6grc49QrvW7V9mh1RnxG59nYD7c1DqGV 7xKXtg2CW87d97TXJSDpbD5jBkheTqA83TZRuJosgAsU 729.722800013 EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v 7.01 1
74 5rMrTe9UhfSTm6ZNSjN7UqNhuDFKaZmbCmgHKqhSRAZi5cAs9d6zuff95RP9sbRsbkmQX3jRtGAn2erarE9pV8cD TRUE 5kqGoFPBGoYpFcxpa6BFRp3zfNormf52KCo5vQ8Qn5bx So11111111111111111111111111111111111111112 0 mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So 0.000000001 1
75 5rMrTe9UhfSTm6ZNSjN7UqNhuDFKaZmbCmgHKqhSRAZi5cAs9d6zuff95RP9sbRsbkmQX3jRtGAn2erarE9pV8cD TRUE 5kqGoFPBGoYpFcxpa6BFRp3zfNormf52KCo5vQ8Qn5bx So11111111111111111111111111111111111111112 0 mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So 0.000000001 2
76 5rMrTe9UhfSTm6ZNSjN7UqNhuDFKaZmbCmgHKqhSRAZi5cAs9d6zuff95RP9sbRsbkmQX3jRtGAn2erarE9pV8cD TRUE 5kqGoFPBGoYpFcxpa6BFRp3zfNormf52KCo5vQ8Qn5bx mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So 0.000000001 So11111111111111111111111111111111111111112 0.000000001 3
77 ojKvTxF4MXgPEoxYYyxakcRbDko4eSYhmUqpCe9hTLJ4QSBxgfotDRbFW2v829N1zapX8MVeQ2D2kX3XnT8hwdL TRUE 4KVBskF8LWptkBCC1Ldj98Ym7ndHhvVfnwS3AJDwUSzw 9vMJfxuKxXBoEa7rM12mYLMwTacLMLDJqHozw96WQL8i 19.002452 EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v 0.722861 1
78 ojKvTxF4MXgPEoxYYyxakcRbDko4eSYhmUqpCe9hTLJ4QSBxgfotDRbFW2v829N1zapX8MVeQ2D2kX3XnT8hwdL TRUE 4KVBskF8LWptkBCC1Ldj98Ym7ndHhvVfnwS3AJDwUSzw EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v 0.722861 9vMJfxuKxXBoEa7rM12mYLMwTacLMLDJqHozw96WQL8i 19.020759 2
79 BkLJ56E93ai36Mwx7Wv8PoXVZ2RZUbCGCGMawZWU2nbEpU3QiipyG9Lr6CajGMtM6s5BnPWqSYuLLf3GzsAe5hQ TRUE HGSXs82RMXbTULPwJmrBdB33zrSvn3qvhk7Nrjwb8BVA USDH1SM1ojwWUga67PGrgFWUHibbjqMvuMaDkRJTgkX 1 EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v 0.998039 1
80 BkLJ56E93ai36Mwx7Wv8PoXVZ2RZUbCGCGMawZWU2nbEpU3QiipyG9Lr6CajGMtM6s5BnPWqSYuLLf3GzsAe5hQ TRUE HGSXs82RMXbTULPwJmrBdB33zrSvn3qvhk7Nrjwb8BVA EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v 0.998039 7dHbWXmci3dT8UFYWYZweBLXgycu7Y3iL6trKn1Y7ARj 0.027274552 2
81 BkLJ56E93ai36Mwx7Wv8PoXVZ2RZUbCGCGMawZWU2nbEpU3QiipyG9Lr6CajGMtM6s5BnPWqSYuLLf3GzsAe5hQ TRUE HGSXs82RMXbTULPwJmrBdB33zrSvn3qvhk7Nrjwb8BVA 7dHbWXmci3dT8UFYWYZweBLXgycu7Y3iL6trKn1Y7ARj 0.027274551 USDH1SM1ojwWUga67PGrgFWUHibbjqMvuMaDkRJTgkX 1.00022 3
82 Zn4aQD6ScgbNfmcKRSYAuyDJ4AWibjwmKGLW2W4QrvMpWtxvHxTta7cxUYMgWTKTHHACF9hV78yKFdkG3CddKju TRUE ogDsdvMKRRRMmsrT2hTPdkQBu1qY2z1jBDzgpi8HZri 7dHbWXmci3dT8UFYWYZweBLXgycu7Y3iL6trKn1Y7ARj 5.28470615 So11111111111111111111111111111111111111112 5.52707464 1
83 4QJDoXfwFnR354DApr36GCLJGjamwwwSTkgVEwpLbTgwEy8LCqEJsiJPfjEfwQhNtQPQJnmqUjTEcBNRKQ1vfNPN TRUE HdGsWDaxSDBesEYXmAYsG7WZYkKxUv3qhGJgmXSXnm3d So11111111111111111111111111111111111111112 0.429831294 mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So 0.407981907 1
84 5eCovtQh92hfW16oLWCv82uBkbXbkR1GJV6DvYYqik7mSoiJftUy39TqGgJqzkkMD2SpVYNWJPsuxGFHPGn9iVnb TRUE FnJZCfHc6LuZKCWMJGsHmpmqPeVVpxiJR3upiFp8TWsG CASHVDm2wsJXfhj6VWxb7GiMdoLc17Du7paH4bNr5woT 12.782187 EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v 12.784509 1
85 3UrFWezXZNQKf1uScXa7ZWuLW1xGvTwT8zexhP4STWfjkHW22cpUBNVRfn82wZGo1LYVMsrRKiaH3FV3NfzrSssH TRUE GtRpifc7ULdyi7zriCU8bs8oDrUR5xfVRdNUeCjoBX37 So11111111111111111111111111111111111111112 1.02 7dHbWXmci3dT8UFYWYZweBLXgycu7Y3iL6trKn1Y7ARj 0.972054099 1
86 5kvu9vpkL4zRo7fRaSDAv5iebwKmiVXWWMKx5puXUcszqRcg8YmX5KLHD2NG2BmKYMCAJddTrrJ1M7vYEUaKJtYp TRUE 9DiVSe2kfRuKK74L2otNtHqdpNbpqD3aGY1QDtRjuVq5 EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v 0.0001 Ea5SjE2Y6yvCeW5dYTn7PYMuW5ikXkvbGdcmSnXeaLjS 0.000101 1
87 394empadgqiJ5EE2KHbTsQVA8V9mssJxFVc5Ygs1jT3DkZYbPxWVyLdLiuSTWbQKCcYy6FMkmCwX5Dm4rZmNe8E4 TRUE AUq7ZTdLessJAEYWicbiLM8dxERVMNaU5rVjndp9MKU5 EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v 0.298803 So11111111111111111111111111111111111111112 0.007107501 1
88 394empadgqiJ5EE2KHbTsQVA8V9mssJxFVc5Ygs1jT3DkZYbPxWVyLdLiuSTWbQKCcYy6FMkmCwX5Dm4rZmNe8E4 TRUE AUq7ZTdLessJAEYWicbiLM8dxERVMNaU5rVjndp9MKU5 So11111111111111111111111111111111111111112 0.000017768 2
89 4TnvetxYacY6NCZfLNm8rQARU7nDdg5ADrXEfGiiT946ZhDZhSRJuBHcTpQs2BFEHHNc7gr8dMZqV2L8hQAfwyc6 TRUE E7L6VcjJHw7ArB2umHwygn5dbBYRMSmNWz3kN7r8y3up 4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R 0.985331 So11111111111111111111111111111111111111112 0.016440047 1
90 4TnvetxYacY6NCZfLNm8rQARU7nDdg5ADrXEfGiiT946ZhDZhSRJuBHcTpQs2BFEHHNc7gr8dMZqV2L8hQAfwyc6 TRUE E7L6VcjJHw7ArB2umHwygn5dbBYRMSmNWz3kN7r8y3up So11111111111111111111111111111111111111112 0.000411001 2
91 5VYTErgkrxA6Z52UczoPpE1x7UCdAQeeTy4WLxaoWAPiMBNuUPhTwYz8aBDMhgECcnsQVy7y9JVaH5W9ka2kBAUE TRUE ExCnKpsswsQi4c86gZADu4JCAwBYBDrg2ytbqDXdy7fm 2FPyTwcZLUg1MDrwsyoP4D6s1tM7hAkHYRjkNb5w6Pxk 1.615 EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v 3245.932366 1
92 5CGW8p9v9gWqF4vcmornAoiFyPptvgtyjsGpGHF6HdowRL24xUx5txqK6oXQuh9w2xNngYtWrsjhGe1Ex62Wt852 TRUE SAueccx6WsL4pujbfib14C6M1gPfikXBUSt16YRxFgv EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v 679.934673 ATLASXmbPQxBUYbxPsV97usA3fPQYEqzQBUHgiFCUsXx 74733.50602518 1
93 3sRvFwjkHorCbgjdpyHmzUoChRgiR6Hrg74JZG6TnfND2jwnUTv9j2jRnKPkCfUL3HL1JRW5ZgwRKS3P2oxeou97 TRUE GK5k5riTuuSwSAE1HP5PHCsrFDBP8YoGivAwTzWPuRqE So11111111111111111111111111111111111111112 27.124552627 7dHbWXmci3dT8UFYWYZweBLXgycu7Y3iL6trKn1Y7ARj 25.510966409 1
94 3sRvFwjkHorCbgjdpyHmzUoChRgiR6Hrg74JZG6TnfND2jwnUTv9j2jRnKPkCfUL3HL1JRW5ZgwRKS3P2oxeou97 TRUE GK5k5riTuuSwSAE1HP5PHCsrFDBP8YoGivAwTzWPuRqE 7dHbWXmci3dT8UFYWYZweBLXgycu7Y3iL6trKn1Y7ARj 25.510966409 EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v 863.952462 2

View File

@ -0,0 +1,16 @@
tx_id,succeeded,swapper,from_mint,from_amt,to_mint,to_amt,swap_index
3VMB8QpABTaRiVD2PEz2QNdNYqV5nks9dNhq4WBG4HpTDYU7huq7pkj76uvanaJrACq7kMSuypWjsQAUbuCLXjnu,TRUE,7aBDBLE29fkUY99qYY7qY2rgFUDRYGJcEJNWc7B67vPt,So11111111111111111111111111111111111111112,5.2531256,EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v,169.997342,1
4XMga64PPam74iSFPqnXohswejwtdxL1Dj5azTjBfYwE97PfGcP6JSastTwRFHdnzXTcdyRsMwD7t5ZZdpYzjqJj,TRUE,6LnXi13a9j3B4QGRWNxJNWASwZZ2BsgpfXsorNL6xRVD,5idSc21Ht4FTC7jSNe34d6v5FmY8gonswYHpgC7QZCZW,28.18,EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v,2.843094,1
4XMga64PPam74iSFPqnXohswejwtdxL1Dj5azTjBfYwE97PfGcP6JSastTwRFHdnzXTcdyRsMwD7t5ZZdpYzjqJj,TRUE,6LnXi13a9j3B4QGRWNxJNWASwZZ2BsgpfXsorNL6xRVD,EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v,2.843094,So11111111111111111111111111111111111111112,0.076159726,2
4bEAGZx3EkCyuh3arFg1k3hx7CgR2L9aFdxGg3ihWvwdB4KQiheF6JiyRCQcT6LpeJovYdajDg9fsJ3Lor8pN3kk,TRUE,FnJZCfHc6LuZKCWMJGsHmpmqPeVVpxiJR3upiFp8TWsG,CWE8jPTUYhdCTZYWPTe1o5DFqfdjzWKc9WKz6rSjQUdG,0.16553,Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB,1.307385,1
5QCTzHRQon1ydSsdCdiAR8to3ECt1FynDcU7yfsCAjLB5zMuhfzb14bwzJ8nqqupbXz6G9vEvpnuAbPHXxeh9sBU,TRUE,3j6iS5G3chfbUi4EUZr6JQsrq3tq6LLepPry9KLUMVRt,EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v,12.005715,Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB,12.003572,1
RJDZyoLB69PXEJzKwwtrhiXR9wmepV2mnjsVwmdj2dG3y5E7bydM6zdYmam88RBDMsrtSz9STEgkBRatzCdyjoQ,TRUE,GZ9syD2zkWkwJVX1Hu1Dft7rjiyiFMKea9CZwSZ9M4hv,EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v,137.704983,Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB,137.680498,1
cFPb9Lq6S45br6RmfXnALPDiRGtZhwZ99PTcJa8a1e4TewEVLUAX5McbBjbk8G6gJuCab2pWZdZh2knB7JjbebQ,TRUE,CNkWPpgNx3rv5jADxvoyNzM56J3LqgibSjYjANrgk3Z6,3CKQgrcvwhvFqVXXxLTb1u262nh26SJ3uutkSCTtbZxH,2627.445357679,EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v,0.051318,1
cFPb9Lq6S45br6RmfXnALPDiRGtZhwZ99PTcJa8a1e4TewEVLUAX5McbBjbk8G6gJuCab2pWZdZh2knB7JjbebQ,TRUE,CNkWPpgNx3rv5jADxvoyNzM56J3LqgibSjYjANrgk3Z6,EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v,0.051318,So11111111111111111111111111111111111111112,0.00152116,2
fACqZJ8hmUjLoBX2wzUS2gfwQUmV4HfJbXeQ5QbrZKTs2qdYZVREZxZbTaCy7brZT2Ck7QDqVLDBXVvbrLdYkk6,TRUE,DQgcq4NBK7zfS9c9fqj2LfF2AfHWQkLpHaPkPHc9BuUo,AFbX8oGjGpmVFywbVouvhQSRmiW2aR1mohfahi4Y2AdB,75.74,EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v,2.516153,1
fACqZJ8hmUjLoBX2wzUS2gfwQUmV4HfJbXeQ5QbrZKTs2qdYZVREZxZbTaCy7brZT2Ck7QDqVLDBXVvbrLdYkk6,TRUE,DQgcq4NBK7zfS9c9fqj2LfF2AfHWQkLpHaPkPHc9BuUo,EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v,2.516153,So11111111111111111111111111111111111111112,0.07136465,2
2FhZ9SjAJQgWqHPNBBBpz9dsX5JbsZVhmEcdDuSs1WwnLaPstFzZtY6p2cnwQhuutHGgS1rkoAq2ZkFpSTdbwF5X,TRUE,H9vttSQzVoB6pkaW1BtdAT3UTCMEYos1Jj8bS1fgnGyY,,,4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R,0.004993,1
5UjXW6NCAJSUMzL9uU3e41r7KmUEuX9i9RT2QS5YSG6FKf6HUh6iRopxBkFsL9A7Bhx3PR1GZeUL561Y6DNehj52,TRUE,777bcdooJe4y6rVx6pLWPmPbvCwBACEv19tGDe69tHrH,EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v,0.006785,AFbX8oGjGpmVFywbVouvhQSRmiW2aR1mohfahi4Y2AdB,0.002077025,1
MtNdTT2uq9hy7woK4mRyPYZ5SNKFoKJY3UNvi4uRiLQJCrQSY7WMV13dLTDCuAWpHZzinNzAXyXRGXjQUYENtvU,TRUE,54q2d7wd6zsQ1pBmivpQXnnLRLA1iUfd9aABvAUY34MB,EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v,935.919252,4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R,117.063389,1
39nyp3f5rUMSC4oaYnCVtkiwdbwMByKz7esgmRTFKPhoMgW3RprMgyj9jcrAwoAX9UWLNVGqpB9k79c4gAN7ug1q,TRUE,9v3MFN5aMoT9dUtGw5AoKowZgUUmeM5esbPuurHYgJYm,CYndQCN5WJL2iF4V42mZ5u8CHPAHCLz7wCXYwPd5hJ37,1930658.78465117,EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v,837.566473,1
3XEzUVGbpruCZFKcHFsa3yCZAJ4MQ1TTyaHPFi5odqQ3XEpjA5TzUXHuEVSFRoSGiaRSKQpMwGPzw61ZTb9gRfv5,TRUE,HiVf8RKNETMYVyVrqcaoMGAP8CyMZ67cLtnGfJJ82bCx,7dHbWXmci3dT8UFYWYZweBLXgycu7Y3iL6trKn1Y7ARj,0.157984388,So11111111111111111111111111111111111111112,0.167310009,1
1 tx_id succeeded swapper from_mint from_amt to_mint to_amt swap_index
2 3VMB8QpABTaRiVD2PEz2QNdNYqV5nks9dNhq4WBG4HpTDYU7huq7pkj76uvanaJrACq7kMSuypWjsQAUbuCLXjnu TRUE 7aBDBLE29fkUY99qYY7qY2rgFUDRYGJcEJNWc7B67vPt So11111111111111111111111111111111111111112 5.2531256 EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v 169.997342 1
3 4XMga64PPam74iSFPqnXohswejwtdxL1Dj5azTjBfYwE97PfGcP6JSastTwRFHdnzXTcdyRsMwD7t5ZZdpYzjqJj TRUE 6LnXi13a9j3B4QGRWNxJNWASwZZ2BsgpfXsorNL6xRVD 5idSc21Ht4FTC7jSNe34d6v5FmY8gonswYHpgC7QZCZW 28.18 EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v 2.843094 1
4 4XMga64PPam74iSFPqnXohswejwtdxL1Dj5azTjBfYwE97PfGcP6JSastTwRFHdnzXTcdyRsMwD7t5ZZdpYzjqJj TRUE 6LnXi13a9j3B4QGRWNxJNWASwZZ2BsgpfXsorNL6xRVD EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v 2.843094 So11111111111111111111111111111111111111112 0.076159726 2
5 4bEAGZx3EkCyuh3arFg1k3hx7CgR2L9aFdxGg3ihWvwdB4KQiheF6JiyRCQcT6LpeJovYdajDg9fsJ3Lor8pN3kk TRUE FnJZCfHc6LuZKCWMJGsHmpmqPeVVpxiJR3upiFp8TWsG CWE8jPTUYhdCTZYWPTe1o5DFqfdjzWKc9WKz6rSjQUdG 0.16553 Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB 1.307385 1
6 5QCTzHRQon1ydSsdCdiAR8to3ECt1FynDcU7yfsCAjLB5zMuhfzb14bwzJ8nqqupbXz6G9vEvpnuAbPHXxeh9sBU TRUE 3j6iS5G3chfbUi4EUZr6JQsrq3tq6LLepPry9KLUMVRt EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v 12.005715 Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB 12.003572 1
7 RJDZyoLB69PXEJzKwwtrhiXR9wmepV2mnjsVwmdj2dG3y5E7bydM6zdYmam88RBDMsrtSz9STEgkBRatzCdyjoQ TRUE GZ9syD2zkWkwJVX1Hu1Dft7rjiyiFMKea9CZwSZ9M4hv EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v 137.704983 Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB 137.680498 1
8 cFPb9Lq6S45br6RmfXnALPDiRGtZhwZ99PTcJa8a1e4TewEVLUAX5McbBjbk8G6gJuCab2pWZdZh2knB7JjbebQ TRUE CNkWPpgNx3rv5jADxvoyNzM56J3LqgibSjYjANrgk3Z6 3CKQgrcvwhvFqVXXxLTb1u262nh26SJ3uutkSCTtbZxH 2627.445357679 EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v 0.051318 1
9 cFPb9Lq6S45br6RmfXnALPDiRGtZhwZ99PTcJa8a1e4TewEVLUAX5McbBjbk8G6gJuCab2pWZdZh2knB7JjbebQ TRUE CNkWPpgNx3rv5jADxvoyNzM56J3LqgibSjYjANrgk3Z6 EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v 0.051318 So11111111111111111111111111111111111111112 0.00152116 2
10 fACqZJ8hmUjLoBX2wzUS2gfwQUmV4HfJbXeQ5QbrZKTs2qdYZVREZxZbTaCy7brZT2Ck7QDqVLDBXVvbrLdYkk6 TRUE DQgcq4NBK7zfS9c9fqj2LfF2AfHWQkLpHaPkPHc9BuUo AFbX8oGjGpmVFywbVouvhQSRmiW2aR1mohfahi4Y2AdB 75.74 EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v 2.516153 1
11 fACqZJ8hmUjLoBX2wzUS2gfwQUmV4HfJbXeQ5QbrZKTs2qdYZVREZxZbTaCy7brZT2Ck7QDqVLDBXVvbrLdYkk6 TRUE DQgcq4NBK7zfS9c9fqj2LfF2AfHWQkLpHaPkPHc9BuUo EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v 2.516153 So11111111111111111111111111111111111111112 0.07136465 2
12 2FhZ9SjAJQgWqHPNBBBpz9dsX5JbsZVhmEcdDuSs1WwnLaPstFzZtY6p2cnwQhuutHGgS1rkoAq2ZkFpSTdbwF5X TRUE H9vttSQzVoB6pkaW1BtdAT3UTCMEYos1Jj8bS1fgnGyY 4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R 0.004993 1
13 5UjXW6NCAJSUMzL9uU3e41r7KmUEuX9i9RT2QS5YSG6FKf6HUh6iRopxBkFsL9A7Bhx3PR1GZeUL561Y6DNehj52 TRUE 777bcdooJe4y6rVx6pLWPmPbvCwBACEv19tGDe69tHrH EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v 0.006785 AFbX8oGjGpmVFywbVouvhQSRmiW2aR1mohfahi4Y2AdB 0.002077025 1
14 MtNdTT2uq9hy7woK4mRyPYZ5SNKFoKJY3UNvi4uRiLQJCrQSY7WMV13dLTDCuAWpHZzinNzAXyXRGXjQUYENtvU TRUE 54q2d7wd6zsQ1pBmivpQXnnLRLA1iUfd9aABvAUY34MB EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v 935.919252 4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R 117.063389 1
15 39nyp3f5rUMSC4oaYnCVtkiwdbwMByKz7esgmRTFKPhoMgW3RprMgyj9jcrAwoAX9UWLNVGqpB9k79c4gAN7ug1q TRUE 9v3MFN5aMoT9dUtGw5AoKowZgUUmeM5esbPuurHYgJYm CYndQCN5WJL2iF4V42mZ5u8CHPAHCLz7wCXYwPd5hJ37 1930658.78465117 EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v 837.566473 1
16 3XEzUVGbpruCZFKcHFsa3yCZAJ4MQ1TTyaHPFi5odqQ3XEpjA5TzUXHuEVSFRoSGiaRSKQpMwGPzw61ZTb9gRfv5 TRUE HiVf8RKNETMYVyVrqcaoMGAP8CyMZ67cLtnGfJJ82bCx 7dHbWXmci3dT8UFYWYZweBLXgycu7Y3iL6trKn1Y7ARj 0.157984388 So11111111111111111111111111111111111111112 0.167310009 1

View File

@ -22,6 +22,10 @@
create_udf_get_all_inner_instruction_program_ids(
schema = "silver"
) }}
{{
create_udf_get_multi_signers_swapper(
schema = "silver"
) }}
{% endset %}
{% do run_query(sql) %}
{% endif %}

View File

@ -73,4 +73,29 @@ def get_all_inner_instruction_program_ids(inner_instruction) -> list:
return program_ids
$$;
{% endmacro %}
{% macro create_udf_get_multi_signers_swapper(schema) %}
create or replace function {{ schema }}.udf_get_multi_signers_swapper(tx_to array, tx_from array, signers array)
returns string
language python
runtime_version = '3.8'
handler = 'get_multi_signers_swapper'
as
$$
def get_multi_signers_swapper(tx_to, tx_from, signers):
lst = tx_to + tx_from
d = {}
for v in lst:
d[v] = d[v]+1 if d.get(v) else 1
cnts = sorted(d.items(), key = lambda x: x[1], reverse = True)
for v in cnts:
for signer in signers:
if v[0] == signer:
return signer
return signers[0]
$$;
{% endmacro %}

View File

@ -0,0 +1,14 @@
{% test tx_excluded(
model,
excluded_tx_ids
) %}
SELECT
*
FROM
{{ model }}
WHERE
tx_id IN(
{{ "'" + excluded_tx_ids | join("','") + "'"}}
)
{% endtest %}

View File

@ -0,0 +1,313 @@
{{ config(
materialized = 'incremental',
unique_key = ["block_id","tx_id","index"],
merge_predicates = ["DBT_INTERNAL_DEST.block_timestamp::date >= LEAST(current_date-7,(select min(block_timestamp)::date from {{ this }}__dbt_tmp))"],
cluster_by = ['block_timestamp::DATE','_inserted_timestamp::DATE'],
post_hook = "ALTER TABLE {{ this }} ADD SEARCH OPTIMIZATION"
) }}
WITH base_transfers_i AS (
SELECT
block_id,
block_timestamp,
tx_id,
INDEX::string as index,
event_type,
program_id,
instruction,
inner_instruction,
succeeded,
_inserted_timestamp
FROM
{{ ref('silver__events') }}
WHERE
event_type IN (
'transfer',
'transferChecked',
'transferWithSeed'
)
{% if is_incremental() and env_var(
'DBT_IS_BATCH_LOAD',
"false"
) == "true" %}
AND
block_id BETWEEN (
SELECT
LEAST(COALESCE(MAX(block_id), 4260184)+1,151386092)
FROM
{{ this }}
)
AND (
SELECT
LEAST(COALESCE(MAX(block_id), 4260184)+4000000,151386092)
FROM
{{ this }}
)
{% elif is_incremental() %}
AND _inserted_timestamp >= (
SELECT
MAX(_inserted_timestamp)
FROM
{{ this }}
)
{% else %}
AND
block_id between 4260184 and 5260184
{% endif %}
UNION
SELECT
e.block_id,
e.block_timestamp,
e.tx_id,
CONCAT(
e.inner_instruction :index :: NUMBER,
'.',
ii.index
) AS INDEX,
ii.value :parsed :type :: STRING AS event_type,
ii.value :programId :: STRING AS program_id,
ii.value as instruction,
NULL AS inner_instruction,
e.succeeded,
_inserted_timestamp
FROM
{{ ref('silver__events') }}
e,
TABLE(FLATTEN(e.inner_instruction :instructions)) ii
WHERE
ii.value :parsed :type :: STRING IN (
'transfer',
'transferChecked',
'transferWithSeed'
)
{% if is_incremental() and env_var(
'DBT_IS_BATCH_LOAD',
"false"
) == "true" %}
AND
block_id BETWEEN (
SELECT
LEAST(COALESCE(MAX(block_id), 4260184)+1,151386092)
FROM
{{ this }}
)
AND (
SELECT
LEAST(COALESCE(MAX(block_id), 4260184)+4000000,151386092)
FROM
{{ this }}
)
{% elif is_incremental() %}
AND _inserted_timestamp >= (
SELECT
MAX(_inserted_timestamp)
FROM
{{ this }}
)
{% else %}
AND
block_id between 4260184 and 5260184
{% endif %}
),
base_post_token_balances AS (
SELECT
tx_id,
owner,
account,
mint,
DECIMAL
FROM
{{ ref('silver___post_token_balances') }}
{% if is_incremental() and env_var(
'DBT_IS_BATCH_LOAD',
"false"
) == "true" %}
WHERE
block_id BETWEEN (
SELECT
LEAST(COALESCE(MAX(block_id), 4260184)+1,151386092)
FROM
{{ this }}
)
AND (
SELECT
LEAST(COALESCE(MAX(block_id), 4260184)+4000000,151386092)
FROM
{{ this }}
)
{% elif is_incremental() %}
WHERE
_inserted_timestamp >= (
SELECT
MAX(_inserted_timestamp)
FROM
{{ this }}
)
{% else %}
WHERE
block_id between 4260184 and 5260184
{% endif %}
),
base_pre_token_balances AS (
SELECT
tx_id,
owner,
account,
mint,
DECIMAL
FROM
{{ ref('silver___pre_token_balances') }}
{% if is_incremental() and env_var(
'DBT_IS_BATCH_LOAD',
"false"
) == "true" %}
WHERE
block_id BETWEEN (
SELECT
LEAST(COALESCE(MAX(block_id), 4260184)+1,151386092)
FROM
{{ this }}
)
AND (
SELECT
LEAST(COALESCE(MAX(block_id), 4260184)+4000000,151386092)
FROM
{{ this }}
)
{% elif is_incremental() %}
WHERE
_inserted_timestamp >= (
SELECT
MAX(_inserted_timestamp)
FROM
{{ this }}
)
{% else %}
WHERE
block_id between 4260184 and 5260184
{% endif %}
),
spl_transfers AS (
SELECT
e.block_id,
e.block_timestamp,
e.tx_id,
e.index,
e.program_id,
e.succeeded,
COALESCE(
p.owner,
e.instruction :parsed :info :authority :: STRING,
e.instruction :parsed :info :multisigAuthority :: STRING
) AS tx_from,
COALESCE(
p2.owner,
instruction :parsed :info :destination :: STRING
) AS tx_to,
COALESCE(
e.instruction :parsed :info :tokenAmount: decimals,
p.decimal,
p2.decimal,
p3.decimal,
p4.decimal,
9 -- default to solana decimals
) AS decimal_adj,
COALESCE (
e.instruction :parsed :info :amount :: INTEGER,
e.instruction :parsed :info :tokenAmount :amount :: INTEGER
) / pow(
10,
decimal_adj
) AS amount,
COALESCE(
p.mint,
p2.mint,
p3.mint,
p4.mint
) AS mint,
instruction :parsed :info :source :: STRING as source_token_account,
instruction :parsed :info :destination :: STRING as dest_token_account,
e._inserted_timestamp
FROM
base_transfers_i e
LEFT OUTER JOIN base_pre_token_balances p
ON e.tx_id = p.tx_id
AND e.instruction :parsed :info :source :: STRING = p.account
LEFT OUTER JOIN base_post_token_balances p2
ON e.tx_id = p2.tx_id
AND e.instruction :parsed :info :destination :: STRING = p2.account
LEFT OUTER JOIN base_post_token_balances p3
ON e.tx_id = p3.tx_id
AND e.instruction :parsed :info :source :: STRING = p3.account
LEFT OUTER JOIN base_pre_token_balances p4
ON e.tx_id = p4.tx_id
AND e.instruction :parsed :info :destination :: STRING = p4.account
WHERE
(
e.instruction :parsed :info :authority :: STRING IS NOT NULL
OR
e.instruction :parsed :info :multisigAuthority :: STRING IS NOT NULL
)
),
sol_transfers AS (
SELECT
e.block_id,
e.block_timestamp,
e.tx_id,
e.index,
e.program_id,
e.succeeded,
instruction :parsed :info :source :: STRING AS tx_from,
instruction :parsed :info :destination :: STRING AS tx_to,
instruction :parsed :info :lamports / pow(
10,
9
) AS amount,
'So11111111111111111111111111111111111111112' AS mint,
NULL as source_token_account,
NULL as dest_token_account,
e._inserted_timestamp
FROM
base_transfers_i e
WHERE
instruction :parsed :info :lamports :: STRING IS NOT NULL
)
SELECT
block_id,
block_timestamp,
tx_id,
program_id,
succeeded,
INDEX,
tx_from,
tx_to,
amount,
mint,
source_token_account,
dest_token_account,
_inserted_timestamp
FROM
spl_transfers
UNION
SELECT
block_id,
block_timestamp,
tx_id,
program_id,
succeeded,
INDEX,
tx_from,
tx_to,
amount,
mint,
source_token_account,
dest_token_account,
_inserted_timestamp
FROM
sol_transfers

View File

@ -0,0 +1,55 @@
version: 2
models:
- name: silver__transfers2
tests:
- dbt_utils.unique_combination_of_columns:
combination_of_columns:
- BLOCK_ID
- TX_ID
- INDEX
columns:
- name: BLOCK_TIMESTAMP
description: "{{ doc('block_timestamp') }}"
tests:
- not_null:
where: block_id > 39824213 and _inserted_timestamp::date < current_date
- dbt_expectations.expect_row_values_to_have_recent_data:
datepart: day
interval: 2
- name: BLOCK_ID
description: "{{ doc('block_id') }}"
tests:
- not_null
- name: TX_ID
description: "{{ doc('tx_id') }}"
tests:
- not_null
- name: PROGRAM_ID
description: "{{ doc('program_id') }}"
tests:
- not_null
- name: INDEX
description: "{{ doc('index') }}"
tests:
- not_null
- name: TX_FROM
description: "{{ doc('tx_from') }}"
tests:
- not_null
- name: TX_TO
description: "{{ doc('tx_to') }}"
tests:
- not_null
- name: AMOUNT
description: "{{ doc('amount') }}"
tests:
- not_null
- name: MINT
description: "{{ doc('mint') }}"
tests:
- null_threshold:
threshold_percent: 0.70
- name: _INSERTED_TIMESTAMP
description: "{{ doc('_inserted_timestamp') }}"
tests:
- not_null

View File

@ -0,0 +1,473 @@
{{ config(
materialized = 'incremental',
unique_key = ["block_id","tx_id","swap_index"],
merge_predicates = ["DBT_INTERNAL_DEST.block_timestamp::date >= LEAST(current_date-7,(select min(block_timestamp)::date from {{ this }}__dbt_tmp))"],
cluster_by = ['block_timestamp::DATE','_inserted_timestamp::DATE'],
post_hook = "ALTER TABLE {{ this }} ADD SEARCH OPTIMIZATION"
) }}
WITH base_events AS(
SELECT
*
FROM
{{ ref('silver__events') }}
WHERE
(
program_id IN (
--jupiter v2/v3 program_ids
'JUP2jxvXaqu7NQY1GmNF4m1vodw12LVXYxbFL2uJvfo',
'JUP3c2Uh3WA4Ng34tw6kPd2G4C5BB21Xo36Je1s32Ph',
-- saber
'Crt7UoUR6QgrFrN7j8rmSQpUTNWNSitSwWvsWGf1qZ5t',
'SSwpkEEcbUqx4vtoEByFjSkhKdCT862DNVb52nZg1UZ',
--program ids for acct mapping
'ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL',
'TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA',
--solrise program id (small program but for completenesss...)
'SLrSmK5ykEhdLkZH8mEsrZsGtDvzrQLKYSwy7PVKQoj'
)
)
AND block_id > 111442741 -- token balances owner field not guaranteed to be populated before this slot
{% if is_incremental() %}
-- AND block_timestamp :: DATE = '2022-11-01'
AND _inserted_timestamp >= (
SELECT
MAX(_inserted_timestamp)
FROM
{{ this }}
)
{% else %}
AND block_timestamp :: DATE >= '2021-12-14'
{% endif %}
),
dex_txs AS (
SELECT
e.*,
IFF(array_size(signers) = 1, signers[0]::STRING, NULL) AS swapper,
signers
FROM
base_events e
INNER JOIN {{ ref('silver__transactions') }}
t
ON t.tx_id = e.tx_id
AND t.block_timestamp :: DATE = e.block_timestamp :: DATE
WHERE
(
program_id IN (
-- saber
'Crt7UoUR6QgrFrN7j8rmSQpUTNWNSitSwWvsWGf1qZ5t',
'SSwpkEEcbUqx4vtoEByFjSkhKdCT862DNVb52nZg1UZ'
) -- jupiter v2,v3
OR (
program_id IN (
'JUP2jxvXaqu7NQY1GmNF4m1vodw12LVXYxbFL2uJvfo',
'JUP3c2Uh3WA4Ng34tw6kPd2G4C5BB21Xo36Je1s32Ph'
)
AND ARRAY_SIZE(
e.instruction :accounts
) > 6
)
)
AND inner_instruction_program_ids [0] <> 'DecZY86MU5Gj7kppfUCEmd4LbXXuyZH1yHaP2NTqdiZB' --associated with wrapping of tokens
{% if is_incremental() %}
-- AND t.block_timestamp :: DATE = '2022-11-01'
AND t._inserted_timestamp >= (
SELECT
MAX(_inserted_timestamp)
FROM
{{ this }}
)
{% else %}
AND t.block_timestamp :: DATE >= '2021-12-14'
{% endif %}
),
base_transfers AS (
SELECT
tr.*
FROM
{{ ref('silver__transfers2') }}
tr
INNER JOIN (
SELECT
DISTINCT tx_id
FROM
dex_txs
) d
ON d.tx_id = tr.tx_id
{% if is_incremental() %}
WHERE
-- block_timestamp :: DATE = '2022-11-01'
_inserted_timestamp >= (
SELECT
MAX(_inserted_timestamp)
FROM
{{ this }}
)
{% else %}
WHERE
block_timestamp :: DATE >= '2021-12-14'
{% endif %}
),
base_post_token_balances AS (
SELECT
pb.*
FROM
{{ ref('silver___post_token_balances') }}
pb
INNER JOIN (
SELECT
DISTINCT tx_id
FROM
dex_txs
) d
ON d.tx_id = pb.tx_id
{% if is_incremental() %}
WHERE
-- block_timestamp :: DATE = '2022-11-01'
_inserted_timestamp >= (
SELECT
MAX(_inserted_timestamp)
FROM
{{ this }}
)
{% else %}
WHERE
block_timestamp :: DATE >= '2021-12-14'
{% endif %}
),
swaps_temp AS(
SELECT
A.block_id,
A.block_timestamp,
A.tx_id,
COALESCE(SPLIT_PART(INDEX :: text, '.', 1) :: INT, INDEX :: INT) AS INDEX,
COALESCE(SPLIT_PART(INDEX :: text, '.', 2), NULL) AS inner_index,
A.program_id,
A.tx_from,
A.tx_to,
A.amount,
A.mint,
A.succeeded,
A._inserted_timestamp
FROM
base_transfers AS A
WHERE
A.tx_id IN (
SELECT
tx_id
FROM
dex_txs
)
),
delegates_mappings as (
SELECT
e.tx_id,
e.instruction :parsed :info :delegate :: STRING AS associated_account,
e.instruction :parsed :info :owner :: STRING AS owner
FROM
base_events e
INNER JOIN (
SELECT
DISTINCT tx_id
FROM
dex_txs
WHERE program_id = 'SSwpkEEcbUqx4vtoEByFjSkhKdCT862DNVb52nZg1UZ'
) d
ON d.tx_id = e.tx_id
WHERE
(
e.program_id = 'TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA'
AND e.event_type = 'approve'
)
),
account_mappings AS (
SELECT
tx_id,
tx_to AS associated_account,
tx_from AS owner
FROM
swaps_temp
WHERE
amount = 0.00203928
AND mint = 'So11111111111111111111111111111111111111112'
UNION
SELECT
tx_id,
account AS associated_account,
owner
FROM
base_post_token_balances
UNION
SELECT
e.tx_id,
e.instruction :parsed :info :account :: STRING AS associated_account,
COALESCE(
e.instruction :parsed :info :source :: STRING,
e.instruction :parsed :info :owner :: STRING
) AS owner
FROM
base_events e
INNER JOIN (
SELECT
DISTINCT tx_id
FROM
dex_txs
) d
ON d.tx_id = e.tx_id
WHERE
(
(
e.program_id = 'ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL'
AND e.event_type = 'create'
)
OR (
e.program_id = 'TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA'
AND e.event_type = 'closeAccount'
)
)
UNION
SELECT
dm.*
FROM
delegates_mappings dm
INNER JOIN dex_txs dt
ON dm.tx_id = dm.tx_id
AND dt.instruction :accounts [2] :: STRING = dm.associated_account
WHERE
dt.program_id = 'SSwpkEEcbUqx4vtoEByFjSkhKdCT862DNVb52nZg1UZ'
UNION
SELECT
e.tx_id,
e.instruction :accounts[3] :: STRING AS associated_account,
e.instruction :accounts[0] :: STRING AS owner
FROM
base_events e
INNER JOIN (
SELECT
DISTINCT tx_id
FROM
dex_txs
) d
ON d.tx_id = e.tx_id
WHERE
e.program_id = 'SLrSmK5ykEhdLkZH8mEsrZsGtDvzrQLKYSwy7PVKQoj'
AND instruction:data::string = 't'
),
swaps_w_destination AS (
SELECT
s.block_id,
s.block_timestamp,
s.tx_id,
s.index,
s.inner_index,
COALESCE(
m1.owner,
s.tx_from
) AS tx_from,
COALESCE(
m2.owner,
s.tx_to
) AS tx_to,
s.amount,
s.mint,
s.succeeded,
s._inserted_timestamp,
e.swapper as tmp_swapper,
e.signers,
e.program_id
FROM
swaps_temp s
LEFT OUTER JOIN dex_txs e
ON s.tx_id = e.tx_id
AND s.index = e.index
LEFT OUTER JOIN account_mappings m1
ON s.tx_id = m1.tx_id
AND s.tx_from = m1.associated_account
AND s.tx_to <> m1.owner
LEFT OUTER JOIN account_mappings m2
ON s.tx_id = m2.tx_id
AND s.tx_to = m2.associated_account
AND s.tx_from <> m2.owner
WHERE
s.program_id <> '11111111111111111111111111111111'
),
multi_signer_swapper as (
select
tx_id,
silver.udf_get_multi_signers_swapper(array_agg(tx_from), array_agg(tx_to), array_agg(signers)[0]) as swapper
from swaps_w_destination
where succeeded
and array_size(signers) > 1
and tmp_swapper is null
group by 1
),
unique_tx_from_and_to AS (
SELECT
tx_id,
INDEX,
COUNT(DISTINCT(tx_from)) AS num_tx_from,
COUNT(DISTINCT(tx_to)) AS num_tx_to
FROM
swaps_w_destination
GROUP BY
1,
2
HAVING
num_tx_from > 1
AND num_tx_to > 1
),
swaps_filtered_temp AS(
SELECT
s.*,
coalesce(s.tmp_swapper,m.swapper) as swapper
FROM
swaps_w_destination s
INNER JOIN unique_tx_from_and_to u
ON s.tx_id = u.tx_id
AND s.index = u.index
LEFT OUTER JOIN multi_signer_swapper m
ON s.tx_id = m.tx_id
),
min_inner_index_of_swapper AS(
SELECT
tx_id,
INDEX,
MIN(inner_index) AS min_inner_index_swapper
FROM
swaps_filtered_temp
WHERE
tx_from = swapper
GROUP BY
1,
2
),
swaps AS(
SELECT
d.*,
m.min_inner_index_swapper,
ROW_NUMBER() over (
PARTITION BY d.tx_id
ORDER BY
d.index,
d.inner_index
) AS rn,
ROW_NUMBER() over (
PARTITION BY d.tx_id,
d.index
ORDER BY
d.inner_index
) AS inner_rn
FROM
swaps_filtered_temp d
LEFT JOIN min_inner_index_of_swapper m
ON m.tx_id = d.tx_id
AND m.index = d.index
WHERE
d.swapper IS NOT NULL
),
final_temp AS (
SELECT
s1.block_id,
s1.block_timestamp,
s1.tx_id,
s1.succeeded,
s1.program_id,
s1.swapper,
s1.mint,
s1.amount,
s1.rn,
s1._inserted_timestamp,
s2.mint AS to_mint,
s2.amount AS to_amt
FROM
swaps s1
LEFT OUTER JOIN swaps s2
ON s1.tx_id = s2.tx_id
AND s1.index = s2.index
AND s1.inner_index <> s2.inner_index
WHERE
s1.inner_index = s1.min_inner_index_swapper
AND s1.swapper = s2.tx_to
AND s1.mint <> s2.mint
UNION
SELECT
s1.block_id,
s1.block_timestamp,
s1.tx_id,
s1.succeeded,
s1.program_id,
s1.swapper,
s1.mint,
s1.amount,
s1.rn,
s1._inserted_timestamp,
NULL,
NULL
FROM
swaps s1
WHERE
s1.inner_index <> s1.min_inner_index_swapper
AND s1.tx_from = s1.swapper
UNION
SELECT
s1.block_id,
s1.block_timestamp,
s1.tx_id,
s1.succeeded,
s1.program_id,
s1.swapper,
NULL AS mint,
NULL AS amount,
s1.rn,
s1._inserted_timestamp,
s1.mint AS to_mint,
s1.amount AS to_amt
FROM
swaps s1
LEFT OUTER JOIN swaps s2
ON s1.tx_id = s2.tx_id
AND s1.index = s2.index
AND s2.inner_index = s2.min_inner_index_swapper
WHERE(
(
s1.inner_index <> s1.min_inner_index_swapper
AND s1.tx_to = s1.swapper
AND s2.mint = s1.mint
)
OR s1.min_inner_index_swapper IS NULL
)
)
SELECT
block_id,
block_timestamp,
tx_id,
succeeded,
program_id,
swapper,
mint AS from_mint,
amount AS from_amt,
to_mint,
to_amt,
_inserted_timestamp,
ROW_NUMBER() over (
PARTITION BY tx_id
ORDER BY
rn
) AS swap_index
FROM
final_temp
WHERE
(COALESCE(
to_amt,
0
) > 0
OR COALESCE(
from_amt,
0
) > 0)
AND program_id is not null

View File

@ -0,0 +1,131 @@
version: 2
models:
- name: silver__swaps_intermediate_generic
tests:
- dbt_utils.unique_combination_of_columns:
combination_of_columns:
- BLOCK_ID
- TX_ID
- SWAP_INDEX
- compare_model_subset:
name: silver__swaps_intermediate_generic_business_logic_test
compare_model: ref('testing__swaps_intermediate_generic')
compare_columns:
- tx_id
- succeeded
- swapper
- from_mint
- from_amt
- to_mint
- to_amt
- swap_index
model_condition: "where tx_id in ('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')"
- tx_excluded:
name: silver__swaps_intermediate_generic_tx_excluded_test
excluded_tx_ids:
- 4VroTTqAjpsxYMTgnBzBSJG2P9uB2orenKxiEfvxbTBnAficioUuCijnAYotMmAH4pB6kgziKHvMgHNf7nU8g646
- 5JHjPkrTy1bWJv6ph8n1Tpk5ABBBuD89NZdyANUpbjdY8Zr2HKUyhJEjSrffQVEfAwYA3d9kVqK84qwuqVSZELp8
- 5e9ATFzcta5RfXB9tjCZfpE7qV1cBUh5H5ocNrwxSfC4D7KqRXTCRL3om4FTwNprwUmn9VMAUJAKm5qVYaJ8vsq6
- 3wSxtF5Mqeh5ybZVH1U4nE577pZSrhCr3td8GbJeCfwZfanpP7wrDXMiCUdhd5njhkWW6FKGgEzptDKsY8CW33RA
- 5hgT6wotqHT6c49iwJXexnvnCToteo5npbRStjFveMerx4RtR75azqXWKoaFyEWbXmLcEXR68EWwFgj5BzxjjXuy
- 3PdQf87gUGqRKrTXWzqpuduUVhe2cCfSFbmDbbJWQg4MwmsQu43esBRz3HQPsGZ98a8ZjtcNsxNDsrxhV1LBWNJn
- 4BhhKEKu1z7qXGPaoX1114oQ5Beqa2VWfgBvoW2dzcU6CmpAGPfztJZim2ZeF6MQsjdAAaiyr4ToChr3fa88mJpA
- 66ipdTYD19wCrWabViaw8Tn1KrZTz9eJnAtr1ZhETPn7c4aN2qcpiWLNnzoGNMaVzw65e5giwAsjCa7BffqKQ3aB
- 56E5FyopfrJuviUp39HCbNJp64d553HNx6p2RFEXQtwe9K3ahRWwmw5ikK6epeVYheqsgZfe1td8t6ZP6fQgx3dk
- 5mVtJYZGJMrCnNLSK2TV7b75KtWkcGngp5nwSheEghyT1qtBVQxdRhp8Y98sUwkJ7aPFVxZtvjLb3wJEVGDkyTS1
- 4WX8oi39gn2dH5jK2AqeNDY93ofuYssmDtMJeyErJzhjvkc4jTcJmDetueQQ9FmcR2UzAxzTvjcPVq7HHQkUoggp
columns:
- name: BLOCK_TIMESTAMP
description: "{{ doc('block_timestamp') }}"
tests:
- not_null
- dbt_expectations.expect_row_values_to_have_recent_data:
datepart: day
interval: 2
- name: BLOCK_ID
description: "{{ doc('block_id') }}"
tests:
- not_null
- name: TX_ID
description: "{{ doc('tx_id') }}"
tests:
- not_null
- name: SUCCEEDED
description: "{{ doc('tx_succeeded') }}"
tests:
- not_null
- name: PROGRAM_ID
description: "{{ doc('program_id') }}"
- name: SWAPPER
description: Address that initiated the swap
- name: FROM_AMT
description: Total amount of the token sent in to initiate the swap
tests:
- name: FROM_MINT
description: Token being sent or swapped from
tests:
- name: TO_AMT
description: Total amount of the token received in the swap
tests:
- name: TO_MINT
description: Token being received or swapped for
tests:
- name: SWAP_INDEX
description: Order in which the intermediate swap was executed
tests:
- not_null:
where: succeeded = TRUE
- name: _INSERTED_TIMESTAMP
description: "{{ doc('_inserted_timestamp') }}"
tests:
- not_null

View File

@ -0,0 +1,478 @@
{{ config(
materialized = 'incremental',
unique_key = ["block_id","tx_id","swap_index"],
merge_predicates = ["DBT_INTERNAL_DEST.block_timestamp::date >= LEAST(current_date-7,(select min(block_timestamp)::date from {{ this }}__dbt_tmp))"],
cluster_by = ['block_timestamp::DATE','_inserted_timestamp::DATE'],
) }}
WITH base_events AS(
SELECT
*
FROM
{{ ref('silver__events') }}
WHERE
program_id IN (
--raydium program_ids
'675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8',
'5quBtoiQqxF9Jv6KYKctB59NT3gtJD2Y65kdnB1Uev3h',
'93BgeoLHo5AdNbpqy9bD12dtfxtA5M2fh3rj72bE35Y3',
'routeUGWgWzqBWFcrCfv8tritsqukccJPu3q5GPP3xS',
--program ids for acct mapping
'ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL',
'TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA'
)
AND block_id > 111442741 -- token balances owner field not guaranteed to be populated before this slot
{% if is_incremental() %}
AND _inserted_timestamp >= (
SELECT
MAX(_inserted_timestamp)
FROM
{{ this }}
)
{% else %}
AND block_timestamp :: DATE >= '2021-12-14'
{% endif %}
),
dex_txs AS (
SELECT
e.*,
signers [0] :: STRING AS swapper,
ARRAY_SIZE(
e.instruction :accounts
) AS instruction_account_size,
CASE
WHEN program_id IN (
'675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8',
'5quBtoiQqxF9Jv6KYKctB59NT3gtJD2Y65kdnB1Uev3h'
) THEN e.instruction :accounts [instruction_account_size-3] :: STRING
ELSE NULL
END AS source_token_account,
CASE
WHEN program_id IN (
'675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8',
'5quBtoiQqxF9Jv6KYKctB59NT3gtJD2Y65kdnB1Uev3h'
) THEN e.instruction :accounts [instruction_account_size-2] :: STRING
ELSE NULL
END AS dest_token_account,
CASE
WHEN program_id IN (
'675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8',
'5quBtoiQqxF9Jv6KYKctB59NT3gtJD2Y65kdnB1Uev3h'
) THEN e.instruction :accounts [instruction_account_size-1] :: STRING
ELSE NULL
END AS user_owner
FROM
base_events e
INNER JOIN {{ ref('silver__transactions') }}
t
ON t.tx_id = e.tx_id
AND t.block_timestamp :: DATE = e.block_timestamp :: DATE
WHERE
(
(
(
program_id = '675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8'
AND instruction :accounts [2] :: STRING = '5Q544fKrFoe6tsEbD7S8EmxGTJYAKtTVhAW5Q5pge4j1'
AND ARRAY_SIZE(
instruction :accounts
) >= 17
AND (
instruction :accounts [6] :: STRING = '9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin'
OR instruction :accounts [7] :: STRING = '9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin'
)
)
OR (
program_id = '5quBtoiQqxF9Jv6KYKctB59NT3gtJD2Y65kdnB1Uev3h'
AND instruction :accounts [2] :: STRING = '3uaZBfHPfmpAHW7dsimC1SnyR61X4bJqQZKWmRSCXJxv'
AND ARRAY_SIZE(
instruction :accounts
) >= 17
AND (
instruction :accounts [6] :: STRING = '9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin'
OR instruction :accounts [7] :: STRING = '9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin'
)
)
OR program_id IN (
'93BgeoLHo5AdNbpqy9bD12dtfxtA5M2fh3rj72bE35Y3',
'routeUGWgWzqBWFcrCfv8tritsqukccJPu3q5GPP3xS'
)
)
)
{% if is_incremental() %}
AND t._inserted_timestamp >= (
SELECT
MAX(_inserted_timestamp)
FROM
{{ this }}
)
{% else %}
AND t.block_timestamp :: DATE >= '2021-12-14'
{% endif %}
),
base_transfers AS (
SELECT
tr.*
FROM
{{ ref('silver__transfers2') }}
tr
INNER JOIN (
SELECT
DISTINCT tx_id
FROM
dex_txs
) d
ON d.tx_id = tr.tx_id
{% if is_incremental() %}
WHERE
_inserted_timestamp >= (
SELECT
MAX(_inserted_timestamp)
FROM
{{ this }}
)
{% else %}
WHERE
block_timestamp :: DATE >= '2021-12-14'
{% endif %}
),
base_post_token_balances AS (
SELECT
pb.*
FROM
{{ ref('silver___post_token_balances') }}
pb
INNER JOIN (
SELECT
DISTINCT tx_id
FROM
dex_txs
) d
ON d.tx_id = pb.tx_id
{% if is_incremental() %}
WHERE
_inserted_timestamp >= (
SELECT
MAX(_inserted_timestamp)
FROM
{{ this }}
)
{% else %}
WHERE
block_timestamp :: DATE >= '2021-12-14'
{% endif %}
),
swaps_temp AS(
SELECT
A.block_id,
A.block_timestamp,
A.tx_id,
COALESCE(SPLIT_PART(INDEX :: text, '.', 1) :: INT, INDEX :: INT) AS INDEX,
COALESCE(SPLIT_PART(INDEX :: text, '.', 2), NULL) AS inner_index,
A.program_id,
A.tx_from,
A.tx_to,
A.amount,
A.mint,
A.succeeded,
A.source_token_account,
A.dest_token_account,
A._inserted_timestamp
FROM
base_transfers AS A
WHERE
A.tx_id IN (
SELECT
tx_id
FROM
dex_txs
)
),
raydium_account_mapping AS(
SELECT
tx_id,
ii.value :parsed :info :account :: STRING AS associated_account,
COALESCE(
ii.value :parsed :info :source :: STRING,
ii.value :parsed :info :owner :: STRING
) AS owner
FROM
dex_txs AS d
LEFT OUTER JOIN TABLE(FLATTEN(inner_instruction :instructions)) ii
WHERE
d.program_id IN (
'675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8',
'5quBtoiQqxF9Jv6KYKctB59NT3gtJD2Y65kdnB1Uev3h',
'93BgeoLHo5AdNbpqy9bD12dtfxtA5M2fh3rj72bE35Y3',
'routeUGWgWzqBWFcrCfv8tritsqukccJPu3q5GPP3xS'
)
AND associated_account IS NOT NULL
),
account_mappings AS (
SELECT
*
FROM
raydium_account_mapping
UNION
SELECT
tx_id,
tx_to AS associated_account,
tx_from AS owner
FROM
swaps_temp
WHERE
amount = 0.00203928
AND mint = 'So11111111111111111111111111111111111111112'
UNION
SELECT
tx_id,
account AS associated_account,
owner
FROM
base_post_token_balances
UNION
SELECT
e.tx_id,
e.instruction :parsed :info :account :: STRING AS associated_account,
COALESCE(
e.instruction :parsed :info :source :: STRING,
e.instruction :parsed :info :owner :: STRING
) AS owner
FROM
base_events e
INNER JOIN (
SELECT
DISTINCT tx_id
FROM
dex_txs
) d
ON d.tx_id = e.tx_id
WHERE
(
(
e.program_id = 'ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL'
AND e.event_type = 'create'
)
OR (
e.program_id = 'TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA'
AND e.event_type = 'closeAccount'
)
)
UNION
SELECT
e.tx_id,
e.instruction :parsed :info :delegate :: STRING AS associated_account,
e.instruction :parsed :info :owner :: STRING AS owner
FROM
base_events e
INNER JOIN (
SELECT
DISTINCT tx_id
FROM
dex_txs
) d
ON d.tx_id = e.tx_id
WHERE
(
e.program_id = 'TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA'
AND e.event_type = 'approve'
)
),
swaps_w_destination AS (
SELECT
s.block_id,
s.block_timestamp,
s.tx_id,
s.index,
s.inner_index,
CASE
WHEN e.program_id IN (
'675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8',
'5quBtoiQqxF9Jv6KYKctB59NT3gtJD2Y65kdnB1Uev3h'
)
AND s.source_token_account = e.source_token_account THEN e.user_owner
ELSE COALESCE(
m1.owner,
s.tx_from
)
END AS tx_from,
CASE
WHEN e.program_id IN (
'675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8',
'5quBtoiQqxF9Jv6KYKctB59NT3gtJD2Y65kdnB1Uev3h'
)
AND s.dest_token_account = e.dest_token_account THEN e.user_owner
ELSE COALESCE(
m2.owner,
s.tx_to
)
END AS tx_to,
s.amount,
s.mint,
s.succeeded,
s._inserted_timestamp,
CASE
WHEN e.program_id IN (
'675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8',
'5quBtoiQqxF9Jv6KYKctB59NT3gtJD2Y65kdnB1Uev3h'
) THEN e.user_owner
ELSE e.swapper
END AS swapper,
e.program_id
FROM
swaps_temp s
LEFT OUTER JOIN dex_txs e
ON s.tx_id = e.tx_id
AND s.index = e.index
LEFT OUTER JOIN account_mappings m1
ON s.tx_id = m1.tx_id
AND s.tx_from = m1.associated_account
AND s.tx_to <> m1.owner
LEFT OUTER JOIN account_mappings m2
ON s.tx_id = m2.tx_id
AND s.tx_to = m2.associated_account
AND s.tx_from <> m2.owner
WHERE
s.program_id <> '11111111111111111111111111111111'
),
min_inner_index_of_swapper AS(
SELECT
tx_id,
INDEX,
MIN(inner_index) AS min_inner_index_swapper
FROM
swaps_w_destination
WHERE
tx_from = swapper
GROUP BY
1,
2
),
swaps AS(
SELECT
d.*,
m.min_inner_index_swapper,
ROW_NUMBER() over (
PARTITION BY d.tx_id
ORDER BY
d.index,
d.inner_index
) AS rn,
ROW_NUMBER() over (
PARTITION BY d.tx_id,
d.index
ORDER BY
d.inner_index
) AS inner_rn
FROM
swaps_w_destination d
LEFT JOIN min_inner_index_of_swapper m
ON m.tx_id = d.tx_id
AND m.index = d.index
WHERE
d.swapper IS NOT NULL
),
final_temp AS (
SELECT
s1.block_id,
s1.block_timestamp,
s1.tx_id,
s1.succeeded,
s1.program_id,
s1.swapper,
s1.mint,
s1.amount,
s1.rn,
s1._inserted_timestamp,
s2.mint AS to_mint,
s2.amount AS to_amt
FROM
swaps s1
LEFT OUTER JOIN swaps s2
ON s1.tx_id = s2.tx_id
AND s1.index = s2.index
AND s1.inner_index <> s2.inner_index
WHERE
s1.inner_index = s1.min_inner_index_swapper
AND s1.swapper = s2.tx_to
AND s1.mint <> s2.mint
UNION
SELECT
s1.block_id,
s1.block_timestamp,
s1.tx_id,
s1.succeeded,
s1.program_id,
s1.swapper,
s1.mint,
s1.amount,
s1.rn,
s1._inserted_timestamp,
NULL,
NULL
FROM
swaps s1
WHERE
s1.inner_index <> s1.min_inner_index_swapper
AND s1.tx_from = s1.swapper
UNION
SELECT
s1.block_id,
s1.block_timestamp,
s1.tx_id,
s1.succeeded,
s1.program_id,
s1.swapper,
NULL AS mint,
NULL AS amount,
s1.rn,
s1._inserted_timestamp,
s1.mint AS to_mint,
s1.amount AS to_amt
FROM
swaps s1
LEFT OUTER JOIN swaps s2
ON s1.tx_id = s2.tx_id
AND s1.index = s2.index
AND s2.inner_index = s2.min_inner_index_swapper
WHERE(
(
s1.inner_index <> s1.min_inner_index_swapper
AND s1.tx_to = s1.swapper
AND s2.mint = s1.mint
)
OR s1.min_inner_index_swapper IS NULL
)
)
SELECT
block_id,
block_timestamp,
tx_id,
succeeded,
program_id,
swapper,
mint AS from_mint,
amount AS from_amt,
to_mint,
to_amt,
_inserted_timestamp,
ROW_NUMBER() over (
PARTITION BY tx_id
ORDER BY
rn
) AS swap_index
FROM
final_temp
WHERE
COALESCE(
to_amt,
0
) > 0
OR COALESCE(
from_amt,
0
) > 0

View File

@ -0,0 +1,83 @@
version: 2
models:
- name: silver__swaps_intermediate_raydium
tests:
- dbt_utils.unique_combination_of_columns:
combination_of_columns:
- BLOCK_ID
- TX_ID
- SWAP_INDEX
- compare_model_subset:
name: silver__swaps_intermediate_raydium_business_logic_test
compare_model: ref('testing__swaps_intermediate_raydium')
compare_columns:
- tx_id
- succeeded
- swapper
- from_mint
- round(from_amt,8)
- to_mint
- round(to_amt,8)
- swap_index
model_condition: "where tx_id in ('3VMB8QpABTaRiVD2PEz2QNdNYqV5nks9dNhq4WBG4HpTDYU7huq7pkj76uvanaJrACq7kMSuypWjsQAUbuCLXjnu',
'4XMga64PPam74iSFPqnXohswejwtdxL1Dj5azTjBfYwE97PfGcP6JSastTwRFHdnzXTcdyRsMwD7t5ZZdpYzjqJj',
'4bEAGZx3EkCyuh3arFg1k3hx7CgR2L9aFdxGg3ihWvwdB4KQiheF6JiyRCQcT6LpeJovYdajDg9fsJ3Lor8pN3kk',
'fACqZJ8hmUjLoBX2wzUS2gfwQUmV4HfJbXeQ5QbrZKTs2qdYZVREZxZbTaCy7brZT2Ck7QDqVLDBXVvbrLdYkk6',
'cFPb9Lq6S45br6RmfXnALPDiRGtZhwZ99PTcJa8a1e4TewEVLUAX5McbBjbk8G6gJuCab2pWZdZh2knB7JjbebQ',
'RJDZyoLB69PXEJzKwwtrhiXR9wmepV2mnjsVwmdj2dG3y5E7bydM6zdYmam88RBDMsrtSz9STEgkBRatzCdyjoQ',
'5QCTzHRQon1ydSsdCdiAR8to3ECt1FynDcU7yfsCAjLB5zMuhfzb14bwzJ8nqqupbXz6G9vEvpnuAbPHXxeh9sBU',
'2FhZ9SjAJQgWqHPNBBBpz9dsX5JbsZVhmEcdDuSs1WwnLaPstFzZtY6p2cnwQhuutHGgS1rkoAq2ZkFpSTdbwF5X',
'5UjXW6NCAJSUMzL9uU3e41r7KmUEuX9i9RT2QS5YSG6FKf6HUh6iRopxBkFsL9A7Bhx3PR1GZeUL561Y6DNehj52',
'MtNdTT2uq9hy7woK4mRyPYZ5SNKFoKJY3UNvi4uRiLQJCrQSY7WMV13dLTDCuAWpHZzinNzAXyXRGXjQUYENtvU',
'39nyp3f5rUMSC4oaYnCVtkiwdbwMByKz7esgmRTFKPhoMgW3RprMgyj9jcrAwoAX9UWLNVGqpB9k79c4gAN7ug1q',
'3XEzUVGbpruCZFKcHFsa3yCZAJ4MQ1TTyaHPFi5odqQ3XEpjA5TzUXHuEVSFRoSGiaRSKQpMwGPzw61ZTb9gRfv5')"
- tx_excluded:
name: silver__swaps_intermediate_raydium_tx_excluded_test
excluded_tx_ids:
- 48XpWuQQKmoGGoGgrNE73fVJVz2PwcqeoRPiWunb8jHaxXgqDDZ4JiUPQWkjdCTYy98grJit8MX9y2eNHoaKsjqm
- 3XHSw61M1zr1ogrzrZ6wc6wgjp3sZFDustxcJAfuFd4GcNKRvbdmpWFYnqga3qje6seDCnSHqNEmQ2iP4BVftgMk
columns:
- name: BLOCK_TIMESTAMP
description: "{{ doc('block_timestamp') }}"
tests:
- not_null
- dbt_expectations.expect_row_values_to_have_recent_data:
datepart: day
interval: 2
- name: BLOCK_ID
description: "{{ doc('block_id') }}"
tests:
- not_null
- name: TX_ID
description: "{{ doc('tx_id') }}"
tests:
- not_null
- name: SUCCEEDED
description: "{{ doc('tx_succeeded') }}"
tests:
- not_null
- name: PROGRAM_ID
description: "{{ doc('program_id') }}"
- name: SWAPPER
description: Address that initiated the swap
- name: FROM_AMT
description: Total amount of the token sent in to initiate the swap
tests:
- name: FROM_MINT
description: Token being sent or swapped from
tests:
- name: TO_AMT
description: Total amount of the token received in the swap
tests:
- name: TO_MINT
description: Token being received or swapped for
tests:
- name: SWAP_INDEX
description: Order in which the intermediate swap was executed
tests:
- not_null:
where: succeeded = TRUE
- name: _INSERTED_TIMESTAMP
description: "{{ doc('_inserted_timestamp') }}"
tests:
- not_null