@golom/sdk
v0.3.0
Published
An SDK to interact with golom's smart contract.
Downloads
13
Readme
@golom/sdk
This sdk contains collection of functions to interact with golom's smart contract.
Table of Contents
Installation
Install with
yarn add @golom/sdk
or
npm install @golom/sdk
Usage
Exchange
1. createOrder()
| param | type | | -------- | -------- | order | OrderParams | accountAddress | String | provider | JsonRpcProvider
import { Web3Provider } from '@ethersproject/providers';
import { parseEther } from '@ethersproject/units';
import { createOrder } from '@golom/sdk';
const provider = new Web3Provider(YOUR_WEB3_PROVIDER);
// returns SignedOrder
let order = await createOrder(
{
asset: {
tokenId: 1,
collection: SOME_COLLECTION_ADDRESS,
schema: "ERC721" // "ERC721" or "ERC1155"
},
listingPrice: parseEther("1")
},
accountAddress,
provider
)
2. fillOrder()
| param | type | default | required
| -------- | -------- | -------- | --------
| orderParams | FillOrderParams ||true
| accountAddress | String || true
| provider | JsonRpcProvider || true
| overrides | Overrides | {}
| false
import { Web3Provider } from '@ethersproject/providers';
import { parseEther } from '@ethersproject/units';
import { fillOrder } from '@golom/sdk';
const provider = new Web3Provider(YOUR_WEB3_PROVIDER);
const signer = provider.getSigner(SIGNER_ADDRESS);
// returns TransactionResponse
await fillOrder(
signedOrder, // returned from createOrder() function
accountAddress,
provider
)
3. fillCriteriaBid()
| param | type | default | required
| -------- | -------- | -------- | --------
| orderParams | FillCriteriaBidParams ||true
| accountAddress | String || true
| provider | JsonRpcProvider || true
| overrides | Overrides | {}
| false
import { Web3Provider } from '@ethersproject/providers';
import { parseEther } from '@ethersproject/units';
import { fillCriteriaBid } from '@golom/sdk';
const provider = new Web3Provider(YOUR_WEB3_PROVIDER);
const signer = provider.getSigner(SIGNER_ADDRESS);
// returns TransactionResponse
await fillCriteriaBid(
{
order: signedOrder, // returned from createOrder() function
tokenId: 1
},
accountAddress,
provider
)
4. cancelOrder()
| param | type | default | required
| -------- | -------- | -------- | --------
| order | SignedOrder ||true
| accountAddress | String || true
| provider | JsonRpcProvider || true
| overrides | Overrides | {}
| false
import { Web3Provider } from '@ethersproject/providers';
import { parseEther } from '@ethersproject/units';
import { cancelOrder } from '@golom/sdk';
const provider = new Web3Provider(YOUR_WEB3_PROVIDER);
const signer = provider.getSigner(SIGNER_ADDRESS);
// returns TransactionResponse
await cancelOrder(
signedOrder, // returned from createOrder() function
accountAddress,
provider
)
Emitter
Emits signed order to polygon blockchain.
⚠️ NOTE: use polygon mainnet provider in signer
emitOrder()
| param | type | default | required
| -------- | -------- | -------- | --------
| order | SignedOrder ||true
| accountAddress | String || true
| provider | JsonRpcProvider || true
| overrides | Overrides | {}
| false
import { Web3Provider } from '@ethersproject/providers';
import { parseEther } from '@ethersproject/units';
import { emitOrder } from '@golom/sdk';
const provider = new Web3Provider(YOUR_POLYGON_PROVIDER);
const signer = provider.getSigner(SIGNER_ADDRESS);
// returns TransactionResponse
await emitOrder(
signedOrder, // returned from createOrder() function
accountAddress,
provider
)
Signing with custom provider
import { Web3Provider } from '@ethersproject/providers';
import HDWalletProvider from '@truffle/hdwallet-provider';
import { parseEther } from '@ethersproject/units';
import { createOrder } from '@golom/sdk';
import 'dotenv/config';
const hdWalletProvider = new HDWalletProvider({
privateKeys: [process.env.PRIVATE_KEY!],
providerOrUrl: process.env.RPC_URL
});
const provider = new Web3Provider(hdWalletProvider);
async function createMyOrder() {
const accountAddress = hdWalletProvider.getAddress();
const signedOrder = await createOrder( {
asset: {
tokenId: 1,
collection: SOME_COLLECTION_ADDRESS,
schema: "ERC721" // "ERC721" or "ERC1155"
},
listingPrice: parseEther("1")
}, accountAddress, provider);
return signedOrder;
}
NOTE: we've used
2.0.10-alpha.2
version for@truffle/hdwallet-provider
Types
For more details on type: visit here
SignedOrder
// Molotrader.OrderStruct
type SignedOrder = {
collection: string;
tokenId: BigNumberish;
signer: string;
orderType: BigNumberish;
totalAmt: BigNumberish;
exchange: Molotrader.PaymentStruct;
prePayment: Molotrader.PaymentStruct;
isERC721: boolean;
tokenAmt: BigNumberish;
refererrAmt: BigNumberish;
root: BytesLike;
reservedAddress: string;
nonce: BigNumberish;
deadline: BigNumberish;
v: BigNumberish;
r: BytesLike;
s: BytesLike;
};
This version of @golom/sdk
is still in beta, so unfortunately documentation is pretty sparse at the moment. Comments and the source code itself are the best ways to get an idea of what's going on. More thorough documentation is a priority as development continues!