UNPKG

vue-tronlink

Version:

Vue support for the TronLink browser extension

78 lines (68 loc) 2.09 kB
import TronWeb from "tronweb" import TronLink from "../src/abi/CoinDetail" let tronLink = new TronLink(new TronWeb({ fullHost: "https://api.trongrid.io", })) const addresses = { contract: { hex: "0x41f01c85e1529abf2793a031a3a40283bbf3479276", base58: "TXroLufzC4WcXWmfTH3awYGJxtx7Hg6YK8", tron: "TXroLufzC4WcXWmfTH3awYGJxtx7Hg6YK8", trx: "TXroLufzC4WcXWmfTH3awYGJxtx7Hg6YK8", }, address: { hex: "0x415f7e38d7a9a0feb60fd49b4102b1251e75dbc8a9", base58: "TJg8QLua4ULPWsiHpAa8KLXDaBeTd87M3R", tron: "TJg8QLua4ULPWsiHpAa8KLXDaBeTd87M3R", trx: "TJg8QLua4ULPWsiHpAa8KLXDaBeTd87M3R", } } const supportedAddrConversions = { hex: ["base58", "tron", "trx"], base58: ["hex"], tron: ["hex"], trx: ["hex"], } for (let format in supportedAddrConversions) { test(`Useless conversion: ${format} --> ${format}`, () => { expect(() => tronLink.convertAddress( addresses.contract.hex, format, format )).toThrow() }) } for (let fromFormat in supportedAddrConversions) { for (let toFormat of supportedAddrConversions[fromFormat]) test(`Conversion: ${fromFormat} --> ${toFormat}`, () => { for (let key in addresses) { expect(tronLink.convertAddress( addresses[key][fromFormat], fromFormat, toFormat )).toBe( addresses[key][toFormat] ) } }) } // Invalid address format tests test("Invalid input format", () => { expect(() => tronLink.convertAddress( addresses.contract.hex, "test", "hex" )).toThrow() }) test("Invalid output format", () => { expect(() => tronLink.convertAddress( addresses.contract.hex, "hex", "test" )).toThrow() }) test("Invalid both formats", () => { expect(() => tronLink.convertAddress( addresses.contract.hex, "test1", "test2" )).toThrow() }) // Invalid address value tests for (let addr of ["0x1234567890abcdef", "Test", "Hello World!", "", null, 0, 0x0, -1, new Object]) { test(`Invalid input HEX addresses: ${addr}`, () => { expect(() => tronLink.convertAddress( addr, "hex", "base58" )).toThrow() }) }