@river-build/generated
Version:
## How to generate contract types
727 lines • 22 kB
JSON
{
"compiler": {
"version": "0.8.24+commit.e11b9ed9"
},
"language": "Solidity",
"output": {
"abi": [
{
"inputs": [],
"type": "error",
"name": "ECDSAInvalidSignature"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "length",
"type": "uint256"
}
],
"type": "error",
"name": "ECDSAInvalidSignatureLength"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "s",
"type": "bytes32"
}
],
"type": "error",
"name": "ECDSAInvalidSignatureS"
},
{
"inputs": [],
"type": "error",
"name": "Initializable_InInitializingState"
},
{
"inputs": [],
"type": "error",
"name": "Initializable_NotInInitializingState"
},
{
"inputs": [],
"type": "error",
"name": "Introspection_AlreadySupported"
},
{
"inputs": [],
"type": "error",
"name": "Introspection_NotSupported"
},
{
"inputs": [
{
"internalType": "address",
"name": "account",
"type": "address"
},
{
"internalType": "uint256",
"name": "currentNonce",
"type": "uint256"
}
],
"type": "error",
"name": "InvalidAccountNonce"
},
{
"inputs": [
{
"internalType": "address",
"name": "wallet",
"type": "address"
},
{
"internalType": "address",
"name": "rootKey",
"type": "address"
}
],
"type": "error",
"name": "WalletLink__CannotLinkToRootWallet"
},
{
"inputs": [],
"type": "error",
"name": "WalletLink__CannotLinkToSelf"
},
{
"inputs": [],
"type": "error",
"name": "WalletLink__CannotRemoveRootWallet"
},
{
"inputs": [],
"type": "error",
"name": "WalletLink__InvalidAddress"
},
{
"inputs": [],
"type": "error",
"name": "WalletLink__InvalidSignature"
},
{
"inputs": [
{
"internalType": "address",
"name": "wallet",
"type": "address"
},
{
"internalType": "address",
"name": "rootKey",
"type": "address"
}
],
"type": "error",
"name": "WalletLink__LinkAlreadyExists"
},
{
"inputs": [
{
"internalType": "address",
"name": "wallet",
"type": "address"
},
{
"internalType": "address",
"name": "rootKey",
"type": "address"
}
],
"type": "error",
"name": "WalletLink__LinkedToAnotherRootKey"
},
{
"inputs": [
{
"internalType": "address",
"name": "wallet",
"type": "address"
},
{
"internalType": "address",
"name": "rootKey",
"type": "address"
}
],
"type": "error",
"name": "WalletLink__NotLinked"
},
{
"inputs": [
{
"internalType": "uint32",
"name": "version",
"type": "uint32",
"indexed": false
}
],
"type": "event",
"name": "Initialized",
"anonymous": false
},
{
"inputs": [
{
"internalType": "bytes4",
"name": "interfaceId",
"type": "bytes4",
"indexed": true
}
],
"type": "event",
"name": "InterfaceAdded",
"anonymous": false
},
{
"inputs": [
{
"internalType": "bytes4",
"name": "interfaceId",
"type": "bytes4",
"indexed": true
}
],
"type": "event",
"name": "InterfaceRemoved",
"anonymous": false
},
{
"inputs": [
{
"internalType": "address",
"name": "wallet",
"type": "address",
"indexed": true
},
{
"internalType": "address",
"name": "rootKey",
"type": "address",
"indexed": true
}
],
"type": "event",
"name": "LinkWalletToRootKey",
"anonymous": false
},
{
"inputs": [
{
"internalType": "address",
"name": "wallet",
"type": "address",
"indexed": true
},
{
"internalType": "address",
"name": "secondWallet",
"type": "address",
"indexed": true
}
],
"type": "event",
"name": "RemoveLink",
"anonymous": false
},
{
"inputs": [],
"stateMutability": "nonpayable",
"type": "function",
"name": "__WalletLink_init"
},
{
"inputs": [
{
"internalType": "address",
"name": "rootKey",
"type": "address"
},
{
"internalType": "address",
"name": "wallet",
"type": "address"
}
],
"stateMutability": "view",
"type": "function",
"name": "checkIfLinked",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
]
},
{
"inputs": [
{
"internalType": "address",
"name": "rootKey",
"type": "address"
}
],
"stateMutability": "view",
"type": "function",
"name": "getLatestNonceForRootKey",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
]
},
{
"inputs": [
{
"internalType": "address",
"name": "wallet",
"type": "address"
}
],
"stateMutability": "view",
"type": "function",
"name": "getRootKeyForWallet",
"outputs": [
{
"internalType": "address",
"name": "rootKey",
"type": "address"
}
]
},
{
"inputs": [
{
"internalType": "address",
"name": "rootKey",
"type": "address"
}
],
"stateMutability": "view",
"type": "function",
"name": "getWalletsByRootKey",
"outputs": [
{
"internalType": "address[]",
"name": "wallets",
"type": "address[]"
}
]
},
{
"inputs": [
{
"internalType": "struct IWalletLinkBase.LinkedWallet",
"name": "rootWallet",
"type": "tuple",
"components": [
{
"internalType": "address",
"name": "addr",
"type": "address"
},
{
"internalType": "bytes",
"name": "signature",
"type": "bytes"
},
{
"internalType": "string",
"name": "message",
"type": "string"
}
]
},
{
"internalType": "uint256",
"name": "nonce",
"type": "uint256"
}
],
"stateMutability": "nonpayable",
"type": "function",
"name": "linkCallerToRootKey"
},
{
"inputs": [
{
"internalType": "struct IWalletLinkBase.LinkedWallet",
"name": "wallet",
"type": "tuple",
"components": [
{
"internalType": "address",
"name": "addr",
"type": "address"
},
{
"internalType": "bytes",
"name": "signature",
"type": "bytes"
},
{
"internalType": "string",
"name": "message",
"type": "string"
}
]
},
{
"internalType": "struct IWalletLinkBase.LinkedWallet",
"name": "rootWallet",
"type": "tuple",
"components": [
{
"internalType": "address",
"name": "addr",
"type": "address"
},
{
"internalType": "bytes",
"name": "signature",
"type": "bytes"
},
{
"internalType": "string",
"name": "message",
"type": "string"
}
]
},
{
"internalType": "uint256",
"name": "nonce",
"type": "uint256"
}
],
"stateMutability": "nonpayable",
"type": "function",
"name": "linkWalletToRootKey"
},
{
"inputs": [
{
"internalType": "address",
"name": "wallet",
"type": "address"
},
{
"internalType": "struct IWalletLinkBase.LinkedWallet",
"name": "rootWallet",
"type": "tuple",
"components": [
{
"internalType": "address",
"name": "addr",
"type": "address"
},
{
"internalType": "bytes",
"name": "signature",
"type": "bytes"
},
{
"internalType": "string",
"name": "message",
"type": "string"
}
]
},
{
"internalType": "uint256",
"name": "nonce",
"type": "uint256"
}
],
"stateMutability": "nonpayable",
"type": "function",
"name": "removeLink"
}
],
"devdoc": {
"kind": "dev",
"methods": {
"checkIfLinked(address,address)": {
"params": {
"rootKey": "the public key of the users rootkey to check",
"wallet": "the ethereum wallet to check"
},
"returns": {
"_0": "areLinked boolean if they are linked together"
}
},
"getLatestNonceForRootKey(address)": {
"params": {
"rootKey": "the public key of the users rootkey to check"
}
},
"getRootKeyForWallet(address)": {
"params": {
"wallet": "the ethereum wallet to find associated root key for"
},
"returns": {
"rootKey": "the rootkey that this wallet is linked to"
}
},
"getWalletsByRootKey(address)": {
"params": {
"rootKey": "the public key of the users rootkey to find associated wallets for"
},
"returns": {
"wallets": "an array of ethereum wallets linked to this root key"
}
},
"linkCallerToRootKey((address,bytes,string),uint256)": {
"params": {
"nonce": "a nonce used to prevent replay attacks, nonce must always be higher than previous nonce",
"rootWallet": "the root wallet that the caller is linking to"
}
},
"linkWalletToRootKey((address,bytes,string),(address,bytes,string),uint256)": {
"params": {
"nonce": "a nonce used to prevent replay attacks, nonce must always be higher than previous nonce",
"rootWallet": "the root wallet that the caller is linking to",
"wallet": "the wallet being linked to the root wallet"
}
},
"removeLink(address,(address,bytes,string),uint256)": {
"params": {
"wallet": "the wallet being unlinked from the sending wallet"
}
}
},
"version": 1
},
"userdoc": {
"kind": "user",
"methods": {
"checkIfLinked(address,address)": {
"notice": "checks if a root key and wallet are linked"
},
"getLatestNonceForRootKey(address)": {
"notice": "gets the latest nonce for a rootkey to use a higher one for next link action"
},
"getRootKeyForWallet(address)": {
"notice": "Returns the root key for a given wallet"
},
"getWalletsByRootKey(address)": {
"notice": "Returns all wallets linked to a root key"
},
"linkCallerToRootKey((address,bytes,string),uint256)": {
"notice": "Link caller wallet to a root wallet"
},
"linkWalletToRootKey((address,bytes,string),(address,bytes,string),uint256)": {
"notice": "Link a wallet to a root wallet"
},
"removeLink(address,(address,bytes,string),uint256)": {
"notice": "Called via the rootkey signing a message to a remove a wallet from itself"
}
},
"version": 1
}
},
"settings": {
"remappings": [
"@openzeppelin/=lib/@openzeppelin/",
"@prb/math/=lib/@prb/math/src/",
"@prb/test/=lib/@prb/test/src/",
"account-abstraction/=lib/account-abstraction/contracts/",
"base64/=lib/base64/",
"ds-test/=lib/ds-test/src/",
"forge-std/=lib/forge-std/src/",
"hardhat-deploy/=lib/hardhat-deploy/"
],
"optimizer": {
"enabled": true,
"runs": 200
},
"metadata": {
"bytecodeHash": "none",
"appendCBOR": false
},
"compilationTarget": {
"contracts/src/factory/facets/wallet-link/WalletLink.sol": "WalletLink"
},
"evmVersion": "paris",
"libraries": {}
},
"sources": {
"contracts/src/diamond/facets/Facet.sol": {
"keccak256": "0x931702541a5e4a2756665e53baf1b04aa0418d5a9c635e519058905e21ae0c57",
"urls": [
"bzz-raw://b785043acac69be2d2545bc4492b2c08b6e931a53737f8508baf3f98c8743863",
"dweb:/ipfs/QmeLzqURWDmXHJftmMXRsywdJw96CNDB9DQmgTpG1woYvc"
],
"license": "MIT"
},
"contracts/src/diamond/facets/initializable/Initializable.sol": {
"keccak256": "0xe02e99665b5acb22d5c508c3bda97c35acd2597ce0a58569a19cc12f0010da90",
"urls": [
"bzz-raw://b586a51dbe63e8763ae0b2b3dadd5c8559f47bc8cbaa0e9fe52aaec4c3677552",
"dweb:/ipfs/QmRtaVikg6YDwzUAtY7WV793taZgT1ZxyMB4PLAEqGBeCC"
],
"license": "MIT"
},
"contracts/src/diamond/facets/initializable/InitializableStorage.sol": {
"keccak256": "0xf8170e6977d685c218f65185478fbb9916e64f63aab1dcd195056438466f458a",
"urls": [
"bzz-raw://83ea3cf77f012eef93d10593e3beded36b449611063fd8dfbdb44e4346f87eb4",
"dweb:/ipfs/QmVasL7QnxXEmiUsLJzpfig8717zLUhZfyQxiBbFGDEVVg"
],
"license": "MIT"
},
"contracts/src/diamond/facets/introspection/IERC165.sol": {
"keccak256": "0x486758ee326820b0dd468c6a7a90fda8d67d48d3114792c587cee0e8417b366b",
"urls": [
"bzz-raw://b695090abcec8c2d487d73961265030fa4f64ecd84f6d80b85c6c7d4d9142ea0",
"dweb:/ipfs/QmQTKuV2WEoy6vTCRxL39zEqubLUf9NhoC2BGB19CiYqRq"
],
"license": "MIT"
},
"contracts/src/diamond/facets/introspection/IntrospectionBase.sol": {
"keccak256": "0x93ac0d2f738615e69dbcfd5fa6ac5840ec48329ac92094605638bcf2abd6708f",
"urls": [
"bzz-raw://fbcb2cd0e47b6ef39bec6cbdeedf6e292e8849d4e25f4bb6c72ee574446b02f1",
"dweb:/ipfs/QmcDwxFALaQBLbsGsjdttkQkE48PdKWq43XY7f34MxqZSw"
],
"license": "MIT"
},
"contracts/src/diamond/facets/introspection/IntrospectionStorage.sol": {
"keccak256": "0x306f41ef86bc5050a28c1dbf855d3f6f623be4aebc0a0f96474dae85979f7763",
"urls": [
"bzz-raw://dbad6f8e6685690ae75f6c9066972a45400b45307245feab8990af18a4c38e91",
"dweb:/ipfs/QmcTUqiSL1z2nwokpNNsXQkjVTaFdFJiM2exguZpPDDXEM"
],
"license": "MIT"
},
"contracts/src/diamond/utils/Nonces.sol": {
"keccak256": "0xba683e7b1dc9bc812c0c33ce7efb8e7505a881ee475b8ef2230af11377418732",
"urls": [
"bzz-raw://69408950cf9d4fb74bbf79e475d338363ca4f7a492de5827b3f93a02da443732",
"dweb:/ipfs/QmT6nt6Dpp2stTjCDEzepf6unVE7bcetXdshPnwmJFfXaf"
],
"license": "MIT"
},
"contracts/src/diamond/utils/cryptography/signature/EIP712Base.sol": {
"keccak256": "0x3952f98ed8e38a9c4a75df2e11f9fb65ac29d6c2963753ac0ed98bb4ba7d8de4",
"urls": [
"bzz-raw://c8167058af0cd35f15d6e03c244eac13366d8098d12320dc67324fe8bd0daf83",
"dweb:/ipfs/QmcFJFFjrm4ZRrxoGJhWNCivZZA4hnfFicfvVgUM4asjxK"
],
"license": "Apache-2.0"
},
"contracts/src/diamond/utils/cryptography/signature/EIP712Storage.sol": {
"keccak256": "0x49e82a68b9a9cfd426efbb27bed2d64d39db6d6dd51cb7b55fc881934c034044",
"urls": [
"bzz-raw://0435aa66310d37b856fb6244cb427bc7e93f163d4222105f6714ca9b1c2f8fdb",
"dweb:/ipfs/QmcNdSVZ45s3BR76tMBcdnVN6qhEdjYbEPXPSH7EtbNonQ"
],
"license": "MIT"
},
"contracts/src/factory/facets/wallet-link/IWalletLink.sol": {
"keccak256": "0x1c9084570c24d5297c09ae2ced5a7cc74b0d4525d82c50ab4837073d371492ee",
"urls": [
"bzz-raw://c5a554705b2dd0483babbb512ac97bdfc24dfc9c0bc5ea80c6781c056fd03df0",
"dweb:/ipfs/QmNdURhnWUeSs5294Puz2FZq2bRikgPgfi4oNppd6pJSH5"
],
"license": "MIT"
},
"contracts/src/factory/facets/wallet-link/WalletLink.sol": {
"keccak256": "0x4166d180ac3f6a1685bf58c215ae54da63951e5e313bae678dfc41d2e32f8a3d",
"urls": [
"bzz-raw://ec32743e989724e95ceb3948cb5aafe33d0d572548046cd9b7739d6de3c68643",
"dweb:/ipfs/QmUPafHY6nsnFKJZ65R1qFCjC7wTJdjN7jETR7xMJGYFQo"
],
"license": "MIT"
},
"contracts/src/factory/facets/wallet-link/WalletLinkBase.sol": {
"keccak256": "0xf7337660ec563b4efa2e696e4d3dc9d6f649add0c227e1683be26209bdd2923a",
"urls": [
"bzz-raw://2205c012cf98e4f1965b028269f6e949aa203b938208f8c962bda96845759508",
"dweb:/ipfs/QmcKcz4BRmofobLWLdvUAjS5bsMbuNpcDVm8vz2iNKsujf"
],
"license": "MIT"
},
"contracts/src/factory/facets/wallet-link/WalletLinkStorage.sol": {
"keccak256": "0xd3d9dc249b35a7ddee3059f7d2bbb5252fdb5e335132eb8089c68e0b25a539cb",
"urls": [
"bzz-raw://f8a4b35972a333c56ddae4196fd7bbb9130a79b031787788882fc7e3725c314c",
"dweb:/ipfs/QmSb3jprfkFZQxhgMvMJh684wUernTWLztnRagBUx17k2o"
],
"license": "MIT"
},
"lib/@openzeppelin/contracts/utils/Address.sol": {
"keccak256": "0xaf28a975a78550e45f65e559a3ad6a5ad43b9b8a37366999abd1b7084eb70721",
"urls": [
"bzz-raw://b7bd24e224f67f65bfadf85dc2929fa965456bb2415478bd0125471b5ce35245",
"dweb:/ipfs/QmRaydGr8BTHs1kvaZfsNU69pKzUAGFrvABn1KiRSbE51y"
],
"license": "MIT"
},
"lib/@openzeppelin/contracts/utils/Strings.sol": {
"keccak256": "0x55f102ea785d8399c0e58d1108e2d289506dde18abc6db1b7f68c1f9f9bc5792",
"urls": [
"bzz-raw://6e52e0a7765c943ef14e5bcf11e46e6139fa044be564881378349236bf2e3453",
"dweb:/ipfs/QmZEeeXoFPW47amyP35gfzomF9DixqqTEPwzBakv6cZw6i"
],
"license": "MIT"
},
"lib/@openzeppelin/contracts/utils/cryptography/ECDSA.sol": {
"keccak256": "0xeed0a08b0b091f528356cbc7245891a4c748682d4f6a18055e8e6ca77d12a6cf",
"urls": [
"bzz-raw://ba80ba06c8e6be852847e4c5f4492cef801feb6558ae09ed705ff2e04ea8b13c",
"dweb:/ipfs/QmXRJDv3xHLVQCVXg1ZvR35QS9sij5y9NDWYzMfUfAdTHF"
],
"license": "MIT"
},
"lib/@openzeppelin/contracts/utils/cryptography/MessageHashUtils.sol": {
"keccak256": "0xba333517a3add42cd35fe877656fc3dfcc9de53baa4f3aabbd6d12a92e4ea435",
"urls": [
"bzz-raw://2ceacff44c0fdc81e48e0e0b1db87a2076d3c1fb497341de077bf1da9f6b406c",
"dweb:/ipfs/QmRUo1muMRAewxrKQ7TkXUtknyRoR57AyEkoPpiuZQ8FzX"
],
"license": "MIT"
},
"lib/@openzeppelin/contracts/utils/introspection/IERC165.sol": {
"keccak256": "0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b",
"urls": [
"bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df",
"dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL"
],
"license": "MIT"
},
"lib/@openzeppelin/contracts/utils/math/Math.sol": {
"keccak256": "0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d",
"urls": [
"bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875",
"dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L"
],
"license": "MIT"
},
"lib/@openzeppelin/contracts/utils/math/SignedMath.sol": {
"keccak256": "0x5f7e4076e175393767754387c962926577f1660dd9b810187b9002407656be72",
"urls": [
"bzz-raw://7d533a1c97cd43a57cd9c465f7ee8dd0e39ae93a8fb8ff8e5303a356b081cdcc",
"dweb:/ipfs/QmVBEei6aTnvYNZp2CHYVNKyZS4q1KkjANfY39WVXZXVoT"
],
"license": "MIT"
},
"lib/@openzeppelin/contracts/utils/structs/EnumerableSet.sol": {
"keccak256": "0x86c1470cbfd878491e5de030072b647352d36bd27122cffb928970b1945282aa",
"urls": [
"bzz-raw://ad85dd393ee0a1917c57046abc5155f51f77844b2c6a42c05c1b8dd26d6ff3c1",
"dweb:/ipfs/QmNqYc8To2NdnpP6E1tGz7t6A7beuENde5yovwov5pW1fA"
],
"license": "MIT"
}
},
"version": 1
}