@polkadot-apps/tx 0.2.4 → 0.2.5

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.
@@ -0,0 +1,77 @@
1
+ import type { PolkadotSigner } from "polkadot-api";
2
+ import type { SubmittableTransaction, TxResult } from "./types.js";
3
+ /**
4
+ * Error thrown when account mapping fails.
5
+ */
6
+ export declare class TxAccountMappingError extends Error {
7
+ constructor(message: string, options?: ErrorOptions);
8
+ }
9
+ /**
10
+ * Minimal interface for checking if an address is mapped on-chain.
11
+ *
12
+ * The Ink SDK's `createInkSdk(client)` returns an object with this method.
13
+ * We accept it structurally to avoid importing `@polkadot-api/sdk-ink`.
14
+ */
15
+ export interface MappingChecker {
16
+ addressIsMapped(address: string): Promise<boolean>;
17
+ }
18
+ /**
19
+ * Minimal typed API shape for `Revive.map_account()`.
20
+ *
21
+ * Accepted structurally so this module works with any PAPI typed API
22
+ * that has the Revive pallet, without importing chain-specific descriptors.
23
+ */
24
+ export interface ReviveApi {
25
+ tx: {
26
+ Revive: {
27
+ map_account(): SubmittableTransaction;
28
+ };
29
+ };
30
+ }
31
+ /** Options for {@link ensureAccountMapped}. */
32
+ export interface EnsureAccountMappedOptions {
33
+ /** Timeout in ms for the map_account transaction. Default: 60_000 (1 minute). */
34
+ timeoutMs?: number;
35
+ /** Called on mapping transaction status changes. */
36
+ onStatus?: (status: "checking" | "mapping" | "mapped" | "already-mapped") => void;
37
+ }
38
+ /**
39
+ * Ensure an account's SS58 address is mapped to its H160 EVM address on-chain.
40
+ *
41
+ * Account mapping is a prerequisite for any EVM contract interaction on Asset Hub.
42
+ * This function checks the on-chain mapping status and, if unmapped, submits a
43
+ * `Revive.map_account()` transaction and waits for inclusion.
44
+ *
45
+ * Idempotent — safe to call multiple times. Returns immediately if already mapped.
46
+ *
47
+ * @param address - The SS58 address to check/map.
48
+ * @param signer - The signer for the account (must match the address).
49
+ * @param checker - An object with `addressIsMapped()` (e.g., from `createInkSdk(client)`).
50
+ * @param api - A typed API with `tx.Revive.map_account()`.
51
+ * @param options - Optional timeout and status callback.
52
+ * @returns The transaction result if mapping was performed, or `null` if already mapped.
53
+ *
54
+ * @throws {TxAccountMappingError} If the mapping check or transaction fails.
55
+ * @throws {TxDispatchError} If the map_account transaction fails on-chain.
56
+ * @throws {TxTimeoutError} If the mapping transaction times out.
57
+ *
58
+ * @example
59
+ * ```ts
60
+ * import { ensureAccountMapped } from "@polkadot-apps/tx";
61
+ * import { createInkSdk } from "@polkadot-api/sdk-ink";
62
+ *
63
+ * const inkSdk = createInkSdk(client);
64
+ * const api = client.getTypedApi(descriptor);
65
+ *
66
+ * await ensureAccountMapped(address, signer, inkSdk, api);
67
+ * // Account is now mapped — safe to call EVM contracts
68
+ * ```
69
+ */
70
+ export declare function ensureAccountMapped(address: string, signer: PolkadotSigner, checker: MappingChecker, api: ReviveApi, options?: EnsureAccountMappedOptions): Promise<TxResult | null>;
71
+ /**
72
+ * Check if an address is mapped on-chain.
73
+ *
74
+ * Convenience wrapper around `checker.addressIsMapped()` with error handling.
75
+ */
76
+ export declare function isAccountMapped(address: string, checker: MappingChecker): Promise<boolean>;
77
+ //# sourceMappingURL=account-mapping.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"account-mapping.d.ts","sourceRoot":"","sources":["../src/account-mapping.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAKnD,OAAO,KAAK,EAAE,sBAAsB,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAInE;;GAEG;AACH,qBAAa,qBAAsB,SAAQ,KAAK;gBAChC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,YAAY;CAItD;AAED;;;;;GAKG;AACH,MAAM,WAAW,cAAc;IAC3B,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CACtD;AAED;;;;;GAKG;AACH,MAAM,WAAW,SAAS;IACtB,EAAE,EAAE;QACA,MAAM,EAAE;YACJ,WAAW,IAAI,sBAAsB,CAAC;SACzC,CAAC;KACL,CAAC;CACL;AAED,+CAA+C;AAC/C,MAAM,WAAW,0BAA0B;IACvC,iFAAiF;IACjF,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,oDAAoD;IACpD,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,UAAU,GAAG,SAAS,GAAG,QAAQ,GAAG,gBAAgB,KAAK,IAAI,CAAC;CACrF;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,wBAAsB,mBAAmB,CACrC,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,cAAc,EACtB,OAAO,EAAE,cAAc,EACvB,GAAG,EAAE,SAAS,EACd,OAAO,CAAC,EAAE,0BAA0B,GACrC,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,CAkC1B;AAED;;;;GAIG;AACH,wBAAsB,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,OAAO,CAAC,CAMhG"}
@@ -0,0 +1,243 @@
1
+ import { createLogger } from "@polkadot-apps/logger";
2
+ import { submitAndWatch } from "./submit.js";
3
+ const log = createLogger("tx:mapping");
4
+ /**
5
+ * Error thrown when account mapping fails.
6
+ */
7
+ export class TxAccountMappingError extends Error {
8
+ constructor(message, options) {
9
+ super(message, options);
10
+ this.name = "TxAccountMappingError";
11
+ }
12
+ }
13
+ /**
14
+ * Ensure an account's SS58 address is mapped to its H160 EVM address on-chain.
15
+ *
16
+ * Account mapping is a prerequisite for any EVM contract interaction on Asset Hub.
17
+ * This function checks the on-chain mapping status and, if unmapped, submits a
18
+ * `Revive.map_account()` transaction and waits for inclusion.
19
+ *
20
+ * Idempotent — safe to call multiple times. Returns immediately if already mapped.
21
+ *
22
+ * @param address - The SS58 address to check/map.
23
+ * @param signer - The signer for the account (must match the address).
24
+ * @param checker - An object with `addressIsMapped()` (e.g., from `createInkSdk(client)`).
25
+ * @param api - A typed API with `tx.Revive.map_account()`.
26
+ * @param options - Optional timeout and status callback.
27
+ * @returns The transaction result if mapping was performed, or `null` if already mapped.
28
+ *
29
+ * @throws {TxAccountMappingError} If the mapping check or transaction fails.
30
+ * @throws {TxDispatchError} If the map_account transaction fails on-chain.
31
+ * @throws {TxTimeoutError} If the mapping transaction times out.
32
+ *
33
+ * @example
34
+ * ```ts
35
+ * import { ensureAccountMapped } from "@polkadot-apps/tx";
36
+ * import { createInkSdk } from "@polkadot-api/sdk-ink";
37
+ *
38
+ * const inkSdk = createInkSdk(client);
39
+ * const api = client.getTypedApi(descriptor);
40
+ *
41
+ * await ensureAccountMapped(address, signer, inkSdk, api);
42
+ * // Account is now mapped — safe to call EVM contracts
43
+ * ```
44
+ */
45
+ export async function ensureAccountMapped(address, signer, checker, api, options) {
46
+ const timeoutMs = options?.timeoutMs ?? 60_000;
47
+ const onStatus = options?.onStatus;
48
+ // Step 1: Check if already mapped
49
+ onStatus?.("checking");
50
+ let isMapped;
51
+ try {
52
+ isMapped = await checker.addressIsMapped(address);
53
+ }
54
+ catch (cause) {
55
+ throw new TxAccountMappingError(`Failed to check mapping status for ${address}`, { cause });
56
+ }
57
+ if (isMapped) {
58
+ log.debug("account already mapped", { address });
59
+ onStatus?.("already-mapped");
60
+ return null;
61
+ }
62
+ // Step 2: Submit map_account transaction
63
+ log.info("mapping account", { address });
64
+ onStatus?.("mapping");
65
+ const tx = api.tx.Revive.map_account();
66
+ // submitAndWatch throws TxDispatchError on dispatch failure and
67
+ // TxTimeoutError on timeout — both propagate to the caller as documented.
68
+ const result = await submitAndWatch(tx, signer, {
69
+ waitFor: "best-block",
70
+ timeoutMs,
71
+ });
72
+ log.info("account mapped successfully", { address, block: result.block });
73
+ onStatus?.("mapped");
74
+ return result;
75
+ }
76
+ /**
77
+ * Check if an address is mapped on-chain.
78
+ *
79
+ * Convenience wrapper around `checker.addressIsMapped()` with error handling.
80
+ */
81
+ export async function isAccountMapped(address, checker) {
82
+ try {
83
+ return await checker.addressIsMapped(address);
84
+ }
85
+ catch (cause) {
86
+ throw new TxAccountMappingError(`Failed to check mapping status for ${address}`, { cause });
87
+ }
88
+ }
89
+ if (import.meta.vitest) {
90
+ const { describe, test, expect, vi } = import.meta.vitest;
91
+ describe("ensureAccountMapped", () => {
92
+ const mockSigner = {};
93
+ test("returns null when already mapped", async () => {
94
+ const checker = {
95
+ addressIsMapped: vi.fn().mockResolvedValue(true),
96
+ };
97
+ const api = {};
98
+ const result = await ensureAccountMapped("5Alice", mockSigner, checker, api);
99
+ expect(result).toBeNull();
100
+ expect(checker.addressIsMapped).toHaveBeenCalledWith("5Alice");
101
+ });
102
+ test("calls onStatus with already-mapped when mapped", async () => {
103
+ const statuses = [];
104
+ const checker = {
105
+ addressIsMapped: vi.fn().mockResolvedValue(true),
106
+ };
107
+ await ensureAccountMapped("5Alice", mockSigner, checker, {}, {
108
+ onStatus: (s) => statuses.push(s),
109
+ });
110
+ expect(statuses).toEqual(["checking", "already-mapped"]);
111
+ });
112
+ test("throws TxAccountMappingError when check fails", async () => {
113
+ const checker = {
114
+ addressIsMapped: vi.fn().mockRejectedValue(new Error("network error")),
115
+ };
116
+ await expect(ensureAccountMapped("5Alice", mockSigner, checker, {})).rejects.toThrow(TxAccountMappingError);
117
+ });
118
+ test("submits map_account when not mapped", async () => {
119
+ const checker = {
120
+ addressIsMapped: vi.fn().mockResolvedValue(false),
121
+ };
122
+ const mockTx = {
123
+ signSubmitAndWatch: (_signer, _options) => ({
124
+ subscribe: (handlers) => {
125
+ queueMicrotask(() => {
126
+ handlers.next({ type: "signed", txHash: "0xabc" });
127
+ handlers.next({
128
+ type: "txBestBlocksState",
129
+ txHash: "0xabc",
130
+ found: true,
131
+ ok: true,
132
+ events: [],
133
+ block: { hash: "0xblock", number: 1, index: 0 },
134
+ });
135
+ });
136
+ return { unsubscribe: () => { } };
137
+ },
138
+ }),
139
+ };
140
+ const api = {
141
+ tx: { Revive: { map_account: () => mockTx } },
142
+ };
143
+ const result = await ensureAccountMapped("5Alice", mockSigner, checker, api);
144
+ expect(result).not.toBeNull();
145
+ expect(result.ok).toBe(true);
146
+ });
147
+ test("calls onStatus through full mapping flow", async () => {
148
+ const statuses = [];
149
+ const checker = {
150
+ addressIsMapped: vi.fn().mockResolvedValue(false),
151
+ };
152
+ const mockTx = {
153
+ signSubmitAndWatch: (_signer, _options) => ({
154
+ subscribe: (handlers) => {
155
+ queueMicrotask(() => {
156
+ handlers.next({ type: "signed", txHash: "0xabc" });
157
+ handlers.next({
158
+ type: "txBestBlocksState",
159
+ txHash: "0xabc",
160
+ found: true,
161
+ ok: true,
162
+ events: [],
163
+ block: { hash: "0xblock", number: 1, index: 0 },
164
+ });
165
+ });
166
+ return { unsubscribe: () => { } };
167
+ },
168
+ }),
169
+ };
170
+ const api = {
171
+ tx: { Revive: { map_account: () => mockTx } },
172
+ };
173
+ await ensureAccountMapped("5Alice", mockSigner, checker, api, {
174
+ onStatus: (s) => statuses.push(s),
175
+ });
176
+ expect(statuses).toEqual(["checking", "mapping", "mapped"]);
177
+ });
178
+ test("propagates TxDispatchError from submitAndWatch", async () => {
179
+ const { TxDispatchError } = await import("./errors.js");
180
+ const checker = {
181
+ addressIsMapped: vi.fn().mockResolvedValue(false),
182
+ };
183
+ const mockTx = {
184
+ signSubmitAndWatch: (_signer, _options) => ({
185
+ subscribe: (handlers) => {
186
+ queueMicrotask(() => {
187
+ handlers.next({
188
+ type: "txBestBlocksState",
189
+ txHash: "0xabc",
190
+ found: true,
191
+ ok: false,
192
+ events: [],
193
+ block: { hash: "0xblock", number: 1, index: 0 },
194
+ dispatchError: { type: "BadOrigin" },
195
+ });
196
+ });
197
+ return { unsubscribe: () => { } };
198
+ },
199
+ }),
200
+ };
201
+ const api = {
202
+ tx: { Revive: { map_account: () => mockTx } },
203
+ };
204
+ await expect(ensureAccountMapped("5Alice", mockSigner, checker, api)).rejects.toThrow(TxDispatchError);
205
+ });
206
+ test("propagates TxTimeoutError from submitAndWatch", async () => {
207
+ const { TxTimeoutError } = await import("./errors.js");
208
+ const checker = {
209
+ addressIsMapped: vi.fn().mockResolvedValue(false),
210
+ };
211
+ const mockTx = {
212
+ signSubmitAndWatch: (_signer, _options) => ({
213
+ subscribe: () => ({ unsubscribe: () => { } }),
214
+ }),
215
+ };
216
+ const api = {
217
+ tx: { Revive: { map_account: () => mockTx } },
218
+ };
219
+ await expect(ensureAccountMapped("5Alice", mockSigner, checker, api, { timeoutMs: 50 })).rejects.toThrow(TxTimeoutError);
220
+ });
221
+ });
222
+ describe("isAccountMapped", () => {
223
+ test("returns true when mapped", async () => {
224
+ const checker = {
225
+ addressIsMapped: vi.fn().mockResolvedValue(true),
226
+ };
227
+ expect(await isAccountMapped("5Alice", checker)).toBe(true);
228
+ });
229
+ test("returns false when not mapped", async () => {
230
+ const checker = {
231
+ addressIsMapped: vi.fn().mockResolvedValue(false),
232
+ };
233
+ expect(await isAccountMapped("5Alice", checker)).toBe(false);
234
+ });
235
+ test("throws TxAccountMappingError on failure", async () => {
236
+ const checker = {
237
+ addressIsMapped: vi.fn().mockRejectedValue(new Error("timeout")),
238
+ };
239
+ await expect(isAccountMapped("5Alice", checker)).rejects.toThrow(TxAccountMappingError);
240
+ });
241
+ });
242
+ }
243
+ //# sourceMappingURL=account-mapping.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"account-mapping.js","sourceRoot":"","sources":["../src/account-mapping.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -2,6 +2,8 @@ export { submitAndWatch } from "./submit.js";
2
2
  export { withRetry, calculateDelay } from "./retry.js";
3
3
  export { createDevSigner, getDevPublicKey } from "./dev-signers.js";
4
4
  export { extractTransaction, applyWeightBuffer } from "./dry-run.js";
5
+ export { ensureAccountMapped, isAccountMapped, TxAccountMappingError } from "./account-mapping.js";
6
+ export type { MappingChecker, ReviveApi, EnsureAccountMappedOptions, } from "./account-mapping.js";
5
7
  export { TxError, TxTimeoutError, TxDispatchError, TxDryRunError, TxSigningRejectedError, formatDispatchError, formatDryRunError, isSigningRejection, } from "./errors.js";
6
8
  export type { TxStatus, WaitFor, TxResult, SubmitOptions, RetryOptions, DevAccountName, Weight, SubmittableTransaction, TxEvent, } from "./types.js";
7
9
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AACvD,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACpE,OAAO,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AACrE,OAAO,EACH,OAAO,EACP,cAAc,EACd,eAAe,EACf,aAAa,EACb,sBAAsB,EACtB,mBAAmB,EACnB,iBAAiB,EACjB,kBAAkB,GACrB,MAAM,aAAa,CAAC;AACrB,YAAY,EACR,QAAQ,EACR,OAAO,EACP,QAAQ,EACR,aAAa,EACb,YAAY,EACZ,cAAc,EACd,MAAM,EACN,sBAAsB,EACtB,OAAO,GACV,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AACvD,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACpE,OAAO,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AACrE,OAAO,EAAE,mBAAmB,EAAE,eAAe,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AACnG,YAAY,EACR,cAAc,EACd,SAAS,EACT,0BAA0B,GAC7B,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACH,OAAO,EACP,cAAc,EACd,eAAe,EACf,aAAa,EACb,sBAAsB,EACtB,mBAAmB,EACnB,iBAAiB,EACjB,kBAAkB,GACrB,MAAM,aAAa,CAAC;AACrB,YAAY,EACR,QAAQ,EACR,OAAO,EACP,QAAQ,EACR,aAAa,EACb,YAAY,EACZ,cAAc,EACd,MAAM,EACN,sBAAsB,EACtB,OAAO,GACV,MAAM,YAAY,CAAC"}
package/dist/index.js CHANGED
@@ -2,5 +2,6 @@ export { submitAndWatch } from "./submit.js";
2
2
  export { withRetry, calculateDelay } from "./retry.js";
3
3
  export { createDevSigner, getDevPublicKey } from "./dev-signers.js";
4
4
  export { extractTransaction, applyWeightBuffer } from "./dry-run.js";
5
+ export { ensureAccountMapped, isAccountMapped, TxAccountMappingError } from "./account-mapping.js";
5
6
  export { TxError, TxTimeoutError, TxDispatchError, TxDryRunError, TxSigningRejectedError, formatDispatchError, formatDryRunError, isSigningRejection, } from "./errors.js";
6
7
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AACvD,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACpE,OAAO,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AACrE,OAAO,EACH,OAAO,EACP,cAAc,EACd,eAAe,EACf,aAAa,EACb,sBAAsB,EACtB,mBAAmB,EACnB,iBAAiB,EACjB,kBAAkB,GACrB,MAAM,aAAa,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AACvD,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACpE,OAAO,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AACrE,OAAO,EAAE,mBAAmB,EAAE,eAAe,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAMnG,OAAO,EACH,OAAO,EACP,cAAc,EACd,eAAe,EACf,aAAa,EACb,sBAAsB,EACtB,mBAAmB,EACnB,iBAAiB,EACjB,kBAAkB,GACrB,MAAM,aAAa,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@polkadot-apps/tx",
3
- "version": "0.2.4",
3
+ "version": "0.2.5",
4
4
  "type": "module",
5
5
  "main": "./dist/index.js",
6
6
  "types": "./dist/index.d.ts",
@@ -19,7 +19,7 @@
19
19
  "dependencies": {
20
20
  "polkadot-api": "^1.23.3",
21
21
  "@polkadot-labs/hdkd-helpers": "^0.0.27",
22
- "@polkadot-apps/keys": "0.3.1",
22
+ "@polkadot-apps/keys": "0.3.2",
23
23
  "@polkadot-apps/logger": "0.1.3"
24
24
  },
25
25
  "devDependencies": {