0.1.64 • Published 2 years ago

element-js-tron v0.1.64

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

SDK for APENFT marketplace base on Tron blockchain and TronLink wallet

开发者指南

目录

  • 安装
  • 配置

    • 配置环境变量
    • 初始化SDK
  • 资产

    • 创建合集
    • 铸造NFT
  • 订单

    • 创建订单
    • 接受订单
    • 取消订单
    • 查询订单

安装

npm install element-js-tron

sdk依赖tronlink钱包进行链上操作

在浏览器环境下直接使用TronLink注入到window.tronWeb

在node环境下使用,还需安装 tronweb,

npm install tronweb

配置

配置环境变量

如在node环境下使用,需要配置环境变量

  1. 在项目根目录下新建.env文件,内容如下
# 用于操作的钱包私钥
PK_TAKER            =  xxxxx
PK_MAKER            =  xxxxx

# trongrid网络到APIKEY
TRON_PRO_API_KEY    =  xxxxx-xxxx-xxxxx-xxxxx-xxxxx

注意:将.env加入到.gitignore中,避免被提交

  1. 安装dotenv
npm install dotenv
  1. 在项目文件中引入dotenv,并配置
const dotenv = require('dotenv');
dotenv.config();

初始化SDK

/* 0. 引入SDK */
import sdk from "element-js-tron";
const { ElementOrders, Network, AssetFactory, ElementSchemaName } = sdk;
/* 1. 初始化tronWeb */
/* 浏览器环境下 */
// const {tronWeb} = window;
/* node环境下,配置privateKey可以避免弹窗签名 */
const tronWeb = new TronWeb({
    fullHost: 'https://api.shasta.trongrid.io',
    privateKey: process.env.PK_MAKER,
    headers: { "TRON-PRO-API-KEY": process.env.TRON_PRO_API_KEY },
  });

/* 2. 初始化SDK */
const networkName = Network.Shasta;
const sdk_orders = new ElementOrders(tronWeb, { networkName });

/* 3. 登录,获取后续api操作所需token */
await sdk_orders.login();
// 然后就可以进行订单操作了

/* 4. 如需创建资产,可通过以下两种方法获取工厂类 */
/* 4.1 从sdk_orders中获取工厂类 */
const sdk_fab = sdk_orders.assetFactory
/* 4.2 new AssetFactory */
// const sdk_fab = new AssetFactory(tronWeb, { networkName })
/* 然后就可以 */
// sdk_fab.createAsset721(...); // 创建721资产合约
// sdk_fab.mint721(...);        // 铸造721资产

资产

创建合集

sdk_fab.createAsset721(name,symbol,baseUrl,options)

方法说明

/**
 * 部署ERC721合约,返回合约地址
 * @param {string} name - 合约名称
 * @param {string} symbol - 合约符号
 * @param {string} baseUrl - 合约metadata的baseUrl
 * @param {object} [options]  - 可选参数,参考 https://cn.developers.tron.network/reference/tronweb-createsmartcontract
 * @returns {Promise<{txHash,txSend}>}  Promise对象,包括交易hash和广播事件接受器,可以通过await txSend获取创建的合约地址
 */
async createAsset721(name: string, symbol: string, baseUrl: string, options?: any) 

方法使用示例

const sdk_fab = ...
const createRes = await sdk_fab.createAsset721(
    'MyNFTSymbol',  // Symbol
    'MyNFTName',    // Name
    'https://ipfs.io/ipfs/QmPMc4tcBsMqLRuCQtPmPe84bpSjrC3Ky7t3JWuHXYB4aS/'  // metadata json url
)
const output = await createRes.txSend.catch((err) => console.log(err))
// 得到新创建的合约地址
const nftContract = output.contract_address  

铸造NFT

sdk_fab.mint721(nftContract, toAddress,url)

方法说明

/**
 * 
 * @param {string} assetAddr - NFT合约地址,指定在哪个合约中铸造NFT
 * @param {string} to - NFT token接收者地址
 * @param {string} [url] - 可选,NFT metadata的baseUrl
 * @returns Promise
 */
async mint721(assetAddr, to, url) 

方法使用示例

const nftContract = ...
const to = ...
const url = 'https://ipfs.io/ipfs/QmPMc4tcBsMqLRuCQtPmPe84bpSjrC3Ky7t3JWuHXYB4aS/1' 
const defer = await sdk_fab.mint721(nftContract, to)
defer.txSend
    .on('confirmation', (r) => console.log('confirmation', r))
    .on('error', (r) => console.log('error', r))
await defer.txSend

订单

创建订单

接受订单

取消订单

查询订单

0.1.63

2 years ago

0.1.64

2 years ago

0.1.60

2 years ago

0.1.61

2 years ago

0.1.62

2 years ago

0.1.59

2 years ago

0.1.52

2 years ago

0.1.53

2 years ago

0.1.55

2 years ago

0.1.56

2 years ago

0.1.57

2 years ago

0.1.58

2 years ago

0.1.50

2 years ago

0.1.51

2 years ago

0.1.49

2 years ago

0.1.48

2 years ago

0.1.30

2 years ago

0.1.31

2 years ago

0.1.32

2 years ago

0.1.10

2 years ago

0.1.33

2 years ago

0.1.11

2 years ago

0.1.12

2 years ago

0.1.35

2 years ago

0.1.13

2 years ago

0.1.36

2 years ago

0.1.14

2 years ago

0.1.37

2 years ago

0.1.15

2 years ago

0.1.27

2 years ago

0.1.28

2 years ago

0.1.29

2 years ago

0.1.41

2 years ago

0.1.42

2 years ago

0.1.20

2 years ago

0.1.43

2 years ago

0.1.21

2 years ago

0.1.44

2 years ago

0.1.22

2 years ago

0.1.45

2 years ago

0.1.23

2 years ago

0.1.46

2 years ago

0.1.24

2 years ago

0.1.47

2 years ago

0.1.25

2 years ago

0.1.26

2 years ago

0.1.40

2 years ago

0.1.38

2 years ago

0.1.16

2 years ago

0.1.8

2 years ago

0.1.39

2 years ago

0.1.17

2 years ago

0.1.18

2 years ago

0.1.19

2 years ago

0.1.9

2 years ago

0.1.7

2 years ago

0.1.6

2 years ago

0.1.5

2 years ago

0.1.4

2 years ago

0.1.3

2 years ago

0.1.2

2 years ago

0.1.0

2 years ago