@pasosdejesus/m 0.23.0 → 0.23.1
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/dist/CHANGELOG.md +18 -0
- package/dist/e2e/env.test.js +13 -0
- package/dist/e2e/env.test.js.map +1 -1
- package/dist/e2e/index.d.ts +1 -1
- package/dist/e2e/index.d.ts.map +1 -1
- package/dist/e2e/signer.test.d.ts +2 -0
- package/dist/e2e/signer.test.d.ts.map +1 -0
- package/dist/e2e/signer.test.js +57 -0
- package/dist/e2e/signer.test.js.map +1 -0
- package/dist/e2e/wallet-mock.d.ts +18 -3
- package/dist/e2e/wallet-mock.d.ts.map +1 -1
- package/dist/e2e/wallet-mock.js +22 -10
- package/dist/e2e/wallet-mock.js.map +1 -1
- package/dist/e2e/wallet-mock.test.js +7 -7
- package/dist/e2e/wallet-mock.test.js.map +1 -1
- package/package.json +1 -1
package/dist/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,24 @@
|
|
|
2
2
|
|
|
3
3
|
All notable changes to `@pasosdejesus/m` are documented in this file.
|
|
4
4
|
|
|
5
|
+
## [0.23.1] - 2026-10-08
|
|
6
|
+
|
|
7
|
+
### Fixed
|
|
8
|
+
|
|
9
|
+
- **`@pasosdejesus/m/e2e` — API de firma real (corrige 0.23.0).** `ethereumMockCode`/
|
|
10
|
+
`eip6963MockCode` **ya no aceptan `privateKey`**: no instalaban el puente y generaban código que
|
|
11
|
+
llamaba a `window.__signMessage` sin existir. Ahora exponen `realSigning` + nombres de puente
|
|
12
|
+
(requieren el puente instalado) y la vía segura es `injectEIP6963(page, { address, privateKey })`,
|
|
13
|
+
que instala el puente **y** activa `realSigning`. Sin `realSigning`/`privateKey` sigue la firma
|
|
14
|
+
falsa `0xabab…` (https://gitlab.com/pasosdeJesus/m/-/work_items/49).
|
|
15
|
+
- Tests: nuevo `signer.test.ts` (EIP-191 verificable con `verifyMessage`, EIP-712, nombres de
|
|
16
|
+
puente) y casos de `SITE_URL` con path / http sin puerto en `env.test.ts`.
|
|
17
|
+
|
|
18
|
+
### Documentation
|
|
19
|
+
|
|
20
|
+
- `m/doc/identidad-multibilletera.md` §8.2: sivel3 **no** consume aún el núcleo (auth
|
|
21
|
+
wagmi/RainbowKit, EIP-191; `m@^0.18.4`); adoptará el núcleo al migrar su auth.
|
|
22
|
+
|
|
5
23
|
## [0.23.0] - 2026-10-08
|
|
6
24
|
|
|
7
25
|
### Added
|
package/dist/e2e/env.test.js
CHANGED
|
@@ -49,6 +49,19 @@ describe('e2e env — SITE_URL', () => {
|
|
|
49
49
|
expect(env.domainPort).toBe('');
|
|
50
50
|
expect(env.port).toBe('443');
|
|
51
51
|
});
|
|
52
|
+
it('SITE_URL con path usa solo el origin', async () => {
|
|
53
|
+
process.env.SITE_URL = 'https://sivel.xyz/app?x=1';
|
|
54
|
+
const env = await initTestEnv();
|
|
55
|
+
expect(env.base).toBe('https://sivel.xyz');
|
|
56
|
+
expect(env.host).toBe('sivel.xyz');
|
|
57
|
+
});
|
|
58
|
+
it('SITE_URL http sin puerto resuelve 80 (sin domainPort)', async () => {
|
|
59
|
+
process.env.SITE_URL = 'http://localhost';
|
|
60
|
+
const env = await initTestEnv();
|
|
61
|
+
expect(env.base).toBe('http://localhost');
|
|
62
|
+
expect(env.port).toBe('80');
|
|
63
|
+
expect(env.domainPort).toBe('');
|
|
64
|
+
});
|
|
52
65
|
it('parseSiteUrl ignora valores inválidos o vacíos', () => {
|
|
53
66
|
expect(parseSiteUrl(undefined)).toBeNull();
|
|
54
67
|
expect(parseSiteUrl('')).toBeNull();
|
package/dist/e2e/env.test.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"env.test.js","sourceRoot":"","sources":["../../src/e2e/env.test.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"env.test.js","sourceRoot":"","sources":["../../src/e2e/env.test.ts"],"names":[],"mappings":"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"}
|
package/dist/e2e/index.d.ts
CHANGED
|
@@ -11,5 +11,5 @@ export { setupSIWEMock } from './siwe-mock.js';
|
|
|
11
11
|
export { installRealSigner, REAL_SIGNER_NAME, REAL_TYPED_DATA_SIGNER_NAME } from './signer.js';
|
|
12
12
|
export type { RealSigner, RealSignerOpts } from './signer.js';
|
|
13
13
|
export { ethereumMockCode, eip6963MockCode, injectEIP6963 } from './wallet-mock.js';
|
|
14
|
-
export type { EthereumMockOpts } from './wallet-mock.js';
|
|
14
|
+
export type { EthereumMockOpts, InjectEIP6963Opts } from './wallet-mock.js';
|
|
15
15
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/e2e/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/e2e/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAA;AAClE,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAA;AAC9E,YAAY,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA;AACtC,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,OAAO,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAA;AAC3H,YAAY,EAAE,OAAO,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAA;AAC1E,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAA;AAC3D,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AAC5D,YAAY,EAAE,SAAS,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AACzE,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAA;AAC7E,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAA;AAC9C,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,2BAA2B,EAAE,MAAM,aAAa,CAAA;AAC9F,YAAY,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAC7D,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAA;AACnF,YAAY,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/e2e/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAA;AAClE,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAA;AAC9E,YAAY,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA;AACtC,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,OAAO,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAA;AAC3H,YAAY,EAAE,OAAO,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAA;AAC1E,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAA;AAC3D,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AAC5D,YAAY,EAAE,SAAS,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AACzE,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAA;AAC7E,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAA;AAC9C,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,2BAA2B,EAAE,MAAM,aAAa,CAAA;AAC9F,YAAY,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAC7D,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAA;AACnF,YAAY,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"signer.test.d.ts","sourceRoot":"","sources":["../../src/e2e/signer.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import { describe, expect, it } from 'vitest';
|
|
2
|
+
import { installRealSigner } from './signer.js';
|
|
3
|
+
const PK = '0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80';
|
|
4
|
+
const ADDR = '0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266';
|
|
5
|
+
/** Página falsa que captura los puentes expuestos con `exposeFunction`. */
|
|
6
|
+
function fakePage() {
|
|
7
|
+
const exposed = {};
|
|
8
|
+
return {
|
|
9
|
+
page: { exposeFunction: async (name, fn) => { exposed[name] = fn; } },
|
|
10
|
+
exposed,
|
|
11
|
+
};
|
|
12
|
+
}
|
|
13
|
+
// P6/P7 (m/REQ/49): el puente de firma real.
|
|
14
|
+
describe('signer — installRealSigner', () => {
|
|
15
|
+
it('deriva la dirección y firma EIP-191 verificable', async () => {
|
|
16
|
+
const { page, exposed } = fakePage();
|
|
17
|
+
const signer = await installRealSigner(page, { privateKey: PK });
|
|
18
|
+
expect(signer.address).toBe(ADDR);
|
|
19
|
+
const sig = await exposed['__signMessage']('hola');
|
|
20
|
+
expect(sig).toMatch(/^0x[0-9a-f]+$/i);
|
|
21
|
+
const { verifyMessage } = await import('viem');
|
|
22
|
+
const ok = await verifyMessage({ address: ADDR, message: 'hola', signature: sig });
|
|
23
|
+
expect(ok).toBe(true);
|
|
24
|
+
});
|
|
25
|
+
it('firma EIP-712 (typed data), ignorando EIP712Domain en types', async () => {
|
|
26
|
+
const { page, exposed } = fakePage();
|
|
27
|
+
await installRealSigner(page, { privateKey: PK });
|
|
28
|
+
const typed = {
|
|
29
|
+
domain: { name: 'Test', version: '1', chainId: 42220 },
|
|
30
|
+
types: {
|
|
31
|
+
EIP712Domain: [
|
|
32
|
+
{ name: 'name', type: 'string' },
|
|
33
|
+
{ name: 'version', type: 'string' },
|
|
34
|
+
{ name: 'chainId', type: 'uint256' },
|
|
35
|
+
],
|
|
36
|
+
Score: [{ name: 'value', type: 'uint256' }],
|
|
37
|
+
},
|
|
38
|
+
primaryType: 'Score',
|
|
39
|
+
message: { value: 1 },
|
|
40
|
+
};
|
|
41
|
+
const sig = await exposed['__signTypedData'](JSON.stringify(typed));
|
|
42
|
+
expect(sig).toMatch(/^0x[0-9a-f]+$/i);
|
|
43
|
+
});
|
|
44
|
+
it('respeta nombres de puente personalizados', async () => {
|
|
45
|
+
const { page, exposed } = fakePage();
|
|
46
|
+
const signer = await installRealSigner(page, {
|
|
47
|
+
privateKey: PK,
|
|
48
|
+
name: '__firma',
|
|
49
|
+
typedDataName: '__firmaTyped',
|
|
50
|
+
});
|
|
51
|
+
expect(signer.name).toBe('__firma');
|
|
52
|
+
expect(signer.typedDataName).toBe('__firmaTyped');
|
|
53
|
+
expect(exposed['__firma']).toBeTypeOf('function');
|
|
54
|
+
expect(exposed['__firmaTyped']).toBeTypeOf('function');
|
|
55
|
+
});
|
|
56
|
+
});
|
|
57
|
+
//# sourceMappingURL=signer.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"signer.test.js","sourceRoot":"","sources":["../../src/e2e/signer.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAA;AAC7C,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAA;AAE/C,MAAM,EAAE,GAAG,oEAA6E,CAAA;AACxF,MAAM,IAAI,GAAG,4CAA4C,CAAA;AAEzD,2EAA2E;AAC3E,SAAS,QAAQ;IACf,MAAM,OAAO,GAAyC,EAAE,CAAA;IACxD,OAAO;QACL,IAAI,EAAE,EAAE,cAAc,EAAE,KAAK,EAAE,IAAY,EAAE,EAAO,EAAE,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,CAAA,CAAC,CAAC,EAAE;QACjF,OAAO;KACR,CAAA;AACH,CAAC;AAED,6CAA6C;AAC7C,QAAQ,CAAC,4BAA4B,EAAE,GAAG,EAAE;IAC1C,EAAE,CAAC,iDAAiD,EAAE,KAAK,IAAI,EAAE;QAC/D,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,QAAQ,EAAE,CAAA;QACpC,MAAM,MAAM,GAAG,MAAM,iBAAiB,CAAC,IAAI,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC,CAAA;QAChE,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAEjC,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,eAAe,CAAC,CAAC,MAAM,CAAC,CAAA;QAClD,MAAM,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAA;QAErC,MAAM,EAAE,aAAa,EAAE,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,CAAA;QAC9C,MAAM,EAAE,GAAG,MAAM,aAAa,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC,CAAA;QAClF,MAAM,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IACvB,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,6DAA6D,EAAE,KAAK,IAAI,EAAE;QAC3E,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,QAAQ,EAAE,CAAA;QACpC,MAAM,iBAAiB,CAAC,IAAI,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC,CAAA;QACjD,MAAM,KAAK,GAAG;YACZ,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE;YACtD,KAAK,EAAE;gBACL,YAAY,EAAE;oBACZ,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE;oBAChC,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,QAAQ,EAAE;oBACnC,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE;iBACrC;gBACD,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;aAC5C;YACD,WAAW,EAAE,OAAO;YACpB,OAAO,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE;SACtB,CAAA;QACD,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,iBAAiB,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAA;QACnE,MAAM,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAA;IACvC,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,0CAA0C,EAAE,KAAK,IAAI,EAAE;QACxD,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,QAAQ,EAAE,CAAA;QACpC,MAAM,MAAM,GAAG,MAAM,iBAAiB,CAAC,IAAI,EAAE;YAC3C,UAAU,EAAE,EAAE;YACd,IAAI,EAAE,SAAS;YACf,aAAa,EAAE,cAAc;SAC9B,CAAC,CAAA;QACF,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;QACnC,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAA;QACjD,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC,CAAA;QACjD,MAAM,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC,CAAA;IACxD,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA"}
|
|
@@ -2,8 +2,14 @@ import type { E2EPage } from './browser.js';
|
|
|
2
2
|
export interface EthereumMockOpts {
|
|
3
3
|
address: string;
|
|
4
4
|
chainId?: number;
|
|
5
|
-
/**
|
|
6
|
-
|
|
5
|
+
/**
|
|
6
|
+
* El código llamará a los puentes de `installRealSigner` para
|
|
7
|
+
* `personal_sign`/`eth_signTypedData_v4`. **Requiere** que el puente esté
|
|
8
|
+
* instalado: llama `installRealSigner(page, { privateKey })` antes, o usa
|
|
9
|
+
* `injectEIP6963(page, { address, privateKey })`, que lo instala por ti.
|
|
10
|
+
* Sin esto, la firma es falsa (`0xabab…`).
|
|
11
|
+
*/
|
|
12
|
+
realSigning?: boolean;
|
|
7
13
|
/** Nombre del puente de `personal_sign` (default `__signMessage`). */
|
|
8
14
|
signerName?: string;
|
|
9
15
|
/** Nombre del puente typed-data (default `__signTypedData`). */
|
|
@@ -11,7 +17,16 @@ export interface EthereumMockOpts {
|
|
|
11
17
|
/** Nombre de la billetera anunciada por EIP-6963 (default `MockWallet`). */
|
|
12
18
|
walletName?: string;
|
|
13
19
|
}
|
|
20
|
+
export interface InjectEIP6963Opts extends EthereumMockOpts {
|
|
21
|
+
/** Instala el puente de firma real **y** activa `realSigning`. */
|
|
22
|
+
privateKey?: string;
|
|
23
|
+
}
|
|
14
24
|
export declare function ethereumMockCode(opts: EthereumMockOpts): string;
|
|
15
25
|
export declare function eip6963MockCode(opts: EthereumMockOpts): string;
|
|
16
|
-
|
|
26
|
+
/**
|
|
27
|
+
* Inyecta el mock EIP-6963. Con `privateKey` **instala el puente de firma real**
|
|
28
|
+
* (via `installRealSigner`) y activa `realSigning`, de modo que `personal_sign`
|
|
29
|
+
* y `eth_signTypedData_v4` firman de verdad. Sin `privateKey`, firma en falso.
|
|
30
|
+
*/
|
|
31
|
+
export declare function injectEIP6963(page: E2EPage, opts: InjectEIP6963Opts): Promise<void>;
|
|
17
32
|
//# sourceMappingURL=wallet-mock.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wallet-mock.d.ts","sourceRoot":"","sources":["../../src/e2e/wallet-mock.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"wallet-mock.d.ts","sourceRoot":"","sources":["../../src/e2e/wallet-mock.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AAG3C,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,MAAM,CAAA;IACf,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB;;;;;;OAMG;IACH,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,sEAAsE;IACtE,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,gEAAgE;IAChE,mBAAmB,CAAC,EAAE,MAAM,CAAA;IAC5B,4EAA4E;IAC5E,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB;AAED,MAAM,WAAW,iBAAkB,SAAQ,gBAAgB;IACzD,kEAAkE;IAClE,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB;AAeD,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,gBAAgB,GAAG,MAAM,CAwB/D;AAID,wBAAgB,eAAe,CAAC,IAAI,EAAE,gBAAgB,GAAG,MAAM,CAyC9D;AAED;;;;GAIG;AACH,wBAAsB,aAAa,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CAgCzF"}
|
package/dist/e2e/wallet-mock.js
CHANGED
|
@@ -2,18 +2,19 @@
|
|
|
2
2
|
// into the browser page. Not detected by wagmi (EIP-6963), but prevents
|
|
3
3
|
// console errors and enables basic dApp interaction.
|
|
4
4
|
//
|
|
5
|
-
//
|
|
6
|
-
// `eth_signTypedData_v4`
|
|
7
|
-
//
|
|
8
|
-
// (
|
|
5
|
+
// Firma real (P6, m/REQ/49): el firmado real de `personal_sign` /
|
|
6
|
+
// `eth_signTypedData_v4` se controla con `realSigning` y **requiere** que el
|
|
7
|
+
// puente de `installRealSigner` esté instalado. La forma segura de habilitarlo
|
|
8
|
+
// es `injectEIP6963(page, { address, privateKey })`, que instala el puente y
|
|
9
|
+
// activa `realSigning`. Sin `realSigning` el mock firma en falso (retrocompatible).
|
|
9
10
|
//
|
|
10
11
|
// For wagmi/RainbowKit compatibility, use eip6963MockCode() or injectEIP6963().
|
|
11
12
|
import { installRealSigner } from './signer.js';
|
|
13
|
+
const FAKE_SIG = `'0x' + 'ab'.repeat(65)`;
|
|
12
14
|
/** Devuelve las expresiones de firma para el código inyectado. */
|
|
13
15
|
function signerCalls(opts) {
|
|
14
|
-
if (!opts.
|
|
15
|
-
return { personal:
|
|
16
|
-
}
|
|
16
|
+
if (!opts.realSigning)
|
|
17
|
+
return { personal: FAKE_SIG, typed: FAKE_SIG };
|
|
17
18
|
const name = opts.signerName || '__signMessage';
|
|
18
19
|
const typedName = opts.typedDataSignerName || '__signTypedData';
|
|
19
20
|
return {
|
|
@@ -90,16 +91,27 @@ export function eip6963MockCode(opts) {
|
|
|
90
91
|
}))
|
|
91
92
|
`;
|
|
92
93
|
}
|
|
94
|
+
/**
|
|
95
|
+
* Inyecta el mock EIP-6963. Con `privateKey` **instala el puente de firma real**
|
|
96
|
+
* (via `installRealSigner`) y activa `realSigning`, de modo que `personal_sign`
|
|
97
|
+
* y `eth_signTypedData_v4` firman de verdad. Sin `privateKey`, firma en falso.
|
|
98
|
+
*/
|
|
93
99
|
export async function injectEIP6963(page, opts) {
|
|
94
|
-
|
|
100
|
+
let codeOpts = opts;
|
|
95
101
|
if (opts.privateKey) {
|
|
96
|
-
await installRealSigner(page, {
|
|
102
|
+
const signer = await installRealSigner(page, {
|
|
97
103
|
privateKey: opts.privateKey,
|
|
98
104
|
name: opts.signerName,
|
|
99
105
|
typedDataName: opts.typedDataSignerName,
|
|
100
106
|
});
|
|
107
|
+
codeOpts = {
|
|
108
|
+
...opts,
|
|
109
|
+
realSigning: true,
|
|
110
|
+
signerName: signer.name,
|
|
111
|
+
typedDataSignerName: signer.typedDataName,
|
|
112
|
+
};
|
|
101
113
|
}
|
|
102
|
-
await page.evaluateOnNewDocument(eip6963MockCode(
|
|
114
|
+
await page.evaluateOnNewDocument(eip6963MockCode(codeOpts));
|
|
103
115
|
// Re-dispatch EIP-6963 event after page loads so wagmi catches it
|
|
104
116
|
page.on('load', async () => {
|
|
105
117
|
await page.evaluate(() => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wallet-mock.js","sourceRoot":"","sources":["../../src/e2e/wallet-mock.ts"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,wEAAwE;AACxE,qDAAqD;AACrD,EAAE;AACF,
|
|
1
|
+
{"version":3,"file":"wallet-mock.js","sourceRoot":"","sources":["../../src/e2e/wallet-mock.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
import { describe, expect, it } from 'vitest';
|
|
2
2
|
import { eip6963MockCode, ethereumMockCode } from './wallet-mock.js';
|
|
3
|
-
// P6 (m/REQ/
|
|
4
|
-
// con `
|
|
5
|
-
describe('wallet-mock — firma real
|
|
6
|
-
it('sin
|
|
3
|
+
// P6 (m/REQ/49): sin `realSigning` el mock firma en falso (retrocompatible);
|
|
4
|
+
// con `realSigning` delega en el puente de `installRealSigner`.
|
|
5
|
+
describe('wallet-mock — firma real (realSigning)', () => {
|
|
6
|
+
it('sin realSigning devuelve la firma falsa (retrocompatible)', () => {
|
|
7
7
|
const code = ethereumMockCode({ address: '0xabc' });
|
|
8
8
|
expect(code).toContain(`'0x' + 'ab'.repeat(65)`);
|
|
9
9
|
expect(code).not.toContain('__signMessage');
|
|
10
10
|
});
|
|
11
|
-
it('con
|
|
12
|
-
const code = ethereumMockCode({ address: '0xabc',
|
|
11
|
+
it('con realSigning delega en el puente real', () => {
|
|
12
|
+
const code = ethereumMockCode({ address: '0xabc', realSigning: true });
|
|
13
13
|
expect(code).toContain(`window['__signMessage'](params[0])`);
|
|
14
14
|
expect(code).toContain(`window['__signTypedData'](params[1])`);
|
|
15
15
|
expect(code).not.toContain(`'0x' + 'ab'.repeat(65)`);
|
|
@@ -17,7 +17,7 @@ describe('wallet-mock — firma real con privateKey', () => {
|
|
|
17
17
|
it('respeta los nombres de puente personalizados (EIP-6963)', () => {
|
|
18
18
|
const code = eip6963MockCode({
|
|
19
19
|
address: '0xabc',
|
|
20
|
-
|
|
20
|
+
realSigning: true,
|
|
21
21
|
signerName: '__firma',
|
|
22
22
|
typedDataSignerName: '__firmaTyped',
|
|
23
23
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wallet-mock.test.js","sourceRoot":"","sources":["../../src/e2e/wallet-mock.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAA;AAC7C,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAA;AAEpE,
|
|
1
|
+
{"version":3,"file":"wallet-mock.test.js","sourceRoot":"","sources":["../../src/e2e/wallet-mock.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAA;AAC7C,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAA;AAEpE,6EAA6E;AAC7E,gEAAgE;AAChE,QAAQ,CAAC,wCAAwC,EAAE,GAAG,EAAE;IACtD,EAAE,CAAC,2DAA2D,EAAE,GAAG,EAAE;QACnE,MAAM,IAAI,GAAG,gBAAgB,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAA;QACnD,MAAM,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,wBAAwB,CAAC,CAAA;QAChD,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,eAAe,CAAC,CAAA;IAC7C,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,0CAA0C,EAAE,GAAG,EAAE;QAClD,MAAM,IAAI,GAAG,gBAAgB,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAA;QACtE,MAAM,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,oCAAoC,CAAC,CAAA;QAC5D,MAAM,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,sCAAsC,CAAC,CAAA;QAC9D,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,wBAAwB,CAAC,CAAA;IACtD,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,yDAAyD,EAAE,GAAG,EAAE;QACjE,MAAM,IAAI,GAAG,eAAe,CAAC;YAC3B,OAAO,EAAE,OAAO;YAChB,WAAW,EAAE,IAAI;YACjB,UAAU,EAAE,SAAS;YACrB,mBAAmB,EAAE,cAAc;SACpC,CAAC,CAAA;QACF,MAAM,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,8BAA8B,CAAC,CAAA;QACtD,MAAM,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,mCAAmC,CAAC,CAAA;IAC7D,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA"}
|