From a9a803a23f57eeeb081e6428ab5fc12a7177e11e Mon Sep 17 00:00:00 2001 From: yuunlimm Date: Tue, 21 Jan 2025 21:27:06 -0800 Subject: [PATCH] add current fungible asset balance --- .../current_fungible_asset_balances.json | 156 ++++++++++++------ .../current_fungible_asset_balances.json | 40 +++-- .../current_fungible_asset_balances.json | 32 +++- .../current_fungible_asset_balances.json | 14 +- .../current_fungible_asset_balances.json | 54 ++++-- .../current_fungible_asset_balances.json | 58 +++++-- .../current_fungible_asset_balances.json | 30 +++- .../fungible_asset_processor.rs | 10 +- .../src/models/fa_v2_models.rs | 44 ++--- .../auth_key_account_addresses.rs | 1 + .../auth_key_multikey_layout.rs | 1 + .../public_key_auth_keys.rs | 1 + 12 files changed, 303 insertions(+), 138 deletions(-) diff --git a/rust/integration-tests/sdk_expected_db_output_files/fungible_asset_processor/coin_and_fa_transfers_test/current_fungible_asset_balances.json b/rust/integration-tests/sdk_expected_db_output_files/fungible_asset_processor/coin_and_fa_transfers_test/current_fungible_asset_balances.json index 02be6d1fc..29f86c1ae 100644 --- a/rust/integration-tests/sdk_expected_db_output_files/fungible_asset_processor/coin_and_fa_transfers_test/current_fungible_asset_balances.json +++ b/rust/integration-tests/sdk_expected_db_output_files/fungible_asset_processor/coin_and_fa_transfers_test/current_fungible_asset_balances.json @@ -1,90 +1,154 @@ [ { - "storage_id": "0x12aee8d4b8ba1ff0b7b943fe2db30bdde3f3d52f83912e92a90c4610e11c1412", - "owner_address": "0xaf1fbd1c118239498c0fec0e5cec54a50d03250fe1aca589a6b903566ba1d4db", - "asset_type": "0x1::aptos_coin::AptosCoin", - "is_primary": true, + "storage_id": "0x234f0be57d6acfb2f0f19c17053617311a8d03c9ce358bdf9cd5c460e4a02b7c", + "owner_address": "0x4bf51972879e3b95c4781a5cdcb9e1ee24ef483e7d22f2d903626f126df62bd1", + "asset_type_v2": "0x234f0be57d6acfb2f0f19c17053617311a8d03c9ce358bdf9cd5c460e4a02b7c", + "asset_type_v1": null, + "is_primary": false, "is_frozen": false, - "amount": "114994000", - "last_transaction_timestamp": "2024-06-25T23:55:53", + "amount_v1": null, + "amount_v2": "1000", + "amount": "1000", + "last_transaction_version_v1": null, + "last_transaction_version_v2": 999929475, "last_transaction_version": 999929475, - "token_standard": "v1" + "last_transaction_timestamp_v1": null, + "last_transaction_timestamp_v2": "2024-06-25T23:55:53", + "last_transaction_timestamp": "2024-06-25T23:55:53", + "token_standard": "v2", + "asset_type": "0x234f0be57d6acfb2f0f19c17053617311a8d03c9ce358bdf9cd5c460e4a02b7c" }, { - "storage_id": "0x2283606d1303cb8c6df599a6b7d0cec85873d747d5db2f2142b594c2db9d83ad", + "storage_id": "0x27af54b1bb7cb1f4ef3e1ac6577616f62d94fb670fd33d385c439bc3967c49b3", "owner_address": "0xaf1fbd1c118239498c0fec0e5cec54a50d03250fe1aca589a6b903566ba1d4db", - "asset_type": "0xf22bede237a07e121b56d91a491eb7bcdfd1f5907926a9e58338f964a01b17fa::asset::USDC", + "asset_type_v2": null, + "asset_type_v1": "0x1::aptos_coin::AptosCoin", "is_primary": true, "is_frozen": false, - "amount": "162105637", - "last_transaction_timestamp": "2024-06-25T23:55:53", + "amount_v1": "114994000", + "amount_v2": null, + "amount": "114994000", + "last_transaction_version_v1": 999929475, + "last_transaction_version_v2": null, "last_transaction_version": 999929475, - "token_standard": "v1" + "last_transaction_timestamp_v1": "2024-06-25T23:55:53", + "last_transaction_timestamp_v2": null, + "last_transaction_timestamp": "2024-06-25T23:55:53", + "token_standard": "v1", + "asset_type": "0x1::aptos_coin::AptosCoin" }, { - "storage_id": "0x234f0be57d6acfb2f0f19c17053617311a8d03c9ce358bdf9cd5c460e4a02b7c", - "owner_address": "0x4bf51972879e3b95c4781a5cdcb9e1ee24ef483e7d22f2d903626f126df62bd1", - "asset_type": "0x234f0be57d6acfb2f0f19c17053617311a8d03c9ce358bdf9cd5c460e4a02b7c", + "storage_id": "0x89cee32338902b6f79f9c75c317d32ac061771817c0d5b0802f97ec44ebfc7d4", + "owner_address": "0x234f0be57d6acfb2f0f19c17053617311a8d03c9ce358bdf9cd5c460e4a02b7c", + "asset_type_v2": "0x50fdfa97914bd00b656e3041e143f157c84931eb1ca7224b8a8570e7d5be70f2", + "asset_type_v1": null, "is_primary": false, "is_frozen": false, - "amount": "1000", - "last_transaction_timestamp": "2024-06-25T23:55:53", + "amount_v1": null, + "amount_v2": "429891425615", + "amount": "429891425615", + "last_transaction_version_v1": null, + "last_transaction_version_v2": 999929475, "last_transaction_version": 999929475, - "token_standard": "v2" + "last_transaction_timestamp_v1": null, + "last_transaction_timestamp_v2": "2024-06-25T23:55:53", + "last_transaction_timestamp": "2024-06-25T23:55:53", + "token_standard": "v2", + "asset_type": "0x50fdfa97914bd00b656e3041e143f157c84931eb1ca7224b8a8570e7d5be70f2" }, { - "storage_id": "0x3e10c1bcedce2b6f6a51cf44682309fcb159151f4fcd8d1e5403cf5fa3d607b2", + "storage_id": "0x8ca15f49a4147c76f4121550f3cf9de391e4e14d2ec8485dcdbda99387b9689e", "owner_address": "0x3b38735644d0be8ac37ebd84a1e42fa5c2487495ef8782f6c694b1a147f82426", - "asset_type": "0x1::aptos_coin::AptosCoin", + "asset_type_v2": null, + "asset_type_v1": "0x1::aptos_coin::AptosCoin", "is_primary": true, "is_frozen": false, + "amount_v1": "111198107496469", + "amount_v2": null, "amount": "111198107496469", - "last_transaction_timestamp": "2024-06-25T23:55:53", + "last_transaction_version_v1": 999929475, + "last_transaction_version_v2": null, "last_transaction_version": 999929475, - "token_standard": "v1" - }, - { - "storage_id": "0x809c69006e5492c65a1d4b273c65318fb482bed7988c75c48b96d283263ba029", - "owner_address": "0x3b38735644d0be8ac37ebd84a1e42fa5c2487495ef8782f6c694b1a147f82426", - "asset_type": "0xf22bede237a07e121b56d91a491eb7bcdfd1f5907926a9e58338f964a01b17fa::asset::USDC", - "is_primary": true, - "is_frozen": false, - "amount": "2060898834867", + "last_transaction_timestamp_v1": "2024-06-25T23:55:53", + "last_transaction_timestamp_v2": null, "last_transaction_timestamp": "2024-06-25T23:55:53", - "last_transaction_version": 999929475, - "token_standard": "v1" + "token_standard": "v1", + "asset_type": "0x1::aptos_coin::AptosCoin" }, { - "storage_id": "0x89cee32338902b6f79f9c75c317d32ac061771817c0d5b0802f97ec44ebfc7d4", + "storage_id": "0x9120a6a57b1463607f27c140b3a8c5542c74a2411d632eb6f25bab0b40a987a4", "owner_address": "0x234f0be57d6acfb2f0f19c17053617311a8d03c9ce358bdf9cd5c460e4a02b7c", - "asset_type": "0x50fdfa97914bd00b656e3041e143f157c84931eb1ca7224b8a8570e7d5be70f2", + "asset_type_v2": "0xedc2704f2cef417a06d1756a04a16a9fa6faaed13af469be9cdfcac5a21a8e2e", + "asset_type_v1": null, "is_primary": false, "is_frozen": false, - "amount": "429891425615", - "last_transaction_timestamp": "2024-06-25T23:55:53", + "amount_v1": null, + "amount_v2": "6184986629106", + "amount": "6184986629106", + "last_transaction_version_v1": null, + "last_transaction_version_v2": 999929475, "last_transaction_version": 999929475, - "token_standard": "v2" + "last_transaction_timestamp_v1": null, + "last_transaction_timestamp_v2": "2024-06-25T23:55:53", + "last_transaction_timestamp": "2024-06-25T23:55:53", + "token_standard": "v2", + "asset_type": "0xedc2704f2cef417a06d1756a04a16a9fa6faaed13af469be9cdfcac5a21a8e2e" }, { - "storage_id": "0x9120a6a57b1463607f27c140b3a8c5542c74a2411d632eb6f25bab0b40a987a4", - "owner_address": "0x234f0be57d6acfb2f0f19c17053617311a8d03c9ce358bdf9cd5c460e4a02b7c", - "asset_type": "0xedc2704f2cef417a06d1756a04a16a9fa6faaed13af469be9cdfcac5a21a8e2e", - "is_primary": false, + "storage_id": "0x947f8404b90af90a508d2735af771a3e826cefe45dfe993dfa43e0f5650465f9", + "owner_address": "0x3b38735644d0be8ac37ebd84a1e42fa5c2487495ef8782f6c694b1a147f82426", + "asset_type_v2": null, + "asset_type_v1": "0xf22bede237a07e121b56d91a491eb7bcdfd1f5907926a9e58338f964a01b17fa::asset::USDC", + "is_primary": true, "is_frozen": false, - "amount": "6184986629106", - "last_transaction_timestamp": "2024-06-25T23:55:53", + "amount_v1": "2060898834867", + "amount_v2": null, + "amount": "2060898834867", + "last_transaction_version_v1": 999929475, + "last_transaction_version_v2": null, "last_transaction_version": 999929475, - "token_standard": "v2" + "last_transaction_timestamp_v1": "2024-06-25T23:55:53", + "last_transaction_timestamp_v2": null, + "last_transaction_timestamp": "2024-06-25T23:55:53", + "token_standard": "v1", + "asset_type": "0xf22bede237a07e121b56d91a491eb7bcdfd1f5907926a9e58338f964a01b17fa::asset::USDC" }, { "storage_id": "0x97325d3a5abbfe422b8dece076302efd20c0a2dc5c2a5b7954ba8cc203d2f08e", "owner_address": "0x234f0be57d6acfb2f0f19c17053617311a8d03c9ce358bdf9cd5c460e4a02b7c", - "asset_type": "0xedc2704f2cef417a06d1756a04a16a9fa6faaed13af469be9cdfcac5a21a8e2e", + "asset_type_v2": "0xedc2704f2cef417a06d1756a04a16a9fa6faaed13af469be9cdfcac5a21a8e2e", + "asset_type_v1": null, "is_primary": false, "is_frozen": false, + "amount_v1": null, + "amount_v2": "5880750526", "amount": "5880750526", + "last_transaction_version_v1": null, + "last_transaction_version_v2": 999929475, + "last_transaction_version": 999929475, + "last_transaction_timestamp_v1": null, + "last_transaction_timestamp_v2": "2024-06-25T23:55:53", "last_transaction_timestamp": "2024-06-25T23:55:53", + "token_standard": "v2", + "asset_type": "0xedc2704f2cef417a06d1756a04a16a9fa6faaed13af469be9cdfcac5a21a8e2e" + }, + { + "storage_id": "0xc1127536fd32095434185bab96467d80c65fde6191c7c44d31fbf0a6d5e59148", + "owner_address": "0xaf1fbd1c118239498c0fec0e5cec54a50d03250fe1aca589a6b903566ba1d4db", + "asset_type_v2": null, + "asset_type_v1": "0xf22bede237a07e121b56d91a491eb7bcdfd1f5907926a9e58338f964a01b17fa::asset::USDC", + "is_primary": true, + "is_frozen": false, + "amount_v1": "162105637", + "amount_v2": null, + "amount": "162105637", + "last_transaction_version_v1": 999929475, + "last_transaction_version_v2": null, "last_transaction_version": 999929475, - "token_standard": "v2" + "last_transaction_timestamp_v1": "2024-06-25T23:55:53", + "last_transaction_timestamp_v2": null, + "last_transaction_timestamp": "2024-06-25T23:55:53", + "token_standard": "v1", + "asset_type": "0xf22bede237a07e121b56d91a491eb7bcdfd1f5907926a9e58338f964a01b17fa::asset::USDC" } ] \ No newline at end of file diff --git a/rust/integration-tests/sdk_expected_db_output_files/fungible_asset_processor/coin_register_txn_test/current_fungible_asset_balances.json b/rust/integration-tests/sdk_expected_db_output_files/fungible_asset_processor/coin_register_txn_test/current_fungible_asset_balances.json index 9727ea023..7ac2dfede 100644 --- a/rust/integration-tests/sdk_expected_db_output_files/fungible_asset_processor/coin_register_txn_test/current_fungible_asset_balances.json +++ b/rust/integration-tests/sdk_expected_db_output_files/fungible_asset_processor/coin_register_txn_test/current_fungible_asset_balances.json @@ -1,24 +1,40 @@ [ { - "storage_id": "0x239f9719aceb8223231f615e436fcfc8b7e7a6cb03350d00dc72b47678e5d78b", - "owner_address": "0xb7a4a81a3d513e3e18ee6bec61a001d7e18c5d92bb6645a2f21f0b0fec2531a6", - "asset_type": "0x1::aptos_coin::AptosCoin", + "storage_id": "0x1fe363ac8c9a2369f4ad6737dc788cfd37e6c90d1ad9637b18347b779ab5e188", + "owner_address": "0x54ce130990ecf55cd12de74bff03dcfaacf63066e0945d3c415d61644303da39", + "asset_type_v2": null, + "asset_type_v1": "0x1::aptos_coin::AptosCoin", "is_primary": true, "is_frozen": false, - "amount": "10", - "last_transaction_timestamp": "2024-09-13T16:48:29", + "amount_v1": "16673484350", + "amount_v2": null, + "amount": "16673484350", + "last_transaction_version_v1": 5979639459, + "last_transaction_version_v2": null, "last_transaction_version": 5979639459, - "token_standard": "v1" + "last_transaction_timestamp_v1": "2024-09-13T16:48:29", + "last_transaction_timestamp_v2": null, + "last_transaction_timestamp": "2024-09-13T16:48:29", + "token_standard": "v1", + "asset_type": "0x1::aptos_coin::AptosCoin" }, { - "storage_id": "0x32edf0b123cd57094ba7b0b5a0b1524e0f2117b547adf65e8b0c08b39e30d242", - "owner_address": "0x54ce130990ecf55cd12de74bff03dcfaacf63066e0945d3c415d61644303da39", - "asset_type": "0x1::aptos_coin::AptosCoin", + "storage_id": "0x5678ad8283b596889ecbce6e63df1e0f86e0a08bd7b7ae2ea70c1f710c1e2e7f", + "owner_address": "0xb7a4a81a3d513e3e18ee6bec61a001d7e18c5d92bb6645a2f21f0b0fec2531a6", + "asset_type_v2": null, + "asset_type_v1": "0x1::aptos_coin::AptosCoin", "is_primary": true, "is_frozen": false, - "amount": "16673484350", - "last_transaction_timestamp": "2024-09-13T16:48:29", + "amount_v1": "10", + "amount_v2": null, + "amount": "10", + "last_transaction_version_v1": 5979639459, + "last_transaction_version_v2": null, "last_transaction_version": 5979639459, - "token_standard": "v1" + "last_transaction_timestamp_v1": "2024-09-13T16:48:29", + "last_transaction_timestamp_v2": null, + "last_transaction_timestamp": "2024-09-13T16:48:29", + "token_standard": "v1", + "asset_type": "0x1::aptos_coin::AptosCoin" } ] \ No newline at end of file diff --git a/rust/integration-tests/sdk_expected_db_output_files/fungible_asset_processor/coin_v2_events/current_fungible_asset_balances.json b/rust/integration-tests/sdk_expected_db_output_files/fungible_asset_processor/coin_v2_events/current_fungible_asset_balances.json index 818b63528..5a03cbda2 100644 --- a/rust/integration-tests/sdk_expected_db_output_files/fungible_asset_processor/coin_v2_events/current_fungible_asset_balances.json +++ b/rust/integration-tests/sdk_expected_db_output_files/fungible_asset_processor/coin_v2_events/current_fungible_asset_balances.json @@ -1,24 +1,40 @@ [ { - "storage_id": "0x9249cee32378643feb7674c405057e6287050c151e74d7fee4857e1e82b608d1", + "storage_id": "0x49766709699892caa0d9bc44764e7b8dfdec4227f98a82cfc4176e09091045f4", "owner_address": "0xe93dcd3dd5febf8d72bf8d33e1d85a6115300fedfe055c062834d264f103ce4c", - "asset_type": "0x1::aptos_coin::AptosCoin", + "asset_type_v2": null, + "asset_type_v1": "0x1::aptos_coin::AptosCoin", "is_primary": true, "is_frozen": false, + "amount_v1": "34464975541459", + "amount_v2": null, "amount": "34464975541459", - "last_transaction_timestamp": "2024-12-02T19:50:23", + "last_transaction_version_v1": 78753811, + "last_transaction_version_v2": null, "last_transaction_version": 78753811, - "token_standard": "v1" + "last_transaction_timestamp_v1": "2024-12-02T19:50:23", + "last_transaction_timestamp_v2": null, + "last_transaction_timestamp": "2024-12-02T19:50:23", + "token_standard": "v1", + "asset_type": "0x1::aptos_coin::AptosCoin" }, { - "storage_id": "0xcec6acee464c2f2689dddf50ad4e9c78bb91b2d0a345cda799ab2a1dcdd4077c", + "storage_id": "0x95aeea33c4b967dabe1190931fe5fad020709881e99f6476df2a91a3e82e00c6", "owner_address": "0x74512d8383e6857a9a587012c44ad98420cbc713301714402611d7f87a7f4fe0", - "asset_type": "0x1::aptos_coin::AptosCoin", + "asset_type_v2": null, + "asset_type_v1": "0x1::aptos_coin::AptosCoin", "is_primary": true, "is_frozen": false, + "amount_v1": "2", + "amount_v2": null, "amount": "2", - "last_transaction_timestamp": "2024-12-02T19:50:23", + "last_transaction_version_v1": 78753811, + "last_transaction_version_v2": null, "last_transaction_version": 78753811, - "token_standard": "v1" + "last_transaction_timestamp_v1": "2024-12-02T19:50:23", + "last_transaction_timestamp_v2": null, + "last_transaction_timestamp": "2024-12-02T19:50:23", + "token_standard": "v1", + "asset_type": "0x1::aptos_coin::AptosCoin" } ] \ No newline at end of file diff --git a/rust/integration-tests/sdk_expected_db_output_files/fungible_asset_processor/concurrent_fa_test/current_fungible_asset_balances.json b/rust/integration-tests/sdk_expected_db_output_files/fungible_asset_processor/concurrent_fa_test/current_fungible_asset_balances.json index 0925ff889..a719c3d5e 100644 --- a/rust/integration-tests/sdk_expected_db_output_files/fungible_asset_processor/concurrent_fa_test/current_fungible_asset_balances.json +++ b/rust/integration-tests/sdk_expected_db_output_files/fungible_asset_processor/concurrent_fa_test/current_fungible_asset_balances.json @@ -2,12 +2,20 @@ { "storage_id": "0x6999cbf188405f4732f0561e196c5fdde1e057415dd16c6c9e83e30c9a0e3019", "owner_address": "0x75fc2a90fa8ef566ddc3d82e84944eb886415bc19226ae1d88d5e7577aec1be5", - "asset_type": "0x000000000000000000000000000000000000000000000000000000000000000a", + "asset_type_v2": "0x000000000000000000000000000000000000000000000000000000000000000a", + "asset_type_v1": "0x1::aptos_coin::AptosCoin", "is_primary": true, "is_frozen": false, + "amount_v1": null, + "amount_v2": "398922140", "amount": "398922140", - "last_transaction_timestamp": "2024-07-01T22:15:07", + "last_transaction_version_v1": null, + "last_transaction_version_v2": 2646510387, "last_transaction_version": 2646510387, - "token_standard": "v2" + "last_transaction_timestamp_v1": null, + "last_transaction_timestamp_v2": "2024-07-01T22:15:07", + "last_transaction_timestamp": "2024-07-01T22:15:07", + "token_standard": "v1", + "asset_type": "0x1::aptos_coin::AptosCoin" } ] \ No newline at end of file diff --git a/rust/integration-tests/sdk_expected_db_output_files/fungible_asset_processor/fa_activities_txn_test/current_fungible_asset_balances.json b/rust/integration-tests/sdk_expected_db_output_files/fungible_asset_processor/fa_activities_txn_test/current_fungible_asset_balances.json index fdb2aaccb..4eb257987 100644 --- a/rust/integration-tests/sdk_expected_db_output_files/fungible_asset_processor/fa_activities_txn_test/current_fungible_asset_balances.json +++ b/rust/integration-tests/sdk_expected_db_output_files/fungible_asset_processor/fa_activities_txn_test/current_fungible_asset_balances.json @@ -1,35 +1,59 @@ [ { - "storage_id": "0x5120dc6832daa352228ba75c1e7e73f57a80b608c900a7060382516a5c035f20", - "owner_address": "0xd34ea8c6faa9d25a9f07504759c1d92bd5ad05af89062d57cf69dd4861fe3e3c", - "asset_type": "0x1::aptos_coin::AptosCoin", + "storage_id": "0x8bd5745daa2d6e5817819c6bf37600196e55cfba8c5bcdfdf55684bf4accbb9c", + "owner_address": "0x422e4585fdb8705aeaafb9501e7e03dc8125134da04ed8322244687c50c3fa55", + "asset_type_v2": "0x618d700859af35c08518d1552c2601808261288cfd032461fb3424587484ac7f", + "asset_type_v1": null, "is_primary": true, "is_frozen": false, - "amount": "18901942640", - "last_transaction_timestamp": "2024-09-16T06:58:10", + "amount_v1": null, + "amount_v2": "0", + "amount": "0", + "last_transaction_version_v1": null, + "last_transaction_version_v2": 5992795934, "last_transaction_version": 5992795934, - "token_standard": "v1" + "last_transaction_timestamp_v1": null, + "last_transaction_timestamp_v2": "2024-09-16T06:58:10", + "last_transaction_timestamp": "2024-09-16T06:58:10", + "token_standard": "v2", + "asset_type": "0x618d700859af35c08518d1552c2601808261288cfd032461fb3424587484ac7f" }, { - "storage_id": "0x8bd5745daa2d6e5817819c6bf37600196e55cfba8c5bcdfdf55684bf4accbb9c", - "owner_address": "0x422e4585fdb8705aeaafb9501e7e03dc8125134da04ed8322244687c50c3fa55", - "asset_type": "0x618d700859af35c08518d1552c2601808261288cfd032461fb3424587484ac7f", + "storage_id": "0xf09710fcbf8de0c02a244b7523c59789eab9c69d5f3b13a6cecbf1127edc7698", + "owner_address": "0xd34ea8c6faa9d25a9f07504759c1d92bd5ad05af89062d57cf69dd4861fe3e3c", + "asset_type_v2": null, + "asset_type_v1": "0x1::aptos_coin::AptosCoin", "is_primary": true, "is_frozen": false, - "amount": "0", - "last_transaction_timestamp": "2024-09-16T06:58:10", + "amount_v1": "18901942640", + "amount_v2": null, + "amount": "18901942640", + "last_transaction_version_v1": 5992795934, + "last_transaction_version_v2": null, "last_transaction_version": 5992795934, - "token_standard": "v2" + "last_transaction_timestamp_v1": "2024-09-16T06:58:10", + "last_transaction_timestamp_v2": null, + "last_transaction_timestamp": "2024-09-16T06:58:10", + "token_standard": "v1", + "asset_type": "0x1::aptos_coin::AptosCoin" }, { "storage_id": "0xfe90bdd996728b93e09f5d59fd91d6d44be85ab7acea5d1ed535b4c13b2c32c0", "owner_address": "0x13fc6cb932ab90e65ce901460ce8d4b232d4e365294c6ea5afca94625adba47f", - "asset_type": "0x618d700859af35c08518d1552c2601808261288cfd032461fb3424587484ac7f", + "asset_type_v2": "0x618d700859af35c08518d1552c2601808261288cfd032461fb3424587484ac7f", + "asset_type_v1": null, "is_primary": true, "is_frozen": false, + "amount_v1": null, + "amount_v2": "9996985969300000000", "amount": "9996985969300000000", - "last_transaction_timestamp": "2024-09-16T06:58:10", + "last_transaction_version_v1": null, + "last_transaction_version_v2": 5992795934, "last_transaction_version": 5992795934, - "token_standard": "v2" + "last_transaction_timestamp_v1": null, + "last_transaction_timestamp_v2": "2024-09-16T06:58:10", + "last_transaction_timestamp": "2024-09-16T06:58:10", + "token_standard": "v2", + "asset_type": "0x618d700859af35c08518d1552c2601808261288cfd032461fb3424587484ac7f" } ] \ No newline at end of file diff --git a/rust/integration-tests/sdk_expected_db_output_files/fungible_asset_processor/v1_events_test/current_fungible_asset_balances.json b/rust/integration-tests/sdk_expected_db_output_files/fungible_asset_processor/v1_events_test/current_fungible_asset_balances.json index db2f5c020..fdbb5c728 100644 --- a/rust/integration-tests/sdk_expected_db_output_files/fungible_asset_processor/v1_events_test/current_fungible_asset_balances.json +++ b/rust/integration-tests/sdk_expected_db_output_files/fungible_asset_processor/v1_events_test/current_fungible_asset_balances.json @@ -2,45 +2,77 @@ { "storage_id": "0x30e2f18b1f9c447e7dadd7a05966e721ab6512b81ee977cb053edb86cc1b1d65", "owner_address": "0x4bf51972879e3b95c4781a5cdcb9e1ee24ef483e7d22f2d903626f126df62bd1", - "asset_type": "0x2ebb2ccac5e027a87fa0e2e5f656a3a4238d6a48d93ec9b610d570fc0aa0df12", + "asset_type_v2": "0x2ebb2ccac5e027a87fa0e2e5f656a3a4238d6a48d93ec9b610d570fc0aa0df12", + "asset_type_v1": null, "is_primary": false, "is_frozen": false, + "amount_v1": null, + "amount_v2": "5329839355263", "amount": "5329839355263", - "last_transaction_timestamp": "2024-03-19T08:05:56", + "last_transaction_version_v1": null, + "last_transaction_version_v2": 508365567, "last_transaction_version": 508365567, - "token_standard": "v2" + "last_transaction_timestamp_v1": null, + "last_transaction_timestamp_v2": "2024-03-19T08:05:56", + "last_transaction_timestamp": "2024-03-19T08:05:56", + "token_standard": "v2", + "asset_type": "0x2ebb2ccac5e027a87fa0e2e5f656a3a4238d6a48d93ec9b610d570fc0aa0df12" }, { - "storage_id": "0x47d0667a73feb419078a317784f803b7daebd3f6150c783cf3cfd194b966cc15", + "storage_id": "0xaca1597fc6ce44af235deb562591c7ce90a13b50b0f55022434d8db61edc8e74", "owner_address": "0xc8af29debf02369958769a77388c84a3040b9ffe9ba1f82c1c9f5c6dcb61030e", - "asset_type": "0x1::aptos_coin::AptosCoin", + "asset_type_v2": null, + "asset_type_v1": "0x1::aptos_coin::AptosCoin", "is_primary": true, "is_frozen": false, + "amount_v1": "640250", + "amount_v2": null, "amount": "640250", - "last_transaction_timestamp": "2024-03-19T08:05:56", + "last_transaction_version_v1": 508365567, + "last_transaction_version_v2": null, "last_transaction_version": 508365567, - "token_standard": "v1" + "last_transaction_timestamp_v1": "2024-03-19T08:05:56", + "last_transaction_timestamp_v2": null, + "last_transaction_timestamp": "2024-03-19T08:05:56", + "token_standard": "v1", + "asset_type": "0x1::aptos_coin::AptosCoin" }, { "storage_id": "0xb8ed486274e5078cf814dfd5d377e95333d58593d2eba6a1aa33c1bf9f39bdab", "owner_address": "0xc8af29debf02369958769a77388c84a3040b9ffe9ba1f82c1c9f5c6dcb61030e", - "asset_type": "0x2ebb2ccac5e027a87fa0e2e5f656a3a4238d6a48d93ec9b610d570fc0aa0df12", + "asset_type_v2": "0x2ebb2ccac5e027a87fa0e2e5f656a3a4238d6a48d93ec9b610d570fc0aa0df12", + "asset_type_v1": null, "is_primary": true, "is_frozen": false, + "amount_v1": null, + "amount_v2": "0", "amount": "0", - "last_transaction_timestamp": "2024-03-19T08:05:56", + "last_transaction_version_v1": null, + "last_transaction_version_v2": 508365567, "last_transaction_version": 508365567, - "token_standard": "v2" + "last_transaction_timestamp_v1": null, + "last_transaction_timestamp_v2": "2024-03-19T08:05:56", + "last_transaction_timestamp": "2024-03-19T08:05:56", + "token_standard": "v2", + "asset_type": "0x2ebb2ccac5e027a87fa0e2e5f656a3a4238d6a48d93ec9b610d570fc0aa0df12" }, { "storage_id": "0xeaa02d37c4896e95813543a3df80d09863d1a4d91f3f14c02db033f2f7a3f665", "owner_address": "0xc8af29debf02369958769a77388c84a3040b9ffe9ba1f82c1c9f5c6dcb61030e", - "asset_type": "0x2ebb2ccac5e027a87fa0e2e5f656a3a4238d6a48d93ec9b610d570fc0aa0df12", + "asset_type_v2": "0x2ebb2ccac5e027a87fa0e2e5f656a3a4238d6a48d93ec9b610d570fc0aa0df12", + "asset_type_v1": null, "is_primary": false, "is_frozen": true, + "amount_v1": null, + "amount_v2": "14644184", "amount": "14644184", - "last_transaction_timestamp": "2024-03-19T08:05:56", + "last_transaction_version_v1": null, + "last_transaction_version_v2": 508365567, "last_transaction_version": 508365567, - "token_standard": "v2" + "last_transaction_timestamp_v1": null, + "last_transaction_timestamp_v2": "2024-03-19T08:05:56", + "last_transaction_timestamp": "2024-03-19T08:05:56", + "token_standard": "v2", + "asset_type": "0x2ebb2ccac5e027a87fa0e2e5f656a3a4238d6a48d93ec9b610d570fc0aa0df12" } ] \ No newline at end of file diff --git a/rust/integration-tests/sdk_expected_db_output_files/fungible_asset_processor/v2_frozen_event_test/current_fungible_asset_balances.json b/rust/integration-tests/sdk_expected_db_output_files/fungible_asset_processor/v2_frozen_event_test/current_fungible_asset_balances.json index 27b7244ad..a78e11dba 100644 --- a/rust/integration-tests/sdk_expected_db_output_files/fungible_asset_processor/v2_frozen_event_test/current_fungible_asset_balances.json +++ b/rust/integration-tests/sdk_expected_db_output_files/fungible_asset_processor/v2_frozen_event_test/current_fungible_asset_balances.json @@ -2,23 +2,39 @@ { "storage_id": "0x1fff287896925cd278649c9c18ccf22e8ee879964f0284f61df4fd811574cdb4", "owner_address": "0xbc054b63705ba1440cd48527756adc0861310658dcb3b13b13f5193d447c1f1e", - "asset_type": "0xa0e8bee18e7ed6c7f52ff2708c367c7214083e16dc69827c0311dab87f17f554", + "asset_type_v2": "0xa0e8bee18e7ed6c7f52ff2708c367c7214083e16dc69827c0311dab87f17f554", + "asset_type_v1": null, "is_primary": true, "is_frozen": true, + "amount_v1": null, + "amount_v2": "0", "amount": "0", - "last_transaction_timestamp": "2024-05-22T05:52:52", + "last_transaction_version_v1": null, + "last_transaction_version_v2": 1200394037, "last_transaction_version": 1200394037, - "token_standard": "v2" + "last_transaction_timestamp_v1": null, + "last_transaction_timestamp_v2": "2024-05-22T05:52:52", + "last_transaction_timestamp": "2024-05-22T05:52:52", + "token_standard": "v2", + "asset_type": "0xa0e8bee18e7ed6c7f52ff2708c367c7214083e16dc69827c0311dab87f17f554" }, { - "storage_id": "0x30ada02023d8f633496e5119bdf88f898ddb11e95bb2f1f73aedbf75b042e502", + "storage_id": "0xae977125b43c9480f38562194f5fc2e54cbbd90e8791cdf2a18e6099e298c76f", "owner_address": "0x8a735d61f2c98aa97f62fa3c328b63fc97b8a7d50cd8eda633124137639ce4fc", - "asset_type": "0x1::aptos_coin::AptosCoin", + "asset_type_v2": null, + "asset_type_v1": "0x1::aptos_coin::AptosCoin", "is_primary": true, "is_frozen": false, + "amount_v1": "99580400", + "amount_v2": null, "amount": "99580400", - "last_transaction_timestamp": "2024-05-22T05:52:52", + "last_transaction_version_v1": 1200394037, + "last_transaction_version_v2": null, "last_transaction_version": 1200394037, - "token_standard": "v1" + "last_transaction_timestamp_v1": "2024-05-22T05:52:52", + "last_transaction_timestamp_v2": null, + "last_transaction_timestamp": "2024-05-22T05:52:52", + "token_standard": "v1", + "asset_type": "0x1::aptos_coin::AptosCoin" } ] \ No newline at end of file diff --git a/rust/integration-tests/src/diff_test_helper/fungible_asset_processor.rs b/rust/integration-tests/src/diff_test_helper/fungible_asset_processor.rs index e6e8328b9..d9aa16575 100644 --- a/rust/integration-tests/src/diff_test_helper/fungible_asset_processor.rs +++ b/rust/integration-tests/src/diff_test_helper/fungible_asset_processor.rs @@ -1,5 +1,5 @@ use crate::models::fa_v2_models::{ - CoinSupply, CurrentFungibleAssetBalance, FungibleAssetActivity, FungibleAssetBalance, + CoinSupply, CurrentUnifiedFungibleAssetBalance, FungibleAssetActivity, FungibleAssetBalance, FungibleAssetMetadataModel, }; use anyhow::Result; @@ -9,7 +9,7 @@ use diesel::{ ExpressionMethods, RunQueryDsl, }; use processor::schema::{ - coin_supply::dsl as cs_dsl, current_fungible_asset_balances_legacy::dsl as cfab_dsl, + coin_supply::dsl as cs_dsl, current_fungible_asset_balances::dsl as cfab_dsl, fungible_asset_activities::dsl as faa_dsl, fungible_asset_balances::dsl as fab_dsl, fungible_asset_metadata::dsl as fam_dsl, }; @@ -59,10 +59,10 @@ pub fn load_data( serde_json::from_str(&fungible_asset_balances_json)?, ); - let current_fungible_asset_balances_result = cfab_dsl::current_fungible_asset_balances_legacy + let current_fungible_asset_balances_result = cfab_dsl::current_fungible_asset_balances .filter(cfab_dsl::last_transaction_version.eq_any(&txn_versions)) - .then_order_by(cfab_dsl::last_transaction_version.asc()) - .load::(conn); + .then_order_by(cfab_dsl::storage_id.asc()) + .load::(conn); let all_current_fungible_asset_balances = current_fungible_asset_balances_result?; let current_fungible_asset_balances_json = serde_json::to_string_pretty(&all_current_fungible_asset_balances)?; diff --git a/rust/integration-tests/src/models/fa_v2_models.rs b/rust/integration-tests/src/models/fa_v2_models.rs index 64c3be265..3cfaa9a21 100644 --- a/rust/integration-tests/src/models/fa_v2_models.rs +++ b/rust/integration-tests/src/models/fa_v2_models.rs @@ -7,7 +7,7 @@ use bigdecimal::BigDecimal; use diesel::{Identifiable, Insertable, Queryable}; use field_count::FieldCount; use processor::schema::{ - coin_supply, current_fungible_asset_balances_legacy, fungible_asset_activities, + coin_supply, current_fungible_asset_balances, fungible_asset_activities, fungible_asset_balances, fungible_asset_metadata, }; use serde::{Deserialize, Serialize}; @@ -54,42 +54,28 @@ pub struct FungibleAssetBalance { #[derive(Clone, Debug, Deserialize, FieldCount, Identifiable, Insertable, Serialize, Queryable)] #[diesel(primary_key(storage_id))] -#[diesel(table_name = current_fungible_asset_balances_legacy)] -pub struct CurrentFungibleAssetBalance { +#[diesel(table_name = current_fungible_asset_balances)] +pub struct CurrentUnifiedFungibleAssetBalance { pub storage_id: String, pub owner_address: String, - pub asset_type: String, + pub asset_type_v2: Option, + pub asset_type_v1: Option, pub is_primary: bool, pub is_frozen: bool, + pub amount_v1: Option, + pub amount_v2: Option, pub amount: BigDecimal, - pub last_transaction_timestamp: chrono::NaiveDateTime, - pub last_transaction_version: i64, - pub token_standard: String, + pub last_transaction_version_v1: Option, + pub last_transaction_version_v2: Option, + pub last_transaction_version: Option, + pub last_transaction_timestamp_v1: Option, + pub last_transaction_timestamp_v2: Option, + pub last_transaction_timestamp: Option, pub inserted_at: chrono::NaiveDateTime, + pub asset_type: String, + pub token_standard: String, } -// #[derive(Clone, Debug, Deserialize, FieldCount, Identifiable, Insertable, Serialize, Queryable, Default)] -// #[diesel(primary_key(storage_id))] -// #[diesel(table_name = current_fungible_asset_balances)] -// pub struct CurrentUnifiedFungibleAssetBalance { -// pub storage_id: String, -// pub owner_address: String, -// pub asset_type: Option, -// pub coin_type: Option, // Changed from asset_type_v1/v2 to match schema -// pub is_primary: Option, -// pub is_frozen: bool, -// pub amount_v1: Option, -// pub amount_v2: Option, -// pub amount: Option, // Added amount field to match schema -// pub last_transaction_version_v1: Option, -// pub last_transaction_version_v2: Option, -// pub last_transaction_version: Option, // Added to match schema -// pub last_transaction_timestamp_v1: Option, -// pub last_transaction_timestamp_v2: Option, -// pub last_transaction_timestamp: Option, // Added to match schema -// pub inserted_at: chrono::NaiveDateTime, -// } - #[derive(Clone, Debug, Deserialize, FieldCount, Identifiable, Insertable, Serialize, Queryable)] #[diesel(primary_key(asset_type))] #[diesel(table_name = fungible_asset_metadata)] diff --git a/rust/processor/src/db/postgres/models/account_restoration_models/auth_key_account_addresses.rs b/rust/processor/src/db/postgres/models/account_restoration_models/auth_key_account_addresses.rs index d86b08c90..c1ddbebc3 100644 --- a/rust/processor/src/db/postgres/models/account_restoration_models/auth_key_account_addresses.rs +++ b/rust/processor/src/db/postgres/models/account_restoration_models/auth_key_account_addresses.rs @@ -5,6 +5,7 @@ use crate::schema::auth_key_account_addresses::{self}; use field_count::FieldCount; use serde::{Deserialize, Serialize}; +#[allow(clippy::too_long_first_doc_paragraph)] /// Represents a row in the `auth_key_account_addresses` table, which associates /// an authentication key with the corresponding account address. /// This mapping helps to track account address rotations by enabling discovery of the address diff --git a/rust/processor/src/db/postgres/models/account_restoration_models/auth_key_multikey_layout.rs b/rust/processor/src/db/postgres/models/account_restoration_models/auth_key_multikey_layout.rs index 0d97181d0..616ad2c5c 100644 --- a/rust/processor/src/db/postgres/models/account_restoration_models/auth_key_multikey_layout.rs +++ b/rust/processor/src/db/postgres/models/account_restoration_models/auth_key_multikey_layout.rs @@ -5,6 +5,7 @@ use crate::schema::auth_key_multikey_layout::{self}; use field_count::FieldCount; use serde::{Deserialize, Serialize}; +#[allow(clippy::too_long_first_doc_paragraph)] /// Represents a row in the `auth_key_multikey_layout` table, describing the composition of a multi-key /// authentication key (e.g., a set of public keys, their types and prefixes, and the signature threshold). /// This information is essential for reconstructing multi-key transaction authenticators. diff --git a/rust/processor/src/db/postgres/models/account_restoration_models/public_key_auth_keys.rs b/rust/processor/src/db/postgres/models/account_restoration_models/public_key_auth_keys.rs index dbd4f9e8f..562fb0a2b 100644 --- a/rust/processor/src/db/postgres/models/account_restoration_models/public_key_auth_keys.rs +++ b/rust/processor/src/db/postgres/models/account_restoration_models/public_key_auth_keys.rs @@ -5,6 +5,7 @@ use crate::schema::public_key_auth_keys::{self}; use field_count::FieldCount; use serde::{Deserialize, Serialize}; +#[allow(clippy::too_long_first_doc_paragraph)] /// Represents a row in the `public_key_auth_keys` table, mapping a single public key to the /// multi-key `auth_key` it is part of. This relationship can be many-to-many: a single `public_key` /// may map to multiple `auth_key` values (if used in different multi-key contexts),