Skip to content

Releases: ecadlabs/taquito

Taquito v9.1.0-beta

03 Jun 19:01
Compare
Choose a tag to compare

Summary

New features

  • @taquito/taquito - Added reveal operation on the RpcContractProvider and RPCEstimateProvider classes #772
  • @taquito/taquito & @taquito/beacon-wallet - Ability to specify the fee, storageLimit and gasLimit parameters using the wallet API #866

Enhancements

  • @taquito/taquito - Include estimate for reveal operation on batch estimate #772
  • @taquito/taquito - Export return types of public API methods (BatchOperation, Operation, OperationBatch, TransferParams, ParamsWithKind) #583
  • @taquito/michelson-encoder - Types chain_id, key, option, or, signature, and unit made comparable #603
  • @taquito/rpc - Added big_map_diff, lazy_storage_diff properties and failing_noop operation to RPC types #870
  • @taquito/beacon-wallet - Updated beacon-sdk to version 2.2.8

Bug fixes

  • @taquito/signer - Fixed a public key derivation bug in InMemorySigner class #848
  • @taquito/michelson-encoder - Fixed a bug in the Execute method of the OrToken class

@taquito/taquito - Added reveal operation on the RpcContractProvider and the RPCEstimateProvider classes & Include estimate for reveal operation on batch estimate

When sending an operation using the contract API, Taquito takes care of adding a reveal operation when the account needs to be revealed. This has not changed, but we added a reveal method on the RpcContractProvider class, allowing to reveal the current account using the contract API without the need to do another operation. The method takes an object as a parameter with optional fee, gasLimit and StorageLimit properties:
await Tezos.contract.reveal({});
We also added a reveal method on the RPCEstimateProvider class, allowing an estimation of the fees, storage and gas related to the operation:
await Tezos.estimate.reveal();

Moreover, when estimating a batch operation where a reveal operation is needed, an Estimate object representing the reveal operation will now be returned as the first element of the returned array.

@taquito/signer - Fixed a public key derivation bug in InMemorySigner class

There was an issue in the derivation of public keys by the InMemorySigner with the p256 and secp256k1 curves having a y coordinate shorter than 32 bytes. For these specific cases, the returned public key was erroneous. Please remember that this signer implementation is for development workflows.

@taquito/michelson-encoder - Types chain_id, key, option, or, signature, and unit made comparable

Taquito ensures that map keys and set values of comparable types are sorted in strictly increasing order as requested by the RPC.

@taquito/michelson-encoder - Fixed a bug in the Execute method of the OrToken class

The execute method allows converting Michelson data into familiar-looking javascript data. This is used in Taquito to provide a well-formatted JSON object of contract storage. This release includes a bug fix for the OrToken where the right values were not formatted correctly.

@taquito/taquito & @taquito/beacon-wallet - Ability to specify the fee, storageLimit and gasLimit parameters using the wallet API

We are currently seeing a high number of transactions being backtracked with "storage exhausted" errors in high-traffic dapps in the ecosystem. To mitigate this issue and knowing that dapps are in a better position to assess reasonable values than the wallet, we now provide the ability to specify the storage, gas limit, and fee via the wallet API. As the beacon-sdk, which @taquito/beacon-wallet package is built on, accepts those parameters, dapp developers will now have the ability to specify those parameters. One important note is that at the end, it is the wallet that has control over what is actually used when injecting the operation.

What's coming next for Taquito?

We will work on integrating flextesa node into our CI pipeline. We are currently relying on testnets for testing purposes. Since many Taquito users use flextesa for testing, including it in our development process will help provide better support, especially regarding errors encountered during Operation.confirmation() issues.

We started some preliminary work on integrating Granadanet, the next Tezos protocol update proposal. We plan to deliver a final version of Taquito v10 early, giving teams a longer runway to upgrade their projects before protocol transition.

We plan to improve the michelson-encoder implementation to open the door for Type generation from contracts and to provide easier discoverability of what parameters endpoints and initial storage take. We opened a discussion on this subject on GitHub where any feedback or suggestions are appreciated: #840.

If you have feature or issue requests, please create an issue on http://github.com/ecadlabs/taquito/issues or join us on the Taquito community support channel on Telegram https://t.me/tezostaquito

9.1.0-beta-RC.1

01 Jun 22:11
Compare
Choose a tag to compare
9.1.0-beta-RC.1 Pre-release
Pre-release

New features

  • @taquito/taquito - Added reveal operation on the RpcContractProvider and RPCEstimateProvider classes #772
  • @taquito/taquito & @taquito/beacon-wallet - Ability to specify the fee, storageLimit and gasLimit parameters using the wallet API #866

Enhancements

  • @taquito/taquito - Include estimate for reveal operation on batch estimate #772
  • @taquito/taquito - Export return types of public API methods (BatchOperation, Operation, OperationBatch, TransferParams, ParamsWithKind) #583
  • @taquito/michelson-encoder - Types chain_id, key, option, or, signature, and unit made comparable #603
  • @taquito/rpc - Added big_map_diff, lazy_storage_diff properties and failing_noop operation to RPC types #870
  • @taquito/beacon-wallet - Updated beacon-sdk to version 2.2.7

Bug fixes

  • @taquito/signer - Fixed a public key derivation bug in InMemorySigner class #848
  • @taquito/michelson-encoder - Fixed a bug in the Execute method of the OrToken class

9.1.0-beta-RC.0

01 Jun 20:56
Compare
Choose a tag to compare
9.1.0-beta-RC.0 Pre-release
Pre-release

New features

  • @taquito/taquito - Added reveal operation on the RpcContractProvider and RPCEstimateProvider classes #772
  • @taquito/taquito & @taquito/beacon-wallet - Ability to specify the fee, storageLimit and gasLimit parameters using the wallet API #866

Enhancements

  • @taquito/taquito - Include estimate for reveal operation on batch estimate #772
  • @taquito/taquito - Export return types of public API methods (BatchOperation, Operation, OperationBatch, TransferParams, ParamsWithKind) #583
  • @taquito/michelson-encoder - Types chain_id, key, option, or, signature, and unit made comparable #603
  • @taquito/rpc - Added big_map_diff, lazy_storage_diff properties and failing_noop operation to RPC types #870
  • @taquito/beacon-wallet - Updated beacon-sdk to version 2.2.7

Bug fixes

  • @taquito/signer - Fixed a public key derivation bug in InMemorySigner class #848
  • @taquito/michelson-encoder - Fixed a bug in the Execute method of the OrToken class

9.0.1

11 May 21:23
Compare
Choose a tag to compare
  • @taquito/rpc: Support new endorsement_with_slot operation #824
  • @taquito/michelson-encoder: Add support for the type "never" #774
  • Ability to find version and git hash from which Taquito was built #638
  • Update Taquito website live examples to use Florencenet #822

Taquito v9.0.0-beta - Florence compatibility support

27 Apr 00:21
Compare
Choose a tag to compare

Taquito v9.0.0-beta

Summary

Enhancements

  • Florence compatibility support
  • Allows fetching big map with a key of type string, number, or object.
  • Accept an operator for the retry strategy of the ObservableSubscription class
  • Updated beacon-sdk version to v2.2.5 which includes several performance improvements for p2p pairing.

Documentation updates

  • Added documentation about the Michelson encoder package here.

Forward compatibility for Florence

This version ships with official support for the new Florence protocol which will come into effect on Mainnet in May.

@taquito/taquito - Allows fetching big map with a key of type string, number, or object.

In the precedent versions, fetching a value in a big map required the parameter to be a string, even in such cases when the key of the big map was a number. The get and getMultipleValues methods of the BigMapAbstraction and getBigMapKeyByID and getBigMapKeysByID methods of the RpcContractProvider class now accept a string, a number or an object for the key we want to fetch.

This introduced a breaking change for the method getMultipleValues of the BigMapAbstraction class and the method getBigMapKeysByID of the RpcContractProvider class as they now return a MichelsonMap instead of an object. This is meant to support keys of type object that are encountered when the Michelson type of the big map key is a pair.

@taquito/taquito - Accept an operator for the retry strategy of the ObservableSubscription class

To give more flexibility to the user on the retry strategy, we removed the parameters observableSubscriptionRetryDelay and observableSubscriptionRetries introduced in version 8.1.1-beta and replaced them to accept an OperatorFunction. When users configure the ObservableSubscription to retry on error, we use the retry operators from rxjs by default. An example showing how to set a custom retry strategy is available here.

If you have feature or issue requests, please create an issue on http://github.com/ecadlabs/taquito/issues or join us on the Taquito community support channel on Telegram https://t.me/tezostaquito

9.0.0-beta-RC.1

24 Apr 19:07
Compare
Choose a tag to compare
9.0.0-beta-RC.1 Pre-release
Pre-release
  • Official support for the new Florence protocol which will come into effect on Mainnet in May.
  • Allows fetching big map with a key of type string, number, or object. This includes a breaking change for the method getMultipleValues of the BigMapAbstraction class and the method getBigMapKeysByID of the RpcContractProvider class as they will return a MichelsonMap instead of an object to support keys of type pair.
  • Updated beacon-sdk version to v2.2.4 which includes several performance improvements for p2p pairing.
  • Added documentation about the Michelson encoder package: https://tezostaquito.io/docs/michelson_encoder.
  • Ability to find version and git hash from which Taquito was built #638
  • Accept an operator for the retry strategy of ObservableSubscription class. An example of use has been added to the example folder.
npm i @taquito/[email protected]

9.0.0-beta-RC.0

24 Apr 01:01
Compare
Choose a tag to compare
9.0.0-beta-RC.0 Pre-release
Pre-release
  • Allows fetching big map with a key of type string, number, or object. This includes a breaking change for the method getMultipleValues of the BigMapAbstraction class and the method getBigMapKeysByID of the RpcContractProvider class as they will return a MichelsonMap instead of an object to support keys of type pair.
  • Updated beacon-sdk version to v2.2.4.
  • Added documentation about the Michelson encoder package: https://tezostaquito.io/docs/michelson_encoder.
  • Ability to find version and git hash from which Taquito was built #638
  • Accept an operator for the retry strategy of ObservableSubscription class. An example of use has been added to the example folder.

Taquito v8.1.1-beta

13 Apr 15:31
Compare
Choose a tag to compare

Summary

Enhancements

  • @taquito/taquito: Dynamically set the polling interval based on the RPC constants
  • @taquito/taquito: Added a configurable delay and number of retries to the ObservableSubscription

Bug fixes

  • @taquito/ledger-signer: Corrected the prefix for the prefixSig property
  • @taquito/michelson-encoder: Corrected sorting of numeric values when encoding

Documentation updates

  • Added the telegram group to the Website community links
  • Fixed some broken links
  • New documentation about signing with wallet

@taquito/taquito - Polling interval

After sending an operation with Taquito, we call the confirmation method on the operation. Taquito does polling to the node to fetch new blocks and validate if the operation hash is in the block. Before this change, the polling interval's default value (confirmationPollingIntervalSecond) was set to 10 seconds. In theory, a new block is baked every 30 seconds on the testnets and every 60 seconds on mainnet. However, the time between blocks is shorter on sandboxes. For example, it can be of 5 seconds on Flextesa. A 10-second polling interval is too high for sandboxes and leads to a very high chance of missing the block containing the operation. To improve sandbox users' experience., we now calculate the polling interval value dynamically based on the RPC constants. To consider variations regarding the time between blocks in practice, we divide the value by 3 to reduce the risk of missing a block.

Note that this value was configurable before and can still be configured if needed:
Tezos.setProvider({config: {confirmationPollingIntervalSecond: 5}})

@taquito/taquito - Delay and maximum number of attempts for the ObservableSubscription

When users configure the ObservableSubscription to retry on error, the retries were happening immediately and indefinitely, causing call stack exception. Now, when the retry is enabled, the subscription uses a default value of 1 second between retries and a maximum value of 10 retries.
These values are configurable by the user:
Tezos.setProvider({ config: { shouldObservableSubscriptionRetry: true, observableSubscriptionRetryDelay: 2000, observableSubscriptionRetries: 3 } });

@taquito/ledger-signer - prefixSig

The prefixSig property returned by the sign method of the LedgerSigner class was using SIG prefix. The correct prefix is now returned (e.g. EDSIG for tz1, SPSIG for tz2, and P2SIG for tz3).

@taquito/michelson-encoder sorting of numeric values

The numerics values (nat, int, and mutez) were not sorted properly by the Michelson Encoder, causing the following RPC Errors: unordered_map_literal or unordered_set_literal. For example, the RPC expects maps to be sorted by ascending keys values. The values were ordered as strings by the Michelson Encoder instead of number, resulting in wrong ordering for the RPC.

Documentation Additions and Improvements

A link to the Tezos Taquito Telegram group has been added in the Taquito website home page's footer, making it easier to find the group. You are welcome to join this group to access community support and connect with the Taquito team.

We fixed broken links on the Taquito documentation website.

There is new documentation on the website explaining how to produce signatures with the InMemorySigner and the Wallet API, along with examples and tips to keep in mind.

A note on how to use the Kukai wallet for testing on Edonet has been added to the Wallet API documentation.

If you have feature or issue requests, please create an issue on http://github.com/ecadlabs/taquito/issues or join us on the Taquito community support channel on Telegram https://t.me/tezostaquito

Final v8.1.0 - Pack/unpack implementation, fetch multiple big map values, and more

26 Mar 21:37
Compare
Choose a tag to compare

Taquito v8.1.0-beta

Summary

New features

  • Pack/unpack data locally. Now used for fetching big-maps too.
  • New API to fetch multiple bigmap values at once 🚀🚀

Enhancements

  • Expand support for Tickets beyond nat.
  • New edo RPC endpoints in Taquito.
  • Compatibility support for Florencenet (009-PsFLoren)

Other

  • Taquito npm preview registry for current Taquito builds all the time
  • Website preview builds from PR & Website now hosted on Netlify

Bug fixes

  • Nat/Int encoding of large numbers.
  • Graceful error handling for getDelegate method.
  • Save operation hash before executing on the network - better debugging 🚀🚀
  • Fix encoding of lambda value in the michelson-encoder

Testing improvements

  • Better coverage for getBlock endpoint.

Documentation updates

Pack and unpack data locally

Before v8.1, Taquito provided an API to pack data using Tezos RPC. This release introduces local packing and unpacking data, allowing for security-conscious off-line operations and faster dapps because of fewer RPC requests. allows the getBigMapKeyByID to use the new michel-codec packData implementation

Local pack means that fetching big map values is now 50% faster! Big map keys must be encoded using the PACK method, so Taquito needed to use the rpc.packData() method. As of v8.1 Taquito, users can opt to pack big map keys locally, eliminating an RPC round trip.

This feature is opt-in, meaning that the Taquito user must enable it to benefit from faster big map fetching. The RPC key backing method is still the default. See Local packing for big maps

npm preview registry - Delivering continuous delivery

Developers can now test and evaluate new features and bug fixes as soon as possible without having to clone and locally link Taquito. Preview builds are published to our npm preview registry from all pull requests (except PR's from forks).

IMPORTANT NOTE: Preview builds are not official releases. They are helpful for testing and evaluating new features in Taquito. Preview builds may contain incomplete features or features that have not been fully tested.

Fetch multiple bigmaps at once.

Taquito now provides a new API getMultipleValues that fetches multiple keys in a single call. Taquito ensures that all fetched keys are fetched from the same block level. Future enhancements for this feature may include Taquito directly fetching multiple big maps from an RPC call as and when such an RPC is added to the Tezos nodes. See docs here

Expanded property value support for tickets and better nat type support.

The Michelson encoder package initially supported tickets having a value property of type nat, but now it has been updated to support every comparable token. Additionally, when invoking a contract with nat as a parameter, encoding a numeral with more than 21 digits has been fixed.

Save operation hash before executing on the network - better debugging.

Developers now can calculate the hash of an operation before injection using a newly introduced utility from utils package. With this utility, it is possible to obtain the operation hash before sending it to the node.

Forward compatibility for Florence

v8.1 supports Florence net. All the Taquito integration tests are run against the Florence testnet.

Documentation Additions and Improvments

Documentation on the Taquito website continues to grow and be refined. Developers can now read docs explaining what tickets are, their use cases, and example code reading tickets with various data values.

Live code examples on the website now use Edonet.

CodeBlock and Playground folders, along with contracts that work with live code, now rely on the Edonet testnet.

For enabling local pack (MichelCodecPacker()) for big map values, there are now instructions and documentation about the benefits of doing so.

Developers can now opt in to use Taquito's local pack implementation when fetching Big Map values. This feature makes fetching Big Map values 50% faster. Big Map keys need to be serialized or PACK'ed, and Taquito relied on the Tezos PACK RPC to PACK the bigmap keys.

By relying on the local pack implementation, we eliminate one RPC roundtrip when fetching Big Map Values. To enable this feature, developers must call the tezos. setPackerProvider(new MichelCodecPacker()); on the program's TezosToolkit instance.

Website now uses Netlify

Netlify provides the deployment/hosting of the Taquito website. The primary motivation is so that we get full preview deployments of the website from PRs.

More RPC endpoints added to Taquito

New RPC endpoints are added to the Taquito RPC package providing better edonet support while marking endpoints that have been deprecated.

Graceful error handling for getDelegate method and testing improvements.

The Tezos RPC returns an HTTP 404 when requesting a delegate for an account with no Delegate. Taquito now returns null without throwing an exception for this case.

Test coverage for the getBlock endpoint has been improved

What's coming next for Taquito?

We will soon be working on integrating Florence, the next Tezos protocol update proposal. We plan to deliver a final version of Taquito v9 much earlier, giving teams a longer runway to upgrade their projects before protocol transition.

Developer Experience is our high-priority item, and we have improvements in our backlog that we plan to start work. We are improving the `michelson-encoder implementation to open the door for Type generation from contracts and to provide easier discoverability of what parameters endpoints and initial storage take. Stay tuned!

We have a good practice of Continuous Delivery in Taquito, but we plan to take this to the next level. Stay tuned!

If you have feature or issue requests, please create an issue on http://github.com/ecadlabs/taquito/issues or join us on the Taquito community support channel on Telegram https://t.me/tezostaquito

Pack/unpack implementation, fetch multiple big map values, beacon-sdk update, and more

25 Mar 01:44
Compare
Choose a tag to compare
  • Packing/Unpacking data #613
  • Use local packData implementation to encode big map keys #667
  • Website documentation on how to enable local pack for Big Maps #726
  • Support for the new RPC endpoints votes/current_period, votes/successor_period #601
  • Taquito API to fetch multiple big maps at once #607
  • Added a util function to calculate operation hash #435
  • Fix to encode nat and int longer than 1e+21 #637
  • Fix to support all comparable types for property value of ticket #686
  • Website documentation about Tickets #725
  • Return null when an account has no delegate #556
  • Build and publish Taquito to npm from pull requests #506
  • Add more test coverage for the getBlock endpoint #35
  • Update documentation to change 'Thanos' wallet to 'Temple' Wallet #688
  • Update Taquito Docs website live code examples to use edonet #566
  • Compatibility support for Florencenet (Florencenobanet)
  • Updated beacon-sdk to version 2.2.3