dop-wallet-v6 1.3.2 → 1.3.32
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/.eslintrc.js +5 -0
- package/dist/services/dop/crypto/react-native-crypto-provider.js +4 -2
- package/dist/services/dop/crypto/react-native-crypto-provider.js.map +1 -1
- package/dist/services/dop/wallets/wallets.js +12 -17
- package/dist/services/dop/wallets/wallets.js.map +1 -1
- package/dist/services/transactions/tx-encrypt-relayer.d.ts +6 -0
- package/dist/services/transactions/tx-encrypt-relayer.js +80 -0
- package/dist/services/transactions/tx-encrypt-relayer.js.map +1 -0
- package/package.json +6 -1
- package/dist/__tests__/index.test.d.ts +0 -1
- package/dist/__tests__/index.test.js +0 -13
- package/dist/__tests__/index.test.js.map +0 -1
- package/dist/services/artifacts/__tests__/artifact-downloader.test.d.ts +0 -1
- package/dist/services/artifacts/__tests__/artifact-downloader.test.js +0 -70
- package/dist/services/artifacts/__tests__/artifact-downloader.test.js.map +0 -1
- package/dist/services/dop/__tests__/integration.test.d.ts +0 -1
- package/dist/services/dop/__tests__/integration.test.js +0 -378
- package/dist/services/dop/__tests__/integration.test.js.map +0 -1
- package/dist/services/dop/core/__tests__/engine.test.d.ts +0 -1
- package/dist/services/dop/core/__tests__/engine.test.js +0 -30
- package/dist/services/dop/core/__tests__/engine.test.js.map +0 -1
- package/dist/services/dop/core/__tests__/providers.test.d.ts +0 -1
- package/dist/services/dop/core/__tests__/providers.test.js +0 -69
- package/dist/services/dop/core/__tests__/providers.test.js.map +0 -1
- package/dist/services/dop/dop-txids/__tests__/dop-txid-sync-graph-v2.test.d.ts +0 -1
- package/dist/services/dop/dop-txids/__tests__/dop-txid-sync-graph-v2.test.js +0 -168
- package/dist/services/dop/dop-txids/__tests__/dop-txid-sync-graph-v2.test.js.map +0 -1
- package/dist/services/dop/history/__tests__/transaction-history.test.d.ts +0 -0
- package/dist/services/dop/history/__tests__/transaction-history.test.js +0 -2
- package/dist/services/dop/history/__tests__/transaction-history.test.js.map +0 -1
- package/dist/services/dop/profile/__tests__/profile-manager.test.d.ts +0 -1
- package/dist/services/dop/profile/__tests__/profile-manager.test.js +0 -170
- package/dist/services/dop/profile/__tests__/profile-manager.test.js.map +0 -1
- package/dist/services/dop/profile/__tests__/selective-transparency.test.d.ts +0 -1
- package/dist/services/dop/profile/__tests__/selective-transparency.test.js +0 -256
- package/dist/services/dop/profile/__tests__/selective-transparency.test.js.map +0 -1
- package/dist/services/dop/profile/__tests__/storage.test.d.ts +0 -1
- package/dist/services/dop/profile/__tests__/storage.test.js +0 -174
- package/dist/services/dop/profile/__tests__/storage.test.js.map +0 -1
- package/dist/services/dop/quick-sync/V2/__tests__/quick-sync-events-graph-v2.test.d.ts +0 -1
- package/dist/services/dop/quick-sync/V2/__tests__/quick-sync-events-graph-v2.test.js +0 -126
- package/dist/services/dop/quick-sync/V2/__tests__/quick-sync-events-graph-v2.test.js.map +0 -1
- package/dist/services/dop/quick-sync/V3/__tests__/quick-sync-events-graph-v3.test.d.ts +0 -1
- package/dist/services/dop/quick-sync/V3/__tests__/quick-sync-events-graph-v3.test.js +0 -63
- package/dist/services/dop/quick-sync/V3/__tests__/quick-sync-events-graph-v3.test.js.map +0 -1
- package/dist/services/dop/util/__tests__/bytes-util.test.d.ts +0 -1
- package/dist/services/dop/util/__tests__/bytes-util.test.js +0 -23
- package/dist/services/dop/util/__tests__/bytes-util.test.js.map +0 -1
- package/dist/services/dop/util/__tests__/crypto-util.test.d.ts +0 -1
- package/dist/services/dop/util/__tests__/crypto-util.test.js +0 -62
- package/dist/services/dop/util/__tests__/crypto-util.test.js.map +0 -1
- package/dist/services/dop/wallets/__tests__/balances-live.test.d.ts +0 -1
- package/dist/services/dop/wallets/__tests__/balances-live.test.js +0 -58
- package/dist/services/dop/wallets/__tests__/balances-live.test.js.map +0 -1
- package/dist/services/dop/wallets/__tests__/balances-update.test.d.ts +0 -1
- package/dist/services/dop/wallets/__tests__/balances-update.test.js +0 -90
- package/dist/services/dop/wallets/__tests__/balances-update.test.js.map +0 -1
- package/dist/services/dop/wallets/__tests__/balances.test.d.ts +0 -1
- package/dist/services/dop/wallets/__tests__/balances.test.js +0 -59
- package/dist/services/dop/wallets/__tests__/balances.test.js.map +0 -1
- package/dist/services/dop/wallets/__tests__/wallets.test.d.ts +0 -1
- package/dist/services/dop/wallets/__tests__/wallets.test.js +0 -80
- package/dist/services/dop/wallets/__tests__/wallets.test.js.map +0 -1
- package/dist/services/ethers/__tests__/ethers-util.test.d.ts +0 -1
- package/dist/services/ethers/__tests__/ethers-util.test.js +0 -19
- package/dist/services/ethers/__tests__/ethers-util.test.js.map +0 -1
- package/dist/services/transactions/__tests__/json/formatted-relay-adapt-error-logs.json +0 -216
- package/dist/services/transactions/__tests__/proof-cache.test.d.ts +0 -1
- package/dist/services/transactions/__tests__/proof-cache.test.js +0 -128
- package/dist/services/transactions/__tests__/proof-cache.test.js.map +0 -1
- package/dist/services/transactions/__tests__/tx-cross-contract-calls.test.d.ts +0 -1
- package/dist/services/transactions/__tests__/tx-cross-contract-calls.test.js +0 -385
- package/dist/services/transactions/__tests__/tx-cross-contract-calls.test.js.map +0 -1
- package/dist/services/transactions/__tests__/tx-decrypt.test.d.ts +0 -0
- package/dist/services/transactions/__tests__/tx-decrypt.test.js +0 -2
- package/dist/services/transactions/__tests__/tx-decrypt.test.js.map +0 -1
- package/dist/services/transactions/__tests__/tx-encrypt-base-token.test.d.ts +0 -1
- package/dist/services/transactions/__tests__/tx-encrypt-base-token.test.js +0 -101
- package/dist/services/transactions/__tests__/tx-encrypt-base-token.test.js.map +0 -1
- package/dist/services/transactions/__tests__/tx-encrypt.test.d.ts +0 -0
- package/dist/services/transactions/__tests__/tx-encrypt.test.js +0 -2
- package/dist/services/transactions/__tests__/tx-encrypt.test.js.map +0 -1
- package/dist/services/transactions/__tests__/tx-gas-details.test.d.ts +0 -1
- package/dist/services/transactions/__tests__/tx-gas-details.test.js +0 -112
- package/dist/services/transactions/__tests__/tx-gas-details.test.js.map +0 -1
- package/dist/services/transactions/__tests__/tx-notes.test.d.ts +0 -1
- package/dist/services/transactions/__tests__/tx-notes.test.js +0 -193
- package/dist/services/transactions/__tests__/tx-notes.test.js.map +0 -1
- package/dist/services/transactions/__tests__/tx-proof-transfer-with-data.test.d.ts +0 -1
- package/dist/services/transactions/__tests__/tx-proof-transfer-with-data.test.js +0 -50
- package/dist/services/transactions/__tests__/tx-proof-transfer-with-data.test.js.map +0 -1
- package/dist/services/transactions/__tests__/tx-transfer.test.d.ts +0 -1
- package/dist/services/transactions/__tests__/tx-transfer.test.js +0 -280
- package/dist/services/transactions/__tests__/tx-transfer.test.js.map +0 -1
- package/dist/tests/balances.test.d.ts +0 -1
- package/dist/tests/balances.test.js +0 -419
- package/dist/tests/balances.test.js.map +0 -1
- package/dist/tests/helper.test.d.ts +0 -3
- package/dist/tests/helper.test.js +0 -16
- package/dist/tests/helper.test.js.map +0 -1
- package/dist/tests/mocks.test.d.ts +0 -50
- package/dist/tests/mocks.test.js +0 -202
- package/dist/tests/mocks.test.js.map +0 -1
- package/dist/tests/poi/test-wallet-poi-requester.test.d.ts +0 -10
- package/dist/tests/poi/test-wallet-poi-requester.test.js +0 -15
- package/dist/tests/poi/test-wallet-poi-requester.test.js.map +0 -1
- package/dist/tests/setup.test.d.ts +0 -9
- package/dist/tests/setup.test.js +0 -110
- package/dist/tests/setup.test.js.map +0 -1
- package/dist/tests/stubs/engine-stubs.test.d.ts +0 -7
- package/dist/tests/stubs/engine-stubs.test.js +0 -75
- package/dist/tests/stubs/engine-stubs.test.js.map +0 -1
- package/dist/utils/__tests__/blocked-address.test.d.ts +0 -1
- package/dist/utils/__tests__/blocked-address.test.js +0 -23
- package/dist/utils/__tests__/blocked-address.test.js.map +0 -1
- package/dist/utils/__tests__/logger.test.d.ts +0 -1
- package/dist/utils/__tests__/logger.test.js +0 -28
- package/dist/utils/__tests__/logger.test.js.map +0 -1
- package/dist/utils/__tests__/utils.test.d.ts +0 -1
- package/dist/utils/__tests__/utils.test.js +0 -21
- package/dist/utils/__tests__/utils.test.js.map +0 -1
|
@@ -1,112 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
const chai_1 = __importDefault(require("chai"));
|
|
7
|
-
const chai_as_promised_1 = __importDefault(require("chai-as-promised"));
|
|
8
|
-
const sinon_1 = __importDefault(require("sinon"));
|
|
9
|
-
const dop_sharedmodels_v3_1 = require("dop-sharedmodels-v3");
|
|
10
|
-
const mocks_test_1 = require("../../../tests/mocks.test");
|
|
11
|
-
const tx_gas_details_1 = require("../tx-gas-details");
|
|
12
|
-
const dop_1 = require("../../dop");
|
|
13
|
-
const ethers_1 = require("ethers");
|
|
14
|
-
const helper_test_1 = require("../../../tests/helper.test");
|
|
15
|
-
let gasEstimateStub;
|
|
16
|
-
const txidVersion = (0, helper_test_1.getTestTXIDVersion)();
|
|
17
|
-
chai_1.default.use(chai_as_promised_1.default);
|
|
18
|
-
const { expect } = chai_1.default;
|
|
19
|
-
const stubGasEstimateSuccess = () => {
|
|
20
|
-
gasEstimateStub = sinon_1.default.stub(ethers_1.FallbackProvider.prototype, 'estimateGas').resolves(BigInt('200'));
|
|
21
|
-
};
|
|
22
|
-
describe('tx-gas', () => {
|
|
23
|
-
afterEach(() => {
|
|
24
|
-
gasEstimateStub?.restore();
|
|
25
|
-
});
|
|
26
|
-
it('Should format gas estimate response', async () => {
|
|
27
|
-
const transaction = {};
|
|
28
|
-
const fallbackProvider = (0, dop_sharedmodels_v3_1.createFallbackProviderFromJsonConfig)(mocks_test_1.MOCK_FALLBACK_PROVIDER_JSON_CONFIG_POLYGON);
|
|
29
|
-
(0, dop_1.setFallbackProviderForNetwork)(dop_sharedmodels_v3_1.NetworkName.Polygon, fallbackProvider);
|
|
30
|
-
const gasEstimate = await (0, tx_gas_details_1.getGasEstimate)(txidVersion, dop_sharedmodels_v3_1.NetworkName.Polygon, transaction, mocks_test_1.MOCK_ETH_WALLET_ADDRESS, true, // sendWithPublicWallet
|
|
31
|
-
false);
|
|
32
|
-
const isGasEstimateWithDummyProof = false;
|
|
33
|
-
const rsp = (0, tx_gas_details_1.gasEstimateResponse)(gasEstimate, undefined, // broadcasterFeeCommitment
|
|
34
|
-
isGasEstimateWithDummyProof);
|
|
35
|
-
const expectedGas = 53000n; // This field may vary
|
|
36
|
-
const variance = 0.05; // 5%
|
|
37
|
-
const lowerBound = Number(expectedGas) * (1 - variance);
|
|
38
|
-
const upperBound = Number(expectedGas) * (1 + variance);
|
|
39
|
-
expect(Number(rsp.gasEstimate)).to.be.within(lowerBound, upperBound);
|
|
40
|
-
}).timeout(6000);
|
|
41
|
-
it('Should pull gas estimate for basic transaction - self-signed', async () => {
|
|
42
|
-
stubGasEstimateSuccess();
|
|
43
|
-
const fallbackProvider = (0, dop_sharedmodels_v3_1.createFallbackProviderFromJsonConfig)(mocks_test_1.MOCK_FALLBACK_PROVIDER_JSON_CONFIG_POLYGON);
|
|
44
|
-
(0, dop_1.setFallbackProviderForNetwork)(dop_sharedmodels_v3_1.NetworkName.Polygon, fallbackProvider);
|
|
45
|
-
const tx = {
|
|
46
|
-
chainId: 137n,
|
|
47
|
-
to: mocks_test_1.MOCK_ETH_WALLET_ADDRESS,
|
|
48
|
-
value: BigInt('100'),
|
|
49
|
-
data: '0x',
|
|
50
|
-
};
|
|
51
|
-
const gasEstimate = await (0, tx_gas_details_1.getGasEstimate)(txidVersion, dop_sharedmodels_v3_1.NetworkName.Polygon, tx, mocks_test_1.MOCK_ETH_WALLET_ADDRESS, true, // sendWithPublicWallet
|
|
52
|
-
false);
|
|
53
|
-
const isGasEstimateWithDummyProof = true;
|
|
54
|
-
const rsp = (0, tx_gas_details_1.gasEstimateResponse)(gasEstimate, undefined, // broadcasterFeeCommitment
|
|
55
|
-
isGasEstimateWithDummyProof);
|
|
56
|
-
expect(rsp.gasEstimate).to.not.be.undefined;
|
|
57
|
-
}).timeout(60000);
|
|
58
|
-
it('Should pull gas estimate for basic transaction - broadcaster', async () => {
|
|
59
|
-
stubGasEstimateSuccess();
|
|
60
|
-
const fallbackProvider = (0, dop_sharedmodels_v3_1.createFallbackProviderFromJsonConfig)(mocks_test_1.MOCK_FALLBACK_PROVIDER_JSON_CONFIG_POLYGON);
|
|
61
|
-
(0, dop_1.setFallbackProviderForNetwork)(dop_sharedmodels_v3_1.NetworkName.Polygon, fallbackProvider);
|
|
62
|
-
const tx = {
|
|
63
|
-
chainId: 137n,
|
|
64
|
-
to: mocks_test_1.MOCK_ETH_WALLET_ADDRESS,
|
|
65
|
-
value: BigInt('100'),
|
|
66
|
-
data: '0x',
|
|
67
|
-
};
|
|
68
|
-
const gasEstimate = await (0, tx_gas_details_1.getGasEstimate)(txidVersion, dop_sharedmodels_v3_1.NetworkName.Polygon, tx, mocks_test_1.MOCK_ETH_WALLET_ADDRESS, false, // sendWithPublicWallet
|
|
69
|
-
false);
|
|
70
|
-
const isGasEstimateWithDummyProof = true;
|
|
71
|
-
const rsp = (0, tx_gas_details_1.gasEstimateResponse)(gasEstimate, {}, isGasEstimateWithDummyProof);
|
|
72
|
-
expect(rsp.gasEstimate).to.not.be.undefined;
|
|
73
|
-
}).timeout(60000);
|
|
74
|
-
it('Should set gas details for populated tx', () => {
|
|
75
|
-
const transaction = {};
|
|
76
|
-
const gasDetailsType0 = {
|
|
77
|
-
evmGasType: dop_sharedmodels_v3_1.EVMGasType.Type0,
|
|
78
|
-
gasEstimate: 100000n,
|
|
79
|
-
gasPrice: 500n,
|
|
80
|
-
};
|
|
81
|
-
const gasDetailsType1 = {
|
|
82
|
-
evmGasType: dop_sharedmodels_v3_1.EVMGasType.Type1,
|
|
83
|
-
gasEstimate: 100000n,
|
|
84
|
-
gasPrice: 500n,
|
|
85
|
-
};
|
|
86
|
-
const gasDetailsType2 = {
|
|
87
|
-
evmGasType: dop_sharedmodels_v3_1.EVMGasType.Type2,
|
|
88
|
-
gasEstimate: 120000n,
|
|
89
|
-
maxFeePerGas: 10000n,
|
|
90
|
-
maxPriorityFeePerGas: 500n,
|
|
91
|
-
};
|
|
92
|
-
// Polygon - self-sign
|
|
93
|
-
(0, tx_gas_details_1.setGasDetailsForTransaction)(dop_sharedmodels_v3_1.NetworkName.Polygon, transaction, gasDetailsType2, true);
|
|
94
|
-
expect(transaction.type).to.equal(2);
|
|
95
|
-
expect(transaction.gasLimit).to.equal(144000n);
|
|
96
|
-
expect(transaction.gasPrice).to.be.undefined;
|
|
97
|
-
expect(transaction.maxFeePerGas).to.equal(10000n);
|
|
98
|
-
expect(transaction.maxPriorityFeePerGas).to.equal(500n);
|
|
99
|
-
// Polygon - Broadcaster
|
|
100
|
-
(0, tx_gas_details_1.setGasDetailsForTransaction)(dop_sharedmodels_v3_1.NetworkName.Polygon, transaction, gasDetailsType1, false);
|
|
101
|
-
// BNB - self-sign
|
|
102
|
-
(0, tx_gas_details_1.setGasDetailsForTransaction)(dop_sharedmodels_v3_1.NetworkName.BNBChain, transaction, gasDetailsType0, true);
|
|
103
|
-
// BNB - Broadcaster
|
|
104
|
-
(0, tx_gas_details_1.setGasDetailsForTransaction)(dop_sharedmodels_v3_1.NetworkName.BNBChain, transaction, gasDetailsType0, false);
|
|
105
|
-
expect(() => (0, tx_gas_details_1.setGasDetailsForTransaction)(dop_sharedmodels_v3_1.NetworkName.Polygon, transaction, gasDetailsType2, // mismatch
|
|
106
|
-
true)).to.throw;
|
|
107
|
-
expect(transaction.type).to.equal(0);
|
|
108
|
-
expect(transaction.gasLimit).to.equal(120000n);
|
|
109
|
-
expect(transaction.gasPrice).to.equal(500n);
|
|
110
|
-
});
|
|
111
|
-
});
|
|
112
|
-
//# sourceMappingURL=tx-gas-details.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"tx-gas-details.test.js","sourceRoot":"","sources":["../../../../src/services/transactions/__tests__/tx-gas-details.test.ts"],"names":[],"mappings":";;;;;AAAA,gDAAwB;AACxB,wEAA8C;AAC9C,kDAAyC;AACzC,6DAM6B;AAC7B,0DAGmC;AACnC,sDAI2B;AAC3B,mCAA0D;AAC1D,mCAA+D;AAC/D,4DAAgE;AAEhE,IAAI,eAA0B,CAAC;AAE/B,MAAM,WAAW,GAAG,IAAA,gCAAkB,GAAE,CAAC;AAEzC,cAAI,CAAC,GAAG,CAAC,0BAAc,CAAC,CAAC;AACzB,MAAM,EAAE,MAAM,EAAE,GAAG,cAAI,CAAC;AAGxB,MAAM,sBAAsB,GAAG,GAAG,EAAE;IAClC,eAAe,GAAG,eAAK,CAAC,IAAI,CAC1B,yBAAgB,CAAC,SAAS,EAC1B,aAAa,CACd,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;AAC5B,CAAC,CAAC;AAEF,QAAQ,CAAC,QAAQ,EAAE,GAAG,EAAE;IACtB,SAAS,CAAC,GAAG,EAAE;QACb,eAAe,EAAE,OAAO,EAAE,CAAC;IAC7B,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,qCAAqC,EAAE,KAAK,IAAI,EAAE;QACnD,MAAM,WAAW,GAAG,EAAyB,CAAC;QAC9C,MAAM,gBAAgB,GAAG,IAAA,0DAAoC,EAC3D,uDAA0C,CAC3C,CAAC;QAEF,IAAA,mCAA6B,EAC3B,iCAAW,CAAC,OAAO,EACnB,gBAA+C,CAChD,CAAC;QAEF,MAAM,WAAW,GAAG,MAAM,IAAA,+BAAc,EACtC,WAAW,EACX,iCAAW,CAAC,OAAO,EACnB,WAAW,EACX,oCAAuB,EACvB,IAAI,EAAE,uBAAuB;QAC7B,KAAK,CACN,CAAC;QAEF,MAAM,2BAA2B,GAAG,KAAK,CAAC;QAC1C,MAAM,GAAG,GAAG,IAAA,oCAAmB,EAC7B,WAAW,EACX,SAAS,EAAE,2BAA2B;QACtC,2BAA2B,CAC5B,CAAC;QAEF,MAAM,WAAW,GAAG,MAAM,CAAC,CAAC,sBAAsB;QAClD,MAAM,QAAQ,GAAG,IAAI,CAAC,CAAC,KAAK;QAC5B,MAAM,UAAU,GAAG,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC;QACxD,MAAM,UAAU,GAAG,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC;QAExD,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,MAAM,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;IACvE,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAEjB,EAAE,CAAC,8DAA8D,EAAE,KAAK,IAAI,EAAE;QAC5E,sBAAsB,EAAE,CAAC;QACzB,MAAM,gBAAgB,GAAG,IAAA,0DAAoC,EAC3D,uDAA0C,CAC3C,CAAC;QACF,IAAA,mCAA6B,EAC3B,iCAAW,CAAC,OAAO,EACnB,gBAA+C,CAChD,CAAC;QACF,MAAM,EAAE,GAAwB;YAC9B,OAAO,EAAE,IAAI;YACb,EAAE,EAAE,oCAAuB;YAC3B,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC;YACpB,IAAI,EAAE,IAAI;SACX,CAAC;QAEF,MAAM,WAAW,GAAG,MAAM,IAAA,+BAAc,EACtC,WAAW,EACX,iCAAW,CAAC,OAAO,EACnB,EAAE,EACF,oCAAuB,EACvB,IAAI,EAAE,uBAAuB;QAC7B,KAAK,CACN,CAAC;QACF,MAAM,2BAA2B,GAAG,IAAI,CAAC;QACzC,MAAM,GAAG,GAAG,IAAA,oCAAmB,EAC7B,WAAW,EACX,SAAS,EAAE,2BAA2B;QACtC,2BAA2B,CAC5B,CAAC;QACF,MAAM,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,SAAS,CAAC;IAC9C,CAAC,CAAC,CAAC,OAAO,CAAC,KAAM,CAAC,CAAC;IAEnB,EAAE,CAAC,8DAA8D,EAAE,KAAK,IAAI,EAAE;QAC5E,sBAAsB,EAAE,CAAC;QACzB,MAAM,gBAAgB,GAAG,IAAA,0DAAoC,EAC3D,uDAA0C,CAC3C,CAAC;QACF,IAAA,mCAA6B,EAC3B,iCAAW,CAAC,OAAO,EACnB,gBAA+C,CAChD,CAAC;QACF,MAAM,EAAE,GAAwB;YAC9B,OAAO,EAAE,IAAI;YACb,EAAE,EAAE,oCAAuB;YAC3B,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC;YACpB,IAAI,EAAE,IAAI;SACX,CAAC;QACF,MAAM,WAAW,GAAG,MAAM,IAAA,+BAAc,EACtC,WAAW,EACX,iCAAW,CAAC,OAAO,EACnB,EAAE,EACF,oCAAuB,EACvB,KAAK,EAAE,uBAAuB;QAC9B,KAAK,CACN,CAAC;QACF,MAAM,2BAA2B,GAAG,IAAI,CAAC;QACzC,MAAM,GAAG,GAAG,IAAA,oCAAmB,EAC7B,WAAW,EACX,EAAuB,EACvB,2BAA2B,CAC5B,CAAC;QACF,MAAM,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,SAAS,CAAC;IAC9C,CAAC,CAAC,CAAC,OAAO,CAAC,KAAM,CAAC,CAAC;IAEnB,EAAE,CAAC,yCAAyC,EAAE,GAAG,EAAE;QACjD,MAAM,WAAW,GAAG,EAAyB,CAAC;QAC9C,MAAM,eAAe,GAA0B;YAC7C,UAAU,EAAE,gCAAU,CAAC,KAAK;YAC5B,WAAW,EAAE,OAAQ;YACrB,QAAQ,EAAE,IAAI;SACf,CAAC;QACF,MAAM,eAAe,GAA0B;YAC7C,UAAU,EAAE,gCAAU,CAAC,KAAK;YAC5B,WAAW,EAAE,OAAQ;YACrB,QAAQ,EAAE,IAAI;SACf,CAAC;QACF,MAAM,eAAe,GAA0B;YAC7C,UAAU,EAAE,gCAAU,CAAC,KAAK;YAC5B,WAAW,EAAE,OAAQ;YACrB,YAAY,EAAE,MAAO;YACrB,oBAAoB,EAAE,IAAI;SAC3B,CAAC;QACF,sBAAsB;QACtB,IAAA,4CAA2B,EACzB,iCAAW,CAAC,OAAO,EACnB,WAAW,EACX,eAAe,EACf,IAAI,CACL,CAAC;QACF,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACrC,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,OAAQ,CAAC,CAAC;QAChD,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,SAAS,CAAC;QAC7C,MAAM,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,MAAO,CAAC,CAAC;QACnD,MAAM,CAAC,WAAW,CAAC,oBAAoB,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACxD,wBAAwB;QACxB,IAAA,4CAA2B,EACzB,iCAAW,CAAC,OAAO,EACnB,WAAW,EACX,eAAe,EACf,KAAK,CACN,CAAC;QACF,kBAAkB;QAClB,IAAA,4CAA2B,EACzB,iCAAW,CAAC,QAAQ,EACpB,WAAW,EACX,eAAe,EACf,IAAI,CACL,CAAC;QACF,oBAAoB;QACpB,IAAA,4CAA2B,EACzB,iCAAW,CAAC,QAAQ,EACpB,WAAW,EACX,eAAe,EACf,KAAK,CACN,CAAC;QACF,MAAM,CAAC,GAAG,EAAE,CACV,IAAA,4CAA2B,EACzB,iCAAW,CAAC,OAAO,EACnB,WAAW,EACX,eAAe,EAAE,WAAW;QAC5B,IAAI,CACL,CACF,CAAC,EAAE,CAAC,KAAK,CAAC;QACX,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACrC,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAC/C,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC9C,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC","sourcesContent":["import chai from 'chai';\nimport chaiAsPromised from 'chai-as-promised';\nimport Sinon, { SinonStub } from 'sinon';\nimport {\n CommitmentSummary,\n createFallbackProviderFromJsonConfig,\n EVMGasType,\n NetworkName,\n TransactionGasDetails,\n} from 'dop-sharedmodels-v3';\nimport {\n MOCK_ETH_WALLET_ADDRESS,\n MOCK_FALLBACK_PROVIDER_JSON_CONFIG_POLYGON,\n} from '../../../tests/mocks.test';\nimport {\n gasEstimateResponse,\n getGasEstimate,\n setGasDetailsForTransaction,\n} from '../tx-gas-details';\nimport { setFallbackProviderForNetwork } from '../../dop';\nimport { ContractTransaction, FallbackProvider } from 'ethers';\nimport { getTestTXIDVersion } from '../../../tests/helper.test';\n\nlet gasEstimateStub: SinonStub;\n\nconst txidVersion = getTestTXIDVersion();\n\nchai.use(chaiAsPromised);\nconst { expect } = chai;\n\n\nconst stubGasEstimateSuccess = () => {\n gasEstimateStub = Sinon.stub(\n FallbackProvider.prototype,\n 'estimateGas',\n ).resolves(BigInt('200'));\n};\n\ndescribe('tx-gas', () => {\n afterEach(() => {\n gasEstimateStub?.restore();\n });\n\n it('Should format gas estimate response', async () => {\n const transaction = {} as ContractTransaction;\n const fallbackProvider = createFallbackProviderFromJsonConfig(\n MOCK_FALLBACK_PROVIDER_JSON_CONFIG_POLYGON,\n );\n\n setFallbackProviderForNetwork(\n NetworkName.Polygon,\n fallbackProvider as unknown as FallbackProvider,\n );\n\n const gasEstimate = await getGasEstimate(\n txidVersion,\n NetworkName.Polygon,\n transaction,\n MOCK_ETH_WALLET_ADDRESS,\n true, // sendWithPublicWallet\n false, // isCrossContractCall\n );\n\n const isGasEstimateWithDummyProof = false;\n const rsp = gasEstimateResponse(\n gasEstimate,\n undefined, // broadcasterFeeCommitment\n isGasEstimateWithDummyProof,\n );\n\n const expectedGas = 53000n; // This field may vary\n const variance = 0.05; // 5%\n const lowerBound = Number(expectedGas) * (1 - variance);\n const upperBound = Number(expectedGas) * (1 + variance);\n\n expect(Number(rsp.gasEstimate)).to.be.within(lowerBound, upperBound);\n }).timeout(6000);\n\n it('Should pull gas estimate for basic transaction - self-signed', async () => {\n stubGasEstimateSuccess();\n const fallbackProvider = createFallbackProviderFromJsonConfig(\n MOCK_FALLBACK_PROVIDER_JSON_CONFIG_POLYGON,\n );\n setFallbackProviderForNetwork(\n NetworkName.Polygon,\n fallbackProvider as unknown as FallbackProvider,\n );\n const tx: ContractTransaction = {\n chainId: 137n,\n to: MOCK_ETH_WALLET_ADDRESS,\n value: BigInt('100'),\n data: '0x',\n };\n\n const gasEstimate = await getGasEstimate(\n txidVersion,\n NetworkName.Polygon,\n tx,\n MOCK_ETH_WALLET_ADDRESS,\n true, // sendWithPublicWallet\n false, // isCrossContractCall\n );\n const isGasEstimateWithDummyProof = true;\n const rsp = gasEstimateResponse(\n gasEstimate,\n undefined, // broadcasterFeeCommitment\n isGasEstimateWithDummyProof,\n );\n expect(rsp.gasEstimate).to.not.be.undefined;\n }).timeout(60_000);\n\n it('Should pull gas estimate for basic transaction - broadcaster', async () => {\n stubGasEstimateSuccess();\n const fallbackProvider = createFallbackProviderFromJsonConfig(\n MOCK_FALLBACK_PROVIDER_JSON_CONFIG_POLYGON,\n );\n setFallbackProviderForNetwork(\n NetworkName.Polygon,\n fallbackProvider as unknown as FallbackProvider,\n );\n const tx: ContractTransaction = {\n chainId: 137n,\n to: MOCK_ETH_WALLET_ADDRESS,\n value: BigInt('100'),\n data: '0x',\n };\n const gasEstimate = await getGasEstimate(\n txidVersion,\n NetworkName.Polygon,\n tx,\n MOCK_ETH_WALLET_ADDRESS,\n false, // sendWithPublicWallet\n false, // isCrossContractCall\n );\n const isGasEstimateWithDummyProof = true;\n const rsp = gasEstimateResponse(\n gasEstimate,\n {} as CommitmentSummary,\n isGasEstimateWithDummyProof,\n );\n expect(rsp.gasEstimate).to.not.be.undefined;\n }).timeout(60_000);\n\n it('Should set gas details for populated tx', () => {\n const transaction = {} as ContractTransaction;\n const gasDetailsType0: TransactionGasDetails = {\n evmGasType: EVMGasType.Type0,\n gasEstimate: 100_000n,\n gasPrice: 500n,\n };\n const gasDetailsType1: TransactionGasDetails = {\n evmGasType: EVMGasType.Type1,\n gasEstimate: 100_000n,\n gasPrice: 500n,\n };\n const gasDetailsType2: TransactionGasDetails = {\n evmGasType: EVMGasType.Type2,\n gasEstimate: 120_000n,\n maxFeePerGas: 10_000n,\n maxPriorityFeePerGas: 500n,\n };\n // Polygon - self-sign\n setGasDetailsForTransaction(\n NetworkName.Polygon,\n transaction,\n gasDetailsType2,\n true, // sendWithPublicWallet\n );\n expect(transaction.type).to.equal(2);\n expect(transaction.gasLimit).to.equal(144_000n);\n expect(transaction.gasPrice).to.be.undefined;\n expect(transaction.maxFeePerGas).to.equal(10_000n);\n expect(transaction.maxPriorityFeePerGas).to.equal(500n);\n // Polygon - Broadcaster\n setGasDetailsForTransaction(\n NetworkName.Polygon,\n transaction,\n gasDetailsType1,\n false, // sendWithPublicWallet\n );\n // BNB - self-sign\n setGasDetailsForTransaction(\n NetworkName.BNBChain,\n transaction,\n gasDetailsType0,\n true, // sendWithPublicWallet\n );\n // BNB - Broadcaster\n setGasDetailsForTransaction(\n NetworkName.BNBChain,\n transaction,\n gasDetailsType0,\n false, // sendWithPublicWallet\n );\n expect(() =>\n setGasDetailsForTransaction(\n NetworkName.Polygon,\n transaction,\n gasDetailsType2, // mismatch\n true, // sendWithPublicWallet\n ),\n ).to.throw;\n expect(transaction.type).to.equal(0);\n expect(transaction.gasLimit).to.equal(120000n);\n expect(transaction.gasPrice).to.equal(500n);\n });\n});\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1,193 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
const dop_engine_v3_1 = require("dop-engine-v3");
|
|
7
|
-
const chai_1 = __importDefault(require("chai"));
|
|
8
|
-
const chai_as_promised_1 = __importDefault(require("chai-as-promised"));
|
|
9
|
-
const mocks_test_1 = require("../../../tests/mocks.test");
|
|
10
|
-
const setup_test_1 = require("../../../tests/setup.test");
|
|
11
|
-
const wallets_1 = require("../../dop/wallets/wallets");
|
|
12
|
-
const tx_notes_1 = require("../tx-notes");
|
|
13
|
-
const MOCK_TOKEN = '0x236c614a38362644deb15c9789779faf508bc6fe';
|
|
14
|
-
chai_1.default.use(chai_as_promised_1.default);
|
|
15
|
-
const { expect } = chai_1.default;
|
|
16
|
-
const padTo32BytesUnHex = (str) => {
|
|
17
|
-
return dop_engine_v3_1.ByteUtils.padToLength(dop_engine_v3_1.ByteUtils.strip0x(str), dop_engine_v3_1.ByteLength.UINT_256);
|
|
18
|
-
};
|
|
19
|
-
const formatAmountString = (erc20Amount) => {
|
|
20
|
-
return BigInt(erc20Amount.amount);
|
|
21
|
-
};
|
|
22
|
-
let dopWalletID;
|
|
23
|
-
describe('tx-notes', () => {
|
|
24
|
-
before(async function run() {
|
|
25
|
-
this.timeout(60000);
|
|
26
|
-
await (0, setup_test_1.initTestEngine)();
|
|
27
|
-
await (0, setup_test_1.initTestEngineNetworks)();
|
|
28
|
-
const dopWalletInfo = await (0, wallets_1.createDopWallet)(mocks_test_1.MOCK_DB_ENCRYPTION_KEY, mocks_test_1.MOCK_MNEMONIC, undefined);
|
|
29
|
-
dopWalletID = dopWalletInfo.id;
|
|
30
|
-
});
|
|
31
|
-
after(async () => {
|
|
32
|
-
await (0, setup_test_1.closeTestEngine)();
|
|
33
|
-
});
|
|
34
|
-
it('Should test erc20 note creation', () => {
|
|
35
|
-
const erc20AmountRecipient = {
|
|
36
|
-
tokenAddress: MOCK_TOKEN,
|
|
37
|
-
amount: BigInt(0x100),
|
|
38
|
-
recipientAddress: mocks_test_1.MOCK_DOP_WALLET_ADDRESS,
|
|
39
|
-
};
|
|
40
|
-
const dopWallet = (0, wallets_1.fullWalletForID)(dopWalletID);
|
|
41
|
-
const note = (0, tx_notes_1.erc20NoteFromERC20AmountRecipient)(erc20AmountRecipient, dopWallet, dop_engine_v3_1.OutputType.Transfer, true, // showSenderAddressToRecipient
|
|
42
|
-
mocks_test_1.MOCK_MEMO);
|
|
43
|
-
const addressData = dop_engine_v3_1.DopEngine.decodeAddress(mocks_test_1.MOCK_DOP_WALLET_ADDRESS);
|
|
44
|
-
expect(note.value).to.equal(formatAmountString(erc20AmountRecipient));
|
|
45
|
-
expect(note.receiverAddressData.masterPublicKey).to.equal(addressData.masterPublicKey);
|
|
46
|
-
expect(note.tokenHash).to.equal(padTo32BytesUnHex(MOCK_TOKEN));
|
|
47
|
-
});
|
|
48
|
-
it('Should test NFT note creation', () => {
|
|
49
|
-
const erc20AmountRecipient = {
|
|
50
|
-
tokenAddress: MOCK_TOKEN,
|
|
51
|
-
amount: BigInt(0x100),
|
|
52
|
-
recipientAddress: mocks_test_1.MOCK_DOP_WALLET_ADDRESS,
|
|
53
|
-
};
|
|
54
|
-
const dopWallet = (0, wallets_1.fullWalletForID)(dopWalletID);
|
|
55
|
-
const note = (0, tx_notes_1.erc20NoteFromERC20AmountRecipient)(erc20AmountRecipient, dopWallet, dop_engine_v3_1.OutputType.Transfer, true, // showSenderAddressToRecipient
|
|
56
|
-
mocks_test_1.MOCK_MEMO);
|
|
57
|
-
const addressData = dop_engine_v3_1.DopEngine.decodeAddress(mocks_test_1.MOCK_DOP_WALLET_ADDRESS);
|
|
58
|
-
expect(note.value).to.equal(formatAmountString(erc20AmountRecipient));
|
|
59
|
-
expect(note.receiverAddressData.masterPublicKey).to.equal(addressData.masterPublicKey);
|
|
60
|
-
expect(note.tokenHash).to.equal(padTo32BytesUnHex(MOCK_TOKEN));
|
|
61
|
-
});
|
|
62
|
-
it('Should test token array comparisons', () => {
|
|
63
|
-
const erc20AmountRecipients1 = [
|
|
64
|
-
{
|
|
65
|
-
tokenAddress: '1',
|
|
66
|
-
amount: 100n,
|
|
67
|
-
recipientAddress: mocks_test_1.MOCK_DOP_WALLET_ADDRESS,
|
|
68
|
-
},
|
|
69
|
-
{
|
|
70
|
-
tokenAddress: '2',
|
|
71
|
-
amount: BigInt(200),
|
|
72
|
-
recipientAddress: mocks_test_1.MOCK_DOP_WALLET_ADDRESS,
|
|
73
|
-
},
|
|
74
|
-
{
|
|
75
|
-
tokenAddress: '3',
|
|
76
|
-
amount: 300n,
|
|
77
|
-
recipientAddress: mocks_test_1.MOCK_DOP_WALLET_ADDRESS,
|
|
78
|
-
},
|
|
79
|
-
];
|
|
80
|
-
// Same same
|
|
81
|
-
const erc20AmountRecipients2 = [
|
|
82
|
-
{
|
|
83
|
-
tokenAddress: '1',
|
|
84
|
-
amount: 100n,
|
|
85
|
-
recipientAddress: mocks_test_1.MOCK_DOP_WALLET_ADDRESS,
|
|
86
|
-
},
|
|
87
|
-
{
|
|
88
|
-
tokenAddress: '2',
|
|
89
|
-
amount: BigInt(200),
|
|
90
|
-
recipientAddress: mocks_test_1.MOCK_DOP_WALLET_ADDRESS,
|
|
91
|
-
},
|
|
92
|
-
{
|
|
93
|
-
tokenAddress: '3',
|
|
94
|
-
amount: 300n,
|
|
95
|
-
recipientAddress: mocks_test_1.MOCK_DOP_WALLET_ADDRESS,
|
|
96
|
-
},
|
|
97
|
-
];
|
|
98
|
-
// Different addresses
|
|
99
|
-
const erc20AmountRecipients3 = [
|
|
100
|
-
{
|
|
101
|
-
tokenAddress: '1',
|
|
102
|
-
amount: 100n,
|
|
103
|
-
recipientAddress: mocks_test_1.MOCK_DOP_WALLET_ADDRESS,
|
|
104
|
-
},
|
|
105
|
-
{
|
|
106
|
-
tokenAddress: '3',
|
|
107
|
-
amount: BigInt(200),
|
|
108
|
-
recipientAddress: mocks_test_1.MOCK_DOP_WALLET_ADDRESS,
|
|
109
|
-
},
|
|
110
|
-
{
|
|
111
|
-
tokenAddress: '5',
|
|
112
|
-
amount: 300n,
|
|
113
|
-
recipientAddress: mocks_test_1.MOCK_DOP_WALLET_ADDRESS,
|
|
114
|
-
},
|
|
115
|
-
];
|
|
116
|
-
// Different amounts
|
|
117
|
-
const erc20AmountRecipients4 = [
|
|
118
|
-
{
|
|
119
|
-
tokenAddress: '1',
|
|
120
|
-
amount: 100n,
|
|
121
|
-
recipientAddress: mocks_test_1.MOCK_DOP_WALLET_ADDRESS,
|
|
122
|
-
},
|
|
123
|
-
{
|
|
124
|
-
tokenAddress: '2',
|
|
125
|
-
amount: 300n,
|
|
126
|
-
recipientAddress: mocks_test_1.MOCK_DOP_WALLET_ADDRESS,
|
|
127
|
-
},
|
|
128
|
-
{
|
|
129
|
-
tokenAddress: '3',
|
|
130
|
-
amount: BigInt(200),
|
|
131
|
-
recipientAddress: mocks_test_1.MOCK_DOP_WALLET_ADDRESS,
|
|
132
|
-
},
|
|
133
|
-
];
|
|
134
|
-
// Different recipients
|
|
135
|
-
const erc20AmountRecipients5 = [
|
|
136
|
-
{
|
|
137
|
-
tokenAddress: '1',
|
|
138
|
-
amount: 100n,
|
|
139
|
-
recipientAddress: mocks_test_1.MOCK_DOP_WALLET_ADDRESS,
|
|
140
|
-
},
|
|
141
|
-
{
|
|
142
|
-
tokenAddress: '2',
|
|
143
|
-
amount: BigInt(200),
|
|
144
|
-
recipientAddress: mocks_test_1.MOCK_DOP_WALLET_ADDRESS,
|
|
145
|
-
},
|
|
146
|
-
{
|
|
147
|
-
tokenAddress: '3',
|
|
148
|
-
amount: 300n,
|
|
149
|
-
recipientAddress: mocks_test_1.MOCK_ETH_WALLET_ADDRESS,
|
|
150
|
-
},
|
|
151
|
-
];
|
|
152
|
-
expect((0, tx_notes_1.compareERC20AmountRecipientArrays)(erc20AmountRecipients1, erc20AmountRecipients2)).to.be.true;
|
|
153
|
-
expect((0, tx_notes_1.compareERC20AmountRecipientArrays)(erc20AmountRecipients1, erc20AmountRecipients3)).to.be.false;
|
|
154
|
-
expect((0, tx_notes_1.compareERC20AmountRecipientArrays)(erc20AmountRecipients1, erc20AmountRecipients4)).to.be.false;
|
|
155
|
-
expect((0, tx_notes_1.compareERC20AmountRecipientArrays)(erc20AmountRecipients1, erc20AmountRecipients5)).to.be.false;
|
|
156
|
-
});
|
|
157
|
-
it('Should compare erc20 amount recipients', () => {
|
|
158
|
-
const sameA = [
|
|
159
|
-
{
|
|
160
|
-
tokenAddress: '0x1234',
|
|
161
|
-
amount: 100n,
|
|
162
|
-
recipientAddress: 'hello',
|
|
163
|
-
},
|
|
164
|
-
{
|
|
165
|
-
tokenAddress: '0x1234',
|
|
166
|
-
amount: BigInt(200),
|
|
167
|
-
recipientAddress: 'hello2',
|
|
168
|
-
},
|
|
169
|
-
];
|
|
170
|
-
const sameB = [
|
|
171
|
-
{
|
|
172
|
-
tokenAddress: '0x1234',
|
|
173
|
-
amount: BigInt(200),
|
|
174
|
-
recipientAddress: 'hello2',
|
|
175
|
-
},
|
|
176
|
-
{
|
|
177
|
-
tokenAddress: '0x1234',
|
|
178
|
-
amount: 100n,
|
|
179
|
-
recipientAddress: 'hello',
|
|
180
|
-
},
|
|
181
|
-
];
|
|
182
|
-
const differentC = [
|
|
183
|
-
{
|
|
184
|
-
tokenAddress: '0x1234',
|
|
185
|
-
amount: 100n,
|
|
186
|
-
recipientAddress: 'hello',
|
|
187
|
-
},
|
|
188
|
-
];
|
|
189
|
-
expect((0, tx_notes_1.compareERC20AmountRecipientArrays)(sameA, sameB)).to.be.true;
|
|
190
|
-
expect((0, tx_notes_1.compareERC20AmountRecipientArrays)(sameA, differentC)).to.be.false;
|
|
191
|
-
});
|
|
192
|
-
});
|
|
193
|
-
//# sourceMappingURL=tx-notes.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"tx-notes.test.js","sourceRoot":"","sources":["../../../../src/services/transactions/__tests__/tx-notes.test.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n OutputType,\n ByteLength,\n ByteUtils,\n DopEngine,\n} from 'dop-engine-v3';\nimport chai from 'chai';\nimport chaiAsPromised from 'chai-as-promised';\nimport {\n DopERC20Amount,\n DopERC20AmountRecipient,\n} from 'dop-sharedmodels-v3';\nimport {\n MOCK_DB_ENCRYPTION_KEY,\n MOCK_ETH_WALLET_ADDRESS,\n MOCK_MEMO,\n MOCK_MNEMONIC,\n MOCK_DOP_WALLET_ADDRESS,\n} from '../../../tests/mocks.test';\nimport {\n closeTestEngine,\n initTestEngine,\n initTestEngineNetworks,\n} from '../../../tests/setup.test';\nimport {\n createDopWallet,\n fullWalletForID,\n} from '../../dop/wallets/wallets';\nimport {\n compareERC20AmountRecipientArrays,\n erc20NoteFromERC20AmountRecipient,\n} from '../tx-notes';\n\nconst MOCK_TOKEN = '0x236c614a38362644deb15c9789779faf508bc6fe';\n\nchai.use(chaiAsPromised);\nconst { expect } = chai;\n\nconst padTo32BytesUnHex = (str: string) => {\n return ByteUtils.padToLength(ByteUtils.strip0x(str), ByteLength.UINT_256);\n};\n\nconst formatAmountString = (erc20Amount: DopERC20Amount) => {\n return BigInt(erc20Amount.amount);\n};\n\nlet dopWalletID: string;\n\ndescribe('tx-notes', () => {\n before(async function run() {\n this.timeout(60_000);\n await initTestEngine();\n await initTestEngineNetworks();\n const dopWalletInfo = await createDopWallet(\n MOCK_DB_ENCRYPTION_KEY,\n MOCK_MNEMONIC,\n undefined, // creationBlockNumbers\n );\n dopWalletID = dopWalletInfo.id;\n });\n after(async () => {\n await closeTestEngine();\n });\n\n it('Should test erc20 note creation', () => {\n const erc20AmountRecipient: DopERC20AmountRecipient = {\n tokenAddress: MOCK_TOKEN,\n amount: BigInt(0x100),\n recipientAddress: MOCK_DOP_WALLET_ADDRESS,\n };\n const dopWallet = fullWalletForID(dopWalletID);\n const note = erc20NoteFromERC20AmountRecipient(\n erc20AmountRecipient,\n dopWallet,\n OutputType.Transfer,\n true, // showSenderAddressToRecipient\n MOCK_MEMO,\n );\n\n const addressData = DopEngine.decodeAddress(\n MOCK_DOP_WALLET_ADDRESS,\n );\n\n expect(note.value).to.equal(formatAmountString(erc20AmountRecipient));\n expect(note.receiverAddressData.masterPublicKey).to.equal(\n addressData.masterPublicKey,\n );\n expect(note.tokenHash).to.equal(padTo32BytesUnHex(MOCK_TOKEN));\n });\n\n it('Should test NFT note creation', () => {\n const erc20AmountRecipient: DopERC20AmountRecipient = {\n tokenAddress: MOCK_TOKEN,\n amount: BigInt(0x100),\n recipientAddress: MOCK_DOP_WALLET_ADDRESS,\n };\n const dopWallet = fullWalletForID(dopWalletID);\n const note = erc20NoteFromERC20AmountRecipient(\n erc20AmountRecipient,\n dopWallet,\n OutputType.Transfer,\n true, // showSenderAddressToRecipient\n MOCK_MEMO,\n );\n\n const addressData = DopEngine.decodeAddress(\n MOCK_DOP_WALLET_ADDRESS,\n );\n\n expect(note.value).to.equal(formatAmountString(erc20AmountRecipient));\n expect(note.receiverAddressData.masterPublicKey).to.equal(\n addressData.masterPublicKey,\n );\n expect(note.tokenHash).to.equal(padTo32BytesUnHex(MOCK_TOKEN));\n });\n\n it('Should test token array comparisons', () => {\n const erc20AmountRecipients1: DopERC20AmountRecipient[] = [\n {\n tokenAddress: '1',\n amount: 100n,\n recipientAddress: MOCK_DOP_WALLET_ADDRESS,\n },\n {\n tokenAddress: '2',\n amount: BigInt(200),\n recipientAddress: MOCK_DOP_WALLET_ADDRESS,\n },\n {\n tokenAddress: '3',\n amount: 300n,\n recipientAddress: MOCK_DOP_WALLET_ADDRESS,\n },\n ];\n\n // Same same\n const erc20AmountRecipients2: DopERC20AmountRecipient[] = [\n {\n tokenAddress: '1',\n amount: 100n,\n recipientAddress: MOCK_DOP_WALLET_ADDRESS,\n },\n {\n tokenAddress: '2',\n amount: BigInt(200),\n recipientAddress: MOCK_DOP_WALLET_ADDRESS,\n },\n {\n tokenAddress: '3',\n amount: 300n,\n recipientAddress: MOCK_DOP_WALLET_ADDRESS,\n },\n ];\n\n // Different addresses\n const erc20AmountRecipients3: DopERC20AmountRecipient[] = [\n {\n tokenAddress: '1',\n amount: 100n,\n recipientAddress: MOCK_DOP_WALLET_ADDRESS,\n },\n {\n tokenAddress: '3',\n amount: BigInt(200),\n recipientAddress: MOCK_DOP_WALLET_ADDRESS,\n },\n {\n tokenAddress: '5',\n amount: 300n,\n recipientAddress: MOCK_DOP_WALLET_ADDRESS,\n },\n ];\n\n // Different amounts\n const erc20AmountRecipients4: DopERC20AmountRecipient[] = [\n {\n tokenAddress: '1',\n amount: 100n,\n recipientAddress: MOCK_DOP_WALLET_ADDRESS,\n },\n {\n tokenAddress: '2',\n amount: 300n,\n recipientAddress: MOCK_DOP_WALLET_ADDRESS,\n },\n {\n tokenAddress: '3',\n amount: BigInt(200),\n recipientAddress: MOCK_DOP_WALLET_ADDRESS,\n },\n ];\n\n // Different recipients\n const erc20AmountRecipients5: DopERC20AmountRecipient[] = [\n {\n tokenAddress: '1',\n amount: 100n,\n recipientAddress: MOCK_DOP_WALLET_ADDRESS,\n },\n {\n tokenAddress: '2',\n amount: BigInt(200),\n recipientAddress: MOCK_DOP_WALLET_ADDRESS,\n },\n {\n tokenAddress: '3',\n amount: 300n,\n recipientAddress: MOCK_ETH_WALLET_ADDRESS,\n },\n ];\n\n expect(\n compareERC20AmountRecipientArrays(\n erc20AmountRecipients1,\n erc20AmountRecipients2,\n ),\n ).to.be.true;\n expect(\n compareERC20AmountRecipientArrays(\n erc20AmountRecipients1,\n erc20AmountRecipients3,\n ),\n ).to.be.false;\n expect(\n compareERC20AmountRecipientArrays(\n erc20AmountRecipients1,\n erc20AmountRecipients4,\n ),\n ).to.be.false;\n expect(\n compareERC20AmountRecipientArrays(\n erc20AmountRecipients1,\n erc20AmountRecipients5,\n ),\n ).to.be.false;\n });\n\n it('Should compare erc20 amount recipients', () => {\n const sameA: DopERC20AmountRecipient[] = [\n {\n tokenAddress: '0x1234',\n amount: 100n,\n recipientAddress: 'hello',\n },\n {\n tokenAddress: '0x1234',\n amount: BigInt(200),\n recipientAddress: 'hello2',\n },\n ];\n const sameB: DopERC20AmountRecipient[] = [\n {\n tokenAddress: '0x1234',\n amount: BigInt(200),\n recipientAddress: 'hello2',\n },\n {\n tokenAddress: '0x1234',\n amount: 100n,\n recipientAddress: 'hello',\n },\n ];\n const differentC: DopERC20AmountRecipient[] = [\n {\n tokenAddress: '0x1234',\n amount: 100n,\n recipientAddress: 'hello',\n },\n ];\n\n expect(compareERC20AmountRecipientArrays(sameA, sameB)).to.be.true;\n expect(compareERC20AmountRecipientArrays(sameA, differentC)).to.be.false;\n });\n});\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1,50 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
const chai_1 = require("chai");
|
|
4
|
-
const tx_proof_transfer_with_data_1 = require("../tx-proof-transfer-with-data");
|
|
5
|
-
describe('tx-proof-transfer-with-data', () => {
|
|
6
|
-
describe('Function exports and signatures', () => {
|
|
7
|
-
it('should export generateTransferProof function that returns proved transactions array', () => {
|
|
8
|
-
(0, chai_1.expect)(tx_proof_transfer_with_data_1.generateTransferProof).to.be.a('function');
|
|
9
|
-
(0, chai_1.expect)(tx_proof_transfer_with_data_1.generateTransferProof.length).to.equal(12); // Should have 12 parameters
|
|
10
|
-
});
|
|
11
|
-
it('should export generateTransferProofForExplorer function that returns Promise<void>', () => {
|
|
12
|
-
(0, chai_1.expect)(tx_proof_transfer_with_data_1.generateTransferProofForExplorer).to.be.a('function');
|
|
13
|
-
(0, chai_1.expect)(tx_proof_transfer_with_data_1.generateTransferProofForExplorer.length).to.equal(12); // Should have 12 parameters
|
|
14
|
-
});
|
|
15
|
-
it('should maintain naming consistency for frontend developers', () => {
|
|
16
|
-
// The main function that frontend developers will use should be generateTransferProof
|
|
17
|
-
// and it should return the proved transactions array (not void)
|
|
18
|
-
(0, chai_1.expect)(tx_proof_transfer_with_data_1.generateTransferProof).to.be.a('function');
|
|
19
|
-
(0, chai_1.expect)(tx_proof_transfer_with_data_1.generateTransferProofForExplorer).to.be.a('function');
|
|
20
|
-
// Both functions should exist and be callable
|
|
21
|
-
// generateTransferProof is the one that returns proved transactions array
|
|
22
|
-
// generateTransferProofForExplorer is the internal one that returns void
|
|
23
|
-
});
|
|
24
|
-
});
|
|
25
|
-
describe('Integration behavior (may fail in test environment)', () => {
|
|
26
|
-
it('should attempt to call generateTransferProof and handle expected failures gracefully', async () => {
|
|
27
|
-
// This test expects to fail due to missing DOP engine initialization
|
|
28
|
-
// But it verifies the function structure and error handling
|
|
29
|
-
try {
|
|
30
|
-
// This will likely fail, but that's expected in test environment
|
|
31
|
-
const result = await (0, tx_proof_transfer_with_data_1.generateTransferProof)('V3_PoseidonMerkle', // Using string to avoid import issues
|
|
32
|
-
'Polygon', 'test-wallet-id', 'test-encryption-key', true, 'test memo', [], [], undefined, false, undefined, () => { });
|
|
33
|
-
// If we get here, the function worked (unlikely in test env)
|
|
34
|
-
console.log('✅ generateTransferProof executed successfully');
|
|
35
|
-
// Verify it returns an array (proved transactions)
|
|
36
|
-
(0, chai_1.expect)(result).to.be.an('array');
|
|
37
|
-
}
|
|
38
|
-
catch (error) {
|
|
39
|
-
// This is expected in test environment
|
|
40
|
-
console.log('⚠️ Expected failure in test environment:', error.message);
|
|
41
|
-
// Verify the error is what we expect (DOP engine not initialized)
|
|
42
|
-
(0, chai_1.expect)(error.message).to.satisfy((msg) => msg.includes('not yet initialized') ||
|
|
43
|
-
msg.includes('No cached proof') ||
|
|
44
|
-
msg.includes('MOCK_DB_ENCRYPTION_KEY') ||
|
|
45
|
-
msg.includes('DOP Engine'));
|
|
46
|
-
}
|
|
47
|
-
});
|
|
48
|
-
});
|
|
49
|
-
});
|
|
50
|
-
//# sourceMappingURL=tx-proof-transfer-with-data.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"tx-proof-transfer-with-data.test.js","sourceRoot":"","sources":["../../../../src/services/transactions/__tests__/tx-proof-transfer-with-data.test.ts"],"names":[],"mappings":";;AAAA,+BAA8B;AAC9B,gFAGwC;AAExC,QAAQ,CAAC,6BAA6B,EAAE,GAAG,EAAE;IAC3C,QAAQ,CAAC,iCAAiC,EAAE,GAAG,EAAE;QAC/C,EAAE,CAAC,qFAAqF,EAAE,GAAG,EAAE;YAC7F,IAAA,aAAM,EAAC,mDAAqB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;YAClD,IAAA,aAAM,EAAC,mDAAqB,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,4BAA4B;QACjF,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,oFAAoF,EAAE,GAAG,EAAE;YAC5F,IAAA,aAAM,EAAC,8DAAgC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;YAC7D,IAAA,aAAM,EAAC,8DAAgC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,4BAA4B;QAC5F,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,4DAA4D,EAAE,GAAG,EAAE;YACpE,sFAAsF;YACtF,gEAAgE;YAChE,IAAA,aAAM,EAAC,mDAAqB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;YAClD,IAAA,aAAM,EAAC,8DAAgC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;YAE7D,8CAA8C;YAC9C,0EAA0E;YAC1E,yEAAyE;QAC3E,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,qDAAqD,EAAE,GAAG,EAAE;QACnE,EAAE,CAAC,sFAAsF,EAAE,KAAK,IAAI,EAAE;YACpG,qEAAqE;YACrE,4DAA4D;YAE5D,IAAI;gBACF,iEAAiE;gBACjE,MAAM,MAAM,GAAG,MAAM,IAAA,mDAAqB,EACxC,mBAA0B,EAAE,sCAAsC;gBAClE,SAAgB,EAChB,gBAAgB,EAChB,qBAAqB,EACrB,IAAI,EACJ,WAAW,EACX,EAAE,EACF,EAAE,EACF,SAAS,EACT,KAAK,EACL,SAAS,EACT,GAAG,EAAE,GAAE,CAAC,CACT,CAAC;gBAEF,6DAA6D;gBAC7D,OAAO,CAAC,GAAG,CAAC,+CAA+C,CAAC,CAAC;gBAE7D,mDAAmD;gBACnD,IAAA,aAAM,EAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC;aAElC;YAAC,OAAO,KAAK,EAAE;gBACd,uCAAuC;gBACvC,OAAO,CAAC,GAAG,CAAC,2CAA2C,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;gBAExE,kEAAkE;gBAClE,IAAA,aAAM,EAAC,KAAK,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,GAAW,EAAE,EAAE,CAC/C,GAAG,CAAC,QAAQ,CAAC,qBAAqB,CAAC;oBACnC,GAAG,CAAC,QAAQ,CAAC,iBAAiB,CAAC;oBAC/B,GAAG,CAAC,QAAQ,CAAC,wBAAwB,CAAC;oBACtC,GAAG,CAAC,QAAQ,CAAC,YAAY,CAAC,CAC3B,CAAC;aACH;QACH,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC","sourcesContent":["import { expect } from 'chai';\nimport { \n generateTransferProof, \n generateTransferProofForExplorer\n} from '../tx-proof-transfer-with-data';\n\ndescribe('tx-proof-transfer-with-data', () => {\n describe('Function exports and signatures', () => {\n it('should export generateTransferProof function that returns proved transactions array', () => {\n expect(generateTransferProof).to.be.a('function');\n expect(generateTransferProof.length).to.equal(12); // Should have 12 parameters\n });\n\n it('should export generateTransferProofForExplorer function that returns Promise<void>', () => {\n expect(generateTransferProofForExplorer).to.be.a('function');\n expect(generateTransferProofForExplorer.length).to.equal(12); // Should have 12 parameters\n });\n\n it('should maintain naming consistency for frontend developers', () => {\n // The main function that frontend developers will use should be generateTransferProof\n // and it should return the proved transactions array (not void)\n expect(generateTransferProof).to.be.a('function');\n expect(generateTransferProofForExplorer).to.be.a('function');\n \n // Both functions should exist and be callable\n // generateTransferProof is the one that returns proved transactions array\n // generateTransferProofForExplorer is the internal one that returns void\n });\n });\n\n describe('Integration behavior (may fail in test environment)', () => {\n it('should attempt to call generateTransferProof and handle expected failures gracefully', async () => {\n // This test expects to fail due to missing DOP engine initialization\n // But it verifies the function structure and error handling\n \n try {\n // This will likely fail, but that's expected in test environment\n const result = await generateTransferProof(\n 'V3_PoseidonMerkle' as any, // Using string to avoid import issues\n 'Polygon' as any,\n 'test-wallet-id',\n 'test-encryption-key',\n true,\n 'test memo',\n [],\n [],\n undefined,\n false,\n undefined,\n () => {},\n );\n \n // If we get here, the function worked (unlikely in test env)\n console.log('✅ generateTransferProof executed successfully');\n \n // Verify it returns an array (proved transactions)\n expect(result).to.be.an('array');\n \n } catch (error) {\n // This is expected in test environment\n console.log('⚠️ Expected failure in test environment:', error.message);\n \n // Verify the error is what we expect (DOP engine not initialized)\n expect(error.message).to.satisfy((msg: string) => \n msg.includes('not yet initialized') || \n msg.includes('No cached proof') ||\n msg.includes('MOCK_DB_ENCRYPTION_KEY') ||\n msg.includes('DOP Engine')\n );\n }\n });\n });\n});\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|