@owlprotocol/contracts-account-abstraction
Version:
ERC4337 Account Abstraction support for deploying relevant smart contracts and interacting with UserOps.
103 lines (102 loc) • 3.88 kB
JavaScript
const INonceManager = {
compiler: {
version: "0.8.23+commit.f704f362"
},
language: "Solidity",
output: {
abi: [
{
inputs: [
{
internalType: "address",
name: "sender",
type: "address"
},
{
internalType: "uint192",
name: "key",
type: "uint192"
}
],
name: "getNonce",
outputs: [
{
internalType: "uint256",
name: "nonce",
type: "uint256"
}
],
stateMutability: "view",
type: "function"
},
{
inputs: [
{
internalType: "uint192",
name: "key",
type: "uint192"
}
],
name: "incrementNonce",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}
],
devdoc: {
kind: "dev",
methods: {
"getNonce(address,uint192)": {
params: {
key: "the high 192 bit of the nonce",
sender: "the account address"
},
returns: {
nonce: "a full nonce to pass for next UserOp with this sender."
}
}
},
version: 1
},
userdoc: {
kind: "user",
methods: {
"getNonce(address,uint192)": {
notice: "Return the next nonce for this sender. Within a given key, the nonce values are sequenced (starting with zero, and incremented by one on each userop) But UserOp with different keys can come with arbitrary order."
},
"incrementNonce(uint192)": {
notice: 'Manually increment the nonce of the sender. This method is exposed just for completeness.. Account does NOT need to call it, neither during validation, nor elsewhere, as the EntryPoint will update the nonce regardless. Possible use-case is call it with various keys to "initialize" their nonces to one, so that future UserOperations will not pay extra for the first transaction with a given key.'
}
},
version: 1
}
},
settings: {
compilationTarget: {
"@account-abstraction/contracts/interfaces/INonceManager.sol": "INonceManager"
},
evmVersion: "paris",
libraries: {},
metadata: {
bytecodeHash: "ipfs",
useLiteralContent: true
},
optimizer: {
enabled: true,
runs: 1e6
},
remappings: [],
viaIR: true
},
sources: {
"@account-abstraction/contracts/interfaces/INonceManager.sol": {
content: '// SPDX-License-Identifier: GPL-3.0\npragma solidity >=0.7.5;\n\ninterface INonceManager {\n\n /**\n * Return the next nonce for this sender.\n * Within a given key, the nonce values are sequenced (starting with zero, and incremented by one on each userop)\n * But UserOp with different keys can come with arbitrary order.\n *\n * @param sender the account address\n * @param key the high 192 bit of the nonce\n * @return nonce a full nonce to pass for next UserOp with this sender.\n */\n function getNonce(address sender, uint192 key)\n external view returns (uint256 nonce);\n\n /**\n * Manually increment the nonce of the sender.\n * This method is exposed just for completeness..\n * Account does NOT need to call it, neither during validation, nor elsewhere,\n * as the EntryPoint will update the nonce regardless.\n * Possible use-case is call it with various keys to "initialize" their nonces to one, so that future\n * UserOperations will not pay extra for the first transaction with a given key.\n */\n function incrementNonce(uint192 key) external;\n}\n',
keccak256: "0xd575af0f6ebbd5f0b2933307d44cd7b4e03a69f4b817a67db5409bd3c89aeecb",
license: "GPL-3.0"
}
},
version: 1
};
export {
INonceManager
};