UNPKG

@uniswap/v4-periphery

Version:

🦄 Peripheral smart contracts for interacting with Uniswap v4

1 lines • 11.7 kB
{"abi":[{"type":"function","name":"batchSpendNonces","inputs":[{"name":"wordPos","type":"uint256","internalType":"uint256"},{"name":"mask","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"nonces","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"word","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"bitmap","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"revokeNonce","inputs":[{"name":"nonce","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"spendNonce","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"nonce","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"error","name":"NonceAlreadyUsed","inputs":[]}],"bytecode":{"object":"0x6080604052348015600e575f80fd5b506102238061001c5f395ff3fe60806040526004361061003e575f3560e01c806305c1ee2014610042578063502e1a1614610057578063d21f4a291461009c578063d8b2a514146100d8575b5f80fd5b61005561005036600461019d565b6100f7565b005b348015610062575f80fd5b5061008a6100713660046101b4565b5f60208181529281526040808220909352908152205481565b60405190815260200160405180910390f35b3480156100a7575f80fd5b506100556100b63660046101f6565b335f908152602081815260408083209483529390529190912080549091179055565b3480156100e3575f80fd5b506100556100f23660046101b4565b610104565b6101013382610112565b50565b61010e8282610112565b5050565b73ffffffffffffffffffffffffffffffffffffffff82165f90815260208181526040808320600885901c808552925282208054600160ff861690811b9182189283905592939091908183169003610195576040517f1fb09b8000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505050505050565b5f602082840312156101ad575f80fd5b5035919050565b5f80604083850312156101c5575f80fd5b823573ffffffffffffffffffffffffffffffffffffffff811681146101e8575f80fd5b946020939093013593505050565b5f8060408385031215610207575f80fd5b5050803592602090910135915056fea164736f6c634300081a000a","sourceMap":"125:352:228:-:0;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361061003e575f3560e01c806305c1ee2014610042578063502e1a1614610057578063d21f4a291461009c578063d8b2a514146100d8575b5f80fd5b61005561005036600461019d565b6100f7565b005b348015610062575f80fd5b5061008a6100713660046101b4565b5f60208181529281526040808220909352908152205481565b60405190815260200160405180910390f35b3480156100a7575f80fd5b506100556100b63660046101f6565b335f908152602081815260408083209483529390529190912080549091179055565b3480156100e3575f80fd5b506100556100f23660046101b4565b610104565b6101013382610112565b50565b61010e8282610112565b5050565b73ffffffffffffffffffffffffffffffffffffffff82165f90815260208181526040808320600885901c808552925282208054600160ff861690811b9182189283905592939091908183169003610195576040517f1fb09b8000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505050505050565b5f602082840312156101ad575f80fd5b5035919050565b5f80604083850312156101c5575f80fd5b823573ffffffffffffffffffffffffffffffffffffffff811681146101e8575f80fd5b946020939093013593505050565b5f8060408385031215610207575f80fd5b5050803592602090910135915056fea164736f6c634300081a000a","sourceMap":"125:352:228:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1006:107:149;;;;;;:::i;:::-;;:::i;:::-;;317:79;;;;;;;;;;-1:-1:-1;317:79:149;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;825:25:262;;;813:2;798:18;317:79:149;;;;;;;357:118:228;;;;;;;;;;-1:-1:-1;357:118:228;;;;;:::i;:::-;440:10;433:6;:18;;;;;;;;;;;:27;;;;;;;;;;:35;;;;;;;357:118;177:108;;;;;;;;;;-1:-1:-1;177:108:228;;;;;:::i;:::-;;:::i;1006:107:149:-;1069:37;1088:10;1100:5;1069:18;:37::i;:::-;1006:107;:::o;177:108:228:-;246:32;265:5;272;246:18;:32::i;:::-;177:108;;:::o;661:303:149:-;869:13;;;738:15;869:13;;;;;;;;;;;765:1;756:10;;;869:22;;;;;;;:29;;830:1;776:29;;;830:11;;;869:29;;;;;;;756:10;;830:11;;869:29;912:13;;;:18;;908:49;;939:18;;;;;;;;;;;;;;908:49;728:236;;;;661:303;;:::o;14:226:262:-;73:6;126:2;114:9;105:7;101:23;97:32;94:52;;;142:1;139;132:12;94:52;-1:-1:-1;187:23:262;;14:226;-1:-1:-1;14:226:262:o;245:429::-;313:6;321;374:2;362:9;353:7;349:23;345:32;342:52;;;390:1;387;380:12;342:52;429:9;416:23;479:42;472:5;468:54;461:5;458:65;448:93;;537:1;534;527:12;448:93;560:5;638:2;623:18;;;;610:32;;-1:-1:-1;;;245:429:262:o;861:346::-;929:6;937;990:2;978:9;969:7;965:23;961:32;958:52;;;1006:1;1003;996:12;958:52;-1:-1:-1;;1051:23:262;;;1171:2;1156:18;;;1143:32;;-1:-1:-1;861:346:262:o","linkReferences":{}},"methodIdentifiers":{"batchSpendNonces(uint256,uint256)":"d21f4a29","nonces(address,uint256)":"502e1a16","revokeNonce(uint256)":"05c1ee20","spendNonce(address,uint256)":"d8b2a514"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"NonceAlreadyUsed\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"wordPos\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"mask\",\"type\":\"uint256\"}],\"name\":\"batchSpendNonces\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"word\",\"type\":\"uint256\"}],\"name\":\"nonces\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"bitmap\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"}],\"name\":\"revokeNonce\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"}],\"name\":\"spendNonce\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"batchSpendNonces(uint256,uint256)\":{\"details\":\"Bulk-spend nonces on a single word. FOR TESTING ONLY\"},\"revokeNonce(uint256)\":{\"details\":\"Used in cases where a valid nonce has not been broadcasted onchain, and the owner wants to revoke the validity of the noncepayable so it can be multicalled with native-token related actions\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"nonces(address,uint256)\":{\"notice\":\"mapping of nonces consumed by each address, where a nonce is a single bit on the 256-bit bitmap\"},\"revokeNonce(uint256)\":{\"notice\":\"Revoke a nonce by spending it, preventing it from being used again\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"test/mocks/MockUnorderedNonce.sol\":\"MockUnorderedNonce\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":44444444},\"remappings\":[\":@ensdomains/=lib/v4-core/node_modules/@ensdomains/\",\":@openzeppelin/=lib/v4-core/lib/openzeppelin-contracts/\",\":@uniswap/v4-core/=lib/v4-core/\",\":ds-test/=lib/v4-core/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/v4-core/lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-gas-snapshot/=lib/permit2/lib/forge-gas-snapshot/src/\",\":forge-std/=lib/v4-core/lib/forge-std/src/\",\":hardhat/=lib/v4-core/node_modules/hardhat/\",\":openzeppelin-contracts/=lib/v4-core/lib/openzeppelin-contracts/\",\":permit2/=lib/permit2/\",\":solmate/=lib/v4-core/lib/solmate/\",\":v4-core/=lib/v4-core/src/\"]},\"sources\":{\"src/base/UnorderedNonce.sol\":{\"keccak256\":\"0x0ec175bf2213d75606ebb770227e8622ae9666fbde8ff2d1682d85890b81676e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://079952902a4be56b5e963585349988fcbea853bf8271a5cb88e7629cafb06bcf\",\"dweb:/ipfs/Qmere81cd2Wq9Vq4rL5G1nW4Jv54YJeMr1oaej7468xrgi\"]},\"src/interfaces/IUnorderedNonce.sol\":{\"keccak256\":\"0xd7f32fee74dc7d1a3b078ca1263961baccaa6bf434c79e8fe0e092e30c3e0ec3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e7d1e92d89d5f49c84aa82f3b259678c2c97a4473b22d753ca4411a6b0cec36d\",\"dweb:/ipfs/QmNZoQyminStaAdaLqoDLoWaBU5QWrWjXFjmBm4aFhzL8i\"]},\"test/mocks/MockUnorderedNonce.sol\":{\"keccak256\":\"0x28a9ea13f7f756268694a7bfdd1edc25a311be3bb93cb4660e257574412e0ffd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9eac3f539d7aa0f87ac7a3141096d2509af1670371a1c90a5f49284c8fa118a8\",\"dweb:/ipfs/QmR5SjVZU6vVaakN7xuEnGHATVvGSLr8t5iwcTBZcfu7iF\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.26+commit.8a97fa7a"},"language":"Solidity","output":{"abi":[{"inputs":[],"type":"error","name":"NonceAlreadyUsed"},{"inputs":[{"internalType":"uint256","name":"wordPos","type":"uint256"},{"internalType":"uint256","name":"mask","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"batchSpendNonces"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"uint256","name":"word","type":"uint256"}],"stateMutability":"view","type":"function","name":"nonces","outputs":[{"internalType":"uint256","name":"bitmap","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"nonce","type":"uint256"}],"stateMutability":"payable","type":"function","name":"revokeNonce"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"spendNonce"}],"devdoc":{"kind":"dev","methods":{"batchSpendNonces(uint256,uint256)":{"details":"Bulk-spend nonces on a single word. FOR TESTING ONLY"},"revokeNonce(uint256)":{"details":"Used in cases where a valid nonce has not been broadcasted onchain, and the owner wants to revoke the validity of the noncepayable so it can be multicalled with native-token related actions"}},"version":1},"userdoc":{"kind":"user","methods":{"nonces(address,uint256)":{"notice":"mapping of nonces consumed by each address, where a nonce is a single bit on the 256-bit bitmap"},"revokeNonce(uint256)":{"notice":"Revoke a nonce by spending it, preventing it from being used again"}},"version":1}},"settings":{"remappings":["@ensdomains/=lib/v4-core/node_modules/@ensdomains/","@openzeppelin/=lib/v4-core/lib/openzeppelin-contracts/","@uniswap/v4-core/=lib/v4-core/","ds-test/=lib/v4-core/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/v4-core/lib/openzeppelin-contracts/lib/erc4626-tests/","forge-gas-snapshot/=lib/permit2/lib/forge-gas-snapshot/src/","forge-std/=lib/v4-core/lib/forge-std/src/","hardhat/=lib/v4-core/node_modules/hardhat/","openzeppelin-contracts/=lib/v4-core/lib/openzeppelin-contracts/","permit2/=lib/permit2/","solmate/=lib/v4-core/lib/solmate/","v4-core/=lib/v4-core/src/"],"optimizer":{"enabled":true,"runs":44444444},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"test/mocks/MockUnorderedNonce.sol":"MockUnorderedNonce"},"evmVersion":"cancun","libraries":{}},"sources":{"src/base/UnorderedNonce.sol":{"keccak256":"0x0ec175bf2213d75606ebb770227e8622ae9666fbde8ff2d1682d85890b81676e","urls":["bzz-raw://079952902a4be56b5e963585349988fcbea853bf8271a5cb88e7629cafb06bcf","dweb:/ipfs/Qmere81cd2Wq9Vq4rL5G1nW4Jv54YJeMr1oaej7468xrgi"],"license":"MIT"},"src/interfaces/IUnorderedNonce.sol":{"keccak256":"0xd7f32fee74dc7d1a3b078ca1263961baccaa6bf434c79e8fe0e092e30c3e0ec3","urls":["bzz-raw://e7d1e92d89d5f49c84aa82f3b259678c2c97a4473b22d753ca4411a6b0cec36d","dweb:/ipfs/QmNZoQyminStaAdaLqoDLoWaBU5QWrWjXFjmBm4aFhzL8i"],"license":"MIT"},"test/mocks/MockUnorderedNonce.sol":{"keccak256":"0x28a9ea13f7f756268694a7bfdd1edc25a311be3bb93cb4660e257574412e0ffd","urls":["bzz-raw://9eac3f539d7aa0f87ac7a3141096d2509af1670371a1c90a5f49284c8fa118a8","dweb:/ipfs/QmR5SjVZU6vVaakN7xuEnGHATVvGSLr8t5iwcTBZcfu7iF"],"license":"MIT"}},"version":1},"id":228}