npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

@opentron/java-tron-provider

v0.4.40

Published

Web3 provider that uses the `java-tron` HTTP API.

Downloads

70

Readme

@opentron/java-tron-provider

Web3.js compatible provider that uses the java-tron HTTP API.

Install

Library:

npm install @opentron/java-tron-provider

Proxy server:

npm install -g @opentron/java-tron-provider
TRON_NETWORK=nile java-tron-web3-proxy

Usage

import Web3 from "web3";
import createJavaTronProvider from "@opentron/java-tron-provider";

const provider = createJavaTronProvider({
  network: "nile", // defaults to mainnet
  privateKey: "priv key...", // only required if sending transactions
  // (optional) function that maps bytecode to { name, abi } object.
  mapBytecode: (bytecode) => {
    // e.g.:
    if (bytecode === "0xdeadbeef") {
      return {
        name: "MappedName",
        abi: [
          /* some abi */
        ],
      };
    }
  },
});

const web3 = new Web3(provider);

// ... etc.

mapBytecode(optional): Tron supports publishing an ABI and contract name when deploying a contract but web3 only passes the bytecode to the provider. This function helps the provider map the bytecode to a { name, abi } object.

See ./test/web3.js for more usage examples.

See ../truffle-tron-demo for usage example with Truffle.

Proxy Server

Runs the java-tron provider as a JSON-RPC HTTP server.

Example usage:

# start server
node bin/proxy-server.js
# start server for nile
TRON_NETWORK=nile node bin/proxy-server.js

Use server as regular Ethereum JSON-RPC API server:

curl \
  --data '{"method":"eth_getBlockByNumber","params":["latest", true],"id":1,"jsonrpc":"2.0"}' \
  -H "Content-Type: application/json" \
  -X POST localhost:8333 \
  | jq

Optional Configuration:

See config object at top of ./bin/proxy-server.js for latest documentation.

IP_ADDRESS=<ip address to bind to>
PORT=<port to bind>
TRON_NETWORK=<tron network>
# defaults to selecting node based on TRON_NETWORK
TRON_NODE=<tron node>
# enable verbose output (logs JSON-RPC requests)
# can also be used as CLI flag --verbose
# defaults to false
VERBOSE=1
# debug logs:
DEBUG=java-tron-provider

TODO

  • use gasLimit as feeLimit...
  • transaction.input (.data sent with original transaction)
  • eth_chainId
  • Test contract deployment
  • Pass an array of contract JSON info to java-tron-provider constructor so it can set the on chain Tron ABI and contract name when creating a contract?
  • Implement signing transactions using a private key string
  • Webpack build for browsers
  • Reduce dependencies / package size (e.g. dependency on web3)
  • tronlink-provider that extends this provider but uses TronLink for signing transactions.