dop-wallet-v6 1.3.34 → 1.3.35

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.
@@ -1,80 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.gasEstimateForEncryptWithRelayer = exports.populateEncryptWithRelayer = exports.generateEncryptTransactionWithRelayer = exports.getEncryptPrivateKeySignatureMessage = void 0;
4
- const dop_sharedmodels_v3_1 = require("dop-sharedmodels-v3");
5
- const dop_engine_v3_1 = require("dop-engine-v3");
6
- const tx_gas_details_1 = require("./tx-gas-details");
7
- const blocked_address_1 = require("../../utils/blocked-address");
8
- const tx_cross_contract_calls_1 = require("./tx-cross-contract-calls");
9
- const error_1 = require("../../utils/error");
10
- const wallets_1 = require("../dop/wallets");
11
- const getEncryptPrivateKeySignatureMessage = () => {
12
- return dop_engine_v3_1.EncryptNote.getEncryptPrivateKeySignatureMessage();
13
- };
14
- exports.getEncryptPrivateKeySignatureMessage = getEncryptPrivateKeySignatureMessage;
15
- const generateERC20EncryptRequests = async (erc20AmountRecipient, random, encryptPrivateKey) => {
16
- const dopAddress = erc20AmountRecipient.recipientAddress;
17
- (0, wallets_1.assertValidDopAddress)(dopAddress);
18
- const { masterPublicKey, viewingPublicKey } = dop_engine_v3_1.DopEngine.decodeAddress(dopAddress);
19
- const encrypt = new dop_engine_v3_1.EncryptNoteERC20(masterPublicKey, random, erc20AmountRecipient.amount, erc20AmountRecipient.tokenAddress);
20
- return encrypt.serialize(dop_engine_v3_1.ByteUtils.hexToBytes(encryptPrivateKey), viewingPublicKey);
21
- };
22
- const generateNFTEncryptRequests = async (nftAmountRecipient, random, encryptPrivateKey) => {
23
- const dopAddress = nftAmountRecipient.recipientAddress;
24
- (0, wallets_1.assertValidDopAddress)(dopAddress);
25
- const { masterPublicKey, viewingPublicKey } = dop_engine_v3_1.DopEngine.decodeAddress(dopAddress);
26
- const value = nftAmountRecipient.nftTokenType === dop_sharedmodels_v3_1.NFTTokenType.ERC721
27
- ? dop_engine_v3_1.ERC721_NOTE_VALUE
28
- : nftAmountRecipient.amount;
29
- const nftTokenData = (0, tx_cross_contract_calls_1.createNFTTokenDataFromDopNFTAmount)(nftAmountRecipient);
30
- const encrypt = new dop_engine_v3_1.EncryptNoteNFT(masterPublicKey, random, value, nftTokenData);
31
- return encrypt.serialize(dop_engine_v3_1.ByteUtils.hexToBytes(encryptPrivateKey), viewingPublicKey);
32
- };
33
- const generateEncryptTransactionWithRelayer = async (txidVersion, networkName, encryptPrivateKey, erc20AmountRecipients, nftAmountRecipients, fromWalletAddress) => {
34
- try {
35
- const random = dop_engine_v3_1.ByteUtils.randomHex(16);
36
- const encryptInputs = await Promise.all([
37
- ...erc20AmountRecipients.map(erc20AmountRecipient => generateERC20EncryptRequests(erc20AmountRecipient, random, encryptPrivateKey)),
38
- ...nftAmountRecipients.map(nftAmountRecipient => generateNFTEncryptRequests(nftAmountRecipient, random, encryptPrivateKey)),
39
- ]);
40
- const chain = dop_sharedmodels_v3_1.NETWORK_CONFIG[networkName].chain;
41
- const relayAdaptContract = dop_engine_v3_1.DopVersionedSmartContracts.getRelayAdaptContract(txidVersion, chain);
42
- const transaction = await relayAdaptContract.populateRelayEncrypts(encryptInputs, fromWalletAddress);
43
- return transaction;
44
- }
45
- catch (err) {
46
- throw (0, error_1.reportAndSanitizeError)(exports.generateEncryptTransactionWithRelayer.name, err);
47
- }
48
- };
49
- exports.generateEncryptTransactionWithRelayer = generateEncryptTransactionWithRelayer;
50
- const populateEncryptWithRelayer = async (txidVersion, networkName, encryptPrivateKey, erc20AmountRecipients, nftAmountRecipients, fromWalletAddress, gasDetails) => {
51
- try {
52
- const transaction = await (0, exports.generateEncryptTransactionWithRelayer)(txidVersion, networkName, encryptPrivateKey, erc20AmountRecipients, nftAmountRecipients, fromWalletAddress);
53
- if (gasDetails) {
54
- const sendWithPublicWallet = true;
55
- (0, tx_gas_details_1.setGasDetailsForTransaction)(networkName, transaction, gasDetails, sendWithPublicWallet);
56
- }
57
- return {
58
- transaction,
59
- };
60
- }
61
- catch (err) {
62
- throw (0, error_1.reportAndSanitizeError)(exports.populateEncryptWithRelayer.name, err);
63
- }
64
- };
65
- exports.populateEncryptWithRelayer = populateEncryptWithRelayer;
66
- const gasEstimateForEncryptWithRelayer = async (txidVersion, networkName, encryptPrivateKey, erc20AmountRecipients, nftAmountRecipients, fromWalletAddress) => {
67
- try {
68
- (0, blocked_address_1.assertNotBlockedAddress)(fromWalletAddress);
69
- const transaction = await (0, exports.generateEncryptTransactionWithRelayer)(txidVersion, networkName, encryptPrivateKey, erc20AmountRecipients, nftAmountRecipients, fromWalletAddress);
70
- const sendWithPublicWallet = true;
71
- const isGasEstimateWithDummyProof = false;
72
- return (0, tx_gas_details_1.gasEstimateResponse)(await (0, tx_gas_details_1.getGasEstimate)(txidVersion, networkName, transaction, fromWalletAddress, sendWithPublicWallet, true), undefined, // broadcasterFeeCommitment
73
- isGasEstimateWithDummyProof);
74
- }
75
- catch (err) {
76
- throw (0, error_1.reportAndSanitizeError)(exports.gasEstimateForEncryptWithRelayer.name, err);
77
- }
78
- };
79
- exports.gasEstimateForEncryptWithRelayer = gasEstimateForEncryptWithRelayer;
80
- //# sourceMappingURL=tx-encrypt-relayer.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"tx-encrypt-relayer.js","sourceRoot":"","sources":["../../../src/services/transactions/tx-encrypt-relayer.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n DopPopulateTransactionResponse,\n DopTransactionGasEstimateResponse,\n NetworkName,\n DopERC20AmountRecipient,\n DopNFTAmountRecipient,\n NFTTokenType,\n TransactionGasDetails,\n NETWORK_CONFIG,\n TXIDVersion,\n} from 'dop-sharedmodels-v3';\nimport {\n EncryptNote,\n DopEngine,\n EncryptRequestStruct,\n ByteUtils,\n EncryptNoteERC20,\n EncryptNoteNFT,\n ERC721_NOTE_VALUE,\n DopVersionedSmartContracts,\n} from 'dop-engine-v3';\nimport {\n gasEstimateResponse,\n getGasEstimate,\n setGasDetailsForTransaction,\n} from './tx-gas-details';\nimport { assertNotBlockedAddress } from '../../utils/blocked-address';\nimport { createNFTTokenDataFromDopNFTAmount } from './tx-cross-contract-calls';\nimport { reportAndSanitizeError } from '../../utils/error';\nimport { ContractTransaction } from 'ethers';\nimport { assertValidDopAddress } from '../dop/wallets';\n\nexport const getEncryptPrivateKeySignatureMessage = () => {\n return EncryptNote.getEncryptPrivateKeySignatureMessage();\n};\n\nconst generateERC20EncryptRequests = async (\n erc20AmountRecipient: DopERC20AmountRecipient,\n random: string,\n encryptPrivateKey: string,\n): Promise<EncryptRequestStruct> => {\n const dopAddress = erc20AmountRecipient.recipientAddress;\n\n assertValidDopAddress(dopAddress);\n\n const { masterPublicKey, viewingPublicKey } =\n DopEngine.decodeAddress(dopAddress);\n\n const encrypt = new EncryptNoteERC20(\n masterPublicKey,\n random,\n erc20AmountRecipient.amount,\n erc20AmountRecipient.tokenAddress,\n );\n return encrypt.serialize(\n ByteUtils.hexToBytes(encryptPrivateKey),\n viewingPublicKey,\n );\n};\n\nconst generateNFTEncryptRequests = async (\n nftAmountRecipient: DopNFTAmountRecipient,\n random: string,\n encryptPrivateKey: string,\n): Promise<EncryptRequestStruct> => {\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 const nftTokenData =\n createNFTTokenDataFromDopNFTAmount(nftAmountRecipient);\n\n const encrypt = new EncryptNoteNFT(\n masterPublicKey,\n random,\n value,\n nftTokenData,\n );\n return encrypt.serialize(\n ByteUtils.hexToBytes(encryptPrivateKey),\n viewingPublicKey,\n );\n};\n\nexport const generateEncryptTransactionWithRelayer = async (\n txidVersion: TXIDVersion,\n networkName: NetworkName,\n encryptPrivateKey: string,\n erc20AmountRecipients: DopERC20AmountRecipient[],\n nftAmountRecipients: DopNFTAmountRecipient[],\n fromWalletAddress: string,\n): Promise<ContractTransaction> => {\n try {\n const random = ByteUtils.randomHex(16);\n\n const encryptInputs: EncryptRequestStruct[] = await Promise.all([\n ...erc20AmountRecipients.map(erc20AmountRecipient =>\n generateERC20EncryptRequests(\n erc20AmountRecipient,\n random,\n encryptPrivateKey,\n ),\n ),\n ...nftAmountRecipients.map(nftAmountRecipient =>\n generateNFTEncryptRequests(nftAmountRecipient, random, encryptPrivateKey),\n ),\n ]);\n\n const chain = NETWORK_CONFIG[networkName].chain;\n \n const relayAdaptContract = DopVersionedSmartContracts.getRelayAdaptContract(\n txidVersion,\n chain,\n ) as any;\n\n const transaction = await relayAdaptContract.populateRelayEncrypts(\n encryptInputs,\n fromWalletAddress,\n );\n \n return transaction;\n } catch (err) {\n throw reportAndSanitizeError(generateEncryptTransactionWithRelayer.name, err);\n }\n};\n\nexport const populateEncryptWithRelayer = async (\n txidVersion: TXIDVersion,\n networkName: NetworkName,\n encryptPrivateKey: string,\n erc20AmountRecipients: DopERC20AmountRecipient[],\n nftAmountRecipients: DopNFTAmountRecipient[],\n fromWalletAddress: string,\n gasDetails?: TransactionGasDetails,\n): Promise<DopPopulateTransactionResponse> => {\n try {\n const transaction = await generateEncryptTransactionWithRelayer(\n txidVersion,\n networkName,\n encryptPrivateKey,\n erc20AmountRecipients,\n nftAmountRecipients,\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(populateEncryptWithRelayer.name, err);\n }\n};\n\nexport const gasEstimateForEncryptWithRelayer = async (\n txidVersion: TXIDVersion,\n networkName: NetworkName,\n encryptPrivateKey: string,\n erc20AmountRecipients: DopERC20AmountRecipient[],\n nftAmountRecipients: DopNFTAmountRecipient[],\n fromWalletAddress: string,\n): Promise<DopTransactionGasEstimateResponse> => {\n try {\n assertNotBlockedAddress(fromWalletAddress);\n\n const transaction = await generateEncryptTransactionWithRelayer(\n txidVersion,\n networkName,\n encryptPrivateKey,\n erc20AmountRecipients,\n nftAmountRecipients,\n fromWalletAddress,\n );\n\n const sendWithPublicWallet = true;\n const isGasEstimateWithDummyProof = false;\n return gasEstimateResponse(\n await getGasEstimate(\n txidVersion,\n networkName,\n transaction,\n fromWalletAddress,\n sendWithPublicWallet,\n true, // isCrossContractCall - Relayer is a cross-contract call\n ),\n undefined, // broadcasterFeeCommitment\n isGasEstimateWithDummyProof,\n );\n } catch (err) {\n throw reportAndSanitizeError(gasEstimateForEncryptWithRelayer.name, err);\n }\n};\n"]}