dop-wallet-v6 1.1.7 → 1.1.9

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 (109) hide show
  1. package/dist/services/artifacts/artifact-downloader.d.ts +1 -1
  2. package/dist/services/artifacts/artifact-downloader.js +20 -20
  3. package/dist/services/artifacts/artifact-downloader.js.map +1 -1
  4. package/dist/services/artifacts/artifact-hash.d.ts +1 -1
  5. package/dist/services/artifacts/artifact-hash.js +8 -8
  6. package/dist/services/artifacts/artifact-hash.js.map +1 -1
  7. package/dist/services/artifacts/artifact-util.d.ts +1 -1
  8. package/dist/services/artifacts/artifact-util.js +26 -18
  9. package/dist/services/artifacts/artifact-util.js.map +1 -1
  10. package/dist/services/artifacts/json/artifact-v2-hashes.json +65 -0
  11. package/dist/services/dop/core/artifacts.d.ts +3 -3
  12. package/dist/services/dop/core/artifacts.js +8 -6
  13. package/dist/services/dop/core/artifacts.js.map +1 -1
  14. package/dist/services/dop/core/engine.d.ts +2 -2
  15. package/dist/services/dop/core/engine.js +16 -13
  16. package/dist/services/dop/core/engine.js.map +1 -1
  17. package/dist/services/dop/core/prover.d.ts +1 -1
  18. package/dist/services/dop/core/prover.js +2 -2
  19. package/dist/services/dop/core/prover.js.map +1 -1
  20. package/dist/services/dop/core/providers.d.ts +3 -3
  21. package/dist/services/dop/core/providers.js +16 -16
  22. package/dist/services/dop/core/providers.js.map +1 -1
  23. package/dist/services/dop/core/shields.d.ts +1 -1
  24. package/dist/services/dop/core/shields.js +2 -2
  25. package/dist/services/dop/core/shields.js.map +1 -1
  26. package/dist/services/dop/history/transaction-history.d.ts +2 -2
  27. package/dist/services/dop/history/transaction-history.js +14 -14
  28. package/dist/services/dop/history/transaction-history.js.map +1 -1
  29. package/dist/services/dop/process/extract-first-note.d.ts +2 -2
  30. package/dist/services/dop/process/extract-first-note.js +15 -15
  31. package/dist/services/dop/process/extract-first-note.js.map +1 -1
  32. package/dist/services/dop/quick-sync/empty-events.d.ts +1 -1
  33. package/dist/services/dop/quick-sync/empty-events.js.map +1 -1
  34. package/dist/services/dop/quick-sync/graph-type-formatters.d.ts +1 -1
  35. package/dist/services/dop/quick-sync/graph-type-formatters.js +15 -15
  36. package/dist/services/dop/quick-sync/graph-type-formatters.js.map +1 -1
  37. package/dist/services/dop/quick-sync/graphql/index.js +5 -5
  38. package/dist/services/dop/quick-sync/graphql/index.js.map +1 -1
  39. package/dist/services/dop/quick-sync/quick-sync-graph.d.ts +1 -1
  40. package/dist/services/dop/quick-sync/quick-sync-graph.js +17 -17
  41. package/dist/services/dop/quick-sync/quick-sync-graph.js.map +1 -1
  42. package/dist/services/dop/util/bytes.d.ts +1 -1
  43. package/dist/services/dop/util/bytes.js +7 -7
  44. package/dist/services/dop/util/bytes.js.map +1 -1
  45. package/dist/services/dop/util/commitment.d.ts +1 -2
  46. package/dist/services/dop/util/commitment.js +5 -4
  47. package/dist/services/dop/util/commitment.js.map +1 -1
  48. package/dist/services/dop/util/crypto.d.ts +2 -2
  49. package/dist/services/dop/util/crypto.js +15 -15
  50. package/dist/services/dop/util/crypto.js.map +1 -1
  51. package/dist/services/dop/util/db.d.ts +1 -1
  52. package/dist/services/dop/util/db.js +2 -2
  53. package/dist/services/dop/util/db.js.map +1 -1
  54. package/dist/services/dop/wallets/balance-update.d.ts +2 -2
  55. package/dist/services/dop/wallets/balance-update.js +6 -6
  56. package/dist/services/dop/wallets/balance-update.js.map +1 -1
  57. package/dist/services/dop/wallets/balances.d.ts +2 -2
  58. package/dist/services/dop/wallets/balances.js.map +1 -1
  59. package/dist/services/dop/wallets/wallets.d.ts +4 -2
  60. package/dist/services/dop/wallets/wallets.js +27 -12
  61. package/dist/services/dop/wallets/wallets.js.map +1 -1
  62. package/dist/services/ethers/ethers-util.js +2 -2
  63. package/dist/services/ethers/ethers-util.js.map +1 -1
  64. package/dist/services/transactions/proof-cache.d.ts +1 -1
  65. package/dist/services/transactions/proof-cache.js +16 -16
  66. package/dist/services/transactions/proof-cache.js.map +1 -1
  67. package/dist/services/transactions/tx-cross-contract-calls.d.ts +2 -4
  68. package/dist/services/transactions/tx-cross-contract-calls.js +269 -117
  69. package/dist/services/transactions/tx-cross-contract-calls.js.map +1 -1
  70. package/dist/services/transactions/tx-gas-details.d.ts +1 -1
  71. package/dist/services/transactions/tx-gas-details.js +36 -24
  72. package/dist/services/transactions/tx-gas-details.js.map +1 -1
  73. package/dist/services/transactions/tx-gas-relayer-fee-estimator.d.ts +1 -4
  74. package/dist/services/transactions/tx-gas-relayer-fee-estimator.js +187 -88
  75. package/dist/services/transactions/tx-gas-relayer-fee-estimator.js.map +1 -1
  76. package/dist/services/transactions/tx-generator.d.ts +4 -5
  77. package/dist/services/transactions/tx-generator.js +71 -42
  78. package/dist/services/transactions/tx-generator.js.map +1 -1
  79. package/dist/services/transactions/tx-notes.d.ts +2 -2
  80. package/dist/services/transactions/tx-notes.js +13 -13
  81. package/dist/services/transactions/tx-notes.js.map +1 -1
  82. package/dist/services/transactions/tx-nullifiers.d.ts +1 -1
  83. package/dist/services/transactions/tx-nullifiers.js.map +1 -1
  84. package/dist/services/transactions/tx-proof-transfer.d.ts +4 -3
  85. package/dist/services/transactions/tx-proof-transfer.js +13 -19
  86. package/dist/services/transactions/tx-proof-transfer.js.map +1 -1
  87. package/dist/services/transactions/tx-proof-unshield.d.ts +3 -4
  88. package/dist/services/transactions/tx-proof-unshield.js +146 -87
  89. package/dist/services/transactions/tx-proof-unshield.js.map +1 -1
  90. package/dist/services/transactions/tx-shield-base-token.d.ts +2 -2
  91. package/dist/services/transactions/tx-shield-base-token.js +13 -10
  92. package/dist/services/transactions/tx-shield-base-token.js.map +1 -1
  93. package/dist/services/transactions/tx-shield.d.ts +1 -1
  94. package/dist/services/transactions/tx-shield.js +16 -12
  95. package/dist/services/transactions/tx-shield.js.map +1 -1
  96. package/dist/services/transactions/tx-transfer.d.ts +1 -2
  97. package/dist/services/transactions/tx-transfer.js +55 -16
  98. package/dist/services/transactions/tx-transfer.js.map +1 -1
  99. package/dist/services/transactions/tx-unshield.d.ts +1 -3
  100. package/dist/services/transactions/tx-unshield.js +119 -40
  101. package/dist/services/transactions/tx-unshield.js.map +1 -1
  102. package/dist/utils/blocked-address.js +3 -3
  103. package/dist/utils/blocked-address.js.map +1 -1
  104. package/dist/utils/error.js +2 -2
  105. package/dist/utils/error.js.map +1 -1
  106. package/dist/utils/gas-price.d.ts +1 -1
  107. package/dist/utils/gas-price.js +13 -13
  108. package/dist/utils/gas-price.js.map +1 -1
  109. package/package.json +3 -3
@@ -1,27 +1,22 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.generateUnshieldBaseTokenProof = exports.generateUnshieldProof = void 0;
4
- const dop_sharedmodel_1 = require("dop-sharedmodel");
3
+ exports.generateUnshieldProof = void 0;
4
+ const dop_sharedmodel_v5_1 = require("dop-sharedmodel-v5");
5
5
  const tx_generator_1 = require("./tx-generator");
6
- const wallets_1 = require("../dop/wallets/wallets");
7
6
  const proof_cache_1 = require("./proof-cache");
8
- const providers_1 = require("../dop/core/providers");
9
- const dop_engine_1 = require("dop-engine");
10
- const blocked_address_1 = require("../../utils/blocked-address");
11
- const tx_cross_contract_calls_1 = require("./tx-cross-contract-calls");
12
7
  const error_1 = require("../../utils/error");
13
- const generateUnshieldProof = async (networkName, dopWalletID, encryptionKey, erc20AmountRecipients, nftAmountRecipients, relayerFeeERC20AmountRecipient, sendWithPublicWallet, overallBatchMinGasPrice, progressCallback) => {
8
+ const generateUnshieldProof = async (networkName, dopWalletID, encryptionKey, erc20AmountRecipients, nftAmountRecipients, relayerFeeERC20AmountRecipient, sendWithPublicWallet, overallBatchMinGasPrice, progressCallback, valueCheck) => {
14
9
  try {
15
10
  (0, proof_cache_1.setCachedProvedTransaction)(undefined);
16
- const transactions = await (0, tx_generator_1.generateProofTransactions)(dop_sharedmodel_1.ProofType.Unshield, networkName, dopWalletID, encryptionKey, false, // showSenderAddressToRecipient
11
+ const transactions = await (0, tx_generator_1.generateProofTransactions)(dop_sharedmodel_v5_1.ProofType.Unshield, networkName, dopWalletID, encryptionKey, false, // showSenderAddressToRecipient
17
12
  undefined, // memoText
18
13
  erc20AmountRecipients, nftAmountRecipients, relayerFeeERC20AmountRecipient, sendWithPublicWallet, undefined, // relayAdaptID
19
14
  false, // useDummyProof
20
- overallBatchMinGasPrice, progressCallback);
15
+ overallBatchMinGasPrice, progressCallback, valueCheck);
21
16
  const transaction = await (0, tx_generator_1.generateTransact)(transactions, networkName);
22
17
  const nullifiers = (0, tx_generator_1.nullifiersForTransactions)(transactions);
23
18
  (0, proof_cache_1.setCachedProvedTransaction)({
24
- proofType: dop_sharedmodel_1.ProofType.Unshield,
19
+ proofType: dop_sharedmodel_v5_1.ProofType.Unshield,
25
20
  dopWalletID,
26
21
  showSenderAddressToRecipient: false,
27
22
  memoText: undefined,
@@ -44,81 +39,145 @@ const generateUnshieldProof = async (networkName, dopWalletID, encryptionKey, er
44
39
  }
45
40
  };
46
41
  exports.generateUnshieldProof = generateUnshieldProof;
47
- const generateUnshieldBaseTokenProof = async (networkName, publicWalletAddress, dopWalletID, encryptionKey, wrappedERC20Amount, relayerFeeERC20AmountRecipient, sendWithPublicWallet, overallBatchMinGasPrice, progressCallback) => {
48
- try {
49
- (0, blocked_address_1.assertNotBlockedAddress)(publicWalletAddress);
50
- (0, wallets_1.assertValidEthAddress)(publicWalletAddress);
51
- (0, proof_cache_1.setCachedProvedTransaction)(undefined);
52
- const erc20AmountRecipients = [
53
- {
54
- ...wrappedERC20Amount,
55
- recipientAddress: publicWalletAddress,
56
- },
57
- ];
58
- const relayAdaptUnshieldERC20Amounts = [
59
- wrappedERC20Amount,
60
- ];
61
- const relayAdaptUnshieldERC20AmountRecipients = (0, tx_cross_contract_calls_1.createRelayAdaptUnshieldERC20AmountRecipients)(networkName, [
62
- wrappedERC20Amount,
63
- ]);
64
- // Empty NFT recipients.
65
- const nftAmountRecipients = [];
66
- const relayAdaptUnshieldNFTAmountRecipients = [];
67
- const relayAdaptContract = (0, providers_1.getRelayAdaptContractForNetwork)(networkName);
68
- // Generate dummy txs for relay adapt params.
69
- const dummyTxs = await (0, tx_generator_1.generateDummyProofTransactions)(dop_sharedmodel_1.ProofType.UnshieldBaseToken, networkName, dopWalletID, encryptionKey, false, // showSenderAddressToRecipient
70
- undefined, // memoText
71
- relayAdaptUnshieldERC20AmountRecipients, relayAdaptUnshieldNFTAmountRecipients, relayerFeeERC20AmountRecipient, sendWithPublicWallet, overallBatchMinGasPrice);
72
- const relayAdaptParamsRandom = (0, dop_engine_1.randomHex)(31);
73
- const relayAdaptParams = await relayAdaptContract.getRelayAdaptParamsUnshieldBaseToken(dummyTxs, publicWalletAddress, relayAdaptParamsRandom);
74
- const relayAdaptID = {
75
- contract: relayAdaptContract.address,
76
- parameters: relayAdaptParams,
77
- };
78
- const showSenderAddressToRecipient = false;
79
- const memoText = undefined;
80
- // console.log("====== 1",
81
- // ProofType.Unshield,
82
- // networkName,
83
- // dopWalletID,
84
- // encryptionKey,
85
- // false, // showSenderAddressToRecipient
86
- // undefined, // memoText
87
- // erc20AmountRecipients,
88
- // nftAmountRecipients,
89
- // relayerFeeERC20AmountRecipient,
90
- // sendWithPublicWallet,
91
- // undefined, // relayAdaptID
92
- // false, // useDummyProof
93
- // overallBatchMinGasPrice,
94
- // progressCallback);
95
- // Generate final txs with relay adapt ID.
96
- const transactions = await (0, tx_generator_1.generateProofTransactions)(dop_sharedmodel_1.ProofType.UnshieldBaseToken, networkName, dopWalletID, encryptionKey, showSenderAddressToRecipient, memoText, relayAdaptUnshieldERC20AmountRecipients, relayAdaptUnshieldNFTAmountRecipients, relayerFeeERC20AmountRecipient, sendWithPublicWallet, relayAdaptID, false, // useDummyProof
97
- overallBatchMinGasPrice, progressCallback);
98
- const transaction = await (0, tx_generator_1.generateUnshieldBaseToken)(transactions, networkName, publicWalletAddress, relayAdaptParamsRandom, false);
99
- const nullifiers = (0, tx_generator_1.nullifiersForTransactions)(transactions);
100
- (0, proof_cache_1.setCachedProvedTransaction)({
101
- proofType: dop_sharedmodel_1.ProofType.UnshieldBaseToken,
102
- dopWalletID,
103
- showSenderAddressToRecipient,
104
- memoText,
105
- erc20AmountRecipients,
106
- nftAmountRecipients,
107
- relayAdaptUnshieldERC20Amounts,
108
- relayAdaptUnshieldNFTAmounts: undefined,
109
- relayAdaptShieldERC20Recipients: undefined,
110
- relayAdaptShieldNFTRecipients: undefined,
111
- crossContractCalls: undefined,
112
- relayerFeeERC20AmountRecipient,
113
- sendWithPublicWallet,
114
- transaction,
115
- overallBatchMinGasPrice,
116
- nullifiers,
117
- });
118
- }
119
- catch (err) {
120
- throw (0, error_1.reportAndSanitizeError)(exports.generateUnshieldBaseTokenProof.name, err);
121
- }
42
+ /*
43
+ export const generateUnshieldBaseTokenProof = async (
44
+ networkName: NetworkName,
45
+ publicWalletAddress: string,
46
+ dopWalletID: string,
47
+ encryptionKey: string,
48
+ wrappedERC20Amount: DopERC20Amount,
49
+ relayerFeeERC20AmountRecipient: Optional<DopERC20AmountRecipient>,
50
+ sendWithPublicWallet: boolean,
51
+ overallBatchMinGasPrice: Optional<bigint>,
52
+ progressCallback: ProverProgressCallback,
53
+ valueCheck: bigint,
54
+ ): Promise<void> => {
55
+ try {
56
+ assertNotBlockedAddress(publicWalletAddress);
57
+ assertValidEthAddress(publicWalletAddress);
58
+
59
+ setCachedProvedTransaction(undefined);
60
+
61
+ const erc20AmountRecipients: DopERC20AmountRecipient[] = [
62
+ {
63
+ ...wrappedERC20Amount,
64
+ recipientAddress: publicWalletAddress,
65
+ },
66
+ ];
67
+
68
+ const relayAdaptUnshieldERC20Amounts: DopERC20Amount[] = [
69
+ wrappedERC20Amount,
70
+ ];
71
+
72
+ const relayAdaptUnshieldERC20AmountRecipients: DopERC20AmountRecipient[] =
73
+ createRelayAdaptUnshieldERC20AmountRecipients(networkName, [
74
+ wrappedERC20Amount,
75
+ ]);
76
+
77
+ // Empty NFT recipients.
78
+ const nftAmountRecipients: DopNFTAmountRecipient[] = [];
79
+ const relayAdaptUnshieldNFTAmountRecipients: DopNFTAmountRecipient[] =
80
+ [];
81
+
82
+ const relayAdaptContract = getRelayAdaptContractForNetwork(networkName);
83
+
84
+ // Generate dummy txs for relay adapt params.
85
+ const dummyTxs = await generateDummyProofTransactions(
86
+ ProofType.UnshieldBaseToken,
87
+ networkName,
88
+ dopWalletID,
89
+ encryptionKey,
90
+ false, // showSenderAddressToRecipient
91
+ undefined, // memoText
92
+ relayAdaptUnshieldERC20AmountRecipients,
93
+ relayAdaptUnshieldNFTAmountRecipients,
94
+ relayerFeeERC20AmountRecipient,
95
+ sendWithPublicWallet,
96
+ overallBatchMinGasPrice,
97
+ valueCheck
98
+ );
99
+
100
+ const relayAdaptParamsRandom = randomHex(31);
101
+ const relayAdaptParams =
102
+ await relayAdaptContract.getRelayAdaptParamsUnshieldBaseToken(
103
+ dummyTxs,
104
+ publicWalletAddress,
105
+ relayAdaptParamsRandom,
106
+ );
107
+ const relayAdaptID: AdaptID = {
108
+ contract: relayAdaptContract.address,
109
+ parameters: relayAdaptParams,
110
+ };
111
+
112
+ const showSenderAddressToRecipient = false;
113
+ const memoText: Optional<string> = undefined;
114
+
115
+
116
+ // console.log("====== 1",
117
+ // ProofType.Unshield,
118
+ // networkName,
119
+ // dopWalletID,
120
+ // encryptionKey,
121
+ // false, // showSenderAddressToRecipient
122
+ // undefined, // memoText
123
+ // erc20AmountRecipients,
124
+ // nftAmountRecipients,
125
+ // relayerFeeERC20AmountRecipient,
126
+ // sendWithPublicWallet,
127
+ // undefined, // relayAdaptID
128
+ // false, // useDummyProof
129
+ // overallBatchMinGasPrice,
130
+ // progressCallback);
131
+ // Generate final txs with relay adapt ID.
132
+ const transactions = await generateProofTransactions(
133
+ ProofType.UnshieldBaseToken,
134
+ networkName,
135
+ dopWalletID,
136
+ encryptionKey,
137
+ showSenderAddressToRecipient,
138
+ memoText,
139
+ relayAdaptUnshieldERC20AmountRecipients,
140
+ relayAdaptUnshieldNFTAmountRecipients,
141
+ relayerFeeERC20AmountRecipient,
142
+ sendWithPublicWallet,
143
+ relayAdaptID,
144
+ false, // useDummyProof
145
+ overallBatchMinGasPrice,
146
+ progressCallback,
147
+ valueCheck
148
+ );
149
+
150
+ const transaction = await generateUnshieldBaseToken(
151
+ transactions,
152
+ networkName,
153
+ publicWalletAddress,
154
+ relayAdaptParamsRandom,
155
+ false, // useDummyProof
156
+ );
157
+
158
+ const nullifiers = nullifiersForTransactions(transactions);
159
+
160
+ setCachedProvedTransaction({
161
+ proofType: ProofType.UnshieldBaseToken,
162
+ dopWalletID,
163
+ showSenderAddressToRecipient,
164
+ memoText,
165
+ erc20AmountRecipients,
166
+ nftAmountRecipients,
167
+ relayAdaptUnshieldERC20Amounts,
168
+ relayAdaptUnshieldNFTAmounts: undefined,
169
+ relayAdaptShieldERC20Recipients: undefined,
170
+ relayAdaptShieldNFTRecipients: undefined,
171
+ crossContractCalls: undefined,
172
+ relayerFeeERC20AmountRecipient,
173
+ sendWithPublicWallet,
174
+ transaction,
175
+ overallBatchMinGasPrice,
176
+ nullifiers,
177
+ });
178
+ } catch (err) {
179
+ throw reportAndSanitizeError(generateUnshieldBaseTokenProof.name, err);
180
+ }
122
181
  };
123
- exports.generateUnshieldBaseTokenProof = generateUnshieldBaseTokenProof;
182
+ */
124
183
  //# sourceMappingURL=tx-proof-unshield.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"tx-proof-unshield.js","sourceRoot":"","sources":["../../../src/services/transactions/tx-proof-unshield.ts"],"names":[],"mappings":";;;AAAA,qDAMyB;AACzB,iDAMwB;AACxB,oDAA+D;AAC/D,+CAA2D;AAC3D,qDAAwE;AACxE,2CAIoB;AACpB,iEAAsE;AACtE,uEAA0F;AAC1F,6CAA2D;AAEpD,MAAM,qBAAqB,GAAG,KAAK,EACxC,WAAwB,EACxB,WAAmB,EACnB,aAAqB,EACrB,qBAAgD,EAChD,mBAA4C,EAC5C,8BAAiE,EACjE,oBAA6B,EAC7B,uBAAyC,EACzC,gBAAwC,EACzB,EAAE;IACjB,IAAI;QACF,IAAA,wCAA0B,EAAC,SAAS,CAAC,CAAC;QAEtC,MAAM,YAAY,GAAG,MAAM,IAAA,wCAAyB,EAClD,2BAAS,CAAC,QAAQ,EAClB,WAAW,EACX,WAAW,EACX,aAAa,EACb,KAAK,EAAE,+BAA+B;QACtC,SAAS,EAAE,WAAW;QACtB,qBAAqB,EACrB,mBAAmB,EACnB,8BAA8B,EAC9B,oBAAoB,EACpB,SAAS,EAAE,eAAe;QAC1B,KAAK,EAAE,gBAAgB;QACvB,uBAAuB,EACvB,gBAAgB,CACjB,CAAC;QACF,MAAM,WAAW,GAAG,MAAM,IAAA,+BAAgB,EAAC,YAAY,EAAE,WAAW,CAAC,CAAC;QAEtE,MAAM,UAAU,GAAG,IAAA,wCAAyB,EAAC,YAAY,CAAC,CAAC;QAE3D,IAAA,wCAA0B,EAAC;YACzB,SAAS,EAAE,2BAAS,CAAC,QAAQ;YAC7B,WAAW;YACX,4BAA4B,EAAE,KAAK;YACnC,QAAQ,EAAE,SAAS;YACnB,qBAAqB;YACrB,mBAAmB;YACnB,8BAA8B,EAAE,SAAS;YACzC,4BAA4B,EAAE,SAAS;YACvC,+BAA+B,EAAE,SAAS;YAC1C,6BAA6B,EAAE,SAAS;YACxC,kBAAkB,EAAE,SAAS;YAC7B,8BAA8B;YAC9B,WAAW;YACX,oBAAoB;YACpB,uBAAuB;YACvB,UAAU;SACX,CAAC,CAAC;KACJ;IAAC,OAAO,GAAG,EAAE;QACZ,MAAM,IAAA,8BAAsB,EAAC,6BAAqB,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;KAC/D;AACH,CAAC,CAAC;AAvDW,QAAA,qBAAqB,yBAuDhC;AAEK,MAAM,8BAA8B,GAAG,KAAK,EACjD,WAAwB,EACxB,mBAA2B,EAC3B,WAAmB,EACnB,aAAqB,EACrB,kBAAkC,EAClC,8BAAiE,EACjE,oBAA6B,EAC7B,uBAAyC,EACzC,gBAAwC,EACzB,EAAE;IACjB,IAAI;QACF,IAAA,yCAAuB,EAAC,mBAAmB,CAAC,CAAC;QAC7C,IAAA,+BAAqB,EAAC,mBAAmB,CAAC,CAAC;QAE3C,IAAA,wCAA0B,EAAC,SAAS,CAAC,CAAC;QAEtC,MAAM,qBAAqB,GAA8B;YACvD;gBACE,GAAG,kBAAkB;gBACrB,gBAAgB,EAAE,mBAAmB;aACtC;SACF,CAAC;QAEF,MAAM,8BAA8B,GAAqB;YACvD,kBAAkB;SACnB,CAAC;QAEF,MAAM,uCAAuC,GAC3C,IAAA,uEAA6C,EAAC,WAAW,EAAE;YACzD,kBAAkB;SACnB,CAAC,CAAC;QAEL,wBAAwB;QACxB,MAAM,mBAAmB,GAA4B,EAAE,CAAC;QACxD,MAAM,qCAAqC,GACzC,EAAE,CAAC;QAEL,MAAM,kBAAkB,GAAG,IAAA,2CAA+B,EAAC,WAAW,CAAC,CAAC;QAExE,6CAA6C;QAC7C,MAAM,QAAQ,GAAG,MAAM,IAAA,6CAA8B,EACnD,2BAAS,CAAC,iBAAiB,EAC3B,WAAW,EACX,WAAW,EACX,aAAa,EACb,KAAK,EAAE,+BAA+B;QACtC,SAAS,EAAE,WAAW;QACtB,uCAAuC,EACvC,qCAAqC,EACrC,8BAA8B,EAC9B,oBAAoB,EACpB,uBAAuB,CACxB,CAAC;QAEF,MAAM,sBAAsB,GAAG,IAAA,sBAAS,EAAC,EAAE,CAAC,CAAC;QAC7C,MAAM,gBAAgB,GACpB,MAAM,kBAAkB,CAAC,oCAAoC,CAC3D,QAAQ,EACR,mBAAmB,EACnB,sBAAsB,CACvB,CAAC;QACJ,MAAM,YAAY,GAAY;YAC5B,QAAQ,EAAE,kBAAkB,CAAC,OAAO;YACpC,UAAU,EAAE,gBAAgB;SAC7B,CAAC;QAEF,MAAM,4BAA4B,GAAG,KAAK,CAAC;QAC3C,MAAM,QAAQ,GAAqB,SAAS,CAAC;QAG7C,0BAA0B;QAC1B,wBAAwB;QACxB,iBAAiB;QACjB,iBAAiB;QACjB,mBAAmB;QACnB,2CAA2C;QAC3C,2BAA2B;QAC3B,2BAA2B;QAC3B,yBAAyB;QACzB,oCAAoC;QACpC,0BAA0B;QAC1B,+BAA+B;QAC/B,4BAA4B;QAC5B,6BAA6B;QAC7B,uBAAuB;QACvB,0CAA0C;QAC1C,MAAM,YAAY,GAAG,MAAM,IAAA,wCAAyB,EAClD,2BAAS,CAAC,iBAAiB,EAC3B,WAAW,EACX,WAAW,EACX,aAAa,EACb,4BAA4B,EAC5B,QAAQ,EACR,uCAAuC,EACvC,qCAAqC,EACrC,8BAA8B,EAC9B,oBAAoB,EACpB,YAAY,EACZ,KAAK,EAAE,gBAAgB;QACvB,uBAAuB,EACvB,gBAAgB,CACjB,CAAC;QAEF,MAAM,WAAW,GAAG,MAAM,IAAA,wCAAyB,EACjD,YAAY,EACZ,WAAW,EACX,mBAAmB,EACnB,sBAAsB,EACtB,KAAK,CACN,CAAC;QAEF,MAAM,UAAU,GAAG,IAAA,wCAAyB,EAAC,YAAY,CAAC,CAAC;QAE3D,IAAA,wCAA0B,EAAC;YACzB,SAAS,EAAE,2BAAS,CAAC,iBAAiB;YACtC,WAAW;YACX,4BAA4B;YAC5B,QAAQ;YACR,qBAAqB;YACrB,mBAAmB;YACnB,8BAA8B;YAC9B,4BAA4B,EAAE,SAAS;YACvC,+BAA+B,EAAE,SAAS;YAC1C,6BAA6B,EAAE,SAAS;YACxC,kBAAkB,EAAE,SAAS;YAC7B,8BAA8B;YAC9B,oBAAoB;YACpB,WAAW;YACX,uBAAuB;YACvB,UAAU;SACX,CAAC,CAAC;KACJ;IAAC,OAAO,GAAG,EAAE;QACZ,MAAM,IAAA,8BAAsB,EAAC,sCAA8B,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;KACxE;AACH,CAAC,CAAC;AAvIW,QAAA,8BAA8B,kCAuIzC","sourcesContent":["import {\n DopERC20Amount,\n NetworkName,\n ProofType,\n DopERC20AmountRecipient,\n DopNFTAmountRecipient,\n} from 'dop-sharedmodel';\nimport {\n generateDummyProofTransactions,\n generateProofTransactions,\n generateTransact,\n generateUnshieldBaseToken,\n nullifiersForTransactions,\n} from './tx-generator';\nimport { assertValidEthAddress } from '../dop/wallets/wallets';\nimport { setCachedProvedTransaction } from './proof-cache';\nimport { getRelayAdaptContractForNetwork } from '../dop/core/providers';\nimport {\n AdaptID,\n ProverProgressCallback,\n randomHex,\n} from 'dop-engine';\nimport { assertNotBlockedAddress } from '../../utils/blocked-address';\nimport { createRelayAdaptUnshieldERC20AmountRecipients } from './tx-cross-contract-calls';\nimport { reportAndSanitizeError } from '../../utils/error';\n\nexport const generateUnshieldProof = async (\n networkName: NetworkName,\n dopWalletID: string,\n encryptionKey: string,\n erc20AmountRecipients: DopERC20AmountRecipient[],\n nftAmountRecipients: DopNFTAmountRecipient[],\n relayerFeeERC20AmountRecipient: Optional<DopERC20AmountRecipient>,\n sendWithPublicWallet: boolean,\n overallBatchMinGasPrice: Optional<bigint>,\n progressCallback: ProverProgressCallback,\n): Promise<void> => {\n try {\n setCachedProvedTransaction(undefined);\n\n const transactions = await generateProofTransactions(\n ProofType.Unshield,\n networkName,\n dopWalletID,\n encryptionKey,\n false, // showSenderAddressToRecipient\n undefined, // memoText\n erc20AmountRecipients,\n nftAmountRecipients,\n relayerFeeERC20AmountRecipient,\n sendWithPublicWallet,\n undefined, // relayAdaptID\n false, // useDummyProof\n overallBatchMinGasPrice,\n progressCallback,\n );\n const transaction = await generateTransact(transactions, networkName);\n\n const nullifiers = nullifiersForTransactions(transactions);\n\n setCachedProvedTransaction({\n proofType: ProofType.Unshield,\n dopWalletID,\n showSenderAddressToRecipient: false,\n memoText: undefined,\n erc20AmountRecipients,\n nftAmountRecipients,\n relayAdaptUnshieldERC20Amounts: undefined,\n relayAdaptUnshieldNFTAmounts: undefined,\n relayAdaptShieldERC20Recipients: undefined,\n relayAdaptShieldNFTRecipients: undefined,\n crossContractCalls: undefined,\n relayerFeeERC20AmountRecipient,\n transaction,\n sendWithPublicWallet,\n overallBatchMinGasPrice,\n nullifiers,\n });\n } catch (err) {\n throw reportAndSanitizeError(generateUnshieldProof.name, err);\n }\n};\n\nexport const generateUnshieldBaseTokenProof = async (\n networkName: NetworkName,\n publicWalletAddress: string,\n dopWalletID: string,\n encryptionKey: string,\n wrappedERC20Amount: DopERC20Amount,\n relayerFeeERC20AmountRecipient: Optional<DopERC20AmountRecipient>,\n sendWithPublicWallet: boolean,\n overallBatchMinGasPrice: Optional<bigint>,\n progressCallback: ProverProgressCallback,\n): Promise<void> => {\n try {\n assertNotBlockedAddress(publicWalletAddress);\n assertValidEthAddress(publicWalletAddress);\n\n setCachedProvedTransaction(undefined);\n\n const erc20AmountRecipients: DopERC20AmountRecipient[] = [\n {\n ...wrappedERC20Amount,\n recipientAddress: publicWalletAddress,\n },\n ];\n\n const relayAdaptUnshieldERC20Amounts: DopERC20Amount[] = [\n wrappedERC20Amount,\n ];\n\n const relayAdaptUnshieldERC20AmountRecipients: DopERC20AmountRecipient[] =\n createRelayAdaptUnshieldERC20AmountRecipients(networkName, [\n wrappedERC20Amount,\n ]);\n\n // Empty NFT recipients.\n const nftAmountRecipients: DopNFTAmountRecipient[] = [];\n const relayAdaptUnshieldNFTAmountRecipients: DopNFTAmountRecipient[] =\n [];\n\n const relayAdaptContract = getRelayAdaptContractForNetwork(networkName);\n\n // Generate dummy txs for relay adapt params.\n const dummyTxs = await generateDummyProofTransactions(\n ProofType.UnshieldBaseToken,\n networkName,\n dopWalletID,\n encryptionKey,\n false, // showSenderAddressToRecipient\n undefined, // memoText\n relayAdaptUnshieldERC20AmountRecipients,\n relayAdaptUnshieldNFTAmountRecipients,\n relayerFeeERC20AmountRecipient,\n sendWithPublicWallet,\n overallBatchMinGasPrice,\n );\n\n const relayAdaptParamsRandom = randomHex(31);\n const relayAdaptParams =\n await relayAdaptContract.getRelayAdaptParamsUnshieldBaseToken(\n dummyTxs,\n publicWalletAddress,\n relayAdaptParamsRandom,\n );\n const relayAdaptID: AdaptID = {\n contract: relayAdaptContract.address,\n parameters: relayAdaptParams,\n };\n\n const showSenderAddressToRecipient = false;\n const memoText: Optional<string> = undefined;\n\n\n // console.log(\"====== 1\",\n // ProofType.Unshield,\n // networkName,\n // dopWalletID,\n // encryptionKey,\n // false, // showSenderAddressToRecipient\n // undefined, // memoText\n // erc20AmountRecipients,\n // nftAmountRecipients,\n // relayerFeeERC20AmountRecipient,\n // sendWithPublicWallet,\n // undefined, // relayAdaptID\n // false, // useDummyProof\n // overallBatchMinGasPrice,\n // progressCallback);\n // Generate final txs with relay adapt ID.\n const transactions = await generateProofTransactions(\n ProofType.UnshieldBaseToken,\n networkName,\n dopWalletID,\n encryptionKey,\n showSenderAddressToRecipient,\n memoText,\n relayAdaptUnshieldERC20AmountRecipients,\n relayAdaptUnshieldNFTAmountRecipients,\n relayerFeeERC20AmountRecipient,\n sendWithPublicWallet,\n relayAdaptID,\n false, // useDummyProof\n overallBatchMinGasPrice,\n progressCallback,\n );\n\n const transaction = await generateUnshieldBaseToken(\n transactions,\n networkName,\n publicWalletAddress,\n relayAdaptParamsRandom,\n false, // useDummyProof\n );\n\n const nullifiers = nullifiersForTransactions(transactions);\n\n setCachedProvedTransaction({\n proofType: ProofType.UnshieldBaseToken,\n dopWalletID,\n showSenderAddressToRecipient,\n memoText,\n erc20AmountRecipients,\n nftAmountRecipients,\n relayAdaptUnshieldERC20Amounts,\n relayAdaptUnshieldNFTAmounts: undefined,\n relayAdaptShieldERC20Recipients: undefined,\n relayAdaptShieldNFTRecipients: undefined,\n crossContractCalls: undefined,\n relayerFeeERC20AmountRecipient,\n sendWithPublicWallet,\n transaction,\n overallBatchMinGasPrice,\n nullifiers,\n });\n } catch (err) {\n throw reportAndSanitizeError(generateUnshieldBaseTokenProof.name, err);\n }\n};\n"]}
1
+ {"version":3,"file":"tx-proof-unshield.js","sourceRoot":"","sources":["../../../src/services/transactions/tx-proof-unshield.ts"],"names":[],"mappings":";;;AAAA,2DAM4B;AAC5B,iDAMwB;AAExB,+CAA2D;AAS3D,6CAA2D;AAEpD,MAAM,qBAAqB,GAAG,KAAK,EACxC,WAAwB,EACxB,WAAmB,EACnB,aAAqB,EACrB,qBAAgD,EAChD,mBAA4C,EAC5C,8BAAiE,EACjE,oBAA6B,EAC7B,uBAAyC,EACzC,gBAAwC,EACxC,UAAkB,EACH,EAAE;IACjB,IAAI;QACF,IAAA,wCAA0B,EAAC,SAAS,CAAC,CAAC;QAEtC,MAAM,YAAY,GAAG,MAAM,IAAA,wCAAyB,EAClD,8BAAS,CAAC,QAAQ,EAClB,WAAW,EACX,WAAW,EACX,aAAa,EACb,KAAK,EAAE,+BAA+B;QACtC,SAAS,EAAE,WAAW;QACtB,qBAAqB,EACrB,mBAAmB,EACnB,8BAA8B,EAC9B,oBAAoB,EACpB,SAAS,EAAE,eAAe;QAC1B,KAAK,EAAE,gBAAgB;QACvB,uBAAuB,EACvB,gBAAgB,EAChB,UAAU,CACX,CAAC;QACF,MAAM,WAAW,GAAG,MAAM,IAAA,+BAAgB,EAAC,YAAY,EAAE,WAAW,CAAC,CAAC;QAEtE,MAAM,UAAU,GAAG,IAAA,wCAAyB,EAAC,YAAY,CAAC,CAAC;QAE3D,IAAA,wCAA0B,EAAC;YACzB,SAAS,EAAE,8BAAS,CAAC,QAAQ;YAC7B,WAAW;YACX,4BAA4B,EAAE,KAAK;YACnC,QAAQ,EAAE,SAAS;YACnB,qBAAqB;YACrB,mBAAmB;YACnB,8BAA8B,EAAE,SAAS;YACzC,4BAA4B,EAAE,SAAS;YACvC,+BAA+B,EAAE,SAAS;YAC1C,6BAA6B,EAAE,SAAS;YACxC,kBAAkB,EAAE,SAAS;YAC7B,8BAA8B;YAC9B,WAAW;YACX,oBAAoB;YACpB,uBAAuB;YACvB,UAAU;SACX,CAAC,CAAC;KACJ;IAAC,OAAO,GAAG,EAAE;QACZ,MAAM,IAAA,8BAAsB,EAAC,6BAAqB,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;KAC/D;AACH,CAAC,CAAC;AAzDW,QAAA,qBAAqB,yBAyDhC;AACF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA4IE","sourcesContent":["import {\n DopERC20Amount,\n NetworkName,\n ProofType,\n DopERC20AmountRecipient,\n DopNFTAmountRecipient,\n} from 'dop-sharedmodel-v5';\nimport {\n generateDummyProofTransactions,\n generateProofTransactions,\n generateTransact,\n // generateUnshieldBaseToken,\n nullifiersForTransactions,\n} from './tx-generator';\nimport { assertValidEthAddress } from '../dop/wallets/wallets';\nimport { setCachedProvedTransaction } from './proof-cache';\nimport { getRelayAdaptContractForNetwork } from '../dop/core/providers';\nimport {\n AdaptID,\n ProverProgressCallback,\n randomHex,\n} from 'dop-engine-v5';\nimport { assertNotBlockedAddress } from '../../utils/blocked-address';\nimport { createRelayAdaptUnshieldERC20AmountRecipients } from './tx-cross-contract-calls';\nimport { reportAndSanitizeError } from '../../utils/error';\n\nexport const generateUnshieldProof = async (\n networkName: NetworkName,\n dopWalletID: string,\n encryptionKey: string,\n erc20AmountRecipients: DopERC20AmountRecipient[],\n nftAmountRecipients: DopNFTAmountRecipient[],\n relayerFeeERC20AmountRecipient: Optional<DopERC20AmountRecipient>,\n sendWithPublicWallet: boolean,\n overallBatchMinGasPrice: Optional<bigint>,\n progressCallback: ProverProgressCallback,\n valueCheck: bigint,\n): Promise<void> => {\n try {\n setCachedProvedTransaction(undefined);\n\n const transactions = await generateProofTransactions(\n ProofType.Unshield,\n networkName,\n dopWalletID,\n encryptionKey,\n false, // showSenderAddressToRecipient\n undefined, // memoText\n erc20AmountRecipients,\n nftAmountRecipients,\n relayerFeeERC20AmountRecipient,\n sendWithPublicWallet,\n undefined, // relayAdaptID\n false, // useDummyProof\n overallBatchMinGasPrice,\n progressCallback,\n valueCheck,\n );\n const transaction = await generateTransact(transactions, networkName);\n\n const nullifiers = nullifiersForTransactions(transactions);\n\n setCachedProvedTransaction({\n proofType: ProofType.Unshield,\n dopWalletID,\n showSenderAddressToRecipient: false,\n memoText: undefined,\n erc20AmountRecipients,\n nftAmountRecipients,\n relayAdaptUnshieldERC20Amounts: undefined,\n relayAdaptUnshieldNFTAmounts: undefined,\n relayAdaptShieldERC20Recipients: undefined,\n relayAdaptShieldNFTRecipients: undefined,\n crossContractCalls: undefined,\n relayerFeeERC20AmountRecipient,\n transaction,\n sendWithPublicWallet,\n overallBatchMinGasPrice,\n nullifiers,\n });\n } catch (err) {\n throw reportAndSanitizeError(generateUnshieldProof.name, err);\n }\n};\n/*\nexport const generateUnshieldBaseTokenProof = async (\n networkName: NetworkName,\n publicWalletAddress: string,\n dopWalletID: string,\n encryptionKey: string,\n wrappedERC20Amount: DopERC20Amount,\n relayerFeeERC20AmountRecipient: Optional<DopERC20AmountRecipient>,\n sendWithPublicWallet: boolean,\n overallBatchMinGasPrice: Optional<bigint>,\n progressCallback: ProverProgressCallback,\n valueCheck: bigint,\n): Promise<void> => {\n try {\n assertNotBlockedAddress(publicWalletAddress);\n assertValidEthAddress(publicWalletAddress);\n\n setCachedProvedTransaction(undefined);\n\n const erc20AmountRecipients: DopERC20AmountRecipient[] = [\n {\n ...wrappedERC20Amount,\n recipientAddress: publicWalletAddress,\n },\n ];\n\n const relayAdaptUnshieldERC20Amounts: DopERC20Amount[] = [\n wrappedERC20Amount,\n ];\n\n const relayAdaptUnshieldERC20AmountRecipients: DopERC20AmountRecipient[] =\n createRelayAdaptUnshieldERC20AmountRecipients(networkName, [\n wrappedERC20Amount,\n ]);\n\n // Empty NFT recipients.\n const nftAmountRecipients: DopNFTAmountRecipient[] = [];\n const relayAdaptUnshieldNFTAmountRecipients: DopNFTAmountRecipient[] =\n [];\n\n const relayAdaptContract = getRelayAdaptContractForNetwork(networkName);\n\n // Generate dummy txs for relay adapt params.\n const dummyTxs = await generateDummyProofTransactions(\n ProofType.UnshieldBaseToken,\n networkName,\n dopWalletID,\n encryptionKey,\n false, // showSenderAddressToRecipient\n undefined, // memoText\n relayAdaptUnshieldERC20AmountRecipients,\n relayAdaptUnshieldNFTAmountRecipients,\n relayerFeeERC20AmountRecipient,\n sendWithPublicWallet,\n overallBatchMinGasPrice,\n valueCheck\n );\n\n const relayAdaptParamsRandom = randomHex(31);\n const relayAdaptParams =\n await relayAdaptContract.getRelayAdaptParamsUnshieldBaseToken(\n dummyTxs,\n publicWalletAddress,\n relayAdaptParamsRandom,\n );\n const relayAdaptID: AdaptID = {\n contract: relayAdaptContract.address,\n parameters: relayAdaptParams,\n };\n\n const showSenderAddressToRecipient = false;\n const memoText: Optional<string> = undefined;\n\n\n // console.log(\"====== 1\",\n // ProofType.Unshield,\n // networkName,\n // dopWalletID,\n // encryptionKey,\n // false, // showSenderAddressToRecipient\n // undefined, // memoText\n // erc20AmountRecipients,\n // nftAmountRecipients,\n // relayerFeeERC20AmountRecipient,\n // sendWithPublicWallet,\n // undefined, // relayAdaptID\n // false, // useDummyProof\n // overallBatchMinGasPrice,\n // progressCallback);\n // Generate final txs with relay adapt ID.\n const transactions = await generateProofTransactions(\n ProofType.UnshieldBaseToken,\n networkName,\n dopWalletID,\n encryptionKey,\n showSenderAddressToRecipient,\n memoText,\n relayAdaptUnshieldERC20AmountRecipients,\n relayAdaptUnshieldNFTAmountRecipients,\n relayerFeeERC20AmountRecipient,\n sendWithPublicWallet,\n relayAdaptID,\n false, // useDummyProof\n overallBatchMinGasPrice,\n progressCallback,\n valueCheck\n );\n\n const transaction = await generateUnshieldBaseToken(\n transactions,\n networkName,\n publicWalletAddress,\n relayAdaptParamsRandom,\n false, // useDummyProof\n );\n\n const nullifiers = nullifiersForTransactions(transactions);\n\n setCachedProvedTransaction({\n proofType: ProofType.UnshieldBaseToken,\n dopWalletID,\n showSenderAddressToRecipient,\n memoText,\n erc20AmountRecipients,\n nftAmountRecipients,\n relayAdaptUnshieldERC20Amounts,\n relayAdaptUnshieldNFTAmounts: undefined,\n relayAdaptShieldERC20Recipients: undefined,\n relayAdaptShieldNFTRecipients: undefined,\n crossContractCalls: undefined,\n relayerFeeERC20AmountRecipient,\n sendWithPublicWallet,\n transaction,\n overallBatchMinGasPrice,\n nullifiers,\n });\n } catch (err) {\n throw reportAndSanitizeError(generateUnshieldBaseTokenProof.name, err);\n }\n};\n*/"]}
@@ -1,3 +1,3 @@
1
- import { DopPopulateTransactionResponse, DopTransactionGasEstimateResponse, DopERC20Amount, NetworkName, TransactionGasDetails } from 'dop-sharedmodel';
2
- export declare const populateShieldBaseToken: (networkName: NetworkName, dopAddress: string, shieldPrivateKey: string, wrappedERC20Amount: DopERC20Amount, gasDetails?: TransactionGasDetails) => Promise<DopPopulateTransactionResponse>;
1
+ import { DopPopulateTransactionResponse, DopTransactionGasEstimateResponse, DopERC20Amount, NetworkName, TransactionGasDetails } from 'dop-sharedmodel-v5';
2
+ export declare const populateShieldBaseToken: (networkName: NetworkName, dopAddress: string, shieldPrivateKey: string, wrappedERC20Amount: DopERC20Amount, fromWalletAddress: string, gasDetails?: TransactionGasDetails) => Promise<DopPopulateTransactionResponse>;
3
3
  export declare const gasEstimateForShieldBaseToken: (networkName: NetworkName, dopAddress: string, shieldPrivateKey: string, wrappedERC20Amount: DopERC20Amount, fromWalletAddress: string) => Promise<DopTransactionGasEstimateResponse>;
@@ -4,18 +4,19 @@ exports.gasEstimateForShieldBaseToken = exports.populateShieldBaseToken = void 0
4
4
  const providers_1 = require("../dop/core/providers");
5
5
  const tx_gas_details_1 = require("./tx-gas-details");
6
6
  const blocked_address_1 = require("../../utils/blocked-address");
7
- const dop_engine_1 = require("dop-engine");
7
+ const dop_engine_v5_1 = require("dop-engine-v5");
8
8
  const dop_1 = require("../dop");
9
9
  const error_1 = require("../../utils/error");
10
- const generateShieldBaseTokenTransaction = async (networkName, dopAddress, shieldPrivateKey, wrappedERC20Amount) => {
10
+ const generateShieldBaseTokenTransaction = async (networkName, dopAddress, shieldPrivateKey, wrappedERC20Amount, fromWalletAddress) => {
11
11
  try {
12
12
  const relayAdaptContract = (0, providers_1.getRelayAdaptContractForNetwork)(networkName);
13
- const { masterPublicKey, viewingPublicKey } = dop_engine_1.DopEngine.decodeAddress(dopAddress);
14
- const random = (0, dop_engine_1.randomHex)(16);
13
+ const { masterPublicKey, viewingPublicKey } = dop_engine_v5_1.DopEngine.decodeAddress(dopAddress);
14
+ const random = (0, dop_engine_v5_1.randomHex)(16);
15
15
  const { amount, tokenAddress } = wrappedERC20Amount;
16
- const shield = new dop_engine_1.ShieldNoteERC20(masterPublicKey, random, amount, tokenAddress);
17
- const shieldRequest = await shield.serialize((0, dop_engine_1.hexToBytes)(shieldPrivateKey), viewingPublicKey);
18
- const transaction = await relayAdaptContract.populateShieldBaseToken(shieldRequest);
16
+ const shield = new dop_engine_v5_1.ShieldNoteERC20(masterPublicKey, random, amount, tokenAddress);
17
+ const shieldRequest = await shield.serialize((0, dop_engine_v5_1.hexToBytes)(shieldPrivateKey), viewingPublicKey);
18
+ console.log("before populateShieldBaseToken");
19
+ const transaction = await relayAdaptContract.populateShieldBaseToken(shieldRequest, fromWalletAddress);
19
20
  return transaction;
20
21
  }
21
22
  catch (err) {
@@ -23,10 +24,10 @@ const generateShieldBaseTokenTransaction = async (networkName, dopAddress, shiel
23
24
  throw sanitizedError;
24
25
  }
25
26
  };
26
- const populateShieldBaseToken = async (networkName, dopAddress, shieldPrivateKey, wrappedERC20Amount, gasDetails) => {
27
+ const populateShieldBaseToken = async (networkName, dopAddress, shieldPrivateKey, wrappedERC20Amount, fromWalletAddress, gasDetails) => {
27
28
  try {
28
29
  (0, dop_1.assertValidDopAddress)(dopAddress);
29
- const transaction = await generateShieldBaseTokenTransaction(networkName, dopAddress, shieldPrivateKey, wrappedERC20Amount);
30
+ const transaction = await generateShieldBaseTokenTransaction(networkName, dopAddress, shieldPrivateKey, wrappedERC20Amount, fromWalletAddress);
30
31
  if (gasDetails) {
31
32
  const sendWithPublicWallet = true;
32
33
  (0, tx_gas_details_1.setGasDetailsForTransaction)(networkName, transaction, gasDetails, sendWithPublicWallet);
@@ -44,7 +45,9 @@ const gasEstimateForShieldBaseToken = async (networkName, dopAddress, shieldPriv
44
45
  try {
45
46
  (0, dop_1.assertValidDopAddress)(dopAddress);
46
47
  (0, blocked_address_1.assertNotBlockedAddress)(fromWalletAddress);
47
- const transaction = await generateShieldBaseTokenTransaction(networkName, dopAddress, shieldPrivateKey, wrappedERC20Amount);
48
+ console.log("before generateShieldBaseTokenTransaction");
49
+ const transaction = await generateShieldBaseTokenTransaction(networkName, dopAddress, shieldPrivateKey, wrappedERC20Amount, fromWalletAddress);
50
+ console.log("before generateShieldBaseTokenTransaction2");
48
51
  const sendWithPublicWallet = true;
49
52
  const isGasEstimateWithDummyProof = false;
50
53
  return (0, tx_gas_details_1.gasEstimateResponse)(await (0, tx_gas_details_1.getGasEstimate)(networkName, transaction, fromWalletAddress, sendWithPublicWallet, false), undefined, // relayerFeeCommitment
@@ -1 +1 @@
1
- {"version":3,"file":"tx-shield-base-token.js","sourceRoot":"","sources":["../../../src/services/transactions/tx-shield-base-token.ts"],"names":[],"mappings":";;;AAOA,qDAAwE;AACxE,qDAI0B;AAC1B,iEAAsE;AACtE,2CAKoB;AACpB,gCAA+C;AAC/C,6CAA2D;AAG3D,MAAM,kCAAkC,GAAG,KAAK,EAC9C,WAAwB,EACxB,UAAkB,EAClB,gBAAwB,EACxB,kBAAkC,EACJ,EAAE;IAChC,IAAI;QACF,MAAM,kBAAkB,GAAG,IAAA,2CAA+B,EAAC,WAAW,CAAC,CAAC;QACxE,MAAM,EAAE,eAAe,EAAE,gBAAgB,EAAE,GACzC,sBAAS,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;QACtC,MAAM,MAAM,GAAG,IAAA,sBAAS,EAAC,EAAE,CAAC,CAAC;QAE7B,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,GAAG,kBAAkB,CAAC;QAEpD,MAAM,MAAM,GAAG,IAAI,4BAAe,CAChC,eAAe,EACf,MAAM,EACN,MAAM,EACN,YAAY,CACb,CAAC;QAEF,MAAM,aAAa,GAAG,MAAM,MAAM,CAAC,SAAS,CAC1C,IAAA,uBAAU,EAAC,gBAAgB,CAAC,EAC5B,gBAAgB,CACjB,CAAC;QAEF,MAAM,WAAW,GAAG,MAAM,kBAAkB,CAAC,uBAAuB,CAClE,aAAa,CACd,CAAC;QAEF,OAAO,WAAW,CAAC;KACpB;IAAC,OAAO,GAAG,EAAE;QACZ,MAAM,cAAc,GAAG,IAAA,8BAAsB,EAC3C,kCAAkC,CAAC,IAAI,EACvC,GAAG,CACJ,CAAC;QACF,MAAM,cAAc,CAAC;KACtB;AACH,CAAC,CAAC;AAEK,MAAM,uBAAuB,GAAG,KAAK,EAC1C,WAAwB,EACxB,UAAkB,EAClB,gBAAwB,EACxB,kBAAkC,EAClC,UAAkC,EACO,EAAE;IAC3C,IAAI;QACF,IAAA,2BAAqB,EAAC,UAAU,CAAC,CAAC;QAElC,MAAM,WAAW,GAAG,MAAM,kCAAkC,CAC1D,WAAW,EACX,UAAU,EACV,gBAAgB,EAChB,kBAAkB,CACnB,CAAC;QAEF,IAAI,UAAU,EAAE;YACd,MAAM,oBAAoB,GAAG,IAAI,CAAC;YAClC,IAAA,4CAA2B,EACzB,WAAW,EACX,WAAW,EACX,UAAU,EACV,oBAAoB,CACrB,CAAC;SACH;QAED,OAAO;YACL,WAAW;SACZ,CAAC;KACH;IAAC,OAAO,GAAG,EAAE;QACZ,MAAM,IAAA,8BAAsB,EAAC,+BAAuB,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;KACjE;AACH,CAAC,CAAC;AAjCW,QAAA,uBAAuB,2BAiClC;AAEK,MAAM,6BAA6B,GAAG,KAAK,EAChD,WAAwB,EACxB,UAAkB,EAClB,gBAAwB,EACxB,kBAAkC,EAClC,iBAAyB,EACmB,EAAE;IAC9C,IAAI;QACF,IAAA,2BAAqB,EAAC,UAAU,CAAC,CAAC;QAClC,IAAA,yCAAuB,EAAC,iBAAiB,CAAC,CAAC;QAE3C,MAAM,WAAW,GAAG,MAAM,kCAAkC,CAC1D,WAAW,EACX,UAAU,EACV,gBAAgB,EAChB,kBAAkB,CACnB,CAAC;QAEF,MAAM,oBAAoB,GAAG,IAAI,CAAC;QAClC,MAAM,2BAA2B,GAAG,KAAK,CAAC;QAC1C,OAAO,IAAA,oCAAmB,EACxB,MAAM,IAAA,+BAAc,EAClB,WAAW,EACX,WAAW,EACX,iBAAiB,EACjB,oBAAoB,EACpB,KAAK,CACN,EACD,SAAS,EAAE,uBAAuB;QAClC,2BAA2B,CAC5B,CAAC;KACH;IAAC,OAAO,GAAG,EAAE;QACZ,MAAM,IAAA,8BAAsB,EAAC,qCAA6B,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;KACvE;AACH,CAAC,CAAC;AAlCW,QAAA,6BAA6B,iCAkCxC","sourcesContent":["import {\n DopPopulateTransactionResponse,\n DopTransactionGasEstimateResponse,\n DopERC20Amount,\n NetworkName,\n TransactionGasDetails,\n} from 'dop-sharedmodel';\nimport { getRelayAdaptContractForNetwork } from '../dop/core/providers';\nimport {\n gasEstimateResponse,\n getGasEstimate,\n setGasDetailsForTransaction,\n} from './tx-gas-details';\nimport { assertNotBlockedAddress } from '../../utils/blocked-address';\nimport {\n randomHex,\n ShieldNoteERC20,\n DopEngine,\n hexToBytes,\n} from 'dop-engine';\nimport { assertValidDopAddress } from '../dop';\nimport { reportAndSanitizeError } from '../../utils/error';\nimport { ContractTransaction } from 'ethers';\n\nconst generateShieldBaseTokenTransaction = async (\n networkName: NetworkName,\n dopAddress: string,\n shieldPrivateKey: string,\n wrappedERC20Amount: DopERC20Amount,\n): Promise<ContractTransaction> => {\n try {\n const relayAdaptContract = getRelayAdaptContractForNetwork(networkName);\n const { masterPublicKey, viewingPublicKey } =\n DopEngine.decodeAddress(dopAddress);\n const random = randomHex(16);\n\n const { amount, tokenAddress } = wrappedERC20Amount;\n\n const shield = new ShieldNoteERC20(\n masterPublicKey,\n random,\n amount,\n tokenAddress,\n );\n\n const shieldRequest = await shield.serialize(\n hexToBytes(shieldPrivateKey),\n viewingPublicKey,\n );\n\n const transaction = await relayAdaptContract.populateShieldBaseToken(\n shieldRequest,\n );\n\n return transaction;\n } catch (err) {\n const sanitizedError = reportAndSanitizeError(\n generateShieldBaseTokenTransaction.name,\n err,\n );\n throw sanitizedError;\n }\n};\n\nexport const populateShieldBaseToken = async (\n networkName: NetworkName,\n dopAddress: string,\n shieldPrivateKey: string,\n wrappedERC20Amount: DopERC20Amount,\n gasDetails?: TransactionGasDetails,\n): Promise<DopPopulateTransactionResponse> => {\n try {\n assertValidDopAddress(dopAddress);\n\n const transaction = await generateShieldBaseTokenTransaction(\n networkName,\n dopAddress,\n shieldPrivateKey,\n wrappedERC20Amount,\n );\n\n if (gasDetails) {\n const sendWithPublicWallet = true;\n setGasDetailsForTransaction(\n networkName,\n transaction,\n gasDetails,\n sendWithPublicWallet,\n );\n }\n\n return {\n transaction,\n };\n } catch (err) {\n throw reportAndSanitizeError(populateShieldBaseToken.name, err);\n }\n};\n\nexport const gasEstimateForShieldBaseToken = async (\n networkName: NetworkName,\n dopAddress: string,\n shieldPrivateKey: string,\n wrappedERC20Amount: DopERC20Amount,\n fromWalletAddress: string,\n): Promise<DopTransactionGasEstimateResponse> => {\n try {\n assertValidDopAddress(dopAddress);\n assertNotBlockedAddress(fromWalletAddress);\n\n const transaction = await generateShieldBaseTokenTransaction(\n networkName,\n dopAddress,\n shieldPrivateKey,\n wrappedERC20Amount,\n );\n\n const sendWithPublicWallet = true;\n const isGasEstimateWithDummyProof = false;\n return gasEstimateResponse(\n await getGasEstimate(\n networkName,\n transaction,\n fromWalletAddress,\n sendWithPublicWallet,\n false, // isCrossContractCall\n ),\n undefined, // relayerFeeCommitment\n isGasEstimateWithDummyProof,\n );\n } catch (err) {\n throw reportAndSanitizeError(gasEstimateForShieldBaseToken.name, err);\n }\n};\n"]}
1
+ {"version":3,"file":"tx-shield-base-token.js","sourceRoot":"","sources":["../../../src/services/transactions/tx-shield-base-token.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n DopPopulateTransactionResponse,\n DopTransactionGasEstimateResponse,\n DopERC20Amount,\n NetworkName,\n TransactionGasDetails,\n} from 'dop-sharedmodel-v5';\nimport { getRelayAdaptContractForNetwork } from '../dop/core/providers';\nimport {\n gasEstimateResponse,\n getGasEstimate,\n setGasDetailsForTransaction,\n} from './tx-gas-details';\nimport { assertNotBlockedAddress } from '../../utils/blocked-address';\nimport {\n randomHex,\n ShieldNoteERC20,\n DopEngine,\n hexToBytes,\n} from 'dop-engine-v5';\nimport { assertValidDopAddress } from '../dop';\nimport { reportAndSanitizeError } from '../../utils/error';\nimport { ContractTransaction } from 'ethers';\n\nconst generateShieldBaseTokenTransaction = async (\n networkName: NetworkName,\n dopAddress: string,\n shieldPrivateKey: string,\n wrappedERC20Amount: DopERC20Amount,\n fromWalletAddress: string\n): Promise<ContractTransaction> => {\n try {\n const relayAdaptContract = getRelayAdaptContractForNetwork(networkName);\n const { masterPublicKey, viewingPublicKey } =\n DopEngine.decodeAddress(dopAddress);\n const random = randomHex(16);\n\n const { amount, tokenAddress } = wrappedERC20Amount;\n\n const shield = new ShieldNoteERC20(\n masterPublicKey,\n random,\n amount,\n tokenAddress,\n );\n\n const shieldRequest = await shield.serialize(\n hexToBytes(shieldPrivateKey),\n viewingPublicKey,\n );\n console.log(\"before populateShieldBaseToken\")\n\n\n const transaction = await relayAdaptContract.populateShieldBaseToken(\n shieldRequest,\n fromWalletAddress\n );\n\n return transaction;\n } catch (err) {\n const sanitizedError = reportAndSanitizeError(\n generateShieldBaseTokenTransaction.name,\n err,\n );\n throw sanitizedError;\n }\n};\n\nexport const populateShieldBaseToken = async (\n networkName: NetworkName,\n dopAddress: string,\n shieldPrivateKey: string,\n wrappedERC20Amount: DopERC20Amount,\n fromWalletAddress: string,\n gasDetails?: TransactionGasDetails,\n): Promise<DopPopulateTransactionResponse> => {\n try {\n assertValidDopAddress(dopAddress);\n\n const transaction = await generateShieldBaseTokenTransaction(\n networkName,\n dopAddress,\n shieldPrivateKey,\n wrappedERC20Amount,\n fromWalletAddress,\n );\n\n if (gasDetails) {\n const sendWithPublicWallet = true;\n setGasDetailsForTransaction(\n networkName,\n transaction,\n gasDetails,\n sendWithPublicWallet,\n );\n }\n\n return {\n transaction,\n };\n } catch (err) {\n throw reportAndSanitizeError(populateShieldBaseToken.name, err);\n }\n};\n\nexport const gasEstimateForShieldBaseToken = async (\n networkName: NetworkName,\n dopAddress: string,\n shieldPrivateKey: string,\n wrappedERC20Amount: DopERC20Amount,\n fromWalletAddress: string,\n): Promise<DopTransactionGasEstimateResponse> => {\n try {\n assertValidDopAddress(dopAddress);\n assertNotBlockedAddress(fromWalletAddress);\n console.log(\"before generateShieldBaseTokenTransaction\")\n\n const transaction = await generateShieldBaseTokenTransaction(\n networkName,\n dopAddress,\n shieldPrivateKey,\n wrappedERC20Amount,\n fromWalletAddress,\n );\n\n console.log(\"before generateShieldBaseTokenTransaction2\")\n\n\n const sendWithPublicWallet = true;\n const isGasEstimateWithDummyProof = false;\n return gasEstimateResponse(\n await getGasEstimate(\n networkName,\n transaction,\n fromWalletAddress,\n sendWithPublicWallet,\n false, // isCrossContractCall\n ),\n undefined, // relayerFeeCommitment\n isGasEstimateWithDummyProof,\n );\n } catch (err) {\n throw reportAndSanitizeError(gasEstimateForShieldBaseToken.name, err);\n }\n};\n"]}
@@ -1,4 +1,4 @@
1
- import { DopPopulateTransactionResponse, DopTransactionGasEstimateResponse, NetworkName, DopERC20AmountRecipient, DopNFTAmountRecipient, TransactionGasDetails } from 'dop-sharedmodel';
1
+ import { DopPopulateTransactionResponse, DopTransactionGasEstimateResponse, NetworkName, DopERC20AmountRecipient, DopNFTAmountRecipient, TransactionGasDetails } from 'dop-sharedmodel-v5';
2
2
  import { ContractTransaction } from 'ethers';
3
3
  export declare const getShieldPrivateKeySignatureMessage: () => string;
4
4
  export declare const generateShieldTransaction: (networkName: NetworkName, shieldPrivateKey: string, erc20AmountRecipients: DopERC20AmountRecipient[], nftAmountRecipients: DopNFTAmountRecipient[]) => Promise<ContractTransaction>;
@@ -1,44 +1,46 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.gasEstimateForShield = exports.populateShield = exports.generateShieldTransaction = exports.getShieldPrivateKeySignatureMessage = void 0;
4
- const dop_sharedmodel_1 = require("dop-sharedmodel");
5
- const dop_engine_1 = require("dop-engine");
4
+ const dop_sharedmodel_v5_1 = require("dop-sharedmodel-v5");
5
+ const dop_engine_v5_1 = require("dop-engine-v5");
6
6
  const tx_gas_details_1 = require("./tx-gas-details");
7
7
  const blocked_address_1 = require("../../utils/blocked-address");
8
8
  const dop_1 = require("../dop");
9
9
  const tx_cross_contract_calls_1 = require("./tx-cross-contract-calls");
10
10
  const error_1 = require("../../utils/error");
11
11
  const getShieldPrivateKeySignatureMessage = () => {
12
- return dop_engine_1.ShieldNote.getShieldPrivateKeySignatureMessage();
12
+ return dop_engine_v5_1.ShieldNote.getShieldPrivateKeySignatureMessage();
13
13
  };
14
14
  exports.getShieldPrivateKeySignatureMessage = getShieldPrivateKeySignatureMessage;
15
15
  const generateERC20ShieldRequests = async (erc20AmountRecipient, random, shieldPrivateKey) => {
16
16
  const dopAddress = erc20AmountRecipient.recipientAddress;
17
17
  (0, dop_1.assertValidDopAddress)(dopAddress);
18
- const { masterPublicKey, viewingPublicKey } = dop_engine_1.DopEngine.decodeAddress(dopAddress);
19
- const shield = new dop_engine_1.ShieldNoteERC20(masterPublicKey, random, erc20AmountRecipient.amount, erc20AmountRecipient.tokenAddress);
20
- return shield.serialize((0, dop_engine_1.hexToBytes)(shieldPrivateKey), viewingPublicKey);
18
+ const { masterPublicKey, viewingPublicKey } = dop_engine_v5_1.DopEngine.decodeAddress(dopAddress);
19
+ const shield = new dop_engine_v5_1.ShieldNoteERC20(masterPublicKey, random, erc20AmountRecipient.amount, erc20AmountRecipient.tokenAddress);
20
+ return shield.serialize((0, dop_engine_v5_1.hexToBytes)(shieldPrivateKey), viewingPublicKey);
21
21
  };
22
22
  const generateNFTShieldRequests = async (nftAmountRecipient, random, shieldPrivateKey) => {
23
23
  const dopAddress = nftAmountRecipient.recipientAddress;
24
24
  (0, dop_1.assertValidDopAddress)(dopAddress);
25
- const { masterPublicKey, viewingPublicKey } = dop_engine_1.DopEngine.decodeAddress(dopAddress);
26
- const value = nftAmountRecipient.nftTokenType === dop_sharedmodel_1.NFTTokenType.ERC721
27
- ? dop_engine_1.ERC721_NOTE_VALUE
25
+ const { masterPublicKey, viewingPublicKey } = dop_engine_v5_1.DopEngine.decodeAddress(dopAddress);
26
+ const value = nftAmountRecipient.nftTokenType === dop_sharedmodel_v5_1.NFTTokenType.ERC721
27
+ ? dop_engine_v5_1.ERC721_NOTE_VALUE
28
28
  : nftAmountRecipient.amount;
29
29
  const nftTokenData = (0, tx_cross_contract_calls_1.createNFTTokenDataFromDopNFTAmount)(nftAmountRecipient);
30
- const shield = new dop_engine_1.ShieldNoteNFT(masterPublicKey, random, value, nftTokenData);
31
- return shield.serialize((0, dop_engine_1.hexToBytes)(shieldPrivateKey), viewingPublicKey);
30
+ const shield = new dop_engine_v5_1.ShieldNoteNFT(masterPublicKey, random, value, nftTokenData);
31
+ return shield.serialize((0, dop_engine_v5_1.hexToBytes)(shieldPrivateKey), viewingPublicKey);
32
32
  };
33
33
  const generateShieldTransaction = async (networkName, shieldPrivateKey, erc20AmountRecipients, nftAmountRecipients) => {
34
34
  try {
35
35
  const dopSmartWalletContract = (0, dop_1.getDopSmartWalletContractForNetwork)(networkName);
36
- const random = (0, dop_engine_1.randomHex)(16);
36
+ const random = (0, dop_engine_v5_1.randomHex)(16);
37
37
  const shieldInputs = await Promise.all([
38
38
  ...erc20AmountRecipients.map(erc20AmountRecipient => generateERC20ShieldRequests(erc20AmountRecipient, random, shieldPrivateKey)),
39
39
  ...nftAmountRecipients.map(nftAmountRecipient => generateNFTShieldRequests(nftAmountRecipient, random, shieldPrivateKey)),
40
40
  ]);
41
+ console.log("shieldInputs:::", shieldInputs);
41
42
  const transaction = await dopSmartWalletContract.generateShield(shieldInputs);
43
+ console.log("transaction:::", transaction);
42
44
  return transaction;
43
45
  }
44
46
  catch (err) {
@@ -50,6 +52,7 @@ exports.generateShieldTransaction = generateShieldTransaction;
50
52
  const populateShield = async (networkName, shieldPrivateKey, erc20AmountRecipients, nftAmountRecipients, gasDetails) => {
51
53
  try {
52
54
  const transaction = await (0, exports.generateShieldTransaction)(networkName, shieldPrivateKey, erc20AmountRecipients, nftAmountRecipients);
55
+ console.log("transaction:::0", transaction);
53
56
  if (gasDetails) {
54
57
  const sendWithPublicWallet = true;
55
58
  (0, tx_gas_details_1.setGasDetailsForTransaction)(networkName, transaction, gasDetails, sendWithPublicWallet);
@@ -67,6 +70,7 @@ const gasEstimateForShield = async (networkName, shieldPrivateKey, erc20AmountRe
67
70
  try {
68
71
  (0, blocked_address_1.assertNotBlockedAddress)(fromWalletAddress);
69
72
  const transaction = await (0, exports.generateShieldTransaction)(networkName, shieldPrivateKey, erc20AmountRecipients, nftAmountRecipients);
73
+ console.log("transaction:::1", transaction);
70
74
  const sendWithPublicWallet = true;
71
75
  const isGasEstimateWithDummyProof = false;
72
76
  return (0, tx_gas_details_1.gasEstimateResponse)(await (0, tx_gas_details_1.getGasEstimate)(networkName, transaction, fromWalletAddress, sendWithPublicWallet, false), undefined, // relayerFeeCommitment
@@ -1 +1 @@
1
- {"version":3,"file":"tx-shield.js","sourceRoot":"","sources":["../../../src/services/transactions/tx-shield.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n DopPopulateTransactionResponse,\n DopTransactionGasEstimateResponse,\n NetworkName,\n DopERC20AmountRecipient,\n DopNFTAmountRecipient,\n NFTTokenType,\n TransactionGasDetails,\n} from 'dop-sharedmodel';\nimport {\n ShieldNote,\n DopEngine,\n ShieldRequestStruct,\n randomHex,\n hexToBytes,\n ShieldNoteERC20,\n ShieldNoteNFT,\n ERC721_NOTE_VALUE,\n} from 'dop-engine';\nimport {\n gasEstimateResponse,\n getGasEstimate,\n setGasDetailsForTransaction,\n} from './tx-gas-details';\nimport { assertNotBlockedAddress } from '../../utils/blocked-address';\nimport {\n assertValidDopAddress,\n getDopSmartWalletContractForNetwork,\n} from '../dop';\nimport { createNFTTokenDataFromDopNFTAmount } from './tx-cross-contract-calls';\nimport { reportAndSanitizeError } from '../../utils/error';\nimport { ContractTransaction } from 'ethers';\n\nexport const getShieldPrivateKeySignatureMessage = () => {\n return ShieldNote.getShieldPrivateKeySignatureMessage();\n};\n\nconst generateERC20ShieldRequests = async (\n erc20AmountRecipient: DopERC20AmountRecipient,\n random: string,\n shieldPrivateKey: string,\n): Promise<ShieldRequestStruct> => {\n const dopAddress = erc20AmountRecipient.recipientAddress;\n\n assertValidDopAddress(dopAddress);\n\n const { masterPublicKey, viewingPublicKey } =\n DopEngine.decodeAddress(dopAddress);\n\n const shield = new ShieldNoteERC20(\n masterPublicKey,\n random,\n erc20AmountRecipient.amount,\n erc20AmountRecipient.tokenAddress,\n );\n return shield.serialize(hexToBytes(shieldPrivateKey), viewingPublicKey);\n};\n\nconst generateNFTShieldRequests = async (\n nftAmountRecipient: DopNFTAmountRecipient,\n random: string,\n shieldPrivateKey: string,\n): Promise<ShieldRequestStruct> => {\n const dopAddress = nftAmountRecipient.recipientAddress;\n\n assertValidDopAddress(dopAddress);\n\n const { masterPublicKey, viewingPublicKey } =\n DopEngine.decodeAddress(dopAddress);\n\n const value =\n nftAmountRecipient.nftTokenType === NFTTokenType.ERC721\n ? ERC721_NOTE_VALUE\n : nftAmountRecipient.amount;\n\n\n const nftTokenData =\n createNFTTokenDataFromDopNFTAmount(nftAmountRecipient);\n\n const shield = new ShieldNoteNFT(\n masterPublicKey,\n random,\n value,\n nftTokenData,\n );\n\n return shield.serialize(hexToBytes(shieldPrivateKey), viewingPublicKey);\n};\n\nexport const generateShieldTransaction = async (\n networkName: NetworkName,\n shieldPrivateKey: string,\n erc20AmountRecipients: DopERC20AmountRecipient[],\n nftAmountRecipients: DopNFTAmountRecipient[],\n): Promise<ContractTransaction> => {\n try {\n const dopSmartWalletContract =\n getDopSmartWalletContractForNetwork(networkName);\n\n const random = randomHex(16);\n\n const shieldInputs: ShieldRequestStruct[] = await Promise.all([\n ...erc20AmountRecipients.map(erc20AmountRecipient =>\n generateERC20ShieldRequests(\n erc20AmountRecipient,\n random,\n shieldPrivateKey,\n ),\n ),\n ...nftAmountRecipients.map(nftAmountRecipient =>\n generateNFTShieldRequests(nftAmountRecipient, random, shieldPrivateKey),\n ),\n ]);\n\n const transaction = await dopSmartWalletContract.generateShield(\n shieldInputs,\n );\n\n return transaction;\n } catch (err) {\n const sanitizedError = reportAndSanitizeError(\n generateShieldTransaction.name,\n err,\n );\n throw sanitizedError;\n }\n};\n\nexport const populateShield = async (\n networkName: NetworkName,\n shieldPrivateKey: string,\n erc20AmountRecipients: DopERC20AmountRecipient[],\n nftAmountRecipients: DopNFTAmountRecipient[],\n gasDetails?: TransactionGasDetails,\n): Promise<DopPopulateTransactionResponse> => {\n try {\n const transaction = await generateShieldTransaction(\n networkName,\n shieldPrivateKey,\n erc20AmountRecipients,\n nftAmountRecipients,\n );\n\n if (gasDetails) {\n const sendWithPublicWallet = true;\n setGasDetailsForTransaction(\n networkName,\n transaction,\n gasDetails,\n sendWithPublicWallet,\n );\n }\n\n return {\n transaction,\n };\n } catch (err) {\n throw reportAndSanitizeError(populateShield.name, err);\n }\n};\n\nexport const gasEstimateForShield = async (\n networkName: NetworkName,\n shieldPrivateKey: string,\n erc20AmountRecipients: DopERC20AmountRecipient[],\n nftAmountRecipients: DopNFTAmountRecipient[],\n fromWalletAddress: string,\n): Promise<DopTransactionGasEstimateResponse> => {\n try {\n assertNotBlockedAddress(fromWalletAddress);\n\n const transaction = await generateShieldTransaction(\n networkName,\n shieldPrivateKey,\n erc20AmountRecipients,\n nftAmountRecipients,\n );\n\n\n const sendWithPublicWallet = true;\n const isGasEstimateWithDummyProof = false;\n return gasEstimateResponse(\n await getGasEstimate(\n networkName,\n transaction,\n fromWalletAddress,\n sendWithPublicWallet,\n false, // isCrossContractCall\n ),\n undefined, // relayerFeeCommitment\n isGasEstimateWithDummyProof,\n );\n } catch (err) {\n throw reportAndSanitizeError(gasEstimateForShield.name, err);\n }\n};\n"]}
1
+ {"version":3,"file":"tx-shield.js","sourceRoot":"","sources":["../../../src/services/transactions/tx-shield.ts"],"names":[],"mappings":";;;AAAA,2DAQ4B;AAC5B,iDASuB;AACvB,qDAI0B;AAC1B,iEAAsE;AACtE,gCAGgB;AAChB,uEAA+E;AAC/E,6CAA2D;AAGpD,MAAM,mCAAmC,GAAG,GAAG,EAAE;IACtD,OAAO,0BAAU,CAAC,mCAAmC,EAAE,CAAC;AAC1D,CAAC,CAAC;AAFW,QAAA,mCAAmC,uCAE9C;AAEF,MAAM,2BAA2B,GAAG,KAAK,EACvC,oBAA6C,EAC7C,MAAc,EACd,gBAAwB,EACM,EAAE;IAChC,MAAM,UAAU,GAAG,oBAAoB,CAAC,gBAAgB,CAAC;IAEzD,IAAA,2BAAqB,EAAC,UAAU,CAAC,CAAC;IAElC,MAAM,EAAE,eAAe,EAAE,gBAAgB,EAAE,GACzC,yBAAS,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;IAEtC,MAAM,MAAM,GAAG,IAAI,+BAAe,CAChC,eAAe,EACf,MAAM,EACN,oBAAoB,CAAC,MAAM,EAC3B,oBAAoB,CAAC,YAAY,CAClC,CAAC;IACF,OAAO,MAAM,CAAC,SAAS,CAAC,IAAA,0BAAU,EAAC,gBAAgB,CAAC,EAAE,gBAAgB,CAAC,CAAC;AAC1E,CAAC,CAAC;AAEF,MAAM,yBAAyB,GAAG,KAAK,EACrC,kBAAyC,EACzC,MAAc,EACd,gBAAwB,EACM,EAAE;IAChC,MAAM,UAAU,GAAG,kBAAkB,CAAC,gBAAgB,CAAC;IAEvD,IAAA,2BAAqB,EAAC,UAAU,CAAC,CAAC;IAElC,MAAM,EAAE,eAAe,EAAE,gBAAgB,EAAE,GACzC,yBAAS,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;IAEtC,MAAM,KAAK,GACT,kBAAkB,CAAC,YAAY,KAAK,iCAAY,CAAC,MAAM;QACrD,CAAC,CAAC,iCAAiB;QACnB,CAAC,CAAC,kBAAkB,CAAC,MAAM,CAAC;IAGhC,MAAM,YAAY,GAChB,IAAA,4DAAkC,EAAC,kBAAkB,CAAC,CAAC;IAEzD,MAAM,MAAM,GAAG,IAAI,6BAAa,CAC9B,eAAe,EACf,MAAM,EACN,KAAK,EACL,YAAY,CACb,CAAC;IAEF,OAAO,MAAM,CAAC,SAAS,CAAC,IAAA,0BAAU,EAAC,gBAAgB,CAAC,EAAE,gBAAgB,CAAC,CAAC;AAC1E,CAAC,CAAC;AAEK,MAAM,yBAAyB,GAAG,KAAK,EAC5C,WAAwB,EACxB,gBAAwB,EACxB,qBAAgD,EAChD,mBAA4C,EACd,EAAE;IAChC,IAAI;QACF,MAAM,sBAAsB,GAC1B,IAAA,yCAAmC,EAAC,WAAW,CAAC,CAAC;QAEnD,MAAM,MAAM,GAAG,IAAA,yBAAS,EAAC,EAAE,CAAC,CAAC;QAE7B,MAAM,YAAY,GAA0B,MAAM,OAAO,CAAC,GAAG,CAAC;YAC5D,GAAG,qBAAqB,CAAC,GAAG,CAAC,oBAAoB,CAAC,EAAE,CAClD,2BAA2B,CACzB,oBAAoB,EACpB,MAAM,EACN,gBAAgB,CACjB,CACF;YACD,GAAG,mBAAmB,CAAC,GAAG,CAAC,kBAAkB,CAAC,EAAE,CAC9C,yBAAyB,CAAC,kBAAkB,EAAE,MAAM,EAAE,gBAAgB,CAAC,CACxE;SACF,CAAC,CAAC;QACH,OAAO,CAAC,GAAG,CAAC,iBAAiB,EAAE,YAAY,CAAC,CAAC;QAE7C,MAAM,WAAW,GAAG,MAAM,sBAAsB,CAAC,cAAc,CAC7D,YAAY,CACb,CAAC;QACF,OAAO,CAAC,GAAG,CAAC,gBAAgB,EAAE,WAAW,CAAC,CAAC;QAE3C,OAAO,WAAW,CAAC;KACpB;IAAC,OAAO,GAAG,EAAE;QACZ,MAAM,cAAc,GAAG,IAAA,8BAAsB,EAC3C,iCAAyB,CAAC,IAAI,EAC9B,GAAG,CACJ,CAAC;QACF,MAAM,cAAc,CAAC;KACtB;AACH,CAAC,CAAC;AAvCW,QAAA,yBAAyB,6BAuCpC;AAEK,MAAM,cAAc,GAAG,KAAK,EACjC,WAAwB,EACxB,gBAAwB,EACxB,qBAAgD,EAChD,mBAA4C,EAC5C,UAAkC,EACO,EAAE;IAC3C,IAAI;QACF,MAAM,WAAW,GAAG,MAAM,IAAA,iCAAyB,EACjD,WAAW,EACX,gBAAgB,EAChB,qBAAqB,EACrB,mBAAmB,CACpB,CAAC;QACF,OAAO,CAAC,GAAG,CAAC,iBAAiB,EAAE,WAAW,CAAC,CAAC;QAG5C,IAAI,UAAU,EAAE;YACd,MAAM,oBAAoB,GAAG,IAAI,CAAC;YAClC,IAAA,4CAA2B,EACzB,WAAW,EACX,WAAW,EACX,UAAU,EACV,oBAAoB,CACrB,CAAC;SACH;QAED,OAAO;YACL,WAAW;SACZ,CAAC;KACH;IAAC,OAAO,GAAG,EAAE;QACZ,MAAM,IAAA,8BAAsB,EAAC,sBAAc,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;KACxD;AACH,CAAC,CAAC;AAjCW,QAAA,cAAc,kBAiCzB;AAEK,MAAM,oBAAoB,GAAG,KAAK,EACvC,WAAwB,EACxB,gBAAwB,EACxB,qBAAgD,EAChD,mBAA4C,EAC5C,iBAAyB,EACmB,EAAE;IAC9C,IAAI;QACF,IAAA,yCAAuB,EAAC,iBAAiB,CAAC,CAAC;QAE3C,MAAM,WAAW,GAAG,MAAM,IAAA,iCAAyB,EACjD,WAAW,EACX,gBAAgB,EAChB,qBAAqB,EACrB,mBAAmB,CACpB,CAAC;QACF,OAAO,CAAC,GAAG,CAAC,iBAAiB,EAAE,WAAW,CAAC,CAAC;QAG5C,MAAM,oBAAoB,GAAG,IAAI,CAAC;QAClC,MAAM,2BAA2B,GAAG,KAAK,CAAC;QAC1C,OAAO,IAAA,oCAAmB,EACxB,MAAM,IAAA,+BAAc,EAClB,WAAW,EACX,WAAW,EACX,iBAAiB,EACjB,oBAAoB,EACpB,KAAK,CACN,EACD,SAAS,EAAE,uBAAuB;QAClC,2BAA2B,CAC5B,CAAC;KACH;IAAC,OAAO,GAAG,EAAE;QACZ,MAAM,IAAA,8BAAsB,EAAC,4BAAoB,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;KAC9D;AACH,CAAC,CAAC;AAnCW,QAAA,oBAAoB,wBAmC/B","sourcesContent":["import {\n DopPopulateTransactionResponse,\n DopTransactionGasEstimateResponse,\n NetworkName,\n DopERC20AmountRecipient,\n DopNFTAmountRecipient,\n NFTTokenType,\n TransactionGasDetails,\n} from 'dop-sharedmodel-v5';\nimport {\n ShieldNote,\n DopEngine,\n ShieldRequestStruct,\n randomHex,\n hexToBytes,\n ShieldNoteERC20,\n ShieldNoteNFT,\n ERC721_NOTE_VALUE,\n} from 'dop-engine-v5';\nimport {\n gasEstimateResponse,\n getGasEstimate,\n setGasDetailsForTransaction,\n} from './tx-gas-details';\nimport { assertNotBlockedAddress } from '../../utils/blocked-address';\nimport {\n assertValidDopAddress,\n getDopSmartWalletContractForNetwork,\n} from '../dop';\nimport { createNFTTokenDataFromDopNFTAmount } from './tx-cross-contract-calls';\nimport { reportAndSanitizeError } from '../../utils/error';\nimport { ContractTransaction } from 'ethers';\n\nexport const getShieldPrivateKeySignatureMessage = () => {\n return ShieldNote.getShieldPrivateKeySignatureMessage();\n};\n\nconst generateERC20ShieldRequests = async (\n erc20AmountRecipient: DopERC20AmountRecipient,\n random: string,\n shieldPrivateKey: string,\n): Promise<ShieldRequestStruct> => {\n const dopAddress = erc20AmountRecipient.recipientAddress;\n\n assertValidDopAddress(dopAddress);\n\n const { masterPublicKey, viewingPublicKey } =\n DopEngine.decodeAddress(dopAddress);\n\n const shield = new ShieldNoteERC20(\n masterPublicKey,\n random,\n erc20AmountRecipient.amount,\n erc20AmountRecipient.tokenAddress,\n );\n return shield.serialize(hexToBytes(shieldPrivateKey), viewingPublicKey);\n};\n\nconst generateNFTShieldRequests = async (\n nftAmountRecipient: DopNFTAmountRecipient,\n random: string,\n shieldPrivateKey: string,\n): Promise<ShieldRequestStruct> => {\n const dopAddress = nftAmountRecipient.recipientAddress;\n\n assertValidDopAddress(dopAddress);\n\n const { masterPublicKey, viewingPublicKey } =\n DopEngine.decodeAddress(dopAddress);\n\n const value =\n nftAmountRecipient.nftTokenType === NFTTokenType.ERC721\n ? ERC721_NOTE_VALUE\n : nftAmountRecipient.amount;\n\n\n const nftTokenData =\n createNFTTokenDataFromDopNFTAmount(nftAmountRecipient);\n\n const shield = new ShieldNoteNFT(\n masterPublicKey,\n random,\n value,\n nftTokenData,\n );\n\n return shield.serialize(hexToBytes(shieldPrivateKey), viewingPublicKey);\n};\n\nexport const generateShieldTransaction = async (\n networkName: NetworkName,\n shieldPrivateKey: string,\n erc20AmountRecipients: DopERC20AmountRecipient[],\n nftAmountRecipients: DopNFTAmountRecipient[],\n): Promise<ContractTransaction> => {\n try {\n const dopSmartWalletContract =\n getDopSmartWalletContractForNetwork(networkName);\n\n const random = randomHex(16);\n\n const shieldInputs: ShieldRequestStruct[] = await Promise.all([\n ...erc20AmountRecipients.map(erc20AmountRecipient =>\n generateERC20ShieldRequests(\n erc20AmountRecipient,\n random,\n shieldPrivateKey,\n ),\n ),\n ...nftAmountRecipients.map(nftAmountRecipient =>\n generateNFTShieldRequests(nftAmountRecipient, random, shieldPrivateKey),\n ),\n ]);\n console.log(\"shieldInputs:::\", shieldInputs);\n\n const transaction = await dopSmartWalletContract.generateShield(\n shieldInputs,\n );\n console.log(\"transaction:::\", transaction);\n\n return transaction;\n } catch (err) {\n const sanitizedError = reportAndSanitizeError(\n generateShieldTransaction.name,\n err,\n );\n throw sanitizedError;\n }\n};\n\nexport const populateShield = async (\n networkName: NetworkName,\n shieldPrivateKey: string,\n erc20AmountRecipients: DopERC20AmountRecipient[],\n nftAmountRecipients: DopNFTAmountRecipient[],\n gasDetails?: TransactionGasDetails,\n): Promise<DopPopulateTransactionResponse> => {\n try {\n const transaction = await generateShieldTransaction(\n networkName,\n shieldPrivateKey,\n erc20AmountRecipients,\n nftAmountRecipients,\n );\n console.log(\"transaction:::0\", transaction);\n\n\n if (gasDetails) {\n const sendWithPublicWallet = true;\n setGasDetailsForTransaction(\n networkName,\n transaction,\n gasDetails,\n sendWithPublicWallet,\n );\n }\n\n return {\n transaction,\n };\n } catch (err) {\n throw reportAndSanitizeError(populateShield.name, err);\n }\n};\n\nexport const gasEstimateForShield = async (\n networkName: NetworkName,\n shieldPrivateKey: string,\n erc20AmountRecipients: DopERC20AmountRecipient[],\n nftAmountRecipients: DopNFTAmountRecipient[],\n fromWalletAddress: string,\n): Promise<DopTransactionGasEstimateResponse> => {\n try {\n assertNotBlockedAddress(fromWalletAddress);\n\n const transaction = await generateShieldTransaction(\n networkName,\n shieldPrivateKey,\n erc20AmountRecipients,\n nftAmountRecipients,\n );\n console.log(\"transaction:::1\", transaction);\n\n\n const sendWithPublicWallet = true;\n const isGasEstimateWithDummyProof = false;\n return gasEstimateResponse(\n await getGasEstimate(\n networkName,\n transaction,\n fromWalletAddress,\n sendWithPublicWallet,\n false, // isCrossContractCall\n ),\n undefined, // relayerFeeCommitment\n isGasEstimateWithDummyProof,\n );\n } catch (err) {\n throw reportAndSanitizeError(gasEstimateForShield.name, err);\n }\n};\n"]}
@@ -1,3 +1,2 @@
1
- import { DopPopulateTransactionResponse, DopTransactionGasEstimateResponse, NetworkName, FeeTokenDetails, DopERC20AmountRecipient, DopNFTAmountRecipient, TransactionGasDetails } from 'dop-sharedmodel';
1
+ import { DopPopulateTransactionResponse, NetworkName, DopERC20AmountRecipient, DopNFTAmountRecipient, TransactionGasDetails } from 'dop-sharedmodel-v5';
2
2
  export declare const populateProvedTransfer: (networkName: NetworkName, dopWalletID: string, showSenderAddressToRecipient: boolean, memoText: Optional<string>, erc20AmountRecipients: DopERC20AmountRecipient[], nftAmountRecipients: DopNFTAmountRecipient[], relayerFeeERC20AmountRecipient: Optional<DopERC20AmountRecipient>, sendWithPublicWallet: boolean, overallBatchMinGasPrice: Optional<bigint>, gasDetails: TransactionGasDetails) => Promise<DopPopulateTransactionResponse>;
3
- export declare const gasEstimateForUnprovenTransfer: (networkName: NetworkName, dopWalletID: string, encryptionKey: string, memoText: Optional<string>, erc20AmountRecipients: DopERC20AmountRecipient[], nftAmountRecipients: DopNFTAmountRecipient[], originalGasDetails: TransactionGasDetails, feeTokenDetails: Optional<FeeTokenDetails>, sendWithPublicWallet: boolean) => Promise<DopTransactionGasEstimateResponse>;
@@ -1,14 +1,13 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.gasEstimateForUnprovenTransfer = exports.populateProvedTransfer = void 0;
4
- const dop_sharedmodel_1 = require("dop-sharedmodel");
5
- const tx_generator_1 = require("./tx-generator");
3
+ exports.populateProvedTransfer = void 0;
4
+ const dop_sharedmodel_v5_1 = require("dop-sharedmodel-v5");
6
5
  const proof_cache_1 = require("./proof-cache");
7
- const tx_gas_relayer_fee_estimator_1 = require("./tx-gas-relayer-fee-estimator");
6
+ // import { gasEstimateResponseDummyProofIterativeRelayerFee } from './tx-gas-relayer-fee-estimator';
8
7
  const error_1 = require("../../utils/error");
9
8
  const populateProvedTransfer = async (networkName, dopWalletID, showSenderAddressToRecipient, memoText, erc20AmountRecipients, nftAmountRecipients, relayerFeeERC20AmountRecipient, sendWithPublicWallet, overallBatchMinGasPrice, gasDetails) => {
10
9
  try {
11
- const { transaction, nullifiers } = await (0, proof_cache_1.populateProvedTransaction)(networkName, dop_sharedmodel_1.ProofType.Transfer, dopWalletID, showSenderAddressToRecipient, memoText, erc20AmountRecipients, nftAmountRecipients, undefined, // relayAdaptUnshieldERC20AmountRecipients
10
+ const { transaction, nullifiers } = await (0, proof_cache_1.populateProvedTransaction)(networkName, dop_sharedmodel_v5_1.ProofType.Transfer, dopWalletID, showSenderAddressToRecipient, memoText, erc20AmountRecipients, nftAmountRecipients, undefined, // relayAdaptUnshieldERC20AmountRecipients
12
11
  undefined, // relayAdaptUnshieldNFTAmounts
13
12
  undefined, // relayAdaptShieldERC20Recipients
14
13
  undefined, // relayAdaptShieldNFTRecipients
@@ -24,16 +23,56 @@ const populateProvedTransfer = async (networkName, dopWalletID, showSenderAddres
24
23
  }
25
24
  };
26
25
  exports.populateProvedTransfer = populateProvedTransfer;
27
- const gasEstimateForUnprovenTransfer = async (networkName, dopWalletID, encryptionKey, memoText, erc20AmountRecipients, nftAmountRecipients, originalGasDetails, feeTokenDetails, sendWithPublicWallet) => {
28
- try {
29
- const overallBatchMinGasPrice = 0n;
30
- const response = await (0, tx_gas_relayer_fee_estimator_1.gasEstimateResponseDummyProofIterativeRelayerFee)((relayerFeeERC20Amount) => (0, tx_generator_1.generateDummyProofTransactions)(dop_sharedmodel_1.ProofType.Transfer, networkName, dopWalletID, encryptionKey, false, // showSenderAddressToRecipient - doesn't matter for gas estimate.
31
- memoText, erc20AmountRecipients, nftAmountRecipients, relayerFeeERC20Amount, sendWithPublicWallet, overallBatchMinGasPrice), (txs) => (0, tx_generator_1.generateTransact)(txs, networkName, true), networkName, dopWalletID, erc20AmountRecipients, originalGasDetails, feeTokenDetails, sendWithPublicWallet, false);
32
- return response;
33
- }
34
- catch (err) {
35
- throw (0, error_1.reportAndSanitizeError)(exports.gasEstimateForUnprovenTransfer.name, err);
36
- }
26
+ /*
27
+ export const gasEstimateForUnprovenTransfer = async (
28
+ networkName: NetworkName,
29
+ dopWalletID: string,
30
+ encryptionKey: string,
31
+ memoText: Optional<string>,
32
+ erc20AmountRecipients: DopERC20AmountRecipient[],
33
+ nftAmountRecipients: DopNFTAmountRecipient[],
34
+ originalGasDetails: TransactionGasDetails,
35
+ feeTokenDetails: Optional<FeeTokenDetails>,
36
+ sendWithPublicWallet: boolean,
37
+ valueCheck: bigint,
38
+ ): Promise<DopTransactionGasEstimateResponse> => {
39
+ try {
40
+ const overallBatchMinGasPrice = 0n;
41
+
42
+ const response = await gasEstimateResponseDummyProofIterativeRelayerFee(
43
+ (relayerFeeERC20Amount: Optional<DopERC20Amount>) =>
44
+ generateDummyProofTransactions(
45
+ ProofType.Transfer,
46
+ networkName,
47
+ dopWalletID,
48
+ encryptionKey,
49
+ false, // showSenderAddressToRecipient - doesn't matter for gas estimate.
50
+ memoText,
51
+ erc20AmountRecipients,
52
+ nftAmountRecipients,
53
+ relayerFeeERC20Amount,
54
+ sendWithPublicWallet,
55
+ overallBatchMinGasPrice,
56
+ valueCheck,
57
+ ),
58
+ (txs: TransactionStruct[]) =>
59
+ generateTransact(
60
+ txs,
61
+ networkName,
62
+ true, // useDummyProof
63
+ ),
64
+ networkName,
65
+ dopWalletID,
66
+ erc20AmountRecipients,
67
+ originalGasDetails,
68
+ feeTokenDetails,
69
+ sendWithPublicWallet,
70
+ false, // isCrossContractCall
71
+ );
72
+ return response;
73
+ } catch (err) {
74
+ throw reportAndSanitizeError(gasEstimateForUnprovenTransfer.name, err);
75
+ }
37
76
  };
38
- exports.gasEstimateForUnprovenTransfer = gasEstimateForUnprovenTransfer;
77
+ */
39
78
  //# sourceMappingURL=tx-transfer.js.map