Releases: tronprotocol/trident
0.11.0
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
getAccountPermissionsandaccountPermissionUpdateinterfaces along with helper classesAccountPermissionsandActivePermissionOperationsUtils, plus a complete example inMtuliSignTest.java, improving multi-sign permission management and simplifying transaction construction (#198) - Added the
getPaginatedNowWitnessListinterfaces for paginated access to the realtime witness list (#188, #195)
Bug Fix
- Fixed the missing interceptor parameter assignment in the
ApiWrapperconstructor (#200) - Improved error responses of several APIs for clearer informations (#189)
Improvements
- Upgraded Gradle from 7.6 to 8.5 and refreshed
build.gradleto support JDK 17 compilation (#191)- bump
com.github.jengelman.gradle.pluginsfrom 5.2.0 to 8.1.1
- bump
- Updated dependencies based on dependency-check findings and enabled dependency version enforcement (#192)
- bump
io.grpcfrom 1.60.0 to 1.75.0 - bump
com.google.protobuf:protobuf-javaandcom.google.protobuf:protobuf-java-utilfrom 3.25.5 to 3.25.8 - bump
com.google.protobuffrom 0.8.12 to 0.9.1 - bump
io.netty:netty-allfrom 4.1.118 to 4.1.125 - bump
io.vertx:vertx-corefrom 4.5.0 to 4.5.21
- bump
- Separated read/write test cases to boost unit-test coverage (#199)
Documentation Updates
- Modify the
README.mdwith current version details and usage guidance (#197)
0.10.0
This release mainly upgrades RPC interfaces to support Solidity APIs through optional parameters, while simplifying the project structure.
New Features
- Add
getNowBlock2andgetRewardInfointerfaces 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
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
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
-
feat(core): Add break statements to each switch case in
resolveResultCode(), avoid returning wrong result code #133 -
feat(core): Optimize local transaction construct logic in
createTransactionExtention(), add exceptions handling logic #138 -
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
-
feat(core): introduce the new version “attachHeaders” and “captureMetadata” methods which were deprecated in the current version of Trident.
-
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.
-
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.
-
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
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
decodeNumericdecodeAddressdecodeBytesdecodeBooldecodeDynamicBytesdecodeUtf8StringdecodeStaticStructdecodeDynamicArraydecodeDynamicStruct
3.feat(test): upgrade gRPC Nile testnet endpoints to official endpoints when running Unit tests
0.7.0
-
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. -
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 isFunction)estimateEnergyV2(): estimate the energy required to successfully execute a smart contract transaction (parameter iscallData)delegateResourceV2(): delegate bandwidth/energy to another account, new parameterlockPeriodis added, users can specify their own lock period.constantCallV2(): initiate constant contract call, support passcallData.triggerCallV2(): trigger a smart contract call, support passcallData.
0.6.0
-
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. -
feat(core): add more java-tron gRPC APIs, as below,
getTransactionListFromPending: get the transaction list information from the pending poolgetPendingSize: get the size of the queue in the pending poolgetTransactionFromPending: get transaction details from the pending poolgetBlockById: query block information by block hashgetNextMaintenanceTime: get the next maintenance period timegetBurnTRX: query the amount of TRX burned on the chaingetBlockBalance: get all balance change operations of a block.createWitness: create a witness addressupdateWitness: modify the official website URL of the witnesswithdrawBalance: withdraw the reward in the balanceproposalCreate: create a proposalapproveProposal: approve a proposaldeleteProposal: delete a proposal
- feat(core): optimize code structure.
Note: the parameters type of interfacesfreezeBalanceandupdateAssetwere 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
-
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. -
feat(core): optimize
getBlockByNuminterface
Note: thegetBlockByNuminterface now returnsBlockExtentioninstead ofBlock, which contains the missingblockIdvalue. If you use this API, you need to make changes to be compatible with the return optimized.