From 1d4ba131fd1d589d9049a765df0457ed19ee41c7 Mon Sep 17 00:00:00 2001 From: Will Hester Date: Wed, 17 Jul 2024 08:56:00 +0100 Subject: [PATCH 01/13] add unique and not null constraints to tx table : --- go/host/storage/init/postgres/001_init.sql | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/go/host/storage/init/postgres/001_init.sql b/go/host/storage/init/postgres/001_init.sql index 8f967f551a..11b0f368d8 100644 --- a/go/host/storage/init/postgres/001_init.sql +++ b/go/host/storage/init/postgres/001_init.sql @@ -37,7 +37,7 @@ CREATE INDEX IF NOT EXISTS IDX_BATCH_HEIGHT_HOST ON batch_host (height); CREATE TABLE IF NOT EXISTS transaction_host ( id SERIAL PRIMARY KEY, - hash BYTEA, + hash BYTEA NOT NULL UNIQUE, b_sequence INT, FOREIGN KEY (b_sequence) REFERENCES batch_host(sequence) ); From ae9b9ae0a4b036b1ded9cafe708045d9debfd95a Mon Sep 17 00:00:00 2001 From: Will Hester Date: Wed, 17 Jul 2024 10:09:02 +0100 Subject: [PATCH 02/13] add logging --- go/host/storage/hostdb/batch.go | 1 + go/host/storage/init/postgres/001_init.sql | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/go/host/storage/hostdb/batch.go b/go/host/storage/hostdb/batch.go index 3d6e3e5f9e..6168830380 100644 --- a/go/host/storage/hostdb/batch.go +++ b/go/host/storage/hostdb/batch.go @@ -49,6 +49,7 @@ func AddBatch(dbtx *dbTransaction, statements *SQLStatements, batch *common.ExtB for i, txHash := range batch.TxHashes { insert += fmt.Sprintf(" (%s, %s),", statements.GetPlaceHolder(i*2+1), statements.GetPlaceHolder(i*2+2)) args = append(args, txHash.Bytes(), batch.SeqNo().Uint64()) + fmt.Printf("Inserting tx with hash: %s\n", txHash.Hex()) } insert = strings.TrimRight(insert, ",") _, err = dbtx.tx.Exec(insert, args...) diff --git a/go/host/storage/init/postgres/001_init.sql b/go/host/storage/init/postgres/001_init.sql index 11b0f368d8..8f967f551a 100644 --- a/go/host/storage/init/postgres/001_init.sql +++ b/go/host/storage/init/postgres/001_init.sql @@ -37,7 +37,7 @@ CREATE INDEX IF NOT EXISTS IDX_BATCH_HEIGHT_HOST ON batch_host (height); CREATE TABLE IF NOT EXISTS transaction_host ( id SERIAL PRIMARY KEY, - hash BYTEA NOT NULL UNIQUE, + hash BYTEA, b_sequence INT, FOREIGN KEY (b_sequence) REFERENCES batch_host(sequence) ); From 533b73d959d43335de7df3a9cd1638216c681c62 Mon Sep 17 00:00:00 2001 From: Will Hester Date: Wed, 17 Jul 2024 11:16:21 +0100 Subject: [PATCH 03/13] add more logging --- go/host/storage/hostdb/batch.go | 8 +- go/host/storage/hostdb/count.txt | 121 +++++++++++++++++++++++++++++++ 2 files changed, 127 insertions(+), 2 deletions(-) create mode 100644 go/host/storage/hostdb/count.txt diff --git a/go/host/storage/hostdb/batch.go b/go/host/storage/hostdb/batch.go index 6168830380..0babc86b8d 100644 --- a/go/host/storage/hostdb/batch.go +++ b/go/host/storage/hostdb/batch.go @@ -42,14 +42,16 @@ func AddBatch(dbtx *dbTransaction, statements *SQLStatements, batch *common.ExtB } return fmt.Errorf("host failed to insert batch: %w", err) } - + var totalCount int + total := dbtx.tx.QueryRow(countTxs).Scan(&totalCount) if len(batch.TxHashes) > 0 { insert := statements.InsertTransactions args := make([]any, 0) for i, txHash := range batch.TxHashes { insert += fmt.Sprintf(" (%s, %s),", statements.GetPlaceHolder(i*2+1), statements.GetPlaceHolder(i*2+2)) args = append(args, txHash.Bytes(), batch.SeqNo().Uint64()) - fmt.Printf("Inserting tx with hash: %s\n", txHash.Hex()) + fmt.Printf("Total before inserting tx: %s\n", total) + fmt.Printf("Inserting tx with hash: %s\n %d\n", txHash.Hex(), batch.SeqNo().Uint64()) } insert = strings.TrimRight(insert, ",") _, err = dbtx.tx.Exec(insert, args...) @@ -58,6 +60,8 @@ func AddBatch(dbtx *dbTransaction, statements *SQLStatements, batch *common.ExtB } } + total = dbtx.tx.QueryRow(countTxs).Scan(&totalCount) + fmt.Printf("Total after inserting tx: %s\n", total) var currentTotal int err = dbtx.tx.QueryRow(selectTxCount).Scan(¤tTotal) if err != nil { diff --git a/go/host/storage/hostdb/count.txt b/go/host/storage/hostdb/count.txt new file mode 100644 index 0000000000..6a7f9f83ef --- /dev/null +++ b/go/host/storage/hostdb/count.txt @@ -0,0 +1,121 @@ +0x8f66af5fa5af4180b089b9c52b80c1574b637badbd212ad9850e2d0c14c415ed +0x8dacaddb4b183ad4889aa25457284620d72a27b9db8e4dd6e104fcabb5208c18 +0xf5092e976d5114a342cdfc28406ae5a936edd52f49a612ab5f2d56fef17752ff +0xf856118833d77f909087f8bef0d57ccff92a7e7e150f184d8dfe919efb61b140 +0x75ac3166681b49f1fc85fda7173e2965c381e158a8fc00298078f24cbbbb74c5 +0xd84f4468a9331b519f20f1be93d14fe8100fb8c6d3441a062bcabcc1b7b759c3 +0x7e7b1ccc9efe1f640699b4c1cfb19620aa9208becaa18bf38906ad7d5d8d7402 +0xc61df84ddda30c6221a7abc4cc4ccbf22b922e6df451f1378a1c1867aeb8a8f3 +0x6208522afe19f4bbc709db9387bf632902cb8e048cd12c13ac8ce1b59c0cb7e6 +0x585fdea88ed32e088be9237159a21ff47413d2a62f966d998e53bafc9d31caf9 +0x80c21b3212263015fb18cd1455fe5028ca7462833dcd032ba56aae8abba01576 +0x33d69890ef7fedf3f591ee50964a737b31cf4c6b2ad57fe953ba98879d960704 +0x1bdf2ecbc71e4add73fce6556b2dd1c09d95fb3acf4acd007b6bf175bb4617b2 +0x81246de210476d823ca77ef3a3df5d570ef4e19be56f190853c69e6f97e2ca52 +0x1d1c39b071136a402088389da802e0eafdc39587ff3fb2fc0c9accc2c003b82e +0x66626acf9b4a81e03bd6e88a64996d54550784c7e5110e610b9f1e98745232e5 +0x4b5c5a9a3d1d501dd562646c47cb218643a02ae297e12699564ab7ddd9cb94e2 +0x6230ce1e153ed8092d282c7ed1292ce03d1f2f23a4fc7d9382c0ee4c792a8e95 +0xfe393e04f9cb0d783e88d17a26dceb2fa27084c4da820a3de9336fc53aedf4e4 +0xe5055229e0c939e0d479382f4ee3acd8a73b41a67136bcd73bd71948cd42ab10 +0x5e119b9ad0a15e69a5857d56a9d8409da4786c1f1308ccf5b469c5cb291bd3c4 +0x76dd66bc1ee8de27fd8ba70a9d3376110d80f63c8f17e1683e8444b52215270b +0x616508975d4dcdaef37225a6a1ff7a204d0cc667a5f3e1eccb538b61d79615af +0xda4fca433f0ad3da31a270469b7ea44d66c7728fd06939ae5022ab0b0eaa3f6c +0xf5e4872229887318eae1c912a4c3c315d1a855e7e64e4bb621a73afbcbb69329 +0x2e088204cac29814eaf359b96f05fca3e62ba14dc01b23d43177b97a60c04a8f +0xe03661a0260427bd86104744e8ae991c8c91927098508b138beecdc879abc946 +0x096053da2adbf876cf2396202bf7ecd4eee16668ea7189f5e38df30e3b03963e +0x2d4db080cfe1009bffe86b1d457f53d60746f2b517a0c032ac7ec394c840f976 +0xcb61c7d0cd45d63fa8c307bee5d8a2fc09b155fa25ab730f1dafc2890c16cb3c +0xd7f3449619d081f319fd39801e487cc2b2b88591df2c2affdfdf5c75f4de7f70 +0x20764a9f2c5d1491edbd85407002cb4e2047096972ed7a2aaf7397dc476c7a92 +0x8531c1831b113869efc09967188cf855e9e92bb90c8392d62243ca5333c2b79d +0x24e08a8653da4110b5d0d8c362c0c940970c4fba0129030ece6854275de99fba +0x5d853c073bfcad1e8952d7a72fde5680d7c5dba781237f0dae0beeace2ebe679 +0xbf8954407d8811cd4fb77eb16a59b4ccf107b2158c9acb71857b3a8a91f9e694 +0x4a717f69d5765286b85d96c4dbff826a2ad8faae40979a754223d6913802b446 +0x43dc4260cb0451b4a790c9bfac207bbeaa44eb26ad8919d26186e0cd0b85196a +0x7d3254c21437df49d44bed12b3619a3a4e4ff6f50445482a671330107ff62086 +0xcf683d3989f845c331cd0804c8465da53fda343f9cdfd16150ccda019f43d707 +0xeac204b1458be77dc7c18202bae08696b5f3be0aecd710591ae256fc5fae68cb +0x140739ccc739d006fbdefd56907659f8fadb48a14ca0e09be5e1f75f0cb7c313 +0x1b56042cfc213c4b09478c4de09a1a7dab8c73aa6c66af64885090eabe8ba6f3 +0x00674e967bad49603a6ef44227b4ef90b322a1c5fd23cb49212ea4b944be200e +0xed122c956b0e4c90a96cbc22545e9cb82951a2427aa25c3ada8fa362961221ba +0x7fd9b851c98e0ef2e775293a77896d0dfc2fa1130b6fd018d68cc6c818fa726a +0xa1b87f54b94140f266edd4d0be88f807ef4d4bc22bacb59633a1c601a0e70b3d +0x55fa78f8a75447c1f41f1bc82b3544e675e2ff37a491b13d8397933687122b05 +0x191c3cdfbca4850f537157fa7fa4175914088ac6d39797cb1c9786e6ce59dbad +0x2f4fd3b27041fc28b2460fec9123768434c2c51b56c12676b28e084e832d05fa +0xda84e8b557c5e435a9f9df86a6f4ce692f243d58d60115d5dc8935261cd6a982 +0x1df0de8ae1a5ec31f543c8f72a1acff66d73350f277d9e4725cdf4d65abfa384 +0x5cf86683e52893667d8445ba3338810d7e1de0da83fd7c7e129c83755b66be7c +0x9fee7821e73de85baac8a673d52affcaaa47d5161d8878db11c3c3a691d7720e +0x9eda3c50666a39019480339fb3842edf12988ba0fcfe1fc01e1a0ea3b4a30998 +0xf8480deda14873dac59ad7edc0b9b91f024f65df183faf93e5c1aaf2bff4d036 +0xe103d8d7876a5f951451bde712143b44e4474c7e20807974fd0ee0ab7f4ae77c +0x1d21d928142ed741646cc30ab884a5a161f4ffd62bcb79f59918a79bf5faaa3b +0xb97fc87185d06aeb544b7ded05693380eb42807cafa42f63640798e57b191201 +0xfc6579c3c3e3d4a2de25221ab4042afd7b9d444244ac741a670a60e8a665fc2f +0xbb31b9fb43e34c223047e09a2f981f73972028be6ae2e77aa8c765398e2b3b2f +0x3740db99a2c7286b443ce79472313a9f56c818e071fd830ec742851a6a37deb7 +0x6de9352bd37422d1878281217bb84f393a6f754b3715a65d8aee3e167da55749 +0xc891726af68a96d4edee3c6b9ef29cf6bbccd9ffe19cea9354eb74f41264ec27 +0xadc92eed2a7ce0b5240652694075ea81f47bfc966037e1a621bbaf28ad46a8c3 +0x99653359dd4e7ea2cf951f9eb6a8a07a29e48cace8d90eb2b89ea8db8503ae43 +0xe6027870ee7089d7a829bea43d994365879fcfc332d2f7c836a16e447d63e141 +0x150a7b1ec10190978f0ecc5e46594aa2aa45bad2267baf892f5490132b397186 +0x1028a4cee999d5143d099ff1610c64472a3030da9f122591afb52eef1c49a7c9 +0xbf3254909dc00024eec23c287bf2fdc5341a6ca13528e15aa8c2dc204ed40667 +0xab82eeefdecfe2837bf5041e74489b7253cb9246b533e8d6a6507b1ccd48f8b2 +0x8bef2a2807008668ce37bbab0b97992f09ec8710f47d001612fc630732db48c9 +0xa060183d3df2086f8582197e573e21a4969f006fc40ff4eb7759509f3a904c2d +0xc16b75da78f740a98aecbcb377882426b961ab2ce1e75bc51385bd5ef97bc951 +0xb7779c70ebf9463f5043dadb953ce6ad2bedf19da14489358c3c3a11c700dc12 +0x783e81d6e0c04f882fe7e8ca4880d083f9a192ab789daa291c6a973570ba6ab5 +0x21a346f86187979ea7020d6bed158e2d49a9cb70ff7bcce9feee37d03181c674 +0xb5a5d12906cdcfc1abeca009f31c1ae1a85b3f010bc811c61960b2dac0f5b9ff +0x4420065f6c42dab5b034c79c6362b549e820d91a34e0b62ff692800106c86bc2 +0x3c729a2c94e635b893549fe10fc9320a89abb769bef8c7d5527e267ddf9a5caf +0x00740616c2e275784faa7264129037680f1bd29477835cf7a66296594a7a3d1c +0xb4bdba18b51d06249e65313ddebe19495a068fa94b4de71887cf3e48183fafe3 +0xbb8f64f634e7de332d40b7970f350b580530719cc2b8a1c94e08345a05d9b81f +0x8ba341cafb6591ebd780002ea8c031d968e6be5fddf8e38f375cbc3a52170e1d +0xefc2f2eee6fce29b129beb697f1de539e9814ed187af1d733592929ac9ec1f7b +0x031bc06d718293c7ee57a539dc977eb372f2129b67829d052068fb27d2dad309 +0x259b259be81f1f3ce1484e432e9565c07f973083a2657ee35b0b5566ae666aa6 +0x63e9a9c73585c631f7b02f61a967b7b1747e7d2ac4eb1100b77c066a7d70746b +0x0251b90aeb6d43abf7115ed8c709ba54f992aa09d3bc8f6172dcdd9e45a5a8ff +0x74de84826c3a19bba61b27f92d14bf65768dee722abd0afbc891dcc88b091e80 +0x0b8600bf18b0972357fb01074ee553fcf666da272605a4b6226322a437f143cd +0x052e841c4c99c9f95aba8c583294a4de705cb50622f0192db6cffd2ff26ec5a2 +0xe2e43cffe0c8bc73f54d0871055e965e9f92af548742706ad68b67a2e1861742 +0x46a6c9e0f4ea9149a3e8fa5c059f95865735bea4b2f0d5747b063b1d29638d0d +0xb839ff923d6119c14272d403a506ca7b7312127d6246987fe9a0549ffd638679 +0x014766aa5424c79faa7661b83060572a006d44d6b8cf7dc3ca482a1b9278d341 +0x56f5012ecdd3c1e9940dd6cc1c26b1d374ffaadc27551b22b3f17fa3bc4f690b +0xfb62d84ec9c6dfd50befe1cffc51f8e0b610479311a2b2d8a2e71b619bbd9821 +0x2bc92a3a1e7b635a87ad501340ac3ba315042da53ad2b0869bb6ec0ebcba2a6a +0xf4f5859bdada7bed7344d266f1ee8275eb17b17fe14dc36c93f3ead2c3c4b3b3 +0x6c36cbf7e81b0384089040b279f25451b8140c9c364b103e6a854246d10c025c +0xb54f844e89dc52917084fc4b102b99e345cc277cf6259f72e7ffec5ca519044b +0x1a2b58712d4b221f63304222adac6dd5b5b45de0f6c3ec5d4fd04376fac7cd7f +0xcf9e771273bba4365ca750120cc4cfa4c481d571b183f84a138ec6bcb147660b +0xf9db461ba8934d6895794395f98ef271d95aab8a5d6dc0ad50ec8b9867073f1f +0xc430de6c2a2f27b4d60375549e844f35042dead69d088f918124636dba6d6305 +0x6057b97656b24ce0fd2e16ba93b0055eaee92ca644424611c77a2e8d3064e739 +0x539ec7d6de4b3d044fb2bea19165b4da5be00dda5705ef4c039526fa3a5c6918 +0x7c6a902abecf80b29cd248564dede621543b8994a8b97d6c2f5cc41427253ddd +0x077f9b704b90c08402d2ffdd98b83743008a2a10f0648b7a1e89dfa9935bd3df +0x3c0cc28a1dd7b702ad579e9bf47827a3f9a27f370f37c291222c250b429fce29 +0x7f4cfb532b0501aa11cb4151fa5fd4036ee10f5343c5e265d357f3d53b5dcd81 +0x8fec3d932509352415a7e1c16899e6640f896f33f681a4835ca3bd34e6ae33f7 +0xe19783598b040a19a7a5476d26f429b1dc7b9cbe7f596c5e1deca64de2705a53 +0x22ef56faf171cd0d81b91ddcc67249d27ff82ce8c2730925ac952b4293684dc7 +0x5e1deec7d9b7a55fd5170f1368c63d7ad63d7d7ce23e71be298770f5fc2f723e +0x93a9df6cfa4ecf6f207ae3419bad2e096ecd14fa4b6dcd765f14cb3f30c526c1 +0x8a2bda24e32ac3e30d5e87b8090ba3a4aa182c28576d0b8d00f5d792b2e2a3ba +0x702f6d6de080696123bde2f95ef9eef89c1bf317db4f5c99c5bcaf403bc0d7e3 +0x5baea4a431bf5fb75dac9bc0208b883d22c31fa92e94d110822c586c80e5d0af +0x8d7c4f84d2a2dc0b446c58a8900bb878d8849b5838fb92f4ec334c06c6d9c373 \ No newline at end of file From 23661d2ee929bd02dd70a1d42c5e9a874ded6325 Mon Sep 17 00:00:00 2001 From: Will Hester Date: Wed, 17 Jul 2024 11:16:45 +0100 Subject: [PATCH 04/13] remove file --- go/host/storage/hostdb/count.txt | 121 ------------------------------- 1 file changed, 121 deletions(-) delete mode 100644 go/host/storage/hostdb/count.txt diff --git a/go/host/storage/hostdb/count.txt b/go/host/storage/hostdb/count.txt deleted file mode 100644 index 6a7f9f83ef..0000000000 --- a/go/host/storage/hostdb/count.txt +++ /dev/null @@ -1,121 +0,0 @@ -0x8f66af5fa5af4180b089b9c52b80c1574b637badbd212ad9850e2d0c14c415ed -0x8dacaddb4b183ad4889aa25457284620d72a27b9db8e4dd6e104fcabb5208c18 -0xf5092e976d5114a342cdfc28406ae5a936edd52f49a612ab5f2d56fef17752ff -0xf856118833d77f909087f8bef0d57ccff92a7e7e150f184d8dfe919efb61b140 -0x75ac3166681b49f1fc85fda7173e2965c381e158a8fc00298078f24cbbbb74c5 -0xd84f4468a9331b519f20f1be93d14fe8100fb8c6d3441a062bcabcc1b7b759c3 -0x7e7b1ccc9efe1f640699b4c1cfb19620aa9208becaa18bf38906ad7d5d8d7402 -0xc61df84ddda30c6221a7abc4cc4ccbf22b922e6df451f1378a1c1867aeb8a8f3 -0x6208522afe19f4bbc709db9387bf632902cb8e048cd12c13ac8ce1b59c0cb7e6 -0x585fdea88ed32e088be9237159a21ff47413d2a62f966d998e53bafc9d31caf9 -0x80c21b3212263015fb18cd1455fe5028ca7462833dcd032ba56aae8abba01576 -0x33d69890ef7fedf3f591ee50964a737b31cf4c6b2ad57fe953ba98879d960704 -0x1bdf2ecbc71e4add73fce6556b2dd1c09d95fb3acf4acd007b6bf175bb4617b2 -0x81246de210476d823ca77ef3a3df5d570ef4e19be56f190853c69e6f97e2ca52 -0x1d1c39b071136a402088389da802e0eafdc39587ff3fb2fc0c9accc2c003b82e -0x66626acf9b4a81e03bd6e88a64996d54550784c7e5110e610b9f1e98745232e5 -0x4b5c5a9a3d1d501dd562646c47cb218643a02ae297e12699564ab7ddd9cb94e2 -0x6230ce1e153ed8092d282c7ed1292ce03d1f2f23a4fc7d9382c0ee4c792a8e95 -0xfe393e04f9cb0d783e88d17a26dceb2fa27084c4da820a3de9336fc53aedf4e4 -0xe5055229e0c939e0d479382f4ee3acd8a73b41a67136bcd73bd71948cd42ab10 -0x5e119b9ad0a15e69a5857d56a9d8409da4786c1f1308ccf5b469c5cb291bd3c4 -0x76dd66bc1ee8de27fd8ba70a9d3376110d80f63c8f17e1683e8444b52215270b -0x616508975d4dcdaef37225a6a1ff7a204d0cc667a5f3e1eccb538b61d79615af -0xda4fca433f0ad3da31a270469b7ea44d66c7728fd06939ae5022ab0b0eaa3f6c -0xf5e4872229887318eae1c912a4c3c315d1a855e7e64e4bb621a73afbcbb69329 -0x2e088204cac29814eaf359b96f05fca3e62ba14dc01b23d43177b97a60c04a8f -0xe03661a0260427bd86104744e8ae991c8c91927098508b138beecdc879abc946 -0x096053da2adbf876cf2396202bf7ecd4eee16668ea7189f5e38df30e3b03963e -0x2d4db080cfe1009bffe86b1d457f53d60746f2b517a0c032ac7ec394c840f976 -0xcb61c7d0cd45d63fa8c307bee5d8a2fc09b155fa25ab730f1dafc2890c16cb3c -0xd7f3449619d081f319fd39801e487cc2b2b88591df2c2affdfdf5c75f4de7f70 -0x20764a9f2c5d1491edbd85407002cb4e2047096972ed7a2aaf7397dc476c7a92 -0x8531c1831b113869efc09967188cf855e9e92bb90c8392d62243ca5333c2b79d -0x24e08a8653da4110b5d0d8c362c0c940970c4fba0129030ece6854275de99fba -0x5d853c073bfcad1e8952d7a72fde5680d7c5dba781237f0dae0beeace2ebe679 -0xbf8954407d8811cd4fb77eb16a59b4ccf107b2158c9acb71857b3a8a91f9e694 -0x4a717f69d5765286b85d96c4dbff826a2ad8faae40979a754223d6913802b446 -0x43dc4260cb0451b4a790c9bfac207bbeaa44eb26ad8919d26186e0cd0b85196a -0x7d3254c21437df49d44bed12b3619a3a4e4ff6f50445482a671330107ff62086 -0xcf683d3989f845c331cd0804c8465da53fda343f9cdfd16150ccda019f43d707 -0xeac204b1458be77dc7c18202bae08696b5f3be0aecd710591ae256fc5fae68cb -0x140739ccc739d006fbdefd56907659f8fadb48a14ca0e09be5e1f75f0cb7c313 -0x1b56042cfc213c4b09478c4de09a1a7dab8c73aa6c66af64885090eabe8ba6f3 -0x00674e967bad49603a6ef44227b4ef90b322a1c5fd23cb49212ea4b944be200e -0xed122c956b0e4c90a96cbc22545e9cb82951a2427aa25c3ada8fa362961221ba -0x7fd9b851c98e0ef2e775293a77896d0dfc2fa1130b6fd018d68cc6c818fa726a -0xa1b87f54b94140f266edd4d0be88f807ef4d4bc22bacb59633a1c601a0e70b3d -0x55fa78f8a75447c1f41f1bc82b3544e675e2ff37a491b13d8397933687122b05 -0x191c3cdfbca4850f537157fa7fa4175914088ac6d39797cb1c9786e6ce59dbad -0x2f4fd3b27041fc28b2460fec9123768434c2c51b56c12676b28e084e832d05fa -0xda84e8b557c5e435a9f9df86a6f4ce692f243d58d60115d5dc8935261cd6a982 -0x1df0de8ae1a5ec31f543c8f72a1acff66d73350f277d9e4725cdf4d65abfa384 -0x5cf86683e52893667d8445ba3338810d7e1de0da83fd7c7e129c83755b66be7c -0x9fee7821e73de85baac8a673d52affcaaa47d5161d8878db11c3c3a691d7720e -0x9eda3c50666a39019480339fb3842edf12988ba0fcfe1fc01e1a0ea3b4a30998 -0xf8480deda14873dac59ad7edc0b9b91f024f65df183faf93e5c1aaf2bff4d036 -0xe103d8d7876a5f951451bde712143b44e4474c7e20807974fd0ee0ab7f4ae77c -0x1d21d928142ed741646cc30ab884a5a161f4ffd62bcb79f59918a79bf5faaa3b -0xb97fc87185d06aeb544b7ded05693380eb42807cafa42f63640798e57b191201 -0xfc6579c3c3e3d4a2de25221ab4042afd7b9d444244ac741a670a60e8a665fc2f -0xbb31b9fb43e34c223047e09a2f981f73972028be6ae2e77aa8c765398e2b3b2f -0x3740db99a2c7286b443ce79472313a9f56c818e071fd830ec742851a6a37deb7 -0x6de9352bd37422d1878281217bb84f393a6f754b3715a65d8aee3e167da55749 -0xc891726af68a96d4edee3c6b9ef29cf6bbccd9ffe19cea9354eb74f41264ec27 -0xadc92eed2a7ce0b5240652694075ea81f47bfc966037e1a621bbaf28ad46a8c3 -0x99653359dd4e7ea2cf951f9eb6a8a07a29e48cace8d90eb2b89ea8db8503ae43 -0xe6027870ee7089d7a829bea43d994365879fcfc332d2f7c836a16e447d63e141 -0x150a7b1ec10190978f0ecc5e46594aa2aa45bad2267baf892f5490132b397186 -0x1028a4cee999d5143d099ff1610c64472a3030da9f122591afb52eef1c49a7c9 -0xbf3254909dc00024eec23c287bf2fdc5341a6ca13528e15aa8c2dc204ed40667 -0xab82eeefdecfe2837bf5041e74489b7253cb9246b533e8d6a6507b1ccd48f8b2 -0x8bef2a2807008668ce37bbab0b97992f09ec8710f47d001612fc630732db48c9 -0xa060183d3df2086f8582197e573e21a4969f006fc40ff4eb7759509f3a904c2d -0xc16b75da78f740a98aecbcb377882426b961ab2ce1e75bc51385bd5ef97bc951 -0xb7779c70ebf9463f5043dadb953ce6ad2bedf19da14489358c3c3a11c700dc12 -0x783e81d6e0c04f882fe7e8ca4880d083f9a192ab789daa291c6a973570ba6ab5 -0x21a346f86187979ea7020d6bed158e2d49a9cb70ff7bcce9feee37d03181c674 -0xb5a5d12906cdcfc1abeca009f31c1ae1a85b3f010bc811c61960b2dac0f5b9ff -0x4420065f6c42dab5b034c79c6362b549e820d91a34e0b62ff692800106c86bc2 -0x3c729a2c94e635b893549fe10fc9320a89abb769bef8c7d5527e267ddf9a5caf -0x00740616c2e275784faa7264129037680f1bd29477835cf7a66296594a7a3d1c -0xb4bdba18b51d06249e65313ddebe19495a068fa94b4de71887cf3e48183fafe3 -0xbb8f64f634e7de332d40b7970f350b580530719cc2b8a1c94e08345a05d9b81f -0x8ba341cafb6591ebd780002ea8c031d968e6be5fddf8e38f375cbc3a52170e1d -0xefc2f2eee6fce29b129beb697f1de539e9814ed187af1d733592929ac9ec1f7b -0x031bc06d718293c7ee57a539dc977eb372f2129b67829d052068fb27d2dad309 -0x259b259be81f1f3ce1484e432e9565c07f973083a2657ee35b0b5566ae666aa6 -0x63e9a9c73585c631f7b02f61a967b7b1747e7d2ac4eb1100b77c066a7d70746b -0x0251b90aeb6d43abf7115ed8c709ba54f992aa09d3bc8f6172dcdd9e45a5a8ff -0x74de84826c3a19bba61b27f92d14bf65768dee722abd0afbc891dcc88b091e80 -0x0b8600bf18b0972357fb01074ee553fcf666da272605a4b6226322a437f143cd -0x052e841c4c99c9f95aba8c583294a4de705cb50622f0192db6cffd2ff26ec5a2 -0xe2e43cffe0c8bc73f54d0871055e965e9f92af548742706ad68b67a2e1861742 -0x46a6c9e0f4ea9149a3e8fa5c059f95865735bea4b2f0d5747b063b1d29638d0d -0xb839ff923d6119c14272d403a506ca7b7312127d6246987fe9a0549ffd638679 -0x014766aa5424c79faa7661b83060572a006d44d6b8cf7dc3ca482a1b9278d341 -0x56f5012ecdd3c1e9940dd6cc1c26b1d374ffaadc27551b22b3f17fa3bc4f690b -0xfb62d84ec9c6dfd50befe1cffc51f8e0b610479311a2b2d8a2e71b619bbd9821 -0x2bc92a3a1e7b635a87ad501340ac3ba315042da53ad2b0869bb6ec0ebcba2a6a -0xf4f5859bdada7bed7344d266f1ee8275eb17b17fe14dc36c93f3ead2c3c4b3b3 -0x6c36cbf7e81b0384089040b279f25451b8140c9c364b103e6a854246d10c025c -0xb54f844e89dc52917084fc4b102b99e345cc277cf6259f72e7ffec5ca519044b -0x1a2b58712d4b221f63304222adac6dd5b5b45de0f6c3ec5d4fd04376fac7cd7f -0xcf9e771273bba4365ca750120cc4cfa4c481d571b183f84a138ec6bcb147660b -0xf9db461ba8934d6895794395f98ef271d95aab8a5d6dc0ad50ec8b9867073f1f -0xc430de6c2a2f27b4d60375549e844f35042dead69d088f918124636dba6d6305 -0x6057b97656b24ce0fd2e16ba93b0055eaee92ca644424611c77a2e8d3064e739 -0x539ec7d6de4b3d044fb2bea19165b4da5be00dda5705ef4c039526fa3a5c6918 -0x7c6a902abecf80b29cd248564dede621543b8994a8b97d6c2f5cc41427253ddd -0x077f9b704b90c08402d2ffdd98b83743008a2a10f0648b7a1e89dfa9935bd3df -0x3c0cc28a1dd7b702ad579e9bf47827a3f9a27f370f37c291222c250b429fce29 -0x7f4cfb532b0501aa11cb4151fa5fd4036ee10f5343c5e265d357f3d53b5dcd81 -0x8fec3d932509352415a7e1c16899e6640f896f33f681a4835ca3bd34e6ae33f7 -0xe19783598b040a19a7a5476d26f429b1dc7b9cbe7f596c5e1deca64de2705a53 -0x22ef56faf171cd0d81b91ddcc67249d27ff82ce8c2730925ac952b4293684dc7 -0x5e1deec7d9b7a55fd5170f1368c63d7ad63d7d7ce23e71be298770f5fc2f723e -0x93a9df6cfa4ecf6f207ae3419bad2e096ecd14fa4b6dcd765f14cb3f30c526c1 -0x8a2bda24e32ac3e30d5e87b8090ba3a4aa182c28576d0b8d00f5d792b2e2a3ba -0x702f6d6de080696123bde2f95ef9eef89c1bf317db4f5c99c5bcaf403bc0d7e3 -0x5baea4a431bf5fb75dac9bc0208b883d22c31fa92e94d110822c586c80e5d0af -0x8d7c4f84d2a2dc0b446c58a8900bb878d8849b5838fb92f4ec334c06c6d9c373 \ No newline at end of file From bdc89e403186cafdfa6bb1abb41c994f2349f1cd Mon Sep 17 00:00:00 2001 From: Will Hester Date: Wed, 17 Jul 2024 12:11:20 +0100 Subject: [PATCH 05/13] fix formatting: --- go/host/storage/hostdb/batch.go | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/go/host/storage/hostdb/batch.go b/go/host/storage/hostdb/batch.go index 0babc86b8d..581bf7c688 100644 --- a/go/host/storage/hostdb/batch.go +++ b/go/host/storage/hostdb/batch.go @@ -43,15 +43,16 @@ func AddBatch(dbtx *dbTransaction, statements *SQLStatements, batch *common.ExtB return fmt.Errorf("host failed to insert batch: %w", err) } var totalCount int - total := dbtx.tx.QueryRow(countTxs).Scan(&totalCount) + _ = dbtx.tx.QueryRow(countTxs).Scan(&totalCount) if len(batch.TxHashes) > 0 { insert := statements.InsertTransactions args := make([]any, 0) + fmt.Printf("Total before inserting tx: %d\n", int64(totalCount)) + fmt.Printf("Inserting %d new tx hashes \n", len(batch.TxHashes)) for i, txHash := range batch.TxHashes { insert += fmt.Sprintf(" (%s, %s),", statements.GetPlaceHolder(i*2+1), statements.GetPlaceHolder(i*2+2)) args = append(args, txHash.Bytes(), batch.SeqNo().Uint64()) - fmt.Printf("Total before inserting tx: %s\n", total) - fmt.Printf("Inserting tx with hash: %s\n %d\n", txHash.Hex(), batch.SeqNo().Uint64()) + fmt.Printf("Inserting tx with hash: %s %d\n", txHash.Hex(), batch.SeqNo().Uint64()) } insert = strings.TrimRight(insert, ",") _, err = dbtx.tx.Exec(insert, args...) @@ -60,8 +61,8 @@ func AddBatch(dbtx *dbTransaction, statements *SQLStatements, batch *common.ExtB } } - total = dbtx.tx.QueryRow(countTxs).Scan(&totalCount) - fmt.Printf("Total after inserting tx: %s\n", total) + _ = dbtx.tx.QueryRow(countTxs).Scan(&totalCount) + fmt.Printf("Total after inserting tx: %d\n", int64(totalCount)) var currentTotal int err = dbtx.tx.QueryRow(selectTxCount).Scan(¤tTotal) if err != nil { From dfee0396c2b4326a1cb8183ad33b31d6dd36c953 Mon Sep 17 00:00:00 2001 From: Will Hester Date: Wed, 17 Jul 2024 14:14:50 +0100 Subject: [PATCH 06/13] add xchain logging --- go/enclave/components/batch_executor.go | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/go/enclave/components/batch_executor.go b/go/enclave/components/batch_executor.go index 16ffdc108c..56ab6c4cd6 100644 --- a/go/enclave/components/batch_executor.go +++ b/go/enclave/components/batch_executor.go @@ -193,6 +193,10 @@ func (executor *batchExecutor) ComputeBatch(ctx context.Context, context *BatchE } syntheticTransactions := append(xchainTxs, freeTransactions...) + fmt.Printf("Number of synthetic transactions: %d\n", int64(len(syntheticTransactions))) + for _, xTx := range syntheticTransactions { + fmt.Printf("Syntheic tx hash: %s\n", xTx.Tx.Hash().Hex()) + } // fromTxIndex - Here we start from the 0 index. This will be the same for a validator. successfulTxs, excludedTxs, txReceipts, createdContracts, err := executor.processTransactions(ctx, batch, 0, transactionsToProcess, stateDB, context.ChainConfig, false) @@ -210,6 +214,9 @@ func (executor *batchExecutor) ComputeBatch(ctx context.Context, context *BatchE if err = executor.verifyInboundCrossChainTransactions(syntheticTransactions, ccSuccessfulTxs, ccReceipts); err != nil { return nil, fmt.Errorf("batch computation failed due to cross chain messages. Cause: %w", err) } + for _, tx := range ccSuccessfulTxs { + fmt.Printf("Successful TX for batch with hash: %s\n", tx.Hash().Hex()) + } if failForEmptyBatch && len(txReceipts) == 0 && @@ -245,6 +252,10 @@ func (executor *batchExecutor) ComputeBatch(ctx context.Context, context *BatchE l.BlockHash = copyBatch.Hash() } } + for _, tx := range copyBatch.Transactions { + fmt.Printf("Computed batch TX hash: %s\n", tx.Hash().Hex()) + } + fmt.Printf("Computed batch txs hashes: %s\n", copyBatch.Transactions) maps.Copy(createdContracts, createdContractsSyn) return &ComputedBatch{ Batch: ©Batch, From 94ce880feb26975e7a79f90216f19b6cdadeb767 Mon Sep 17 00:00:00 2001 From: Will Hester Date: Wed, 17 Jul 2024 15:01:57 +0100 Subject: [PATCH 07/13] more logging --- go/enclave/components/batch_executor.go | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/go/enclave/components/batch_executor.go b/go/enclave/components/batch_executor.go index 56ab6c4cd6..3369e8cff8 100644 --- a/go/enclave/components/batch_executor.go +++ b/go/enclave/components/batch_executor.go @@ -93,6 +93,7 @@ func (executor *batchExecutor) filterTransactionsWithSufficientFunds(ctx context block, _ := executor.storage.FetchBlock(ctx, context.BlockPtr) for _, tx := range context.Transactions { + fmt.Printf("Tx from context hash: %s\n", tx.Hash().Hex()) sender, err := core.GetAuthenticatedSender(context.ChainConfig.ChainID.Int64(), tx) if err != nil { executor.logger.Error("Unable to extract sender for tx. Should not happen at this point.", log.TxKey, tx.Hash(), log.ErrKey, err) @@ -252,10 +253,15 @@ func (executor *batchExecutor) ComputeBatch(ctx context.Context, context *BatchE l.BlockHash = copyBatch.Hash() } } + for _, tx := range freeTransactions.ToTransactions() { + fmt.Printf("Free tx hash: %s\n", tx.Hash().Hex()) + } + for _, tx := range transactionsToProcess.ToTransactions() { + fmt.Printf("TransactionsToProcess tx hash: %s\n", tx.Hash().Hex()) + } for _, tx := range copyBatch.Transactions { fmt.Printf("Computed batch TX hash: %s\n", tx.Hash().Hex()) } - fmt.Printf("Computed batch txs hashes: %s\n", copyBatch.Transactions) maps.Copy(createdContracts, createdContractsSyn) return &ComputedBatch{ Batch: ©Batch, From 4fb88e40268f40c7650eea4ea3bbc8bdc5dd12ef Mon Sep 17 00:00:00 2001 From: Will Hester Date: Wed, 17 Jul 2024 16:45:51 +0100 Subject: [PATCH 08/13] one more log --- go/enclave/rpc/SubmitTx.go | 2 ++ 1 file changed, 2 insertions(+) diff --git a/go/enclave/rpc/SubmitTx.go b/go/enclave/rpc/SubmitTx.go index fe3d2af7fe..36f2ded46a 100644 --- a/go/enclave/rpc/SubmitTx.go +++ b/go/enclave/rpc/SubmitTx.go @@ -34,7 +34,9 @@ func SubmitTxExecute(builder *CallBuilder[common.L2Tx, gethcommon.Hash], rpc *En builder.Err = err return nil } + h := builder.Param.Hash() + fmt.Printf("Submit TX execute hash: %s\n", h.Hex()) builder.ReturnValue = &h return nil } From 15a3f7710416c45df5bb683f105c4338ff6f247a Mon Sep 17 00:00:00 2001 From: Will Hester Date: Wed, 17 Jul 2024 18:00:54 +0100 Subject: [PATCH 09/13] getting desperate --- go/enclave/rpc/SubmitTx.go | 1 - go/obsclient/authclient.go | 1 + 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/go/enclave/rpc/SubmitTx.go b/go/enclave/rpc/SubmitTx.go index 36f2ded46a..c91065b6d7 100644 --- a/go/enclave/rpc/SubmitTx.go +++ b/go/enclave/rpc/SubmitTx.go @@ -34,7 +34,6 @@ func SubmitTxExecute(builder *CallBuilder[common.L2Tx, gethcommon.Hash], rpc *En builder.Err = err return nil } - h := builder.Param.Hash() fmt.Printf("Submit TX execute hash: %s\n", h.Hex()) builder.ReturnValue = &h diff --git a/go/obsclient/authclient.go b/go/obsclient/authclient.go index c15e627f66..940e1f23d9 100644 --- a/go/obsclient/authclient.go +++ b/go/obsclient/authclient.go @@ -176,6 +176,7 @@ func (ac *AuthObsClient) CallContract(ctx context.Context, msg ethereum.CallMsg, } func (ac *AuthObsClient) SendTransaction(ctx context.Context, signedTx *types.Transaction) error { + fmt.Printf("Send Transaction: %s\n", signedTx.Hash().Hex()) var result responses.RawTxType err := ac.rpcClient.CallContext(ctx, &result, rpc.SendRawTransaction, encodeTx(signedTx)) if err != nil { From 87ac7c5435ea6765bd2b04c66061ec6efeaedaed Mon Sep 17 00:00:00 2001 From: Will Hester Date: Wed, 17 Jul 2024 19:11:09 +0100 Subject: [PATCH 10/13] sequencer logging --- go/enclave/nodetype/sequencer.go | 6 ++++++ go/enclave/storage/storage.go | 3 +++ 2 files changed, 9 insertions(+) diff --git a/go/enclave/nodetype/sequencer.go b/go/enclave/nodetype/sequencer.go index e992e0e64b..19e945957a 100644 --- a/go/enclave/nodetype/sequencer.go +++ b/go/enclave/nodetype/sequencer.go @@ -255,6 +255,9 @@ func (s *sequencer) createNewHeadBatch(ctx context.Context, l1HeadBlock *common. return err } + for _, tx := range transactions { + fmt.Printf("sequencer producing new head batch tx: %s\n", tx.Hash().Hex()) + } // todo - time is set only here; take from l1 block? if _, err := s.produceBatch(ctx, sequencerNo.Add(sequencerNo, big.NewInt(1)), l1HeadBlock.Hash(), headBatch.Hash(), transactions, uint64(time.Now().Unix()), skipBatchIfEmpty); err != nil { if errors.Is(err, components.ErrNoTransactionsToProcess) { @@ -435,6 +438,9 @@ func (s *sequencer) duplicateBatches(ctx context.Context, l1Head *types.Block, n return fmt.Errorf("could not fetch transactions to duplicate. Cause %w", err) } // create the duplicate and store/broadcast it, recreate batch even if it was empty + for _, tx := range transactions { + fmt.Printf("sequencer dublicate batch tx: %s\n", tx.Hash().Hex()) + } cb, err := s.produceBatch(ctx, sequencerNo, l1Head.Hash(), currentHead, transactions, orphanBatch.Time, false) if err != nil { return fmt.Errorf("could not produce batch. Cause %w", err) diff --git a/go/enclave/storage/storage.go b/go/enclave/storage/storage.go index 947d982fb0..388e7eefe9 100644 --- a/go/enclave/storage/storage.go +++ b/go/enclave/storage/storage.go @@ -552,6 +552,9 @@ func (s *storageImpl) StoreBatch(ctx context.Context, batch *core.Batch, convert return err } + for _, tx := range batch.Transactions { + fmt.Printf("Enclave storing tx: %s\n", tx.Hash().Hex()) + } if err := enclavedb.WriteTransactions(ctx, dbTx, batch, senders); err != nil { return fmt.Errorf("could not write transactions. Cause: %w", err) } From 4a7de25140b587218641577353458ce8351060ab Mon Sep 17 00:00:00 2001 From: Will Hester Date: Wed, 17 Jul 2024 19:36:55 +0100 Subject: [PATCH 11/13] mempool logging --- go/enclave/nodetype/sequencer.go | 2 ++ 1 file changed, 2 insertions(+) diff --git a/go/enclave/nodetype/sequencer.go b/go/enclave/nodetype/sequencer.go index 19e945957a..7534d91d0e 100644 --- a/go/enclave/nodetype/sequencer.go +++ b/go/enclave/nodetype/sequencer.go @@ -235,6 +235,7 @@ func (s *sequencer) createNewHeadBatch(ctx context.Context, l1HeadBlock *common. for _, group := range pendingTransactions { // lazily resolve transactions until the batch runs out of space for _, lazyTx := range group { + fmt.Printf("Mempool tx hash: %s\n", lazyTx.Hash.Hex()) if tx := lazyTx.Resolve(); tx != nil { err = limiter.AcceptTransaction(tx) if err != nil { @@ -463,6 +464,7 @@ func (s *sequencer) duplicateBatches(ctx context.Context, l1Head *types.Block, n } func (s *sequencer) SubmitTransaction(transaction *common.L2Tx) error { + fmt.Printf("Adding tx to mempool: %s\n", transaction.Hash().Hex()) return s.mempool.Add(transaction) } From 9d7aea7ad42d186d81e7bf6dd35bf0d0f8fcb0b4 Mon Sep 17 00:00:00 2001 From: Will Hester Date: Thu, 18 Jul 2024 10:30:23 +0100 Subject: [PATCH 12/13] logging for signer of mempool txs --- go/enclave/rpc/vk_utils.go | 25 ++++++++++++++++++++++++- 1 file changed, 24 insertions(+), 1 deletion(-) diff --git a/go/enclave/rpc/vk_utils.go b/go/enclave/rpc/vk_utils.go index ea1229ef28..d486153a4f 100644 --- a/go/enclave/rpc/vk_utils.go +++ b/go/enclave/rpc/vk_utils.go @@ -5,8 +5,8 @@ import ( "encoding/json" "errors" "fmt" - "github.com/ten-protocol/go-ten/go/common/rpc" + "github.com/ten-protocol/go-ten/go/common/viewingkey" gethcommon "github.com/ethereum/go-ethereum/common" "github.com/ten-protocol/go-ten/go/common" @@ -54,6 +54,7 @@ func WithVKEncryption[P any, R any]( ) (*responses.EnclaveResponse, common.SystemError) { // 1. Decrypt request plaintextRequest, err := encManager.DecryptBytes(encReq) + fmt.Printf("Plaintext request: %s\n", plaintextRequest) if err != nil { return responses.AsPlaintextError(fmt.Errorf("could not decrypt params - %w", err)), nil } @@ -63,6 +64,28 @@ func WithVKEncryption[P any, R any]( if err := json.Unmarshal(plaintextRequest, &decodedRequest); err != nil { return responses.AsPlaintextError(fmt.Errorf("could not unmarshal params - %w", err)), nil } + for _, param := range decodedRequest.Params { + fmt.Printf("Decoded param: %s\n", param) + } + + //// checkViewingKeyAndRecoverAddress checks the signature and recovers the address from the viewing key + //func checkViewingKeyAndRecoverAddress(vk *AuthenticatedViewingKey, chainID int64) (*gethcommon.Address, error) { + // // get userID from viewingKey public key + // userID := viewingkey.CalculateUserID(vk.rpcVK.PublicKey) + // vk.UserID = userID + // + // // check the signature and recover the address assuming the message was signed with EIP712 + // recoveredSignerAddress, err := viewingkey.CheckSignature(userID, vk.rpcVK.SignatureWithAccountKey, chainID, vk.rpcVK.SignatureType) + // if err != nil { + // return nil, fmt.Errorf("signature verification failed %w", err) + // } + // + // return recoveredSignerAddress, err + //} + userId := viewingkey.CalculateUserID(decodedRequest.VK.PublicKey) + + recoveredSignerAddress, _ := viewingkey.CheckSignature(userId, decodedRequest.VK.SignatureWithAccountKey, 1337, decodedRequest.VK.SignatureType) + fmt.Printf("Recovered signer address: %s\n", recoveredSignerAddress.Hex()) // 3. Verify the VK if decodedRequest.VK == nil { From 1fb6496e878c2c4428488f041151e7188eb77c0f Mon Sep 17 00:00:00 2001 From: Will Hester Date: Thu, 18 Jul 2024 10:39:31 +0100 Subject: [PATCH 13/13] update --- go/enclave/rpc/vk_utils.go | 18 ------------------ 1 file changed, 18 deletions(-) diff --git a/go/enclave/rpc/vk_utils.go b/go/enclave/rpc/vk_utils.go index d486153a4f..b5546a8955 100644 --- a/go/enclave/rpc/vk_utils.go +++ b/go/enclave/rpc/vk_utils.go @@ -64,24 +64,6 @@ func WithVKEncryption[P any, R any]( if err := json.Unmarshal(plaintextRequest, &decodedRequest); err != nil { return responses.AsPlaintextError(fmt.Errorf("could not unmarshal params - %w", err)), nil } - for _, param := range decodedRequest.Params { - fmt.Printf("Decoded param: %s\n", param) - } - - //// checkViewingKeyAndRecoverAddress checks the signature and recovers the address from the viewing key - //func checkViewingKeyAndRecoverAddress(vk *AuthenticatedViewingKey, chainID int64) (*gethcommon.Address, error) { - // // get userID from viewingKey public key - // userID := viewingkey.CalculateUserID(vk.rpcVK.PublicKey) - // vk.UserID = userID - // - // // check the signature and recover the address assuming the message was signed with EIP712 - // recoveredSignerAddress, err := viewingkey.CheckSignature(userID, vk.rpcVK.SignatureWithAccountKey, chainID, vk.rpcVK.SignatureType) - // if err != nil { - // return nil, fmt.Errorf("signature verification failed %w", err) - // } - // - // return recoveredSignerAddress, err - //} userId := viewingkey.CalculateUserID(decodedRequest.VK.PublicKey) recoveredSignerAddress, _ := viewingkey.CheckSignature(userId, decodedRequest.VK.SignatureWithAccountKey, 1337, decodedRequest.VK.SignatureType)