@dzapio/sdk 2.0.16 → 2.0.18

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/index.d.mts CHANGED
@@ -1803,6 +1803,7 @@ declare class DZapClient {
1803
1803
  tokens: {
1804
1804
  address: HexString;
1805
1805
  amount: string;
1806
+ permit?: TokenPermitData;
1806
1807
  }[];
1807
1808
  service: AvailableDZapServices;
1808
1809
  rpcUrls?: string[];
package/dist/index.d.ts CHANGED
@@ -1803,6 +1803,7 @@ declare class DZapClient {
1803
1803
  tokens: {
1804
1804
  address: HexString;
1805
1805
  amount: string;
1806
+ permit?: TokenPermitData;
1806
1807
  }[];
1807
1808
  service: AvailableDZapServices;
1808
1809
  rpcUrls?: string[];
package/dist/index.js CHANGED
@@ -135,6 +135,7 @@ var PermitToDZapPermitMode = {
135
135
  [PermitTypes.PermitWitnessTransferFrom]: 2 /* PERMIT2_WITNESS_TRANSFER */,
136
136
  [PermitTypes.PermitBatchWitnessTransferFrom]: 3 /* BATCH_PERMIT2_WITNESS_TRANSFER */
137
137
  };
138
+ var EIP2612_PERMIT_TYPEHASH = viem.keccak256(viem.stringToHex("Permit(address owner,address spender,uint256 value,uint256 nonce,uint256 deadline)"));
138
139
 
139
140
  // src/constants/approval.ts
140
141
  var { EIP2612Permit, ...permitModeWithoutKey } = PermitTypes;
@@ -145,6 +146,7 @@ var ApprovalModes = {
145
146
 
146
147
  // src/constants/erc20.ts
147
148
  var erc20PermitFunctions = {
149
+ PERMIT_TYPEHASH: "PERMIT_TYPEHASH",
148
150
  allowance: "allowance"
149
151
  };
150
152
  var erc20Functions = {
@@ -12679,6 +12681,11 @@ var checkEIP2612PermitSupport = async ({
12679
12681
  address,
12680
12682
  abi: erc20PermitAbi,
12681
12683
  functionName: erc20Functions.name
12684
+ },
12685
+ {
12686
+ address,
12687
+ abi: erc20PermitAbi,
12688
+ functionName: erc20PermitFunctions.PERMIT_TYPEHASH
12682
12689
  }
12683
12690
  ];
12684
12691
  const multicallResult = await multicall({
@@ -12691,13 +12698,17 @@ var checkEIP2612PermitSupport = async ({
12691
12698
  return { supportsPermit: false };
12692
12699
  }
12693
12700
  const results = multicallResult.data;
12694
- const [domainSeparatorResult, nonceResult, versionResult, nameResult] = results;
12695
- if (domainSeparatorResult.status !== "success" /* success */ || nonceResult.status !== "success" /* success */ || nameResult.status !== "success" /* success */) {
12701
+ const [domainSeparatorResult, nonceResult, versionResult, nameResult, permitTypeHashResult] = results;
12702
+ if (domainSeparatorResult.status !== "success" /* success */ || nonceResult.status !== "success" /* success */ || nameResult.status !== "success" /* success */ || permitTypeHashResult.status !== "success" /* success */) {
12696
12703
  return { supportsPermit: false };
12697
12704
  }
12698
12705
  const name = nameResult.result;
12699
12706
  const nonce = nonceResult.result;
12700
12707
  const version = versionResult.status === "success" /* success */ ? versionResult.result : DEFAULT_PERMIT_VERSION;
12708
+ const permitTypeHash = permitTypeHashResult.result;
12709
+ if (permitTypeHash.toLowerCase() !== EIP2612_PERMIT_TYPEHASH.toLowerCase()) {
12710
+ return { supportsPermit: false };
12711
+ }
12701
12712
  return {
12702
12713
  supportsPermit: true,
12703
12714
  data: {
@@ -14496,11 +14507,12 @@ var getAllowance = async ({ chainId, sender, tokens, rpcUrls, multicallAddress,
14496
14507
  token: address,
14497
14508
  spender,
14498
14509
  amount,
14510
+ isEIP2612PermitSupported: false,
14499
14511
  isDefaultApprovalMode: true
14500
14512
  };
14501
14513
  } else {
14502
14514
  const permit2Address = getPermit2Address(chainId);
14503
- return { token: address, spender: permit2Address, amount, isDefaultApprovalMode: false };
14515
+ return { token: address, spender: permit2Address, amount, isEIP2612PermitSupported: false, isDefaultApprovalMode: false };
14504
14516
  }
14505
14517
  })
14506
14518
  );
package/dist/index.mjs CHANGED
@@ -1,4 +1,4 @@
1
- import { encodeAbiParameters, parseAbiParameters, keccak256, encodePacked, defineChain, zeroAddress as zeroAddress$1, isAddress, getAddress, formatUnits, http, createPublicClient, fallback, parseEventLogs, maxUint256, encodeFunctionData, maxUint48, getContract, decodeAbiParameters } from 'viem';
1
+ import { encodeAbiParameters, parseAbiParameters, keccak256, encodePacked, stringToHex, defineChain, zeroAddress as zeroAddress$1, isAddress, getAddress, formatUnits, http, createPublicClient, fallback, parseEventLogs, maxUint256, encodeFunctionData, maxUint48, getContract, decodeAbiParameters } from 'viem';
2
2
  import Axios from 'axios';
3
3
  import { Signer, ethers } from 'ethers';
4
4
  import * as viemChains from 'viem/chains';
@@ -109,6 +109,7 @@ var PermitToDZapPermitMode = {
109
109
  [PermitTypes.PermitWitnessTransferFrom]: 2 /* PERMIT2_WITNESS_TRANSFER */,
110
110
  [PermitTypes.PermitBatchWitnessTransferFrom]: 3 /* BATCH_PERMIT2_WITNESS_TRANSFER */
111
111
  };
112
+ var EIP2612_PERMIT_TYPEHASH = keccak256(stringToHex("Permit(address owner,address spender,uint256 value,uint256 nonce,uint256 deadline)"));
112
113
 
113
114
  // src/constants/approval.ts
114
115
  var { EIP2612Permit, ...permitModeWithoutKey } = PermitTypes;
@@ -119,6 +120,7 @@ var ApprovalModes = {
119
120
 
120
121
  // src/constants/erc20.ts
121
122
  var erc20PermitFunctions = {
123
+ PERMIT_TYPEHASH: "PERMIT_TYPEHASH",
122
124
  allowance: "allowance"
123
125
  };
124
126
  var erc20Functions = {
@@ -12653,6 +12655,11 @@ var checkEIP2612PermitSupport = async ({
12653
12655
  address,
12654
12656
  abi: erc20PermitAbi,
12655
12657
  functionName: erc20Functions.name
12658
+ },
12659
+ {
12660
+ address,
12661
+ abi: erc20PermitAbi,
12662
+ functionName: erc20PermitFunctions.PERMIT_TYPEHASH
12656
12663
  }
12657
12664
  ];
12658
12665
  const multicallResult = await multicall({
@@ -12665,13 +12672,17 @@ var checkEIP2612PermitSupport = async ({
12665
12672
  return { supportsPermit: false };
12666
12673
  }
12667
12674
  const results = multicallResult.data;
12668
- const [domainSeparatorResult, nonceResult, versionResult, nameResult] = results;
12669
- if (domainSeparatorResult.status !== "success" /* success */ || nonceResult.status !== "success" /* success */ || nameResult.status !== "success" /* success */) {
12675
+ const [domainSeparatorResult, nonceResult, versionResult, nameResult, permitTypeHashResult] = results;
12676
+ if (domainSeparatorResult.status !== "success" /* success */ || nonceResult.status !== "success" /* success */ || nameResult.status !== "success" /* success */ || permitTypeHashResult.status !== "success" /* success */) {
12670
12677
  return { supportsPermit: false };
12671
12678
  }
12672
12679
  const name = nameResult.result;
12673
12680
  const nonce = nonceResult.result;
12674
12681
  const version = versionResult.status === "success" /* success */ ? versionResult.result : DEFAULT_PERMIT_VERSION;
12682
+ const permitTypeHash = permitTypeHashResult.result;
12683
+ if (permitTypeHash.toLowerCase() !== EIP2612_PERMIT_TYPEHASH.toLowerCase()) {
12684
+ return { supportsPermit: false };
12685
+ }
12675
12686
  return {
12676
12687
  supportsPermit: true,
12677
12688
  data: {
@@ -14470,11 +14481,12 @@ var getAllowance = async ({ chainId, sender, tokens, rpcUrls, multicallAddress,
14470
14481
  token: address,
14471
14482
  spender,
14472
14483
  amount,
14484
+ isEIP2612PermitSupported: false,
14473
14485
  isDefaultApprovalMode: true
14474
14486
  };
14475
14487
  } else {
14476
14488
  const permit2Address = getPermit2Address(chainId);
14477
- return { token: address, spender: permit2Address, amount, isDefaultApprovalMode: false };
14489
+ return { token: address, spender: permit2Address, amount, isEIP2612PermitSupported: false, isDefaultApprovalMode: false };
14478
14490
  }
14479
14491
  })
14480
14492
  );
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dzapio/sdk",
3
- "version": "2.0.16",
3
+ "version": "2.0.18",
4
4
  "description": "A TypeScript/JavaScript SDK for interacting with the DZap protocol, providing utilities for DeFi operations including Swaps, Bridges, and Zaps.",
5
5
  "main": "dist/index.js",
6
6
  "source": "src/index.ts",