Releases: ecadlabs/taquito
Taquito v9.1.0-beta
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 theOrToken
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
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 theOrToken
class
9.1.0-beta-RC.0
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 theOrToken
class
9.0.1
Taquito v9.0.0-beta - Florence compatibility support
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
- 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 theBigMapAbstraction
class and the methodgetBigMapKeysByID
of theRpcContractProvider
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
- Allows fetching big map with a key of type string, number, or object. This includes a breaking change for the method
getMultipleValues
of theBigMapAbstraction
class and the methodgetBigMapKeysByID
of theRpcContractProvider
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
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
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
- Tickets
- Local pack/unpack, including bigmaps.
- Nomenclature change for Thanos to Temple wallet.
- Build time pre-requisites for Taquito.
- Documentation website examples now uses the edonet testnet
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
- 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