This action is used to buy an ERC-1155 or ERC-721 token. You can also use it to buy multiple tokens of the same kind (sweeping).
You can supply an object of parameters listed below:
Parameter | Description | Required | Example |
---|---|---|---|
items | An array of objects representing orders to be purchased. Refer to the the execute buy api for a full list of parameters | true | [{ token: "0xbc4ca0eda7647a8ab7c2061c2e118a18a936f13d:1" }] |
signer | A valid WalletClient from viem. | true | Refer to viem's documentation on Wallet Clients |
onProgress | Callback to update UI state as execution progresses. Can also be used to get the transaction hash for a given step item. | true | (steps) => { console.log(steps) } |
expectedPrice | Token price used to prevent to protect buyer from price moves. | false | 20.5 |
options | Supports all of the parameters allowed in the execute buy api | false | { source: "reservoir.market", skipBalanceCheck: true ... } |
Example
import { getClient, Execute } from "@reservoir0x/reservoir-sdk";
import { createWalletClient, http } from 'viem'
...
address = "0x8ba1f109551bD432803012645Ac136ddd6000000"
signer = createWalletClient({
account: address,
transport: http()
})
getClient()?.actions.buyToken({
items: [{ token: "0xbc4ca0eda7647a8ab7c2061c2e118a18a936f13d:1", quantity: 1 }],
signer,
onProgress: (steps: Execute['steps']) => {
console.log(steps)
}
})