viem 2.12.5 → 2.13.2
Sign up to get free protection for your applications and to get access to all the features.
- package/CHANGELOG.md +26 -0
- package/_cjs/accounts/index.js.map +1 -1
- package/_cjs/accounts/privateKeyToAccount.js +0 -4
- package/_cjs/accounts/privateKeyToAccount.js.map +1 -1
- package/_cjs/accounts/toAccount.js +0 -1
- package/_cjs/accounts/toAccount.js.map +1 -1
- package/_cjs/actions/index.js.map +1 -1
- package/_cjs/celo/index.js.map +1 -1
- package/_cjs/chains/definitions/avalanche.js +3 -3
- package/_cjs/chains/definitions/avalanche.js.map +1 -1
- package/_cjs/chains/definitions/avalancheFuji.js +3 -3
- package/_cjs/chains/definitions/avalancheFuji.js.map +1 -1
- package/_cjs/chains/definitions/redstone.js +23 -0
- package/_cjs/chains/definitions/redstone.js.map +1 -0
- package/_cjs/chains/definitions/scrollSepolia.js +3 -3
- package/_cjs/chains/definitions/scrollSepolia.js.map +1 -1
- package/_cjs/chains/definitions/taiko.js +32 -0
- package/_cjs/chains/definitions/taiko.js.map +1 -0
- package/_cjs/chains/index.js +7 -5
- package/_cjs/chains/index.js.map +1 -1
- package/_cjs/chains/utils.js.map +1 -1
- package/_cjs/ens/index.js.map +1 -1
- package/_cjs/errors/version.js +1 -1
- package/_cjs/experimental/eip5792/actions/writeContracts.js.map +1 -1
- package/_cjs/experimental/erc7715/actions/issuePermissions.js +74 -0
- package/_cjs/experimental/erc7715/actions/issuePermissions.js.map +1 -0
- package/_cjs/experimental/erc7715/decorators/erc7715.js +13 -0
- package/_cjs/experimental/erc7715/decorators/erc7715.js.map +1 -0
- package/_cjs/experimental/erc7715/types/permission.js +3 -0
- package/_cjs/experimental/erc7715/types/permission.js.map +1 -0
- package/_cjs/experimental/erc7715/types/signer.js +3 -0
- package/_cjs/experimental/erc7715/types/signer.js.map +1 -0
- package/_cjs/experimental/index.js +5 -15
- package/_cjs/experimental/index.js.map +1 -1
- package/_cjs/index.js.map +1 -1
- package/_cjs/node/index.js.map +1 -1
- package/_cjs/op-stack/chains.js.map +1 -1
- package/_cjs/op-stack/index.js.map +1 -1
- package/_cjs/siwe/index.js.map +1 -1
- package/_cjs/utils/accounts.js.map +1 -1
- package/_cjs/utils/hash/toEventHash.js.map +1 -1
- package/_cjs/utils/hash/toEventSignature.js.map +1 -1
- package/_cjs/utils/hash/toFunctionHash.js.map +1 -1
- package/_cjs/utils/hash/toFunctionSignature.js.map +1 -1
- package/_cjs/utils/index.js.map +1 -1
- package/_cjs/utils/promise/withTimeout.js.map +1 -1
- package/_cjs/zksync/chains.js.map +1 -1
- package/_cjs/zksync/index.js.map +1 -1
- package/_esm/accounts/index.js +1 -0
- package/_esm/accounts/index.js.map +1 -1
- package/_esm/accounts/privateKeyToAccount.js +0 -4
- package/_esm/accounts/privateKeyToAccount.js.map +1 -1
- package/_esm/accounts/toAccount.js +0 -1
- package/_esm/accounts/toAccount.js.map +1 -1
- package/_esm/actions/index.js +1 -0
- package/_esm/actions/index.js.map +1 -1
- package/_esm/celo/index.js +1 -0
- package/_esm/celo/index.js.map +1 -1
- package/_esm/chains/definitions/avalanche.js +3 -3
- package/_esm/chains/definitions/avalanche.js.map +1 -1
- package/_esm/chains/definitions/avalancheFuji.js +3 -3
- package/_esm/chains/definitions/avalancheFuji.js.map +1 -1
- package/_esm/chains/definitions/redstone.js +20 -0
- package/_esm/chains/definitions/redstone.js.map +1 -0
- package/_esm/chains/definitions/scrollSepolia.js +3 -3
- package/_esm/chains/definitions/scrollSepolia.js.map +1 -1
- package/_esm/chains/definitions/taiko.js +29 -0
- package/_esm/chains/definitions/taiko.js.map +1 -0
- package/_esm/chains/index.js +3 -1
- package/_esm/chains/index.js.map +1 -1
- package/_esm/chains/utils.js +1 -0
- package/_esm/chains/utils.js.map +1 -1
- package/_esm/ens/index.js +1 -0
- package/_esm/ens/index.js.map +1 -1
- package/_esm/errors/version.js +1 -1
- package/_esm/experimental/eip5792/actions/writeContracts.js.map +1 -1
- package/_esm/experimental/erc7715/actions/issuePermissions.js +107 -0
- package/_esm/experimental/erc7715/actions/issuePermissions.js.map +1 -0
- package/_esm/experimental/erc7715/decorators/erc7715.js +26 -0
- package/_esm/experimental/erc7715/decorators/erc7715.js.map +1 -0
- package/_esm/experimental/erc7715/types/permission.js +2 -0
- package/_esm/experimental/erc7715/types/permission.js.map +1 -0
- package/_esm/experimental/erc7715/types/signer.js +2 -0
- package/_esm/experimental/erc7715/types/signer.js.map +1 -0
- package/_esm/experimental/index.js +3 -7
- package/_esm/experimental/index.js.map +1 -1
- package/_esm/index.js +1 -0
- package/_esm/index.js.map +1 -1
- package/_esm/node/index.js +1 -0
- package/_esm/node/index.js.map +1 -1
- package/_esm/op-stack/chains.js +1 -0
- package/_esm/op-stack/chains.js.map +1 -1
- package/_esm/op-stack/index.js +2 -0
- package/_esm/op-stack/index.js.map +1 -1
- package/_esm/siwe/index.js +1 -0
- package/_esm/siwe/index.js.map +1 -1
- package/_esm/utils/accounts.js +1 -0
- package/_esm/utils/accounts.js.map +1 -1
- package/_esm/utils/hash/toEventHash.js +1 -0
- package/_esm/utils/hash/toEventHash.js.map +1 -1
- package/_esm/utils/hash/toEventSignature.js +1 -0
- package/_esm/utils/hash/toEventSignature.js.map +1 -1
- package/_esm/utils/hash/toFunctionHash.js +1 -0
- package/_esm/utils/hash/toFunctionHash.js.map +1 -1
- package/_esm/utils/hash/toFunctionSignature.js +1 -0
- package/_esm/utils/hash/toFunctionSignature.js.map +1 -1
- package/_esm/utils/index.js +1 -0
- package/_esm/utils/index.js.map +1 -1
- package/_esm/utils/promise/withTimeout.js.map +1 -1
- package/_esm/zksync/chains.js +1 -0
- package/_esm/zksync/chains.js.map +1 -1
- package/_esm/zksync/index.js +1 -0
- package/_esm/zksync/index.js.map +1 -1
- package/_types/accounts/index.d.ts.map +1 -1
- package/_types/accounts/privateKeyToAccount.d.ts.map +1 -1
- package/_types/accounts/toAccount.d.ts.map +1 -1
- package/_types/accounts/types.d.ts +2 -4
- package/_types/accounts/types.d.ts.map +1 -1
- package/_types/actions/index.d.ts.map +1 -1
- package/_types/celo/chainConfig.d.ts +76 -76
- package/_types/celo/formatters.d.ts +38 -38
- package/_types/celo/index.d.ts.map +1 -1
- package/_types/chains/definitions/ancient8.d.ts +30 -30
- package/_types/chains/definitions/ancient8Sepolia.d.ts +30 -30
- package/_types/chains/definitions/avalanche.d.ts +3 -3
- package/_types/chains/definitions/avalancheFuji.d.ts +3 -3
- package/_types/chains/definitions/base.d.ts +30 -30
- package/_types/chains/definitions/baseGoerli.d.ts +30 -30
- package/_types/chains/definitions/baseSepolia.d.ts +30 -30
- package/_types/chains/definitions/celo.d.ts +76 -76
- package/_types/chains/definitions/celoAlfajores.d.ts +76 -76
- package/_types/chains/definitions/fraxtal.d.ts +30 -30
- package/_types/chains/definitions/fraxtalTestnet.d.ts +30 -30
- package/_types/chains/definitions/funkiSepolia.d.ts +30 -30
- package/_types/chains/definitions/liskSepolia.d.ts +30 -30
- package/_types/chains/definitions/metalL2.d.ts +30 -30
- package/_types/chains/definitions/optimism.d.ts +30 -30
- package/_types/chains/definitions/optimismGoerli.d.ts +30 -30
- package/_types/chains/definitions/optimismSepolia.d.ts +30 -30
- package/_types/chains/definitions/pgn.d.ts +30 -30
- package/_types/chains/definitions/pgnTestnet.d.ts +30 -30
- package/_types/chains/definitions/{scrollTestnet.d.ts → redstone.d.ts} +10 -11
- package/_types/chains/definitions/redstone.d.ts.map +1 -0
- package/_types/chains/definitions/rss3.d.ts +30 -30
- package/_types/chains/definitions/rss3Sepolia.d.ts +30 -30
- package/_types/chains/definitions/scrollSepolia.d.ts +3 -3
- package/_types/chains/definitions/taiko.d.ts +34 -0
- package/_types/chains/definitions/taiko.d.ts.map +1 -0
- package/_types/chains/definitions/zora.d.ts +30 -30
- package/_types/chains/definitions/zoraSepolia.d.ts +30 -30
- package/_types/chains/definitions/zoraTestnet.d.ts +30 -30
- package/_types/chains/index.d.ts +2 -1
- package/_types/chains/index.d.ts.map +1 -1
- package/_types/chains/utils.d.ts.map +1 -1
- package/_types/ens/index.d.ts.map +1 -1
- package/_types/errors/version.d.ts +1 -1
- package/_types/experimental/eip5792/actions/writeContracts.d.ts +11 -3
- package/_types/experimental/eip5792/actions/writeContracts.d.ts.map +1 -1
- package/_types/experimental/erc7715/actions/issuePermissions.d.ts +73 -0
- package/_types/experimental/erc7715/actions/issuePermissions.d.ts.map +1 -0
- package/_types/experimental/erc7715/decorators/erc7715.d.ts +61 -0
- package/_types/experimental/erc7715/decorators/erc7715.d.ts.map +1 -0
- package/_types/experimental/erc7715/types/permission.d.ts +36 -0
- package/_types/experimental/erc7715/types/permission.d.ts.map +1 -0
- package/_types/experimental/erc7715/types/signer.d.ts +22 -0
- package/_types/experimental/erc7715/types/signer.d.ts.map +1 -0
- package/_types/experimental/index.d.ts +3 -8
- package/_types/experimental/index.d.ts.map +1 -1
- package/_types/index.d.ts +2 -2
- package/_types/index.d.ts.map +1 -1
- package/_types/node/index.d.ts.map +1 -1
- package/_types/op-stack/chainConfig.d.ts +30 -30
- package/_types/op-stack/chains.d.ts.map +1 -1
- package/_types/op-stack/formatters.d.ts +30 -30
- package/_types/op-stack/index.d.ts.map +1 -1
- package/_types/siwe/index.d.ts.map +1 -1
- package/_types/types/contract.d.ts +1 -1
- package/_types/types/contract.d.ts.map +1 -1
- package/_types/types/eip1193.d.ts +38 -0
- package/_types/types/eip1193.d.ts.map +1 -1
- package/_types/utils/accounts.d.ts.map +1 -1
- package/_types/utils/formatters/transaction.d.ts +1 -1
- package/_types/utils/hash/toEventHash.d.ts.map +1 -1
- package/_types/utils/hash/toEventSignature.d.ts.map +1 -1
- package/_types/utils/hash/toFunctionHash.d.ts.map +1 -1
- package/_types/utils/hash/toFunctionSignature.d.ts.map +1 -1
- package/_types/utils/index.d.ts +1 -1
- package/_types/utils/index.d.ts.map +1 -1
- package/_types/zksync/chains.d.ts.map +1 -1
- package/_types/zksync/index.d.ts.map +1 -1
- package/accounts/index.ts +2 -0
- package/accounts/privateKeyToAccount.ts +0 -4
- package/accounts/toAccount.ts +0 -1
- package/accounts/types.ts +2 -9
- package/actions/index.ts +1 -0
- package/celo/index.ts +1 -0
- package/chains/definitions/avalanche.ts +3 -3
- package/chains/definitions/avalancheFuji.ts +3 -3
- package/chains/definitions/redstone.ts +20 -0
- package/chains/definitions/scrollSepolia.ts +3 -3
- package/chains/definitions/taiko.ts +29 -0
- package/chains/index.ts +3 -1
- package/chains/utils.ts +1 -0
- package/ens/index.ts +1 -0
- package/errors/version.ts +1 -1
- package/experimental/eip5792/actions/writeContracts.ts +38 -4
- package/experimental/erc7715/actions/issuePermissions.ts +161 -0
- package/experimental/erc7715/decorators/erc7715.ts +80 -0
- package/experimental/erc7715/types/permission.ts +46 -0
- package/experimental/erc7715/types/signer.ts +25 -0
- package/experimental/index.ts +12 -44
- package/index.ts +4 -0
- package/node/index.ts +1 -0
- package/op-stack/chains.ts +1 -0
- package/op-stack/index.ts +2 -0
- package/package.json +4 -3
- package/siwe/index.ts +1 -0
- package/types/contract.ts +1 -3
- package/types/eip1193.ts +44 -0
- package/utils/accounts.ts +2 -0
- package/utils/hash/toEventHash.ts +1 -0
- package/utils/hash/toEventSignature.ts +1 -0
- package/utils/hash/toFunctionHash.ts +1 -0
- package/utils/hash/toFunctionSignature.ts +1 -0
- package/utils/index.ts +2 -0
- package/utils/promise/withTimeout.ts +1 -1
- package/zksync/chains.ts +1 -0
- package/zksync/index.ts +1 -0
- package/_cjs/chains/definitions/scrollTestnet.js +0 -24
- package/_cjs/chains/definitions/scrollTestnet.js.map +0 -1
- package/_cjs/experimental/eip3074/actions/signAuthMessage.js +0 -29
- package/_cjs/experimental/eip3074/actions/signAuthMessage.js.map +0 -1
- package/_cjs/experimental/eip3074/constants/abis.js +0 -123
- package/_cjs/experimental/eip3074/constants/abis.js.map +0 -1
- package/_cjs/experimental/eip3074/decorators/eip3074.js +0 -13
- package/_cjs/experimental/eip3074/decorators/eip3074.js.map +0 -1
- package/_cjs/experimental/eip3074/invokers/coders/batchInvokerCoder.js +0 -26
- package/_cjs/experimental/eip3074/invokers/coders/batchInvokerCoder.js.map +0 -1
- package/_cjs/experimental/eip3074/invokers/coders/defineInvokerCoder.js +0 -8
- package/_cjs/experimental/eip3074/invokers/coders/defineInvokerCoder.js.map +0 -1
- package/_cjs/experimental/eip3074/invokers/getInvoker.js +0 -64
- package/_cjs/experimental/eip3074/invokers/getInvoker.js.map +0 -1
- package/_cjs/experimental/eip3074/utils/recoverAuthMessageAddress.js +0 -12
- package/_cjs/experimental/eip3074/utils/recoverAuthMessageAddress.js.map +0 -1
- package/_cjs/experimental/eip3074/utils/signAuthMessage.js +0 -17
- package/_cjs/experimental/eip3074/utils/signAuthMessage.js.map +0 -1
- package/_cjs/experimental/eip3074/utils/toAuthMessage.js +0 -17
- package/_cjs/experimental/eip3074/utils/toAuthMessage.js.map +0 -1
- package/_cjs/experimental/eip3074/utils/verifyAuthMessage.js +0 -11
- package/_cjs/experimental/eip3074/utils/verifyAuthMessage.js.map +0 -1
- package/_esm/chains/definitions/scrollTestnet.js +0 -21
- package/_esm/chains/definitions/scrollTestnet.js.map +0 -1
- package/_esm/experimental/eip3074/actions/signAuthMessage.js +0 -78
- package/_esm/experimental/eip3074/actions/signAuthMessage.js.map +0 -1
- package/_esm/experimental/eip3074/constants/abis.js +0 -120
- package/_esm/experimental/eip3074/constants/abis.js.map +0 -1
- package/_esm/experimental/eip3074/decorators/eip3074.js +0 -26
- package/_esm/experimental/eip3074/decorators/eip3074.js.map +0 -1
- package/_esm/experimental/eip3074/invokers/coders/batchInvokerCoder.js +0 -22
- package/_esm/experimental/eip3074/invokers/coders/batchInvokerCoder.js.map +0 -1
- package/_esm/experimental/eip3074/invokers/coders/defineInvokerCoder.js +0 -4
- package/_esm/experimental/eip3074/invokers/coders/defineInvokerCoder.js.map +0 -1
- package/_esm/experimental/eip3074/invokers/getInvoker.js +0 -60
- package/_esm/experimental/eip3074/invokers/getInvoker.js.map +0 -1
- package/_esm/experimental/eip3074/utils/recoverAuthMessageAddress.js +0 -8
- package/_esm/experimental/eip3074/utils/recoverAuthMessageAddress.js.map +0 -1
- package/_esm/experimental/eip3074/utils/signAuthMessage.js +0 -16
- package/_esm/experimental/eip3074/utils/signAuthMessage.js.map +0 -1
- package/_esm/experimental/eip3074/utils/toAuthMessage.js +0 -16
- package/_esm/experimental/eip3074/utils/toAuthMessage.js.map +0 -1
- package/_esm/experimental/eip3074/utils/verifyAuthMessage.js +0 -13
- package/_esm/experimental/eip3074/utils/verifyAuthMessage.js.map +0 -1
- package/_types/chains/definitions/scrollTestnet.d.ts.map +0 -1
- package/_types/experimental/eip3074/actions/signAuthMessage.d.ts +0 -82
- package/_types/experimental/eip3074/actions/signAuthMessage.d.ts.map +0 -1
- package/_types/experimental/eip3074/constants/abis.d.ts +0 -91
- package/_types/experimental/eip3074/constants/abis.d.ts.map +0 -1
- package/_types/experimental/eip3074/decorators/eip3074.d.ts +0 -27
- package/_types/experimental/eip3074/decorators/eip3074.d.ts.map +0 -1
- package/_types/experimental/eip3074/invokers/coders/batchInvokerCoder.d.ts +0 -11
- package/_types/experimental/eip3074/invokers/coders/batchInvokerCoder.d.ts.map +0 -1
- package/_types/experimental/eip3074/invokers/coders/defineInvokerCoder.d.ts +0 -14
- package/_types/experimental/eip3074/invokers/coders/defineInvokerCoder.d.ts.map +0 -1
- package/_types/experimental/eip3074/invokers/getInvoker.d.ts +0 -48
- package/_types/experimental/eip3074/invokers/getInvoker.d.ts.map +0 -1
- package/_types/experimental/eip3074/utils/recoverAuthMessageAddress.d.ts +0 -12
- package/_types/experimental/eip3074/utils/recoverAuthMessageAddress.d.ts.map +0 -1
- package/_types/experimental/eip3074/utils/signAuthMessage.d.ts +0 -16
- package/_types/experimental/eip3074/utils/signAuthMessage.d.ts.map +0 -1
- package/_types/experimental/eip3074/utils/toAuthMessage.d.ts +0 -20
- package/_types/experimental/eip3074/utils/toAuthMessage.d.ts.map +0 -1
- package/_types/experimental/eip3074/utils/verifyAuthMessage.d.ts +0 -19
- package/_types/experimental/eip3074/utils/verifyAuthMessage.d.ts.map +0 -1
- package/chains/definitions/scrollTestnet.ts +0 -21
- package/experimental/eip3074/actions/signAuthMessage.ts +0 -151
- package/experimental/eip3074/constants/abis.ts +0 -119
- package/experimental/eip3074/decorators/eip3074.ts +0 -58
- package/experimental/eip3074/invokers/coders/batchInvokerCoder.ts +0 -46
- package/experimental/eip3074/invokers/coders/defineInvokerCoder.ts +0 -20
- package/experimental/eip3074/invokers/getInvoker.ts +0 -192
- package/experimental/eip3074/utils/recoverAuthMessageAddress.ts +0 -29
- package/experimental/eip3074/utils/signAuthMessage.ts +0 -40
- package/experimental/eip3074/utils/toAuthMessage.ts +0 -50
- package/experimental/eip3074/utils/verifyAuthMessage.ts +0 -46
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"verifyAuthMessage.d.ts","sourceRoot":"","sources":["../../../../experimental/eip3074/utils/verifyAuthMessage.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAA;AAEtC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAA;AACzD,OAAO,EACL,KAAK,mBAAmB,EAEzB,MAAM,sCAAsC,CAAA;AAC7C,OAAO,EACL,KAAK,uBAAuB,EAE7B,MAAM,0CAA0C,CAAA;AACjD,OAAO,EACL,KAAK,kCAAkC,EACvC,KAAK,mCAAmC,EAEzC,MAAM,gCAAgC,CAAA;AAEvC,MAAM,MAAM,2BAA2B,GACrC,mCAAmC,GAAG;IACpC,yDAAyD;IACzD,OAAO,EAAE,OAAO,CAAA;CACjB,CAAA;AAEH,MAAM,MAAM,2BAA2B,GAAG,OAAO,CAAA;AAEjD,MAAM,MAAM,0BAA0B,GAClC,uBAAuB,GACvB,mBAAmB,GACnB,kCAAkC,GAClC,SAAS,CAAA;AAEb;;;;;GAKG;AACH,wBAAsB,iBAAiB,CAAC,EACtC,OAAO,EACP,GAAG,UAAU,EACd,EAAE,2BAA2B,GAAG,OAAO,CAAC,2BAA2B,CAAC,CAKpE"}
|
@@ -1,21 +0,0 @@
|
|
1
|
-
import { defineChain } from '../../utils/chain/defineChain.js'
|
2
|
-
|
3
|
-
export const scrollTestnet = /*#__PURE__*/ defineChain({
|
4
|
-
id: 534_353,
|
5
|
-
name: 'Scroll Testnet',
|
6
|
-
nativeCurrency: { name: 'Ether', symbol: 'ETH', decimals: 18 },
|
7
|
-
rpcUrls: {
|
8
|
-
default: {
|
9
|
-
http: ['https://alpha-rpc.scroll.io/l2'],
|
10
|
-
webSocket: ['wss://alpha-rpc.scroll.io/l2/ws'],
|
11
|
-
},
|
12
|
-
},
|
13
|
-
blockExplorers: {
|
14
|
-
default: {
|
15
|
-
name: 'Blockscout',
|
16
|
-
url: 'https://blockscout.scroll.io',
|
17
|
-
apiUrl: 'https://blockscout.scroll.io/api',
|
18
|
-
},
|
19
|
-
},
|
20
|
-
testnet: true,
|
21
|
-
})
|
@@ -1,151 +0,0 @@
|
|
1
|
-
import type { Address } from 'abitype'
|
2
|
-
import { getTransactionCount } from '../../../actions/public/getTransactionCount.js'
|
3
|
-
import type { Client } from '../../../clients/createClient.js'
|
4
|
-
import type { Transport } from '../../../clients/transports/createTransport.js'
|
5
|
-
import { AccountNotFoundError } from '../../../errors/account.js'
|
6
|
-
import type { ErrorType } from '../../../errors/utils.js'
|
7
|
-
import type {
|
8
|
-
Account,
|
9
|
-
DeriveAccount,
|
10
|
-
LocalAccount,
|
11
|
-
} from '../../../types/account.js'
|
12
|
-
import type { Chain, GetChainParameter } from '../../../types/chain.js'
|
13
|
-
import type { Hash, Hex } from '../../../types/misc.js'
|
14
|
-
import type { IsUndefined } from '../../../types/utils.js'
|
15
|
-
import { getAction } from '../../../utils/getAction.js'
|
16
|
-
|
17
|
-
// TODO: Use `GetAccountParameter` from `types/utils.ts` when JSON-RPC method for sign auth message exists.
|
18
|
-
type GetAccountParameter<
|
19
|
-
account extends Account | undefined = Account | undefined,
|
20
|
-
accountOverride extends Account | Address | undefined = Account | Address,
|
21
|
-
> = IsUndefined<account> extends true
|
22
|
-
? { account: accountOverride | LocalAccount }
|
23
|
-
: account extends LocalAccount
|
24
|
-
? {
|
25
|
-
account?: accountOverride | LocalAccount | undefined
|
26
|
-
}
|
27
|
-
: { account: accountOverride | LocalAccount }
|
28
|
-
|
29
|
-
type GetNonceParameter<account extends Account | Address | undefined> =
|
30
|
-
account extends Address | Account
|
31
|
-
? {
|
32
|
-
nonce?: number | undefined
|
33
|
-
}
|
34
|
-
: {
|
35
|
-
nonce: number
|
36
|
-
}
|
37
|
-
|
38
|
-
export type SignAuthMessageParameters<
|
39
|
-
chain extends Chain | undefined = Chain | undefined,
|
40
|
-
account extends Account | undefined = Account | undefined,
|
41
|
-
chainOverride extends Chain | undefined = Chain | undefined,
|
42
|
-
accountOverride extends Account | Address | undefined = Account | Address,
|
43
|
-
> = {
|
44
|
-
commit: Hash
|
45
|
-
invokerAddress: Address
|
46
|
-
} & GetAccountParameter<account, accountOverride> &
|
47
|
-
GetChainParameter<chain, chainOverride> &
|
48
|
-
GetNonceParameter<DeriveAccount<account, accountOverride>>
|
49
|
-
|
50
|
-
export type SignAuthMessageReturnType = Hex
|
51
|
-
|
52
|
-
export type SignAuthMessageErrorType = ErrorType
|
53
|
-
|
54
|
-
/**
|
55
|
-
* Calculates an [EIP-3074](https://eips.ethereum.org/EIPS/eip-3074) auth signature.
|
56
|
-
*
|
57
|
-
* With the calculated signature, you can:
|
58
|
-
* - pass it to an EIP-3074 compatible invoker contract,
|
59
|
-
* - use [`verifyAuthMessage`](/experimental/eip3074/verifyAuthMessage) to verify the signature,
|
60
|
-
* - use [`recoverAuthMessageAddress`](/experimental/eip3074/recoverAuthMessageAddress) to recover the signing address from a signature.
|
61
|
-
*
|
62
|
-
* @param client - Client to use
|
63
|
-
* @param parameters - {@link SignAuthMessageParameters}
|
64
|
-
* @returns The signed auth message. {@link SignAuthMessageReturnType}
|
65
|
-
*
|
66
|
-
* @example
|
67
|
-
* import { createWalletClient, http } from 'viem'
|
68
|
-
* import { privateKeyToAccount } from 'viem/accounts'
|
69
|
-
* import { mainnet } from 'viem/chains'
|
70
|
-
* import { signAuthMessage } from 'viem/experimental'
|
71
|
-
*
|
72
|
-
* const account = privateKeyToAccount('0x...')
|
73
|
-
*
|
74
|
-
* const client = createWalletClient({
|
75
|
-
* chain: mainnet,
|
76
|
-
* transport: http(),
|
77
|
-
* })
|
78
|
-
*
|
79
|
-
* const signature = await signAuthMessage(client, {
|
80
|
-
* account,
|
81
|
-
* chainId: 1,
|
82
|
-
* commit: keccak256('0x1234'),
|
83
|
-
* invokerAddress: '0x0000000000000000000000000000000000000000',
|
84
|
-
* nonce: 69,
|
85
|
-
* })
|
86
|
-
*
|
87
|
-
* @example
|
88
|
-
* // Account Hoisting
|
89
|
-
* import { createWalletClient, http } from 'viem'
|
90
|
-
* import { privateKeyToAccount } from 'viem/accounts'
|
91
|
-
* import { mainnet } from 'viem/chains'
|
92
|
-
* import { signAuthMessage } from 'viem/experimental'
|
93
|
-
*
|
94
|
-
* const client = createWalletClient({
|
95
|
-
* account: privateKeyToAccount('0x…'),
|
96
|
-
* chain: mainnet,
|
97
|
-
* transport: http(),
|
98
|
-
* })
|
99
|
-
*
|
100
|
-
* const signature = await signAuthMessage(client, {
|
101
|
-
* chainId: 1,
|
102
|
-
* commit: keccak256('0x1234'),
|
103
|
-
* invokerAddress: '0x0000000000000000000000000000000000000000',
|
104
|
-
* nonce: 69,
|
105
|
-
* })
|
106
|
-
*/
|
107
|
-
export async function signAuthMessage<
|
108
|
-
chain extends Chain | undefined,
|
109
|
-
account extends Account | undefined,
|
110
|
-
chainOverride extends Chain | undefined = undefined,
|
111
|
-
accountOverride extends Account | undefined = undefined,
|
112
|
-
>(
|
113
|
-
client: Client<Transport, chain, account>,
|
114
|
-
parameters: SignAuthMessageParameters<
|
115
|
-
chain,
|
116
|
-
account,
|
117
|
-
chainOverride,
|
118
|
-
accountOverride
|
119
|
-
>,
|
120
|
-
): Promise<SignAuthMessageReturnType> {
|
121
|
-
const {
|
122
|
-
account = client.account,
|
123
|
-
chain = client.chain,
|
124
|
-
commit,
|
125
|
-
invokerAddress,
|
126
|
-
} = parameters
|
127
|
-
|
128
|
-
if (!account)
|
129
|
-
throw new AccountNotFoundError({
|
130
|
-
docsPath: '/experimental/eip5792/signAuthMessage',
|
131
|
-
})
|
132
|
-
|
133
|
-
const nonce = await (() => {
|
134
|
-
if (typeof parameters.nonce === 'number') return parameters.nonce
|
135
|
-
return getAction(
|
136
|
-
client,
|
137
|
-
getTransactionCount,
|
138
|
-
'getTransactionCount',
|
139
|
-
)({
|
140
|
-
address: account.address,
|
141
|
-
blockTag: 'pending',
|
142
|
-
})
|
143
|
-
})()
|
144
|
-
|
145
|
-
return account.experimental_signAuthMessage!({
|
146
|
-
chainId: chain!.id,
|
147
|
-
commit,
|
148
|
-
invokerAddress,
|
149
|
-
nonce,
|
150
|
-
})
|
151
|
-
}
|
@@ -1,119 +0,0 @@
|
|
1
|
-
export const invokerAbi = [
|
2
|
-
{
|
3
|
-
type: 'function',
|
4
|
-
name: 'execute',
|
5
|
-
inputs: [
|
6
|
-
{
|
7
|
-
name: 'execData',
|
8
|
-
type: 'bytes',
|
9
|
-
internalType: 'bytes',
|
10
|
-
},
|
11
|
-
{
|
12
|
-
name: 'signature',
|
13
|
-
type: 'tuple',
|
14
|
-
internalType: 'struct Auth.Signature',
|
15
|
-
components: [
|
16
|
-
{
|
17
|
-
name: 'signer',
|
18
|
-
type: 'address',
|
19
|
-
internalType: 'address',
|
20
|
-
},
|
21
|
-
{
|
22
|
-
name: 'yParity',
|
23
|
-
type: 'uint8',
|
24
|
-
internalType: 'uint8',
|
25
|
-
},
|
26
|
-
{
|
27
|
-
name: 'r',
|
28
|
-
type: 'bytes32',
|
29
|
-
internalType: 'bytes32',
|
30
|
-
},
|
31
|
-
{
|
32
|
-
name: 's',
|
33
|
-
type: 'bytes32',
|
34
|
-
internalType: 'bytes32',
|
35
|
-
},
|
36
|
-
],
|
37
|
-
},
|
38
|
-
],
|
39
|
-
outputs: [],
|
40
|
-
stateMutability: 'nonpayable',
|
41
|
-
},
|
42
|
-
{
|
43
|
-
type: 'function',
|
44
|
-
name: 'getDigest',
|
45
|
-
inputs: [
|
46
|
-
{
|
47
|
-
name: 'execData',
|
48
|
-
type: 'bytes',
|
49
|
-
internalType: 'bytes',
|
50
|
-
},
|
51
|
-
{
|
52
|
-
name: 'nonce',
|
53
|
-
type: 'uint256',
|
54
|
-
internalType: 'uint256',
|
55
|
-
},
|
56
|
-
],
|
57
|
-
outputs: [
|
58
|
-
{
|
59
|
-
name: 'digest',
|
60
|
-
type: 'bytes32',
|
61
|
-
internalType: 'bytes32',
|
62
|
-
},
|
63
|
-
],
|
64
|
-
stateMutability: 'view',
|
65
|
-
},
|
66
|
-
{
|
67
|
-
type: 'function',
|
68
|
-
name: 'multiSend',
|
69
|
-
inputs: [
|
70
|
-
{
|
71
|
-
name: 'transactions',
|
72
|
-
type: 'bytes',
|
73
|
-
internalType: 'bytes',
|
74
|
-
},
|
75
|
-
],
|
76
|
-
outputs: [],
|
77
|
-
stateMutability: 'payable',
|
78
|
-
},
|
79
|
-
{
|
80
|
-
type: 'function',
|
81
|
-
name: 'nextNonce',
|
82
|
-
inputs: [
|
83
|
-
{
|
84
|
-
name: '',
|
85
|
-
type: 'address',
|
86
|
-
internalType: 'address',
|
87
|
-
},
|
88
|
-
],
|
89
|
-
outputs: [
|
90
|
-
{
|
91
|
-
name: '',
|
92
|
-
type: 'uint256',
|
93
|
-
internalType: 'uint256',
|
94
|
-
},
|
95
|
-
],
|
96
|
-
stateMutability: 'view',
|
97
|
-
},
|
98
|
-
{
|
99
|
-
type: 'error',
|
100
|
-
name: 'BadAuth',
|
101
|
-
inputs: [],
|
102
|
-
},
|
103
|
-
{
|
104
|
-
type: 'error',
|
105
|
-
name: 'InvalidNonce',
|
106
|
-
inputs: [
|
107
|
-
{
|
108
|
-
name: 'authority',
|
109
|
-
type: 'address',
|
110
|
-
internalType: 'address',
|
111
|
-
},
|
112
|
-
{
|
113
|
-
name: 'attempted',
|
114
|
-
type: 'uint256',
|
115
|
-
internalType: 'uint256',
|
116
|
-
},
|
117
|
-
],
|
118
|
-
},
|
119
|
-
] as const
|
@@ -1,58 +0,0 @@
|
|
1
|
-
import type { Client } from '../../../clients/createClient.js'
|
2
|
-
import type { Transport } from '../../../clients/transports/createTransport.js'
|
3
|
-
import type { Account } from '../../../types/account.js'
|
4
|
-
import type { Chain } from '../../../types/chain.js'
|
5
|
-
import {
|
6
|
-
type SignAuthMessageParameters,
|
7
|
-
type SignAuthMessageReturnType,
|
8
|
-
signAuthMessage,
|
9
|
-
} from '../actions/signAuthMessage.js'
|
10
|
-
|
11
|
-
export type WalletActionsEip3074<
|
12
|
-
chain extends Chain | undefined = Chain | undefined,
|
13
|
-
account extends Account | undefined = Account | undefined,
|
14
|
-
> = {
|
15
|
-
signAuthMessage: <
|
16
|
-
chainOverride extends Chain | undefined = undefined,
|
17
|
-
accountOverride extends Account | undefined = undefined,
|
18
|
-
>(
|
19
|
-
parameters: SignAuthMessageParameters<
|
20
|
-
chain,
|
21
|
-
account,
|
22
|
-
chainOverride,
|
23
|
-
accountOverride
|
24
|
-
>,
|
25
|
-
) => Promise<SignAuthMessageReturnType>
|
26
|
-
}
|
27
|
-
|
28
|
-
/**
|
29
|
-
* A suite of EIP-3074 Wallet Actions.
|
30
|
-
*
|
31
|
-
* - Docs: https://viem.sh/experimental
|
32
|
-
*
|
33
|
-
* @example
|
34
|
-
* import { createPublicClient, createWalletClient, http } from 'viem'
|
35
|
-
* import { mainnet } from 'viem/chains'
|
36
|
-
* import { walletActionsEip3074 } from 'viem/experimental'
|
37
|
-
*
|
38
|
-
* const walletClient = createWalletClient({
|
39
|
-
* chain: mainnet,
|
40
|
-
* transport: http(),
|
41
|
-
* }).extend(walletActionsEip3074())
|
42
|
-
*
|
43
|
-
* const signature = await walletClient.signAuthMessage({...})
|
44
|
-
*/
|
45
|
-
export function walletActionsEip3074() {
|
46
|
-
return <
|
47
|
-
transport extends Transport,
|
48
|
-
chain extends Chain | undefined = Chain | undefined,
|
49
|
-
account extends Account | undefined = Account | undefined,
|
50
|
-
>(
|
51
|
-
client: Client<transport, chain, account>,
|
52
|
-
): WalletActionsEip3074<chain, account> => {
|
53
|
-
return {
|
54
|
-
signAuthMessage: (parameters) =>
|
55
|
-
signAuthMessage(client as any, parameters),
|
56
|
-
}
|
57
|
-
}
|
58
|
-
}
|
@@ -1,46 +0,0 @@
|
|
1
|
-
import type { Address } from 'abitype'
|
2
|
-
import { readContract } from '../../../../actions/public/readContract.js'
|
3
|
-
import type { Hex } from '../../../../types/misc.js'
|
4
|
-
import { encodeAbiParameters } from '../../../../utils/abi/encodeAbiParameters.js'
|
5
|
-
import { encodePacked } from '../../../../utils/abi/encodePacked.js'
|
6
|
-
import { concat } from '../../../../utils/data/concat.js'
|
7
|
-
import { size } from '../../../../utils/data/size.js'
|
8
|
-
import { invokerAbi } from '../../constants/abis.js'
|
9
|
-
import { defineInvokerCoder } from './defineInvokerCoder.js'
|
10
|
-
|
11
|
-
type Calls = readonly {
|
12
|
-
to: Address
|
13
|
-
data?: Hex | undefined
|
14
|
-
value?: bigint | undefined
|
15
|
-
}[]
|
16
|
-
|
17
|
-
export type BatchInvokerArgs = Calls
|
18
|
-
|
19
|
-
export function batchInvokerCoder() {
|
20
|
-
return defineInvokerCoder({
|
21
|
-
async toExecData(
|
22
|
-
args: BatchInvokerArgs,
|
23
|
-
{ authority, client, invokerAddress },
|
24
|
-
) {
|
25
|
-
const nonce = await readContract(client, {
|
26
|
-
abi: invokerAbi,
|
27
|
-
address: invokerAddress,
|
28
|
-
functionName: 'nextNonce',
|
29
|
-
args: [authority],
|
30
|
-
})
|
31
|
-
|
32
|
-
const calls = concat(
|
33
|
-
args.map(({ data = '0x', to, value = 0n }) =>
|
34
|
-
encodePacked(
|
35
|
-
['uint8', 'address', 'uint256', 'uint256', 'bytes'],
|
36
|
-
[2, to, value, BigInt(size(data)), data],
|
37
|
-
),
|
38
|
-
),
|
39
|
-
)
|
40
|
-
return encodeAbiParameters(
|
41
|
-
[{ type: 'uint256' }, { type: 'bytes' }],
|
42
|
-
[nonce, calls],
|
43
|
-
)
|
44
|
-
},
|
45
|
-
})
|
46
|
-
}
|
@@ -1,20 +0,0 @@
|
|
1
|
-
import type { Address } from 'abitype'
|
2
|
-
import type { Client } from '../../../../clients/createClient.js'
|
3
|
-
import type { Hex } from '../../../../types/misc.js'
|
4
|
-
|
5
|
-
export type InvokerCoder<args = unknown> = {
|
6
|
-
toExecData: (
|
7
|
-
args: args,
|
8
|
-
options: { authority: Address; client: Client; invokerAddress: Hex },
|
9
|
-
) => Promise<Hex>
|
10
|
-
}
|
11
|
-
|
12
|
-
export type DefineInvokerCoderParameters<args = unknown> = InvokerCoder<args>
|
13
|
-
|
14
|
-
export type DefineInvokerCoderReturnType<args = unknown> = InvokerCoder<args>
|
15
|
-
|
16
|
-
export function defineInvokerCoder<args>(
|
17
|
-
parameters: DefineInvokerCoderParameters<args>,
|
18
|
-
): DefineInvokerCoderReturnType<args> {
|
19
|
-
return parameters
|
20
|
-
}
|
@@ -1,192 +0,0 @@
|
|
1
|
-
import type { Address } from 'abitype'
|
2
|
-
import {
|
3
|
-
type GetTransactionCountErrorType,
|
4
|
-
getTransactionCount,
|
5
|
-
} from '../../../actions/public/getTransactionCount.js'
|
6
|
-
import {
|
7
|
-
type WriteContractErrorType,
|
8
|
-
writeContract,
|
9
|
-
} from '../../../actions/wallet/writeContract.js'
|
10
|
-
import type { Client } from '../../../clients/createClient.js'
|
11
|
-
import type { Transport } from '../../../clients/transports/createTransport.js'
|
12
|
-
import type { ErrorType } from '../../../errors/utils.js'
|
13
|
-
import type { Account, LocalAccount } from '../../../types/account.js'
|
14
|
-
import type { Chain, GetChainParameter } from '../../../types/chain.js'
|
15
|
-
import type { Hex } from '../../../types/misc.js'
|
16
|
-
import type { IsUndefined } from '../../../types/utils.js'
|
17
|
-
import { parseAccount } from '../../../utils/accounts.js'
|
18
|
-
import {
|
19
|
-
type IsAddressEqualErrorType,
|
20
|
-
isAddressEqual,
|
21
|
-
} from '../../../utils/address/isAddressEqual.js'
|
22
|
-
import { getAction } from '../../../utils/getAction.js'
|
23
|
-
import {
|
24
|
-
type Keccak256ErrorType,
|
25
|
-
keccak256,
|
26
|
-
} from '../../../utils/hash/keccak256.js'
|
27
|
-
import {
|
28
|
-
type ParseSignatureErrorType,
|
29
|
-
parseSignature,
|
30
|
-
} from '../../../utils/signature/parseSignature.js'
|
31
|
-
import {
|
32
|
-
type SignAuthMessageErrorType,
|
33
|
-
signAuthMessage,
|
34
|
-
} from '../actions/signAuthMessage.js'
|
35
|
-
import { invokerAbi } from '../constants/abis.js'
|
36
|
-
import type { InvokerCoder } from './coders/defineInvokerCoder.js'
|
37
|
-
|
38
|
-
type GetExecutorParameter<
|
39
|
-
TAccount extends Account | undefined = Account | undefined,
|
40
|
-
TAccountOverride extends Account | Address | undefined = Account | Address,
|
41
|
-
TRequired extends boolean = true,
|
42
|
-
> = IsUndefined<TAccount> extends true
|
43
|
-
? TRequired extends true
|
44
|
-
? { executor: TAccountOverride | Account | Address }
|
45
|
-
: { executor?: TAccountOverride | Account | Address | undefined }
|
46
|
-
: { executor?: TAccountOverride | Account | Address | undefined }
|
47
|
-
|
48
|
-
export type InvokerExecuteParameters<
|
49
|
-
account extends Account | undefined = Account | undefined,
|
50
|
-
chain extends Chain | undefined = Chain | undefined,
|
51
|
-
chainOverride extends Chain | undefined = Chain | undefined,
|
52
|
-
args = unknown,
|
53
|
-
> = {
|
54
|
-
args: args
|
55
|
-
authority: Account | Address
|
56
|
-
signature: Hex
|
57
|
-
} & GetExecutorParameter<account> &
|
58
|
-
GetChainParameter<chain, chainOverride>
|
59
|
-
|
60
|
-
export type InvokerExecuteErrorType =
|
61
|
-
| WriteContractErrorType
|
62
|
-
| ParseSignatureErrorType
|
63
|
-
| ErrorType
|
64
|
-
|
65
|
-
export type InvokerSignParameters<
|
66
|
-
account extends Account | undefined = Account | undefined,
|
67
|
-
chain extends Chain | undefined = Chain | undefined,
|
68
|
-
chainOverride extends Chain | undefined = Chain | undefined,
|
69
|
-
args = unknown,
|
70
|
-
> = {
|
71
|
-
args: args
|
72
|
-
authority: LocalAccount
|
73
|
-
} & GetExecutorParameter<account, Account | Address, false> &
|
74
|
-
GetChainParameter<chain, chainOverride>
|
75
|
-
|
76
|
-
export type InvokerSignErrorType =
|
77
|
-
| GetTransactionCountErrorType
|
78
|
-
| SignAuthMessageErrorType
|
79
|
-
| Keccak256ErrorType
|
80
|
-
| IsAddressEqualErrorType
|
81
|
-
| ErrorType
|
82
|
-
|
83
|
-
export type Invoker<
|
84
|
-
account extends Account | undefined = Account | undefined,
|
85
|
-
chain extends Chain | undefined = Chain | undefined,
|
86
|
-
args = unknown,
|
87
|
-
> = {
|
88
|
-
address: Address
|
89
|
-
execute<chainOverride extends Chain | undefined = undefined>(
|
90
|
-
parameters: InvokerExecuteParameters<account, chain, chainOverride, args>,
|
91
|
-
): Promise<Hex>
|
92
|
-
sign<chainOverride extends Chain | undefined = undefined>(
|
93
|
-
parameters: InvokerSignParameters<account, chain, chainOverride, args>,
|
94
|
-
): Promise<Hex>
|
95
|
-
}
|
96
|
-
|
97
|
-
export type GetInvokerParameters<
|
98
|
-
account extends Account | undefined = Account | undefined,
|
99
|
-
chain extends Chain | undefined = Chain | undefined,
|
100
|
-
args = unknown,
|
101
|
-
> = {
|
102
|
-
address: Address
|
103
|
-
client: Client<Transport, chain, account>
|
104
|
-
coder: InvokerCoder<args>
|
105
|
-
}
|
106
|
-
|
107
|
-
export type GetInvokerErrorType = ErrorType
|
108
|
-
|
109
|
-
export type InvokerArgs<invoker extends Invoker<any, any, any> = Invoker> =
|
110
|
-
invoker extends Invoker<any, any, infer args> ? args : unknown
|
111
|
-
|
112
|
-
export function getInvoker<
|
113
|
-
account extends Account | undefined,
|
114
|
-
chain extends Chain | undefined,
|
115
|
-
args,
|
116
|
-
>(
|
117
|
-
parameters: GetInvokerParameters<account, chain, args>,
|
118
|
-
): Invoker<account, chain, args> {
|
119
|
-
const { address, client, coder } = parameters
|
120
|
-
return {
|
121
|
-
address,
|
122
|
-
async execute(parameters) {
|
123
|
-
const {
|
124
|
-
executor: executor_ = client.account,
|
125
|
-
authority: authority_,
|
126
|
-
args,
|
127
|
-
chain = client.chain,
|
128
|
-
signature,
|
129
|
-
} = parameters
|
130
|
-
const authority = parseAccount(authority_!)
|
131
|
-
const executor = parseAccount(executor_!)
|
132
|
-
|
133
|
-
const execData = await coder.toExecData(args, {
|
134
|
-
authority: authority.address,
|
135
|
-
client,
|
136
|
-
invokerAddress: address,
|
137
|
-
})
|
138
|
-
|
139
|
-
const { r, s, yParity } = parseSignature(signature)
|
140
|
-
return getAction(
|
141
|
-
client,
|
142
|
-
writeContract,
|
143
|
-
'writeContract',
|
144
|
-
)({
|
145
|
-
abi: invokerAbi,
|
146
|
-
address,
|
147
|
-
account: executor,
|
148
|
-
chain,
|
149
|
-
functionName: 'execute',
|
150
|
-
args: [execData, { signer: authority.address, r, s, yParity }],
|
151
|
-
})
|
152
|
-
},
|
153
|
-
async sign(parameters) {
|
154
|
-
const {
|
155
|
-
args,
|
156
|
-
authority,
|
157
|
-
executor: executor_ = client.account,
|
158
|
-
chain = client.chain,
|
159
|
-
} = parameters
|
160
|
-
const executor = parseAccount(executor_!)
|
161
|
-
const [execData, nonce] = await Promise.all([
|
162
|
-
await coder.toExecData(args, {
|
163
|
-
authority: authority.address,
|
164
|
-
client,
|
165
|
-
invokerAddress: address,
|
166
|
-
}),
|
167
|
-
getAction(
|
168
|
-
client,
|
169
|
-
getTransactionCount,
|
170
|
-
'getTransactionCount',
|
171
|
-
)({
|
172
|
-
address: authority.address,
|
173
|
-
blockTag: 'pending',
|
174
|
-
}),
|
175
|
-
])
|
176
|
-
const signature = await getAction(
|
177
|
-
client,
|
178
|
-
signAuthMessage,
|
179
|
-
'signAuthMessage',
|
180
|
-
)({
|
181
|
-
account: authority,
|
182
|
-
chain,
|
183
|
-
commit: keccak256(execData),
|
184
|
-
invokerAddress: address,
|
185
|
-
nonce: isAddressEqual(authority.address, executor.address)
|
186
|
-
? nonce + 1
|
187
|
-
: nonce,
|
188
|
-
})
|
189
|
-
return signature
|
190
|
-
},
|
191
|
-
}
|
192
|
-
}
|
@@ -1,29 +0,0 @@
|
|
1
|
-
import type { Address } from 'abitype'
|
2
|
-
|
3
|
-
import type { ByteArray, Hex, Signature } from '../../../types/misc.js'
|
4
|
-
|
5
|
-
import type { ErrorType } from '../../../errors/utils.js'
|
6
|
-
import { keccak256 } from '../../../utils/hash/keccak256.js'
|
7
|
-
import {
|
8
|
-
type RecoverAddressErrorType,
|
9
|
-
recoverAddress,
|
10
|
-
} from '../../../utils/signature/recoverAddress.js'
|
11
|
-
import { type ToAuthMessageParameters, toAuthMessage } from './toAuthMessage.js'
|
12
|
-
|
13
|
-
export type RecoverAuthMessageAddressParameters = ToAuthMessageParameters & {
|
14
|
-
signature: Hex | ByteArray | Signature
|
15
|
-
}
|
16
|
-
|
17
|
-
export type RecoverAuthMessageAddressReturnType = Address
|
18
|
-
|
19
|
-
export type RecoverAuthMessageAddressErrorType =
|
20
|
-
| RecoverAddressErrorType
|
21
|
-
| ErrorType
|
22
|
-
|
23
|
-
export async function recoverAuthMessageAddress({
|
24
|
-
signature,
|
25
|
-
...parameters
|
26
|
-
}: RecoverAuthMessageAddressParameters): Promise<RecoverAuthMessageAddressReturnType> {
|
27
|
-
const hash = keccak256(toAuthMessage(parameters))
|
28
|
-
return recoverAddress({ hash, signature })
|
29
|
-
}
|
@@ -1,40 +0,0 @@
|
|
1
|
-
import { type SignErrorType, sign } from '../../../accounts/utils/sign.js'
|
2
|
-
import type { ErrorType } from '../../../errors/utils.js'
|
3
|
-
import type { Hex } from '../../../types/misc.js'
|
4
|
-
import { keccak256 } from '../../../utils/hash/keccak256.js'
|
5
|
-
import {
|
6
|
-
type SerializeSignatureErrorType,
|
7
|
-
serializeSignature,
|
8
|
-
} from '../../../utils/signature/serializeSignature.js'
|
9
|
-
import {
|
10
|
-
type ToAuthMessageErrorType,
|
11
|
-
type ToAuthMessageParameters,
|
12
|
-
toAuthMessage,
|
13
|
-
} from './toAuthMessage.js'
|
14
|
-
|
15
|
-
export type SignAuthMessageParameters = ToAuthMessageParameters & {
|
16
|
-
/** The private key to sign with. */
|
17
|
-
privateKey: Hex
|
18
|
-
}
|
19
|
-
|
20
|
-
export type SignAuthMessageReturnType = Hex
|
21
|
-
|
22
|
-
export type SignAuthMessageErrorType =
|
23
|
-
| SignErrorType
|
24
|
-
| ToAuthMessageErrorType
|
25
|
-
| SerializeSignatureErrorType
|
26
|
-
| ErrorType
|
27
|
-
|
28
|
-
/**
|
29
|
-
* Computes a EIP-3074 authorization signature in format: `keccak256(MAGIC || chainId || nonce || invokerAddress || commit))`.
|
30
|
-
*/
|
31
|
-
export async function signAuthMessage(
|
32
|
-
parameters: SignAuthMessageParameters,
|
33
|
-
): Promise<SignAuthMessageReturnType> {
|
34
|
-
const { privateKey } = parameters
|
35
|
-
const signature = await sign({
|
36
|
-
hash: keccak256(toAuthMessage(parameters)),
|
37
|
-
privateKey,
|
38
|
-
})
|
39
|
-
return serializeSignature(signature)
|
40
|
-
}
|