JSPM

@jccdex/nft-cross-chain-protocol

0.1.1
  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 11
  • Score
    100M100P100Q53069F
  • License Apache-2.0

nft crosss chain protocol

Package Exports

  • @jccdex/nft-cross-chain-protocol
  • @jccdex/nft-cross-chain-protocol/lib/index.js

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (@jccdex/nft-cross-chain-protocol) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

nft-cross-chain-protocol

NFT cross chain protocol on jingtum chain

ETH -> SWTC

NFT 从以太坊跨链到井通

交易分两步:

  1. 用户在以太坊调用 nft dao 合约 deposit,将 721 转账给以太坊合约。
  2. 用户调用 submitDepositOrder 在井通链上转账 1 swt 到井通 nft 银关地址, 附带相关跨链信息。
import { NFTDao } from "@jccdex/ethereum-contract";
import NFTTransaction from "@jccdex/nft-cross-chain-protocol";

const options = {
  account: ethereum.selectedAddress,
  chainId: "以太坊chain id",
  web3: this.web3,
  nftDaoContract: "以太坊nft dao合约地址",
  multicallAddress: "以太坊multicall合约地址"
};
const nftDao = new NFTDao(options);

const nft = "NFT合约地址";
const id = "NFT id";
const jingtum = "井通地址";
const fee = "手续费,默认为0";

// 充币,从以太坊到井通

// 充币前需检查nft是否授权给nft dao合约,调用erc-721.ts isApprovedForAll方法
// 如果未授权,调用setApprovalForAll方法
const result = await nftDao.deposit(nft, id, jingtum, fee);

const jingtumNft = "井通NFT银关地址";
// 井通rpc节点数组
const nodes = [""];
const nftTransaction = new NFTTransaction(jingtumNft, nodes);

const depositData = {
  from: "用户以太坊地址",

  address: "用户井通地址",

  secret: "用户井通密钥",

  nft: "以太坊nft合约地址",

  id: "以太坊nft id",

  depositHash: "上述deposit交易hash"
};

const hash = await nftTransaction.submitDepositOrder(depositData);

SWTC -> ETH

NFT 从井通跨链到以太坊

交易分两步:

  1. 用户调用 transfer721 在井通链上将 721 转账给井通 721 银关地址。
  2. 用户调用 submitWithdrawOrder 支付 0.0075 jeth 作为手续费到井通 721 银关地址,附带相关跨链信息。
import NFTTransaction from "@jccdex/nft-cross-chain-protocol";

const jingtumNft = "井通NFT银关地址";
// 井通rpc节点数组
const nodes = [""];

// 测试链手续费
const fee = {
  currency: "JETH",
  value: "0.0075",
  issuer: "jGa9J9TkqtBcUoHe2zqhVFFbgUVED6o9or"
};

// 主链fee可不设
// 主链默认手续费
// {
//     currency: "JETH",
//     value: "0.0075",
//     issuer: "jGa9J9TkqtBcUoHe2zqhVFFbgUVED6o9or"
// }
const nftTransaction = new NFTTransaction(jingtumNft, nodes, fee);

const address = "";
const secret = "";
const id = "";

const hash721 = await nftTransaction.transfer721(address, secret, id);

const withdrawData = {
  address: "用户井通地址",

  secret: "用户井通密钥",

  to: "用户以太坊地址",

  publisher: "井通nft发行方地址",

  tokenId: "井通nft token id",

  fundCode: "井通nft fund code",

  depositHash: "上述transfer721 hash"
};

const hash = await nftTransaction.submitWithdrawOrder(withdrawData);