Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion src/proof.rs
Original file line number Diff line number Diff line change
Expand Up @@ -101,7 +101,7 @@ mod tests {

// A real proof, the same one the HTTP service used as its test fixture.
const PROOF_PSBT: &str = include_str!("../web/example/proof.psbt.base64");
const MESSAGE: &str = "Stored in SEBA Bank AG cold storage";
const MESSAGE: &str = "Stored in AMINA Bank AG cold storage";
const ADDRESS: &str = "2Mtkk3kjyN8hgdGXPuJCNnwS3BBY4K2frhY";

#[test]
Expand Down
12 changes: 6 additions & 6 deletions tests/e2e.cjs
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ const ADDRESS = example.addresses[0]
const MESSAGE = example.message
const PSBT = fs.readFileSync(path.join(EXAMPLE, example.proof_psbt), 'utf8').trim()
const TIP = 2000000
const EXPECTED_SATS = 53865580
const EXPECTED_SATS = 922739
const DEPTH_BELOW_TIP = 100
// The including block is the first confirmation, hence the +1.
const DEPTH = DEPTH_BELOW_TIP + 1
Expand Down Expand Up @@ -115,7 +115,7 @@ server.listen(0, '127.0.0.1', async () => {
check('the network is detected', proof.network === 'testnet', proof.network)
check('the chain tip is reported', proof.tip_height === TIP, String(proof.tip_height))
check('every outpoint is counted', proof.utxos === outpoints.length, String(proof.utxos))
check('transaction fetches are deduped', served.tx === 12, `${served.tx} requests for 18 utxos`)
check('transaction fetches are deduped', served.tx === 16, `${served.tx} requests for 18 utxos`)

await rejects('a proof is bound to its message', { message: 'another message' }, 'ChallengeInputMismatch')

Expand Down Expand Up @@ -143,11 +143,11 @@ server.listen(0, '127.0.0.1', async () => {

// The amounts come from the transactions rather than the UTXO listing, so a
// server that swaps one in must be caught rather than believed.
const [first, second] = Object.keys(transactions)
const original = transactions[first]
transactions[first] = transactions[second]
const [first, second, third] = Object.keys(transactions)
const original = transactions[second]
transactions[second] = transactions[third]
await rejects('a substituted transaction is caught', {}, 'txid is')
transactions[first] = original
transactions[second] = original

const again = await verify()
check('a repeat run is stable', again.spendable === proof.spendable, `${again.spendable} sats`)
Expand Down
37 changes: 19 additions & 18 deletions tests/fixtures/outpoints.txt
Original file line number Diff line number Diff line change
@@ -1,18 +1,19 @@
c510fd107826af20ef7981bedf37f684b39a96d3787bc4ce376143d65e596415 0
2afc04742e639fb679bfa210fe0c89464ebb47e0663e336c69817d48e9586a17 0
d979c1072803a92cff5e36c25a45b92dfe0fa086178815ba08d84791a6b5aa2b 0
d979c1072803a92cff5e36c25a45b92dfe0fa086178815ba08d84791a6b5aa2b 1
247b272f041fd14357c668fa9eb422e91a8b5edb3d16f12c6f93ad8ffc47e62b 0
7d252165dbd5b147f47b0cf2ddba80179e8ff7f3f2fdfbbf85b505a4980aec72 0
7d252165dbd5b147f47b0cf2ddba80179e8ff7f3f2fdfbbf85b505a4980aec72 1
953a78a6773d83e0539d5e4c0d108d8a2af1321c2bc6295e7d4e4b00adbea08c 0
953a78a6773d83e0539d5e4c0d108d8a2af1321c2bc6295e7d4e4b00adbea08c 1
cc7173bed4defad6a6304d76f54f67049875ce639f90a5c1d42dae3d8262c4b7 0
cc7173bed4defad6a6304d76f54f67049875ce639f90a5c1d42dae3d8262c4b7 1
9d5ce4c39fe62f7567737d0c50fa7a0561c4b298f93ab38d06a609a41a8d22c3 0
9d5ce4c39fe62f7567737d0c50fa7a0561c4b298f93ab38d06a609a41a8d22c3 1
6e6697fcfc78641e960803dfdf8d444b5371307d25216827fb1eff337c8a67d1 0
6bcd3c35a063f9a45075916cbbb0454523127098e8b0aa41dda005a9290e05d4 1
008883eada2a57f80a18b4fd77205a144e92677e603db69ee76a2358fe86c2ec 0
008883eada2a57f80a18b4fd77205a144e92677e603db69ee76a2358fe86c2ec 1
e9170ceec57cefd0a9eba18d92720f152c162eb0353988b63e1412c4852399f2 0
78f37f805edc9b215316ea5bee051bbd3508046f4009d907be63eb4ee9bff51a 0
78f37f805edc9b215316ea5bee051bbd3508046f4009d907be63eb4ee9bff51a 1
3f7c1dba08cb1ed09bd224da5779926d8ec913d08f385fd4c91b87805fca0e1c 0
14d29c7efb6ca2d8221cfe08484c9880159059676cc6ff4664bd10a020be632b 0
5adc8237c8cef31797e077d4e0e0706e7a104eb0349fc848955b5f5e9a92532e 0
c4fe6a4929aa9da74fe9d4e82eb00a3e78fa25ea95ecdf91b8b8f2de915dfa33 0
e826d8f11844e3f0c77ba1758db3966fa9d7f08f80503efc5b96de29ac67c43a 0
5d0664fa54dffb76b19f810903a9d89b0bc0131ade350abceb6a65420f05bf55 0
c6dfef20fa8a17e72bbb9320b1f53489119b3ff5b4ce3b2ec29e563bd9722c5d 0
c6dfef20fa8a17e72bbb9320b1f53489119b3ff5b4ce3b2ec29e563bd9722c5d 1
3e7d04171642eac53d63c1a7c76d0896258cc3c1234fddb15aa1307ec9674366 0
1ba760dcc495f78e25a443c8adf087f0b6d8fbc0af96c0213b274bbcce6f747b 0
9407df1788f117c6b03bf0715b72592acbd61cd682f9eca5a2d9802dde62bdaf 0
2d52ae95ffcb32d4d399db5effa50baa9c9bef1cdfb4601e31c1ab9fbaeea5c1 0
1c9a9dc708522cd176c44eed1b675b153fe8dc6b38b36405c232de9fbabb33c9 1
68aeeb6a3364944c0bc2402e2d9c09214e5506855652a2e84bc39b8d0161d5d8 1
9366845c9abceac23d6a9d91fa86c54cad98acabcd693009a2905adbc640c3da 0
19bcbbc49df916054153b67de1b289effc8cf705f443947952c70d4c2b0334f1 0
19bcbbc49df916054153b67de1b289effc8cf705f443947952c70d4c2b0334f1 1
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
02000000000104a39098227bb1c7ff4bcb4fb5090bde9791c3ad5cedd99d454ffc11092a4c5b1000000000232200207410e2a9cc7b5742ed1a00ebf02a386e778daade1da0b415baaeeaf0402f4f0dfdfffffff268efedb15e4b84531cd7d0b04f143c32bc2c5f536ed22720d58f37f740f4df00000000232200207410e2a9cc7b5742ed1a00ebf02a386e778daade1da0b415baaeeaf0402f4f0dfdffffffd1c1aa872029ac84c853612150b386e59441eec9d386071553c1a4826d6ea8b300000000232200207410e2a9cc7b5742ed1a00ebf02a386e778daade1da0b415baaeeaf0402f4f0dfdffffffcfa6d11da7b638eceb6df61fbb47745171b8fd4b73204c34c0ba12e0b675294201000000232200207410e2a9cc7b5742ed1a00ebf02a386e778daade1da0b415baaeeaf0402f4f0dfdffffff02a08601000000000017a914108d4807e968d5162ec9ce2ca08ba8ee04025e1487e57100000000000017a914108d4807e968d5162ec9ce2ca08ba8ee04025e14870500483045022100ab29854553772ed113e84b56c78c3d5927948bc20527327b580099dd334c40ce02205896cb403800e32255224176d7807ce71b5f16d0fff45f7fe518c23e6df6ab810147304402205539216a2bd93a6c7e6228e4c8d08ac095b0c18bd134f53f06cdfa62a4663ab102205413c11dc86af7701dad76043ee5c8d742e4b5bbf0305481aa7a197ab1ea478201483045022100cc54d382d40e66de5851357cbad9fc456ed62a35840d58f4ad17feec643eb3450220233cd5083203592bbaa7f402f5f3140da7617aa8b2317372dd9b14170c594dfe01f15321022f533b667e2ea3b36e21961c9fe9dca340fbe0af5210173a83ae0337ab20a57621026bb53a98e810bd0ee61a0ed1164ba6c024786d76554e793e202dc6ce9c78c4ea2102d5b8a7d66a41ffdb6f4c53d61994022e886b4f45001fb158b95c9164d45f8ca3210324b75eead2c1f9c60e8adeb5e7009fec7a29afcdb30d829d82d09562fe8bae8521032d34f8932200833487bd294aa219dcbe000b9f9b3d824799541430009f0fa55121037468f8ea99b6c64788398b5ad25480cad08f4b0d65be54ce3a55fd206b5ae4722103f72d3d96663b0ea99b0aeb0d7f273cab11a8de37885f1dddc8d9112adb87169357ae0500483045022100f5d8e1f8ae90e2a47f193f117bb72dbb4897df505d7007f915ed7d9723433a2602207e6e9abc4fcdd49d79f13e557c2099c245db13ad8994b92f3fcc56e2ec2560fd0147304402205fc84606c9ac68dc08e163c8f5804b0ad0de40c2af751eb507b86706398bfd1602200f26170fc0fb470f9d7c2c1323608a95f9612584268e4acf7dfbfa9cad7df22e01473044022022cd802e270e066e6c4881c95083a3e911c7565e7c94ca999854db41688d94300220091142434bbf51ce5c83c00bd3d8df53808d88fd2182ade0bac48bff79b2042f01f15321022f533b667e2ea3b36e21961c9fe9dca340fbe0af5210173a83ae0337ab20a57621026bb53a98e810bd0ee61a0ed1164ba6c024786d76554e793e202dc6ce9c78c4ea2102d5b8a7d66a41ffdb6f4c53d61994022e886b4f45001fb158b95c9164d45f8ca3210324b75eead2c1f9c60e8adeb5e7009fec7a29afcdb30d829d82d09562fe8bae8521032d34f8932200833487bd294aa219dcbe000b9f9b3d824799541430009f0fa55121037468f8ea99b6c64788398b5ad25480cad08f4b0d65be54ce3a55fd206b5ae4722103f72d3d96663b0ea99b0aeb0d7f273cab11a8de37885f1dddc8d9112adb87169357ae05004730440220248c03f8db0fa6ff398d4252976d817261e7172b0146e2025fd1c499147e22860220411e895ae6872d3cf2a0d9a69518b0997136d9d500a28d5480e6bf57f29d94540147304402205bc407c170675eb7388e446836ff0cc941ef78fcf34692e53abc617889b3dbfa022049d275ce94fc71dec5f7edcebedb23e6a86ae105243201c98490387f142c85f60147304402201661eff141608dac2babe8e3e26dd4aaaf97cda90833a4d958a01f7dc396b08102207645cd136aa853dc5b693c80ce29e7d1196b0e00a4bff1041b446fbbe5ec1a6701f15321022f533b667e2ea3b36e21961c9fe9dca340fbe0af5210173a83ae0337ab20a57621026bb53a98e810bd0ee61a0ed1164ba6c024786d76554e793e202dc6ce9c78c4ea2102d5b8a7d66a41ffdb6f4c53d61994022e886b4f45001fb158b95c9164d45f8ca3210324b75eead2c1f9c60e8adeb5e7009fec7a29afcdb30d829d82d09562fe8bae8521032d34f8932200833487bd294aa219dcbe000b9f9b3d824799541430009f0fa55121037468f8ea99b6c64788398b5ad25480cad08f4b0d65be54ce3a55fd206b5ae4722103f72d3d96663b0ea99b0aeb0d7f273cab11a8de37885f1dddc8d9112adb87169357ae050047304402204a296b02d21e5ee662914917a1b0c077684c77ab971eb2d6682c634849d7761c022027ed725c5653bf09db76a4ca4562a8a3572cf8767c04f7d7e3c441d044cef59101473044022009378e5a746be07fdbcd2295ea66aeff1366ee7c9ee6e1f85ca87c6718763e57022039418fa715f87df952e26881dd9c61e5551331dfdf079eda43d665f0c10cdb5801483045022100c550a27434f9a1cd4bde73ad499f92bf9e90f1dca2e26d0a5dae13875326ceb1022043d532d60a4839dced008413d8cad1d2e0a26f5b2e89b7ce5bb40d316b34976f01f15321022f533b667e2ea3b36e21961c9fe9dca340fbe0af5210173a83ae0337ab20a57621026bb53a98e810bd0ee61a0ed1164ba6c024786d76554e793e202dc6ce9c78c4ea2102d5b8a7d66a41ffdb6f4c53d61994022e886b4f45001fb158b95c9164d45f8ca3210324b75eead2c1f9c60e8adeb5e7009fec7a29afcdb30d829d82d09562fe8bae8521032d34f8932200833487bd294aa219dcbe000b9f9b3d824799541430009f0fa55121037468f8ea99b6c64788398b5ad25480cad08f4b0d65be54ce3a55fd206b5ae4722103f72d3d96663b0ea99b0aeb0d7f273cab11a8de37885f1dddc8d9112adb87169357ae1db64a00
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
02000000000102db06535bf6e94b55f85e31333cf7b5590ef718ef4a0296c42265b3aed2c4b76b01000000232200207410e2a9cc7b5742ed1a00ebf02a386e778daade1da0b415baaeeaf0402f4f0dfdffffff7eae08de756f76e6dd7aca5e5c5d3762423bef47174b1959812ef7f62f46107900000000232200207410e2a9cc7b5742ed1a00ebf02a386e778daade1da0b415baaeeaf0402f4f0dfdffffff02452500000000000017a914108d4807e968d5162ec9ce2ca08ba8ee04025e1487102700000000000017a914108d4807e968d5162ec9ce2ca08ba8ee04025e14870500483045022100b1f3c99e42737d12556f5244ef4ff6004c4c4a66ab8aee11557a7d0c96327b4702207256cfca987275e421c03ec1930a5f5072772243e352a25205906ab96bf426fe01473044022036d9cc2ccf80d62186aa70794ab9589d8a19422822f005e1e4aafaccc0316dbf02205c604af58a9fe1dcf8d6c66dd2158a229ac5a88ed265d0f8a34979c4818961ee01483045022100bbc68f2fe5bde7653e12aba791f2b8132089953c36dec85ed7c73e30e0c7b82902204b6b870d9926158f47767853e04e98f46296c71cddbc68ea93c6062b9f02a3a401f15321022f533b667e2ea3b36e21961c9fe9dca340fbe0af5210173a83ae0337ab20a57621026bb53a98e810bd0ee61a0ed1164ba6c024786d76554e793e202dc6ce9c78c4ea2102d5b8a7d66a41ffdb6f4c53d61994022e886b4f45001fb158b95c9164d45f8ca3210324b75eead2c1f9c60e8adeb5e7009fec7a29afcdb30d829d82d09562fe8bae8521032d34f8932200833487bd294aa219dcbe000b9f9b3d824799541430009f0fa55121037468f8ea99b6c64788398b5ad25480cad08f4b0d65be54ce3a55fd206b5ae4722103f72d3d96663b0ea99b0aeb0d7f273cab11a8de37885f1dddc8d9112adb87169357ae0500473044022078e09945c29f2093d94d7251e6efa7bd2a750246dbb989bf7a121e244531e3fd02202256823578d6c0b31ab15703cce419ca3970d8908af592c60578f8cda593977d0147304402206ff0846547847a5e1e17a94be54c5754604b8698082756344c875a36abb92ef302205316329b37d277dae9340ccbc7e71accd2f904161c14a95120370e850947604e01483045022100bcf859d8f46276cd8f1d029ffc67e3ab196135f8a55e2ba3a46c9564bf30cdc00220771470a88c9977eacc41af2fa69fabbbb420fc3fb75a0fb59da798a49eb8dd6701f15321022f533b667e2ea3b36e21961c9fe9dca340fbe0af5210173a83ae0337ab20a57621026bb53a98e810bd0ee61a0ed1164ba6c024786d76554e793e202dc6ce9c78c4ea2102d5b8a7d66a41ffdb6f4c53d61994022e886b4f45001fb158b95c9164d45f8ca3210324b75eead2c1f9c60e8adeb5e7009fec7a29afcdb30d829d82d09562fe8bae8521032d34f8932200833487bd294aa219dcbe000b9f9b3d824799541430009f0fa55121037468f8ea99b6c64788398b5ad25480cad08f4b0d65be54ce3a55fd206b5ae4722103f72d3d96663b0ea99b0aeb0d7f273cab11a8de37885f1dddc8d9112adb87169357ae28b94a00
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
01000000000101b7c462823dae2dd4c1a5909f63ce759804674ff5764d30a6d6faded4be7371cc00000000232200207410e2a9cc7b5742ed1a00ebf02a386e778daade1da0b415baaeeaf0402f4f0dfdffffff02869a02000000000017a914108d4807e968d5162ec9ce2ca08ba8ee04025e1487409c00000000000022002030493eedfe32c064b79a97e1fd291e35fa574cd6b63a5d5d0da3b02420e7db24050047304402205a64be5e8e40f45bcdcf5005b2281106852912c66ad3bfa7a4fe32fa8450733402201e81a58c64bd4013bdd74f3c2530af37befcbad8c5f878fef0e1c670508efb550147304402207937e147eba42ceb10447c2011656bea4df953ba055ab1841b1358f2e31e73bb022060f29ab1ded8635f67273db15da10e628ee157d1b3dbc478d4912a4fbf3fad60014730440220398fcb33a32288ce811f47dc3879128223b9a0b21191c378ca2db380ff833ab9022006239079aa4d9760dba6718dd1b13c5c60ccd5cd0d5c67b7104c40cf152595ad01f15321022f533b667e2ea3b36e21961c9fe9dca340fbe0af5210173a83ae0337ab20a57621026bb53a98e810bd0ee61a0ed1164ba6c024786d76554e793e202dc6ce9c78c4ea2102d5b8a7d66a41ffdb6f4c53d61994022e886b4f45001fb158b95c9164d45f8ca3210324b75eead2c1f9c60e8adeb5e7009fec7a29afcdb30d829d82d09562fe8bae8521032d34f8932200833487bd294aa219dcbe000b9f9b3d824799541430009f0fa55121037468f8ea99b6c64788398b5ad25480cad08f4b0d65be54ce3a55fd206b5ae4722103f72d3d96663b0ea99b0aeb0d7f273cab11a8de37885f1dddc8d9112adb87169357aea3ba3000
Loading
Loading