@vetro-protocol/gateway 1.0.0 → 1.2.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 (37) hide show
  1. package/README.md +1 -0
  2. package/_esm/abi/gatewayAbi.js +10 -0
  3. package/_esm/abi/gatewayAbi.js.map +1 -1
  4. package/_esm/abi/peggedTokenAbi.js +10 -0
  5. package/_esm/abi/peggedTokenAbi.js.map +1 -0
  6. package/_esm/actions/index.js +2 -0
  7. package/_esm/actions/index.js.map +1 -1
  8. package/_esm/actions/public/getGateway.js +30 -0
  9. package/_esm/actions/public/getGateway.js.map +1 -0
  10. package/_esm/actions/public/index.js +2 -0
  11. package/_esm/actions/public/index.js.map +1 -1
  12. package/_esm/actions/public/previewWithdraw.js +35 -0
  13. package/_esm/actions/public/previewWithdraw.js.map +1 -0
  14. package/_esm/index.js +3 -1
  15. package/_esm/index.js.map +1 -1
  16. package/_types/abi/gatewayAbi.d.ts +14 -0
  17. package/_types/abi/gatewayAbi.d.ts.map +1 -1
  18. package/_types/abi/peggedTokenAbi.d.ts +10 -0
  19. package/_types/abi/peggedTokenAbi.d.ts.map +1 -0
  20. package/_types/actions/index.d.ts +2 -0
  21. package/_types/actions/index.d.ts.map +1 -1
  22. package/_types/actions/public/getGateway.d.ts +12 -0
  23. package/_types/actions/public/getGateway.d.ts.map +1 -0
  24. package/_types/actions/public/index.d.ts +2 -0
  25. package/_types/actions/public/index.d.ts.map +1 -1
  26. package/_types/actions/public/previewWithdraw.d.ts +7 -0
  27. package/_types/actions/public/previewWithdraw.d.ts.map +1 -0
  28. package/_types/index.d.ts +3 -1
  29. package/_types/index.d.ts.map +1 -1
  30. package/package.json +1 -1
  31. package/src/abi/gatewayAbi.ts +10 -0
  32. package/src/abi/peggedTokenAbi.ts +9 -0
  33. package/src/actions/index.ts +2 -0
  34. package/src/actions/public/getGateway.ts +40 -0
  35. package/src/actions/public/index.ts +2 -0
  36. package/src/actions/public/previewWithdraw.ts +49 -0
  37. package/src/index.ts +6 -0
package/README.md CHANGED
@@ -61,6 +61,7 @@ The same actions are also available via `.extend()` factories (`gatewayPublicAct
61
61
  - Public actions (reads):
62
62
  - `previewDeposit(client, params)` — expected pegged-token output for a deposit.
63
63
  - `previewRedeem(client, params)` — expected underlying output for a redeem.
64
+ - `previewWithdraw(client, params)` — pegged-token input required to withdraw an exact `amountOut` of the underlying (inverse of `previewRedeem`, with `redeemFee` applied on-chain).
64
65
  - `getMintFee(client, params)` / `getRedeemFee(client, params)` — current fees.
65
66
  - `getMaxWithdraw(client, params)` — maximum withdrawable amount.
66
67
  - `getPeggedToken(client, params)` — pegged-token address minted by the gateway.
@@ -99,6 +99,16 @@ export const gatewayAbi = [
99
99
  stateMutability: "view",
100
100
  type: "function",
101
101
  },
102
+ {
103
+ inputs: [
104
+ { name: "tokenOut_", type: "address" },
105
+ { name: "amountOut_", type: "uint256" },
106
+ ],
107
+ name: "previewWithdraw",
108
+ outputs: [{ type: "uint256" }],
109
+ stateMutability: "view",
110
+ type: "function",
111
+ },
102
112
  {
103
113
  inputs: [],
104
114
  name: "cancelRedeemRequest",
@@ -1 +1 @@
1
- {"version":3,"file":"gatewayAbi.js","sourceRoot":"","sources":["../../src/abi/gatewayAbi.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"gatewayAbi.js","sourceRoot":"","sources":["../../src/abi/gatewayAbi.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,UAAU,GAAG;IACxB;QACE,MAAM,EAAE,EAAE;QACV,IAAI,EAAE,cAAc;QACpB,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;QAC9B,eAAe,EAAE,MAAM;QACvB,IAAI,EAAE,UAAU;KACjB;IACD;QACE,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;QAC7C,IAAI,EAAE,SAAS;QACf,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;QAC9B,eAAe,EAAE,MAAM;QACvB,IAAI,EAAE,UAAU;KACjB;IACD;QACE,MAAM,EAAE,EAAE;QACV,IAAI,EAAE,OAAO;QACb,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;QAC9B,eAAe,EAAE,MAAM;QACvB,IAAI,EAAE,UAAU;KACjB;IACD;QACE,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;QAC7C,IAAI,EAAE,WAAW;QACjB,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;QAC9B,eAAe,EAAE,MAAM;QACvB,IAAI,EAAE,UAAU;KACjB;IACD;QACE,MAAM,EAAE,EAAE;QACV,IAAI,EAAE,UAAU;QAChB,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;QAC9B,eAAe,EAAE,MAAM;QACvB,IAAI,EAAE,UAAU;KACjB;IACD;QACE,MAAM,EAAE,EAAE;QACV,IAAI,EAAE,wBAAwB;QAC9B,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;QAC3B,eAAe,EAAE,MAAM;QACvB,IAAI,EAAE,UAAU;KACjB;IACD;QACE,MAAM,EAAE,EAAE;QACV,IAAI,EAAE,iBAAiB;QACvB,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;QAC9B,eAAe,EAAE,MAAM;QACvB,IAAI,EAAE,UAAU;KACjB;IACD;QACE,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;QAC5C,IAAI,EAAE,kBAAkB;QACxB,OAAO,EAAE;YACP,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,SAAS,EAAE;YACzC,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,SAAS,EAAE;SACzC;QACD,eAAe,EAAE,MAAM;QACvB,IAAI,EAAE,UAAU;KACjB;IACD;QACE,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;QAC/C,IAAI,EAAE,4BAA4B;QAClC,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;QAC3B,eAAe,EAAE,MAAM;QACvB,IAAI,EAAE,UAAU;KACjB;IACD;QACE,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;QAChD,IAAI,EAAE,aAAa;QACnB,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;QAC9B,eAAe,EAAE,MAAM;QACvB,IAAI,EAAE,UAAU;KACjB;IACD;QACE,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;QAC/C,IAAI,EAAE,kCAAkC;QACxC,OAAO,EAAE,EAAE;QACX,eAAe,EAAE,YAAY;QAC7B,IAAI,EAAE,UAAU;KACjB;IACD;QACE,MAAM,EAAE;YACN,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,SAAS,EAAE;YACrC,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,SAAS,EAAE;SACvC;QACD,IAAI,EAAE,gBAAgB;QACtB,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;QAC9B,eAAe,EAAE,MAAM;QACvB,IAAI,EAAE,UAAU;KACjB;IACD;QACE,MAAM,EAAE;YACN,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,SAAS,EAAE;YACtC,EAAE,IAAI,EAAE,gBAAgB,EAAE,IAAI,EAAE,SAAS,EAAE;SAC5C;QACD,IAAI,EAAE,eAAe;QACrB,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;QAC9B,eAAe,EAAE,MAAM;QACvB,IAAI,EAAE,UAAU;KACjB;IACD;QACE,MAAM,EAAE;YACN,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,SAAS,EAAE;YACtC,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,SAAS,EAAE;SACxC;QACD,IAAI,EAAE,iBAAiB;QACvB,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;QAC9B,eAAe,EAAE,MAAM;QACvB,IAAI,EAAE,UAAU;KACjB;IACD;QACE,MAAM,EAAE,EAAE;QACV,IAAI,EAAE,qBAAqB;QAC3B,OAAO,EAAE,EAAE;QACX,eAAe,EAAE,YAAY;QAC7B,IAAI,EAAE,UAAU;KACjB;IACD;QACE,MAAM,EAAE;YACN,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,SAAS,EAAE;YACrC,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,SAAS,EAAE;YACtC,EAAE,IAAI,EAAE,oBAAoB,EAAE,IAAI,EAAE,SAAS,EAAE;YAC/C,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,SAAS,EAAE;SACvC;QACD,IAAI,EAAE,SAAS;QACf,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;QAC9B,eAAe,EAAE,YAAY;QAC7B,IAAI,EAAE,UAAU;KACjB;IACD;QACE,MAAM,EAAE;YACN,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,SAAS,EAAE;YACtC,EAAE,IAAI,EAAE,gBAAgB,EAAE,IAAI,EAAE,SAAS,EAAE;YAC3C,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,SAAS,EAAE;YAC1C,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,SAAS,EAAE;SACvC;QACD,IAAI,EAAE,QAAQ;QACd,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;QAC9B,eAAe,EAAE,YAAY;QAC7B,IAAI,EAAE,UAAU;KACjB;IACD;QACE,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,oBAAoB,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;QACzD,IAAI,EAAE,eAAe;QACrB,OAAO,EAAE,EAAE;QACX,eAAe,EAAE,YAAY;QAC7B,IAAI,EAAE,UAAU;KACjB;IACD;QACE,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;QAC5C,IAAI,EAAE,2BAA2B;QACjC,OAAO,EAAE,EAAE;QACX,eAAe,EAAE,YAAY;QAC7B,IAAI,EAAE,UAAU;KACjB;IACD;QACE,MAAM,EAAE;YACN,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE;YACnC,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,SAAS,EAAE;SACzC;QACD,IAAI,EAAE,eAAe;QACrB,OAAO,EAAE,EAAE;QACX,eAAe,EAAE,YAAY;QAC7B,IAAI,EAAE,UAAU;KACjB;IACD;QACE,MAAM,EAAE;YACN,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE;YACnC,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,SAAS,EAAE;SAC3C;QACD,IAAI,EAAE,iBAAiB;QACvB,OAAO,EAAE,EAAE;QACX,eAAe,EAAE,YAAY;QAC7B,IAAI,EAAE,UAAU;KACjB;IACD;QACE,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;QAChD,IAAI,EAAE,uBAAuB;QAC7B,OAAO,EAAE,EAAE;QACX,eAAe,EAAE,YAAY;QAC7B,IAAI,EAAE,UAAU;KACjB;IACD;QACE,SAAS,EAAE,KAAK;QAChB,MAAM,EAAE;YACN,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE;YAChD,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE;YACnD,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,SAAS,EAAE;SACzD;QACD,IAAI,EAAE,iBAAiB;QACvB,IAAI,EAAE,OAAO;KACd;CACO,CAAC"}
@@ -0,0 +1,10 @@
1
+ export const peggedTokenAbi = [
2
+ {
3
+ inputs: [],
4
+ name: "gateway",
5
+ outputs: [{ type: "address" }],
6
+ stateMutability: "view",
7
+ type: "function",
8
+ },
9
+ ];
10
+ //# sourceMappingURL=peggedTokenAbi.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"peggedTokenAbi.js","sourceRoot":"","sources":["../../src/abi/peggedTokenAbi.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,cAAc,GAAG;IAC5B;QACE,MAAM,EAAE,EAAE;QACV,IAAI,EAAE,SAAS;QACf,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;QAC9B,eAAe,EAAE,MAAM;QACvB,IAAI,EAAE,UAAU;KACjB;CACO,CAAC"}
@@ -1,4 +1,5 @@
1
1
  // Export all public actions
2
+ export * from "./public/getGateway.js";
2
3
  export * from "./public/getMaxWithdraw.js";
3
4
  export * from "./public/getPeggedToken.js";
4
5
  export * from "./public/getMintFee.js";
@@ -10,6 +11,7 @@ export * from "./public/getWithdrawalDelay.js";
10
11
  export * from "./public/isInstantRedeemWhitelisted.js";
11
12
  export * from "./public/previewDeposit.js";
12
13
  export * from "./public/previewRedeem.js";
14
+ export * from "./public/previewWithdraw.js";
13
15
  // Export all wallet actions
14
16
  export * from "./wallet/cancelRedeemRequest.js";
15
17
  export * from "./wallet/deposit.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/actions/index.ts"],"names":[],"mappings":"AAAA,4BAA4B;AAC5B,cAAc,4BAA4B,CAAC;AAC3C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,wBAAwB,CAAC;AACvC,cAAc,0BAA0B,CAAC;AACzC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,yBAAyB,CAAC;AACxC,cAAc,uCAAuC,CAAC;AACtD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,wCAAwC,CAAC;AACvD,cAAc,4BAA4B,CAAC;AAC3C,cAAc,2BAA2B,CAAC;AAE1C,4BAA4B;AAC5B,cAAc,iCAAiC,CAAC;AAChD,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,2BAA2B,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/actions/index.ts"],"names":[],"mappings":"AAAA,4BAA4B;AAC5B,cAAc,wBAAwB,CAAC;AACvC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,wBAAwB,CAAC;AACvC,cAAc,0BAA0B,CAAC;AACzC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,yBAAyB,CAAC;AACxC,cAAc,uCAAuC,CAAC;AACtD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,wCAAwC,CAAC;AACvD,cAAc,4BAA4B,CAAC;AAC3C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,6BAA6B,CAAC;AAE5C,4BAA4B;AAC5B,cAAc,iCAAiC,CAAC;AAChD,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,2BAA2B,CAAC"}
@@ -0,0 +1,30 @@
1
+ import { readContract } from "viem/actions";
2
+ import { peggedTokenAbi } from "../../abi/peggedTokenAbi.js";
3
+ import { isAddressValid } from "../../utils/isAddressValid.js";
4
+ /**
5
+ * Reads the gateway address for a given pegged token.
6
+ * @param client - The viem client used to read the contract.
7
+ * @param parameters - The parameters object.
8
+ * @param parameters.address - The pegged token address to read the gateway from.
9
+ * @returns The gateway address configured on the pegged token.
10
+ */
11
+ export async function getGateway(client, parameters) {
12
+ // Validate client
13
+ if (!client) {
14
+ throw new Error("Client is not defined");
15
+ }
16
+ // Validate parameters exist
17
+ if (!parameters) {
18
+ throw new Error("Parameters are required");
19
+ }
20
+ // Validate pegged token address
21
+ if (!isAddressValid(parameters.address)) {
22
+ throw new Error("Pegged token is invalid");
23
+ }
24
+ return readContract(client, {
25
+ abi: peggedTokenAbi,
26
+ address: parameters.address,
27
+ functionName: "gateway",
28
+ });
29
+ }
30
+ //# sourceMappingURL=getGateway.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getGateway.js","sourceRoot":"","sources":["../../../src/actions/public/getGateway.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAE5C,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAE/D;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAC9B,MAAc,EACd,UAEC;IAED,kBAAkB;IAClB,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC;IAC3C,CAAC;IAED,4BAA4B;IAC5B,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;IAC7C,CAAC;IAED,gCAAgC;IAChC,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;QACxC,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;IAC7C,CAAC;IAED,OAAO,YAAY,CAAC,MAAM,EAAE;QAC1B,GAAG,EAAE,cAAc;QACnB,OAAO,EAAE,UAAU,CAAC,OAAO;QAC3B,YAAY,EAAE,SAAS;KACxB,CAAC,CAAC;AACL,CAAC"}
@@ -1,3 +1,4 @@
1
+ export * from "./getGateway.js";
1
2
  export * from "./getMaxWithdraw.js";
2
3
  export * from "./getMintFee.js";
3
4
  export * from "./getPeggedToken.js";
@@ -9,4 +10,5 @@ export * from "./getWithdrawalDelayEnabled.js";
9
10
  export * from "./isInstantRedeemWhitelisted.js";
10
11
  export * from "./previewDeposit.js";
11
12
  export * from "./previewRedeem.js";
13
+ export * from "./previewWithdraw.js";
12
14
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/actions/public/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAC;AACpC,cAAc,iBAAiB,CAAC;AAChC,cAAc,qBAAqB,CAAC;AACpC,cAAc,mBAAmB,CAAC;AAClC,cAAc,uBAAuB,CAAC;AACtC,cAAc,kBAAkB,CAAC;AACjC,cAAc,yBAAyB,CAAC;AACxC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,iCAAiC,CAAC;AAChD,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/actions/public/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAChC,cAAc,qBAAqB,CAAC;AACpC,cAAc,iBAAiB,CAAC;AAChC,cAAc,qBAAqB,CAAC;AACpC,cAAc,mBAAmB,CAAC;AAClC,cAAc,uBAAuB,CAAC;AACtC,cAAc,kBAAkB,CAAC;AACjC,cAAc,yBAAyB,CAAC;AACxC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,iCAAiC,CAAC;AAChD,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC"}
@@ -0,0 +1,35 @@
1
+ import { readContract } from "viem/actions";
2
+ import { gatewayAbi } from "../../abi/gatewayAbi.js";
3
+ import { isAddressValid } from "../../utils/isAddressValid.js";
4
+ export async function previewWithdraw(client, parameters) {
5
+ // Validate client
6
+ if (!client) {
7
+ throw new Error("Client is not defined");
8
+ }
9
+ // Validate parameters exist
10
+ if (!parameters) {
11
+ throw new Error("Parameters are required");
12
+ }
13
+ // Validate gateway address
14
+ if (!isAddressValid(parameters.address)) {
15
+ throw new Error("Gateway is invalid");
16
+ }
17
+ // Validate tokenOut address
18
+ if (!isAddressValid(parameters.tokenOut)) {
19
+ throw new Error("Token is invalid");
20
+ }
21
+ // Validate amountOut
22
+ if (typeof parameters.amountOut !== "bigint") {
23
+ throw new Error("Amount must be a bigint");
24
+ }
25
+ if (parameters.amountOut <= 0n) {
26
+ throw new Error("Amount must be greater than 0");
27
+ }
28
+ return readContract(client, {
29
+ abi: gatewayAbi,
30
+ address: parameters.address,
31
+ args: [parameters.tokenOut, parameters.amountOut],
32
+ functionName: "previewWithdraw",
33
+ });
34
+ }
35
+ //# sourceMappingURL=previewWithdraw.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"previewWithdraw.js","sourceRoot":"","sources":["../../../src/actions/public/previewWithdraw.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAE5C,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAE/D,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,MAAc,EACd,UAIC;IAED,kBAAkB;IAClB,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC;IAC3C,CAAC;IAED,4BAA4B;IAC5B,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;IAC7C,CAAC;IAED,2BAA2B;IAC3B,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;QACxC,MAAM,IAAI,KAAK,CAAC,oBAAoB,CAAC,CAAC;IACxC,CAAC;IAED,4BAA4B;IAC5B,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QACzC,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAC;IACtC,CAAC;IAED,qBAAqB;IACrB,IAAI,OAAO,UAAU,CAAC,SAAS,KAAK,QAAQ,EAAE,CAAC;QAC7C,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;IAC7C,CAAC;IACD,IAAI,UAAU,CAAC,SAAS,IAAI,EAAE,EAAE,CAAC;QAC/B,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;IACnD,CAAC;IAED,OAAO,YAAY,CAAC,MAAM,EAAE;QAC1B,GAAG,EAAE,UAAU;QACf,OAAO,EAAE,UAAU,CAAC,OAAO;QAC3B,IAAI,EAAE,CAAC,UAAU,CAAC,QAAQ,EAAE,UAAU,CAAC,SAAS,CAAC;QACjD,YAAY,EAAE,iBAAiB;KAChC,CAAC,CAAC;AACL,CAAC"}
package/_esm/index.js CHANGED
@@ -1,4 +1,4 @@
1
- import { getMaxWithdraw, getMintFee, getPeggedToken, getRedeemFee, getRedeemRequest, getTreasury, getWithdrawalDelay, getWithdrawalDelayEnabled, isInstantRedeemWhitelisted, previewDeposit, previewRedeem, } from "./actions/public/index.js";
1
+ import { getGateway, getMaxWithdraw, getMintFee, getPeggedToken, getRedeemFee, getRedeemRequest, getTreasury, getWithdrawalDelay, getWithdrawalDelayEnabled, isInstantRedeemWhitelisted, previewDeposit, previewRedeem, previewWithdraw, } from "./actions/public/index.js";
2
2
  import { cancelRedeemRequest, } from "./actions/wallet/cancelRedeemRequest.js";
3
3
  import { deposit } from "./actions/wallet/deposit.js";
4
4
  import { redeem } from "./actions/wallet/redeem.js";
@@ -9,6 +9,7 @@ export { gatewayAbi } from "./abi/gatewayAbi.js";
9
9
  export { gatewayAddresses, gateways, } from "./gatewayAddresses.js";
10
10
  // Export factory functions for .extend() pattern
11
11
  export const gatewayPublicActions = () => (client) => ({
12
+ getGateway: (params) => getGateway(client, params),
12
13
  getMaxWithdraw: (params) => getMaxWithdraw(client, params),
13
14
  getMintFee: (params) => getMintFee(client, params),
14
15
  getPeggedToken: (params) => getPeggedToken(client, params),
@@ -20,6 +21,7 @@ export const gatewayPublicActions = () => (client) => ({
20
21
  isInstantRedeemWhitelisted: (params) => isInstantRedeemWhitelisted(client, params),
21
22
  previewDeposit: (params) => previewDeposit(client, params),
22
23
  previewRedeem: (params) => previewRedeem(client, params),
24
+ previewWithdraw: (params) => previewWithdraw(client, params),
23
25
  });
24
26
  export const gatewayWalletActions = () => (client) => ({
25
27
  cancelRedeemRequest: (params) => cancelRedeemRequest(client, params),
package/_esm/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,cAAc,EACd,UAAU,EACV,cAAc,EACd,YAAY,EACZ,gBAAgB,EAChB,WAAW,EACX,kBAAkB,EAClB,yBAAyB,EACzB,0BAA0B,EAC1B,cAAc,EACd,aAAa,GACd,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAEL,mBAAmB,GACpB,MAAM,yCAAyC,CAAC;AACjD,OAAO,EAAsB,OAAO,EAAE,MAAM,6BAA6B,CAAC;AAC1E,OAAO,EAAqB,MAAM,EAAE,MAAM,4BAA4B,CAAC;AACvE,OAAO,EAEL,aAAa,GACd,MAAM,mCAAmC,CAAC;AAE3C,aAAa;AACb,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,6DAA6D;AAC7D,OAAO,EAEL,gBAAgB,EAChB,QAAQ,GACT,MAAM,uBAAuB,CAAC;AAW/B,iDAAiD;AACjD,MAAM,CAAC,MAAM,oBAAoB,GAAG,GAAG,EAAE,CAAC,CAAC,MAAc,EAAE,EAAE,CAAC,CAAC;IAC7D,cAAc,EAAE,CAAC,MAA4C,EAAE,EAAE,CAC/D,cAAc,CAAC,MAAM,EAAE,MAAM,CAAC;IAChC,UAAU,EAAE,CAAC,MAAwC,EAAE,EAAE,CACvD,UAAU,CAAC,MAAM,EAAE,MAAM,CAAC;IAC5B,cAAc,EAAE,CAAC,MAA4C,EAAE,EAAE,CAC/D,cAAc,CAAC,MAAM,EAAE,MAAM,CAAC;IAChC,YAAY,EAAE,CAAC,MAA0C,EAAE,EAAE,CAC3D,YAAY,CAAC,MAAM,EAAE,MAAM,CAAC;IAC9B,gBAAgB,EAAE,CAAC,MAA8C,EAAE,EAAE,CACnE,gBAAgB,CAAC,MAAM,EAAE,MAAM,CAAC;IAClC,WAAW,EAAE,CAAC,MAAyC,EAAE,EAAE,CACzD,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC;IAC7B,kBAAkB,EAAE,CAAC,MAAgD,EAAE,EAAE,CACvE,kBAAkB,CAAC,MAAM,EAAE,MAAM,CAAC;IACpC,yBAAyB,EAAE,CACzB,MAAuD,EACvD,EAAE,CAAC,yBAAyB,CAAC,MAAM,EAAE,MAAM,CAAC;IAC9C,0BAA0B,EAAE,CAC1B,MAAwD,EACxD,EAAE,CAAC,0BAA0B,CAAC,MAAM,EAAE,MAAM,CAAC;IAC/C,cAAc,EAAE,CAAC,MAA4C,EAAE,EAAE,CAC/D,cAAc,CAAC,MAAM,EAAE,MAAM,CAAC;IAChC,aAAa,EAAE,CAAC,MAA2C,EAAE,EAAE,CAC7D,aAAa,CAAC,MAAM,EAAE,MAAM,CAAC;CAChC,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,oBAAoB,GAAG,GAAG,EAAE,CAAC,CAAC,MAAoB,EAAE,EAAE,CAAC,CAAC;IACnE,mBAAmB,EAAE,CAAC,MAAiC,EAAE,EAAE,CACzD,mBAAmB,CAAC,MAAM,EAAE,MAAM,CAAC;IACrC,OAAO,EAAE,CAAC,MAAqB,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC;IAC3D,MAAM,EAAE,CAAC,MAAoB,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IACxD,aAAa,EAAE,CAAC,MAA2B,EAAE,EAAE,CAAC,aAAa,CAAC,MAAM,EAAE,MAAM,CAAC;CAC9E,CAAC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,UAAU,EACV,cAAc,EACd,UAAU,EACV,cAAc,EACd,YAAY,EACZ,gBAAgB,EAChB,WAAW,EACX,kBAAkB,EAClB,yBAAyB,EACzB,0BAA0B,EAC1B,cAAc,EACd,aAAa,EACb,eAAe,GAChB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAEL,mBAAmB,GACpB,MAAM,yCAAyC,CAAC;AACjD,OAAO,EAAsB,OAAO,EAAE,MAAM,6BAA6B,CAAC;AAC1E,OAAO,EAAqB,MAAM,EAAE,MAAM,4BAA4B,CAAC;AACvE,OAAO,EAEL,aAAa,GACd,MAAM,mCAAmC,CAAC;AAE3C,aAAa;AACb,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,6DAA6D;AAC7D,OAAO,EAEL,gBAAgB,EAChB,QAAQ,GACT,MAAM,uBAAuB,CAAC;AAW/B,iDAAiD;AACjD,MAAM,CAAC,MAAM,oBAAoB,GAAG,GAAG,EAAE,CAAC,CAAC,MAAc,EAAE,EAAE,CAAC,CAAC;IAC7D,UAAU,EAAE,CAAC,MAAwC,EAAE,EAAE,CACvD,UAAU,CAAC,MAAM,EAAE,MAAM,CAAC;IAC5B,cAAc,EAAE,CAAC,MAA4C,EAAE,EAAE,CAC/D,cAAc,CAAC,MAAM,EAAE,MAAM,CAAC;IAChC,UAAU,EAAE,CAAC,MAAwC,EAAE,EAAE,CACvD,UAAU,CAAC,MAAM,EAAE,MAAM,CAAC;IAC5B,cAAc,EAAE,CAAC,MAA4C,EAAE,EAAE,CAC/D,cAAc,CAAC,MAAM,EAAE,MAAM,CAAC;IAChC,YAAY,EAAE,CAAC,MAA0C,EAAE,EAAE,CAC3D,YAAY,CAAC,MAAM,EAAE,MAAM,CAAC;IAC9B,gBAAgB,EAAE,CAAC,MAA8C,EAAE,EAAE,CACnE,gBAAgB,CAAC,MAAM,EAAE,MAAM,CAAC;IAClC,WAAW,EAAE,CAAC,MAAyC,EAAE,EAAE,CACzD,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC;IAC7B,kBAAkB,EAAE,CAAC,MAAgD,EAAE,EAAE,CACvE,kBAAkB,CAAC,MAAM,EAAE,MAAM,CAAC;IACpC,yBAAyB,EAAE,CACzB,MAAuD,EACvD,EAAE,CAAC,yBAAyB,CAAC,MAAM,EAAE,MAAM,CAAC;IAC9C,0BAA0B,EAAE,CAC1B,MAAwD,EACxD,EAAE,CAAC,0BAA0B,CAAC,MAAM,EAAE,MAAM,CAAC;IAC/C,cAAc,EAAE,CAAC,MAA4C,EAAE,EAAE,CAC/D,cAAc,CAAC,MAAM,EAAE,MAAM,CAAC;IAChC,aAAa,EAAE,CAAC,MAA2C,EAAE,EAAE,CAC7D,aAAa,CAAC,MAAM,EAAE,MAAM,CAAC;IAC/B,eAAe,EAAE,CAAC,MAA6C,EAAE,EAAE,CACjE,eAAe,CAAC,MAAM,EAAE,MAAM,CAAC;CAClC,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,oBAAoB,GAAG,GAAG,EAAE,CAAC,CAAC,MAAoB,EAAE,EAAE,CAAC,CAAC;IACnE,mBAAmB,EAAE,CAAC,MAAiC,EAAE,EAAE,CACzD,mBAAmB,CAAC,MAAM,EAAE,MAAM,CAAC;IACrC,OAAO,EAAE,CAAC,MAAqB,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC;IAC3D,MAAM,EAAE,CAAC,MAAoB,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IACxD,aAAa,EAAE,CAAC,MAA2B,EAAE,EAAE,CAAC,aAAa,CAAC,MAAM,EAAE,MAAM,CAAC;CAC9E,CAAC,CAAC"}
@@ -134,6 +134,20 @@ export declare const gatewayAbi: readonly [{
134
134
  }];
135
135
  readonly stateMutability: "view";
136
136
  readonly type: "function";
137
+ }, {
138
+ readonly inputs: readonly [{
139
+ readonly name: "tokenOut_";
140
+ readonly type: "address";
141
+ }, {
142
+ readonly name: "amountOut_";
143
+ readonly type: "uint256";
144
+ }];
145
+ readonly name: "previewWithdraw";
146
+ readonly outputs: readonly [{
147
+ readonly type: "uint256";
148
+ }];
149
+ readonly stateMutability: "view";
150
+ readonly type: "function";
137
151
  }, {
138
152
  readonly inputs: readonly [];
139
153
  readonly name: "cancelRedeemRequest";
@@ -1 +1 @@
1
- {"version":3,"file":"gatewayAbi.d.ts","sourceRoot":"","sources":["../../src/abi/gatewayAbi.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAuLb,CAAC"}
1
+ {"version":3,"file":"gatewayAbi.d.ts","sourceRoot":"","sources":["../../src/abi/gatewayAbi.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAiMb,CAAC"}
@@ -0,0 +1,10 @@
1
+ export declare const peggedTokenAbi: readonly [{
2
+ readonly inputs: readonly [];
3
+ readonly name: "gateway";
4
+ readonly outputs: readonly [{
5
+ readonly type: "address";
6
+ }];
7
+ readonly stateMutability: "view";
8
+ readonly type: "function";
9
+ }];
10
+ //# sourceMappingURL=peggedTokenAbi.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"peggedTokenAbi.d.ts","sourceRoot":"","sources":["../../src/abi/peggedTokenAbi.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,cAAc;;;;;;;;EAQjB,CAAC"}
@@ -1,3 +1,4 @@
1
+ export * from "./public/getGateway.js";
1
2
  export * from "./public/getMaxWithdraw.js";
2
3
  export * from "./public/getPeggedToken.js";
3
4
  export * from "./public/getMintFee.js";
@@ -9,6 +10,7 @@ export * from "./public/getWithdrawalDelay.js";
9
10
  export * from "./public/isInstantRedeemWhitelisted.js";
10
11
  export * from "./public/previewDeposit.js";
11
12
  export * from "./public/previewRedeem.js";
13
+ export * from "./public/previewWithdraw.js";
12
14
  export * from "./wallet/cancelRedeemRequest.js";
13
15
  export * from "./wallet/deposit.js";
14
16
  export * from "./wallet/redeem.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/actions/index.ts"],"names":[],"mappings":"AACA,cAAc,4BAA4B,CAAC;AAC3C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,wBAAwB,CAAC;AACvC,cAAc,0BAA0B,CAAC;AACzC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,yBAAyB,CAAC;AACxC,cAAc,uCAAuC,CAAC;AACtD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,wCAAwC,CAAC;AACvD,cAAc,4BAA4B,CAAC;AAC3C,cAAc,2BAA2B,CAAC;AAG1C,cAAc,iCAAiC,CAAC;AAChD,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,2BAA2B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/actions/index.ts"],"names":[],"mappings":"AACA,cAAc,wBAAwB,CAAC;AACvC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,wBAAwB,CAAC;AACvC,cAAc,0BAA0B,CAAC;AACzC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,yBAAyB,CAAC;AACxC,cAAc,uCAAuC,CAAC;AACtD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,wCAAwC,CAAC;AACvD,cAAc,4BAA4B,CAAC;AAC3C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,6BAA6B,CAAC;AAG5C,cAAc,iCAAiC,CAAC;AAChD,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,2BAA2B,CAAC"}
@@ -0,0 +1,12 @@
1
+ import { type Address, type Client } from "viem";
2
+ /**
3
+ * Reads the gateway address for a given pegged token.
4
+ * @param client - The viem client used to read the contract.
5
+ * @param parameters - The parameters object.
6
+ * @param parameters.address - The pegged token address to read the gateway from.
7
+ * @returns The gateway address configured on the pegged token.
8
+ */
9
+ export declare function getGateway(client: Client, parameters: {
10
+ address: Address;
11
+ }): Promise<`0x${string}`>;
12
+ //# sourceMappingURL=getGateway.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getGateway.d.ts","sourceRoot":"","sources":["../../../src/actions/public/getGateway.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,MAAM,CAAC;AAMjD;;;;;;GAMG;AACH,wBAAsB,UAAU,CAC9B,MAAM,EAAE,MAAM,EACd,UAAU,EAAE;IACV,OAAO,EAAE,OAAO,CAAC;CAClB,0BAsBF"}
@@ -1,3 +1,4 @@
1
+ export * from "./getGateway.js";
1
2
  export * from "./getMaxWithdraw.js";
2
3
  export * from "./getMintFee.js";
3
4
  export * from "./getPeggedToken.js";
@@ -9,4 +10,5 @@ export * from "./getWithdrawalDelayEnabled.js";
9
10
  export * from "./isInstantRedeemWhitelisted.js";
10
11
  export * from "./previewDeposit.js";
11
12
  export * from "./previewRedeem.js";
13
+ export * from "./previewWithdraw.js";
12
14
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/actions/public/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAC;AACpC,cAAc,iBAAiB,CAAC;AAChC,cAAc,qBAAqB,CAAC;AACpC,cAAc,mBAAmB,CAAC;AAClC,cAAc,uBAAuB,CAAC;AACtC,cAAc,kBAAkB,CAAC;AACjC,cAAc,yBAAyB,CAAC;AACxC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,iCAAiC,CAAC;AAChD,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/actions/public/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAChC,cAAc,qBAAqB,CAAC;AACpC,cAAc,iBAAiB,CAAC;AAChC,cAAc,qBAAqB,CAAC;AACpC,cAAc,mBAAmB,CAAC;AAClC,cAAc,uBAAuB,CAAC;AACtC,cAAc,kBAAkB,CAAC;AACjC,cAAc,yBAAyB,CAAC;AACxC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,iCAAiC,CAAC;AAChD,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC"}
@@ -0,0 +1,7 @@
1
+ import { type Address, type Client } from "viem";
2
+ export declare function previewWithdraw(client: Client, parameters: {
3
+ address: Address;
4
+ tokenOut: Address;
5
+ amountOut: bigint;
6
+ }): Promise<bigint>;
7
+ //# sourceMappingURL=previewWithdraw.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"previewWithdraw.d.ts","sourceRoot":"","sources":["../../../src/actions/public/previewWithdraw.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,MAAM,CAAC;AAMjD,wBAAsB,eAAe,CACnC,MAAM,EAAE,MAAM,EACd,UAAU,EAAE;IACV,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,OAAO,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB,mBAoCF"}
package/_types/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import type { Client, WalletClient } from "viem";
2
- import { getMaxWithdraw, getMintFee, getPeggedToken, getRedeemFee, getRedeemRequest, getTreasury, getWithdrawalDelay, getWithdrawalDelayEnabled, isInstantRedeemWhitelisted, previewDeposit, previewRedeem } from "./actions/public/index.js";
2
+ import { getGateway, getMaxWithdraw, getMintFee, getPeggedToken, getRedeemFee, getRedeemRequest, getTreasury, getWithdrawalDelay, getWithdrawalDelayEnabled, isInstantRedeemWhitelisted, previewDeposit, previewRedeem, previewWithdraw } from "./actions/public/index.js";
3
3
  import { type CancelRedeemRequestParams } from "./actions/wallet/cancelRedeemRequest.js";
4
4
  import { type DepositParams } from "./actions/wallet/deposit.js";
5
5
  import { type RedeemParams } from "./actions/wallet/redeem.js";
@@ -9,6 +9,7 @@ export { type Gateway, gatewayAddresses, gateways, } from "./gatewayAddresses.js
9
9
  export type { CancelRedeemRequestParams };
10
10
  export { type CancelRedeemRequestEvents, type DepositEvents, type RedeemEvents, type RequestRedeemEvents, } from "./types.js";
11
11
  export declare const gatewayPublicActions: () => (client: Client) => {
12
+ getGateway: (params: Parameters<typeof getGateway>[1]) => Promise<`0x${string}`>;
12
13
  getMaxWithdraw: (params: Parameters<typeof getMaxWithdraw>[1]) => Promise<bigint>;
13
14
  getMintFee: (params: Parameters<typeof getMintFee>[1]) => Promise<bigint>;
14
15
  getPeggedToken: (params: Parameters<typeof getPeggedToken>[1]) => Promise<`0x${string}`>;
@@ -20,6 +21,7 @@ export declare const gatewayPublicActions: () => (client: Client) => {
20
21
  isInstantRedeemWhitelisted: (params: Parameters<typeof isInstantRedeemWhitelisted>[1]) => Promise<boolean>;
21
22
  previewDeposit: (params: Parameters<typeof previewDeposit>[1]) => Promise<bigint>;
22
23
  previewRedeem: (params: Parameters<typeof previewRedeem>[1]) => Promise<bigint>;
24
+ previewWithdraw: (params: Parameters<typeof previewWithdraw>[1]) => Promise<bigint>;
23
25
  };
24
26
  export declare const gatewayWalletActions: () => (client: WalletClient) => {
25
27
  cancelRedeemRequest: (params: CancelRedeemRequestParams) => {
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,MAAM,CAAC;AAEjD,OAAO,EACL,cAAc,EACd,UAAU,EACV,cAAc,EACd,YAAY,EACZ,gBAAgB,EAChB,WAAW,EACX,kBAAkB,EAClB,yBAAyB,EACzB,0BAA0B,EAC1B,cAAc,EACd,aAAa,EACd,MAAM,2BAA2B,CAAC;AACnC,OAAO,EACL,KAAK,yBAAyB,EAE/B,MAAM,yCAAyC,CAAC;AACjD,OAAO,EAAE,KAAK,aAAa,EAAW,MAAM,6BAA6B,CAAC;AAC1E,OAAO,EAAE,KAAK,YAAY,EAAU,MAAM,4BAA4B,CAAC;AACvE,OAAO,EACL,KAAK,mBAAmB,EAEzB,MAAM,mCAAmC,CAAC;AAG3C,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAEjD,OAAO,EACL,KAAK,OAAO,EACZ,gBAAgB,EAChB,QAAQ,GACT,MAAM,uBAAuB,CAAC;AAE/B,YAAY,EAAE,yBAAyB,EAAE,CAAC;AAE1C,OAAO,EACL,KAAK,yBAAyB,EAC9B,KAAK,aAAa,EAClB,KAAK,YAAY,EACjB,KAAK,mBAAmB,GACzB,MAAM,YAAY,CAAC;AAGpB,eAAO,MAAM,oBAAoB,SAAU,QAAQ,MAAM;6BAC9B,UAAU,CAAC,OAAO,cAAc,CAAC,CAAC,CAAC,CAAC;yBAExC,UAAU,CAAC,OAAO,UAAU,CAAC,CAAC,CAAC,CAAC;6BAE5B,UAAU,CAAC,OAAO,cAAc,CAAC,CAAC,CAAC,CAAC;2BAEtC,UAAU,CAAC,OAAO,YAAY,CAAC,CAAC,CAAC,CAAC;+BAE9B,UAAU,CAAC,OAAO,gBAAgB,CAAC,CAAC,CAAC,CAAC;0BAE3C,UAAU,CAAC,OAAO,WAAW,CAAC,CAAC,CAAC,CAAC;iCAE1B,UAAU,CAAC,OAAO,kBAAkB,CAAC,CAAC,CAAC,CAAC;wCAG3D,UAAU,CAAC,OAAO,yBAAyB,CAAC,CAAC,CAAC,CAAC;yCAG/C,UAAU,CAAC,OAAO,0BAA0B,CAAC,CAAC,CAAC,CAAC;6BAEjC,UAAU,CAAC,OAAO,cAAc,CAAC,CAAC,CAAC,CAAC;4BAErC,UAAU,CAAC,OAAO,aAAa,CAAC,CAAC,CAAC,CAAC;CAE3D,CAAC;AAEH,eAAO,MAAM,oBAAoB,SAAU,QAAQ,YAAY;kCAC/B,yBAAyB;;;;sBAErC,aAAa;;;;qBACd,YAAY;;;;4BACL,mBAAmB;;;;CAC3C,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,MAAM,CAAC;AAEjD,OAAO,EACL,UAAU,EACV,cAAc,EACd,UAAU,EACV,cAAc,EACd,YAAY,EACZ,gBAAgB,EAChB,WAAW,EACX,kBAAkB,EAClB,yBAAyB,EACzB,0BAA0B,EAC1B,cAAc,EACd,aAAa,EACb,eAAe,EAChB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EACL,KAAK,yBAAyB,EAE/B,MAAM,yCAAyC,CAAC;AACjD,OAAO,EAAE,KAAK,aAAa,EAAW,MAAM,6BAA6B,CAAC;AAC1E,OAAO,EAAE,KAAK,YAAY,EAAU,MAAM,4BAA4B,CAAC;AACvE,OAAO,EACL,KAAK,mBAAmB,EAEzB,MAAM,mCAAmC,CAAC;AAG3C,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAEjD,OAAO,EACL,KAAK,OAAO,EACZ,gBAAgB,EAChB,QAAQ,GACT,MAAM,uBAAuB,CAAC;AAE/B,YAAY,EAAE,yBAAyB,EAAE,CAAC;AAE1C,OAAO,EACL,KAAK,yBAAyB,EAC9B,KAAK,aAAa,EAClB,KAAK,YAAY,EACjB,KAAK,mBAAmB,GACzB,MAAM,YAAY,CAAC;AAGpB,eAAO,MAAM,oBAAoB,SAAU,QAAQ,MAAM;yBAClC,UAAU,CAAC,OAAO,UAAU,CAAC,CAAC,CAAC,CAAC;6BAE5B,UAAU,CAAC,OAAO,cAAc,CAAC,CAAC,CAAC,CAAC;yBAExC,UAAU,CAAC,OAAO,UAAU,CAAC,CAAC,CAAC,CAAC;6BAE5B,UAAU,CAAC,OAAO,cAAc,CAAC,CAAC,CAAC,CAAC;2BAEtC,UAAU,CAAC,OAAO,YAAY,CAAC,CAAC,CAAC,CAAC;+BAE9B,UAAU,CAAC,OAAO,gBAAgB,CAAC,CAAC,CAAC,CAAC;0BAE3C,UAAU,CAAC,OAAO,WAAW,CAAC,CAAC,CAAC,CAAC;iCAE1B,UAAU,CAAC,OAAO,kBAAkB,CAAC,CAAC,CAAC,CAAC;wCAG3D,UAAU,CAAC,OAAO,yBAAyB,CAAC,CAAC,CAAC,CAAC;yCAG/C,UAAU,CAAC,OAAO,0BAA0B,CAAC,CAAC,CAAC,CAAC;6BAEjC,UAAU,CAAC,OAAO,cAAc,CAAC,CAAC,CAAC,CAAC;4BAErC,UAAU,CAAC,OAAO,aAAa,CAAC,CAAC,CAAC,CAAC;8BAEjC,UAAU,CAAC,OAAO,eAAe,CAAC,CAAC,CAAC,CAAC;CAE/D,CAAC;AAEH,eAAO,MAAM,oBAAoB,SAAU,QAAQ,YAAY;kCAC/B,yBAAyB;;;;sBAErC,aAAa;;;;qBACd,YAAY;;;;4BACL,mBAAmB;;;;CAC3C,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vetro-protocol/gateway",
3
- "version": "1.0.0",
3
+ "version": "1.2.0",
4
4
  "description": "Vetro Protocol gateway actions for viem.",
5
5
  "license": "MIT",
6
6
  "files": [
@@ -99,6 +99,16 @@ export const gatewayAbi = [
99
99
  stateMutability: "view",
100
100
  type: "function",
101
101
  },
102
+ {
103
+ inputs: [
104
+ { name: "tokenOut_", type: "address" },
105
+ { name: "amountOut_", type: "uint256" },
106
+ ],
107
+ name: "previewWithdraw",
108
+ outputs: [{ type: "uint256" }],
109
+ stateMutability: "view",
110
+ type: "function",
111
+ },
102
112
  {
103
113
  inputs: [],
104
114
  name: "cancelRedeemRequest",
@@ -0,0 +1,9 @@
1
+ export const peggedTokenAbi = [
2
+ {
3
+ inputs: [],
4
+ name: "gateway",
5
+ outputs: [{ type: "address" }],
6
+ stateMutability: "view",
7
+ type: "function",
8
+ },
9
+ ] as const;
@@ -1,4 +1,5 @@
1
1
  // Export all public actions
2
+ export * from "./public/getGateway.js";
2
3
  export * from "./public/getMaxWithdraw.js";
3
4
  export * from "./public/getPeggedToken.js";
4
5
  export * from "./public/getMintFee.js";
@@ -10,6 +11,7 @@ export * from "./public/getWithdrawalDelay.js";
10
11
  export * from "./public/isInstantRedeemWhitelisted.js";
11
12
  export * from "./public/previewDeposit.js";
12
13
  export * from "./public/previewRedeem.js";
14
+ export * from "./public/previewWithdraw.js";
13
15
 
14
16
  // Export all wallet actions
15
17
  export * from "./wallet/cancelRedeemRequest.js";
@@ -0,0 +1,40 @@
1
+ import { type Address, type Client } from "viem";
2
+ import { readContract } from "viem/actions";
3
+
4
+ import { peggedTokenAbi } from "../../abi/peggedTokenAbi.js";
5
+ import { isAddressValid } from "../../utils/isAddressValid.js";
6
+
7
+ /**
8
+ * Reads the gateway address for a given pegged token.
9
+ * @param client - The viem client used to read the contract.
10
+ * @param parameters - The parameters object.
11
+ * @param parameters.address - The pegged token address to read the gateway from.
12
+ * @returns The gateway address configured on the pegged token.
13
+ */
14
+ export async function getGateway(
15
+ client: Client,
16
+ parameters: {
17
+ address: Address;
18
+ },
19
+ ) {
20
+ // Validate client
21
+ if (!client) {
22
+ throw new Error("Client is not defined");
23
+ }
24
+
25
+ // Validate parameters exist
26
+ if (!parameters) {
27
+ throw new Error("Parameters are required");
28
+ }
29
+
30
+ // Validate pegged token address
31
+ if (!isAddressValid(parameters.address)) {
32
+ throw new Error("Pegged token is invalid");
33
+ }
34
+
35
+ return readContract(client, {
36
+ abi: peggedTokenAbi,
37
+ address: parameters.address,
38
+ functionName: "gateway",
39
+ });
40
+ }
@@ -1,3 +1,4 @@
1
+ export * from "./getGateway.js";
1
2
  export * from "./getMaxWithdraw.js";
2
3
  export * from "./getMintFee.js";
3
4
  export * from "./getPeggedToken.js";
@@ -9,3 +10,4 @@ export * from "./getWithdrawalDelayEnabled.js";
9
10
  export * from "./isInstantRedeemWhitelisted.js";
10
11
  export * from "./previewDeposit.js";
11
12
  export * from "./previewRedeem.js";
13
+ export * from "./previewWithdraw.js";
@@ -0,0 +1,49 @@
1
+ import { type Address, type Client } from "viem";
2
+ import { readContract } from "viem/actions";
3
+
4
+ import { gatewayAbi } from "../../abi/gatewayAbi.js";
5
+ import { isAddressValid } from "../../utils/isAddressValid.js";
6
+
7
+ export async function previewWithdraw(
8
+ client: Client,
9
+ parameters: {
10
+ address: Address;
11
+ tokenOut: Address;
12
+ amountOut: bigint;
13
+ },
14
+ ) {
15
+ // Validate client
16
+ if (!client) {
17
+ throw new Error("Client is not defined");
18
+ }
19
+
20
+ // Validate parameters exist
21
+ if (!parameters) {
22
+ throw new Error("Parameters are required");
23
+ }
24
+
25
+ // Validate gateway address
26
+ if (!isAddressValid(parameters.address)) {
27
+ throw new Error("Gateway is invalid");
28
+ }
29
+
30
+ // Validate tokenOut address
31
+ if (!isAddressValid(parameters.tokenOut)) {
32
+ throw new Error("Token is invalid");
33
+ }
34
+
35
+ // Validate amountOut
36
+ if (typeof parameters.amountOut !== "bigint") {
37
+ throw new Error("Amount must be a bigint");
38
+ }
39
+ if (parameters.amountOut <= 0n) {
40
+ throw new Error("Amount must be greater than 0");
41
+ }
42
+
43
+ return readContract(client, {
44
+ abi: gatewayAbi,
45
+ address: parameters.address,
46
+ args: [parameters.tokenOut, parameters.amountOut],
47
+ functionName: "previewWithdraw",
48
+ });
49
+ }
package/src/index.ts CHANGED
@@ -1,6 +1,7 @@
1
1
  import type { Client, WalletClient } from "viem";
2
2
 
3
3
  import {
4
+ getGateway,
4
5
  getMaxWithdraw,
5
6
  getMintFee,
6
7
  getPeggedToken,
@@ -12,6 +13,7 @@ import {
12
13
  isInstantRedeemWhitelisted,
13
14
  previewDeposit,
14
15
  previewRedeem,
16
+ previewWithdraw,
15
17
  } from "./actions/public/index.js";
16
18
  import {
17
19
  type CancelRedeemRequestParams,
@@ -44,6 +46,8 @@ export {
44
46
 
45
47
  // Export factory functions for .extend() pattern
46
48
  export const gatewayPublicActions = () => (client: Client) => ({
49
+ getGateway: (params: Parameters<typeof getGateway>[1]) =>
50
+ getGateway(client, params),
47
51
  getMaxWithdraw: (params: Parameters<typeof getMaxWithdraw>[1]) =>
48
52
  getMaxWithdraw(client, params),
49
53
  getMintFee: (params: Parameters<typeof getMintFee>[1]) =>
@@ -68,6 +72,8 @@ export const gatewayPublicActions = () => (client: Client) => ({
68
72
  previewDeposit(client, params),
69
73
  previewRedeem: (params: Parameters<typeof previewRedeem>[1]) =>
70
74
  previewRedeem(client, params),
75
+ previewWithdraw: (params: Parameters<typeof previewWithdraw>[1]) =>
76
+ previewWithdraw(client, params),
71
77
  });
72
78
 
73
79
  export const gatewayWalletActions = () => (client: WalletClient) => ({