@bananapus/nana-sdk-core 2.15.0 → 2.16.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 (49) hide show
  1. package/dist/cjs/review/contractWrite.d.ts +9 -1
  2. package/dist/cjs/review/contractWrite.d.ts.map +1 -1
  3. package/dist/cjs/review/contractWrite.js +20 -5
  4. package/dist/cjs/review/contractWrite.js.map +1 -1
  5. package/dist/cjs/review/decode.d.ts +138 -0
  6. package/dist/cjs/review/decode.d.ts.map +1 -0
  7. package/dist/cjs/review/decode.js +1118 -0
  8. package/dist/cjs/review/decode.js.map +1 -0
  9. package/dist/cjs/review/index.d.ts +2 -0
  10. package/dist/cjs/review/index.d.ts.map +1 -1
  11. package/dist/cjs/review/index.js +2 -0
  12. package/dist/cjs/review/index.js.map +1 -1
  13. package/dist/cjs/review/receipt.d.ts +32 -0
  14. package/dist/cjs/review/receipt.d.ts.map +1 -0
  15. package/dist/cjs/review/receipt.js +57 -0
  16. package/dist/cjs/review/receipt.js.map +1 -0
  17. package/dist/cjs/review/simulation.d.ts +47 -0
  18. package/dist/cjs/review/simulation.d.ts.map +1 -0
  19. package/dist/cjs/review/simulation.js +142 -0
  20. package/dist/cjs/review/simulation.js.map +1 -0
  21. package/dist/cjs/v6/feeBuyback.d.ts +27 -0
  22. package/dist/cjs/v6/feeBuyback.d.ts.map +1 -1
  23. package/dist/cjs/v6/feeBuyback.js +66 -0
  24. package/dist/cjs/v6/feeBuyback.js.map +1 -1
  25. package/dist/esm/review/contractWrite.d.ts +9 -1
  26. package/dist/esm/review/contractWrite.d.ts.map +1 -1
  27. package/dist/esm/review/contractWrite.js +19 -5
  28. package/dist/esm/review/contractWrite.js.map +1 -1
  29. package/dist/esm/review/decode.d.ts +138 -0
  30. package/dist/esm/review/decode.d.ts.map +1 -0
  31. package/dist/esm/review/decode.js +1102 -0
  32. package/dist/esm/review/decode.js.map +1 -0
  33. package/dist/esm/review/index.d.ts +2 -0
  34. package/dist/esm/review/index.d.ts.map +1 -1
  35. package/dist/esm/review/index.js +2 -0
  36. package/dist/esm/review/index.js.map +1 -1
  37. package/dist/esm/review/receipt.d.ts +32 -0
  38. package/dist/esm/review/receipt.d.ts.map +1 -0
  39. package/dist/esm/review/receipt.js +51 -0
  40. package/dist/esm/review/receipt.js.map +1 -0
  41. package/dist/esm/review/simulation.d.ts +47 -0
  42. package/dist/esm/review/simulation.d.ts.map +1 -0
  43. package/dist/esm/review/simulation.js +137 -0
  44. package/dist/esm/review/simulation.js.map +1 -0
  45. package/dist/esm/v6/feeBuyback.d.ts +27 -0
  46. package/dist/esm/v6/feeBuyback.d.ts.map +1 -1
  47. package/dist/esm/v6/feeBuyback.js +62 -0
  48. package/dist/esm/v6/feeBuyback.js.map +1 -1
  49. package/package.json +6 -1
@@ -1,5 +1,13 @@
1
- import { type Address } from "viem";
1
+ import type { Address } from "viem";
2
2
  export type ReviewedWritePhase = "review" | "simulating" | "signing";
3
+ /**
4
+ * Whether a wallet error proves that nothing was broadcast. Only an explicit
5
+ * rejection does: EIP-1193 code 4001, or viem's `UserRejectedRequestError`,
6
+ * anywhere in the first eight links of the error's `cause` chain. A timeout or
7
+ * any other failure may still have sent the transaction, so it returns false
8
+ * and the caller keeps its recovery lock.
9
+ */
10
+ export declare function isDefiniteWalletRejection(error: unknown): boolean;
3
11
  export type ReviewedContractWriteOptions<TRequest extends {
4
12
  chainId: number;
5
13
  }, TSimulated, THash> = {
@@ -1 +1 @@
1
- {"version":3,"file":"contractWrite.d.ts","sourceRoot":"","sources":["../../../src/review/contractWrite.ts"],"names":[],"mappings":"AAAA,OAAO,EAAuC,KAAK,OAAO,EAAE,MAAM,MAAM,CAAC;AAEzE,MAAM,MAAM,kBAAkB,GAAG,QAAQ,GAAG,YAAY,GAAG,SAAS,CAAC;AAErE,MAAM,MAAM,4BAA4B,CACtC,QAAQ,SAAS;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,EACpC,UAAU,EACV,KAAK,IACH;IACF,OAAO,EAAE,QAAQ,CAAC;IAClB,eAAe,EAAE,OAAO,GAAG,SAAS,CAAC;IACrC,MAAM,EAAE,CAAC,OAAO,EAAE,QAAQ,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IAChD,WAAW,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IACnD,cAAc,EAAE,MAAM,OAAO,GAAG,SAAS,CAAC;IAC1C,QAAQ,EAAE,CAAC,OAAO,EAAE,QAAQ,KAAK,OAAO,CAAC,UAAU,CAAC,CAAC;IACrD,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAE,QAAQ,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IACnD,+EAA+E;IAC/E,WAAW,CAAC,EAAE,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAC/C,kFAAkF;IAClF,oBAAoB,CAAC,EAAE,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IACxD,2EAA2E;IAC3E,eAAe,CAAC,EAAE,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IACnD,KAAK,EAAE,CAAC,SAAS,EAAE,UAAU,KAAK,OAAO,CAAC,KAAK,CAAC,CAAC;IACjD,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,kBAAkB,KAAK,IAAI,CAAC;IAC9C,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,IAAI,CAAC;CACpB,CAAC;AAEF;;;;;;GAMG;AACH,wBAAsB,2BAA2B,CAC/C,QAAQ,SAAS;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,EACpC,UAAU,EACV,KAAK,EACL,EACA,OAAO,EACP,eAAe,EACf,MAAM,EACN,WAAW,EACX,cAAc,EACd,QAAQ,EACR,QAAQ,EACR,WAAW,EACX,oBAAoB,EACpB,eAAe,EACf,KAAK,EACL,OAAO,EACP,mBAAgF,EAChF,KAAK,GACN,EAAE,4BAA4B,CAAC,QAAQ,EAAE,UAAU,EAAE,KAAK,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,CA+C5E"}
1
+ {"version":3,"file":"contractWrite.d.ts","sourceRoot":"","sources":["../../../src/review/contractWrite.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAEpC,MAAM,MAAM,kBAAkB,GAAG,QAAQ,GAAG,YAAY,GAAG,SAAS,CAAC;AAErE;;;;;;GAMG;AACH,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAcjE;AAED,MAAM,MAAM,4BAA4B,CACtC,QAAQ,SAAS;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,EACpC,UAAU,EACV,KAAK,IACH;IACF,OAAO,EAAE,QAAQ,CAAC;IAClB,eAAe,EAAE,OAAO,GAAG,SAAS,CAAC;IACrC,MAAM,EAAE,CAAC,OAAO,EAAE,QAAQ,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IAChD,WAAW,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IACnD,cAAc,EAAE,MAAM,OAAO,GAAG,SAAS,CAAC;IAC1C,QAAQ,EAAE,CAAC,OAAO,EAAE,QAAQ,KAAK,OAAO,CAAC,UAAU,CAAC,CAAC;IACrD,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAE,QAAQ,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IACnD,+EAA+E;IAC/E,WAAW,CAAC,EAAE,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAC/C,kFAAkF;IAClF,oBAAoB,CAAC,EAAE,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IACxD,2EAA2E;IAC3E,eAAe,CAAC,EAAE,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IACnD,KAAK,EAAE,CAAC,SAAS,EAAE,UAAU,KAAK,OAAO,CAAC,KAAK,CAAC,CAAC;IACjD,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,kBAAkB,KAAK,IAAI,CAAC;IAC9C,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,IAAI,CAAC;CACpB,CAAC;AAEF;;;;;;GAMG;AACH,wBAAsB,2BAA2B,CAC/C,QAAQ,SAAS;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,EACpC,UAAU,EACV,KAAK,EACL,EACA,OAAO,EACP,eAAe,EACf,MAAM,EACN,WAAW,EACX,cAAc,EACd,QAAQ,EACR,QAAQ,EACR,WAAW,EACX,oBAAoB,EACpB,eAAe,EACf,KAAK,EACL,OAAO,EACP,mBAAgF,EAChF,KAAK,GACN,EAAE,4BAA4B,CAAC,QAAQ,EAAE,UAAU,EAAE,KAAK,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,CAyC5E"}
@@ -1,7 +1,25 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.isDefiniteWalletRejection = isDefiniteWalletRejection;
3
4
  exports.submitReviewedContractWrite = submitReviewedContractWrite;
4
- const viem_1 = require("viem");
5
+ /**
6
+ * Whether a wallet error proves that nothing was broadcast. Only an explicit
7
+ * rejection does: EIP-1193 code 4001, or viem's `UserRejectedRequestError`,
8
+ * anywhere in the first eight links of the error's `cause` chain. A timeout or
9
+ * any other failure may still have sent the transaction, so it returns false
10
+ * and the caller keeps its recovery lock.
11
+ */
12
+ function isDefiniteWalletRejection(error) {
13
+ let current = error;
14
+ for (let depth = 0; depth < 8 && current && typeof current === "object"; depth += 1) {
15
+ const item = current;
16
+ if (item.code === 4001 || item.name === "UserRejectedRequestError") {
17
+ return true;
18
+ }
19
+ current = item.cause;
20
+ }
21
+ return false;
22
+ }
5
23
  /**
6
24
  * Shared review-to-wallet boundary for direct contract writes.
7
25
  *
@@ -41,10 +59,7 @@ async function submitReviewedContractWrite({ request, expectedAccount, review, s
41
59
  catch (error) {
42
60
  // The same-looking error from review/simulation never reaches this catch.
43
61
  // An RPC timeout or ambiguous submission must preserve the recovery lock.
44
- const rejected = error instanceof viem_1.UserRejectedRequestError ||
45
- (error instanceof viem_1.BaseError &&
46
- error.walk((cause) => cause instanceof viem_1.UserRejectedRequestError) instanceof viem_1.UserRejectedRequestError);
47
- if (rejected)
62
+ if (isDefiniteWalletRejection(error))
48
63
  await onWriteRejected?.();
49
64
  throw error;
50
65
  }
@@ -1 +1 @@
1
- {"version":3,"file":"contractWrite.js","sourceRoot":"","sources":["../../../src/review/contractWrite.ts"],"names":[],"mappings":";;AAuCA,kEAkEC;AAzGD,+BAAyE;AAgCzE;;;;;;GAMG;AACI,KAAK,UAAU,2BAA2B,CAI/C,EACA,OAAO,EACP,eAAe,EACf,MAAM,EACN,WAAW,EACX,cAAc,EACd,QAAQ,EACR,QAAQ,EACR,WAAW,EACX,oBAAoB,EACpB,eAAe,EACf,KAAK,EACL,OAAO,EACP,mBAAmB,GAAG,0DAA0D,EAChF,KAAK,GACqD;IAC1D,KAAK,EAAE,EAAE,CAAC;IACV,IAAI,CAAC,eAAe;QAAE,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;IAEjE,OAAO,EAAE,CAAC,QAAQ,CAAC,CAAC;IACpB,MAAM,MAAM,CAAC,OAAO,CAAC,CAAC;IAEtB,OAAO,EAAE,CAAC,YAAY,CAAC,CAAC;IACxB,MAAM,WAAW,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IACnC,qBAAqB,CAAC,cAAc,EAAE,EAAE,eAAe,EAAE,mBAAmB,CAAC,CAAC;IAC9E,MAAM,QAAQ,EAAE,CAAC,OAAO,CAAC,CAAC;IAC1B,qBAAqB,CAAC,cAAc,EAAE,EAAE,eAAe,EAAE,mBAAmB,CAAC,CAAC;IAE9E,MAAM,SAAS,GAAG,MAAM,QAAQ,CAAC,OAAO,CAAC,CAAC;IAC1C,qBAAqB,CAAC,cAAc,EAAE,EAAE,eAAe,EAAE,mBAAmB,CAAC,CAAC;IAE9E,IAAI,WAAW,EAAE,CAAC;QAChB,MAAM,WAAW,EAAE,CAAC;QACpB,IAAI,CAAC;YACH,qBAAqB,CACnB,cAAc,EAAE,EAChB,eAAe,EACf,mBAAmB,CACpB,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,qEAAqE;YACrE,kDAAkD;YAClD,MAAM,oBAAoB,EAAE,EAAE,CAAC;YAC/B,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAED,OAAO,EAAE,CAAC,SAAS,CAAC,CAAC;IACrB,IAAI,CAAC;QACH,OAAO,MAAM,KAAK,CAAC,SAAS,CAAC,CAAC;IAChC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,0EAA0E;QAC1E,0EAA0E;QAC1E,MAAM,QAAQ,GACZ,KAAK,YAAY,+BAAwB;YACzC,CAAC,KAAK,YAAY,gBAAS;gBACzB,KAAK,CAAC,IAAI,CACR,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,YAAY,+BAAwB,CACrD,YAAY,+BAAwB,CAAC,CAAC;QAC3C,IAAI,QAAQ;YAAE,MAAM,eAAe,EAAE,EAAE,CAAC;QACxC,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC;AAED,SAAS,qBAAqB,CAC5B,OAA4B,EAC5B,QAAiB,EACjB,OAAe;IAEf,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,WAAW,EAAE,KAAK,QAAQ,CAAC,WAAW,EAAE,EAAE,CAAC;QACjE,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC;IAC3B,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"contractWrite.js","sourceRoot":"","sources":["../../../src/review/contractWrite.ts"],"names":[],"mappings":";;AAWA,8DAcC;AAqCD,kEA4DC;AAtHD;;;;;;GAMG;AACH,SAAgB,yBAAyB,CAAC,KAAc;IACtD,IAAI,OAAO,GAAG,KAAK,CAAC;IACpB,KACE,IAAI,KAAK,GAAG,CAAC,EACb,KAAK,GAAG,CAAC,IAAI,OAAO,IAAI,OAAO,OAAO,KAAK,QAAQ,EACnD,KAAK,IAAI,CAAC,EACV,CAAC;QACD,MAAM,IAAI,GAAG,OAA8D,CAAC;QAC5E,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,0BAA0B,EAAE,CAAC;YACnE,OAAO,IAAI,CAAC;QACd,CAAC;QACD,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC;IACvB,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AA8BD;;;;;;GAMG;AACI,KAAK,UAAU,2BAA2B,CAI/C,EACA,OAAO,EACP,eAAe,EACf,MAAM,EACN,WAAW,EACX,cAAc,EACd,QAAQ,EACR,QAAQ,EACR,WAAW,EACX,oBAAoB,EACpB,eAAe,EACf,KAAK,EACL,OAAO,EACP,mBAAmB,GAAG,0DAA0D,EAChF,KAAK,GACqD;IAC1D,KAAK,EAAE,EAAE,CAAC;IACV,IAAI,CAAC,eAAe;QAAE,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;IAEjE,OAAO,EAAE,CAAC,QAAQ,CAAC,CAAC;IACpB,MAAM,MAAM,CAAC,OAAO,CAAC,CAAC;IAEtB,OAAO,EAAE,CAAC,YAAY,CAAC,CAAC;IACxB,MAAM,WAAW,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IACnC,qBAAqB,CAAC,cAAc,EAAE,EAAE,eAAe,EAAE,mBAAmB,CAAC,CAAC;IAC9E,MAAM,QAAQ,EAAE,CAAC,OAAO,CAAC,CAAC;IAC1B,qBAAqB,CAAC,cAAc,EAAE,EAAE,eAAe,EAAE,mBAAmB,CAAC,CAAC;IAE9E,MAAM,SAAS,GAAG,MAAM,QAAQ,CAAC,OAAO,CAAC,CAAC;IAC1C,qBAAqB,CAAC,cAAc,EAAE,EAAE,eAAe,EAAE,mBAAmB,CAAC,CAAC;IAE9E,IAAI,WAAW,EAAE,CAAC;QAChB,MAAM,WAAW,EAAE,CAAC;QACpB,IAAI,CAAC;YACH,qBAAqB,CACnB,cAAc,EAAE,EAChB,eAAe,EACf,mBAAmB,CACpB,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,qEAAqE;YACrE,kDAAkD;YAClD,MAAM,oBAAoB,EAAE,EAAE,CAAC;YAC/B,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAED,OAAO,EAAE,CAAC,SAAS,CAAC,CAAC;IACrB,IAAI,CAAC;QACH,OAAO,MAAM,KAAK,CAAC,SAAS,CAAC,CAAC;IAChC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,0EAA0E;QAC1E,0EAA0E;QAC1E,IAAI,yBAAyB,CAAC,KAAK,CAAC;YAAE,MAAM,eAAe,EAAE,EAAE,CAAC;QAChE,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC;AAED,SAAS,qBAAqB,CAC5B,OAA4B,EAC5B,QAAiB,EACjB,OAAe;IAEf,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,WAAW,EAAE,KAAK,QAAQ,CAAC,WAAW,EAAE,EAAE,CAAC;QACjE,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC;IAC3B,CAAC;AACH,CAAC"}
@@ -0,0 +1,138 @@
1
+ import { type AbiFunction } from "viem";
2
+ import type { TransactionReviewCall, TransactionReviewRequest } from "./transactionReview.js";
3
+ /** A decoded argument: numbered steps of `Label: value` rows. */
4
+ export type PrettyStep = {
5
+ title: string;
6
+ rows: [string, string][];
7
+ };
8
+ /**
9
+ * The name of a Juicebox V6 deployment, Permit2, the Uniswap Universal Router
10
+ * or USDC at `value` on `chainId`, or null. A contract with retired
11
+ * generations names the generation: "JBBuybackHook (current)",
12
+ * "JBBuybackHook (previous)".
13
+ */
14
+ export declare function knownAddressName(chainId: number, value: unknown): string | null;
15
+ /**
16
+ * One ABI value as review text. An address carries its known name
17
+ * ("JBController | 0x…"), and long bytes are shortened; the raw payload keeps
18
+ * the full value.
19
+ */
20
+ export declare function readableValue(type: string, value: unknown, chainId: number): string;
21
+ /** A tuple component's value, from a positional array or a named object. */
22
+ export declare function namedValue(value: unknown, name: string, index: number): unknown;
23
+ /** A native amount as "0.5 ETH | 500000000000000000 wei". */
24
+ export declare function nativeValue(value?: bigint): string;
25
+ /**
26
+ * The ABI function a reviewed call actually invokes, or null. It is the item
27
+ * named `functionName` whose selector is the calldata's first four bytes, and
28
+ * only when `args` encode to exactly that calldata. The dialog renders `args`,
29
+ * so a name alone, or arguments the bytes don't carry, never match.
30
+ */
31
+ export declare function functionFromCall(call: Pick<TransactionReviewCall, "abi" | "args" | "data" | "functionName">): AbiFunction | null;
32
+ /**
33
+ * The review's lead paragraph. Callers assemble descriptions from optional
34
+ * parts, so a blank one falls back to the standing guidance instead of an
35
+ * empty banner.
36
+ */
37
+ export declare function reviewDescription(request: Pick<TransactionReviewRequest, "calls" | "description" | "kind">): string;
38
+ export type V4PlanStep = {
39
+ action: "INCREASE_LIQUIDITY";
40
+ position: string;
41
+ liquidity: bigint;
42
+ maximumIn: {
43
+ currency0: bigint;
44
+ currency1: bigint;
45
+ };
46
+ } | {
47
+ action: "DECREASE_LIQUIDITY";
48
+ position: string;
49
+ liquidity: bigint;
50
+ minimumOut: {
51
+ currency0: bigint;
52
+ currency1: bigint;
53
+ };
54
+ } | {
55
+ action: "MINT_POSITION";
56
+ owner: string;
57
+ pool: {
58
+ currency0: string;
59
+ currency1: string;
60
+ fee: number;
61
+ tickSpacing: number;
62
+ hook: string;
63
+ };
64
+ ticks: {
65
+ lower: number;
66
+ upper: number;
67
+ };
68
+ liquidity: bigint;
69
+ maximumIn: {
70
+ currency0: bigint;
71
+ currency1: bigint;
72
+ };
73
+ } | {
74
+ action: "BURN_POSITION";
75
+ position: string;
76
+ minimumOut: {
77
+ currency0: bigint;
78
+ currency1: bigint;
79
+ };
80
+ } | {
81
+ action: "TAKE_PAIR";
82
+ currency0: string;
83
+ currency1: string;
84
+ recipient: string;
85
+ } | {
86
+ action: "CLOSE_CURRENCY";
87
+ currency: string;
88
+ } | {
89
+ action: "SWEEP";
90
+ currency: string;
91
+ recipient: string;
92
+ };
93
+ /**
94
+ * Decode a Uniswap V4 PositionManager `unlockData` plan into typed steps.
95
+ * It covers the actions the apps build (increase, decrease, mint, burn, take
96
+ * pair, close, sweep) with empty hook data and canonical encodings; anything
97
+ * else is null. Amounts stay in raw token units and addresses stay raw, since
98
+ * the dialog shows the exact payload.
99
+ */
100
+ export declare function describeV4UnlockData(value: unknown): V4PlanStep[] | null;
101
+ /**
102
+ * Decode a Uniswap Universal Router `execute(commands, inputs, deadline)` into
103
+ * readable steps. It covers the command shapes the pay flow builds (Permit2
104
+ * permit, wrap, V3 hop, unwrap, V4 swap) in canonical encodings; anything
105
+ * else is null.
106
+ */
107
+ export declare function describeUniversalRouterExecute(chainId: number, args: readonly unknown[] | undefined): PrettyStep[] | null;
108
+ /**
109
+ * Decode a `pay`/`addToBalanceOf`/`cashOutTokensOf` `metadata` argument into
110
+ * its hook entries, reading the payload shapes the ecosystem's builders
111
+ * produce (721 mints and redeems, buyback routing). A payload that matches
112
+ * several shapes is reported as ambiguous instead of picking one.
113
+ */
114
+ export declare function describeJBHookMetadata(context: "pay" | "cashOut", value: unknown): PrettyStep[] | null;
115
+ /** A sucker `claim` argument: its leaf, with the 32-hash proof summarized. */
116
+ export declare function describeSuckerClaim(chainId: number, value: unknown): PrettyStep[] | null;
117
+ /**
118
+ * The call a Safe `execTransaction` makes: `data` sent to `to`. Several of
119
+ * these contracts share selectors (`pay` on the terminal and the router
120
+ * gateway, `approve` on JBProjects and any ERC-20), so the ABI comes from the
121
+ * target. A known Juicebox deployment, a retired generation included, is read
122
+ * with its contract's ABI, and USDC as ERC-20. An unknown target is read as
123
+ * ERC-20 and titled as unrecognized, except for `approve` and `transferFrom`:
124
+ * ERC-721 shares those selectors with a token ID where ERC-20 has an amount,
125
+ * so they are null. Any other target, a selector its ABI lacks, or a
126
+ * non-canonical encoding is null too.
127
+ */
128
+ export declare function describeSafeInnerCall(chainId: number, to: unknown, data: unknown): PrettyStep[] | null;
129
+ /** A Safe proxy `initializer`: owners, threshold, setup hook and any payment. */
130
+ export declare function describeSafeInitializer(chainId: number, value: unknown): PrettyStep[] | null;
131
+ /** A `setPermissionsFor` grant, naming each permission id from the V6 catalog. */
132
+ export declare function describePermissionsData(chainId: number, value: unknown): PrettyStep[] | null;
133
+ /**
134
+ * `setSplitGroupsOf` groups: each split's share, recipient, hook and lock,
135
+ * with an honest total. A Sticky split names the holder group it pays.
136
+ */
137
+ export declare function describeSplitGroups(chainId: number, value: unknown): PrettyStep[] | null;
138
+ //# sourceMappingURL=decode.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"decode.d.ts","sourceRoot":"","sources":["../../../src/review/decode.ts"],"names":[],"mappings":"AAAA,OAAO,EAUL,KAAK,WAAW,EAKjB,MAAM,MAAM,CAAC;AAwBd,OAAO,KAAK,EACV,qBAAqB,EACrB,wBAAwB,EACzB,MAAM,wBAAwB,CAAC;AAShC,iEAAiE;AACjE,MAAM,MAAM,UAAU,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,CAAA;CAAE,CAAC;AA8DrE;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,OAAO,GACb,MAAM,GAAG,IAAI,CAQf;AA+BD;;;;GAIG;AACH,wBAAgB,aAAa,CAC3B,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,OAAO,EACd,OAAO,EAAE,MAAM,GACd,MAAM,CAcR;AAED,4EAA4E;AAC5E,wBAAgB,UAAU,CACxB,KAAK,EAAE,OAAO,EACd,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,GACZ,OAAO,CAOT;AAED,6DAA6D;AAC7D,wBAAgB,WAAW,CAAC,KAAK,SAAK,GAAG,MAAM,CAE9C;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAC9B,IAAI,EAAE,IAAI,CAAC,qBAAqB,EAAE,KAAK,GAAG,MAAM,GAAG,MAAM,GAAG,cAAc,CAAC,GAC1E,WAAW,GAAG,IAAI,CAoBpB;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,IAAI,CAAC,wBAAwB,EAAE,OAAO,GAAG,aAAa,GAAG,MAAM,CAAC,GACxE,MAAM,CAaR;AAID,MAAM,MAAM,UAAU,GAClB;IACE,MAAM,EAAE,oBAAoB,CAAC;IAC7B,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC;CACrD,GACD;IACE,MAAM,EAAE,oBAAoB,CAAC;IAC7B,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC;CACtD,GACD;IACE,MAAM,EAAE,eAAe,CAAC;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE;QACJ,SAAS,EAAE,MAAM,CAAC;QAClB,SAAS,EAAE,MAAM,CAAC;QAClB,GAAG,EAAE,MAAM,CAAC;QACZ,WAAW,EAAE,MAAM,CAAC;QACpB,IAAI,EAAE,MAAM,CAAC;KACd,CAAC;IACF,KAAK,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IACxC,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC;CACrD,GACD;IACE,MAAM,EAAE,eAAe,CAAC;IACxB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC;CACtD,GACD;IACE,MAAM,EAAE,WAAW,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB,GACD;IAAE,MAAM,EAAE,gBAAgB,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,GAC9C;IAAE,MAAM,EAAE,OAAO,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,CAAC;AAyB7D;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,OAAO,GAAG,UAAU,EAAE,GAAG,IAAI,CA0HxE;AAsKD;;;;;GAKG;AACH,wBAAgB,8BAA8B,CAC5C,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,SAAS,OAAO,EAAE,GAAG,SAAS,GACnC,UAAU,EAAE,GAAG,IAAI,CAoIrB;AAoFD;;;;;GAKG;AACH,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,KAAK,GAAG,SAAS,EAC1B,KAAK,EAAE,OAAO,GACb,UAAU,EAAE,GAAG,IAAI,CA4HrB;AAYD,8EAA8E;AAC9E,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,OAAO,GACb,UAAU,EAAE,GAAG,IAAI,CAgDrB;AAwBD;;;;;;;;;;GAUG;AACH,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,MAAM,EACf,EAAE,EAAE,OAAO,EACX,IAAI,EAAE,OAAO,GACZ,UAAU,EAAE,GAAG,IAAI,CAoDrB;AAoCD,iFAAiF;AACjF,wBAAgB,uBAAuB,CACrC,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,OAAO,GACb,UAAU,EAAE,GAAG,IAAI,CAoErB;AAID,kFAAkF;AAClF,wBAAgB,uBAAuB,CACrC,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,OAAO,GACb,UAAU,EAAE,GAAG,IAAI,CA8CrB;AAkBD;;;GAGG;AACH,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,OAAO,GACb,UAAU,EAAE,GAAG,IAAI,CA2ErB"}