dop-wallet-v6 1.1.5 → 1.1.7
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.
- package/README.md +0 -2
- package/dist/services/artifacts/artifact-downloader.d.ts +1 -1
- package/dist/services/artifacts/artifact-downloader.js +20 -20
- package/dist/services/artifacts/artifact-downloader.js.map +1 -1
- package/dist/services/artifacts/artifact-hash.d.ts +1 -2
- package/dist/services/artifacts/artifact-hash.js +8 -8
- package/dist/services/artifacts/artifact-hash.js.map +1 -1
- package/dist/services/artifacts/artifact-store.d.ts +0 -1
- package/dist/services/artifacts/artifact-util.d.ts +1 -1
- package/dist/services/artifacts/artifact-util.js +18 -26
- package/dist/services/artifacts/artifact-util.js.map +1 -1
- package/dist/services/artifacts/json/artifact-v2-hashes.json +0 -65
- package/dist/services/dop/core/artifacts.d.ts +3 -3
- package/dist/services/dop/core/artifacts.js +6 -8
- package/dist/services/dop/core/artifacts.js.map +1 -1
- package/dist/services/dop/core/engine.d.ts +2 -2
- package/dist/services/dop/core/engine.js +13 -16
- package/dist/services/dop/core/engine.js.map +1 -1
- package/dist/services/dop/core/prover.d.ts +1 -1
- package/dist/services/dop/core/prover.js +2 -2
- package/dist/services/dop/core/prover.js.map +1 -1
- package/dist/services/dop/core/providers.d.ts +3 -3
- package/dist/services/dop/core/providers.js +16 -16
- package/dist/services/dop/core/providers.js.map +1 -1
- package/dist/services/dop/core/shields.d.ts +1 -1
- package/dist/services/dop/core/shields.js +2 -2
- package/dist/services/dop/core/shields.js.map +1 -1
- package/dist/services/dop/history/transaction-history.d.ts +2 -2
- package/dist/services/dop/history/transaction-history.js +14 -14
- package/dist/services/dop/history/transaction-history.js.map +1 -1
- package/dist/services/dop/process/extract-first-note.d.ts +2 -2
- package/dist/services/dop/process/extract-first-note.js +15 -15
- package/dist/services/dop/process/extract-first-note.js.map +1 -1
- package/dist/services/dop/quick-sync/empty-events.d.ts +1 -1
- package/dist/services/dop/quick-sync/empty-events.js.map +1 -1
- package/dist/services/dop/quick-sync/graph-type-formatters.d.ts +1 -1
- package/dist/services/dop/quick-sync/graph-type-formatters.js +15 -15
- package/dist/services/dop/quick-sync/graph-type-formatters.js.map +1 -1
- package/dist/services/dop/quick-sync/graphql/index.js +5 -5
- package/dist/services/dop/quick-sync/graphql/index.js.map +1 -1
- package/dist/services/dop/quick-sync/quick-sync-graph.d.ts +1 -1
- package/dist/services/dop/quick-sync/quick-sync-graph.js +17 -17
- package/dist/services/dop/quick-sync/quick-sync-graph.js.map +1 -1
- package/dist/services/dop/util/bytes.d.ts +1 -1
- package/dist/services/dop/util/bytes.js +7 -7
- package/dist/services/dop/util/bytes.js.map +1 -1
- package/dist/services/dop/util/commitment.d.ts +2 -1
- package/dist/services/dop/util/commitment.js +4 -5
- package/dist/services/dop/util/commitment.js.map +1 -1
- package/dist/services/dop/util/crypto.d.ts +2 -2
- package/dist/services/dop/util/crypto.js +15 -15
- package/dist/services/dop/util/crypto.js.map +1 -1
- package/dist/services/dop/util/db.d.ts +1 -1
- package/dist/services/dop/util/db.js +2 -2
- package/dist/services/dop/util/db.js.map +1 -1
- package/dist/services/dop/wallets/balance-update.d.ts +2 -2
- package/dist/services/dop/wallets/balance-update.js +6 -6
- package/dist/services/dop/wallets/balance-update.js.map +1 -1
- package/dist/services/dop/wallets/balances.d.ts +2 -2
- package/dist/services/dop/wallets/balances.js.map +1 -1
- package/dist/services/dop/wallets/wallets.d.ts +2 -4
- package/dist/services/dop/wallets/wallets.js +12 -27
- package/dist/services/dop/wallets/wallets.js.map +1 -1
- package/dist/services/ethers/ethers-util.js +2 -2
- package/dist/services/ethers/ethers-util.js.map +1 -1
- package/dist/services/transactions/proof-cache.d.ts +1 -1
- package/dist/services/transactions/proof-cache.js +16 -16
- package/dist/services/transactions/proof-cache.js.map +1 -1
- package/dist/services/transactions/tx-cross-contract-calls.d.ts +4 -2
- package/dist/services/transactions/tx-cross-contract-calls.js +117 -269
- package/dist/services/transactions/tx-cross-contract-calls.js.map +1 -1
- package/dist/services/transactions/tx-gas-details.d.ts +1 -1
- package/dist/services/transactions/tx-gas-details.js +24 -36
- package/dist/services/transactions/tx-gas-details.js.map +1 -1
- package/dist/services/transactions/tx-gas-relayer-fee-estimator.d.ts +4 -1
- package/dist/services/transactions/tx-gas-relayer-fee-estimator.js +88 -187
- package/dist/services/transactions/tx-gas-relayer-fee-estimator.js.map +1 -1
- package/dist/services/transactions/tx-generator.d.ts +5 -4
- package/dist/services/transactions/tx-generator.js +42 -71
- package/dist/services/transactions/tx-generator.js.map +1 -1
- package/dist/services/transactions/tx-notes.d.ts +2 -2
- package/dist/services/transactions/tx-notes.js +13 -13
- package/dist/services/transactions/tx-notes.js.map +1 -1
- package/dist/services/transactions/tx-nullifiers.d.ts +1 -1
- package/dist/services/transactions/tx-nullifiers.js.map +1 -1
- package/dist/services/transactions/tx-proof-transfer.d.ts +3 -4
- package/dist/services/transactions/tx-proof-transfer.js +19 -13
- package/dist/services/transactions/tx-proof-transfer.js.map +1 -1
- package/dist/services/transactions/tx-proof-unshield.d.ts +4 -3
- package/dist/services/transactions/tx-proof-unshield.js +87 -146
- package/dist/services/transactions/tx-proof-unshield.js.map +1 -1
- package/dist/services/transactions/tx-shield-base-token.d.ts +2 -2
- package/dist/services/transactions/tx-shield-base-token.js +10 -13
- package/dist/services/transactions/tx-shield-base-token.js.map +1 -1
- package/dist/services/transactions/tx-shield.d.ts +1 -1
- package/dist/services/transactions/tx-shield.js +12 -16
- package/dist/services/transactions/tx-shield.js.map +1 -1
- package/dist/services/transactions/tx-transfer.d.ts +2 -1
- package/dist/services/transactions/tx-transfer.js +16 -55
- package/dist/services/transactions/tx-transfer.js.map +1 -1
- package/dist/services/transactions/tx-unshield.d.ts +3 -1
- package/dist/services/transactions/tx-unshield.js +40 -119
- package/dist/services/transactions/tx-unshield.js.map +1 -1
- package/dist/utils/blocked-address.js +3 -3
- package/dist/utils/blocked-address.js.map +1 -1
- package/dist/utils/error.js +2 -2
- package/dist/utils/error.js.map +1 -1
- package/dist/utils/gas-price.d.ts +1 -1
- package/dist/utils/gas-price.js +13 -13
- package/dist/utils/gas-price.js.map +1 -1
- package/package.json +3 -3
|
@@ -1,22 +1,27 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.generateUnshieldProof = void 0;
|
|
4
|
-
const
|
|
3
|
+
exports.generateUnshieldBaseTokenProof = exports.generateUnshieldProof = void 0;
|
|
4
|
+
const dop_sharedmodel_1 = require("dop-sharedmodel");
|
|
5
5
|
const tx_generator_1 = require("./tx-generator");
|
|
6
|
+
const wallets_1 = require("../dop/wallets/wallets");
|
|
6
7
|
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");
|
|
7
12
|
const error_1 = require("../../utils/error");
|
|
8
|
-
const generateUnshieldProof = async (networkName, dopWalletID, encryptionKey, erc20AmountRecipients, nftAmountRecipients, relayerFeeERC20AmountRecipient, sendWithPublicWallet, overallBatchMinGasPrice, progressCallback
|
|
13
|
+
const generateUnshieldProof = async (networkName, dopWalletID, encryptionKey, erc20AmountRecipients, nftAmountRecipients, relayerFeeERC20AmountRecipient, sendWithPublicWallet, overallBatchMinGasPrice, progressCallback) => {
|
|
9
14
|
try {
|
|
10
15
|
(0, proof_cache_1.setCachedProvedTransaction)(undefined);
|
|
11
|
-
const transactions = await (0, tx_generator_1.generateProofTransactions)(
|
|
16
|
+
const transactions = await (0, tx_generator_1.generateProofTransactions)(dop_sharedmodel_1.ProofType.Unshield, networkName, dopWalletID, encryptionKey, false, // showSenderAddressToRecipient
|
|
12
17
|
undefined, // memoText
|
|
13
18
|
erc20AmountRecipients, nftAmountRecipients, relayerFeeERC20AmountRecipient, sendWithPublicWallet, undefined, // relayAdaptID
|
|
14
19
|
false, // useDummyProof
|
|
15
|
-
overallBatchMinGasPrice, progressCallback
|
|
20
|
+
overallBatchMinGasPrice, progressCallback);
|
|
16
21
|
const transaction = await (0, tx_generator_1.generateTransact)(transactions, networkName);
|
|
17
22
|
const nullifiers = (0, tx_generator_1.nullifiersForTransactions)(transactions);
|
|
18
23
|
(0, proof_cache_1.setCachedProvedTransaction)({
|
|
19
|
-
proofType:
|
|
24
|
+
proofType: dop_sharedmodel_1.ProofType.Unshield,
|
|
20
25
|
dopWalletID,
|
|
21
26
|
showSenderAddressToRecipient: false,
|
|
22
27
|
memoText: undefined,
|
|
@@ -39,145 +44,81 @@ const generateUnshieldProof = async (networkName, dopWalletID, encryptionKey, er
|
|
|
39
44
|
}
|
|
40
45
|
};
|
|
41
46
|
exports.generateUnshieldProof = generateUnshieldProof;
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
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
|
-
}
|
|
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
|
+
}
|
|
181
122
|
};
|
|
182
|
-
|
|
123
|
+
exports.generateUnshieldBaseTokenProof = generateUnshieldBaseTokenProof;
|
|
183
124
|
//# 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,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
|
+
{"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,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,
|
|
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>;
|
|
3
3
|
export declare const gasEstimateForShieldBaseToken: (networkName: NetworkName, dopAddress: string, shieldPrivateKey: string, wrappedERC20Amount: DopERC20Amount, fromWalletAddress: string) => Promise<DopTransactionGasEstimateResponse>;
|
|
@@ -4,19 +4,18 @@ 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
|
|
7
|
+
const dop_engine_1 = require("dop-engine");
|
|
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) => {
|
|
11
11
|
try {
|
|
12
12
|
const relayAdaptContract = (0, providers_1.getRelayAdaptContractForNetwork)(networkName);
|
|
13
|
-
const { masterPublicKey, viewingPublicKey } =
|
|
14
|
-
const random = (0,
|
|
13
|
+
const { masterPublicKey, viewingPublicKey } = dop_engine_1.DopEngine.decodeAddress(dopAddress);
|
|
14
|
+
const random = (0, dop_engine_1.randomHex)(16);
|
|
15
15
|
const { amount, tokenAddress } = wrappedERC20Amount;
|
|
16
|
-
const shield = new
|
|
17
|
-
const shieldRequest = await shield.serialize((0,
|
|
18
|
-
|
|
19
|
-
const transaction = await relayAdaptContract.populateShieldBaseToken(shieldRequest, fromWalletAddress);
|
|
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);
|
|
20
19
|
return transaction;
|
|
21
20
|
}
|
|
22
21
|
catch (err) {
|
|
@@ -24,10 +23,10 @@ const generateShieldBaseTokenTransaction = async (networkName, dopAddress, shiel
|
|
|
24
23
|
throw sanitizedError;
|
|
25
24
|
}
|
|
26
25
|
};
|
|
27
|
-
const populateShieldBaseToken = async (networkName, dopAddress, shieldPrivateKey, wrappedERC20Amount,
|
|
26
|
+
const populateShieldBaseToken = async (networkName, dopAddress, shieldPrivateKey, wrappedERC20Amount, gasDetails) => {
|
|
28
27
|
try {
|
|
29
28
|
(0, dop_1.assertValidDopAddress)(dopAddress);
|
|
30
|
-
const transaction = await generateShieldBaseTokenTransaction(networkName, dopAddress, shieldPrivateKey, wrappedERC20Amount
|
|
29
|
+
const transaction = await generateShieldBaseTokenTransaction(networkName, dopAddress, shieldPrivateKey, wrappedERC20Amount);
|
|
31
30
|
if (gasDetails) {
|
|
32
31
|
const sendWithPublicWallet = true;
|
|
33
32
|
(0, tx_gas_details_1.setGasDetailsForTransaction)(networkName, transaction, gasDetails, sendWithPublicWallet);
|
|
@@ -45,9 +44,7 @@ const gasEstimateForShieldBaseToken = async (networkName, dopAddress, shieldPriv
|
|
|
45
44
|
try {
|
|
46
45
|
(0, dop_1.assertValidDopAddress)(dopAddress);
|
|
47
46
|
(0, blocked_address_1.assertNotBlockedAddress)(fromWalletAddress);
|
|
48
|
-
|
|
49
|
-
const transaction = await generateShieldBaseTokenTransaction(networkName, dopAddress, shieldPrivateKey, wrappedERC20Amount, fromWalletAddress);
|
|
50
|
-
console.log("before generateShieldBaseTokenTransaction2");
|
|
47
|
+
const transaction = await generateShieldBaseTokenTransaction(networkName, dopAddress, shieldPrivateKey, wrappedERC20Amount);
|
|
51
48
|
const sendWithPublicWallet = true;
|
|
52
49
|
const isGasEstimateWithDummyProof = false;
|
|
53
50
|
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,
|
|
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,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';
|
|
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,46 +1,44 @@
|
|
|
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
|
|
5
|
-
const
|
|
4
|
+
const dop_sharedmodel_1 = require("dop-sharedmodel");
|
|
5
|
+
const dop_engine_1 = require("dop-engine");
|
|
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
|
|
12
|
+
return dop_engine_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 } =
|
|
19
|
-
const shield = new
|
|
20
|
-
return shield.serialize((0,
|
|
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);
|
|
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 } =
|
|
26
|
-
const value = nftAmountRecipient.nftTokenType ===
|
|
27
|
-
?
|
|
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
|
|
28
28
|
: nftAmountRecipient.amount;
|
|
29
29
|
const nftTokenData = (0, tx_cross_contract_calls_1.createNFTTokenDataFromDopNFTAmount)(nftAmountRecipient);
|
|
30
|
-
const shield = new
|
|
31
|
-
return shield.serialize((0,
|
|
30
|
+
const shield = new dop_engine_1.ShieldNoteNFT(masterPublicKey, random, value, nftTokenData);
|
|
31
|
+
return shield.serialize((0, dop_engine_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,
|
|
36
|
+
const random = (0, dop_engine_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);
|
|
42
41
|
const transaction = await dopSmartWalletContract.generateShield(shieldInputs);
|
|
43
|
-
console.log("transaction:::", transaction);
|
|
44
42
|
return transaction;
|
|
45
43
|
}
|
|
46
44
|
catch (err) {
|
|
@@ -52,7 +50,6 @@ exports.generateShieldTransaction = generateShieldTransaction;
|
|
|
52
50
|
const populateShield = async (networkName, shieldPrivateKey, erc20AmountRecipients, nftAmountRecipients, gasDetails) => {
|
|
53
51
|
try {
|
|
54
52
|
const transaction = await (0, exports.generateShieldTransaction)(networkName, shieldPrivateKey, erc20AmountRecipients, nftAmountRecipients);
|
|
55
|
-
console.log("transaction:::0", transaction);
|
|
56
53
|
if (gasDetails) {
|
|
57
54
|
const sendWithPublicWallet = true;
|
|
58
55
|
(0, tx_gas_details_1.setGasDetailsForTransaction)(networkName, transaction, gasDetails, sendWithPublicWallet);
|
|
@@ -70,7 +67,6 @@ const gasEstimateForShield = async (networkName, shieldPrivateKey, erc20AmountRe
|
|
|
70
67
|
try {
|
|
71
68
|
(0, blocked_address_1.assertNotBlockedAddress)(fromWalletAddress);
|
|
72
69
|
const transaction = await (0, exports.generateShieldTransaction)(networkName, shieldPrivateKey, erc20AmountRecipients, nftAmountRecipients);
|
|
73
|
-
console.log("transaction:::1", transaction);
|
|
74
70
|
const sendWithPublicWallet = true;
|
|
75
71
|
const isGasEstimateWithDummyProof = false;
|
|
76
72
|
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":";;;AAAA,
|
|
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,2 +1,3 @@
|
|
|
1
|
-
import { DopPopulateTransactionResponse, NetworkName, DopERC20AmountRecipient, DopNFTAmountRecipient, TransactionGasDetails } from 'dop-sharedmodel
|
|
1
|
+
import { DopPopulateTransactionResponse, DopTransactionGasEstimateResponse, NetworkName, FeeTokenDetails, DopERC20AmountRecipient, DopNFTAmountRecipient, TransactionGasDetails } from 'dop-sharedmodel';
|
|
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,13 +1,14 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.populateProvedTransfer = void 0;
|
|
4
|
-
const
|
|
3
|
+
exports.gasEstimateForUnprovenTransfer = exports.populateProvedTransfer = void 0;
|
|
4
|
+
const dop_sharedmodel_1 = require("dop-sharedmodel");
|
|
5
|
+
const tx_generator_1 = require("./tx-generator");
|
|
5
6
|
const proof_cache_1 = require("./proof-cache");
|
|
6
|
-
|
|
7
|
+
const tx_gas_relayer_fee_estimator_1 = require("./tx-gas-relayer-fee-estimator");
|
|
7
8
|
const error_1 = require("../../utils/error");
|
|
8
9
|
const populateProvedTransfer = async (networkName, dopWalletID, showSenderAddressToRecipient, memoText, erc20AmountRecipients, nftAmountRecipients, relayerFeeERC20AmountRecipient, sendWithPublicWallet, overallBatchMinGasPrice, gasDetails) => {
|
|
9
10
|
try {
|
|
10
|
-
const { transaction, nullifiers } = await (0, proof_cache_1.populateProvedTransaction)(networkName,
|
|
11
|
+
const { transaction, nullifiers } = await (0, proof_cache_1.populateProvedTransaction)(networkName, dop_sharedmodel_1.ProofType.Transfer, dopWalletID, showSenderAddressToRecipient, memoText, erc20AmountRecipients, nftAmountRecipients, undefined, // relayAdaptUnshieldERC20AmountRecipients
|
|
11
12
|
undefined, // relayAdaptUnshieldNFTAmounts
|
|
12
13
|
undefined, // relayAdaptShieldERC20Recipients
|
|
13
14
|
undefined, // relayAdaptShieldNFTRecipients
|
|
@@ -23,56 +24,16 @@ const populateProvedTransfer = async (networkName, dopWalletID, showSenderAddres
|
|
|
23
24
|
}
|
|
24
25
|
};
|
|
25
26
|
exports.populateProvedTransfer = populateProvedTransfer;
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
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
|
-
}
|
|
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
|
+
}
|
|
76
37
|
};
|
|
77
|
-
|
|
38
|
+
exports.gasEstimateForUnprovenTransfer = gasEstimateForUnprovenTransfer;
|
|
78
39
|
//# sourceMappingURL=tx-transfer.js.map
|