# Taquito v14.1.0-beta ## Summary ### New features - `@taquito/taquito` - Provide a subscriber to events #1746 - `@taquiro/rpc` - Support `voting_info` endpoint #1749 - `@taquito/ledger-signer` - Add support for bip25519 curve #1869 ### Bug fixes - `@taquito/http-utils` - Issue using Taquito in service worker environment #2025 - `@taquito/taquito` - `confirmationPollingTimeoutSecond` not working #2006 - `@taquito/taquito` - `PollingSubscribeProvider` used in contract confirmations might skip blocks #1783 - `@taquito/michelson-encoder` - Fixed Michelson encoder for timestamp to handle numbers being passed #1888 ### Improvement - `@taquito/taquito` - Allow users to customize the parser #660 - `@taquito/taquito` - Accept amount, `fee`, `gasLimit`, and `storageLimit` as parameters of the `withContractCall` method #1717 - `@taquito/tzip16` - Add more high level functions for tzip16 metadata #584 - `@taquito/taquito` - Support `string` or `number` for the `balance` property for contract origination #1795 ### Documentation - Documentation page dedicated to multi-sig: https://tezostaquito.io/docs/next/multisig_doc/ - Fixed broken link in the Wallet doc #1865 ### Others - `@taquito-beacon-wallet` - Updated `@airgap/beacon-dapp` to version 3.3.0: https://github.com/airgap-it/beacon-sdk/releases/tag/v3.3.0 ### Internals - Speed up build with nx #2013 - Integrate the taquito-test-dapp into the Taquito pipeline #663 - Add a flextesa node to our CI pipeline #457 - Add unit tests for taquito-beacon-wallet #1863 - Adapt integration tests config so they can be run against a sandbox. #1971 ## `@taquito/taquito` - Provide a subscriber to events Taquito provides a simple way for users to subscribe to certain events on the blockchain via the `PollingSubscribeProvider`. ```typescript const Tezos = new TezosToolkit(RPC_URL); try { const sub = Tezos.stream.subscribeEvent({ tag: 'tagName', address: 'KT1_CONTRACT_ADDRESS' }); sub.on('data', console.log); } catch (e) { console.log(e); } ``` Please refer to the documentation for more information: https://tezostaquito.io/docs/next/subscribe_event ## `@taquiro/rpc` - Support `voting_info` endpoint We added a new method on the `RpcClient` named `getVotingInfo` to support the new RPC endpoint `voting_info` (Kathmandu). The method returns data found on the voting listings for a delegate as follows : ```typescript VotingInfoResponse = { voting_power?: string; current_ballot?: BallotListResponseEnum; current_proposals?: string[]; remaining_proposals?: number; }; ``` ## `@taquito/ledger-signer` - Add support for bip25519 curve We added support for the bip32-ed25519 derivation scheme in the ledger package. It can be used as follows: ```typescript const transport = await TransportNodeHid.create(); const signer = new LedgerSigner( transport, "44'/1729'/0'/0'", false, DerivationType.BIP32_ED25519 ) ``` ## `@taquito/http-utils` - Issue using Taquito in a service worker environment In service worker environments (e.g., Cloudflare workers), `XMLHttpRequest` used by `Axios` is deprecated. When using the `@taquito/http-utils` package in such an environment, the following error was occurring: `TypeError: adapter is not a function`. A fix has been made to use `@vespaiach/axios-fetch-adapter` when not in a nodejs environment. ## `@taquito/taquito` - confirmationPollingTimeoutSecond not working There was an issue with the `confirmationPollingTimeoutSecond` on the `TezosToolkit`. During the operation confirmation (both on the contract and wallet API), the timeout timer restarted on every new block emission. This has been fixed. ## `@taquito/taquito` - `PollingSubscribeProvider` used in contract confirmations might skip blocks When the polling mechanism skipped a block during the operation confirmation for the wallet API, an error `MissedBlockDuringConfirmationError` was thrown. We refactored the implementation to retrieve missed blocks instead of throwing an error. On the contract API side, there was no check whether a block was missed or skipped, and it would just timeout, unable to find the operation after a certain time. The implementation has also been changed to retrieve missed blocks. ## `@taquito/michelson-encoder` - Fixed Michelson encoder for timestamp to handle numbers being passed A bug has been fixed, allowing support of UNIX timestamp number when deploying a contract having a timestamp in storage or calling a contract entry point taking a timestamp in parameter. ## `@taquito/taquito` - Allow users to customize the parser Taquito makes internal uses of the `@taquito/michel-codec` package on smart contract origination, allowing to convert Plain Michelson into JSON Michelson, expand Macros and validate Michelson to ensure its correctness. There is no change in this behavior, but we exposed a `parserProvider` at the TezosToolkit level allowing users to customize if needed. By default, the `parserProvider` is an instance of `MichelCodecParser`. ## `@taquito/taquito` - Accept amount, `fee`, `gasLimit`, and `storageLimit` as parameters of the `withContractCall` method Before version 14.1.0, it was impossible to specify the amount, the fee, the `gasLimit`, and the `storageLimit` when calling a smart contract entry point using the batch API via the withContractCall method. An optional parameter has been added to the method to support this feature and can be used as follows: ```typescript const contract = Tezos.contract.at('contactAddress'); const batch = Tezos.contract.batch() .withContractCall(contract.methods.entrypointName("entrypointParam", { fee: 100, gasLimit: 1000, storageLimit: 10 }) .withContractCall(...) const batchOp = await batch.send(); await batchOp.confirmation(); ``` ## `@taquito/taquito` - Support `string` or `number` for the `balance` property for contract origination The balance property was a string in the parameters to pass to originate a new contract. We changed to accept a number and string, which is more intuitive. ## What's coming next for Taquito? We are currently working on compatibility support for the Lima protocol. We are also investigating the integration of wallet connect 2 in Taquito. 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