@morpho-org/bundler-sdk-viem 2.2.0 → 2.3.0-next.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.
package/lib/actions.js CHANGED
@@ -66,7 +66,7 @@ const encodeErc20Approval = (token, sender, spender, amount, data) => {
66
66
  export const encodeOperation = (operation, dataBefore, supportsSignature = true, index = 0) => {
67
67
  const { chainId } = dataBefore;
68
68
  const deadline = Time.timestamp() + Time.s.from.h(24n);
69
- const { morpho, bundler, publicAllocator, permit2, wNative, dai, wstEth, stEth, } = getChainAddresses(chainId);
69
+ const { morpho, bundler, permit2, publicAllocator, wNative, dai, wstEth, stEth, } = getChainAddresses(chainId);
70
70
  let value = 0n;
71
71
  const actions = [];
72
72
  const requirements = {
@@ -230,7 +230,7 @@ export const encodeOperation = (operation, dataBefore, supportsSignature = true,
230
230
  // Native token cannot be permitted.
231
231
  if (address === NATIVE_ADDRESS)
232
232
  break;
233
- const { amount, spender, expiration, nonce } = operation.args;
233
+ const { amount, expiration, nonce } = operation.args;
234
234
  if (supportsSignature) {
235
235
  const action = {
236
236
  type: "approve2",
@@ -242,7 +242,7 @@ export const encodeOperation = (operation, dataBefore, supportsSignature = true,
242
242
  nonce: Number(nonce),
243
243
  expiration: Number(expiration),
244
244
  },
245
- spender,
245
+ spender: bundler,
246
246
  sigDeadline: deadline,
247
247
  },
248
248
  null,
@@ -278,7 +278,7 @@ export const encodeOperation = (operation, dataBefore, supportsSignature = true,
278
278
  break;
279
279
  }
280
280
  // Signatures are not supported, fallback to standard approval.
281
- requirements.txs.push(...encodeErc20Approval(address, sender, spender, amount, dataBefore));
281
+ requirements.txs.push(...encodeErc20Approval(address, sender, bundler, amount, dataBefore));
282
282
  break;
283
283
  }
284
284
  case "Erc20_Transfer": {
package/lib/operations.js CHANGED
@@ -23,7 +23,7 @@ export const populateInputTransfer = ({ address, args: { amount, from } }, data,
23
23
  },
24
24
  },
25
25
  ];
26
- const { erc20Allowances, permit2Allowances, erc2612Nonce } = data.getHolding(from, address);
26
+ const { erc20Allowances, permit2BundlerAllowance, erc2612Nonce } = data.getHolding(from, address);
27
27
  // ERC20 allowance to the bundler is enough, consume it.
28
28
  if (erc20Allowances.bundler >= amount)
29
29
  return [
@@ -90,17 +90,16 @@ export const populateInputTransfer = ({ address, args: { amount, from } }, data,
90
90
  spender: permit2,
91
91
  },
92
92
  });
93
- if (permit2Allowances.bundler.amount < amount ||
94
- permit2Allowances.bundler.expiration < data.block.timestamp)
93
+ if (permit2BundlerAllowance.amount < amount ||
94
+ permit2BundlerAllowance.expiration < data.block.timestamp)
95
95
  operations.push({
96
96
  type: "Erc20_Permit2",
97
97
  sender: from,
98
98
  address,
99
99
  args: {
100
100
  amount,
101
- spender: bundler,
102
101
  expiration: MathLib.MAX_UINT_48, // Always approve indefinitely.
103
- nonce: permit2Allowances.bundler.nonce,
102
+ nonce: permit2BundlerAllowance.nonce,
104
103
  },
105
104
  });
106
105
  operations.push({
@@ -374,8 +373,7 @@ export const finalizeBundle = (operations, startData, receiver, unwrapTokens = n
374
373
  }
375
374
  case "Erc20_Permit2": {
376
375
  const duplicatePermit2 = permit2s.find((permit2) => permit2.address === operation.address &&
377
- permit2.sender === operation.sender &&
378
- permit2.args.spender === operation.args.spender);
376
+ permit2.sender === operation.sender);
379
377
  if (duplicatePermit2 == null) {
380
378
  const lastPermit2 = permit2s.findLast((permit2) => permit2.address === operation.address &&
381
379
  permit2.sender === operation.sender);
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@morpho-org/bundler-sdk-viem",
3
3
  "description": "Viem-based extension of `@morpho-org/simulation-sdk` that exports utilities to transform simple interactions on Morpho (such as `Blue_Borrow`) and Morpho Vaults (such as `MetaMorpho_Deposit`) into the required bundles (with ERC20 approvals, transfers, etc) to submit to the bundler onchain.",
4
- "version": "2.2.0",
4
+ "version": "2.3.0-next.0",
5
5
  "author": "Morpho Association <contact@morpho.org>",
6
6
  "contributors": [
7
7
  "Rubilmax <rmilon@gmail.com>"
@@ -20,10 +20,10 @@
20
20
  ],
21
21
  "peerDependencies": {
22
22
  "viem": "^2.0.0",
23
- "@morpho-org/blue-sdk-viem": "^2.2.2",
24
- "@morpho-org/simulation-sdk": "^2.1.3",
25
- "@morpho-org/blue-sdk": "^2.3.1",
26
- "@morpho-org/morpho-ts": "^2.1.0"
23
+ "@morpho-org/blue-sdk": "^3.0.0-next.0",
24
+ "@morpho-org/morpho-ts": "^2.1.0",
25
+ "@morpho-org/simulation-sdk": "^2.2.0-next.0",
26
+ "@morpho-org/blue-sdk-viem": "^2.3.0-next.0"
27
27
  },
28
28
  "devDependencies": {
29
29
  "@tanstack/query-core": "^5.62.16",
@@ -35,12 +35,12 @@
35
35
  "typescript": "^5.7.2",
36
36
  "viem": "^2.23.0",
37
37
  "vitest": "^3.0.5",
38
- "@morpho-org/blue-sdk": "^2.3.1",
39
- "@morpho-org/blue-sdk-viem": "^2.2.2",
40
- "@morpho-org/morpho-test": "^2.2.1",
38
+ "@morpho-org/blue-sdk": "^3.0.0-next.0",
39
+ "@morpho-org/blue-sdk-viem": "^2.3.0-next.0",
41
40
  "@morpho-org/morpho-ts": "^2.1.0",
42
- "@morpho-org/simulation-sdk": "^2.1.3",
43
- "@morpho-org/simulation-sdk-wagmi": "^2.0.5",
41
+ "@morpho-org/simulation-sdk": "^2.2.0-next.0",
42
+ "@morpho-org/morpho-test": "^2.2.1",
43
+ "@morpho-org/simulation-sdk-wagmi": "^2.1.0-next.0",
44
44
  "@morpho-org/test": "^2.0.6",
45
45
  "@morpho-org/test-wagmi": "^2.0.4"
46
46
  },