Skip to content

Releases: tronprotocol/trident

0.11.0

26 Jan 07:26
2ed6f36

Choose a tag to compare

This release focuses on richer multi-signature permission workflows, and delivers synchronized upgrades for JDK 17 compile and dependency security to enhance overall usability and safety.

New Features

  • Add the getAccountPermissions and accountPermissionUpdate interfaces along with helper classes AccountPermissions and ActivePermissionOperationsUtils, plus a complete example in MtuliSignTest.java, improving multi-sign permission management and simplifying transaction construction (#198)
  • Added the getPaginatedNowWitnessList interfaces for paginated access to the realtime witness list (#188, #195)

Bug Fix

  • Fixed the missing interceptor parameter assignment in the ApiWrapper constructor (#200)
  • Improved error responses of several APIs for clearer informations (#189)

Improvements

  • Upgraded Gradle from 7.6 to 8.5 and refreshed build.gradle to support JDK 17 compilation (#191)
    • bump com.github.jengelman.gradle.plugins from 5.2.0 to 8.1.1
  • Updated dependencies based on dependency-check findings and enabled dependency version enforcement (#192)
    • bump io.grpc from 1.60.0 to 1.75.0
    • bump com.google.protobuf:protobuf-java and com.google.protobuf:protobuf-java-util from 3.25.5 to 3.25.8
    • bump com.google.protobuf from 0.8.12 to 0.9.1
    • bump io.netty:netty-all from 4.1.118 to 4.1.125
    • bump io.vertx:vertx-core from 4.5.0 to 4.5.21
  • Separated read/write test cases to boost unit-test coverage (#199)

Documentation Updates

  • Modify the README.md with current version details and usage guidance (#197)

0.10.0

13 May 09:25
2889428

Choose a tag to compare

This release mainly upgrades RPC interfaces to support Solidity APIs through optional parameters, while simplifying the project structure.

New Features

  • Add getNowBlock2 and getRewardInfo interfaces to support Solidity APIs through optional parameters (#179)
  • Upgrade basic query interfaces to support Solidity APIs, including getNowBlock, getBlockByNum, getBlock, listWitnesses, getBurnTRX, getBandwidthPrices, getEnergyPrices (#179)
  • Upgrade account and resource delegation related interfaces to support Solidity APIs, including getAccount, getAccountById, getAvailableUnfreezeCount, getCanWithdrawUnfreezeAmount, getCanDelegatedMaxSize, getDelegatedResourceV2, getDelegatedResourceAccountIndexV2, getDelegatedResource, getDelegatedResourceAccountIndex (#179)
  • Upgrade transaction related interfaces to support Solidity APIs, including getTransactionInfoByBlockNum, getTransactionInfoById, getTransactionById, getTransactionCountByBlockNum (#179)
  • Upgrade token related interfaces to support Solidity APIs, including getAssetIssueList, getPaginatedAssetIssueList, getAssetIssueById, getAssetIssueByName, getAssetIssueListByName (#179)
  • Upgrade market related interfaces to support Solidity APIs, including listExchanges, getExchangeById, getMarketOrderByAccount, getMarketOrderById, getMarketOrderListByPair, getMarketPairList, getMarketPriceByPair (#179)
  • Upgrade smart contract related interfaces to support Solidity APIs, including getBrokerageInfo, estimateEnergy, triggerConstantContract (#179)
  • Deprecate old Solidity query interfaces, including getAccountSolidity, getTransactionInfoByBlockNumSolidity, getNowBlockSolidity, getTransactionByIdSolidity, getRewardSolidity, getBandwidthPricesOnSolidity, getEnergyPricesOnSolidity (#179)

Improvements

  • Move codes under subdirectory trident-java to parent directory to simplify the code structure (#176)

Documentation Updates

  • Optimize README documentation: remove hardcoded version numbers and update document-related links (#179)

0.9.2

03 Mar 10:33
6860e7c

Choose a tag to compare

This release includes new RPC interface support, feature enhancements, bug fixes and gradle improvement.

New Features

  • Add contract related APIs, includes deployContract, getContractInfo, clearContractABI, updateEnergyLimit, updateSetting, triggerContract, triggerConstantContract, estimateEnergy (#147, #152, #156)

  • Add market related APIs, includes getMarketOrderByAccount, getMarketOrderById, getMarketOrderListByPair, getMarketPairList, getMarketPriceByPair, marketCancelOrder, marketSellAsset (#147)

  • Add exchange related APIs, includes exchangeCreate, exchangeInject, exchangeWithdraw, exchangeTransaction,getPaginatedExchangeList (#147)

  • Add basic data query APIs of BlockChain, includes getBlock, getBlockByIdOrNum, getPaginatedProposalList, getTransactionCountByBlockNum, getTransactionInfoByBlockNumSolidity (#147, #167)

  • Enable building transactions locally without requiring gRPC requests. (#158)

  • Deprecate the following APIs: constantCall, constantCallV2, triggerCall, triggerCallV2, estimateEnergyV2 (#156, #157)

  • Update proto file to keep updated with Java-tron 4.7.7 (#147)

Bug Fixes

  • Fixed an issue causing addresses to incorrectly reduce by 41 multiple times (#149)

  • Resolve invalid timeout settings in the ApiWrapper constructor (#165)

  • Remove restriction requiring ProposalApprove number to be greater than 0 in getProposalById API (#147)

  • Support specified timestamp instead default in getCanWithdrawUnfreezeAmount API (#147)

  • Discard the limit that TransactionInfo’s num must be > 0 in getTransactionInfoByBlockNum API (#167)

Improvements

  • Publish trident package to Maven repository for direct usage

  • Merge abi/utils/core jars into a single jar during the build process (#148)

  • Bump gradle wrapper from 5.6.4 to 7.6 (#148)

  • Optimize code style based on java-tron's CheckStyle standards and integrate CheckStyle checks (#146, #151, #166)

  • Reduce network interaction costs by using getBlock when building transactions (#147)

  • Enhance ABI compatibility support for contract deployment (#154)

Documentation Updates

  • Add detailed instructions for using the trident package (#150, #152)

Dependency Updates

  • Bump io.grpc:grpc-* from 1.58.1 to 1.60.0 (#147)

  • Bump com.google.guava:guava from 29.0-jre to 33.0.0-jre (#147)

  • Bump org.bouncycastle:bcprov-jdk15on:1.69 to org.bouncycastle:bcprov-jdk18on:1.78.1 (#147)

  • Bump io.vertx:vertx-core from 3.9.16 to 4.5.10 (#147)

  • Bump io.netty:netty-all from 4.1.100.Final to 4.1.118.Final (#166)

0.9.1

10 Oct 03:08
efac9cc

Choose a tag to compare

  1. feat(core): Add break statements to each switch case in resolveResultCode(), avoid returning wrong result code #133

  2. feat(core): Optimize local transaction construct logic in createTransactionExtention(), add exceptions handling logic #138

  3. feat(dependency): Upgrade dependency packages, as below:

    • Bump protobuf-java from 3.25.0 to 3.25.5.
    • Bump protobuf-java-util from 3.25.0 to 3.25.5.

0.9.0

09 May 11:19
0ae6710

Choose a tag to compare

  1. feat(core): introduce the new version “attachHeaders” and “captureMetadata” methods which were deprecated in the current version of Trident.

  2. feat(core): add timeout setting for blocking stub, allowing gRPC clients to specify the maximum time they are willing to wait for RPC completion, after which an error will be thrown if the timeout is exceeded.

  3. feat(dependency): upgrade dependency packages, as below:

    • Bump protobuf-java from 3.11.0 to 3.25.0.
    • Bump protobuf-java-util from 3.11.0 to 3.25.0.
    • Bump bcprov-jdk from 1.66 to 1.69.
    • Bump netty-all from 4.0.15.Final to 4.1.100.Final.
    • Bump vertx-core from 3.5.0.Beta1 to 3.9.16.
    • Bump grpc-netty from 1.31.0 to 1.58.1.
  4. feat(proto): update proto file to keep updated with Java-tron and add BLOCK_UNSOLIDIFIED return code to Response in api.proto file.

0.8.0

01 Nov 11:34
e194eaf

Choose a tag to compare

1.feat(core): add gRPC interfaces for resource price query introduced in java-tron v4.7.3, as below:

  • getBandwidthPrices(): query historical bandwidth unit price.
  • getEnergyPrices(): query historical energy unit price.
  • getMemoFee(): query historical memo fee unit price.
  • getBandwidthPricesOnSolidity(): query historical bandwidth unit price.
  • getEnergyPricesOnSolidity(): query historical energy unit price.

2.feat(abi): optimize methods in TypeDecoder, which allows developers to decode different types of parameter values easily

  • decodeNumeric
  • decodeAddress
  • decodeBytes
  • decodeBool
  • decodeDynamicBytes
  • decodeUtf8String
  • decodeStaticStruct
  • decodeDynamicArray
  • decodeDynamicStruct

3.feat(test): upgrade gRPC Nile testnet endpoints to official endpoints when running Unit tests

0.7.0

14 Jul 08:13
c87a9a8

Choose a tag to compare

  1. feat(core): support customizable gRPC interceptors
    Note: developers can add customizable gRPC interceptors in ApiWrapper constructor, enabling embedding some customizable interceptor logic (eg: logging/metrics), before the request/after the response, of a gRPC call.

  2. feat(core): support more java-tron gRPC APIs introduced in 4.7.2 release as following:

  • cancelAllUnfreezeV2(): cancel all unstaking transactions in the waiting period.
  • estimateEnergy (): estimate the energy required to successfully execute a smart contract transaction (parameter is Function)
  • estimateEnergyV2(): estimate the energy required to successfully execute a smart contract transaction (parameter is callData)
  • delegateResourceV2(): delegate bandwidth/energy to another account, new parameter lockPeriod is added, users can specify their own lock period.
  • constantCallV2(): initiate constant contract call, support pass callData.
  • triggerCallV2(): trigger a smart contract call, support pass callData.

0.6.0

14 Jun 06:54
7dbffc0

Choose a tag to compare

  1. feat(utils): support Android platform.
    Note: In the previous version, a NoClassDefFound exception would be thrown when importing trident.jar on Android platform. This upgrade supports Android platform so that eliminates the exception message.

  2. feat(core): add more java-tron gRPC APIs, as below,

  • getTransactionListFromPending: get the transaction list information from the pending pool
  • getPendingSize: get the size of the queue in the pending pool
  • getTransactionFromPending: get transaction details from the pending pool
  • getBlockById: query block information by block hash
  • getNextMaintenanceTime: get the next maintenance period time
  • getBurnTRX: query the amount of TRX burned on the chain
  • getBlockBalance: get all balance change operations of a block.
  • createWitness: create a witness address
  • updateWitness: modify the official website URL of the witness
  • withdrawBalance: withdraw the reward in the balance
  • proposalCreate: create a proposal
  • approveProposal: approve a proposal
  • deleteProposal: delete a proposal
  1. feat(core): optimize code structure.
    Note: the parameters type of interfaces freezeBalance and updateAsset were updated to keep compatible with java-tron gRPC APIs, so when using the latest version of Trident API, remember to modify the corresponding interface parameters type.

0.5.0

18 Apr 08:10
8661820

Choose a tag to compare

  1. feat(core): support offline transaction construction.
    Note: change the way of transaction construction from remote to local constructing, which covers most of the transaction-related APIs and ensure the transaction won’t be maliciously modified before signing when constructing locally.

  2. feat(core): optimize getBlockByNum interface
    Note: the getBlockByNum interface now returns BlockExtention instead of Block, which contains the missing blockId value. If you use this API, you need to make changes to be compatible with the return optimized.

0.4.1

06 Apr 09:29
e0e2f69

Choose a tag to compare

feat(core): optimize proto files to support Stake 2.0

  1. optimize the getAccount interface to support Stake 2.0.
  2. optimize the getAccountresource interface to support Stake 2.0.
  3. optimize the getTransactionInfoByid interface to support Stake 2.0.