Page Menu
Home
Phabricator
Search
Configure Global Search
Log In
Files
F13711169
D13134.id37989.diff
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Award Token
Flag For Later
Size
46 KB
Subscribers
None
D13134.id37989.diff
View Options
diff --git a/web/cashtab/src/utils/__mocks__/chronikTxHistory.js b/web/cashtab/src/utils/__mocks__/chronikTxHistory.js
--- a/web/cashtab/src/utils/__mocks__/chronikTxHistory.js
+++ b/web/cashtab/src/utils/__mocks__/chronikTxHistory.js
@@ -1,3 +1,981 @@
+export const mockFilteredSortedAliasTxHistoryWithDuplicateTxs = [
+ {
+ txid: '03bc75198ecd0491faed1cd03e14c97bd9ec205f4ecf0f6b239a538f5f0d8479',
+ version: 2,
+ inputs: [
+ {
+ prevOut: {
+ txid: '1cc67f99c0da539449a9bb9f2ded3340d8de169115e8484562c8492159ad59d6',
+ outIdx: 1,
+ },
+ inputScript:
+ '483045022100ad8dc3a6eaefbcdcceca15474c826e7454759f3f55c12af30e8b4ccdd66fe13f02204bbd62e3865499366f22063c34b471148679f82a88f3d4b66bd1395eccf2997941210260dbd59a80d14b548c68772328fa7afc8f2ea25f6c2a9cce13f9cba77199e0de',
+ outputScript:
+ '76a914f627e51001a51a1a92d8927808701373cf29267f88ac',
+ value: '550',
+ sequenceNo: 4294967295,
+ },
+ {
+ prevOut: {
+ txid: 'd826198de42c449731961fd4ba81b3d8b36a49ab85cd6bb846adf9bd8f460a90',
+ outIdx: 2,
+ },
+ inputScript:
+ '4830450221009a585d7a20e87f0b7a123c3674fabd6fd2907d50b6a0adfef705a62466b5737502202b540834f20b70c26f56df096044780254b14d5b4c7ed44e3e172c934a3b38d041210260dbd59a80d14b548c68772328fa7afc8f2ea25f6c2a9cce13f9cba77199e0de',
+ outputScript:
+ '76a914f627e51001a51a1a92d8927808701373cf29267f88ac',
+ value: '78689',
+ sequenceNo: 4294967295,
+ },
+ ],
+ outputs: [
+ {
+ value: '0',
+ outputScript: '6a040074616205657468616e',
+ },
+ {
+ value: '55400',
+ outputScript:
+ '76a914638568e36d0b5d7d49a6e99854caa27d9772b09388ac',
+ spentBy: {
+ txid: 'fd4ce09c3d527922870b5b22ee844edd0d3aadfcc86fac189afdf266fc9fa757',
+ outIdx: 0,
+ },
+ },
+ {
+ value: '23087',
+ outputScript:
+ '76a914f627e51001a51a1a92d8927808701373cf29267f88ac',
+ spentBy: {
+ txid: '363de571114fca54a7a7ef6fba7338f0d55ebe364d90c1fca44594f9e48c7b95',
+ outIdx: 1,
+ },
+ },
+ ],
+ lockTime: 0,
+ block: {
+ height: 770450,
+ hash: '00000000000000000fe787306e26f0f28f7d1b46c4888890fc84537dde647f1c',
+ timestamp: '1671107720',
+ },
+ timeFirstSeen: '1671107230',
+ size: 395,
+ isCoinbase: false,
+ network: 'XEC',
+ },
+ {
+ txid: '363de571114fca54a7a7ef6fba7338f0d55ebe364d90c1fca44594f9e48c7b95',
+ version: 2,
+ inputs: [
+ {
+ prevOut: {
+ txid: 'fe9ae60ad1d947dfe041499b8f56b902779374fb2fb6662f91d5683c4c3ddb8b',
+ outIdx: 1,
+ },
+ inputScript:
+ '483045022100fad2532abe7c1e2b57ebdbee0a43c4176f6f3389c27b178cb6b27a89fc607a2b02200276ab355eb99f0a6943e4551b2010ddf97b2afe25774b061140d62cd38b42d041210260dbd59a80d14b548c68772328fa7afc8f2ea25f6c2a9cce13f9cba77199e0de',
+ outputScript:
+ '76a914f627e51001a51a1a92d8927808701373cf29267f88ac',
+ value: '550',
+ sequenceNo: 4294967295,
+ },
+ {
+ prevOut: {
+ txid: '03bc75198ecd0491faed1cd03e14c97bd9ec205f4ecf0f6b239a538f5f0d8479',
+ outIdx: 2,
+ },
+ inputScript:
+ '483045022100a245067515681caacf1d6da90a8cc4964f0e6282e32325149a6ae7e5c6ae70ed02204bb213450b3f7bbf0a38ba045936157481261e8709c464f092e925ac4a1ee33f41210260dbd59a80d14b548c68772328fa7afc8f2ea25f6c2a9cce13f9cba77199e0de',
+ outputScript:
+ '76a914f627e51001a51a1a92d8927808701373cf29267f88ac',
+ value: '23087',
+ sequenceNo: 4294967295,
+ },
+ ],
+ outputs: [
+ {
+ value: '0',
+ outputScript: '6a0400746162042e786563036e6673',
+ },
+ {
+ value: '556',
+ outputScript:
+ '76a914638568e36d0b5d7d49a6e99854caa27d9772b09388ac',
+ },
+ {
+ value: '22329',
+ outputScript:
+ '76a914f627e51001a51a1a92d8927808701373cf29267f88ac',
+ spentBy: {
+ txid: '4a0ac372d9edfbc88c908a1f477b2414461fbe2ec729d19710b0a6871ab95dba',
+ outIdx: 0,
+ },
+ },
+ ],
+ lockTime: 0,
+ block: {
+ height: 100000000,
+ },
+ size: 398,
+ isCoinbase: false,
+ network: 'XEC',
+ },
+];
+
+export const mockUnfilteredSortedAliasTxHistoryWithDuplicateTxs = [
+ {
+ txid: '03bc75198ecd0491faed1cd03e14c97bd9ec205f4ecf0f6b239a538f5f0d8479',
+ version: 2,
+ inputs: [
+ {
+ prevOut: {
+ txid: '1cc67f99c0da539449a9bb9f2ded3340d8de169115e8484562c8492159ad59d6',
+ outIdx: 1,
+ },
+ inputScript:
+ '483045022100ad8dc3a6eaefbcdcceca15474c826e7454759f3f55c12af30e8b4ccdd66fe13f02204bbd62e3865499366f22063c34b471148679f82a88f3d4b66bd1395eccf2997941210260dbd59a80d14b548c68772328fa7afc8f2ea25f6c2a9cce13f9cba77199e0de',
+ outputScript:
+ '76a914f627e51001a51a1a92d8927808701373cf29267f88ac',
+ value: '550',
+ sequenceNo: 4294967295,
+ },
+ {
+ prevOut: {
+ txid: 'd826198de42c449731961fd4ba81b3d8b36a49ab85cd6bb846adf9bd8f460a90',
+ outIdx: 2,
+ },
+ inputScript:
+ '4830450221009a585d7a20e87f0b7a123c3674fabd6fd2907d50b6a0adfef705a62466b5737502202b540834f20b70c26f56df096044780254b14d5b4c7ed44e3e172c934a3b38d041210260dbd59a80d14b548c68772328fa7afc8f2ea25f6c2a9cce13f9cba77199e0de',
+ outputScript:
+ '76a914f627e51001a51a1a92d8927808701373cf29267f88ac',
+ value: '78689',
+ sequenceNo: 4294967295,
+ },
+ ],
+ outputs: [
+ {
+ value: '0',
+ outputScript: '6a040074616205657468616e',
+ },
+ {
+ value: '55400',
+ outputScript:
+ '76a914638568e36d0b5d7d49a6e99854caa27d9772b09388ac',
+ spentBy: {
+ txid: 'fd4ce09c3d527922870b5b22ee844edd0d3aadfcc86fac189afdf266fc9fa757',
+ outIdx: 0,
+ },
+ },
+ {
+ value: '23087',
+ outputScript:
+ '76a914f627e51001a51a1a92d8927808701373cf29267f88ac',
+ spentBy: {
+ txid: '363de571114fca54a7a7ef6fba7338f0d55ebe364d90c1fca44594f9e48c7b95',
+ outIdx: 1,
+ },
+ },
+ ],
+ lockTime: 0,
+ block: {
+ height: 770450,
+ hash: '00000000000000000fe787306e26f0f28f7d1b46c4888890fc84537dde647f1c',
+ timestamp: '1671107720',
+ },
+ timeFirstSeen: '1671107230',
+ size: 395,
+ isCoinbase: false,
+ network: 'XEC',
+ },
+ {
+ txid: '4a0ac372d9edfbc88c908a1f477b2414461fbe2ec729d19710b0a6871ab95dba',
+ version: 2,
+ inputs: [
+ {
+ prevOut: {
+ txid: '363de571114fca54a7a7ef6fba7338f0d55ebe364d90c1fca44594f9e48c7b95',
+ outIdx: 2,
+ },
+ inputScript:
+ '483045022100c1dce1385c8185c5a058b3679966a1b68f7f8e0c74ac3c03c11870e8dfe4ce3d022016f3574a846b12ffc440528263a0139d170527dd2efdb46ae643dd30b3da969741210260dbd59a80d14b548c68772328fa7afc8f2ea25f6c2a9cce13f9cba77199e0de',
+ outputScript:
+ '76a914f627e51001a51a1a92d8927808701373cf29267f88ac',
+ value: '22329',
+ sequenceNo: 4294967295,
+ },
+ ],
+ outputs: [
+ {
+ value: '0',
+ outputScript: '6a040074616205657468616e',
+ },
+ {
+ value: '556',
+ outputScript:
+ '76a914638568e36d0b5d7d49a6e99854caa27d9772b09388ac',
+ },
+ {
+ value: '21318',
+ outputScript:
+ '76a914f627e51001a51a1a92d8927808701373cf29267f88ac',
+ spentBy: {
+ txid: '051e293de9b61292ae46ed9570fc2d05f169a0372a7bbf7069d3c86afa5f0781',
+ outIdx: 0,
+ },
+ },
+ ],
+ lockTime: 0,
+ block: {
+ height: 770450,
+ hash: '0000000000000000110940de16f07da16b7a5441694d2a5ace3e8faa7e04fc4e',
+ timestamp: '1671109291',
+ },
+ timeFirstSeen: '1671108616',
+ size: 250,
+ isCoinbase: false,
+ network: 'XEC',
+ },
+ {
+ txid: '363de571114fca54a7a7ef6fba7338f0d55ebe364d90c1fca44594f9e48c7b95',
+ version: 2,
+ inputs: [
+ {
+ prevOut: {
+ txid: 'fe9ae60ad1d947dfe041499b8f56b902779374fb2fb6662f91d5683c4c3ddb8b',
+ outIdx: 1,
+ },
+ inputScript:
+ '483045022100fad2532abe7c1e2b57ebdbee0a43c4176f6f3389c27b178cb6b27a89fc607a2b02200276ab355eb99f0a6943e4551b2010ddf97b2afe25774b061140d62cd38b42d041210260dbd59a80d14b548c68772328fa7afc8f2ea25f6c2a9cce13f9cba77199e0de',
+ outputScript:
+ '76a914f627e51001a51a1a92d8927808701373cf29267f88ac',
+ value: '550',
+ sequenceNo: 4294967295,
+ },
+ {
+ prevOut: {
+ txid: '03bc75198ecd0491faed1cd03e14c97bd9ec205f4ecf0f6b239a538f5f0d8479',
+ outIdx: 2,
+ },
+ inputScript:
+ '483045022100a245067515681caacf1d6da90a8cc4964f0e6282e32325149a6ae7e5c6ae70ed02204bb213450b3f7bbf0a38ba045936157481261e8709c464f092e925ac4a1ee33f41210260dbd59a80d14b548c68772328fa7afc8f2ea25f6c2a9cce13f9cba77199e0de',
+ outputScript:
+ '76a914f627e51001a51a1a92d8927808701373cf29267f88ac',
+ value: '23087',
+ sequenceNo: 4294967295,
+ },
+ ],
+ outputs: [
+ {
+ value: '0',
+ outputScript: '6a0400746162042e786563036e6673',
+ },
+ {
+ value: '556',
+ outputScript:
+ '76a914638568e36d0b5d7d49a6e99854caa27d9772b09388ac',
+ },
+ {
+ value: '22329',
+ outputScript:
+ '76a914f627e51001a51a1a92d8927808701373cf29267f88ac',
+ spentBy: {
+ txid: '4a0ac372d9edfbc88c908a1f477b2414461fbe2ec729d19710b0a6871ab95dba',
+ outIdx: 0,
+ },
+ },
+ ],
+ lockTime: 0,
+ block: {
+ height: 100000000,
+ },
+ size: 398,
+ isCoinbase: false,
+ network: 'XEC',
+ },
+];
+
+export const mockSortedAliasTxHistoryWithTxsInSameBlock = [
+ {
+ txid: '03bc75198ecd0491faed1cd03e14c97bd9ec205f4ecf0f6b239a538f5f0d8479',
+ version: 2,
+ inputs: [
+ {
+ prevOut: {
+ txid: '1cc67f99c0da539449a9bb9f2ded3340d8de169115e8484562c8492159ad59d6',
+ outIdx: 1,
+ },
+ inputScript:
+ '483045022100ad8dc3a6eaefbcdcceca15474c826e7454759f3f55c12af30e8b4ccdd66fe13f02204bbd62e3865499366f22063c34b471148679f82a88f3d4b66bd1395eccf2997941210260dbd59a80d14b548c68772328fa7afc8f2ea25f6c2a9cce13f9cba77199e0de',
+ outputScript:
+ '76a914f627e51001a51a1a92d8927808701373cf29267f88ac',
+ value: '550',
+ sequenceNo: 4294967295,
+ },
+ {
+ prevOut: {
+ txid: 'd826198de42c449731961fd4ba81b3d8b36a49ab85cd6bb846adf9bd8f460a90',
+ outIdx: 2,
+ },
+ inputScript:
+ '4830450221009a585d7a20e87f0b7a123c3674fabd6fd2907d50b6a0adfef705a62466b5737502202b540834f20b70c26f56df096044780254b14d5b4c7ed44e3e172c934a3b38d041210260dbd59a80d14b548c68772328fa7afc8f2ea25f6c2a9cce13f9cba77199e0de',
+ outputScript:
+ '76a914f627e51001a51a1a92d8927808701373cf29267f88ac',
+ value: '78689',
+ sequenceNo: 4294967295,
+ },
+ ],
+ outputs: [
+ {
+ value: '0',
+ outputScript: '6a040074616205657468616e',
+ },
+ {
+ value: '55400',
+ outputScript:
+ '76a914638568e36d0b5d7d49a6e99854caa27d9772b09388ac',
+ spentBy: {
+ txid: 'fd4ce09c3d527922870b5b22ee844edd0d3aadfcc86fac189afdf266fc9fa757',
+ outIdx: 0,
+ },
+ },
+ {
+ value: '23087',
+ outputScript:
+ '76a914f627e51001a51a1a92d8927808701373cf29267f88ac',
+ spentBy: {
+ txid: '363de571114fca54a7a7ef6fba7338f0d55ebe364d90c1fca44594f9e48c7b95',
+ outIdx: 1,
+ },
+ },
+ ],
+ lockTime: 0,
+ block: {
+ height: 770450,
+ hash: '00000000000000000fe787306e26f0f28f7d1b46c4888890fc84537dde647f1c',
+ timestamp: '1671107720',
+ },
+ timeFirstSeen: '1671107230',
+ size: 395,
+ isCoinbase: false,
+ network: 'XEC',
+ },
+ {
+ txid: '4a0ac372d9edfbc88c908a1f477b2414461fbe2ec729d19710b0a6871ab95dba',
+ version: 2,
+ inputs: [
+ {
+ prevOut: {
+ txid: '363de571114fca54a7a7ef6fba7338f0d55ebe364d90c1fca44594f9e48c7b95',
+ outIdx: 2,
+ },
+ inputScript:
+ '483045022100c1dce1385c8185c5a058b3679966a1b68f7f8e0c74ac3c03c11870e8dfe4ce3d022016f3574a846b12ffc440528263a0139d170527dd2efdb46ae643dd30b3da969741210260dbd59a80d14b548c68772328fa7afc8f2ea25f6c2a9cce13f9cba77199e0de',
+ outputScript:
+ '76a914f627e51001a51a1a92d8927808701373cf29267f88ac',
+ value: '22329',
+ sequenceNo: 4294967295,
+ },
+ ],
+ outputs: [
+ {
+ value: '0',
+ outputScript: '6a0400746162042e78656303666f6f',
+ },
+ {
+ value: '556',
+ outputScript:
+ '76a914638568e36d0b5d7d49a6e99854caa27d9772b09388ac',
+ },
+ {
+ value: '21318',
+ outputScript:
+ '76a914f627e51001a51a1a92d8927808701373cf29267f88ac',
+ spentBy: {
+ txid: '051e293de9b61292ae46ed9570fc2d05f169a0372a7bbf7069d3c86afa5f0781',
+ outIdx: 0,
+ },
+ },
+ ],
+ lockTime: 0,
+ block: {
+ height: 770450,
+ hash: '0000000000000000110940de16f07da16b7a5441694d2a5ace3e8faa7e04fc4e',
+ timestamp: '1671109291',
+ },
+ timeFirstSeen: '1671108616',
+ size: 250,
+ isCoinbase: false,
+ network: 'XEC',
+ },
+ {
+ txid: '363de571114fca54a7a7ef6fba7338f0d55ebe364d90c1fca44594f9e48c7b95',
+ version: 2,
+ inputs: [
+ {
+ prevOut: {
+ txid: 'fe9ae60ad1d947dfe041499b8f56b902779374fb2fb6662f91d5683c4c3ddb8b',
+ outIdx: 1,
+ },
+ inputScript:
+ '483045022100fad2532abe7c1e2b57ebdbee0a43c4176f6f3389c27b178cb6b27a89fc607a2b02200276ab355eb99f0a6943e4551b2010ddf97b2afe25774b061140d62cd38b42d041210260dbd59a80d14b548c68772328fa7afc8f2ea25f6c2a9cce13f9cba77199e0de',
+ outputScript:
+ '76a914f627e51001a51a1a92d8927808701373cf29267f88ac',
+ value: '550',
+ sequenceNo: 4294967295,
+ },
+ {
+ prevOut: {
+ txid: '03bc75198ecd0491faed1cd03e14c97bd9ec205f4ecf0f6b239a538f5f0d8479',
+ outIdx: 2,
+ },
+ inputScript:
+ '483045022100a245067515681caacf1d6da90a8cc4964f0e6282e32325149a6ae7e5c6ae70ed02204bb213450b3f7bbf0a38ba045936157481261e8709c464f092e925ac4a1ee33f41210260dbd59a80d14b548c68772328fa7afc8f2ea25f6c2a9cce13f9cba77199e0de',
+ outputScript:
+ '76a914f627e51001a51a1a92d8927808701373cf29267f88ac',
+ value: '23087',
+ sequenceNo: 4294967295,
+ },
+ ],
+ outputs: [
+ {
+ value: '0',
+ outputScript: '6a0400746162042e786563036e6673',
+ },
+ {
+ value: '556',
+ outputScript:
+ '76a914638568e36d0b5d7d49a6e99854caa27d9772b09388ac',
+ },
+ {
+ value: '22329',
+ outputScript:
+ '76a914f627e51001a51a1a92d8927808701373cf29267f88ac',
+ spentBy: {
+ txid: '4a0ac372d9edfbc88c908a1f477b2414461fbe2ec729d19710b0a6871ab95dba',
+ outIdx: 0,
+ },
+ },
+ ],
+ lockTime: 0,
+ block: {
+ height: 100000000,
+ },
+ size: 398,
+ isCoinbase: false,
+ network: 'XEC',
+ },
+];
+
+export const mockUnsortedAliasTxHistoryWithTxsInSameBlock = [
+ {
+ txid: '03bc75198ecd0491faed1cd03e14c97bd9ec205f4ecf0f6b239a538f5f0d8479',
+ version: 2,
+ inputs: [
+ {
+ prevOut: {
+ txid: '1cc67f99c0da539449a9bb9f2ded3340d8de169115e8484562c8492159ad59d6',
+ outIdx: 1,
+ },
+ inputScript:
+ '483045022100ad8dc3a6eaefbcdcceca15474c826e7454759f3f55c12af30e8b4ccdd66fe13f02204bbd62e3865499366f22063c34b471148679f82a88f3d4b66bd1395eccf2997941210260dbd59a80d14b548c68772328fa7afc8f2ea25f6c2a9cce13f9cba77199e0de',
+ outputScript:
+ '76a914f627e51001a51a1a92d8927808701373cf29267f88ac',
+ value: '550',
+ sequenceNo: 4294967295,
+ },
+ {
+ prevOut: {
+ txid: 'd826198de42c449731961fd4ba81b3d8b36a49ab85cd6bb846adf9bd8f460a90',
+ outIdx: 2,
+ },
+ inputScript:
+ '4830450221009a585d7a20e87f0b7a123c3674fabd6fd2907d50b6a0adfef705a62466b5737502202b540834f20b70c26f56df096044780254b14d5b4c7ed44e3e172c934a3b38d041210260dbd59a80d14b548c68772328fa7afc8f2ea25f6c2a9cce13f9cba77199e0de',
+ outputScript:
+ '76a914f627e51001a51a1a92d8927808701373cf29267f88ac',
+ value: '78689',
+ sequenceNo: 4294967295,
+ },
+ ],
+ outputs: [
+ {
+ value: '0',
+ outputScript: '6a040074616205657468616e',
+ },
+ {
+ value: '55400',
+ outputScript:
+ '76a914638568e36d0b5d7d49a6e99854caa27d9772b09388ac',
+ spentBy: {
+ txid: 'fd4ce09c3d527922870b5b22ee844edd0d3aadfcc86fac189afdf266fc9fa757',
+ outIdx: 0,
+ },
+ },
+ {
+ value: '23087',
+ outputScript:
+ '76a914f627e51001a51a1a92d8927808701373cf29267f88ac',
+ spentBy: {
+ txid: '363de571114fca54a7a7ef6fba7338f0d55ebe364d90c1fca44594f9e48c7b95',
+ outIdx: 1,
+ },
+ },
+ ],
+ lockTime: 0,
+ block: {
+ height: 770450,
+ hash: '00000000000000000fe787306e26f0f28f7d1b46c4888890fc84537dde647f1c',
+ timestamp: '1671107720',
+ },
+ timeFirstSeen: '1671107230',
+ size: 395,
+ isCoinbase: false,
+ network: 'XEC',
+ },
+ {
+ txid: '363de571114fca54a7a7ef6fba7338f0d55ebe364d90c1fca44594f9e48c7b95',
+ version: 2,
+ inputs: [
+ {
+ prevOut: {
+ txid: 'fe9ae60ad1d947dfe041499b8f56b902779374fb2fb6662f91d5683c4c3ddb8b',
+ outIdx: 1,
+ },
+ inputScript:
+ '483045022100fad2532abe7c1e2b57ebdbee0a43c4176f6f3389c27b178cb6b27a89fc607a2b02200276ab355eb99f0a6943e4551b2010ddf97b2afe25774b061140d62cd38b42d041210260dbd59a80d14b548c68772328fa7afc8f2ea25f6c2a9cce13f9cba77199e0de',
+ outputScript:
+ '76a914f627e51001a51a1a92d8927808701373cf29267f88ac',
+ value: '550',
+ sequenceNo: 4294967295,
+ },
+ {
+ prevOut: {
+ txid: '03bc75198ecd0491faed1cd03e14c97bd9ec205f4ecf0f6b239a538f5f0d8479',
+ outIdx: 2,
+ },
+ inputScript:
+ '483045022100a245067515681caacf1d6da90a8cc4964f0e6282e32325149a6ae7e5c6ae70ed02204bb213450b3f7bbf0a38ba045936157481261e8709c464f092e925ac4a1ee33f41210260dbd59a80d14b548c68772328fa7afc8f2ea25f6c2a9cce13f9cba77199e0de',
+ outputScript:
+ '76a914f627e51001a51a1a92d8927808701373cf29267f88ac',
+ value: '23087',
+ sequenceNo: 4294967295,
+ },
+ ],
+ outputs: [
+ {
+ value: '0',
+ outputScript: '6a0400746162042e786563036e6673',
+ },
+ {
+ value: '556',
+ outputScript:
+ '76a914638568e36d0b5d7d49a6e99854caa27d9772b09388ac',
+ },
+ {
+ value: '22329',
+ outputScript:
+ '76a914f627e51001a51a1a92d8927808701373cf29267f88ac',
+ spentBy: {
+ txid: '4a0ac372d9edfbc88c908a1f477b2414461fbe2ec729d19710b0a6871ab95dba',
+ outIdx: 0,
+ },
+ },
+ ],
+ lockTime: 0,
+ size: 398,
+ isCoinbase: false,
+ network: 'XEC',
+ },
+ {
+ txid: '4a0ac372d9edfbc88c908a1f477b2414461fbe2ec729d19710b0a6871ab95dba',
+ version: 2,
+ inputs: [
+ {
+ prevOut: {
+ txid: '363de571114fca54a7a7ef6fba7338f0d55ebe364d90c1fca44594f9e48c7b95',
+ outIdx: 2,
+ },
+ inputScript:
+ '483045022100c1dce1385c8185c5a058b3679966a1b68f7f8e0c74ac3c03c11870e8dfe4ce3d022016f3574a846b12ffc440528263a0139d170527dd2efdb46ae643dd30b3da969741210260dbd59a80d14b548c68772328fa7afc8f2ea25f6c2a9cce13f9cba77199e0de',
+ outputScript:
+ '76a914f627e51001a51a1a92d8927808701373cf29267f88ac',
+ value: '22329',
+ sequenceNo: 4294967295,
+ },
+ ],
+ outputs: [
+ {
+ value: '0',
+ outputScript: '6a0400746162042e78656303666f6f',
+ },
+ {
+ value: '556',
+ outputScript:
+ '76a914638568e36d0b5d7d49a6e99854caa27d9772b09388ac',
+ },
+ {
+ value: '21318',
+ outputScript:
+ '76a914f627e51001a51a1a92d8927808701373cf29267f88ac',
+ spentBy: {
+ txid: '051e293de9b61292ae46ed9570fc2d05f169a0372a7bbf7069d3c86afa5f0781',
+ outIdx: 0,
+ },
+ },
+ ],
+ lockTime: 0,
+ block: {
+ height: 770450,
+ hash: '0000000000000000110940de16f07da16b7a5441694d2a5ace3e8faa7e04fc4e',
+ timestamp: '1671109291',
+ },
+ timeFirstSeen: '1671108616',
+ size: 250,
+ isCoinbase: false,
+ network: 'XEC',
+ },
+];
+
+export const mockSortedAliasTxHistoryWithUnconfirmedTxs = [
+ {
+ txid: '03bc75198ecd0491faed1cd03e14c97bd9ec205f4ecf0f6b239a538f5f0d8479',
+ version: 2,
+ inputs: [
+ {
+ prevOut: {
+ txid: '1cc67f99c0da539449a9bb9f2ded3340d8de169115e8484562c8492159ad59d6',
+ outIdx: 1,
+ },
+ inputScript:
+ '483045022100ad8dc3a6eaefbcdcceca15474c826e7454759f3f55c12af30e8b4ccdd66fe13f02204bbd62e3865499366f22063c34b471148679f82a88f3d4b66bd1395eccf2997941210260dbd59a80d14b548c68772328fa7afc8f2ea25f6c2a9cce13f9cba77199e0de',
+ outputScript:
+ '76a914f627e51001a51a1a92d8927808701373cf29267f88ac',
+ value: '550',
+ sequenceNo: 4294967295,
+ },
+ {
+ prevOut: {
+ txid: 'd826198de42c449731961fd4ba81b3d8b36a49ab85cd6bb846adf9bd8f460a90',
+ outIdx: 2,
+ },
+ inputScript:
+ '4830450221009a585d7a20e87f0b7a123c3674fabd6fd2907d50b6a0adfef705a62466b5737502202b540834f20b70c26f56df096044780254b14d5b4c7ed44e3e172c934a3b38d041210260dbd59a80d14b548c68772328fa7afc8f2ea25f6c2a9cce13f9cba77199e0de',
+ outputScript:
+ '76a914f627e51001a51a1a92d8927808701373cf29267f88ac',
+ value: '78689',
+ sequenceNo: 4294967295,
+ },
+ ],
+ outputs: [
+ {
+ value: '0',
+ outputScript: '6a040074616205657468616e',
+ },
+ {
+ value: '55400',
+ outputScript:
+ '76a914638568e36d0b5d7d49a6e99854caa27d9772b09388ac',
+ spentBy: {
+ txid: 'fd4ce09c3d527922870b5b22ee844edd0d3aadfcc86fac189afdf266fc9fa757',
+ outIdx: 0,
+ },
+ },
+ {
+ value: '23087',
+ outputScript:
+ '76a914f627e51001a51a1a92d8927808701373cf29267f88ac',
+ spentBy: {
+ txid: '363de571114fca54a7a7ef6fba7338f0d55ebe364d90c1fca44594f9e48c7b95',
+ outIdx: 1,
+ },
+ },
+ ],
+ lockTime: 0,
+ block: {
+ height: 770450,
+ hash: '00000000000000000fe787306e26f0f28f7d1b46c4888890fc84537dde647f1c',
+ timestamp: '1671107720',
+ },
+ timeFirstSeen: '1671107230',
+ size: 395,
+ isCoinbase: false,
+ network: 'XEC',
+ },
+ {
+ txid: '4a0ac372d9edfbc88c908a1f477b2414461fbe2ec729d19710b0a6871ab95dba',
+ version: 2,
+ inputs: [
+ {
+ prevOut: {
+ txid: '363de571114fca54a7a7ef6fba7338f0d55ebe364d90c1fca44594f9e48c7b95',
+ outIdx: 2,
+ },
+ inputScript:
+ '483045022100c1dce1385c8185c5a058b3679966a1b68f7f8e0c74ac3c03c11870e8dfe4ce3d022016f3574a846b12ffc440528263a0139d170527dd2efdb46ae643dd30b3da969741210260dbd59a80d14b548c68772328fa7afc8f2ea25f6c2a9cce13f9cba77199e0de',
+ outputScript:
+ '76a914f627e51001a51a1a92d8927808701373cf29267f88ac',
+ value: '22329',
+ sequenceNo: 4294967295,
+ },
+ ],
+ outputs: [
+ {
+ value: '0',
+ outputScript: '6a0400746162042e78656303666f6f',
+ },
+ {
+ value: '556',
+ outputScript:
+ '76a914638568e36d0b5d7d49a6e99854caa27d9772b09388ac',
+ },
+ {
+ value: '21318',
+ outputScript:
+ '76a914f627e51001a51a1a92d8927808701373cf29267f88ac',
+ spentBy: {
+ txid: '051e293de9b61292ae46ed9570fc2d05f169a0372a7bbf7069d3c86afa5f0781',
+ outIdx: 0,
+ },
+ },
+ ],
+ lockTime: 0,
+ block: {
+ height: 770452,
+ hash: '0000000000000000110940de16f07da16b7a5441694d2a5ace3e8faa7e04fc4e',
+ timestamp: '1671109291',
+ },
+ timeFirstSeen: '1671108616',
+ size: 250,
+ isCoinbase: false,
+ network: 'XEC',
+ },
+ {
+ txid: '363de571114fca54a7a7ef6fba7338f0d55ebe364d90c1fca44594f9e48c7b95',
+ version: 2,
+ inputs: [
+ {
+ prevOut: {
+ txid: 'fe9ae60ad1d947dfe041499b8f56b902779374fb2fb6662f91d5683c4c3ddb8b',
+ outIdx: 1,
+ },
+ inputScript:
+ '483045022100fad2532abe7c1e2b57ebdbee0a43c4176f6f3389c27b178cb6b27a89fc607a2b02200276ab355eb99f0a6943e4551b2010ddf97b2afe25774b061140d62cd38b42d041210260dbd59a80d14b548c68772328fa7afc8f2ea25f6c2a9cce13f9cba77199e0de',
+ outputScript:
+ '76a914f627e51001a51a1a92d8927808701373cf29267f88ac',
+ value: '550',
+ sequenceNo: 4294967295,
+ },
+ {
+ prevOut: {
+ txid: '03bc75198ecd0491faed1cd03e14c97bd9ec205f4ecf0f6b239a538f5f0d8479',
+ outIdx: 2,
+ },
+ inputScript:
+ '483045022100a245067515681caacf1d6da90a8cc4964f0e6282e32325149a6ae7e5c6ae70ed02204bb213450b3f7bbf0a38ba045936157481261e8709c464f092e925ac4a1ee33f41210260dbd59a80d14b548c68772328fa7afc8f2ea25f6c2a9cce13f9cba77199e0de',
+ outputScript:
+ '76a914f627e51001a51a1a92d8927808701373cf29267f88ac',
+ value: '23087',
+ sequenceNo: 4294967295,
+ },
+ ],
+ outputs: [
+ {
+ value: '0',
+ outputScript: '6a0400746162042e786563036e6673',
+ },
+ {
+ value: '556',
+ outputScript:
+ '76a914638568e36d0b5d7d49a6e99854caa27d9772b09388ac',
+ },
+ {
+ value: '22329',
+ outputScript:
+ '76a914f627e51001a51a1a92d8927808701373cf29267f88ac',
+ spentBy: {
+ txid: '4a0ac372d9edfbc88c908a1f477b2414461fbe2ec729d19710b0a6871ab95dba',
+ outIdx: 0,
+ },
+ },
+ ],
+ lockTime: 0,
+ block: {
+ height: 100000000,
+ },
+ size: 398,
+ isCoinbase: false,
+ network: 'XEC',
+ },
+];
+
+export const mockUnsortedAliasTxHistoryWithUnconfirmedTxs = [
+ {
+ txid: '03bc75198ecd0491faed1cd03e14c97bd9ec205f4ecf0f6b239a538f5f0d8479',
+ version: 2,
+ inputs: [
+ {
+ prevOut: {
+ txid: '1cc67f99c0da539449a9bb9f2ded3340d8de169115e8484562c8492159ad59d6',
+ outIdx: 1,
+ },
+ inputScript:
+ '483045022100ad8dc3a6eaefbcdcceca15474c826e7454759f3f55c12af30e8b4ccdd66fe13f02204bbd62e3865499366f22063c34b471148679f82a88f3d4b66bd1395eccf2997941210260dbd59a80d14b548c68772328fa7afc8f2ea25f6c2a9cce13f9cba77199e0de',
+ outputScript:
+ '76a914f627e51001a51a1a92d8927808701373cf29267f88ac',
+ value: '550',
+ sequenceNo: 4294967295,
+ },
+ {
+ prevOut: {
+ txid: 'd826198de42c449731961fd4ba81b3d8b36a49ab85cd6bb846adf9bd8f460a90',
+ outIdx: 2,
+ },
+ inputScript:
+ '4830450221009a585d7a20e87f0b7a123c3674fabd6fd2907d50b6a0adfef705a62466b5737502202b540834f20b70c26f56df096044780254b14d5b4c7ed44e3e172c934a3b38d041210260dbd59a80d14b548c68772328fa7afc8f2ea25f6c2a9cce13f9cba77199e0de',
+ outputScript:
+ '76a914f627e51001a51a1a92d8927808701373cf29267f88ac',
+ value: '78689',
+ sequenceNo: 4294967295,
+ },
+ ],
+ outputs: [
+ {
+ value: '0',
+ outputScript: '6a040074616205657468616e',
+ },
+ {
+ value: '55400',
+ outputScript:
+ '76a914638568e36d0b5d7d49a6e99854caa27d9772b09388ac',
+ spentBy: {
+ txid: 'fd4ce09c3d527922870b5b22ee844edd0d3aadfcc86fac189afdf266fc9fa757',
+ outIdx: 0,
+ },
+ },
+ {
+ value: '23087',
+ outputScript:
+ '76a914f627e51001a51a1a92d8927808701373cf29267f88ac',
+ spentBy: {
+ txid: '363de571114fca54a7a7ef6fba7338f0d55ebe364d90c1fca44594f9e48c7b95',
+ outIdx: 1,
+ },
+ },
+ ],
+ lockTime: 0,
+ block: {
+ height: 770450,
+ hash: '00000000000000000fe787306e26f0f28f7d1b46c4888890fc84537dde647f1c',
+ timestamp: '1671107720',
+ },
+ timeFirstSeen: '1671107230',
+ size: 395,
+ isCoinbase: false,
+ network: 'XEC',
+ },
+ {
+ txid: '363de571114fca54a7a7ef6fba7338f0d55ebe364d90c1fca44594f9e48c7b95',
+ version: 2,
+ inputs: [
+ {
+ prevOut: {
+ txid: 'fe9ae60ad1d947dfe041499b8f56b902779374fb2fb6662f91d5683c4c3ddb8b',
+ outIdx: 1,
+ },
+ inputScript:
+ '483045022100fad2532abe7c1e2b57ebdbee0a43c4176f6f3389c27b178cb6b27a89fc607a2b02200276ab355eb99f0a6943e4551b2010ddf97b2afe25774b061140d62cd38b42d041210260dbd59a80d14b548c68772328fa7afc8f2ea25f6c2a9cce13f9cba77199e0de',
+ outputScript:
+ '76a914f627e51001a51a1a92d8927808701373cf29267f88ac',
+ value: '550',
+ sequenceNo: 4294967295,
+ },
+ {
+ prevOut: {
+ txid: '03bc75198ecd0491faed1cd03e14c97bd9ec205f4ecf0f6b239a538f5f0d8479',
+ outIdx: 2,
+ },
+ inputScript:
+ '483045022100a245067515681caacf1d6da90a8cc4964f0e6282e32325149a6ae7e5c6ae70ed02204bb213450b3f7bbf0a38ba045936157481261e8709c464f092e925ac4a1ee33f41210260dbd59a80d14b548c68772328fa7afc8f2ea25f6c2a9cce13f9cba77199e0de',
+ outputScript:
+ '76a914f627e51001a51a1a92d8927808701373cf29267f88ac',
+ value: '23087',
+ sequenceNo: 4294967295,
+ },
+ ],
+ outputs: [
+ {
+ value: '0',
+ outputScript: '6a0400746162042e786563036e6673',
+ },
+ {
+ value: '556',
+ outputScript:
+ '76a914638568e36d0b5d7d49a6e99854caa27d9772b09388ac',
+ },
+ {
+ value: '22329',
+ outputScript:
+ '76a914f627e51001a51a1a92d8927808701373cf29267f88ac',
+ spentBy: {
+ txid: '4a0ac372d9edfbc88c908a1f477b2414461fbe2ec729d19710b0a6871ab95dba',
+ outIdx: 0,
+ },
+ },
+ ],
+ lockTime: 0,
+ size: 398,
+ isCoinbase: false,
+ network: 'XEC',
+ },
+ {
+ txid: '4a0ac372d9edfbc88c908a1f477b2414461fbe2ec729d19710b0a6871ab95dba',
+ version: 2,
+ inputs: [
+ {
+ prevOut: {
+ txid: '363de571114fca54a7a7ef6fba7338f0d55ebe364d90c1fca44594f9e48c7b95',
+ outIdx: 2,
+ },
+ inputScript:
+ '483045022100c1dce1385c8185c5a058b3679966a1b68f7f8e0c74ac3c03c11870e8dfe4ce3d022016f3574a846b12ffc440528263a0139d170527dd2efdb46ae643dd30b3da969741210260dbd59a80d14b548c68772328fa7afc8f2ea25f6c2a9cce13f9cba77199e0de',
+ outputScript:
+ '76a914f627e51001a51a1a92d8927808701373cf29267f88ac',
+ value: '22329',
+ sequenceNo: 4294967295,
+ },
+ ],
+ outputs: [
+ {
+ value: '0',
+ outputScript: '6a0400746162042e78656303666f6f',
+ },
+ {
+ value: '556',
+ outputScript:
+ '76a914638568e36d0b5d7d49a6e99854caa27d9772b09388ac',
+ },
+ {
+ value: '21318',
+ outputScript:
+ '76a914f627e51001a51a1a92d8927808701373cf29267f88ac',
+ spentBy: {
+ txid: '051e293de9b61292ae46ed9570fc2d05f169a0372a7bbf7069d3c86afa5f0781',
+ outIdx: 0,
+ },
+ },
+ ],
+ lockTime: 0,
+ block: {
+ height: 770452,
+ hash: '0000000000000000110940de16f07da16b7a5441694d2a5ace3e8faa7e04fc4e',
+ timestamp: '1671109291',
+ },
+ timeFirstSeen: '1671108616',
+ size: 250,
+ isCoinbase: false,
+ network: 'XEC',
+ },
+];
+
export const mockTxHistoryLastPageResponse25Txs = {
txs: [
{
diff --git a/web/cashtab/src/utils/__tests__/chronik.test.js b/web/cashtab/src/utils/__tests__/chronik.test.js
--- a/web/cashtab/src/utils/__tests__/chronik.test.js
+++ b/web/cashtab/src/utils/__tests__/chronik.test.js
@@ -12,6 +12,8 @@
isAliasRegistered,
getAddressFromAlias,
calculateAliasTxCount,
+ sortAliasTxsByTxidAndBlockheight,
+ filterDuplicateAliasTxs,
} from 'utils/chronik';
import {
mockChronikUtxos,
@@ -61,6 +63,12 @@
mockTxHistoryOfAliasPaymentAddress,
mockTxHistoryLastPageResponse23Txs,
mockTxHistoryLastPageResponse25Txs,
+ mockUnsortedAliasTxHistoryWithUnconfirmedTxs,
+ mockSortedAliasTxHistoryWithUnconfirmedTxs,
+ mockSortedAliasTxHistoryWithTxsInSameBlock,
+ mockUnsortedAliasTxHistoryWithTxsInSameBlock,
+ mockFilteredSortedAliasTxHistoryWithDuplicateTxs,
+ mockUnfilteredSortedAliasTxHistoryWithDuplicateTxs,
} from '../__mocks__/chronikTxHistory';
import {
mintingTxTabCash,
@@ -76,6 +84,30 @@
import { ChronikClient } from 'chronik-client';
import { when } from 'jest-when';
+it(`sortAliasTxsByTxidAndBlockheight correctly sorts an alias payment tx history with unconfirmed transactions`, async () => {
+ expect(
+ sortAliasTxsByTxidAndBlockheight(
+ mockUnsortedAliasTxHistoryWithUnconfirmedTxs,
+ ),
+ ).toStrictEqual(mockSortedAliasTxHistoryWithUnconfirmedTxs);
+});
+
+it(`sortAliasTxsByTxidAndBlockheight correctly sorts an alias payment tx history with unconfirmed transactions in the same block`, async () => {
+ expect(
+ sortAliasTxsByTxidAndBlockheight(
+ mockUnsortedAliasTxHistoryWithTxsInSameBlock,
+ ),
+ ).toStrictEqual(mockSortedAliasTxHistoryWithTxsInSameBlock);
+});
+
+it(`filterDuplicateAliasTxs correctly filters out subsequent duplicate alias registrations for the same alias`, async () => {
+ expect(
+ filterDuplicateAliasTxs(
+ mockUnfilteredSortedAliasTxHistoryWithDuplicateTxs,
+ ),
+ ).toStrictEqual(mockFilteredSortedAliasTxHistoryWithDuplicateTxs);
+});
+
it(`calculateAliasTxCount returns a correct tx count for a final page containing less than the full 25 txs`, async () => {
const txCount = calculateAliasTxCount(
mockTxHistoryLastPageResponse23Txs,
@@ -762,7 +794,7 @@
);
});
-it(`Successfully extracts aliases from an alias payment address tx history`, () => {
+it(`Successfully extracts unique aliases from an alias payment address tx history`, () => {
expect(
getAliasAndAddresses(mockTxHistoryOfAliasPaymentAddress),
).toStrictEqual([
@@ -778,14 +810,6 @@
alias: 'foo',
address: 'ecash:qzvydd4n3lm3xv62cx078nu9rg0e3srmqq0knykfed',
},
- {
- alias: 'foo',
- address: 'ecash:qzvydd4n3lm3xv62cx078nu9rg0e3srmqq0knykfed',
- },
- {
- alias: 'foo',
- address: 'ecash:qzvydd4n3lm3xv62cx078nu9rg0e3srmqq0knykfed',
- },
{
alias: 'joey',
address: 'ecash:qzvydd4n3lm3xv62cx078nu9rg0e3srmqq0knykfed',
@@ -794,10 +818,6 @@
alias: 'nfs',
address: 'ecash:qzvydd4n3lm3xv62cx078nu9rg0e3srmqq0knykfed',
},
- {
- alias: 'nfs',
- address: 'ecash:qzvydd4n3lm3xv62cx078nu9rg0e3srmqq0knykfed',
- },
]);
});
diff --git a/web/cashtab/src/utils/cashMethods.js b/web/cashtab/src/utils/cashMethods.js
--- a/web/cashtab/src/utils/cashMethods.js
+++ b/web/cashtab/src/utils/cashMethods.js
@@ -41,7 +41,6 @@
registrationFee = fee.eightChar;
break;
}
-
return registrationFee;
};
diff --git a/web/cashtab/src/utils/chronik.js b/web/cashtab/src/utils/chronik.js
--- a/web/cashtab/src/utils/chronik.js
+++ b/web/cashtab/src/utils/chronik.js
@@ -106,6 +106,7 @@
customPagesToIterate = 0,
) => {
let allTxHistory = [];
+ let sortedAllTxHistory = [];
let txHistoryFirstPageResponse, secondPageIndex;
txHistoryFirstPageResponse = await getTxHistoryPage(
@@ -176,7 +177,65 @@
}
}
- return allTxHistory;
+ // sort allTxHistory based on blockheight and txid
+ sortedAllTxHistory = sortAliasTxsByTxidAndBlockheight(allTxHistory);
+
+ return sortedAllTxHistory;
+};
+
+export const filterDuplicateAliasTxs = sortedAllTxHistory => {
+ let uniqueSortedAllTxHistory = [];
+ // filter out duplicate aliases
+ sortedAllTxHistory.forEach(function (aliasTx) {
+ // if this is the first instance of this alias OP_RETURN script, add to uniqueSortedAllTxHistory
+ if (
+ !JSON.stringify(uniqueSortedAllTxHistory).includes(
+ JSON.stringify(aliasTx.outputs[0].outputScript),
+ )
+ ) {
+ uniqueSortedAllTxHistory.push(aliasTx);
+ }
+ });
+
+ return uniqueSortedAllTxHistory;
+};
+
+export const sortAliasTxsByTxidAndBlockheight = unsortedAliasTxs => {
+ // arbitrary to set unconfirmed txs at blockheight of 100,000,000
+ // note that this constant must be adjusted in the fall of 3910 A.D., assuming 10 min blocks
+ // setting it high instead of zero because it's important we sort aliases by blockheight
+ // for sortAliasTxsByTxidAndBlockheight function
+ unsortedAliasTxs.forEach(function (aliasTx) {
+ if (!aliasTx.block) {
+ // if this tx does not have a block attribute, i.e. unconfirmed
+ aliasTx.block = { height: 100000000 };
+ console.log(
+ `unconfirmed tx found, setting .block attribute to 100000000`,
+ );
+ }
+ });
+
+ // First, sort the aliases array by alphabetical txid
+ // (alphabetical first to last, 0 comes before a comes before b comes before c, etc)
+ const aliasesTxsSortedByTxid = unsortedAliasTxs.sort((a, b) => {
+ return a.txid.localeCompare(b.txid);
+ });
+
+ // Next, sort the aliases array by blockheight. This will preserve the alphabetical txid sort
+ // 735,625 comes before 735,626 comes before 100,000,000 etc
+ const aliasTxsSortedByTxidAndBlockheight = aliasesTxsSortedByTxid.sort(
+ (a, b) => {
+ return a.block.height - b.block.height;
+ },
+ );
+
+ // temporary log for reviewer
+ console.log(
+ `aliasTxsSortedByTxidAndBlockheight: `,
+ JSON.stringify(aliasTxsSortedByTxidAndBlockheight),
+ );
+
+ return aliasTxsSortedByTxidAndBlockheight;
};
export const getAddressFromAlias = (alias, cachedAliases) => {
@@ -194,18 +253,17 @@
};
export const isAliasAvailable = async (chronik, alias) => {
- // TODO: Implement caching mechanism to reduce the API call below
- // if isLocalAliasStateLatest() is true then retrieve incoming tx history from localStorage
- // else retrieve via chronik and update localStorage
-
// retrieve alias payment address tx history
let aliasPaymentTxs = await getAllTxHistory(
chronik,
currency.aliasSettings.aliasPaymentHash160,
);
+ // filter out duplicate alias registrations
+ let uniqueRegisteredAlaises = filterDuplicateAliasTxs(aliasPaymentTxs);
+
// extract aliases from payment address' tx history
- let registeredAliases = getAliasAndAddresses(aliasPaymentTxs);
+ let registeredAliases = getAliasAndAddresses(uniqueRegisteredAlaises);
// check if the chosen alias has already been registered onchain
let isAliasTaken = isAliasRegistered(registeredAliases, alias);
@@ -226,9 +284,10 @@
return false;
};
-export const getAliasAndAddresses = aliasPaymentTxs => {
+export const getAliasAndAddresses = unfilteredAliasPaymentTxs => {
const registeredAliases = [];
let aliasName;
+ let aliasPaymentTxs = filterDuplicateAliasTxs(unfilteredAliasPaymentTxs);
// parse through each txs in alias payment address
for (let i = 0; i < aliasPaymentTxs.length; i += 1) {
@@ -334,7 +393,6 @@
alias: aliasName,
address: aliasAddress,
});
-
// reset fee increment for the next aliasPaymentTxs[i]
totalAliasFeePaid = new BigNumber(0);
}
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Sat, Apr 26, 10:38 (5 h, 26 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
5570089
Default Alt Text
D13134.id37989.diff (46 KB)
Attached To
D13134: [Cashtab] [Alias] pt 7 - Mitigate edge cases for registration records
Event Timeline
Log In to Comment