@lidofinance/wallets-testing-wallets 1.17.0 → 1.19.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (53) hide show
  1. package/dist/src/ctrl/ctrl.constants.d.ts +3 -0
  2. package/dist/src/ctrl/ctrl.constants.d.ts.map +1 -0
  3. package/dist/src/ctrl/ctrl.constants.js +13 -0
  4. package/dist/src/ctrl/ctrl.constants.js.map +1 -0
  5. package/dist/src/ctrl/ctrl.page.d.ts +42 -0
  6. package/dist/src/ctrl/ctrl.page.d.ts.map +1 -0
  7. package/dist/src/ctrl/ctrl.page.js +106 -0
  8. package/dist/src/ctrl/ctrl.page.js.map +1 -0
  9. package/dist/src/ctrl/index.d.ts +3 -0
  10. package/dist/src/ctrl/index.d.ts.map +1 -0
  11. package/dist/src/{xdefi → ctrl}/index.js +2 -2
  12. package/dist/src/ctrl/index.js.map +1 -0
  13. package/dist/src/ctrl/pages/index.d.ts +4 -0
  14. package/dist/src/ctrl/pages/index.d.ts.map +1 -0
  15. package/dist/src/ctrl/pages/index.js +20 -0
  16. package/dist/src/ctrl/pages/index.js.map +1 -0
  17. package/dist/src/ctrl/pages/login.page.d.ts +12 -0
  18. package/dist/src/ctrl/pages/login.page.d.ts.map +1 -0
  19. package/dist/src/ctrl/pages/login.page.js +27 -0
  20. package/dist/src/ctrl/pages/login.page.js.map +1 -0
  21. package/dist/src/ctrl/pages/onboarding.page.d.ts +20 -0
  22. package/dist/src/ctrl/pages/onboarding.page.d.ts.map +1 -0
  23. package/dist/src/ctrl/pages/onboarding.page.js +75 -0
  24. package/dist/src/ctrl/pages/onboarding.page.js.map +1 -0
  25. package/dist/src/ctrl/pages/walletOperations.page.d.ts +7 -0
  26. package/dist/src/ctrl/pages/walletOperations.page.d.ts.map +1 -0
  27. package/dist/src/ctrl/pages/walletOperations.page.js +11 -0
  28. package/dist/src/ctrl/pages/walletOperations.page.js.map +1 -0
  29. package/dist/src/index.d.ts +1 -1
  30. package/dist/src/index.d.ts.map +1 -1
  31. package/dist/src/index.js +1 -1
  32. package/dist/src/index.js.map +1 -1
  33. package/dist/src/metamask/metamask.page.d.ts +2 -1
  34. package/dist/src/metamask/metamask.page.d.ts.map +1 -1
  35. package/dist/src/metamask/metamask.page.js +2 -1
  36. package/dist/src/metamask/metamask.page.js.map +1 -1
  37. package/dist/src/okx/okx.page.d.ts +2 -2
  38. package/dist/src/okx/okx.page.d.ts.map +1 -1
  39. package/dist/src/okx/okx.page.js +3 -3
  40. package/dist/src/okx/okx.page.js.map +1 -1
  41. package/dist/tsconfig.tsbuildinfo +1 -1
  42. package/package.json +1 -1
  43. package/dist/src/xdefi/index.d.ts +0 -3
  44. package/dist/src/xdefi/index.d.ts.map +0 -1
  45. package/dist/src/xdefi/index.js.map +0 -1
  46. package/dist/src/xdefi/xdefi.constants.d.ts +0 -3
  47. package/dist/src/xdefi/xdefi.constants.d.ts.map +0 -1
  48. package/dist/src/xdefi/xdefi.constants.js +0 -13
  49. package/dist/src/xdefi/xdefi.constants.js.map +0 -1
  50. package/dist/src/xdefi/xdefi.page.d.ts +0 -22
  51. package/dist/src/xdefi/xdefi.page.d.ts.map +0 -1
  52. package/dist/src/xdefi/xdefi.page.js +0 -112
  53. package/dist/src/xdefi/xdefi.page.js.map +0 -1
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lidofinance/wallets-testing-wallets",
3
- "version": "1.17.0",
3
+ "version": "1.19.0",
4
4
  "main": "dist/src/index.js",
5
5
  "types": "dist/src/index.d.ts",
6
6
  "license": "MIT",
@@ -1,3 +0,0 @@
1
- export * from './xdefi.page';
2
- export * from './xdefi.constants';
3
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/xdefi/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,mBAAmB,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/xdefi/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,+CAA6B;AAC7B,oDAAkC"}
@@ -1,3 +0,0 @@
1
- import { CommonWalletConfig } from '../wallets.constants';
2
- export declare const XDEFI_COMMON_CONFIG: CommonWalletConfig;
3
- //# sourceMappingURL=xdefi.constants.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"xdefi.constants.d.ts","sourceRoot":"","sources":["../../../src/xdefi/xdefi.constants.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAE1D,eAAO,MAAM,mBAAmB,EAAE,kBAQjC,CAAC"}
@@ -1,13 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.XDEFI_COMMON_CONFIG = void 0;
4
- exports.XDEFI_COMMON_CONFIG = {
5
- WALLET_NAME: 'xdefi',
6
- CONNECTED_WALLET_NAME: 'XDEFI',
7
- RPC_URL_PATTERN: 'https://mainnet.infura.io/v3/**',
8
- STORE_EXTENSION_ID: 'hmeobnfnfcmdkdcmlblgagmfpfboieaf',
9
- CONNECT_BUTTON_NAME: 'XDEFI',
10
- SIMPLE_CONNECT: false,
11
- EXTENSION_START_PATH: '/app.html',
12
- };
13
- //# sourceMappingURL=xdefi.constants.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"xdefi.constants.js","sourceRoot":"","sources":["../../../src/xdefi/xdefi.constants.ts"],"names":[],"mappings":";;;AAEa,QAAA,mBAAmB,GAAuB;IACrD,WAAW,EAAE,OAAO;IACpB,qBAAqB,EAAE,OAAO;IAC9B,eAAe,EAAE,iCAAiC;IAClD,kBAAkB,EAAE,kCAAkC;IACtD,mBAAmB,EAAE,OAAO;IAC5B,cAAc,EAAE,KAAK;IACrB,oBAAoB,EAAE,WAAW;CAClC,CAAC"}
@@ -1,22 +0,0 @@
1
- import { WalletConfig } from '../wallets.constants';
2
- import { WalletPage } from '../wallet.page';
3
- import { BrowserContext, Page } from '@playwright/test';
4
- export declare class XdefiPage implements WalletPage {
5
- private browserContext;
6
- private extensionUrl;
7
- config: WalletConfig;
8
- page: Page | undefined;
9
- constructor(browserContext: BrowserContext, extensionUrl: string, config: WalletConfig);
10
- navigate(): Promise<void>;
11
- setup(): Promise<void>;
12
- importTokens(token: string): Promise<void>;
13
- firstTimeSetup(): Promise<void>;
14
- importKey(key: string): Promise<void>;
15
- connectWallet(page: Page): Promise<void>;
16
- assertTxAmount(page: Page, expectedAmount: string): Promise<void>;
17
- confirmTx(page: Page): Promise<void>;
18
- signTx(page: Page): Promise<void>;
19
- assertReceiptAddress(page: Page, expectedAddress: string): Promise<void>;
20
- addNetwork(networkName: string, networkUrl: string, chainId: number, tokenSymbol: string): Promise<void>;
21
- }
22
- //# sourceMappingURL=xdefi.page.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"xdefi.page.d.ts","sourceRoot":"","sources":["../../../src/xdefi/xdefi.page.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAE5C,OAAO,EAAQ,cAAc,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAE9D,qBAAa,SAAU,YAAW,UAAU;IAIxC,OAAO,CAAC,cAAc;IACtB,OAAO,CAAC,YAAY;IACb,MAAM,EAAE,YAAY;IAL7B,IAAI,EAAE,IAAI,GAAG,SAAS,CAAC;gBAGb,cAAc,EAAE,cAAc,EAC9B,YAAY,EAAE,MAAM,EACrB,MAAM,EAAE,YAAY;IAGvB,QAAQ;IAWR,KAAK;IAaL,YAAY,CAAC,KAAK,EAAE,MAAM;IAW1B,cAAc;IAyBd,SAAS,CAAC,GAAG,EAAE,MAAM;IAcrB,aAAa,CAAC,IAAI,EAAE,IAAI;IAaxB,cAAc,CAAC,IAAI,EAAE,IAAI,EAAE,cAAc,EAAE,MAAM;IAMjD,SAAS,CAAC,IAAI,EAAE,IAAI;IAOpB,MAAM,CAAC,IAAI,EAAE,IAAI;IAGjB,oBAAoB,CAAC,IAAI,EAAE,IAAI,EAAE,eAAe,EAAE,MAAM;IAGxD,UAAU,CAAC,WAAW,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM;CAC/F"}
@@ -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
- exports.XdefiPage = void 0;
7
- const expect_1 = __importDefault(require("expect"));
8
- const test_1 = require("@playwright/test");
9
- class XdefiPage {
10
- constructor(browserContext, extensionUrl, config) {
11
- this.browserContext = browserContext;
12
- this.extensionUrl = extensionUrl;
13
- this.config = config;
14
- }
15
- async navigate() {
16
- await test_1.test.step('Navigate to xdefi', async () => {
17
- this.page = await this.browserContext.newPage();
18
- await this.page.goto(this.extensionUrl + this.config.COMMON.EXTENSION_START_PATH);
19
- await this.page.reload();
20
- await this.page.waitForTimeout(1000);
21
- });
22
- }
23
- async setup() {
24
- await test_1.test.step('Setup', async () => {
25
- // added explicit route to /onboarding due to unexpected first time route from /home.html to /onboarding - page is close
26
- this.page = await this.browserContext.newPage();
27
- await this.page.goto(this.extensionUrl + '/onboarding.html');
28
- if (!this.page)
29
- throw "Page isn't ready";
30
- const firstTime = await this.page.waitForSelector("text=Let's get started");
31
- if (firstTime)
32
- await this.firstTimeSetup();
33
- });
34
- }
35
- async importTokens(token) {
36
- await test_1.test.step('Import token', async () => {
37
- await this.navigate();
38
- if (!this.page)
39
- throw "Page isn't ready";
40
- await this.page.click('button[data-testid="addAssetsBtn"]');
41
- await this.page.click('li[data-testid="customTab"]');
42
- await this.page.type('input[name="address"]', token);
43
- await this.page.click('button[data-testid="nextBtn"]');
44
- });
45
- }
46
- async firstTimeSetup() {
47
- await test_1.test.step('First time setup', async () => {
48
- if (!this.page)
49
- throw "Page isn't ready";
50
- await this.page.click('text=Restore XDEFI Wallet');
51
- await this.page.click('text=Restore with secret phrase');
52
- const inputs = this.page.locator('input[data-testid=input]');
53
- const seedWords = this.config.SECRET_PHRASE.split(' ');
54
- for (let i = 0; i < seedWords.length; i++) {
55
- await inputs.nth(i).fill(seedWords[i]);
56
- }
57
- await this.page.click('text=Next');
58
- await this.page.fill('input[name="password"]', this.config.PASSWORD);
59
- await this.page.fill('input[name="cpassword"]', this.config.PASSWORD);
60
- await this.page.click('div[data-testid=termsAndConditionsCheckbox]');
61
- await this.page.click('button[type="submit"]');
62
- await this.page.fill('input[name="walletName"]', this.config.COMMON.WALLET_NAME);
63
- await this.page.click('button[type="submit"]');
64
- await this.page.click('div[data-testid=prioritiesXdefiToggle]');
65
- await this.page.click('button[data-testid=nextBtn]');
66
- });
67
- }
68
- async importKey(key) {
69
- await test_1.test.step('Import key', async () => {
70
- if (!this.page)
71
- throw "Page isn't ready";
72
- await this.navigate();
73
- await this.page.click('button[data-testid="menuBtn"]');
74
- await this.page.click('li[data-testid="walletManagementBtn"]');
75
- await this.page.click('div[data-testid="importWalletBtn"]');
76
- await this.page.click('text=Seed Phrase');
77
- await this.page.fill('textarea[name="[phrase"]', key);
78
- await this.page.click('svg:below(input)');
79
- await this.page.click('button[data-testid="importBtn"]');
80
- });
81
- }
82
- async connectWallet(page) {
83
- await test_1.test.step('Connect wallet', async () => {
84
- await page.click('button[data-testid="nextBtn"]');
85
- await page
86
- .locator('svg[data-testid="checkbox-unchecked"]')
87
- .first()
88
- .locator('..')
89
- .click();
90
- await page.click('button[data-testid="connectBtn"]');
91
- await page.close();
92
- });
93
- }
94
- async assertTxAmount(page, expectedAmount) {
95
- await test_1.test.step('Assert TX Amount', async () => {
96
- (0, expect_1.default)(await page.locator(`text=${expectedAmount} ETH`).count()).toBe(1);
97
- });
98
- }
99
- async confirmTx(page) {
100
- await test_1.test.step('Confirm TX', async () => {
101
- await page.click('button[data-testid="confirmBtn"]');
102
- });
103
- }
104
- // eslint-disable-next-line
105
- async signTx(page) { }
106
- // eslint-disable-next-line
107
- async assertReceiptAddress(page, expectedAddress) { }
108
- // eslint-disable-next-line
109
- async addNetwork(networkName, networkUrl, chainId, tokenSymbol) { }
110
- }
111
- exports.XdefiPage = XdefiPage;
112
- //# sourceMappingURL=xdefi.page.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"xdefi.page.js","sourceRoot":"","sources":["../../../src/xdefi/xdefi.page.ts"],"names":[],"mappings":"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"}