diff --git a/data/testing__swaps_intermediate_generic.csv b/data/testing__swaps_intermediate_generic.csv index 9c67569b..5d05a7cb 100644 --- a/data/testing__swaps_intermediate_generic.csv +++ b/data/testing__swaps_intermediate_generic.csv @@ -91,4 +91,4 @@ Zn4aQD6ScgbNfmcKRSYAuyDJ4AWibjwmKGLW2W4QrvMpWtxvHxTta7cxUYMgWTKTHHACF9hV78yKFdkG 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 \ No newline at end of file +3sRvFwjkHorCbgjdpyHmzUoChRgiR6Hrg74JZG6TnfND2jwnUTv9j2jRnKPkCfUL3HL1JRW5ZgwRKS3P2oxeou97,TRUE,GK5k5riTuuSwSAE1HP5PHCsrFDBP8YoGivAwTzWPuRqE,7dHbWXmci3dT8UFYWYZweBLXgycu7Y3iL6trKn1Y7ARj,25.510966409,EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v,863.952462,2 diff --git a/data/testing__swaps_intermediate_jupiterv4.csv b/data/testing__swaps_intermediate_jupiterv4.csv new file mode 100644 index 00000000..cee8bd72 --- /dev/null +++ b/data/testing__swaps_intermediate_jupiterv4.csv @@ -0,0 +1,60 @@ +tx_id,succeeded,swapper,from_mint,from_amt,to_mint,to_amt,swap_index +31HQzRbMs68pbHuiYa5TxkKNeGcasYY9A6HrdUKfMWz1iVBT1XSnNGTYWB689RgKfysSJDfAK3etFxyZ9ikioaeU,TRUE,Dd1k91cWt84qJoQr3FT7EXQpSaMtZtwPwdho7RbMWtEV,So11111111111111111111111111111111111111112,0.499999537,7vfCXTUXx5WJV5JADk17DUJ4ksgau7utNKj4b963voxs,0.01033913,1 +31HQzRbMs68pbHuiYa5TxkKNeGcasYY9A6HrdUKfMWz1iVBT1XSnNGTYWB689RgKfysSJDfAK3etFxyZ9ikioaeU,TRUE,Dd1k91cWt84qJoQr3FT7EXQpSaMtZtwPwdho7RbMWtEV,7vfCXTUXx5WJV5JADk17DUJ4ksgau7utNKj4b963voxs,0.01033913,EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v,16.467262,2 +4fmjzK1PMv1AR51778H35fbzjVuxsfb2bACtatdzkqfRSSg9Aca5L6gBKjNpQEJm2wQsjyb1Wd9F2r5vdodCuaE,TRUE,EDMGEpKKGKS7nxpu1gjLmuHHWAmvLNy3BZWDxNC3nhAt,mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So,2.5,So11111111111111111111111111111111111111112,2.681007752,1 +4fmjzK1PMv1AR51778H35fbzjVuxsfb2bACtatdzkqfRSSg9Aca5L6gBKjNpQEJm2wQsjyb1Wd9F2r5vdodCuaE,TRUE,EDMGEpKKGKS7nxpu1gjLmuHHWAmvLNy3BZWDxNC3nhAt,So11111111111111111111111111111111111111112,2.681007752,mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So,2.500789029,2 +9H27jvVtL9naDHm2HicebqjfropPnWXWJtZjuAQgh9hhDANhBxZc7LUqo9wiVuB848XYQtNifRcKjhwwsY1BU8r,TRUE,Dd1k91cWt84qJoQr3FT7EXQpSaMtZtwPwdho7RbMWtEV,So11111111111111111111111111111111111111112,3,mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So,2.797924087,1 +9H27jvVtL9naDHm2HicebqjfropPnWXWJtZjuAQgh9hhDANhBxZc7LUqo9wiVuB848XYQtNifRcKjhwwsY1BU8r,TRUE,Dd1k91cWt84qJoQr3FT7EXQpSaMtZtwPwdho7RbMWtEV,mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So,2.797924077,EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v,98.650267,2 +L8n9PPRbhrTNL8FJJm27xDqoxfLKhrvt3zhJkrxigtzASCPqWyHLWipeVUrAwjYYfaoodTS3sdv992eWqYDXXeW,TRUE,Dd1k91cWt84qJoQr3FT7EXQpSaMtZtwPwdho7RbMWtEV,So11111111111111111111111111111111111111112,1,EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v,31.569502,1 +HNJsK2AoxNqBYgCwg2MZuL6EfzchbZFJPN75qXJ2FABftMnPp6K49EB7GmMqZofGcA58y5eD6MdQWW1dcALU121,TRUE,FYeA1CoRmXPaYKWNJv9ZbrrJaKh6ohAw9QYStHUJZPTx,So11111111111111111111111111111111111111112,19.41,mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So,18.19467815,1 +HNJsK2AoxNqBYgCwg2MZuL6EfzchbZFJPN75qXJ2FABftMnPp6K49EB7GmMqZofGcA58y5eD6MdQWW1dcALU121,TRUE,FYeA1CoRmXPaYKWNJv9ZbrrJaKh6ohAw9QYStHUJZPTx,mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So,18.19467814,So11111111111111111111111111111111111111112,19.422787563,2 +3oUHXJugLhCt6qSDRbwJuHtVw7XHNtgtbNFYqgyDVLtzeMk3ZQbSnWN9E4eeSttjVGWWhcos3mARuhfshhfNkBpw,TRUE,Cyu5fgtYLPyUYhBpK3BhRxoqLQc3XTa1bvoCtAbPBcHk,EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v,25,CH74tuRLTYcxG7qNJCsV9rghfLXJCQJbsu7i52a8F1Gn,12557.7,1 +3oUHXJugLhCt6qSDRbwJuHtVw7XHNtgtbNFYqgyDVLtzeMk3ZQbSnWN9E4eeSttjVGWWhcos3mARuhfshhfNkBpw,TRUE,Cyu5fgtYLPyUYhBpK3BhRxoqLQc3XTa1bvoCtAbPBcHk,,,EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v,0.000181,2 +4JbNK3HRSV8of3MTCLXLUmbzTtvhLWafWoWteyuoTh6wNsDP6T673eXMViSBRSSfRz4785H2EBSJeozbK9Hrmoew,TRUE,EDMGEpKKGKS7nxpu1gjLmuHHWAmvLNy3BZWDxNC3nhAt,mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So,15,So11111111111111111111111111111111111111112,16.039806082,1 +4Lf3HEHzv8GL5LomueeG92ckd9VnR8igZcDohRyHHGRFTkNL6nCAhXo44gaasyQSDMejFmX7hyzNSUbvzETkZiaL,TRUE,6Men3h9U1GBX2YXdur2U9nLvZQ86rX3TpAf9Y3Bw8z5K,EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v,11.921345,So11111111111111111111111111111111111111112,0.38037448,1 +iuZ18QV7mZ9rRBr8Xs3JSjJvb6WybiGALbk5ctfmFC6iccmpVLdJrx8h4MXbvrNAKVkZ6FZEV6rboCrNTXdgY3b,TRUE,Ftz8fH34UJomtmVHojZAKJbeLoGJYpLjbpx6jZnTTgGs,6naWDMGNWwqffJnnXFLBCLaYu1y5U9Rohe5wwJPHvf1p,477.79,EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v,325.500629,1 +iuZ18QV7mZ9rRBr8Xs3JSjJvb6WybiGALbk5ctfmFC6iccmpVLdJrx8h4MXbvrNAKVkZ6FZEV6rboCrNTXdgY3b,TRUE,Ftz8fH34UJomtmVHojZAKJbeLoGJYpLjbpx6jZnTTgGs,EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v,325.500629,So11111111111111111111111111111111111111112,10.290357185,2 +5fuRRGBx84zYFismVr9D47rAEAoKTMK55vhkSmnzBD9hna4aMtPcLEdetbwtH7qd5ULQDRzhXrirKFoPZ1a5yC99,TRUE,TX1iMRi6LGCLaUCD6ZcdmyEDac7oRaXWmUPtUzDfmdW,9GayNtQpj73ALAMJ8RoRHN149K4tx4A6brfCqtt89Hmi,5000000,EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v,7.583578,1 +3jzomqPrwHcg2MpkLKeTb49ve8vVc5zqC4vhgfSo3XUFetksuo4ET4b4tEjforEA5dhiBLVXfxoa86TXkKHspHi2,TRUE,99QbtWEGn3Z8SFPBL7zBDNXkhF4xHNbczVWmZ4GamT9u,EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v,1,So11111111111111111111111111111111111111112,0.078938686,1 +3jzomqPrwHcg2MpkLKeTb49ve8vVc5zqC4vhgfSo3XUFetksuo4ET4b4tEjforEA5dhiBLVXfxoa86TXkKHspHi2,TRUE,99QbtWEGn3Z8SFPBL7zBDNXkhF4xHNbczVWmZ4GamT9u,So11111111111111111111111111111111111111112,0.078938686,EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v,0.999809,2 +5N5PtLDxsp1d5mJYBGcQPnC9i4BmD1hRqek5AURy8YzM7GD7zjexS71BvEzaEKKVVa8tcSkxscnFKp2RU5wZHSfh,TRUE,6hyuGqKQyhAEipjtaquiNHfd1dVjrNT3FzzanXurbK4W,EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v,670,9iLH8T7zoWhY7sBmj1WK9ENbWdS1nL8n9wAxaeRitTa6,669.677937227,1 +5N5PtLDxsp1d5mJYBGcQPnC9i4BmD1hRqek5AURy8YzM7GD7zjexS71BvEzaEKKVVa8tcSkxscnFKp2RU5wZHSfh,TRUE,6hyuGqKQyhAEipjtaquiNHfd1dVjrNT3FzzanXurbK4W,9iLH8T7zoWhY7sBmj1WK9ENbWdS1nL8n9wAxaeRitTa6,669.677937227,JEFFSQ3s8T3wKsvp4tnRAsUBW7Cqgnf8ukBZC4C8XBm1,670.084816775,2 +TDznUXMznyL8VCeMm8debuxZAS5vJiBKvdzBXxD47UJ5Rx7MRkpaTfZue7Ykpzi9UEYsxDe1s6WSKgfgu6ZjDd8,TRUE,CmgYtL2ZWAtPqviQq8VqMw1kXy8WrsKyZVkoHpKwdqFF,EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v,3,So11111111111111111111111111111111111111112,0.260851229,1 +TDznUXMznyL8VCeMm8debuxZAS5vJiBKvdzBXxD47UJ5Rx7MRkpaTfZue7Ykpzi9UEYsxDe1s6WSKgfgu6ZjDd8,TRUE,CmgYtL2ZWAtPqviQq8VqMw1kXy8WrsKyZVkoHpKwdqFF,So11111111111111111111111111111111111111112,0.260851229,EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v,3.008291,2 +mixpd95CxtraVoJdGf5rjXoPbMcC5UcP8vMmGb1mqsMPvGBfiyfa3qwSr6mw4Sar3Zj29JGqFmzePw5B3nKnTCU,TRUE,DAmH69eAeTfAhY4P8dj7PZCyrFxozhBT4XLH5Yt6L3Mm,EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v,23.43,So11111111111111111111111111111111111111112,0.753221306,1 +mixpd95CxtraVoJdGf5rjXoPbMcC5UcP8vMmGb1mqsMPvGBfiyfa3qwSr6mw4Sar3Zj29JGqFmzePw5B3nKnTCU,TRUE,DAmH69eAeTfAhY4P8dj7PZCyrFxozhBT4XLH5Yt6L3Mm,So11111111111111111111111111111111111111112,0.75322131,EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v,23.43087,2 +4e2rrdosoGTkp4NCtxz9knyxkYFFdwSZECzhMqWpw5sfcnKsRhRRLRE5nDRAZrQX2PamJG7BZL2ULQ1qT4NDrYwk,TRUE,Dd1k91cWt84qJoQr3FT7EXQpSaMtZtwPwdho7RbMWtEV,EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v,16.442499,mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So,0.468589997,1 +4e2rrdosoGTkp4NCtxz9knyxkYFFdwSZECzhMqWpw5sfcnKsRhRRLRE5nDRAZrQX2PamJG7BZL2ULQ1qT4NDrYwk,TRUE,Dd1k91cWt84qJoQr3FT7EXQpSaMtZtwPwdho7RbMWtEV,mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So,0.468589997,So11111111111111111111111111111111111111112,0.500212511,2 +2XzvhKxUsJb5FWim81kWN3xakyk7ubFVSADfLBomMkbKJuCTRnrmpsYZEKA3FeRruHe5ccwVDNUDD1MBujGmHdSm,TRUE,2UMYK3HMVr6eTYqG2sTShL1VMj3QiFKqtkJNBnSUtx5a,So11111111111111111111111111111111111111112,0.7,EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v,21.667028,1 +2XzvhKxUsJb5FWim81kWN3xakyk7ubFVSADfLBomMkbKJuCTRnrmpsYZEKA3FeRruHe5ccwVDNUDD1MBujGmHdSm,TRUE,2UMYK3HMVr6eTYqG2sTShL1VMj3QiFKqtkJNBnSUtx5a,EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v,21.667028,EchesyfXePKdLtoiZSL8pBe8Myagyy8ZRqsACNCFGnvp,57.7,2 +2XzvhKxUsJb5FWim81kWN3xakyk7ubFVSADfLBomMkbKJuCTRnrmpsYZEKA3FeRruHe5ccwVDNUDD1MBujGmHdSm,TRUE,2UMYK3HMVr6eTYqG2sTShL1VMj3QiFKqtkJNBnSUtx5a,,,EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v,0.009067,3 +2W43jWFcuPBd3ZNH2bQPTn2Gj8TSSZyoqTKspaDzPvR1ppNs2fQMH7DcjgiMNapJ5y3P4eW9wjyzHsMckg6BSHbk,TRUE,CuoSGmfhBrSznQB5giUs2Dj85zLgcqhjZ1vtoKit7uJ5,EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v,137.65564,DdFPRnccQqLD4zCHrBqdY95D6hvw6PLWp9DEXj1fLCL9,137.63462646,1 +2W43jWFcuPBd3ZNH2bQPTn2Gj8TSSZyoqTKspaDzPvR1ppNs2fQMH7DcjgiMNapJ5y3P4eW9wjyzHsMckg6BSHbk,TRUE,CuoSGmfhBrSznQB5giUs2Dj85zLgcqhjZ1vtoKit7uJ5,DdFPRnccQqLD4zCHrBqdY95D6hvw6PLWp9DEXj1fLCL9,137.63462646,JEFFSQ3s8T3wKsvp4tnRAsUBW7Cqgnf8ukBZC4C8XBm1,137.662555457,2 +2Yndo9kZBYLoiL5U8pJ5vARRC1bNZwNNj5xmJg3ZhrKBmEESsPSeZLBux2HwmtcFV6ti1CJtsP5JyhsS7Ci2gDfv,TRUE,Fsgm9XfdEsm1V8SioQRpmNBpJ7MbnWVuyGi2yyyma7o8,So11111111111111111111111111111111111111112,0.105912485,DUSTawucrTsGU8hcqRdHDCbuYhCPADMLM2VcCb8VnFnQ,3.273078349,1 +2Yndo9kZBYLoiL5U8pJ5vARRC1bNZwNNj5xmJg3ZhrKBmEESsPSeZLBux2HwmtcFV6ti1CJtsP5JyhsS7Ci2gDfv,TRUE,Fsgm9XfdEsm1V8SioQRpmNBpJ7MbnWVuyGi2yyyma7o8,DUSTawucrTsGU8hcqRdHDCbuYhCPADMLM2VcCb8VnFnQ,3.273078349,So11111111111111111111111111111111111111112,0.10635261,2 +4qm1ckjb7qzo5Jvcn5gN1t5zNUBtN71uHvGooJALv1pA2qyVY4eB19Y2f489iqxNJr5owKttJoCHjzjztzcYN5WK,TRUE,BFBvSCGA5i83oq9c2R4hGJ5DPcP1HLr8LiRVYvskhYRC,So11111111111111111111111111111111111111112,0.329999939,Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB,4.624648,1 +4qm1ckjb7qzo5Jvcn5gN1t5zNUBtN71uHvGooJALv1pA2qyVY4eB19Y2f489iqxNJr5owKttJoCHjzjztzcYN5WK,TRUE,BFBvSCGA5i83oq9c2R4hGJ5DPcP1HLr8LiRVYvskhYRC,Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB,0.002312,,,2 +4qm1ckjb7qzo5Jvcn5gN1t5zNUBtN71uHvGooJALv1pA2qyVY4eB19Y2f489iqxNJr5owKttJoCHjzjztzcYN5WK,TRUE,BFBvSCGA5i83oq9c2R4hGJ5DPcP1HLr8LiRVYvskhYRC,Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB,4.622336,So11111111111111111111111111111111111111112,0.330061442,3 +5YvMwRPQXwPgyK9sD2JpMuxhb8budGLhTxV21e2HqFhn6MocJEtXCpqMTDJ8Xx7uC2Dzgq2J51E7Tz6suokh2rYS,TRUE,5XVDbeNs6w2Udcw7ffX1L6xpk1sw4WEmmrBYCeDGeDbQ,AFbX8oGjGpmVFywbVouvhQSRmiW2aR1mohfahi4Y2AdB,105.609985171,EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v,2.653764,1 +5YvMwRPQXwPgyK9sD2JpMuxhb8budGLhTxV21e2HqFhn6MocJEtXCpqMTDJ8Xx7uC2Dzgq2J51E7Tz6suokh2rYS,TRUE,5XVDbeNs6w2Udcw7ffX1L6xpk1sw4WEmmrBYCeDGeDbQ,EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v,2.653764,7i5KKsX2weiTkry7jA4ZwSuXGhs5eJBEjY8vVxR4pfRx,6.323274601,2 +29jgUWT8LN92vHkTTYE7QgaBzDNk3grB6C3nMRSgnCx9z58xKFf4AAoruGaN23GiGZF9EhocxqcYagaBwQxKtosA,TRUE,CuoSGmfhBrSznQB5giUs2Dj85zLgcqhjZ1vtoKit7uJ5,So11111111111111111111111111111111111111112,0.1,EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v,1.36385,1 +29jgUWT8LN92vHkTTYE7QgaBzDNk3grB6C3nMRSgnCx9z58xKFf4AAoruGaN23GiGZF9EhocxqcYagaBwQxKtosA,TRUE,CuoSGmfhBrSznQB5giUs2Dj85zLgcqhjZ1vtoKit7uJ5,EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v,0.000681,,,2 +29jgUWT8LN92vHkTTYE7QgaBzDNk3grB6C3nMRSgnCx9z58xKFf4AAoruGaN23GiGZF9EhocxqcYagaBwQxKtosA,TRUE,CuoSGmfhBrSznQB5giUs2Dj85zLgcqhjZ1vtoKit7uJ5,EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v,1.363169,So11111111111111111111111111111111111111112,0.100300378,3 +33mBSvWN5HRwSTSCxaER66L1DjmXpwYRMF4hs5JPDkqAcyR7hhfMUNYa3HDPDmBCgiXBqCZ76VWAcyZq7z8ZTDah,TRUE,J1dhEW964b3rpxXVjsyr4ZY1vdKPLinFatrdPYVN8vFQ,HBB111SCo9jkCejsZfz8Ec8nH7T6THF8KEKSnvwT6XK6,2.315564,So11111111111111111111111111111111111111112,0.015752047,1 +33mBSvWN5HRwSTSCxaER66L1DjmXpwYRMF4hs5JPDkqAcyR7hhfMUNYa3HDPDmBCgiXBqCZ76VWAcyZq7z8ZTDah,TRUE,J1dhEW964b3rpxXVjsyr4ZY1vdKPLinFatrdPYVN8vFQ,So11111111111111111111111111111111111111112,0.000007876,,,2 +33mBSvWN5HRwSTSCxaER66L1DjmXpwYRMF4hs5JPDkqAcyR7hhfMUNYa3HDPDmBCgiXBqCZ76VWAcyZq7z8ZTDah,TRUE,J1dhEW964b3rpxXVjsyr4ZY1vdKPLinFatrdPYVN8vFQ,So11111111111111111111111111111111111111112,0.015744171,EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v,0.526764,3 +uisd6QvNLwopjJLiwwfiPqRob22XDL6A1GJQo7PCqbmQ2BeWy82RHy4EFxrRXX9nK3EBpjVXHPimQrtTxTcF2GV,TRUE,39X9ewxFHxyo4YXwer8aHdDJwWbFSnP11caZvXPbMz3C,DubwWZNWiNGMMeeQHPnMATNj77YZPZSAz2WVR5WjLJqz,206.601849805,So11111111111111111111111111111111111111112,0.087544419,1 +uisd6QvNLwopjJLiwwfiPqRob22XDL6A1GJQo7PCqbmQ2BeWy82RHy4EFxrRXX9nK3EBpjVXHPimQrtTxTcF2GV,TRUE,39X9ewxFHxyo4YXwer8aHdDJwWbFSnP11caZvXPbMz3C,So11111111111111111111111111111111111111112,0.087544419,EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v,2.752588,2 +Ze5phbeq7vg2nRw7ib4ejh4eUtyg8zrakMauxvtzm5GqaMLDX4wHWLSBmV9F2NUPxejdDQziWaLb1hhH6SDwuRx,TRUE,skyPbXK9B9f4o5Cz9JDMpw4RCxaLKhe1NsqbQ1sQdcZ,orcaEKTdK7LKz57vaAYr9QeNsVEPfiu6QeMU1kektZE,1.496262,So11111111111111111111111111111111111111112,0.033391302,1 +Ze5phbeq7vg2nRw7ib4ejh4eUtyg8zrakMauxvtzm5GqaMLDX4wHWLSBmV9F2NUPxejdDQziWaLb1hhH6SDwuRx,TRUE,skyPbXK9B9f4o5Cz9JDMpw4RCxaLKhe1NsqbQ1sQdcZ,So11111111111111111111111111111111111111112,0.033391302,EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v,1.49992,2 +Ze5phbeq7vg2nRw7ib4ejh4eUtyg8zrakMauxvtzm5GqaMLDX4wHWLSBmV9F2NUPxejdDQziWaLb1hhH6SDwuRx,TRUE,skyPbXK9B9f4o5Cz9JDMpw4RCxaLKhe1NsqbQ1sQdcZ,EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v,1.49992,MNDEFzGvMt87ueuHvVU9VcTqsAP5b3fTGPsHuuPA5ey,36.949325075,3 +2acAT7yd5SpQVvVDpwaqQ4p3FAUfba7FjDM78oep2tCohY3sBVGXzev2gSStgKPPdnxoLTfkrKFzn1dtgVVefv2Y,TRUE,F3hyf2mPhmbtQ9aDbJ3vsxhC3Q1iYCHb1sWAzHmCmJn,frtnaScfGPuo56uyPGmij1QTc64SBdjnXC3RXmcVmxw,215,EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v,4.509855,1 +2acAT7yd5SpQVvVDpwaqQ4p3FAUfba7FjDM78oep2tCohY3sBVGXzev2gSStgKPPdnxoLTfkrKFzn1dtgVVefv2Y,TRUE,F3hyf2mPhmbtQ9aDbJ3vsxhC3Q1iYCHb1sWAzHmCmJn,EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v,4.509213,2zzC22UBgJGCYPdFyo7GDwz7YHq5SozJc1nnBqLU8oZb,714,2 +4xSZVhrAjKGEd7f689e5un93nCkQHcuisT9dLFsqiaHsBDP8eUkFzVAFPSbefhECPuUot4HhPA2ZkQStZFLm733w,TRUE,HqfvwA8fR53KCw5KbG2Hf19iYfXCxJqn2pJ8rK9rexcc,ATLASXmbPQxBUYbxPsV97usA3fPQYEqzQBUHgiFCUsXx,29.7820215,So11111111111111111111111111111111111111112,0.005516556,1 +4xSZVhrAjKGEd7f689e5un93nCkQHcuisT9dLFsqiaHsBDP8eUkFzVAFPSbefhECPuUot4HhPA2ZkQStZFLm733w,TRUE,HqfvwA8fR53KCw5KbG2Hf19iYfXCxJqn2pJ8rK9rexcc,So11111111111111111111111111111111111111112,0.005516556,EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v,0.232737,2 +2Nf5PPNT1PgTWgaRMJSTLYsGByL7vwQdnb1hNwqGwYNxGNAqTswbagr7DSskU7E7rVbmg7HNWtSMBp1bpHF2C57D,TRUE,8bdkk6vGmauCaqFVTRfm8z2FTb8JVYbczGMDpXVHKVMw,EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v,3.989706,So11111111111111111111111111111111111111112,0.28340872,1 +5iL9vkTUMB4DgLjS8aWMKzffcbw54RsANFmqAEoVgt3BgNCSbQAczgd1P3ZwVNjkEboiBg5PBNLQADPFhU9eeaGi,TRUE,DQG3xTgvTd9VaeAxMjzQMybBLRHSCosCfWNAfQgpUh6e,So11111111111111111111111111111111111111112,10,J1toso1uCk3RLmjorhTtrVwY9HJ7X8V9yYac6Y7kGCPn,9.99099238,1 +5iL9vkTUMB4DgLjS8aWMKzffcbw54RsANFmqAEoVgt3BgNCSbQAczgd1P3ZwVNjkEboiBg5PBNLQADPFhU9eeaGi,TRUE,DQG3xTgvTd9VaeAxMjzQMybBLRHSCosCfWNAfQgpUh6e,mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So,9.29282113,So11111111111111111111111111111111111111112,10.00250273,2 +5Bde5J48pvBj5JdgwGbXebmCR8Djrk2fZajHtWevSLWskDJSw2gJ5SvzWvMujsVgAMZ16yLyGY1aisDCWEUW31i3,TRUE,7NcZEFD14dxSXEF6qvVqRwL8PaUKCJK4ySgPGyKpqxx2,So11111111111111111111111111111111111111112,0.00032104,EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v,0.01,1 +AA15jvmCmndUFcz8aDEzshVycBRQWxcfDt5TaG1fCRy8fR7jkuHThCG12oEt5AThPuff5Wisb8ewKouJBbwsTzA,TRUE,CkPBChg9QvVWRP7GkFnr3gzr7K3To6kiTm3osVeRqnvv,A1KWZzcUrsX9MAsL8XtZkuS4RX6fjZazc7K5UoX42M3M,1000,EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v,5.184507,1 +AA15jvmCmndUFcz8aDEzshVycBRQWxcfDt5TaG1fCRy8fR7jkuHThCG12oEt5AThPuff5Wisb8ewKouJBbwsTzA,TRUE,CkPBChg9QvVWRP7GkFnr3gzr7K3To6kiTm3osVeRqnvv,EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v,5.184507,So11111111111111111111111111111111111111112,0.36561774,2 diff --git a/models/silver/swaps/silver__swaps_intermediate_generic.sql b/models/silver/swaps/silver__swaps_intermediate_generic.sql index 4e0ad481..30939926 100644 --- a/models/silver/swaps/silver__swaps_intermediate_generic.sql +++ b/models/silver/swaps/silver__swaps_intermediate_generic.sql @@ -146,7 +146,7 @@ swaps_temp AS( 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, + NULLIF(SPLIT_PART(INDEX :: text, '.', 2), '') :: INT AS inner_index, A.program_id, A.tx_from, A.tx_to, diff --git a/models/silver/swaps/silver__swaps_intermediate_jupiterv4.sql b/models/silver/swaps/silver__swaps_intermediate_jupiterv4.sql new file mode 100644 index 00000000..70b769ca --- /dev/null +++ b/models/silver/swaps/silver__swaps_intermediate_jupiterv4.sql @@ -0,0 +1,503 @@ +{{ 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 v4 program_ids + 'JUP4Fb2cqiRUcaTHdrPC8h2gNsA2ETXiPDD33WcGuJB', + --program ids for acct mapping + 'ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL', + 'TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA' + ) + +{% if is_incremental() %} +-- AND block_timestamp :: DATE = '2022-11-01' +AND _inserted_timestamp >= ( + SELECT + MAX(_inserted_timestamp) + FROM + {{ this }} +) +{% else %} + AND block_timestamp :: DATE >= '2022-07-12' -- first tx with v4 +{% endif %} +), +dex_txs AS ( + SELECT + e.*, + IFF(ARRAY_SIZE(signers) = 1, signers [0] :: STRING, NULL) AS swapper, + silver.udf_get_jupv4_inner_programs( + inner_instruction :instructions + ) AS inner_programs, + 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 = 'JUP4Fb2cqiRUcaTHdrPC8h2gNsA2ETXiPDD33WcGuJB' + 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 >= '2022-07-12' +{% endif %} +), +temp_inner_program_ids AS ( + SELECT + dex_txs.*, + i.value :program_id :: STRING AS inner_swap_program_id, + i.value :inner_index :: INT AS swap_program_inner_index_start, + COALESCE(LEAD(swap_program_inner_index_start) over (PARTITION BY tx_id, dex_txs.index + ORDER BY + swap_program_inner_index_start) -1, 999999) AS swap_program_inner_index_end + FROM + dex_txs, + TABLE(FLATTEN(inner_programs)) i), + base_transfers AS ( + SELECT + * + FROM + {{ ref('silver__transfers') }} + tr + +{% if is_incremental() %} +WHERE + -- block_timestamp :: DATE = '2022-11-01' + _inserted_timestamp >= ( + SELECT + MAX(_inserted_timestamp) + FROM + {{ this }} + ) +{% else %} +WHERE + block_timestamp :: DATE >= '2022-07-12' +{% endif %} +), +base_post_token_balances AS ( + SELECT + * + FROM + {{ ref('silver___post_token_balances') }} + +{% if is_incremental() %} +WHERE + -- block_timestamp :: DATE = '2022-11-01' + _inserted_timestamp >= ( + SELECT + MAX(_inserted_timestamp) + FROM + {{ this }} + ) +{% else %} +WHERE + block_timestamp :: DATE >= '2022-07-12' +{% 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, + NULLIF(SPLIT_PART(INDEX :: text, '.', 2), '') :: INT 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 + ) +), +swap_w_inner_program_id AS( + SELECT + s.*, + t.inner_swap_program_id, + t.swap_program_inner_index_start + FROM + swaps_temp s + LEFT OUTER JOIN temp_inner_program_ids t + ON t.tx_id = s.tx_id + AND t.index = s.index + AND s.inner_index BETWEEN t.swap_program_inner_index_start + AND t.swap_program_inner_index_end +), +temp_acct_mappings AS( + SELECT + tx_id, + i.value :parsed :info :account :: STRING AS associated_account, + COALESCE( + i.value :parsed :info :source :: STRING, + i.value :parsed :info :owner :: STRING + ) AS owner + FROM + base_events + LEFT JOIN TABLE(FLATTEN(inner_instruction :instructions)) i + WHERE + ( + ( + i.value :programId = 'ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL' + AND i.value :parsed :type = 'create' + ) + OR ( + i.value :programId = 'TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA' + AND i.value :parsed :type = 'closeAccount' + ) + ) + UNION + SELECT + tx_id, + i.value :parsed :info :delegate :: STRING AS associated_account, + i.value :parsed :info :owner :: STRING AS owner + FROM + base_events + LEFT JOIN TABLE(FLATTEN(inner_instruction :instructions)) i + WHERE + ( + i.value :programId = 'TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA' + AND i.value :parsed :type = 'approve' + ) +), +account_mappings AS ( + SELECT + * + FROM + temp_acct_mappings + 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 + tx_id, + instruction :parsed :info :account :: STRING AS associated_account, + COALESCE( + instruction :parsed :info :source :: STRING, + instruction :parsed :info :owner :: STRING + ) AS owner + FROM + base_events + WHERE + ( + ( + program_id = 'ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL' + AND event_type = 'create' + ) + OR ( + program_id = 'TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA' + AND event_type = 'closeAccount' + ) + ) + UNION + SELECT + tx_id, + instruction :parsed :info :delegate :: STRING AS associated_account, + instruction :parsed :info :owner :: STRING AS owner + FROM + base_events + WHERE + ( + program_id = 'TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA' + AND event_type = 'approve' + ) +), +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, + s.inner_swap_program_id, + s.swap_program_inner_index_start + FROM + swap_w_inner_program_id 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 + LEFT OUTER JOIN account_mappings m2 + ON s.tx_id = m2.tx_id + AND s.tx_to = m2.associated_account + WHERE + s.program_id <> '11111111111111111111111111111111' + AND s.inner_swap_program_id NOT IN ( + 'MarBmsSgKXdrN1egZf5sqe1TMai9K1rChYNDJgjq7aD', + '1gE3LGQze8DQ3KD2C4ZUCmRX5g4njhY5yLfYmnmcvJR', + 'DecZY86MU5Gj7kppfUCEmd4LbXXuyZH1yHaP2NTqdiZB' + ) +), +multi_signer_swapper as ( + select + tx_id, + solana_dev.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 +), +transfers_from_swapper AS ( + SELECT + d.*, + SUM(amount) over ( + PARTITION BY tx_id, + tx_from, + INDEX, + mint, + inner_swap_program_id + ) AS sum_from_amount, + NULL AS sum_to_amount + FROM + swaps_filtered_temp d + WHERE + tx_from = d.swapper + AND tx_from <> tx_to qualify(ROW_NUMBER() over (PARTITION BY tx_id, tx_from, INDEX, mint, inner_swap_program_id + ORDER BY + inner_index)) = 1 + UNION + SELECT + d.*, + NULL AS sum_from_amount, + SUM(amount) over ( + PARTITION BY tx_id, + tx_to, + INDEX, + mint, + inner_swap_program_id + ) AS sum_to_amount + FROM + swaps_filtered_temp d + WHERE + tx_to = d.swapper + AND tx_from <> tx_to qualify(ROW_NUMBER() over (PARTITION BY tx_id, tx_to, INDEX, mint, inner_swap_program_id + ORDER BY + inner_index)) = 1 +), +full_swaps_temp AS( + SELECT + s1.block_id, + s1.block_timestamp, + s1.tx_id, + s1.succeeded, + s1.program_id, + s1.inner_swap_program_id, + s1.swapper, + s1.mint, + s1.amount, + s1.inner_index AS rn, + s1._inserted_timestamp, + s1.index, + s1.inner_index AS inner_index_1, + s2.inner_index AS inner_index_2, + s2.mint AS to_mint, + s2.amount AS to_amt, + s1.sum_from_amount, + s2.sum_to_amount + FROM + transfers_from_swapper s1 + LEFT OUTER JOIN transfers_from_swapper s2 + ON s1.tx_id = s2.tx_id + AND s1.index = s2.index + AND s1.inner_index <> s2.inner_index + AND s1.inner_swap_program_id = s2.inner_swap_program_id + WHERE + s1.swapper = s2.tx_to + AND s1.tx_from = s2.tx_to + AND s1.mint <> s2.mint qualify(ROW_NUMBER() over (PARTITION BY s1.tx_id, s1.index, inner_index_1 + ORDER BY + ABS(s1.swap_program_inner_index_start - s2.swap_program_inner_index_start), inner_index_2)) = 1 +), +final_temp AS( + SELECT + s.block_id, + s.block_timestamp, + s.tx_id, + s.succeeded, + s.program_id, + s.inner_swap_program_id, + s.swapper, + s.mint AS from_mint, + s.sum_from_amount AS from_amt, + s.index, + s.rn, + s._inserted_timestamp, + s.to_mint, + s.sum_to_amount AS to_amt + FROM + full_swaps_temp AS s + UNION + SELECT + s.block_id, + s.block_timestamp, + s.tx_id, + s.succeeded, + s.program_id, + s.inner_swap_program_id, + s.swapper, + s.mint AS from_mint, + s.sum_from_amount AS from_amt, + s.index, + s.inner_index AS rn, + s._inserted_timestamp, + NULL AS to_mint, + NULL AS to_amt + FROM + transfers_from_swapper s + LEFT JOIN full_swaps_temp f + ON s.tx_id = f.tx_id + AND s.index = f.index + AND ( + s.inner_index = f.inner_index_1 + OR s.inner_index = f.inner_index_2 + ) + WHERE + f.index IS NULL + AND s.tx_from = s.swapper + UNION + SELECT + s.block_id, + s.block_timestamp, + s.tx_id, + s.succeeded, + s.program_id, + s.inner_swap_program_id, + s.swapper, + NULL AS from_mint, + NULL AS from_amt, + s.index, + s.inner_index AS rn, + s._inserted_timestamp, + s.mint AS to_mint, + s.sum_to_amount AS to_amt + FROM + transfers_from_swapper s + LEFT JOIN full_swaps_temp f + ON s.tx_id = f.tx_id + AND s.index = f.index + AND ( + s.inner_index = f.inner_index_1 + OR s.inner_index = f.inner_index_2 + ) + WHERE + f.index IS NULL + AND s.tx_to = s.swapper +) +SELECT + block_id, + block_timestamp, + tx_id, + succeeded, + program_id, + inner_swap_program_id, + swapper, + from_mint, + from_amt, + to_mint, + to_amt, + _inserted_timestamp, + ROW_NUMBER() over ( + PARTITION BY tx_id + ORDER BY + index, + 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 \ No newline at end of file diff --git a/models/silver/swaps/silver__swaps_intermediate_jupiterv4.yml b/models/silver/swaps/silver__swaps_intermediate_jupiterv4.yml new file mode 100644 index 00000000..4bf35fc5 --- /dev/null +++ b/models/silver/swaps/silver__swaps_intermediate_jupiterv4.yml @@ -0,0 +1,105 @@ +version: 2 +models: + - name: silver__swaps_intermediate_jupiterv4 + tests: + - dbt_utils.unique_combination_of_columns: + combination_of_columns: + - BLOCK_ID + - TX_ID + - SWAP_INDEX + - compare_model_subset: + name: silver__swaps_intermediate_jupiterv4_business_logic_test + compare_model: ref('testing__swaps_intermediate_jupiterv4') + 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 ('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')" + - tx_excluded: + name: silver__swaps_intermediate_jupiterv4_tx_excluded_test + excluded_tx_ids: + - 3SfteqdcnzmA69Jb9YLqeddZHKLNwJYeyHnLVjaUuzwAx1if6zzfvtRVUbn6B7NfSvxUaciXSQoMdhiFKA2AidKL + - 3Erjg9Rr3hx8DqBsDDNSWXXwgnCeSpWgmLL6MzGguJuBVJpTKC84xt9jaPo3w5afsQCGoxeX3gxTsfQEkaC7gnCT + - 2W5w6podtufyADsBYKXJ7NS9ZkxMsYy6ZHMhHCHRsKCnA4LCemRPoV3aap7FM6bfHwYWzCMM1pkgGf2QPKjBPbZw + - WKTdmmBML6113txMDXmA9C6HsnMVPjEdPrhfjgT5wif85a2SRXrTQbgR6DjBFwR4oBtrBAG9FFjQ122BoXg7Cpu + 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 \ No newline at end of file diff --git a/models/silver/swaps/silver__swaps_intermediate_orca.sql b/models/silver/swaps/silver__swaps_intermediate_orca.sql index c9defd7d..d061ea72 100644 --- a/models/silver/swaps/silver__swaps_intermediate_orca.sql +++ b/models/silver/swaps/silver__swaps_intermediate_orca.sql @@ -151,7 +151,7 @@ swaps_temp AS( A.block_timestamp, A.tx_id, COALESCE(SPLIT_PART(INDEX :: text, '.', 1) :: INT, INDEX :: INT) AS INDEX, - COALESCE(NULLIF(SPLIT_PART(INDEX :: text, '.', 2), '') :: INT, NULL) AS inner_index, + NULLIF(SPLIT_PART(INDEX :: text, '.', 2), '') :: INT AS inner_index, A.program_id, A.tx_from, A.tx_to, diff --git a/models/silver/swaps/silver__swaps_intermediate_raydium.sql b/models/silver/swaps/silver__swaps_intermediate_raydium.sql index 01005833..1cc6beb8 100644 --- a/models/silver/swaps/silver__swaps_intermediate_raydium.sql +++ b/models/silver/swaps/silver__swaps_intermediate_raydium.sql @@ -172,7 +172,7 @@ swaps_temp AS( 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, + NULLIF(SPLIT_PART(INDEX :: text, '.', 2), '') :: INT AS inner_index, A.program_id, A.tx_from, A.tx_to,