├── .github └── workflows │ ├── lint.yml │ ├── test-forge.yml │ └── test-hardhat.yml ├── .gitignore ├── .gitmodules ├── .prettierignore ├── README.md ├── abis ├── Element.json ├── Foundation.json ├── LooksRareV2.json ├── NFT20.json ├── NFTXZap.json ├── Seaport.json ├── Sudoswap.json └── X2Y2.json ├── foundry.toml ├── hardhat.config.ts ├── package.json ├── remappings.txt ├── src ├── entities │ ├── Command.ts │ ├── NFTTrade.ts │ ├── index.ts │ └── protocols │ │ ├── cryptopunk.ts │ │ ├── element-market.ts │ │ ├── foundation.ts │ │ ├── index.ts │ │ ├── looksRareV2.ts │ │ ├── nft20.ts │ │ ├── nftx.ts │ │ ├── seaport.ts │ │ ├── sudoswap.ts │ │ ├── uniswap.ts │ │ ├── unwrapWETH.ts │ │ └── x2y2.ts ├── index.ts ├── swapRouter.ts └── utils │ ├── constants.ts │ ├── getNativeCurrencyValue.ts │ ├── inputTokens.ts │ ├── numbers.ts │ ├── routerCommands.ts │ └── routerTradeAdapter.ts ├── test ├── forge │ ├── MixedSwapCallParameters.t.sol │ ├── SwapERC20CallParameters.t.sol │ ├── SwapNFTCallParameters.t.sol │ ├── interop.json │ ├── utils │ │ ├── DeployRouter.sol │ │ ├── ICryptopunksMarket.sol │ │ └── Interop.sol │ └── writeInterop.ts ├── mixedTrades.test.ts ├── nftTrades.test.ts ├── orders │ ├── element.ts │ ├── looksRareV2.ts │ ├── seaportV1_4.ts │ ├── seaportV1_5.ts │ └── x2y2.ts ├── uniswapTrades.test.ts └── utils │ ├── addresses.ts │ ├── hexToDecimalString.ts │ ├── permit2.test.ts │ ├── permit2.ts │ └── uniswapData.ts ├── tsconfig.json └── yarn.lock /.github/workflows/lint.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Uniswap/universal-router-sdk/HEAD/.github/workflows/lint.yml -------------------------------------------------------------------------------- /.github/workflows/test-forge.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Uniswap/universal-router-sdk/HEAD/.github/workflows/test-forge.yml -------------------------------------------------------------------------------- /.github/workflows/test-hardhat.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Uniswap/universal-router-sdk/HEAD/.github/workflows/test-hardhat.yml -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | *.log 2 | .DS_Store 3 | node_modules 4 | dist 5 | docs 6 | cache 7 | out 8 | .env 9 | -------------------------------------------------------------------------------- /.gitmodules: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Uniswap/universal-router-sdk/HEAD/.gitmodules -------------------------------------------------------------------------------- /.prettierignore: -------------------------------------------------------------------------------- 1 | out/ 2 | lib 3 | cache 4 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Uniswap/universal-router-sdk/HEAD/README.md -------------------------------------------------------------------------------- /abis/Element.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Uniswap/universal-router-sdk/HEAD/abis/Element.json -------------------------------------------------------------------------------- /abis/Foundation.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Uniswap/universal-router-sdk/HEAD/abis/Foundation.json -------------------------------------------------------------------------------- /abis/LooksRareV2.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Uniswap/universal-router-sdk/HEAD/abis/LooksRareV2.json -------------------------------------------------------------------------------- /abis/NFT20.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Uniswap/universal-router-sdk/HEAD/abis/NFT20.json -------------------------------------------------------------------------------- /abis/NFTXZap.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Uniswap/universal-router-sdk/HEAD/abis/NFTXZap.json -------------------------------------------------------------------------------- /abis/Seaport.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Uniswap/universal-router-sdk/HEAD/abis/Seaport.json -------------------------------------------------------------------------------- /abis/Sudoswap.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Uniswap/universal-router-sdk/HEAD/abis/Sudoswap.json -------------------------------------------------------------------------------- /abis/X2Y2.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Uniswap/universal-router-sdk/HEAD/abis/X2Y2.json -------------------------------------------------------------------------------- /foundry.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Uniswap/universal-router-sdk/HEAD/foundry.toml -------------------------------------------------------------------------------- /hardhat.config.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Uniswap/universal-router-sdk/HEAD/hardhat.config.ts -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Uniswap/universal-router-sdk/HEAD/package.json -------------------------------------------------------------------------------- /remappings.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Uniswap/universal-router-sdk/HEAD/remappings.txt -------------------------------------------------------------------------------- /src/entities/Command.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Uniswap/universal-router-sdk/HEAD/src/entities/Command.ts -------------------------------------------------------------------------------- /src/entities/NFTTrade.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Uniswap/universal-router-sdk/HEAD/src/entities/NFTTrade.ts -------------------------------------------------------------------------------- /src/entities/index.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Uniswap/universal-router-sdk/HEAD/src/entities/index.ts -------------------------------------------------------------------------------- /src/entities/protocols/cryptopunk.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Uniswap/universal-router-sdk/HEAD/src/entities/protocols/cryptopunk.ts -------------------------------------------------------------------------------- /src/entities/protocols/element-market.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Uniswap/universal-router-sdk/HEAD/src/entities/protocols/element-market.ts -------------------------------------------------------------------------------- /src/entities/protocols/foundation.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Uniswap/universal-router-sdk/HEAD/src/entities/protocols/foundation.ts -------------------------------------------------------------------------------- /src/entities/protocols/index.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Uniswap/universal-router-sdk/HEAD/src/entities/protocols/index.ts -------------------------------------------------------------------------------- /src/entities/protocols/looksRareV2.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Uniswap/universal-router-sdk/HEAD/src/entities/protocols/looksRareV2.ts -------------------------------------------------------------------------------- /src/entities/protocols/nft20.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Uniswap/universal-router-sdk/HEAD/src/entities/protocols/nft20.ts -------------------------------------------------------------------------------- /src/entities/protocols/nftx.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Uniswap/universal-router-sdk/HEAD/src/entities/protocols/nftx.ts -------------------------------------------------------------------------------- /src/entities/protocols/seaport.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Uniswap/universal-router-sdk/HEAD/src/entities/protocols/seaport.ts -------------------------------------------------------------------------------- /src/entities/protocols/sudoswap.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Uniswap/universal-router-sdk/HEAD/src/entities/protocols/sudoswap.ts -------------------------------------------------------------------------------- /src/entities/protocols/uniswap.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Uniswap/universal-router-sdk/HEAD/src/entities/protocols/uniswap.ts -------------------------------------------------------------------------------- /src/entities/protocols/unwrapWETH.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Uniswap/universal-router-sdk/HEAD/src/entities/protocols/unwrapWETH.ts -------------------------------------------------------------------------------- /src/entities/protocols/x2y2.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Uniswap/universal-router-sdk/HEAD/src/entities/protocols/x2y2.ts -------------------------------------------------------------------------------- /src/index.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Uniswap/universal-router-sdk/HEAD/src/index.ts -------------------------------------------------------------------------------- /src/swapRouter.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Uniswap/universal-router-sdk/HEAD/src/swapRouter.ts -------------------------------------------------------------------------------- /src/utils/constants.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Uniswap/universal-router-sdk/HEAD/src/utils/constants.ts -------------------------------------------------------------------------------- /src/utils/getNativeCurrencyValue.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Uniswap/universal-router-sdk/HEAD/src/utils/getNativeCurrencyValue.ts -------------------------------------------------------------------------------- /src/utils/inputTokens.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Uniswap/universal-router-sdk/HEAD/src/utils/inputTokens.ts -------------------------------------------------------------------------------- /src/utils/numbers.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Uniswap/universal-router-sdk/HEAD/src/utils/numbers.ts -------------------------------------------------------------------------------- /src/utils/routerCommands.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Uniswap/universal-router-sdk/HEAD/src/utils/routerCommands.ts -------------------------------------------------------------------------------- /src/utils/routerTradeAdapter.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Uniswap/universal-router-sdk/HEAD/src/utils/routerTradeAdapter.ts -------------------------------------------------------------------------------- /test/forge/MixedSwapCallParameters.t.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Uniswap/universal-router-sdk/HEAD/test/forge/MixedSwapCallParameters.t.sol -------------------------------------------------------------------------------- /test/forge/SwapERC20CallParameters.t.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Uniswap/universal-router-sdk/HEAD/test/forge/SwapERC20CallParameters.t.sol -------------------------------------------------------------------------------- /test/forge/SwapNFTCallParameters.t.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Uniswap/universal-router-sdk/HEAD/test/forge/SwapNFTCallParameters.t.sol -------------------------------------------------------------------------------- /test/forge/interop.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Uniswap/universal-router-sdk/HEAD/test/forge/interop.json -------------------------------------------------------------------------------- /test/forge/utils/DeployRouter.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Uniswap/universal-router-sdk/HEAD/test/forge/utils/DeployRouter.sol -------------------------------------------------------------------------------- /test/forge/utils/ICryptopunksMarket.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Uniswap/universal-router-sdk/HEAD/test/forge/utils/ICryptopunksMarket.sol -------------------------------------------------------------------------------- /test/forge/utils/Interop.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Uniswap/universal-router-sdk/HEAD/test/forge/utils/Interop.sol -------------------------------------------------------------------------------- /test/forge/writeInterop.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Uniswap/universal-router-sdk/HEAD/test/forge/writeInterop.ts -------------------------------------------------------------------------------- /test/mixedTrades.test.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Uniswap/universal-router-sdk/HEAD/test/mixedTrades.test.ts -------------------------------------------------------------------------------- /test/nftTrades.test.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Uniswap/universal-router-sdk/HEAD/test/nftTrades.test.ts -------------------------------------------------------------------------------- /test/orders/element.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Uniswap/universal-router-sdk/HEAD/test/orders/element.ts -------------------------------------------------------------------------------- /test/orders/looksRareV2.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Uniswap/universal-router-sdk/HEAD/test/orders/looksRareV2.ts -------------------------------------------------------------------------------- /test/orders/seaportV1_4.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Uniswap/universal-router-sdk/HEAD/test/orders/seaportV1_4.ts -------------------------------------------------------------------------------- /test/orders/seaportV1_5.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Uniswap/universal-router-sdk/HEAD/test/orders/seaportV1_5.ts -------------------------------------------------------------------------------- /test/orders/x2y2.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Uniswap/universal-router-sdk/HEAD/test/orders/x2y2.ts -------------------------------------------------------------------------------- /test/uniswapTrades.test.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Uniswap/universal-router-sdk/HEAD/test/uniswapTrades.test.ts -------------------------------------------------------------------------------- /test/utils/addresses.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Uniswap/universal-router-sdk/HEAD/test/utils/addresses.ts -------------------------------------------------------------------------------- /test/utils/hexToDecimalString.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Uniswap/universal-router-sdk/HEAD/test/utils/hexToDecimalString.ts -------------------------------------------------------------------------------- /test/utils/permit2.test.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Uniswap/universal-router-sdk/HEAD/test/utils/permit2.test.ts -------------------------------------------------------------------------------- /test/utils/permit2.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Uniswap/universal-router-sdk/HEAD/test/utils/permit2.ts -------------------------------------------------------------------------------- /test/utils/uniswapData.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Uniswap/universal-router-sdk/HEAD/test/utils/uniswapData.ts -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Uniswap/universal-router-sdk/HEAD/tsconfig.json -------------------------------------------------------------------------------- /yarn.lock: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Uniswap/universal-router-sdk/HEAD/yarn.lock --------------------------------------------------------------------------------