0.3.0 • Published 2 years ago

@golom/sdk v0.3.0

Weekly downloads
-
License
MIT
Repository
github
Last release
2 years ago

Golom Logo

@golom/sdk

MIT License minified gzipped size

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()

paramtype
orderOrderParams
accountAddressString
providerJsonRpcProvider
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()

paramtypedefaultrequired
orderParamsFillOrderParamstrue
accountAddressStringtrue
providerJsonRpcProvidertrue
overridesOverrides{}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()

paramtypedefaultrequired
orderParamsFillCriteriaBidParamstrue
accountAddressStringtrue
providerJsonRpcProvidertrue
overridesOverrides{}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()

paramtypedefaultrequired
orderSignedOrdertrue
accountAddressStringtrue
providerJsonRpcProvidertrue
overridesOverrides{}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()

paramtypedefaultrequired
orderSignedOrdertrue
accountAddressStringtrue
providerJsonRpcProvidertrue
overridesOverrides{}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!