Skip to content

Releases: ecadlabs/taquito

Taquito v16.2.0

26 May 22:41
Compare
Choose a tag to compare

Potential Breaking Changes:

  • Some error classes may have been moved to the @taquito/core package. Note to developers if they are exporting any error classes to capture errors, there might be a need to adjust the export path.

  • We have an ongoing error class refactoring which includes ticket #1992 (create an error class hierarchy), #1993 (consolidate duplicate errors in Taquito) and #1994 (improve error classes in individual packages, namely @taquito/utils, @taquito/local-forging and @taquito/signer). Here are a list of notable changes:

    1. @taquito/sapling Class SaplingToolkit function prepareUnshieldedTransaction used to throw InvalidKeyError now throw a InvalidAddressError instead
    2. @taquito/rpc when validateContractAddress used to throw InvalidAddressError will now throw InvalidContractAddressError.
    3. @taquito/sapling prepareUnshieldedTransaction function when validateDestinationImplicitAddress used to throw InvalidAddressError now throw InvalidKeyHashError
    4. @taquito/local-forging smartRollupAddressDecoder used to throw InvalidAddressError now throw InvalidSmartRollupAddressError
    5. @taquito/local-forging used to have class InvalidSmartRollupContractAddressError now is InvalidSmartRollupCommitmentHashError
    6. @taquito/local-forging function smartRollupContractAddressEncoder rename to smartRollupCommitmentHashEncoder
    7. @taquito/signer PrivateKeyError is replaced by common error InvalidKeyError from @taquito/core
  • In @taquito/michelson-encoder we introduced a new semantic { Some: null} to EncodeObject() for nested options type like (option (option nat)). The old semantic still works when making contract calls but will look to deprecated them in the future as table below. And the corresponding Execute() will now return new semantic { Some: 1 } as previously return 1 will be deprecated soon. #2344
    image

Note: There are also significant (backwards compatible) changes to the @taquito/taquito package, largely regarding the flow of preparing, estimating, forging, and injecting operations into a node. No breaking changes are expected, but users are welcomed to reach out to the team if any issues arise.

Summary

New Features

  • Introduction of the new @taquito/core package, which will contain important types and shared classes #1992

Bug Fixes

  • Fixed contract calls with nested option with Some None #2344
  • Fixed a broken isNode check that checks whether the runtime environment is a Node environment or not PR#2498

Improvement

  • @taquito/taquito - Tweaked the functionality of PrepareProvider to not have coupling with Estimation, it will now output PreparedOperation with default fees, gas limits and, storage limits #2257
  • @taquito/taquito - Added a filter for events listener to exclude failed events #2319
  • @taquito/utils - Updated address validation to include smart rollup addresses #2444
  • Removed duplicate error classes and did a small audit to streamline them across all packages #1993
  • Improved error messages and fix relevant error classes in @taquito/local-forging and @taquito/signer #1994

Documentation

  • Updated old Michelson code in our smart contract documentation #2482
  • Updated README to reference Mumbainet #2459
  • Updated wrong example in docs for Tezos domains #2436
  • Added extra detail on complex parameter calls in the docs #2443

Internals

  • OperationEmitter class in @taquito/taquito have been replaced with PrepareProvider and the Provider abstract class #2257
    • RpcContractProvider, RpcEstimateProvider, RpcBatchProvider, and RpcTzProvider no longer extends OperationEmitter, and is replaced with a more lightweight abstract class Provider #2428, #2429, #2430, #2431
  • Removed the dependency axios-fetch-adapter and adapted the code directly into Taquito PR#2457

@taquito/taquito - Added a filter for events listener to exclude failed events

Introduces a new filter excludeFailedOperations to determine whether you'd want to filter out failed events or not

const Tezos = new TezosToolkit(RPC_URL);

Tezos.setStreamProvider(
  Tezos.getFactory(PollingSubscribeProvider)({
    shouldObservableSubscriptionRetry: true, 
    pollingIntervalMilliseconds: 1500 
  })
);

try {
  const sub = Tezos.stream.subscribeEvent({
    tag: 'tagName',
    address: 'KT1_CONTRACT_ADDRESS',
    excludeFailedOperations: true
  });
    
  sub.on('data', console.log);
    
} catch (e) {
  console.log(e);
}

@taquito/taquito - Tweaked the functionality of PrepareProvider

The PrepareProvider is a somewhat new feature to Taquito that allows users to independently create a PreparedOperation object. It's behaviour is slightly changed so that it does not estimate directly when preparing. The estimation and the preparation process are now 2 separate process, removing the circular dependency it used to have.

Taquito v16.2.0-beta-RC.0

23 May 19:13
Compare
Choose a tag to compare
Pre-release

Potential Breaking Changes:

  • Some error classes may have been moved to the @taquito/core package. Note to developers if they are exporting any error classes to capture errors, there might be a need to adjust the export path

Note: There are significant (backwards compatible) changes to the @taquito/taquito package, largely regarding the flow of preparing, estimating, forging, and injecting operations into a node. No breaking changes are expected, but users are welcomed to reach out to the team if any issues arise.

Summary

New Features

  • Introduction of the new @taquito/core package, which will contain important types and shared classes #1992

Bug Fixes

  • Fixed contract calls with nested option with Some None #2344

Improvement

  • @taquito/taquito - Tweaked the functionality of PrepareProvider to not have coupling with Estimation, it will now output PreparedOperation with default fees, gas limits and, storage limits #2257
  • @taquito/taquito - Added a filter for events listener to exclude failed events #2319
  • @taquito/utils - Updated address validation to include smart rollup addresses #2444
  • Removed duplicate error classes and did a small audit to streamline them across all packages #1993
  • Improved error messages and fix relevant error classes in @taquito/local-forging and @taquito/signer #1994

Documentation

  • Updated old Michelson code in our smart contract documentation #2482
  • Updated README to reference Mumbainet #2459
  • Updated wrong example in docs for Tezos domains #2436

Internals

  • OperationEmitter class in @taquito/taquito have been replaced with PrepareProvider and the Provider abstract class #2257
    • RpcContractProvider, RpcEstimateProvider, RpcBatchProvider, and RpcTzProvider no longer extends OperationEmitter, and is replaced with a more lightweight abstract class Provider #2428, #2429, #2430, #2431
  • Removed the dependency axios-fetch-adapter and adapted the code directly into Taquito PR#2457

@taquito/taquito - Added a filter for events listener to exclude failed events

Introduces a new filter excludeFailedOperations to determine whether you'd want to filter out failed events or not

const Tezos = new TezosToolkit(RPC_URL);

Tezos.setStreamProvider(
  Tezos.getFactory(PollingSubscribeProvider)({
    shouldObservableSubscriptionRetry: true, 
    pollingIntervalMilliseconds: 1500 
  })
);

try {
  const sub = Tezos.stream.subscribeEvent({
    tag: 'tagName',
    address: 'KT1_CONTRACT_ADDRESS',
    excludeFailedOperations: true
  });
    
  sub.on('data', console.log);
    
} catch (e) {
  console.log(e);
}

@taquito/taquito - Tweaked the functionality of PrepareProvider

The PrepareProvider is a somewhat new feature to Taquito that allows users to independently create a PreparedOperation object. It's behaviour is slightly changed so that it does not estimate directly when preparing. The estimation and the preparation process are now 2 separate process, removing the circular dependency it used to have.

Taquito v16.1.2

19 Apr 16:02
bcc2118
Compare
Choose a tag to compare

New Feature

v16.1.2 includes the new Beacon SDK 4.0.0. The v4 Beacon SDK ships with substantive changes to the wallet selection modal and to supported transports. The Beacon SDK may introduce some new build issues for Taquito users. Some of these concerns will be addressed in the next Beacon SDK version update.

There are also potential known issues regarding the Kukai wallet connection to ghostnet, but we will continue to be on the lookout for subsequent updates from the Airgap team for the resolution.

Internal Changes

  • Update Algolia search indexing workflow for the Taquito website PR #2434

Taquito v16.1.2-beta-RC.0

10 Apr 23:08
Compare
Choose a tag to compare
Pre-release

New Feature

v16.1.2-beta-RC.0 includes the new Beacon SDK 4.0.0. The v4 Beacon SDK ships with substantive changes to the wallet selection modal and to supported transports. The Beacon SDK may introduce some new build issues for Taquito users.

We are now releasing this as a BETA so that eager users can upgrade immediately and cautious users can hold back. We want to hear from any users that have issues with this new Beacon version, particularly regarding build issuer for your project and wallet connection behaviour when you test your project with the popular Tezos Wallets.

We intend to shake out any remaining issues so that our users, and ultimately your users, have a great experience when using Tezos-based projects.

Taquito v16.1.1

10 Apr 21:44
Compare
Choose a tag to compare

Bug Fixes

  • Fixed an issue where the package forked from vespaiach/axios-fetch-adapter was not able to be resolved by some package managers. We have since published the fork on NPM as @taquito/axios-fetch-adapter PR #2427

Taquito v16.1.0

10 Apr 21:40
Compare
Choose a tag to compare

Summary

  • @taquito/rpc - Added RPC endpoint to add pending transactions in mempool #2382
  • @taquito/rpc - Added support for types of smart rollup operations in the RPC package #2409
    • smart_rollup_publish
    • smart_rollup_cement
    • smart_rollup_recover_bond
    • smart_rollup_refute
    • smart_rollup_timeout
  • @taquito/taquito - Added support for contractCall() in the estimate provider #2019
  • @taquito/taquito - Added support for smart_rollup_originate operation #2306
  • @taquito/taquito - Added utility functions in prepare provider to accomodate forging and operation pre-apply (dry runs) #2256
  • @taquito/local-forging - Added support for set_deposits_limit in the local forger PR #2237

Bug Fixes

  • Fixed a bug with the Prepare Provider where operation counters get carried over in subsequent method calls #2425

Documentation

  • Fixed typo in Taquito README PR #2275
  • Updated example in signing documentation PR #2399
  • Added Exaion node as a commercial provider PR #2401

@taquito/rpc - Added RPC endpoint to add pending transactions in mempool

This RPC endpoint returns the list of prevalidated operations in the mempool. Note that accessibility of the mempool depends on each Node.

await rpcClient.getPendingOperations();

@taquito/taquito - Added support for contractCall() in the estimate provider

The estimate provider now supports estimates for contract calls directly, and is usable as such:

const contract = await Tezos.contract.at(contractAddress!);
const opEntrypoint = contract.methods.default(5);
const estimate = await Tezos.estimate.contractCall(opEntrypoint);

@taquito/taquito - Added smart_rollup_originate operation support

Added support in the contract provider to inject smart_rollup_originate operations

const op = await Tezos.contract.smartRollupOriginate({
  pvmKind: PvmKind.WASM2,
  kernel: ${KERNEL_VALUE} ,
  parametersType: { prim: 'bytes' }
});

@taquito/taquito - Added utility functions in prepare provider to accomodate forging and operation pre-apply (dry runs)

Provided 2 utility functions to convert results from the PrepareProvider (PreparedOperation type objects) into ForgeParams and PreapplyParams

// pre-apply 
const prepared = await Tezos.prepare.transaction({
  amount: 1,
  to: 'tz1ZfrERcALBwmAqwonRXYVQBDT9BjNjBHJu'
});
const params = await Tezos.prepare.toPreapply(prepared);
const preapplyOp = await Tezos.rpc.preapplyOperations(params);

// forge
const prepared = await Tezos.prepare.transaction({
  amount: 1,
  to: 'tz1ZfrERcALBwmAqwonRXYVQBDT9BjNjBHJu'
});
const params = Tezos.prepare.toForge(prepared);
const forgedBytes = await forger.forge(params);

Taquito v16.0.1

31 Mar 00:02
fb064dd
Compare
Choose a tag to compare

Bug Fixes

  • Fixed an issue where the validateContractAddress() method allows incorrect contract addresses that are too long #2398

Documentation

  • Updated RPC nodes to include Mumbainet and remove references to Kathmandunet #2407

Testing

  • Updated tests and flextesa sandbox image for Protocol Mumbai2 #2397

Taquito v16.0.0

16 Mar 20:03
Compare
Choose a tag to compare

Summary

Mumbai Support

  • @taquito/taquito Support new operation smart_rollup_add_messages #2309
  • @taquito/taquito Updated transferTicket operation in the contract API to support ticket transfers between implicit accounts #2320
  • @taquito/local-forging Support new Mumbai operations #2308
    • smart_rollup_originate,
    • smart_rollup_add_messages,
    • smart_rollup_execute_outbox_message
  • @taquito/local-forging updated validation to allow tz4 addresses #2350
  • @taquito/rpc support Mumbai operation types in the RPC package #2307
  • @taquito/rpc added Mumbai protocol constants in the RPC package #2375
  • @taquito/rpc removed consumed_gas property in update_consensus_key return type in the RPC package #2273
  • @taquito/rpc added new RPC endpoints #2270:
    • getTicketBalance
    • getAllTicketBalances
  • @taquito/michel-codec Added support for bytes in these following Michelson instructions #2267:
    • AND, OR, XOR, NOT, LSL, LSR
  • @taquito/michel-codec added support for bytes-nat conversion in Michelson #2268

Bug Fixes

  • Fixed broken website live examples #2305
  • Updated estimation to validate against decimal values to prevent unwanted errors #2318

Documentation

  • Removed Cryptonomic links from the commercial RPC list on the website #2332
  • Added documentation on MANAGER_LAMBDA #1718
  • Added documentation on ~100 most popular contract entrypoint parameter examples on Tezos #2153
  • Fixed broken link on Dapp pre-launch checklist page #2293
  • Fixed broken link on smart contract collection page #2295
  • Fixed broken live code examples on the tezostaquito.io website #2305
  • Removed invalid links and duplicate entries #2332
  • Added documentation for contract entrypoints parameters in JS/TS #2153
  • Fixed broken link on Smart Contract collection page #2295
  • Fixed broken link on DApp pre-launch checklist page #2293
  • Added documentation on MANAGER_LAMBDA #1718
  • Updated Ledger examples to point to Ghostnet PR
  • Updated README to include cases for specific Linux distros PR

Internals

  • Removed Kathmandu references from local-forger #2131
  • Bumped Node versions to 16 PR #1845
  • Delete TezEdge workflows PR
  • Updated Docusaurus version to it's latest stable release (v2.3.1) PR
  • Removed references to older protocols in Taquito and updated integration tests and examples #485

@taquito/taquito - Support for new operation smart_rollup_add_messages

Support for a new manager operation to add messages to a smart rollup inbox have been added, and can be used as follows:

const op = await Tezos.contract.smartRollupAddMessages({
  message: [
    '0000000031010000000b48656c6c6f20776f726c6401bdb6f61e4f12c952f807ae7d3341af5367887dac000000000764656661756c74'
  ]
});

@taquito/rpc - Support for new Mumbai operation types in the RPC package

Added a few new types to accommodate for Mumbai protocol changes:

  • OperationContentsAndResultSmartRollupOriginate
  • OperationContentsAndResultSmartRollupAddMessages
  • OperationContentsAndResultSmartRollupExecuteOutboxMessage
  • OperationResultSmartRollupOriginate
  • OperationResultSmartRollupAddMessages
  • OperationResultSmartRollupExecuteOutboxMessage
  • OperationContentsAndResultMetadataSmartRollupOriginate
  • OperationContentsAndResultMetadataSmartRollupAddMessages
  • OperationContentsAndResultMetadataSmartRollupExecuteOutboxMessage

@taquito/michel-codec - Added support for bytes

The Mumbai protocol update introduces a change where the following Michelson instructions support bytes: AND, OR, XOR, NOT, LSL, LSR

These instructions now have bytes support of the opcodes. For more information, refer to this document

@taquito/michel-codec - Added support for bytes-nat conversion in Michelson

The Mumbai protocol update now supports conversion between bytes and nat as well as bytes and int

For more information, refer to this page

Taquito v15.1.0

17 Jan 20:33
Compare
Choose a tag to compare

Summary

New Features

  • @taquito/taquito New provider support PrepareProvider to facilitate preparation of operations in Taquito. #2020
  • @taquito/taquito Support new operation increase_paid_storage on the wallet API #1768

Bug Fixes

  • Fixed a bug where axios-fetch-adapter was not returning the response body from errors, causing the wrong error to be captured by the calling method #2187

Documentation

  • Update Taquito website live code examples to use Ghostnet endpoint. #2224

Internals

  • Updated Beacon version to v3.3.1 PR
  • Updated Taquito Github Workflows to use Node LTS/Gallium (v16) PR

@taquito/taquito - Added new provider PrepareProvider to facilitate operation preparation

PrepareProvider now extends more control to the user to give them the ability to 'prepare' Tezos operations before forging and injection. The preparation step now can be done through the TezosToolkit class as such:

// example of a transaction operation preparation
const prepare = await Tezos.prepare.transaction({
    to: 'tz1KvJCU5cNdz5RAS3diEtdRvS9wfhRC7Cwj',
    amount: 5
});

The expected output will look something like this:

{
        opOb: {
          branch: 'BLOCK_HASH',
          contents: [
            {
              kind: 'transaction',
              fee: '391',
              gas_limit: '101',
              storage_limit: '1000',
              amount: '5000000',
              destination: 'tz1KvJCU5cNdz5RAS3diEtdRvS9wfhRC7Cwj',
              source: 'PUBLIC_KEY_HASH',
              counter: '1',
            },
          ],
          protocol: 'PROTOCOL_HASH',
        },
        counter: 0,
      }

@taquito/taquito - Increase paid storage operation support in the wallet API

Taquito now supports increase_paid_storage operation in the Wallet API (previously only available in the Contract API).

const op = await Tezos.wallet.increasePaidStorage({
  amount: 1,
  destination: simpleContractAddress
}).send();

Taquito v15.0.1

21 Dec 17:23
Compare
Choose a tag to compare

Hotfix

  • Fixed a bug where the local-forging package was using an outdated version of the codec when it's instantiated without passing in a protocol hash. Updated so that the default value uses the current protocol hash. #2242

Summary

  • @taquito/taquito Support new operation drain_delegate in the Contract API #2068
  • @taquito/local-forging Support new operation drain_delegate #2065

Bug Fixes

  • @taquito/michelson-encoder fix MapTypecheck bug triggered by nested maps ending with a big_map #1762

Documentation

  • Auto hide sticky navbar for mobile view to increase readability on mobile devices.
    PR: #2236

Internals

  • Start running integration tests against testnets for external PRs.
    PR: #2221

@taquito/taquito drain_delegate operation support

A new manager operation related to the consensus_key change in Lima has been added:

const op = await Tezos.contract.updateConsensusKey({
    pk: 'PUBLIC_KEY'
});

await op.confirmation();