Fetching an order from your Order Book
When you create an order, your orders are stored in your order book. Use the useFetchOrders
hook to fetch your orders.
Use the fetched orders to display what's on sale on your frontend.
Fetch a listing
You can fetch orders from your order book by specific parameters:
fetchAllOrders()
- fetches all ordersfetchOrdersByTokenAddress({tokenAddress})
- fetch all orders for a specific token addressfetchOrdersByWalletAddress({tokenOwner})
- fetch all orders for a specific wallet address
The example below shows how to fetch orders using the 3 methods above.
import { useState } from 'react'
import { useFetchOrders } from '@cranetech/sdk'
function App() {
const [allOrders, setAllOrders] = useState([])
const [tokenAddressOrders, setTokenAddressOrders] = useState([])
const [walletAddressOrders, setWalletAddressOrders] = useState([])
// Retrieve fetch functions from the useFetchOrders hook
const { fetchOrders, fetchOrdersByTokenAddress, fetchOrdersByWalletAddress } =
useFetchOrders()
const tokenAddress = '0xBC4CA0EdA7647A8aB7C2061c2E118A18a936f13D' // YOUR COLLECTION ADDRESS
const tokenOwnerAddress = '0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045' // YOUR HOLDERS ADDRESS
useEffect(() => {
const callFetchOrders = async () => {
// Fetch all active orders from order book
const allOrders = await fetchAllOrders()
setAllOrders(allOrders)
// Fetch all active orders for a specific token owner
// Generally used in a Profile page to show all active orders for a specific user
const ordersByWalletAddress = await fetchOrdersByWalletAddress(
walletAddress
)
setWalletAddressOrders(ordersByWalletAddress)
// Fetch all actives orders for a collection
// Generally used in a Collection gallery page to show all active orders for a whole collection
const ordersByTokenAddress = await fetchOrdersByTokenAddress(tokenAddress)
setTokenAddressOrders(ordersByTokenAddress)
}
callFetchOrders()
}, [])
return (
<div>
{allOrders.map((order, index) => {
return (
<div key={index}>
<p>Token ID: {order.tokenId}</p>
<p>Token Address: {order.tokenAddress}</p>
<p>Token Owner: {order.tokenOwner}</p>
<p>Price: {order.price}</p>
<p>Expires: {order.endTime}</p>
</div>
)
})}
</div>
)
}