Skip to content

Latest commit

 

History

History
186 lines (160 loc) · 7.57 KB

File metadata and controls

186 lines (160 loc) · 7.57 KB
sidebar_label 0.11.0
sidebar_position 1
description MetaMask Delegation Toolkit v0.11.0 changelog

What's new in v0.11.0?

:::warning Breaking changes The ⚠️ symbol denotes potentially breaking API changes. As per the semantic versioning specification, from v1.0.0 onwards, breaking changes will be released only in major version bumps. :::

Breaking Changes

⚠️ nativeBalanceGte caveat

  • Renames nativeBalanceGte caveat to nativeBalanceChange.
  • Previously, the caveat only considered an increase in the native token balance. It now accepts a new parameter, BalanceChangeType, which defines the expected type of balance change. This parameter allows specifying whether the native token balance should have increased or decreased, using the valid options: BalanceChangeType.Increase and BalanceChangeType.Decrease.
// remove-next-line
caveatBuilder.addCaveat("nativeBalanceGte",
// add-next-line
caveatBuilder.addCaveat("nativeBalanceChange",
  "0x3fF528De37cd95b67845C1c55303e7685c72F319",
  1_000_000n,
  // add-next-line
  BalanceChangeType.Increase,
);

⚠️ erc20BalanceGte caveat

  • Renames erc20BalanceGte caveat to erc20BalanceChange.
  • Previously, the caveat only considered an increase in the ERC-20 token balance. It now accepts a new parameter, BalanceChangeType, which defines the expected type of balance change. This parameter allows specifying whether the ERC-20 token balance should have increased or decreased, using the valid options: BalanceChangeType.Increase and BalanceChangeType.Decrease.
  • Introduces a new parameter to specify the recipient address associated with the ERC-20 balance change.
// remove-next-line
caveatBuilder.addCaveat("erc20BalanceGte",
// add-next-line
caveatBuilder.addCaveat("erc20BalanceChange",
  "0xc11F3a8E5C7D16b75c9E2F60d26f5321C6Af5E92",
  // add-start
  // Specifies the address associated with the ERC-20 balance change
  "0x3fF528De37cd95b67845C1c55303e7685c72F319",
  // add-end
  1_000_000n,
  // add-next-line
  BalanceChangeType.Increase,
);

⚠️ erc721BalanceGte caveat

  • Renames erc721BalanceGte caveat to erc721BalanceChange.
  • Previously, the caveat only considered an increase in the ERC-721 token balance. It now accepts a new parameter, BalanceChangeType, which defines the expected type of balance change. This parameter allows specifying whether the ERC-721 token balance should have increased or decreased, using the valid options: BalanceChangeType.Increase and BalanceChangeType.Decrease.
// remove-next-line
caveatBuilder.addCaveat("erc721BalanceGte",
// add-next-line
caveatBuilder.addCaveat("erc721BalanceChange",
  "0xc11F3a8E5C7D16b75c9E2F60d26f5321C6Af5E92",
  "0x3fF528De37cd95b67845C1c55303e7685c72F319",
  1_000_000n,
  // add-next-line
  BalanceChangeType.Increase,
);

⚠️ erc1155BalanceGte caveat

  • Renames erc1155BalanceGte caveat to erc1155BalanceChange.
  • Previously, the caveat only considered an increase in the ERC-1155 token balance. It now accepts a new parameter, BalanceChangeType, which defines the expected type of balance change. This parameter allows specifying whether the ERC-1155 token balance should have increased or decreased, using the valid options: BalanceChangeType.Increase and BalanceChangeType.Decrease.
// remove-next-line
caveatBuilder.addCaveat("erc1155BalanceGte",
// add-next-line
caveatBuilder.addCaveat("erc1155BalanceChange",
  "0xc11F3a8E5C7D16b75c9E2F60d26f5321C6Af5E92",
  "0x3fF528De37cd95b67845C1c55303e7685c72F319",
  1n,
  1_000_000n,
  // add-next-line
  BalanceChangeType.Increase,
);

Enhancements

  • Delegation Framework now supports the Gnosis Chiado testnet 🎉.
  • isValidSignature function has been added to verify signatures from smart contract accounts.
  • aggregateSignature function is now exposed in the toolkit, allowing multiple required signatures to be combined into a single aggregated signature. Learn how to generate a multisig signature.
  • A new caveat, multiTokenPeriod, has been introduced to ensure that transfers involving multiple tokens remain within defined limits over specified time periods. See multiTokenPeriod to learn more.

Contract addresses

The following are the contract addresses for the Delegation Framework version 1.3.0, as used by this version of the toolkit.

Delegation Framework

Contract Address
EntryPoint 0x0000000071727De22E5E9d8BAf0edAc6f37da032
SimpleFactory 0x69Aa2f9fe1572F1B640E1bbc512f5c3a734fc77c
DelegationManager 0xdb9B1e94B5b69Df7e401DDbedE43491141047dB3
MultiSigDeleGatorImpl 0x56a9EdB16a0105eb5a4C54f4C062e2868844f3A7
HybridDeleGatorImpl 0x48dBe696A4D990079e039489bA2053B36E8FFEC4

Caveat enforcers

Enforcer Address
AllowedCalldataEnforcer 0xc2b0d624c1c4319760C96503BA27C347F3260f55
AllowedMethodsEnforcer 0x2c21fD0Cb9DC8445CB3fb0DC5E7Bb0Aca01842B5
AllowedTargetsEnforcer 0x7F20f61b1f09b08D970938F6fa563634d65c4EeB
ArgsEqualityCheckEnforcer 0x44B8C6ae3C304213c3e298495e12497Ed3E56E41
BlockNumberEnforcer 0x5d9818dF0AE3f66e9c3D0c5029DAF99d1823ca6c
DeployedEnforcer 0x24ff2AA430D53a8CD6788018E902E098083dcCd2
ERC20BalanceChangeEnforcer 0xcdF6aB796408598Cea671d79506d7D48E97a5437
ERC20TransferAmountEnforcer 0xf100b0819427117EcF76Ed94B358B1A5b5C6D2Fc
ERC20PeriodTransferEnforcer 0x474e3Ae7E169e940607cC624Da8A15Eb120139aB
ERC20StreamingEnforcer 0x56c97aE02f233B29fa03502Ecc0457266d9be00e
ERC721BalanceChangeEnforcer 0x8aFdf96eDBbe7e1eD3f5Cd89C7E084841e12A09e
ERC721TransferEnforcer 0x3790e6B7233f779b09DA74C72b6e94813925b9aF
ERC1155BalanceChangeEnforcer 0x63c322732695cAFbbD488Fc6937A0A7B66fC001A
ExactCalldataBatchEnforcer 0x982FD5C86BBF425d7d1451f974192d4525113DfD
ExactCalldataEnforcer 0x99F2e9bF15ce5eC84685604836F71aB835DBBdED
ExactExecutionBatchEnforcer 0x1e141e455d08721Dd5BCDA1BaA6Ea5633Afd5017
ExactExecutionEnforcer 0x146713078D39eCC1F5338309c28405ccf85Abfbb
IdEnforcer 0xC8B5D93463c893401094cc70e66A206fb5987997
LimitedCallsEnforcer 0x04658B29F6b82ed55274221a06Fc97D318E25416
MultiTokenPeriodEnforcer 0xFB2f1a9BD76d3701B730E5d69C3219D42D80eBb7
NonceEnforcer 0xDE4f2FAC4B3D87A1d9953Ca5FC09FCa7F366254f
NativeBalanceChangeEnforcer 0xbD7B277507723490Cd50b12EaaFe87C616be6880
NativeTokenPaymentEnforcer 0x4803a326ddED6dDBc60e659e5ed12d85c7582811
NativeTokenTransferAmountEnforcer 0xF71af580b9c3078fbc2BBF16FbB8EEd82b330320
NativeTokenStreamingEnforcer 0xD10b97905a320b13a0608f7E9cC506b56747df19
NativeTokenPeriodTransferEnforcer 0x9BC0FAf4Aca5AE429F4c06aEEaC517520CB16BD9
OwnershipTransferEnforcer 0x7EEf9734E7092032B5C56310Eb9BbD1f4A524681
RedeemerEnforcer 0xE144b0b2618071B4E56f746313528a669c7E65c5
SpecificActionERC20TransferBatchEnforcer 0x00e0251aaA263dfE3B3541B758A82D1CBA1c3B6D
TimestampEnforcer 0x1046bb45C8d673d4ea75321280DB34899413c069
ValueLteEnforcer 0x92Bf12322527cAA612fd31a0e810472BBB106A8F

Supported mainnet networks

  • Ethereum
  • Polygon
  • Binance Smart Chain
  • Optimism
  • Arbitrum
  • Linea
  • Base
  • Gnosis Chain

Supported testnet networks

  • Ethereum Sepolia
  • Linea Sepolia
  • Base Sepolia
  • MegaEth
  • Gnosis Chiado