diff --git a/.github/workflows/publish-npm.yml b/.github/workflows/publish-npm.yml index e34a6bc..999eccc 100644 --- a/.github/workflows/publish-npm.yml +++ b/.github/workflows/publish-npm.yml @@ -33,7 +33,13 @@ jobs: wasm-pack build bindings/wasm/ \ --target web \ --out-dir ../../pkg \ - --out-name libveritas + --out-name libveritas \ + -- \ + --config 'profile.release.opt-level=3' \ + --config 'profile.release.lto="fat"' \ + --config 'profile.release.codegen-units=1' \ + --config 'profile.release.panic="abort"' \ + --config 'profile.release.strip=true' - name: Report WASM size run: ls -lh pkg/libveritas_bg.wasm diff --git a/Cargo.toml b/Cargo.toml index e37d3ad..a7fa253 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -26,10 +26,3 @@ spacedb = { version = "0.1", default-features = false, features = ["ext # Always optimize; building and running the guest takes much longer without optimization. [profile.dev] opt-level = 3 - -[profile.release] -lto = "fat" -opt-level = "z" -codegen-units = 1 -panic = "abort" -strip = true diff --git a/examples/fixture/anchors-real.json b/examples/fixture/anchors-real.json new file mode 100644 index 0000000..0ccb40e --- /dev/null +++ b/examples/fixture/anchors-real.json @@ -0,0 +1,850 @@ +[ + { + "spaces_root": "cd3f1b4017aa2bbb535e00f76d94d1fa521b435168c126300192092d69c42329", + "nums_root": "a7662ec0ddf9185bf5c64e9165ce9c1e7dab182b356458389a2b96e39a84adca", + "block": { + "hash": "1565c9b0e393246dfb69c5bf387f1359f099fecf464f454c97c6fb1528c75abd", + "height": 3816 + } + }, + { + "spaces_root": "cd3f1b4017aa2bbb535e00f76d94d1fa521b435168c126300192092d69c42329", + "nums_root": "a7662ec0ddf9185bf5c64e9165ce9c1e7dab182b356458389a2b96e39a84adca", + "block": { + "hash": "4853190e5c195130e877135b8d5cc6cdd992be06e95b31ed4f2735b652402108", + "height": 3780 + } + }, + { + "spaces_root": "a0bef8c9da973adacd9d41c790744c26101fb2a771a79c6e951fc3aea9591843", + "nums_root": "a7662ec0ddf9185bf5c64e9165ce9c1e7dab182b356458389a2b96e39a84adca", + "block": { + "hash": "7f427aa07d1e95bd0ad4c8b922babce12c345c57cc88b06f9097dc42748a7d11", + "height": 3744 + } + }, + { + "spaces_root": "a0bef8c9da973adacd9d41c790744c26101fb2a771a79c6e951fc3aea9591843", + "nums_root": "a7662ec0ddf9185bf5c64e9165ce9c1e7dab182b356458389a2b96e39a84adca", + "block": { + "hash": "69c23eb7990665b4b98100ccdb20bdaab77a812f084185819e8b832a24dc4735", + "height": 3708 + } + }, + { + "spaces_root": "a0bef8c9da973adacd9d41c790744c26101fb2a771a79c6e951fc3aea9591843", + "nums_root": "a7662ec0ddf9185bf5c64e9165ce9c1e7dab182b356458389a2b96e39a84adca", + "block": { + "hash": "399a7457a2f53937acf6120b9e543de8c3a5c5d40101ca496aa05bed60ece83f", + "height": 3672 + } + }, + { + "spaces_root": "a0bef8c9da973adacd9d41c790744c26101fb2a771a79c6e951fc3aea9591843", + "nums_root": "a7662ec0ddf9185bf5c64e9165ce9c1e7dab182b356458389a2b96e39a84adca", + "block": { + "hash": "7c9bdb494a553c99bd0f1c2c4ec7efb957e60445c629cb3ab029a8ea992a7717", + "height": 3636 + } + }, + { + "spaces_root": "8da4b9cc032a1d7a0bd8bfafebfaab9cfa78aea97f7264d5ae4878532e41322d", + "nums_root": "a7662ec0ddf9185bf5c64e9165ce9c1e7dab182b356458389a2b96e39a84adca", + "block": { + "hash": "7d6831e1e59be21e12833f7f1e3159a4abc1cdb695d63c323edf95cdd5842a84", + "height": 3600 + } + }, + { + "spaces_root": "8da4b9cc032a1d7a0bd8bfafebfaab9cfa78aea97f7264d5ae4878532e41322d", + "nums_root": "387f23fd751d7f3460b7bddce42a6b9b264ca9d9c1e8cc914e738756041002ae", + "block": { + "hash": "0db34d53f4c46420ae6e5bca1477f86f4b621ec41b430399e647b8e4ac18c044", + "height": 3564 + } + }, + { + "spaces_root": "8da4b9cc032a1d7a0bd8bfafebfaab9cfa78aea97f7264d5ae4878532e41322d", + "nums_root": "387f23fd751d7f3460b7bddce42a6b9b264ca9d9c1e8cc914e738756041002ae", + "block": { + "hash": "26376314179c26c27cff6fb8941024edbaffdfd0fe5f55ab60ee310de7ef931d", + "height": 3528 + } + }, + { + "spaces_root": "8da4b9cc032a1d7a0bd8bfafebfaab9cfa78aea97f7264d5ae4878532e41322d", + "nums_root": "387f23fd751d7f3460b7bddce42a6b9b264ca9d9c1e8cc914e738756041002ae", + "block": { + "hash": "1bdeb74d7c7b997bb405861830edcf7226c2df1fee0792b702c3ab498eafe8ab", + "height": 3492 + } + }, + { + "spaces_root": "a7fc970bea9cfc1f5c20dd2300c50a22b2b75322b91df6c8712af2a4d1656f36", + "nums_root": "387f23fd751d7f3460b7bddce42a6b9b264ca9d9c1e8cc914e738756041002ae", + "block": { + "hash": "179384f119f29fd2190f35acf4f631c660e7de0ab1d6edcf236b226611bb7186", + "height": 3456 + } + }, + { + "spaces_root": "b6891837008ded99c7ad4c0346d8bc8c1ef8052a32804f56941ba24e2d0321f8", + "nums_root": "cb0f2aafa84b6b5c4a0d2c4429e1d32472ca8c42edb461fd27fbe66dec511cd5", + "block": { + "hash": "07a32701e8cf0a754832a38a29dece2df5b5fa08ece3017bccbd3591ed95538c", + "height": 3420 + } + }, + { + "spaces_root": "b6891837008ded99c7ad4c0346d8bc8c1ef8052a32804f56941ba24e2d0321f8", + "nums_root": "cb0f2aafa84b6b5c4a0d2c4429e1d32472ca8c42edb461fd27fbe66dec511cd5", + "block": { + "hash": "19c36aa566e1d8f30f7cb5e5f93aab8b1bb20f5ccd19a23fa15835c6f39a05d9", + "height": 3384 + } + }, + { + "spaces_root": "b6891837008ded99c7ad4c0346d8bc8c1ef8052a32804f56941ba24e2d0321f8", + "nums_root": "cb0f2aafa84b6b5c4a0d2c4429e1d32472ca8c42edb461fd27fbe66dec511cd5", + "block": { + "hash": "58d775e174e8ce2443a1f2ad5f11b318820fc6af531cfbeff96c3e192e4741b2", + "height": 3348 + } + }, + { + "spaces_root": "2392fc1de4fde33007a6de8ec37fc46849b64fb195aeaf526366f3323589b9c9", + "nums_root": "cb0f2aafa84b6b5c4a0d2c4429e1d32472ca8c42edb461fd27fbe66dec511cd5", + "block": { + "hash": "0ce60ed3aeb728499f03c6b7065b48e6396786033cee713fb689f8577f4184e4", + "height": 3312 + } + }, + { + "spaces_root": "2392fc1de4fde33007a6de8ec37fc46849b64fb195aeaf526366f3323589b9c9", + "nums_root": "cb0f2aafa84b6b5c4a0d2c4429e1d32472ca8c42edb461fd27fbe66dec511cd5", + "block": { + "hash": "1c57ffee1cb3e7a88e644eb58a6f07ceb126ca08739abbd9ea968270d7509a9e", + "height": 3276 + } + }, + { + "spaces_root": "2392fc1de4fde33007a6de8ec37fc46849b64fb195aeaf526366f3323589b9c9", + "nums_root": "cb0f2aafa84b6b5c4a0d2c4429e1d32472ca8c42edb461fd27fbe66dec511cd5", + "block": { + "hash": "6851a8092352619c3610c88f1e27b8acd4962595db8869aed476127493f96730", + "height": 3240 + } + }, + { + "spaces_root": "2392fc1de4fde33007a6de8ec37fc46849b64fb195aeaf526366f3323589b9c9", + "nums_root": "cb0f2aafa84b6b5c4a0d2c4429e1d32472ca8c42edb461fd27fbe66dec511cd5", + "block": { + "hash": "54a90d2294a5e241429c31beed461073e87b3f713de4be6670daf56b74202049", + "height": 3204 + } + }, + { + "spaces_root": "6facde1cbf5bc46c3c2b592d88976a7fb785defc3514d59a362c807e8d169782", + "nums_root": "cb0f2aafa84b6b5c4a0d2c4429e1d32472ca8c42edb461fd27fbe66dec511cd5", + "block": { + "hash": "58772b8510f1658cd1ba6e76a16f7ede99c2487b53f40558d1069bb5e6380382", + "height": 3168 + } + }, + { + "spaces_root": "6facde1cbf5bc46c3c2b592d88976a7fb785defc3514d59a362c807e8d169782", + "nums_root": "cb0f2aafa84b6b5c4a0d2c4429e1d32472ca8c42edb461fd27fbe66dec511cd5", + "block": { + "hash": "0ebdca4116ea65b1f854b1be52fc0822c88b661fdb5410b5dd5e9e02a74b6aef", + "height": 3132 + } + }, + { + "spaces_root": "6facde1cbf5bc46c3c2b592d88976a7fb785defc3514d59a362c807e8d169782", + "nums_root": "cb0f2aafa84b6b5c4a0d2c4429e1d32472ca8c42edb461fd27fbe66dec511cd5", + "block": { + "hash": "61cfbc36a517c92ed42db16508594bbd0f2790a0552d75ceb3bca8bb203802ab", + "height": 3096 + } + }, + { + "spaces_root": "6facde1cbf5bc46c3c2b592d88976a7fb785defc3514d59a362c807e8d169782", + "nums_root": "cb0f2aafa84b6b5c4a0d2c4429e1d32472ca8c42edb461fd27fbe66dec511cd5", + "block": { + "hash": "0095513c4b103fa06eb5c551e0be5be3f31906494faf82f622408d166841d927", + "height": 3060 + } + }, + { + "spaces_root": "ae2071612f26ce9d822feb2845f932956452a1d21f833366ac68d8a495735387", + "nums_root": "cb0f2aafa84b6b5c4a0d2c4429e1d32472ca8c42edb461fd27fbe66dec511cd5", + "block": { + "hash": "6ad0217eab75a444a964e210613c4fae87123f182de90b2a90f680218d553660", + "height": 3024 + } + }, + { + "spaces_root": "ae2071612f26ce9d822feb2845f932956452a1d21f833366ac68d8a495735387", + "nums_root": "cb0f2aafa84b6b5c4a0d2c4429e1d32472ca8c42edb461fd27fbe66dec511cd5", + "block": { + "hash": "45611dc590293996551a6e1084ff32be6921299d87f80bfdbfd2acc5e5aec071", + "height": 2988 + } + }, + { + "spaces_root": "ae2071612f26ce9d822feb2845f932956452a1d21f833366ac68d8a495735387", + "nums_root": "cb0f2aafa84b6b5c4a0d2c4429e1d32472ca8c42edb461fd27fbe66dec511cd5", + "block": { + "hash": "4d0a9edcdf01659fabbe81862ae84f1f067ece9f02533d235b024693d780ebd9", + "height": 2952 + } + }, + { + "spaces_root": "ae2071612f26ce9d822feb2845f932956452a1d21f833366ac68d8a495735387", + "nums_root": "cb0f2aafa84b6b5c4a0d2c4429e1d32472ca8c42edb461fd27fbe66dec511cd5", + "block": { + "hash": "71ee5ae451aa4ef0a5076c09cd74813118edf45f5c55173cfb176ff10db8b283", + "height": 2916 + } + }, + { + "spaces_root": "a8030b8c854d3c530b57b478ff0b8b0f5d57d092ecbb9a316c3462ffb865da29", + "nums_root": "cb0f2aafa84b6b5c4a0d2c4429e1d32472ca8c42edb461fd27fbe66dec511cd5", + "block": { + "hash": "24884d89b6900784d9be7e5b30dbf76c4b538c988d0dc637b8cee86254942a49", + "height": 2880 + } + }, + { + "spaces_root": "a8030b8c854d3c530b57b478ff0b8b0f5d57d092ecbb9a316c3462ffb865da29", + "nums_root": "cb0f2aafa84b6b5c4a0d2c4429e1d32472ca8c42edb461fd27fbe66dec511cd5", + "block": { + "hash": "228a2745758626f6bad2e6b321c7de61a1c3a9226a95728eb4f596136f20e64d", + "height": 2844 + } + }, + { + "spaces_root": "a8030b8c854d3c530b57b478ff0b8b0f5d57d092ecbb9a316c3462ffb865da29", + "nums_root": "cb0f2aafa84b6b5c4a0d2c4429e1d32472ca8c42edb461fd27fbe66dec511cd5", + "block": { + "hash": "6b8790aaff58942f479e1b2dd22e01ee7bf2c093452123ea64fba1c7148a6782", + "height": 2808 + } + }, + { + "spaces_root": "a8030b8c854d3c530b57b478ff0b8b0f5d57d092ecbb9a316c3462ffb865da29", + "nums_root": "cb0f2aafa84b6b5c4a0d2c4429e1d32472ca8c42edb461fd27fbe66dec511cd5", + "block": { + "hash": "2caf5b76f01599cb1d752efd08292c5798943e904dc5c535ef355c73fe6ecdd4", + "height": 2772 + } + }, + { + "spaces_root": "386fef0f547f734fcab27a93ec84205f529e129d3969b3bf26b043db83205acc", + "nums_root": "cb0f2aafa84b6b5c4a0d2c4429e1d32472ca8c42edb461fd27fbe66dec511cd5", + "block": { + "hash": "7ee56c49923fafb6ac1010abdc491b51b841906e0c23d22ab4a86f1d3e24e24c", + "height": 2736 + } + }, + { + "spaces_root": "386fef0f547f734fcab27a93ec84205f529e129d3969b3bf26b043db83205acc", + "nums_root": "cb0f2aafa84b6b5c4a0d2c4429e1d32472ca8c42edb461fd27fbe66dec511cd5", + "block": { + "hash": "65711833660f05a881c85b7dbd59a617479cce3ddff3ea591205ba6524c5b34d", + "height": 2700 + } + }, + { + "spaces_root": "386fef0f547f734fcab27a93ec84205f529e129d3969b3bf26b043db83205acc", + "nums_root": "cb0f2aafa84b6b5c4a0d2c4429e1d32472ca8c42edb461fd27fbe66dec511cd5", + "block": { + "hash": "44c1da5a9f40cfc6274e0eaf91d5fb1f6f593ab53ea21cd84a4706537e1a9f16", + "height": 2664 + } + }, + { + "spaces_root": "386fef0f547f734fcab27a93ec84205f529e129d3969b3bf26b043db83205acc", + "nums_root": "cb0f2aafa84b6b5c4a0d2c4429e1d32472ca8c42edb461fd27fbe66dec511cd5", + "block": { + "hash": "60e4c4e82173dfe94ab56cdfec01d53047eda86a3c76675f92a65e44e02d39cc", + "height": 2628 + } + }, + { + "spaces_root": "b3bf0934bf02b94703409f0a62098f0d419009fe18d7f462580b6d3e4c6367e8", + "nums_root": "cb0f2aafa84b6b5c4a0d2c4429e1d32472ca8c42edb461fd27fbe66dec511cd5", + "block": { + "hash": "537bd06b9b90fe65ba676300cc547e1e2f02fd850e98ab9216dffa120157e61f", + "height": 2592 + } + }, + { + "spaces_root": "b3bf0934bf02b94703409f0a62098f0d419009fe18d7f462580b6d3e4c6367e8", + "nums_root": "cb0f2aafa84b6b5c4a0d2c4429e1d32472ca8c42edb461fd27fbe66dec511cd5", + "block": { + "hash": "2eda5cbe8e83b2edc5a7f0d3189908c027d6a124b8f862d9fcfad3751e710bdb", + "height": 2556 + } + }, + { + "spaces_root": "b3bf0934bf02b94703409f0a62098f0d419009fe18d7f462580b6d3e4c6367e8", + "nums_root": "cb0f2aafa84b6b5c4a0d2c4429e1d32472ca8c42edb461fd27fbe66dec511cd5", + "block": { + "hash": "05a62ee926e4f0c58c2257bea9bc1ca918d93f85506c6174a796e091960982d8", + "height": 2520 + } + }, + { + "spaces_root": "b3bf0934bf02b94703409f0a62098f0d419009fe18d7f462580b6d3e4c6367e8", + "nums_root": "cb0f2aafa84b6b5c4a0d2c4429e1d32472ca8c42edb461fd27fbe66dec511cd5", + "block": { + "hash": "6d0b32b6745c42a7fc74e627e9771b9f1b50c41a607e591075cd07acf9397ebc", + "height": 2484 + } + }, + { + "spaces_root": "303f5dcb9ad39a9e9b8b7f5a2a1b9e547bfe86c551ae95733f2a075f813f2882", + "nums_root": "cb0f2aafa84b6b5c4a0d2c4429e1d32472ca8c42edb461fd27fbe66dec511cd5", + "block": { + "hash": "118a86f3e7a46dd100932313e2aa405ef35e9dfb9ba2062384fcd66214c75c05", + "height": 2448 + } + }, + { + "spaces_root": "303f5dcb9ad39a9e9b8b7f5a2a1b9e547bfe86c551ae95733f2a075f813f2882", + "nums_root": "cb0f2aafa84b6b5c4a0d2c4429e1d32472ca8c42edb461fd27fbe66dec511cd5", + "block": { + "hash": "1dc0db1c0ba69e7b863c5dc81f0bcd8321358de452501fe47c9272ee529bd941", + "height": 2412 + } + }, + { + "spaces_root": "303f5dcb9ad39a9e9b8b7f5a2a1b9e547bfe86c551ae95733f2a075f813f2882", + "nums_root": "cb0f2aafa84b6b5c4a0d2c4429e1d32472ca8c42edb461fd27fbe66dec511cd5", + "block": { + "hash": "51fcae1dfbc39d6d5c9ffd749d9bbf22c2f92ae02f0c6f5f9e67cbed3472dbec", + "height": 2376 + } + }, + { + "spaces_root": "303f5dcb9ad39a9e9b8b7f5a2a1b9e547bfe86c551ae95733f2a075f813f2882", + "nums_root": "cb0f2aafa84b6b5c4a0d2c4429e1d32472ca8c42edb461fd27fbe66dec511cd5", + "block": { + "hash": "55417e7943359a5c5cd5a99b00226916fcd11be001934aee10c70ae6c080b5ba", + "height": 2340 + } + }, + { + "spaces_root": "5ab2e40238748852db65b78dc85438671bc9793187c0e3c2a0b1b43867f18d49", + "nums_root": "cb0f2aafa84b6b5c4a0d2c4429e1d32472ca8c42edb461fd27fbe66dec511cd5", + "block": { + "hash": "55e3ca648b13016e537a7a3fb1351960486bf432045ca701c058e536dc9ae3c2", + "height": 2304 + } + }, + { + "spaces_root": "5ab2e40238748852db65b78dc85438671bc9793187c0e3c2a0b1b43867f18d49", + "nums_root": "cb0f2aafa84b6b5c4a0d2c4429e1d32472ca8c42edb461fd27fbe66dec511cd5", + "block": { + "hash": "60d7549ed86fa7b1670e9d05d0a31b5423353d74433089fbb9343a938440f27e", + "height": 2268 + } + }, + { + "spaces_root": "5ab2e40238748852db65b78dc85438671bc9793187c0e3c2a0b1b43867f18d49", + "nums_root": "cb0f2aafa84b6b5c4a0d2c4429e1d32472ca8c42edb461fd27fbe66dec511cd5", + "block": { + "hash": "79a76a8b6560e31116843779cab4b10bddf2df5bfbe295d6534f0000a4fdf4a2", + "height": 2232 + } + }, + { + "spaces_root": "5ab2e40238748852db65b78dc85438671bc9793187c0e3c2a0b1b43867f18d49", + "nums_root": "cb0f2aafa84b6b5c4a0d2c4429e1d32472ca8c42edb461fd27fbe66dec511cd5", + "block": { + "hash": "322be100be5de2183b02947bdfe8752f606801d690c8f9a7c42497342fdc21c4", + "height": 2196 + } + }, + { + "spaces_root": "33de795195a2c05a6771ab31e3d303e7e7480c0c2b2bbb5e6c565bcc76ae874e", + "nums_root": "cb0f2aafa84b6b5c4a0d2c4429e1d32472ca8c42edb461fd27fbe66dec511cd5", + "block": { + "hash": "196d26c02b1c4cb4f2b05306b115491ee368e08802808338b3202d90ed42cb88", + "height": 2160 + } + }, + { + "spaces_root": "33de795195a2c05a6771ab31e3d303e7e7480c0c2b2bbb5e6c565bcc76ae874e", + "nums_root": "cb0f2aafa84b6b5c4a0d2c4429e1d32472ca8c42edb461fd27fbe66dec511cd5", + "block": { + "hash": "49f2382ad638ca795497b023dffe5d6471d9a488061e8d7cd2434628f0a1d5eb", + "height": 2124 + } + }, + { + "spaces_root": "33de795195a2c05a6771ab31e3d303e7e7480c0c2b2bbb5e6c565bcc76ae874e", + "nums_root": "cb0f2aafa84b6b5c4a0d2c4429e1d32472ca8c42edb461fd27fbe66dec511cd5", + "block": { + "hash": "379cb8892f4df704bc33cb3bdfbad9179883be17ecdaba06650a375a81008777", + "height": 2088 + } + }, + { + "spaces_root": "33de795195a2c05a6771ab31e3d303e7e7480c0c2b2bbb5e6c565bcc76ae874e", + "nums_root": "cb0f2aafa84b6b5c4a0d2c4429e1d32472ca8c42edb461fd27fbe66dec511cd5", + "block": { + "hash": "612193f2eabd5be0db9d4895f0596d0127b96dbd4a09c13ba9ca923e5d97459c", + "height": 2052 + } + }, + { + "spaces_root": "291d27369690230c45768a7f70ae3f5dac62ae797bebfc76b2eb348fc36efa30", + "nums_root": "cb0f2aafa84b6b5c4a0d2c4429e1d32472ca8c42edb461fd27fbe66dec511cd5", + "block": { + "hash": "64aad22c7e5789fbe9d9ff92f571777aaa932d27d15b59f78397c337dc55b0d6", + "height": 2016 + } + }, + { + "spaces_root": "291d27369690230c45768a7f70ae3f5dac62ae797bebfc76b2eb348fc36efa30", + "nums_root": "cb0f2aafa84b6b5c4a0d2c4429e1d32472ca8c42edb461fd27fbe66dec511cd5", + "block": { + "hash": "21a2ae68c0efd16e576cf3111ea5d959af810a379979f67ec7c0e5da9b176855", + "height": 1980 + } + }, + { + "spaces_root": "291d27369690230c45768a7f70ae3f5dac62ae797bebfc76b2eb348fc36efa30", + "nums_root": "cb0f2aafa84b6b5c4a0d2c4429e1d32472ca8c42edb461fd27fbe66dec511cd5", + "block": { + "hash": "6a8449bc274adaa11209a5384fbbf0e3f1f3009aaa91ada8fb7762ca592db350", + "height": 1944 + } + }, + { + "spaces_root": "291d27369690230c45768a7f70ae3f5dac62ae797bebfc76b2eb348fc36efa30", + "nums_root": "cb0f2aafa84b6b5c4a0d2c4429e1d32472ca8c42edb461fd27fbe66dec511cd5", + "block": { + "hash": "0fd69372f26b3d2cf07b24a02ec55073cbc2a22d979ad96f5de5c45c036d7bcf", + "height": 1908 + } + }, + { + "spaces_root": "a03565bc0d60c545041db71490068550132fcd4eaf2d893fc812a9a8526bf873", + "nums_root": "cb0f2aafa84b6b5c4a0d2c4429e1d32472ca8c42edb461fd27fbe66dec511cd5", + "block": { + "hash": "5d8474a2d022edcb5c8073aa0de31ea088f23f5269fffec9e5751eb6da7bccc5", + "height": 1872 + } + }, + { + "spaces_root": "a03565bc0d60c545041db71490068550132fcd4eaf2d893fc812a9a8526bf873", + "nums_root": "cb0f2aafa84b6b5c4a0d2c4429e1d32472ca8c42edb461fd27fbe66dec511cd5", + "block": { + "hash": "7ab8f4a987ee9998c34b6d18c09907836803bae035661f6200bade270f5e74d7", + "height": 1836 + } + }, + { + "spaces_root": "a03565bc0d60c545041db71490068550132fcd4eaf2d893fc812a9a8526bf873", + "nums_root": "cb0f2aafa84b6b5c4a0d2c4429e1d32472ca8c42edb461fd27fbe66dec511cd5", + "block": { + "hash": "6c3e6bc4b23c1e08da638fb62a496b7832f5f99132de9bd96fa7d35178a115b7", + "height": 1800 + } + }, + { + "spaces_root": "a03565bc0d60c545041db71490068550132fcd4eaf2d893fc812a9a8526bf873", + "nums_root": "cb0f2aafa84b6b5c4a0d2c4429e1d32472ca8c42edb461fd27fbe66dec511cd5", + "block": { + "hash": "1a1afd593f43280ea24f993bd0f3da865e5c0b33e42b5fca212bd10db37d387f", + "height": 1764 + } + }, + { + "spaces_root": "8e731950ca6ce9ff914eb4152a3c6902263de23a1967ce7baa7e7b25598de455", + "nums_root": "cb0f2aafa84b6b5c4a0d2c4429e1d32472ca8c42edb461fd27fbe66dec511cd5", + "block": { + "hash": "77490f03283bed681300e8d06ecdaf57953d9b616cd5c13db3f961457c22cd5c", + "height": 1728 + } + }, + { + "spaces_root": "8e731950ca6ce9ff914eb4152a3c6902263de23a1967ce7baa7e7b25598de455", + "nums_root": "cb0f2aafa84b6b5c4a0d2c4429e1d32472ca8c42edb461fd27fbe66dec511cd5", + "block": { + "hash": "56a3b021ba3d1497177cee314cf6ab6244b79f9bf4b6b04cb665fdee12966895", + "height": 1692 + } + }, + { + "spaces_root": "8e731950ca6ce9ff914eb4152a3c6902263de23a1967ce7baa7e7b25598de455", + "nums_root": "cb0f2aafa84b6b5c4a0d2c4429e1d32472ca8c42edb461fd27fbe66dec511cd5", + "block": { + "hash": "60c3630fe456a381006bc909002f6cb8ff8dae064331feb818194df85714871d", + "height": 1656 + } + }, + { + "spaces_root": "8e731950ca6ce9ff914eb4152a3c6902263de23a1967ce7baa7e7b25598de455", + "nums_root": "cb0f2aafa84b6b5c4a0d2c4429e1d32472ca8c42edb461fd27fbe66dec511cd5", + "block": { + "hash": "1394dda0c4e19721608839cb7372761d8fe4e9160a967bde27d67dc181f7e327", + "height": 1620 + } + }, + { + "spaces_root": "8ab0c6a530a5b43717ecbb48e49506fc7c273a8ddc9a40c141d24aaf64b2f213", + "nums_root": "cb0f2aafa84b6b5c4a0d2c4429e1d32472ca8c42edb461fd27fbe66dec511cd5", + "block": { + "hash": "6560a587e2fe3c9b5bf5fc2c9e4921801f10342893abb57521641eefddc90baa", + "height": 1584 + } + }, + { + "spaces_root": "8ab0c6a530a5b43717ecbb48e49506fc7c273a8ddc9a40c141d24aaf64b2f213", + "nums_root": "cb0f2aafa84b6b5c4a0d2c4429e1d32472ca8c42edb461fd27fbe66dec511cd5", + "block": { + "hash": "18cd7e5f07fa1a1e40162918f33af0cb12ca8ac38750d899678c79ea1b2b90c8", + "height": 1548 + } + }, + { + "spaces_root": "8ab0c6a530a5b43717ecbb48e49506fc7c273a8ddc9a40c141d24aaf64b2f213", + "nums_root": "cb0f2aafa84b6b5c4a0d2c4429e1d32472ca8c42edb461fd27fbe66dec511cd5", + "block": { + "hash": "0a97dbafd3fda8c43c73c7f422f009db587493077758c9f6d2e08f65f840941e", + "height": 1512 + } + }, + { + "spaces_root": "8ab0c6a530a5b43717ecbb48e49506fc7c273a8ddc9a40c141d24aaf64b2f213", + "nums_root": "cb0f2aafa84b6b5c4a0d2c4429e1d32472ca8c42edb461fd27fbe66dec511cd5", + "block": { + "hash": "1864d929929bc874b7fce0b0bed06fea2264e2e38fbc4e60f851691a96e3d7ff", + "height": 1476 + } + }, + { + "spaces_root": "0fd746a69384d3167c1cd0577148ba2b33ef58ba2d2305ab3795f5298256a2dc", + "nums_root": "cb0f2aafa84b6b5c4a0d2c4429e1d32472ca8c42edb461fd27fbe66dec511cd5", + "block": { + "hash": "7e92e249538a3633f399629aa05280fa177c97912cb90afdf4f5eec2f0c93fa4", + "height": 1440 + } + }, + { + "spaces_root": "0fd746a69384d3167c1cd0577148ba2b33ef58ba2d2305ab3795f5298256a2dc", + "nums_root": "cb0f2aafa84b6b5c4a0d2c4429e1d32472ca8c42edb461fd27fbe66dec511cd5", + "block": { + "hash": "4a90e0089823db7701284c5827cb819d963282d380da5005febb4ad18ca8bf60", + "height": 1404 + } + }, + { + "spaces_root": "0fd746a69384d3167c1cd0577148ba2b33ef58ba2d2305ab3795f5298256a2dc", + "nums_root": "cb0f2aafa84b6b5c4a0d2c4429e1d32472ca8c42edb461fd27fbe66dec511cd5", + "block": { + "hash": "1b3134999a9950abae4b9b286cf77eb70e03a5ec42e6b1fef333c167f45c0ae0", + "height": 1368 + } + }, + { + "spaces_root": "0fd746a69384d3167c1cd0577148ba2b33ef58ba2d2305ab3795f5298256a2dc", + "nums_root": "cb0f2aafa84b6b5c4a0d2c4429e1d32472ca8c42edb461fd27fbe66dec511cd5", + "block": { + "hash": "57b612a99c96d825d27bad14d0e717640678e0b656c27b11559ab19cde0ab2f0", + "height": 1332 + } + }, + { + "spaces_root": "732de9ec1e70fb214626e2fc5c16326f77cce5b71ef75d40ebfd235763435420", + "nums_root": "cb0f2aafa84b6b5c4a0d2c4429e1d32472ca8c42edb461fd27fbe66dec511cd5", + "block": { + "hash": "198c39c85dc7a55f9eb28bf0c7f3ab5bca300083acc286c0ddffe8f60f7940f1", + "height": 1296 + } + }, + { + "spaces_root": "732de9ec1e70fb214626e2fc5c16326f77cce5b71ef75d40ebfd235763435420", + "nums_root": "cb0f2aafa84b6b5c4a0d2c4429e1d32472ca8c42edb461fd27fbe66dec511cd5", + "block": { + "hash": "624deb131e22979fc723180a6986e2477382c45c85e5cecdbc4e6507f8b30971", + "height": 1260 + } + }, + { + "spaces_root": "732de9ec1e70fb214626e2fc5c16326f77cce5b71ef75d40ebfd235763435420", + "nums_root": "cb0f2aafa84b6b5c4a0d2c4429e1d32472ca8c42edb461fd27fbe66dec511cd5", + "block": { + "hash": "4254cb57dd8a280d5bdbdca6ba2dd34b2e419f6cfd3af35fbb02b82848985ab4", + "height": 1224 + } + }, + { + "spaces_root": "732de9ec1e70fb214626e2fc5c16326f77cce5b71ef75d40ebfd235763435420", + "nums_root": "cb0f2aafa84b6b5c4a0d2c4429e1d32472ca8c42edb461fd27fbe66dec511cd5", + "block": { + "hash": "387029dd68da4a4c3c1d2d2fd3dd5f111fbdf1cb9dc453879174e8258ada444d", + "height": 1188 + } + }, + { + "spaces_root": "609334b2538e424e07ab129a1f85b47f0d25b29a3b15fee6482de294a6efdf47", + "nums_root": "cb0f2aafa84b6b5c4a0d2c4429e1d32472ca8c42edb461fd27fbe66dec511cd5", + "block": { + "hash": "78a2883b8fa4788b76e7ddaa956acca5720482c842f0dd76d7fd3ef830b05192", + "height": 1152 + } + }, + { + "spaces_root": "609334b2538e424e07ab129a1f85b47f0d25b29a3b15fee6482de294a6efdf47", + "nums_root": "cb0f2aafa84b6b5c4a0d2c4429e1d32472ca8c42edb461fd27fbe66dec511cd5", + "block": { + "hash": "1b36a0e6a908c3a44e85df91f0d1f4e2056dc345816cbdf8fa472a5703099197", + "height": 1116 + } + }, + { + "spaces_root": "609334b2538e424e07ab129a1f85b47f0d25b29a3b15fee6482de294a6efdf47", + "nums_root": "cb0f2aafa84b6b5c4a0d2c4429e1d32472ca8c42edb461fd27fbe66dec511cd5", + "block": { + "hash": "5f97127c35cac09977ab2dcdbb36a50c0a685ceffcb9b520bcff4d94bb1f9862", + "height": 1080 + } + }, + { + "spaces_root": "609334b2538e424e07ab129a1f85b47f0d25b29a3b15fee6482de294a6efdf47", + "nums_root": "cb0f2aafa84b6b5c4a0d2c4429e1d32472ca8c42edb461fd27fbe66dec511cd5", + "block": { + "hash": "0c0b1b6835d8a5d2108e9a69f3276707c79e2bbc1724f9f618824e3fc61991dc", + "height": 1044 + } + }, + { + "spaces_root": "f765bdfd39cc7df653b8241b719405f850ac643e68cf5f2e11ebb2fcd44dfefb", + "nums_root": "cb0f2aafa84b6b5c4a0d2c4429e1d32472ca8c42edb461fd27fbe66dec511cd5", + "block": { + "hash": "118d58e8c1058404152cbd57b63e612b5ec1e75569a9ba238d52121d721c30af", + "height": 1008 + } + }, + { + "spaces_root": "f765bdfd39cc7df653b8241b719405f850ac643e68cf5f2e11ebb2fcd44dfefb", + "nums_root": "cb0f2aafa84b6b5c4a0d2c4429e1d32472ca8c42edb461fd27fbe66dec511cd5", + "block": { + "hash": "4b304d755cbfcab8615ae8da8183517935acb0f09f0bbe91ae28f3a6bc1d93ee", + "height": 972 + } + }, + { + "spaces_root": "f765bdfd39cc7df653b8241b719405f850ac643e68cf5f2e11ebb2fcd44dfefb", + "nums_root": "cb0f2aafa84b6b5c4a0d2c4429e1d32472ca8c42edb461fd27fbe66dec511cd5", + "block": { + "hash": "55ccad5eb273aa76e75ec0ae3ab1af168c829f195ab3413d9c95f66faf8f3dee", + "height": 936 + } + }, + { + "spaces_root": "f765bdfd39cc7df653b8241b719405f850ac643e68cf5f2e11ebb2fcd44dfefb", + "nums_root": "cb0f2aafa84b6b5c4a0d2c4429e1d32472ca8c42edb461fd27fbe66dec511cd5", + "block": { + "hash": "349a1d0e71c3dc56273b4e98a25e989e3512b30d5ebd76a07c6092abeb6759a3", + "height": 900 + } + }, + { + "spaces_root": "3cf3ecafa9d71c021193c2a01a8c7805ca3b44b14ad2ff3945413a1d7bb20d5e", + "nums_root": "cb0f2aafa84b6b5c4a0d2c4429e1d32472ca8c42edb461fd27fbe66dec511cd5", + "block": { + "hash": "2eb66f65e5d2cb92372fc6d0c47e6099a672946cea461c61324db29c29d4fe02", + "height": 864 + } + }, + { + "spaces_root": "3cf3ecafa9d71c021193c2a01a8c7805ca3b44b14ad2ff3945413a1d7bb20d5e", + "nums_root": "cb0f2aafa84b6b5c4a0d2c4429e1d32472ca8c42edb461fd27fbe66dec511cd5", + "block": { + "hash": "4f7b5a4d680ae4d01f20fafe13da1a3d7b6da24461eda265ad46c351e92510d8", + "height": 828 + } + }, + { + "spaces_root": "3cf3ecafa9d71c021193c2a01a8c7805ca3b44b14ad2ff3945413a1d7bb20d5e", + "nums_root": "cb0f2aafa84b6b5c4a0d2c4429e1d32472ca8c42edb461fd27fbe66dec511cd5", + "block": { + "hash": "1c765de4dd6e85e038fa96a1df33ea69da5bfd7443459197ec70825434e1af53", + "height": 792 + } + }, + { + "spaces_root": "3cf3ecafa9d71c021193c2a01a8c7805ca3b44b14ad2ff3945413a1d7bb20d5e", + "nums_root": "cb0f2aafa84b6b5c4a0d2c4429e1d32472ca8c42edb461fd27fbe66dec511cd5", + "block": { + "hash": "1044f50b70bf5ad3abc6d9b1d67b2c8f204561128a8bf1bb1a07aee74703ee69", + "height": 756 + } + }, + { + "spaces_root": "4e0512a45087f6dd1fabc4243715ece86cbeef10f5b3bbddf9d78a4be86146bf", + "nums_root": "cb0f2aafa84b6b5c4a0d2c4429e1d32472ca8c42edb461fd27fbe66dec511cd5", + "block": { + "hash": "78271be707f7b5f4be19c8906b441fb7e3b2aff6752769b5b0cec7c035a45b01", + "height": 720 + } + }, + { + "spaces_root": "4e0512a45087f6dd1fabc4243715ece86cbeef10f5b3bbddf9d78a4be86146bf", + "nums_root": "cb0f2aafa84b6b5c4a0d2c4429e1d32472ca8c42edb461fd27fbe66dec511cd5", + "block": { + "hash": "73cc96fb7d18458b399c58ced431fedaa645f7bb80ef1c6f5c73677133b69929", + "height": 684 + } + }, + { + "spaces_root": "4e0512a45087f6dd1fabc4243715ece86cbeef10f5b3bbddf9d78a4be86146bf", + "nums_root": "cb0f2aafa84b6b5c4a0d2c4429e1d32472ca8c42edb461fd27fbe66dec511cd5", + "block": { + "hash": "427ba226064ac148ae49a917a28ee43f1f6913a044e937a452e867d5619fcef7", + "height": 648 + } + }, + { + "spaces_root": "4e0512a45087f6dd1fabc4243715ece86cbeef10f5b3bbddf9d78a4be86146bf", + "nums_root": "cb0f2aafa84b6b5c4a0d2c4429e1d32472ca8c42edb461fd27fbe66dec511cd5", + "block": { + "hash": "72296b1b3696d0a1c8a41ea2a4c301ba1074a92d06b1140f0ffdc72e1042f1bb", + "height": 612 + } + }, + { + "spaces_root": "ec405d542d126187f7c475ddc91e43c294877a99c2bfa7dd66ef1b5c48554bf9", + "nums_root": "cb0f2aafa84b6b5c4a0d2c4429e1d32472ca8c42edb461fd27fbe66dec511cd5", + "block": { + "hash": "7486764377331210162846e314faced050dd11747036b9b833c416517472558b", + "height": 576 + } + }, + { + "spaces_root": "ec405d542d126187f7c475ddc91e43c294877a99c2bfa7dd66ef1b5c48554bf9", + "nums_root": "cb0f2aafa84b6b5c4a0d2c4429e1d32472ca8c42edb461fd27fbe66dec511cd5", + "block": { + "hash": "2276225ca0cfd27347514b49dc830555f2b7804d0c12195859aa9eaa33f12cd0", + "height": 540 + } + }, + { + "spaces_root": "ec405d542d126187f7c475ddc91e43c294877a99c2bfa7dd66ef1b5c48554bf9", + "nums_root": "cb0f2aafa84b6b5c4a0d2c4429e1d32472ca8c42edb461fd27fbe66dec511cd5", + "block": { + "hash": "476f7eb3151261629fe3f7db0f24d760f70e87140454b47b5c371d768c997457", + "height": 504 + } + }, + { + "spaces_root": "ec405d542d126187f7c475ddc91e43c294877a99c2bfa7dd66ef1b5c48554bf9", + "nums_root": "cb0f2aafa84b6b5c4a0d2c4429e1d32472ca8c42edb461fd27fbe66dec511cd5", + "block": { + "hash": "1d0ae54bb3ec238cd3baa78b9c5c8c362f6f32ea405c5441c14c6ec35ad92f91", + "height": 468 + } + }, + { + "spaces_root": "540beb6148cacf7c74d1e53555266480ab9bc728d4c9dba5e405f5f171ca82a9", + "nums_root": "cb0f2aafa84b6b5c4a0d2c4429e1d32472ca8c42edb461fd27fbe66dec511cd5", + "block": { + "hash": "22a9f5e1feac083a6637ff1b3b808a2e3c5cede1ff843e809f853c0d02804404", + "height": 432 + } + }, + { + "spaces_root": "540beb6148cacf7c74d1e53555266480ab9bc728d4c9dba5e405f5f171ca82a9", + "nums_root": "cb0f2aafa84b6b5c4a0d2c4429e1d32472ca8c42edb461fd27fbe66dec511cd5", + "block": { + "hash": "1f539f199d529dc77973c92a57682de617e8adec1d3119d067e7a9631e4c79f0", + "height": 396 + } + }, + { + "spaces_root": "540beb6148cacf7c74d1e53555266480ab9bc728d4c9dba5e405f5f171ca82a9", + "nums_root": "cb0f2aafa84b6b5c4a0d2c4429e1d32472ca8c42edb461fd27fbe66dec511cd5", + "block": { + "hash": "013d3716da09160dba56075db9bb05b95f3abfcab31bc7b8e1dab2707b0d16a8", + "height": 360 + } + }, + { + "spaces_root": "540beb6148cacf7c74d1e53555266480ab9bc728d4c9dba5e405f5f171ca82a9", + "nums_root": "cb0f2aafa84b6b5c4a0d2c4429e1d32472ca8c42edb461fd27fbe66dec511cd5", + "block": { + "hash": "7ffc641ea24e8f89944cade9611fea800a5a480598b708a603dd6a386104d0fc", + "height": 324 + } + }, + { + "spaces_root": "21b17ee3595b1b38533be3d151bcb562bb2732e8d45603289aad6f68763dfdac", + "nums_root": "cb0f2aafa84b6b5c4a0d2c4429e1d32472ca8c42edb461fd27fbe66dec511cd5", + "block": { + "hash": "4fea71866dc4ef3ea3f20c251b0a2c012849f9fd71ade961fa5719fdd7deb5e3", + "height": 288 + } + }, + { + "spaces_root": "21b17ee3595b1b38533be3d151bcb562bb2732e8d45603289aad6f68763dfdac", + "nums_root": "cb0f2aafa84b6b5c4a0d2c4429e1d32472ca8c42edb461fd27fbe66dec511cd5", + "block": { + "hash": "0481465dbd6334e3f62a76a752b878069cd181ecd56fdc9fe082069c439dab77", + "height": 252 + } + }, + { + "spaces_root": "21b17ee3595b1b38533be3d151bcb562bb2732e8d45603289aad6f68763dfdac", + "nums_root": "cb0f2aafa84b6b5c4a0d2c4429e1d32472ca8c42edb461fd27fbe66dec511cd5", + "block": { + "hash": "5eba7dad585d114476b6506f4afbe7ad29200226857cac1aa610df1e5af437dd", + "height": 216 + } + }, + { + "spaces_root": "d035cc47e4a53b962ae77cf238fcfde334ee5546bf4968f1e22ee235d209f212", + "nums_root": "891e57acef62be2017a71d094b6275b97778620f18afc3edc944b8638ade33cb", + "block": { + "hash": "0b8089d54167dd5705ec9ba92cebaa118437907b269eedd158b91c4a4dbe2423", + "height": 180 + } + }, + { + "spaces_root": "2400b44fe1df3642a824b003014df5f5d7924e66d5023cbe11dd2a9a66c2096e", + "nums_root": "5eb97dfa2295313cd7d8fe47e65a7eaf363fef2c50d3dba34e09fa522f27056a", + "block": { + "hash": "07b5052df65a4cd88f484c8cdb1540f1dae8bf983ded953d9513f36cfef37f0d", + "height": 144 + } + }, + { + "spaces_root": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "nums_root": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "block": { + "hash": "09a5a2b9072983f20e166ee7d70d4151b1d26a2013a6d6c8e09ca4e67618504b", + "height": 108 + } + }, + { + "spaces_root": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "nums_root": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "block": { + "hash": "4450aee641352e28c688f48dc88863c98591469d0611dba3341e3093c41344be", + "height": 72 + } + }, + { + "spaces_root": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "nums_root": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "block": { + "hash": "2f48d066ba0efa7f9399d3349da9f56cda3dfef40e0844ba77793bcd84ff3c60", + "height": 36 + } + } +] \ No newline at end of file diff --git a/examples/fixture/message-real.bin b/examples/fixture/message-real.bin new file mode 100644 index 0000000..f016c08 Binary files /dev/null and b/examples/fixture/message-real.bin differ diff --git a/veritas/src/lib.rs b/veritas/src/lib.rs index 45a040e..9cd97b3 100644 --- a/veritas/src/lib.rs +++ b/veritas/src/lib.rs @@ -39,6 +39,7 @@ use spaces_protocol::sname::SName; use std::collections::HashSet; use std::fmt; use std::io::{Read, Write}; +use std::sync::OnceLock; pub mod builder; pub mod cert; @@ -429,6 +430,16 @@ pub fn compute_trust_set(anchors: &[RootAnchor]) -> TrustSet { } } +/// Cached verify-only secp256k1 context. +/// +/// Creating a `Secp256k1` context allocates and pre-computes lookup tables; +/// reuse this for bulk verification rather than calling +/// `verification_only()` per-signature. +pub(crate) fn secp256k1_verify_ctx() -> &'static secp256k1::Secp256k1 { + static CTX: OnceLock> = OnceLock::new(); + CTX.get_or_init(secp256k1::Secp256k1::verification_only) +} + pub fn hash_signable_message(msg: &[u8]) -> secp256k1::Message { let mut engine = sha256::Hash::engine(); engine.input(SPACES_SIGNED_MSG_PREFIX); @@ -451,7 +462,7 @@ pub fn verify_spaces_message( let sig = secp256k1::schnorr::Signature::from_slice(signature) .map_err(|_| SignatureError::InvalidSignature)?; let hashed = hash_signable_message(msg); - secp256k1::Secp256k1::verification_only() + secp256k1_verify_ctx() .verify_schnorr(&sig, &hashed, &xonly) .map_err(|_| SignatureError::VerificationFailed) } @@ -470,7 +481,7 @@ pub fn verify_schnorr( let sig = secp256k1::schnorr::Signature::from_slice(signature) .map_err(|_| SignatureError::InvalidSignature)?; let msg = secp256k1::Message::from_digest(*msg_hash); - secp256k1::Secp256k1::verification_only() + secp256k1_verify_ctx() .verify_schnorr(&sig, &msg, &xonly) .map_err(|_| SignatureError::VerificationFailed) } @@ -531,7 +542,7 @@ impl Zone { let sig = secp256k1::schnorr::Signature::from_slice(&signature.0) .map_err(|_| SignatureError::InvalidSignature)?; - secp256k1::Secp256k1::verification_only() + secp256k1_verify_ctx() .verify_schnorr(&sig, &msg, &pubkey) .map_err(|_| SignatureError::VerificationFailed) } diff --git a/veritas/src/msg.rs b/veritas/src/msg.rs index f312aa5..57ab28b 100644 --- a/veritas/src/msg.rs +++ b/veritas/src/msg.rs @@ -321,7 +321,7 @@ pub fn verify_records( let msg = crate::hash_signable_message(signable.bytes); let sig = secp256k1::schnorr::Signature::from_slice(&sig_data.sig) .map_err(|_| crate::SignatureError::InvalidSignature)?; - secp256k1::Secp256k1::verification_only() + crate::secp256k1_verify_ctx() .verify_schnorr(&sig, &msg, &pubkey) .map_err(|_| crate::SignatureError::VerificationFailed) }