From 263ca35e27fe6fec88ca4bbc9ca22aa1d497d065 Mon Sep 17 00:00:00 2001 From: desmond-hui <97470747+desmond-hui@users.noreply.github.com> Date: Thu, 29 Feb 2024 08:39:05 -0800 Subject: [PATCH] Fix/support new magic eden seller pattern (#497) * direct transfer from system program to seller * add test, fix issue w/ full refresh logic followed by incremental --- data/testing__nft_sales_magic_eden_v2.csv | 3 ++- .../nfts/silver__nft_sales_magic_eden_v2.sql | 25 +++++++++++-------- .../nfts/silver__nft_sales_magic_eden_v2.yml | 3 ++- 3 files changed, 19 insertions(+), 12 deletions(-) diff --git a/data/testing__nft_sales_magic_eden_v2.csv b/data/testing__nft_sales_magic_eden_v2.csv index b297cfb4..33b9287e 100644 --- a/data/testing__nft_sales_magic_eden_v2.csv +++ b/data/testing__nft_sales_magic_eden_v2.csv @@ -8,4 +8,5 @@ tx_id,purchaser,seller,mint,sales_amount 3qp2hRooXJaatbBuNyfT271aNhmgvAa8iVqDkALxHTaaqS2BLXeZUB6eXWhJy3nDU4gMLwtP3UriqWRvUyeUfpmu,D39r6ZkSRLA4hq1ifdiJTjh96Zk8qev93ZMMCxiBgiPD,F8qXXv8FzzWjyXVQ4qdZXaonGFMyF6HbM7c6pYsNK9vi,8RTRoBxJ1uv6XKc5bnSLdTQrG26qCCZcPSzD2uArn77U,0.3189 5eEkaFyoKGvuTRKbV6G8yKaJrsgqDMer1fXTR9tA4Ab3MTNuKkALKdT4Mdzs3K8sTbJmfB69UQuuDH54QREZhJHa,EvYizbP1oCJkzmJGRKk3Fh7qLaMCx7CCtt1Ffa5gcyzc,5VttzdRW1U2ekWa1T29dadFHMz2FqGn5oUp6y7kB8xLz,FxCh4J3mMhTp8avTQAxSyaQRjjcAeQ5Vvq4LUoabC8Tj,4.935 3kP1mPBGASKQFECHcMbDhTLWkNcW497idg9qGbJ2pvza8ppmDEBwd6qokPaqWsUkoTYTK3CuoAbJMQc3XEFrHURy,D1DupHBMEmR7RsXBWEcdCpQzgnARGx2rxnLjv2Qw6RtN,FNBb12zch5XdYXy2ahYHWopbmDat9HmQYdJTiuB9qXLF,DMTtWbb8RRweLjVApXkEQwazn86BsJdFwToNd3GKVT18,0.63559018 -2pefayEWXHTHuE2D8imy8JyR3smhwouh83jtX9meAPtyaNwzsSrBhiDT8pDRVUHptUiRGoX3sNWeKKjEWzfJh4Sh,G6AMMgAXMgDnSawEFGBfR2sQSEHaMcNwms3mLWUQgoyb,BzuoKChdyXv6x9YahCp4Ec94UUwVskRurnzDba9mVYoY,E7MEX6nQkBJG4bCdvLf4YaPsQT3CND1ayBfjwH4VT8ma,0.091225 \ No newline at end of file +2pefayEWXHTHuE2D8imy8JyR3smhwouh83jtX9meAPtyaNwzsSrBhiDT8pDRVUHptUiRGoX3sNWeKKjEWzfJh4Sh,G6AMMgAXMgDnSawEFGBfR2sQSEHaMcNwms3mLWUQgoyb,BzuoKChdyXv6x9YahCp4Ec94UUwVskRurnzDba9mVYoY,E7MEX6nQkBJG4bCdvLf4YaPsQT3CND1ayBfjwH4VT8ma,0.091225 +EMNndx2kUTZ2gPKhUC5DTQNuK1eVDBqMYfWvrnEHA1uAnpa5JC5HpjatDDBKey3b3zT9xDvAH9rB8B47SoV7nmK,9Hu8jVsxDjNAaahifhdbTjxeHbBo64f8Fj6wW7DGypyt,CsnGuKhZoeJGtR7cZRCFxgRnCKGhaaa4GXuwA9KWYhUi,izr366JqDmLDnXp2ZwMLwsUJYY2KNN63U8a4khEHWFe,0.01239 \ No newline at end of file diff --git a/models/silver/nfts/silver__nft_sales_magic_eden_v2.sql b/models/silver/nfts/silver__nft_sales_magic_eden_v2.sql index 799999e0..afe3e70f 100644 --- a/models/silver/nfts/silver__nft_sales_magic_eden_v2.sql +++ b/models/silver/nfts/silver__nft_sales_magic_eden_v2.sql @@ -49,8 +49,8 @@ AND _inserted_timestamp >= ( ) {% else %} AND - block_timestamp :: DATE BETWEEN '2022-01-08' -- no ME V2 contract before this date - AND '2022-02-08' + _inserted_timestamp :: DATE BETWEEN '2022-08-01' + AND '2022-09-01' {% endif %} GROUP BY 1, @@ -143,8 +143,8 @@ AND e._inserted_timestamp >= ( ) {% else %} AND - e.block_timestamp :: DATE BETWEEN '2022-01-08' -- no ME V2 contract before this date - AND '2022-02-08' + e._inserted_timestamp :: DATE BETWEEN '2022-08-01' + AND '2022-09-01' {% endif %} ), sellers AS ( @@ -166,9 +166,14 @@ sellers AS ( ) > 1 LEFT OUTER JOIN TABLE(FLATTEN(inner_instruction :instructions)) i WHERE - i.value :program :: STRING = 'spl-token' + (i.value :program :: STRING = 'spl-token' AND i.value :programId :: STRING = 'TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA' - AND i.value :parsed :type :: STRING in ('transfer','closeAccount') + AND i.value :parsed :type :: STRING in ('transfer','closeAccount')) + OR ( + i.value :program :: STRING = 'system' + AND i.value :programId :: STRING = '11111111111111111111111111111111' + AND i.value :parsed :type :: STRING in ('transfer') + ) {% if is_incremental() and env_var( 'DBT_IS_BATCH_LOAD', @@ -203,8 +208,8 @@ AND ) {% else %} AND - e.block_timestamp :: DATE BETWEEN '2022-01-08' -- no ME V2 contract before this date - AND '2022-02-08' + e._inserted_timestamp :: DATE BETWEEN '2022-08-01' + AND '2022-09-01' {% endif %} qualify(row_number() over (partition by e.tx_id order by i.index desc)) = 1 ), @@ -257,8 +262,8 @@ WHERE ) {% else %} WHERE - block_timestamp :: DATE BETWEEN '2022-01-08' -- no ME V2 contract before this date - AND '2022-02-08' + _inserted_timestamp :: DATE BETWEEN '2022-08-01' + AND '2022-09-01' {% endif %} ) SELECT diff --git a/models/silver/nfts/silver__nft_sales_magic_eden_v2.yml b/models/silver/nfts/silver__nft_sales_magic_eden_v2.yml index d5e09bae..bf0a648d 100644 --- a/models/silver/nfts/silver__nft_sales_magic_eden_v2.yml +++ b/models/silver/nfts/silver__nft_sales_magic_eden_v2.yml @@ -24,7 +24,8 @@ models: '3qp2hRooXJaatbBuNyfT271aNhmgvAa8iVqDkALxHTaaqS2BLXeZUB6eXWhJy3nDU4gMLwtP3UriqWRvUyeUfpmu', '5eEkaFyoKGvuTRKbV6G8yKaJrsgqDMer1fXTR9tA4Ab3MTNuKkALKdT4Mdzs3K8sTbJmfB69UQuuDH54QREZhJHa', '3kP1mPBGASKQFECHcMbDhTLWkNcW497idg9qGbJ2pvza8ppmDEBwd6qokPaqWsUkoTYTK3CuoAbJMQc3XEFrHURy', - '2pefayEWXHTHuE2D8imy8JyR3smhwouh83jtX9meAPtyaNwzsSrBhiDT8pDRVUHptUiRGoX3sNWeKKjEWzfJh4Sh')" + '2pefayEWXHTHuE2D8imy8JyR3smhwouh83jtX9meAPtyaNwzsSrBhiDT8pDRVUHptUiRGoX3sNWeKKjEWzfJh4Sh', + 'EMNndx2kUTZ2gPKhUC5DTQNuK1eVDBqMYfWvrnEHA1uAnpa5JC5HpjatDDBKey3b3zT9xDvAH9rB8B47SoV7nmK')" columns: - name: BLOCK_TIMESTAMP description: "{{ doc('block_timestamp') }}"