New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

element-js-tron

Package Overview
Dependencies
Maintainers
2
Versions
62
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

element-js-tron

Javascript SDK for the Element

  • 0.1.64
  • latest
  • npm
  • Socket score

Version published
Weekly downloads
29
decreased by-19.44%
Maintainers
2
Weekly downloads
 
Created
Source

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

订单

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

FAQs

Package last updated on 09 Sep 2022

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc