@bsv/wallet-toolbox 1.4.4 → 1.4.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (230) hide show
  1. package/mobile/out/src/WalletPermissionsManager.js +1 -0
  2. package/mobile/out/src/WalletPermissionsManager.js.map +1 -1
  3. package/out/src/CWIStyleWalletManager.js +1 -1
  4. package/out/src/CWIStyleWalletManager.js.map +1 -1
  5. package/out/src/sdk/CertOps.d.ts +66 -0
  6. package/out/src/sdk/CertOps.d.ts.map +1 -0
  7. package/out/src/sdk/CertOps.js +198 -0
  8. package/out/src/sdk/CertOps.js.map +1 -0
  9. package/out/src/sdk/StorageSyncReader.d.ts +121 -0
  10. package/out/src/sdk/StorageSyncReader.d.ts.map +1 -0
  11. package/out/src/sdk/StorageSyncReader.js +3 -0
  12. package/out/src/sdk/StorageSyncReader.js.map +1 -0
  13. package/out/src/sdk/StorageSyncReaderWriter.d.ts +89 -0
  14. package/out/src/sdk/StorageSyncReaderWriter.d.ts.map +1 -0
  15. package/out/src/sdk/StorageSyncReaderWriter.js +3 -0
  16. package/out/src/sdk/StorageSyncReaderWriter.js.map +1 -0
  17. package/out/src/services/__tests/ARC.test.d.ts +2 -0
  18. package/out/src/services/__tests/ARC.test.d.ts.map +1 -0
  19. package/out/src/services/__tests/ARC.test.js +104 -0
  20. package/out/src/services/__tests/ARC.test.js.map +1 -0
  21. package/out/src/services/chaintracker/chaintracks/BlockHeaderApi.d.ts +98 -0
  22. package/out/src/services/chaintracker/chaintracks/BlockHeaderApi.d.ts.map +1 -0
  23. package/out/src/services/chaintracker/chaintracks/BlockHeaderApi.js +38 -0
  24. package/out/src/services/chaintracker/chaintracks/BlockHeaderApi.js.map +1 -0
  25. package/out/src/storage/methods/listActions.d.ts +5 -0
  26. package/out/src/storage/methods/listActions.d.ts.map +1 -0
  27. package/out/src/storage/methods/listActions.js +228 -0
  28. package/out/src/storage/methods/listActions.js.map +1 -0
  29. package/out/src/storage/methods/listOutputs.d.ts +5 -0
  30. package/out/src/storage/methods/listOutputs.d.ts.map +1 -0
  31. package/out/src/storage/methods/listOutputs.js +295 -0
  32. package/out/src/storage/methods/listOutputs.js.map +1 -0
  33. package/out/src/storage/schema/entities/Certificate.d.ts +43 -0
  34. package/out/src/storage/schema/entities/Certificate.d.ts.map +1 -0
  35. package/out/src/storage/schema/entities/Certificate.js +162 -0
  36. package/out/src/storage/schema/entities/Certificate.js.map +1 -0
  37. package/out/src/storage/schema/entities/CertificateField.d.ts +32 -0
  38. package/out/src/storage/schema/entities/CertificateField.d.ts.map +1 -0
  39. package/out/src/storage/schema/entities/CertificateField.js +114 -0
  40. package/out/src/storage/schema/entities/CertificateField.js.map +1 -0
  41. package/out/src/storage/schema/entities/Commission.d.ts +37 -0
  42. package/out/src/storage/schema/entities/Commission.d.ts.map +1 -0
  43. package/out/src/storage/schema/entities/Commission.js +130 -0
  44. package/out/src/storage/schema/entities/Commission.js.map +1 -0
  45. package/out/src/storage/schema/entities/Output.d.ts +67 -0
  46. package/out/src/storage/schema/entities/Output.d.ts.map +1 -0
  47. package/out/src/storage/schema/entities/Output.js +281 -0
  48. package/out/src/storage/schema/entities/Output.js.map +1 -0
  49. package/out/src/storage/schema/entities/OutputBasket.d.ts +35 -0
  50. package/out/src/storage/schema/entities/OutputBasket.d.ts.map +1 -0
  51. package/out/src/storage/schema/entities/OutputBasket.js +133 -0
  52. package/out/src/storage/schema/entities/OutputBasket.js.map +1 -0
  53. package/out/src/storage/schema/entities/OutputTag.d.ts +31 -0
  54. package/out/src/storage/schema/entities/OutputTag.d.ts.map +1 -0
  55. package/out/src/storage/schema/entities/OutputTag.js +104 -0
  56. package/out/src/storage/schema/entities/OutputTag.js.map +1 -0
  57. package/out/src/storage/schema/entities/OutputTagMap.d.ts +28 -0
  58. package/out/src/storage/schema/entities/OutputTagMap.d.ts.map +1 -0
  59. package/out/src/storage/schema/entities/OutputTagMap.js +101 -0
  60. package/out/src/storage/schema/entities/OutputTagMap.js.map +1 -0
  61. package/out/src/storage/schema/entities/ProvenTx.d.ts +84 -0
  62. package/out/src/storage/schema/entities/ProvenTx.d.ts.map +1 -0
  63. package/out/src/storage/schema/entities/ProvenTx.js +286 -0
  64. package/out/src/storage/schema/entities/ProvenTx.js.map +1 -0
  65. package/out/src/storage/schema/entities/ProvenTxReq.d.ts +135 -0
  66. package/out/src/storage/schema/entities/ProvenTxReq.d.ts.map +1 -0
  67. package/out/src/storage/schema/entities/ProvenTxReq.js +532 -0
  68. package/out/src/storage/schema/entities/ProvenTxReq.js.map +1 -0
  69. package/out/src/storage/schema/entities/SyncState.d.ts +66 -0
  70. package/out/src/storage/schema/entities/SyncState.d.ts.map +1 -0
  71. package/out/src/storage/schema/entities/SyncState.js +284 -0
  72. package/out/src/storage/schema/entities/SyncState.js.map +1 -0
  73. package/out/src/storage/schema/entities/Transaction.d.ts +67 -0
  74. package/out/src/storage/schema/entities/Transaction.d.ts.map +1 -0
  75. package/out/src/storage/schema/entities/Transaction.js +264 -0
  76. package/out/src/storage/schema/entities/Transaction.js.map +1 -0
  77. package/out/src/storage/schema/entities/TxLabel.d.ts +31 -0
  78. package/out/src/storage/schema/entities/TxLabel.d.ts.map +1 -0
  79. package/out/src/storage/schema/entities/TxLabel.js +104 -0
  80. package/out/src/storage/schema/entities/TxLabel.js.map +1 -0
  81. package/out/src/storage/schema/entities/TxLabelMap.d.ts +28 -0
  82. package/out/src/storage/schema/entities/TxLabelMap.d.ts.map +1 -0
  83. package/out/src/storage/schema/entities/TxLabelMap.js +103 -0
  84. package/out/src/storage/schema/entities/TxLabelMap.js.map +1 -0
  85. package/out/src/storage/schema/entities/User.d.ts +29 -0
  86. package/out/src/storage/schema/entities/User.d.ts.map +1 -0
  87. package/out/src/storage/schema/entities/User.js +100 -0
  88. package/out/src/storage/schema/entities/User.js.map +1 -0
  89. package/out/src/storage/schema/tables/Certificate.d.ts +20 -0
  90. package/out/src/storage/schema/tables/Certificate.d.ts.map +1 -0
  91. package/out/src/storage/schema/tables/Certificate.js +3 -0
  92. package/out/src/storage/schema/tables/Certificate.js.map +1 -0
  93. package/out/src/storage/schema/tables/CertificateField.d.ts +12 -0
  94. package/out/src/storage/schema/tables/CertificateField.d.ts.map +1 -0
  95. package/out/src/storage/schema/tables/CertificateField.js +3 -0
  96. package/out/src/storage/schema/tables/CertificateField.js.map +1 -0
  97. package/out/src/storage/schema/tables/Commission.d.ts +13 -0
  98. package/out/src/storage/schema/tables/Commission.d.ts.map +1 -0
  99. package/out/src/storage/schema/tables/Commission.js +3 -0
  100. package/out/src/storage/schema/tables/Commission.js.map +1 -0
  101. package/out/src/storage/schema/tables/MonitorEvent.d.ts +9 -0
  102. package/out/src/storage/schema/tables/MonitorEvent.d.ts.map +1 -0
  103. package/out/src/storage/schema/tables/MonitorEvent.js +3 -0
  104. package/out/src/storage/schema/tables/MonitorEvent.js.map +1 -0
  105. package/out/src/storage/schema/tables/Output.d.ts +36 -0
  106. package/out/src/storage/schema/tables/Output.d.ts.map +1 -0
  107. package/out/src/storage/schema/tables/Output.js +31 -0
  108. package/out/src/storage/schema/tables/Output.js.map +1 -0
  109. package/out/src/storage/schema/tables/OutputBasket.d.ts +12 -0
  110. package/out/src/storage/schema/tables/OutputBasket.d.ts.map +1 -0
  111. package/out/src/storage/schema/tables/OutputBasket.js +3 -0
  112. package/out/src/storage/schema/tables/OutputBasket.js.map +1 -0
  113. package/out/src/storage/schema/tables/OutputTag.d.ts +10 -0
  114. package/out/src/storage/schema/tables/OutputTag.d.ts.map +1 -0
  115. package/out/src/storage/schema/tables/OutputTag.js +3 -0
  116. package/out/src/storage/schema/tables/OutputTag.js.map +1 -0
  117. package/out/src/storage/schema/tables/OutputTagMap.d.ts +9 -0
  118. package/out/src/storage/schema/tables/OutputTagMap.d.ts.map +1 -0
  119. package/out/src/storage/schema/tables/OutputTagMap.js +3 -0
  120. package/out/src/storage/schema/tables/OutputTagMap.js.map +1 -0
  121. package/out/src/storage/schema/tables/ProvenTx.d.ts +14 -0
  122. package/out/src/storage/schema/tables/ProvenTx.d.ts.map +1 -0
  123. package/out/src/storage/schema/tables/ProvenTx.js +3 -0
  124. package/out/src/storage/schema/tables/ProvenTx.js.map +1 -0
  125. package/out/src/storage/schema/tables/ProvenTxReq.d.ts +64 -0
  126. package/out/src/storage/schema/tables/ProvenTxReq.d.ts.map +1 -0
  127. package/out/src/storage/schema/tables/ProvenTxReq.js +3 -0
  128. package/out/src/storage/schema/tables/ProvenTxReq.js.map +1 -0
  129. package/out/src/storage/schema/tables/SyncState.d.ts +18 -0
  130. package/out/src/storage/schema/tables/SyncState.d.ts.map +1 -0
  131. package/out/src/storage/schema/tables/SyncState.js +3 -0
  132. package/out/src/storage/schema/tables/SyncState.js.map +1 -0
  133. package/out/src/storage/schema/tables/Transaction.d.ts +37 -0
  134. package/out/src/storage/schema/tables/Transaction.d.ts.map +1 -0
  135. package/out/src/storage/schema/tables/Transaction.js +21 -0
  136. package/out/src/storage/schema/tables/Transaction.js.map +1 -0
  137. package/out/src/storage/schema/tables/TxLabel.d.ts +10 -0
  138. package/out/src/storage/schema/tables/TxLabel.d.ts.map +1 -0
  139. package/out/src/storage/schema/tables/TxLabel.js +3 -0
  140. package/out/src/storage/schema/tables/TxLabel.js.map +1 -0
  141. package/out/src/storage/schema/tables/TxLabelMap.d.ts +9 -0
  142. package/out/src/storage/schema/tables/TxLabelMap.d.ts.map +1 -0
  143. package/out/src/storage/schema/tables/TxLabelMap.js +3 -0
  144. package/out/src/storage/schema/tables/TxLabelMap.js.map +1 -0
  145. package/out/src/storage/schema/tables/User.d.ts +16 -0
  146. package/out/src/storage/schema/tables/User.d.ts.map +1 -0
  147. package/out/src/storage/schema/tables/User.js +3 -0
  148. package/out/src/storage/schema/tables/User.js.map +1 -0
  149. package/out/test/Wallet/action/abortAction.test.d.ts.map +1 -0
  150. package/out/test/{wallet → Wallet}/action/abortAction.test.js.map +1 -1
  151. package/out/test/Wallet/action/createAction.test.d.ts.map +1 -0
  152. package/out/test/{wallet → Wallet}/action/createAction.test.js.map +1 -1
  153. package/out/test/{wallet → Wallet}/action/createAction2.test.d.ts.map +1 -1
  154. package/out/test/{wallet → Wallet}/action/createAction2.test.js.map +1 -1
  155. package/out/test/Wallet/action/createActionToGenerateBeefs.man.test.d.ts.map +1 -0
  156. package/out/test/{wallet → Wallet}/action/createActionToGenerateBeefs.man.test.js.map +1 -1
  157. package/out/test/Wallet/action/internalizeAction.test.d.ts.map +1 -0
  158. package/out/test/{wallet → Wallet}/action/internalizeAction.test.js.map +1 -1
  159. package/out/test/Wallet/action/relinquishOutput.test.d.ts.map +1 -0
  160. package/out/test/{wallet → Wallet}/action/relinquishOutput.test.js.map +1 -1
  161. package/out/test/Wallet/construct/Wallet.constructor.test.d.ts.map +1 -0
  162. package/out/test/{wallet → Wallet}/construct/Wallet.constructor.test.js.map +1 -1
  163. package/out/test/Wallet/list/listActions.test.d.ts.map +1 -0
  164. package/out/test/{wallet → Wallet}/list/listActions.test.js.map +1 -1
  165. package/out/test/Wallet/list/listActions2.test.d.ts.map +1 -0
  166. package/out/test/{wallet → Wallet}/list/listActions2.test.js.map +1 -1
  167. package/out/test/Wallet/list/listCertificates.test.d.ts.map +1 -0
  168. package/out/test/{wallet → Wallet}/list/listCertificates.test.js.map +1 -1
  169. package/out/test/Wallet/list/listOutputs.test.d.ts.map +1 -0
  170. package/out/test/{wallet → Wallet}/list/listOutputs.test.js.map +1 -1
  171. package/out/test/Wallet/local/localWalletMethods.d.ts +28 -0
  172. package/out/test/Wallet/local/localWalletMethods.d.ts.map +1 -0
  173. package/out/test/Wallet/local/localWalletMethods.js +281 -0
  174. package/out/test/Wallet/local/localWalletMethods.js.map +1 -0
  175. package/out/test/Wallet/support/opers1.man.test.d.ts +2 -0
  176. package/out/test/Wallet/support/opers1.man.test.d.ts.map +1 -0
  177. package/out/test/Wallet/support/opers1.man.test.js +202 -0
  178. package/out/test/Wallet/support/opers1.man.test.js.map +1 -0
  179. package/out/test/Wallet/sync/Wallet.sync.test.d.ts.map +1 -0
  180. package/out/test/{wallet → Wallet}/sync/Wallet.sync.test.js.map +1 -1
  181. package/out/tsconfig.all.tsbuildinfo +1 -1
  182. package/package.json +1 -1
  183. package/src/CWIStyleWalletManager.ts +1 -1
  184. package/out/test/wallet/action/abortAction.test.d.ts.map +0 -1
  185. package/out/test/wallet/action/createAction.test.d.ts.map +0 -1
  186. package/out/test/wallet/action/createActionToGenerateBeefs.man.test.d.ts.map +0 -1
  187. package/out/test/wallet/action/internalizeAction.test.d.ts.map +0 -1
  188. package/out/test/wallet/action/relinquishOutput.test.d.ts.map +0 -1
  189. package/out/test/wallet/construct/Wallet.constructor.test.d.ts.map +0 -1
  190. package/out/test/wallet/list/listActions.test.d.ts.map +0 -1
  191. package/out/test/wallet/list/listActions2.test.d.ts.map +0 -1
  192. package/out/test/wallet/list/listCertificates.test.d.ts.map +0 -1
  193. package/out/test/wallet/list/listOutputs.test.d.ts.map +0 -1
  194. package/out/test/wallet/sync/Wallet.sync.test.d.ts.map +0 -1
  195. /package/out/test/{wallet → Wallet}/action/abortAction.test.d.ts +0 -0
  196. /package/out/test/{wallet → Wallet}/action/abortAction.test.js +0 -0
  197. /package/out/test/{wallet → Wallet}/action/createAction.test.d.ts +0 -0
  198. /package/out/test/{wallet → Wallet}/action/createAction.test.js +0 -0
  199. /package/out/test/{wallet → Wallet}/action/createAction2.test.d.ts +0 -0
  200. /package/out/test/{wallet → Wallet}/action/createAction2.test.js +0 -0
  201. /package/out/test/{wallet → Wallet}/action/createActionToGenerateBeefs.man.test.d.ts +0 -0
  202. /package/out/test/{wallet → Wallet}/action/createActionToGenerateBeefs.man.test.js +0 -0
  203. /package/out/test/{wallet → Wallet}/action/internalizeAction.test.d.ts +0 -0
  204. /package/out/test/{wallet → Wallet}/action/internalizeAction.test.js +0 -0
  205. /package/out/test/{wallet → Wallet}/action/relinquishOutput.test.d.ts +0 -0
  206. /package/out/test/{wallet → Wallet}/action/relinquishOutput.test.js +0 -0
  207. /package/out/test/{wallet → Wallet}/construct/Wallet.constructor.test.d.ts +0 -0
  208. /package/out/test/{wallet → Wallet}/construct/Wallet.constructor.test.js +0 -0
  209. /package/out/test/{wallet → Wallet}/list/listActions.test.d.ts +0 -0
  210. /package/out/test/{wallet → Wallet}/list/listActions.test.js +0 -0
  211. /package/out/test/{wallet → Wallet}/list/listActions2.test.d.ts +0 -0
  212. /package/out/test/{wallet → Wallet}/list/listActions2.test.js +0 -0
  213. /package/out/test/{wallet → Wallet}/list/listCertificates.test.d.ts +0 -0
  214. /package/out/test/{wallet → Wallet}/list/listCertificates.test.js +0 -0
  215. /package/out/test/{wallet → Wallet}/list/listOutputs.test.d.ts +0 -0
  216. /package/out/test/{wallet → Wallet}/list/listOutputs.test.js +0 -0
  217. /package/out/test/{wallet → Wallet}/sync/Wallet.sync.test.d.ts +0 -0
  218. /package/out/test/{wallet → Wallet}/sync/Wallet.sync.test.js +0 -0
  219. /package/test/{wallet → Wallet}/action/abortAction.test.ts +0 -0
  220. /package/test/{wallet → Wallet}/action/createAction.test.ts +0 -0
  221. /package/test/{wallet → Wallet}/action/createAction2.test.ts +0 -0
  222. /package/test/{wallet → Wallet}/action/createActionToGenerateBeefs.man.test.ts +0 -0
  223. /package/test/{wallet → Wallet}/action/internalizeAction.test.ts +0 -0
  224. /package/test/{wallet → Wallet}/action/relinquishOutput.test.ts +0 -0
  225. /package/test/{wallet → Wallet}/construct/Wallet.constructor.test.ts +0 -0
  226. /package/test/{wallet → Wallet}/list/listActions.test.ts +0 -0
  227. /package/test/{wallet → Wallet}/list/listActions2.test.ts +0 -0
  228. /package/test/{wallet → Wallet}/list/listCertificates.test.ts +0 -0
  229. /package/test/{wallet → Wallet}/list/listOutputs.test.ts +0 -0
  230. /package/test/{wallet → Wallet}/sync/Wallet.sync.test.ts +0 -0
@@ -0,0 +1,286 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.EntityProvenTx = void 0;
4
+ const sdk_1 = require("@bsv/sdk");
5
+ const index_client_1 = require("../../../index.client");
6
+ const _1 = require(".");
7
+ class EntityProvenTx extends _1.EntityBase {
8
+ /**
9
+ * Given a txid and optionally its rawTx, create a new ProvenTx object.
10
+ *
11
+ * rawTx is fetched if not provided.
12
+ *
13
+ * Only succeeds (proven is not undefined) if a proof is confirmed for rawTx,
14
+ * and hash of rawTx is confirmed to match txid
15
+ *
16
+ * The returned ProvenTx and ProvenTxReq objects have not been added to the storage database,
17
+ * this is optional and can be done by the caller if appropriate.
18
+ *
19
+ * @param txid
20
+ * @param services
21
+ * @param rawTx
22
+ * @returns
23
+ */
24
+ static async fromTxid(txid, services, rawTx) {
25
+ var _a;
26
+ const r = { proven: undefined, rawTx };
27
+ const chain = services.chain;
28
+ if (!r.rawTx) {
29
+ const gr = await services.getRawTx(txid);
30
+ if (!(gr === null || gr === void 0 ? void 0 : gr.rawTx))
31
+ // Failing to find anything...
32
+ return r;
33
+ r.rawTx = gr.rawTx;
34
+ }
35
+ const gmpr = await services.getMerklePath(txid);
36
+ if (gmpr.merklePath && gmpr.header) {
37
+ const index = (_a = gmpr.merklePath.path[0].find(l => l.hash === txid)) === null || _a === void 0 ? void 0 : _a.offset;
38
+ if (index !== undefined) {
39
+ const api = {
40
+ created_at: new Date(),
41
+ updated_at: new Date(),
42
+ provenTxId: 0,
43
+ txid,
44
+ height: gmpr.header.height,
45
+ index,
46
+ merklePath: gmpr.merklePath.toBinary(),
47
+ rawTx: r.rawTx,
48
+ blockHash: gmpr.header.hash,
49
+ merkleRoot: gmpr.header.merkleRoot
50
+ };
51
+ r.proven = new EntityProvenTx(api);
52
+ }
53
+ }
54
+ return r;
55
+ }
56
+ constructor(api) {
57
+ const now = new Date();
58
+ super(api || {
59
+ provenTxId: 0,
60
+ created_at: now,
61
+ updated_at: now,
62
+ txid: '',
63
+ height: 0,
64
+ index: 0,
65
+ merklePath: [],
66
+ rawTx: [],
67
+ blockHash: '',
68
+ merkleRoot: ''
69
+ });
70
+ }
71
+ updateApi() {
72
+ /* nothing needed yet... */
73
+ }
74
+ /**
75
+ * @returns desirialized `MerklePath` object, value is cached.
76
+ */
77
+ getMerklePath() {
78
+ if (!this._mp)
79
+ this._mp = sdk_1.MerklePath.fromBinary(this.api.merklePath);
80
+ return this._mp;
81
+ }
82
+ get provenTxId() {
83
+ return this.api.provenTxId;
84
+ }
85
+ set provenTxId(v) {
86
+ this.api.provenTxId = v;
87
+ }
88
+ get created_at() {
89
+ return this.api.created_at;
90
+ }
91
+ set created_at(v) {
92
+ this.api.created_at = v;
93
+ }
94
+ get updated_at() {
95
+ return this.api.updated_at;
96
+ }
97
+ set updated_at(v) {
98
+ this.api.updated_at = v;
99
+ }
100
+ get txid() {
101
+ return this.api.txid;
102
+ }
103
+ set txid(v) {
104
+ this.api.txid = v;
105
+ }
106
+ get height() {
107
+ return this.api.height;
108
+ }
109
+ set height(v) {
110
+ this.api.height = v;
111
+ }
112
+ get index() {
113
+ return this.api.index;
114
+ }
115
+ set index(v) {
116
+ this.api.index = v;
117
+ }
118
+ get merklePath() {
119
+ return this.api.merklePath;
120
+ }
121
+ set merklePath(v) {
122
+ this.api.merklePath = v;
123
+ }
124
+ get rawTx() {
125
+ return this.api.rawTx;
126
+ }
127
+ set rawTx(v) {
128
+ this.api.rawTx = v;
129
+ }
130
+ get blockHash() {
131
+ return this.api.blockHash;
132
+ }
133
+ set blockHash(v) {
134
+ this.api.blockHash = v;
135
+ }
136
+ get merkleRoot() {
137
+ return this.api.merkleRoot;
138
+ }
139
+ set merkleRoot(v) {
140
+ this.api.merkleRoot = v;
141
+ }
142
+ get id() {
143
+ return this.api.provenTxId;
144
+ }
145
+ set id(v) {
146
+ this.api.provenTxId = v;
147
+ }
148
+ get entityName() {
149
+ return 'provenTx';
150
+ }
151
+ get entityTable() {
152
+ return 'proven_txs';
153
+ }
154
+ equals(ei, syncMap) {
155
+ const eo = this.toApi();
156
+ if (eo.txid != ei.txid ||
157
+ eo.height != ei.height ||
158
+ eo.index != ei.index ||
159
+ !(0, index_client_1.arraysEqual)(eo.merklePath, ei.merklePath) ||
160
+ !(0, index_client_1.arraysEqual)(eo.rawTx, ei.rawTx) ||
161
+ eo.blockHash !== ei.blockHash ||
162
+ eo.merkleRoot !== ei.merkleRoot
163
+ // equality does not depend on timestamps.
164
+ // || eo.created_at !== ei.created_at
165
+ // || eo.updated_at !== ei.updated_at
166
+ )
167
+ return false;
168
+ if (syncMap) {
169
+ if (eo.provenTxId !== syncMap.provenTx.idMap[ei.provenTxId])
170
+ return false;
171
+ }
172
+ else {
173
+ if (eo.provenTxId !== ei.provenTxId)
174
+ return false;
175
+ }
176
+ return true;
177
+ }
178
+ static async mergeFind(storage, userId, ei, syncMap, trx) {
179
+ const ef = (0, index_client_1.verifyOneOrNone)(await storage.findProvenTxs({ partial: { txid: ei.txid }, trx }));
180
+ return {
181
+ found: !!ef,
182
+ eo: new EntityProvenTx(ef || { ...ei }),
183
+ eiId: (0, index_client_1.verifyId)(ei.provenTxId)
184
+ };
185
+ }
186
+ async mergeNew(storage, userId, syncMap, trx) {
187
+ this.provenTxId = 0;
188
+ // TODO: Since these records are a shared resource, the record must be validated before accepting it...
189
+ this.provenTxId = await storage.insertProvenTx(this.toApi(), trx);
190
+ }
191
+ async mergeExisting(storage, since, ei, syncMap, trx) {
192
+ // ProvenTxs are never updated.
193
+ return false;
194
+ }
195
+ /**
196
+ * Try to create a new ProvenTx from a ProvenTxReq and GetMerkleProofResultApi
197
+ *
198
+ * Otherwise it returns undefined and updates req.status to either 'unknown', 'invalid', or 'unconfirmed'
199
+ *
200
+ * @param req
201
+ * @param gmpResult
202
+ * @returns
203
+ */
204
+ static async fromReq(req, gmpResult, countsAsAttempt) {
205
+ if (!req.txid)
206
+ throw new index_client_1.sdk.WERR_MISSING_PARAMETER('req.txid');
207
+ if (!req.rawTx)
208
+ throw new index_client_1.sdk.WERR_MISSING_PARAMETER('req.rawTx');
209
+ if (!req.rawTx)
210
+ throw new index_client_1.sdk.WERR_INTERNAL('rawTx must be valid');
211
+ for (const note of gmpResult.notes || []) {
212
+ req.addHistoryNote(note, true);
213
+ }
214
+ if (!gmpResult.name && !gmpResult.merklePath && !gmpResult.error) {
215
+ // Most likely offline or now services configured.
216
+ // Does not count as a proof attempt.
217
+ return undefined;
218
+ }
219
+ if (!gmpResult.merklePath) {
220
+ if (req.created_at) {
221
+ const reqAgeInMsecs = Date.now() - req.created_at.getTime();
222
+ const reqAgeInMinutes = Math.ceil(reqAgeInMsecs < 1 ? 0 : reqAgeInMsecs / (1000 * 60));
223
+ if (req.attempts > EntityProvenTx.getProofAttemptsLimit &&
224
+ reqAgeInMinutes > EntityProvenTx.getProofMinutes) {
225
+ // Start the process of setting transactions to 'failed'
226
+ req.addHistoryNote({
227
+ what: 'getMerklePathGiveUp',
228
+ attempts: req.attempts,
229
+ limit: EntityProvenTx.getProofAttemptsLimit,
230
+ ageInMinutes: reqAgeInMinutes
231
+ }, true);
232
+ req.notified = false;
233
+ req.status = 'invalid';
234
+ }
235
+ }
236
+ return undefined;
237
+ }
238
+ if (countsAsAttempt)
239
+ req.attempts++;
240
+ const merklePaths = Array.isArray(gmpResult.merklePath)
241
+ ? gmpResult.merklePath
242
+ : [gmpResult.merklePath];
243
+ for (const proof of merklePaths) {
244
+ try {
245
+ const now = new Date();
246
+ const leaf = proof.path[0].find(leaf => leaf.txid === true && leaf.hash === req.txid);
247
+ if (!leaf) {
248
+ req.addHistoryNote({ what: 'getMerklePathTxidNotFound' }, true);
249
+ throw new index_client_1.sdk.WERR_INTERNAL('merkle path does not contain leaf for txid');
250
+ }
251
+ const proven = new EntityProvenTx({
252
+ created_at: now,
253
+ updated_at: now,
254
+ provenTxId: 0,
255
+ txid: req.txid,
256
+ height: proof.blockHeight,
257
+ index: leaf.offset,
258
+ merklePath: proof.toBinary(),
259
+ rawTx: req.rawTx,
260
+ merkleRoot: gmpResult.header.merkleRoot,
261
+ blockHash: gmpResult.header.hash
262
+ });
263
+ return proven;
264
+ }
265
+ catch (eu) {
266
+ const e = index_client_1.sdk.WalletError.fromUnknown(eu);
267
+ req.addHistoryNote({
268
+ what: 'getMerklePathProvenError',
269
+ attempts: req.attempts,
270
+ code: e.code,
271
+ description: e.description
272
+ }, true);
273
+ }
274
+ }
275
+ }
276
+ }
277
+ exports.EntityProvenTx = EntityProvenTx;
278
+ /**
279
+ * How high attempts can go before status is forced to invalid
280
+ */
281
+ EntityProvenTx.getProofAttemptsLimit = 8;
282
+ /**
283
+ * How many hours we have to try for a poof
284
+ */
285
+ EntityProvenTx.getProofMinutes = 60;
286
+ //# sourceMappingURL=ProvenTx.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ProvenTx.js","sourceRoot":"","sources":["../../../../../src/storage/schema/entities/ProvenTx.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,135 @@
1
+ import { sdk, StorageProvider, TableProvenTxReq, WalletStorageManager } from '../../../index.client';
2
+ import { EntityBase, EntityStorage, SyncMap } from '.';
3
+ export declare class EntityProvenTxReq extends EntityBase<TableProvenTxReq> {
4
+ static fromStorageTxid(storage: EntityStorage, txid: string, trx?: sdk.TrxToken): Promise<EntityProvenTxReq | undefined>;
5
+ static fromStorageId(storage: EntityStorage, id: number, trx?: sdk.TrxToken): Promise<EntityProvenTxReq>;
6
+ static fromTxid(txid: string, rawTx: number[], inputBEEF?: number[]): EntityProvenTxReq;
7
+ history: ProvenTxReqHistory;
8
+ notify: ProvenTxReqNotify;
9
+ packApiHistory(): void;
10
+ packApiNotify(): void;
11
+ unpackApiHistory(): void;
12
+ unpackApiNotify(): void;
13
+ get apiHistory(): string;
14
+ get apiNotify(): string;
15
+ set apiHistory(v: string);
16
+ set apiNotify(v: string);
17
+ updateApi(): void;
18
+ unpackApi(): void;
19
+ refreshFromStorage(storage: EntityStorage | WalletStorageManager): Promise<void>;
20
+ constructor(api?: TableProvenTxReq);
21
+ /**
22
+ * Returns history to only what followed since date.
23
+ */
24
+ historySince(since: Date): ProvenTxReqHistory;
25
+ historyPretty(since?: Date, indent?: number): string;
26
+ prettyNote(note: sdk.ReqHistoryNote): string;
27
+ getHistorySummary(): ProvenTxReqHistorySummaryApi;
28
+ parseHistoryNote(note: sdk.ReqHistoryNote, summary?: ProvenTxReqHistorySummaryApi): string;
29
+ addNotifyTransactionId(id: number): void;
30
+ /**
31
+ * Adds a note to history.
32
+ * Notes with identical property values to an existing note are ignored.
33
+ * @param note Note to add
34
+ * @param noDupes if true, only newest note with same `what` value is retained.
35
+ */
36
+ addHistoryNote(note: sdk.ReqHistoryNote, noDupes?: boolean): void;
37
+ /**
38
+ * Updates database record with current state of this EntityUser
39
+
40
+ * @param storage
41
+ * @param trx
42
+ */
43
+ updateStorage(storage: EntityStorage, trx?: sdk.TrxToken): Promise<void>;
44
+ /**
45
+ * Update storage with changes to non-static properties:
46
+ * updated_at
47
+ * provenTxId
48
+ * status
49
+ * history
50
+ * notify
51
+ * notified
52
+ * attempts
53
+ * batch
54
+ *
55
+ * @param storage
56
+ * @param trx
57
+ */
58
+ updateStorageDynamicProperties(storage: WalletStorageManager | StorageProvider, trx?: sdk.TrxToken): Promise<void>;
59
+ insertOrMerge(storage: EntityStorage, trx?: sdk.TrxToken): Promise<EntityProvenTxReq>;
60
+ /**
61
+ * See `ProvenTxReqStatusApi`
62
+ */
63
+ get status(): sdk.ProvenTxReqStatus;
64
+ set status(v: sdk.ProvenTxReqStatus);
65
+ get provenTxReqId(): number;
66
+ set provenTxReqId(v: number);
67
+ get created_at(): Date;
68
+ set created_at(v: Date);
69
+ get updated_at(): Date;
70
+ set updated_at(v: Date);
71
+ get txid(): string;
72
+ set txid(v: string);
73
+ get inputBEEF(): number[] | undefined;
74
+ set inputBEEF(v: number[] | undefined);
75
+ get rawTx(): number[];
76
+ set rawTx(v: number[]);
77
+ get attempts(): number;
78
+ set attempts(v: number);
79
+ get provenTxId(): number | undefined;
80
+ set provenTxId(v: number | undefined);
81
+ get notified(): boolean;
82
+ set notified(v: boolean);
83
+ get batch(): string | undefined;
84
+ set batch(v: string | undefined);
85
+ get id(): number;
86
+ set id(v: number);
87
+ get entityName(): string;
88
+ get entityTable(): string;
89
+ /**
90
+ * 'convergent' equality must satisfy (A sync B) equals (B sync A)
91
+ */
92
+ equals(ei: TableProvenTxReq, syncMap?: SyncMap | undefined): boolean;
93
+ static mergeFind(storage: EntityStorage, userId: number, ei: TableProvenTxReq, syncMap: SyncMap, trx?: sdk.TrxToken): Promise<{
94
+ found: boolean;
95
+ eo: EntityProvenTxReq;
96
+ eiId: number;
97
+ }>;
98
+ mapNotifyTransactionIds(syncMap: SyncMap): void;
99
+ mergeNotifyTransactionIds(ei: TableProvenTxReq, syncMap?: SyncMap): void;
100
+ mergeHistory(ei: TableProvenTxReq, syncMap?: SyncMap, noDupes?: boolean): void;
101
+ static isTerminalStatus(status: sdk.ProvenTxReqStatus): boolean;
102
+ mergeNew(storage: EntityStorage, userId: number, syncMap: SyncMap, trx?: sdk.TrxToken): Promise<void>;
103
+ /**
104
+ * When merging `ProvenTxReq`, care is taken to avoid short-cirtuiting notification: `status` must not transition to `completed` without
105
+ * passing through `notifying`. Thus a full convergent merge passes through these sequence steps:
106
+ * 1. Remote storage completes before local storage.
107
+ * 2. The remotely completed req and ProvenTx sync to local storage.
108
+ * 3. The local storage transitions to `notifying`, after merging the remote attempts and history.
109
+ * 4. The local storage notifies, transitioning to `completed`.
110
+ * 5. Having been updated, the local req, but not ProvenTx sync to remote storage, but do not merge because the earlier `completed` wins.
111
+ * 6. Convergent equality is achieved (completing work - history and attempts are equal)
112
+ *
113
+ * On terminal failure: `doubleSpend` trumps `invalid` as it contains more data.
114
+ */
115
+ mergeExisting(storage: EntityStorage, since: Date | undefined, ei: TableProvenTxReq, syncMap: SyncMap, trx?: sdk.TrxToken): Promise<boolean>;
116
+ }
117
+ export interface ProvenTxReqHistorySummaryApi {
118
+ setToCompleted: boolean;
119
+ setToCallback: boolean;
120
+ setToUnmined: boolean;
121
+ setToDoubleSpend: boolean;
122
+ setToSending: boolean;
123
+ setToUnconfirmed: boolean;
124
+ }
125
+ export interface ProvenTxReqHistory {
126
+ /**
127
+ * Keys are Date().toISOString()
128
+ * Values are a description of what happened.
129
+ */
130
+ notes?: sdk.ReqHistoryNote[];
131
+ }
132
+ export interface ProvenTxReqNotify {
133
+ transactionIds?: number[];
134
+ }
135
+ //# sourceMappingURL=ProvenTxReq.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ProvenTxReq.d.ts","sourceRoot":"","sources":["../../../../../src/storage/schema/entities/ProvenTxReq.ts"],"names":[],"mappings":"AACA,OAAO,EAGL,GAAG,EACH,eAAe,EACf,gBAAgB,EAMhB,oBAAoB,EACrB,MAAM,uBAAuB,CAAA;AAC9B,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,GAAG,CAAA;AAItD,qBAAa,iBAAkB,SAAQ,UAAU,CAAC,gBAAgB,CAAC;WACpD,eAAe,CAC1B,OAAO,EAAE,aAAa,EACtB,IAAI,EAAE,MAAM,EACZ,GAAG,CAAC,EAAE,GAAG,CAAC,QAAQ,GACjB,OAAO,CAAC,iBAAiB,GAAG,SAAS,CAAC;WAQ5B,aAAa,CACxB,OAAO,EAAE,aAAa,EACtB,EAAE,EAAE,MAAM,EACV,GAAG,CAAC,EAAE,GAAG,CAAC,QAAQ,GACjB,OAAO,CAAC,iBAAiB,CAAC;IAS7B,MAAM,CAAC,QAAQ,CACb,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,EAAE,EACf,SAAS,CAAC,EAAE,MAAM,EAAE,GACnB,iBAAiB;IAiBpB,OAAO,EAAE,kBAAkB,CAAA;IAC3B,MAAM,EAAE,iBAAiB,CAAA;IAEzB,cAAc;IAGd,aAAa;IAIb,gBAAgB;IAGhB,eAAe;IAIf,IAAI,UAAU,IAAI,MAAM,CAGvB;IACD,IAAI,SAAS,IAAI,MAAM,CAGtB;IAED,IAAI,UAAU,CAAC,CAAC,EAAE,MAAM,EAGvB;IACD,IAAI,SAAS,CAAC,CAAC,EAAE,MAAM,EAGtB;IAED,SAAS,IAAI,IAAI;IAKjB,SAAS,IAAI,IAAI;IAcX,kBAAkB,CACtB,OAAO,EAAE,aAAa,GAAG,oBAAoB,GAC5C,OAAO,CAAC,IAAI,CAAC;gBAQJ,GAAG,CAAC,EAAE,gBAAgB;IAqBlC;;OAEG;IACH,YAAY,CAAC,KAAK,EAAE,IAAI,GAAG,kBAAkB;IAW7C,aAAa,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,MAAM,SAAI,GAAG,MAAM;IAY/C,UAAU,CAAC,IAAI,EAAE,GAAG,CAAC,cAAc,GAAG,MAAM;IAW5C,iBAAiB,IAAI,4BAA4B;IAkBjD,gBAAgB,CACd,IAAI,EAAE,GAAG,CAAC,cAAc,EACxB,OAAO,CAAC,EAAE,4BAA4B,GACrC,MAAM;IAgDT,sBAAsB,CAAC,EAAE,EAAE,MAAM;IAWjC;;;;;OAKG;IACH,cAAc,CAAC,IAAI,EAAE,GAAG,CAAC,cAAc,EAAE,OAAO,CAAC,EAAE,OAAO;IAgC1D;;;;;SAKK;IACC,aAAa,CAAC,OAAO,EAAE,aAAa,EAAE,GAAG,CAAC,EAAE,GAAG,CAAC,QAAQ;IAU9D;;;;;;;;;;;;;OAaG;IACG,8BAA8B,CAClC,OAAO,EAAE,oBAAoB,GAAG,eAAe,EAC/C,GAAG,CAAC,EAAE,GAAG,CAAC,QAAQ;IAyBd,aAAa,CACjB,OAAO,EAAE,aAAa,EACtB,GAAG,CAAC,EAAE,GAAG,CAAC,QAAQ,GACjB,OAAO,CAAC,iBAAiB,CAAC;IAoB7B;;OAEG;IACH,IAAI,MAAM,IAGI,GAAG,CAAC,iBAAiB,CADlC;IACD,IAAI,MAAM,CAAC,CAAC,EAAE,GAAG,CAAC,iBAAiB,EASlC;IACD,IAAI,aAAa,IAGI,MAAM,CAD1B;IACD,IAAI,aAAa,CAAC,CAAC,EAAE,MAAM,EAE1B;IACD,IAAI,UAAU,IAGI,IAAI,CADrB;IACD,IAAI,UAAU,CAAC,CAAC,EAAE,IAAI,EAErB;IACD,IAAI,UAAU,IAGI,IAAI,CADrB;IACD,IAAI,UAAU,CAAC,CAAC,EAAE,IAAI,EAErB;IACD,IAAI,IAAI,IAGI,MAAM,CADjB;IACD,IAAI,IAAI,CAAC,CAAC,EAAE,MAAM,EAEjB;IACD,IAAI,SAAS,IAGI,MAAM,EAAE,GAAG,SAAS,CADpC;IACD,IAAI,SAAS,CAAC,CAAC,EAAE,MAAM,EAAE,GAAG,SAAS,EAEpC;IACD,IAAI,KAAK,IAGI,MAAM,EAAE,CADpB;IACD,IAAI,KAAK,CAAC,CAAC,EAAE,MAAM,EAAE,EAEpB;IACD,IAAI,QAAQ,IAGI,MAAM,CADrB;IACD,IAAI,QAAQ,CAAC,CAAC,EAAE,MAAM,EAErB;IACD,IAAI,UAAU,IAGI,MAAM,GAAG,SAAS,CADnC;IACD,IAAI,UAAU,CAAC,CAAC,EAAE,MAAM,GAAG,SAAS,EAEnC;IACD,IAAI,QAAQ,IAGI,OAAO,CADtB;IACD,IAAI,QAAQ,CAAC,CAAC,EAAE,OAAO,EAEtB;IACD,IAAI,KAAK,IAGI,MAAM,GAAG,SAAS,CAD9B;IACD,IAAI,KAAK,CAAC,CAAC,EAAE,MAAM,GAAG,SAAS,EAE9B;IAED,IAAa,EAAE,IAGI,MAAM,CADxB;IACD,IAAa,EAAE,CAAC,CAAC,EAAE,MAAM,EAExB;IACD,IAAa,UAAU,IAAI,MAAM,CAEhC;IACD,IAAa,WAAW,IAAI,MAAM,CAEjC;IAED;;OAEG;IACM,MAAM,CACb,EAAE,EAAE,gBAAgB,EACpB,OAAO,CAAC,EAAE,OAAO,GAAG,SAAS,GAC5B,OAAO;WA2CG,SAAS,CACpB,OAAO,EAAE,aAAa,EACtB,MAAM,EAAE,MAAM,EACd,EAAE,EAAE,gBAAgB,EACpB,OAAO,EAAE,OAAO,EAChB,GAAG,CAAC,EAAE,GAAG,CAAC,QAAQ,GACjB,OAAO,CAAC;QAAE,KAAK,EAAE,OAAO,CAAC;QAAC,EAAE,EAAE,iBAAiB,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IAWnE,uBAAuB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAa/C,yBAAyB,CAAC,EAAE,EAAE,gBAAgB,EAAE,OAAO,CAAC,EAAE,OAAO,GAAG,IAAI;IAiBxE,YAAY,CACV,EAAE,EAAE,gBAAgB,EACpB,OAAO,CAAC,EAAE,OAAO,EACjB,OAAO,CAAC,EAAE,OAAO,GAChB,IAAI;IASP,MAAM,CAAC,gBAAgB,CAAC,MAAM,EAAE,GAAG,CAAC,iBAAiB,GAAG,OAAO;IAIhD,QAAQ,CACrB,OAAO,EAAE,aAAa,EACtB,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,OAAO,EAChB,GAAG,CAAC,EAAE,GAAG,CAAC,QAAQ,GACjB,OAAO,CAAC,IAAI,CAAC;IAQhB;;;;;;;;;;;OAWG;IACY,aAAa,CAC1B,OAAO,EAAE,aAAa,EACtB,KAAK,EAAE,IAAI,GAAG,SAAS,EACvB,EAAE,EAAE,gBAAgB,EACpB,OAAO,EAAE,OAAO,EAChB,GAAG,CAAC,EAAE,GAAG,CAAC,QAAQ,GACjB,OAAO,CAAC,OAAO,CAAC;CAYpB;AAED,MAAM,WAAW,4BAA4B;IAC3C,cAAc,EAAE,OAAO,CAAA;IACvB,aAAa,EAAE,OAAO,CAAA;IACtB,YAAY,EAAE,OAAO,CAAA;IACrB,gBAAgB,EAAE,OAAO,CAAA;IACzB,YAAY,EAAE,OAAO,CAAA;IACrB,gBAAgB,EAAE,OAAO,CAAA;CAC1B;AAED,MAAM,WAAW,kBAAkB;IACjC;;;OAGG;IACH,KAAK,CAAC,EAAE,GAAG,CAAC,cAAc,EAAE,CAAA;CAC7B;AAED,MAAM,WAAW,iBAAiB;IAChC,cAAc,CAAC,EAAE,MAAM,EAAE,CAAA;CAC1B"}