open-index/open-npm huggingface dataset:
npm package: @mavrykdynamics/mavryk-domains-taquito
Description: A library for interacting with mavryk blockchain using taquito.
Author: Necroskillz
Latest version: 1.26.1

Mavryk Domains Client
====================

The sources for this package are in the main [Mavryk Domains Client](https://gitlab.com/mavryk-network/mavryk-domains-client) repo. Please file issues and pull requests against that repo.

License: MIT

## Disclaimer

THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
npm package: @mavrykdynamics/mavryk-domains-taquito-client
Description: A library for interacting with mavryk blockchain using taquito.
Author: Necroskillz
Latest version: 1.26.1

Mavryk Domains Client
====================

The sources for this package are in the main [Mavryk Domains Client](https://gitlab.com/mavryk-network/mavryk-domains-client) repo. Please file issues and pull requests against that repo.

License: MIT

## Disclaimer

THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
npm package: @mavrykdynamics/taquito-beacon-wallet
Description: Beacon wallet provider
Author: Simon Boissonneault-Robert
Latest version: 20.1.0

# Taquito Beacon Wallet package

_Documentation can be found [here](https://taquito.mavryk.org/docs/wallet_API)_  
_TypeDoc style documentation is available [here](https://taquito.mavryk.org/typedoc/modules/_taquito_beacon_wallet.html)_

## General Information

`@mavrykdynamics/taquito-beacon-wallet` is an npm package implementing the TZIP-10 standard that describes the communication between decentralized applications and wallets. The package provides developers a way to connect a dapp built with Taquito to a wallet giving the freedom to the users of the dapp to choose the wallet they want.

## Install

Install the package as follows

```
npm install @mavrykdynamics/taquito-beacon-wallet
```

## Usage

Create a wallet instance with defined option parameters and set the wallet provider using `setWalletProvider` to the `MavrykToolkit` instance

```ts
import { MavrykToolkit } from '@mavrykdynamics/taquito';
import { BeaconWallet } from '@mavrykdynamics/taquito-beacon-wallet';

const options = {
  name: 'MyAwesomeDapp',
  iconUrl: 'https://taquito.mavryk.org/img/favicon.svg',
  network: { type: 'basenet' },
  enableMetrics: true,
};
const wallet = new BeaconWallet(options);

await wallet.client.subscribeToEvent(
  BeaconEvent.ACTIVE_ACCOUNT_SET,
  async (account) => {
    // An active account has been set, update the dApp UI
    console.log(`${BeaconEvent.ACTIVE_ACCOUNT_SET} triggered: `, account);
  },
);
await wallet.requestPermissions();

const Mavryk = new MavrykToolkit('https://YOUR_PREFERRED_RPC_URL');
Mavryk.setWalletProvider(wallet);
```

## Additional Info

See the top-level [https://github.com/ecadlabs/taquito](https://github.com/ecadlabs/taquito) file for details on reporting issues, contributing and versioning.

## Disclaimer

THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
npm package: @mavrykdynamics/taquito-contracts-library
Description: Can be used as an extension on the MavrykToolkit to provide contracts data
Author: Roxane Letourneau
Latest version: 20.1.0

# Taquito Contracts Library package

`@mavrykdynamics/taquito-contracts-library` allows developers to specify static data related to contracts (i.e., script and entrypoints) avoiding Taquito to fetch them from the network. The `contracts-library` module provide a `ContractsLibrary` class that can be injected as an extension to a MavrykToolkit instance in order to increase dApps performance.

```ts
import { ContractsLibrary } from '@mavrykdynamics/taquito-contracts-library';

const contractsLibrary = new ContractsLibrary();
contractsLibrary.addContract({
    'contractAddress1': {
        script: script1, // obtained from Mavryk.rpc.getNormalizedScript('contractAddress1')
        entrypoints: entrypoints1 // obtained from Mavryk.rpc.getEntrypoints('contractAddress1')
    },
    'contractAddress2': {
        script: script2,
        entrypoints: entrypoints2
    }
})
Mavryk.addExtension(contractsLibrary);
```

See the top-level [https://github.com/ecadlabs/taquito](https://github.com/ecadlabs/taquito) file for details on reporting issues, contributing and versioning.

## API Documentation

TypeDoc style documentation is available on-line [here](https://taquito.mavryk.org/typedoc/modules/_taquito_http_utils.html)

## Disclaimer

THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
npm package: @mavrykdynamics/taquito-http-utils
Description: *TypeDoc style documentation is available [here](https://taquito.mavryk.org/typedoc/modules/_taquito_http_utils.html)*
Author: Simon Boissonneault-Robert
Latest version: 20.1.0

# Taquito HTTP Utilities package
*TypeDoc style documentation is available [here](https://taquito.mavryk.org/typedoc/modules/_taquito_http_utils.html)*

`@mavrykdynamics/taquito-http-utils` is an npm package that provides developers with http functionality for Taquito.

## General Information

The `HttpBackend` class contains a `createRequest` method which accepts options to be passed for the HTTP request (url, method, timeout, json, query, headers, mimeType). This method will help users interact with the RPC with a more familiar HTTP format.

Parameters for `createRequest`:

`url`(string): RPC URL pointing to the Mavryk node 
`method`(string): HTTP method of the request
`timeout`(number): request timeout 
`json`(boolean): Parse response into JSON when set to `true`; defaults to `true`
`query`(object): Query that we would like to pass as an HTTP request
`headers`(object): HTTP request header 
`mimeType`(string): Sets the MIME type of the request; see [MIME types](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)


## Install
The package(s) need to be installed as follows
```
npm install @mavrykdynamics/taquito-http-utils
```

## Usage
Create an instance of `HttpBackend` and call it's member function `createRequest` to construct an HTTP request. 
```ts
import { HttpBackend } from '@mavrykdynamics/taquito-http-utils';

const httpBackend = new HttpBackend();
const response = httpBackend.createRequest<string>({
    url: `/chains/${chain}/blocks/${block}/context/contracts/${address}/script`,
    method: 'GET',
    mimeType: "text; charset=utf-8",
    json: false
});

```

## Additional Info
See the top-level https://github.com/ecadlabs/taquito file for details on reporting issues, contributing, and versioning.


## Disclaimer

THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
npm package: @mavrykdynamics/taquito-local-forging
Description: Provide local forging functionality to be with taquito
Author: Simon Boissonneault-Robert
Latest version: 20.1.0


# Taquito Local Forging package
*TypeDoc style documentation is available [here](https://taquito.mavryk.org/typedoc/modules/_taquito_local_forging.html)*

## General Information

_Forging_ is the act of encoding your operation shell into its binary representation. Forging can be done either remotely by the RPC node, or locally. `@mavrykdynamics/taquito-local-forging` is an npm package that provides developers with local forging functionality.


Operations must be _forged_ and _signed_ before it gets injected to the blockchain.

Example of an unforged operation:
```
{
  branch: 'BLzyjjHKEKMULtvkpSHxuZxx6ei6fpntH2BTkYZiLgs8zLVstvX',
    contents: [
        {
          kind: 'origination',
          counter: '1',
          source: 'mv1NiGqJHiRwivfGULeVz8kV16AnhepCa5rW',
          fee: '10000',
          gas_limit: '10',
          storage_limit: '10',
          balance: '0',
          script: [Object]
        }
    ]
}
```

A forged operation:
```
a99b946c97ada0f42c1bdeae0383db7893351232a832d00d0cd716eb6f66e5616d0035e993d8c7aaa42b5e3ccd86a33390ececc73abd904e010a0a000000000011020000000c0500036c0501036c0502038d00000002030b
```

The forged values can then be parsed back into its JSON counterpart

## Install
Install the package as follows
```
npm install @mavrykdynamics/taquito-local-forging
```
## Usage
```ts
import { MavrykToolkit } from '@mavrykdynamics/taquito'
import { LocalForger } from '@mavrykdynamics/taquito-local-forging'

const Mavryk = new MavrykToolkit('https://YOUR_PREFERRED_RPC_URL');
Mavryk.setProvider({ forger: localForger })
```

## Additional Info
See the top-level [https://github.com/ecadlabs/taquito](https://github.com/ecadlabs/taquito) file for details on reporting issues, contributing and versioning.

## Disclaimer

THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
npm package: @mavrykdynamics/taquito-remote-signer
Description: Remote signer provider
Author: Simon Boissonneault-Robert
Latest version: 20.1.0

# Taquito Remote Signer package
*TypeDoc style documentation is available on-line [here](https://taquito.mavryk.org/typedoc/modules/_taquito_remote_signer.html)*

`@mavrykdynamics/taquito-remote-signer` is an npm package that provides developers with remote signing functionality for Taquito. 

## General Information

If you require the server-side signing of operations on the mainnet, we recommend exploring the use of the Remote Signer package in conjunction with an HSM remote signer such as [Signatory](https://signatory.io/) or [TacoInfra's Remote Signer](https://github.com/tacoinfra/remote-signer).

## Install 

```
npm i --save @mavrykdynamics/taquito
npm i --save @mavrykdynamics/taquito-remote-signer
```

## Usage

When the `RemoteSigner` is configured on the `MavrykToolkit`, Taquito features that require signing support can be used. The Contract API operations will be signed using the signer. Validation of the signature will be conducted before the operation is injected. The `RemoteSigner` can be injected into the `MavrykToolkit` as follows:

```ts
import { MavrykToolkit } from '@mavrykdynamics/taquito';
import { RemoteSigner } from '@mavrykdynamics/taquito-remote-signer';

const Mavryk = new MavrykToolkit('https://YOUR_PREFERRED_RPC_URL');
const signer = new RemoteSigner(pkh, rootUrl);
Mavryk.setSignerProvider(signer);

// Taquito will send a request to the configured Remote Signer to sign the transfer operation:
await Mavryk.contract.transfer({ to: publicKeyHash, amount: 2 });
```

The constructor of the `RemoteSigner` class requires the public key hash and the URL of the remote signer as parameters. It also takes optional headers (i.e., Authorization) and an optional `HttpBackend` to override the default one if needed.

## Additional info

See the top-level [https://github.com/ecadlabs/taquito](https://github.com/ecadlabs/taquito) file for details on reporting issues, contributing, and versioning.

## Disclaimer

THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
npm package: @mavrykdynamics/taquito-rpc
Description: Provides low level methods, and types to invoke RPC calls from a Nomadic Mavryk RPC node
Author: Simon Boissonneault-Robert
Latest version: 20.1.0

# Taquito RPC package
*Documentation can be found [here](https://taquito.mavryk.org/docs/rpc_package)*  
*TypeDoc style documentation is available on-line [here](https://taquito.mavryk.org/typedoc/modules/_taquito_rpc.html)*

`@mavrykdynamics/taquito-rpc` is an npm package that provides low-level methods and types to invoke RPC calls from a Nomadic Mavryk RPC node.

## General Information

The RPC package can be used to query the RPC API of your chosen node. Methods in the RPC package map one-to-one to the corresponding Mavryk RPC API endpoints. All responses from the RPC are returns with TypeScript types.

The higher-level `@mavrykdynamics/taquito` package builds on this RPC package.

## Install

```
npm i --save @mavrykdynamics/taquito-rpc
```

## Usage
### RpcClient

The constructor of the `RpcClient` takes an RPC URL as a parameter and an optional chain (default is main).

```ts
import { RpcClient } from '@mavrykdynamics/taquito-rpc';

const client = new RpcClient('https://YOUR_PREFERRED_RPC_URL');

// Fetching the balance of an account in mumav (micro ꝳ)
const balance = await client.getBalance('mv1Hox9jGJg3uSmsv9NTvuK7rMHh25cq44nv');
```

### RpcClientCache

The `RpcClientCache` class aims to improve the performance of dApps built using Taquito by reducing the number of calls made to the RPC. Its constructor takes a RpcClient instance as a parameter and an optional ttl (time to live). The RpcClient responses will be cached for the period defined by the ttl (default is of 1000 milliseconds). The `RpcClientCache` can be injected to the MavrykToolkit as follow:

```ts
import { MavrykToolkit } from '@mavrykdynamics/taquito';
import { RpcClient, RpcClientCache } from '@mavrykdynamics/taquito-rpc';

const rpcClient = new RpcClient('https://YOUR_PREFERRED_RPC_URL');
const mavryk = new MavrykToolkit(new RpcClientCache(rpcClient));
```
## Additional info

See the top-level project [https://github.com/ecadlabs/taquito](https://github.com/ecadlabs/taquito) for details on reporting issues, contributing and versioning.

## Disclaimer

THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
npm package: @mavrykdynamics/taquito-signer
Description: Provide signing functionality to be with taquito
Author: Simon Boissonneault-Robert
Latest version: 20.1.0

# Taquito Signer package
*Documentation can be found [here](https://taquito.mavryk.org/docs/inmemory_signer)*
*TypeDoc style documentation is available on-line [here](https://taquito.mavryk.org/typedoc/modules/_taquito_signer.html)*

`@mavrykdynamics/taquito-signer` is an npm package that provides developers with signing functionality for Taquito.

## General Information

The Inmemory signer is a local signer implementation that allows you to directly use a private key in your browser or your nodejs app. When the InMemorySigner is configured, all Taquito functionalities that need signing support can be used. The operation will be signed automatically using the signer (no prompt).

This signer implementation is for development workflows.

**Storing private keys in memory is suitable for development workflows but risky for
production use-cases! Use the InMemorySigner appropriately given your risk profile.**

## Install
```
npm i --save @mavrykdynamics/taquito
npm i --save @mavrykdynamics/taquito-signer
```

## Usage
### Loading an unencrypted private key

```js
import { InMemorySigner } from '@mavrykdynamics/taquito-signer';
import { MavrykToolkit } from '@mavrykdynamics/taquito';

const Mavryk = new MavrykToolkit('https://YOUR_PREFERRED_RPC_URL');

Mavryk.setProvider({ signer: await InMemorySigner.fromSecretKey('edsk...') });
```

### Loading an encrypted private key with a passphrase

If your private key is encrypted, you can specify a passphrase to decrypt it. Doing so will automatically decrypt the key and allow you to use the signer to sign transactions.

```js
import { InMemorySigner } from '@mavrykdynamics/taquito-signer';
import { MavrykToolkit } from '@mavrykdynamics/taquito';

const Mavryk = new MavrykToolkit('https://YOUR_PREFERRED_RPC_URL');
Mavryk.setProvider({
  signer: await InMemorySigner.fromSecretKey('your_private_key', 'your_passphrase'),
});
```

The following link can be used to fund an address on the different testnets: https://teztnets.com/.

## Additional info

See the top-level [https://github.com/ecadlabs/taquito](https://github.com/ecadlabs/taquito) file for details on reporting issues, contributing and versioning.

## Disclaimer

THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
npm package: @mavrykdynamics/webmavryk-beacon-wallet
Description: Beacon wallet provider
Author: Simon Boissonneault-Robert
Latest version: 2.0.0

<!-- SPDX-License-Identifier: Apache-2.0
     This file has been modified for the WebMavryk fork of Taquito by Mavryk Dynamics (2025).
     Original project: Taquito by ECAD Labs Inc. -->

# WebMavryk Beacon Wallet package

_Documentation can be found [here](https://webmavryk.mavryk.org/docs/wallet_API)_  
_TypeDoc style documentation is available [here](https://webmavryk.mavryk.org/typedoc/modules/_webmavryk_beacon_wallet.html)_

## General Information

`@mavrykdynamics/webmavryk-beacon-wallet` is an npm package implementing the TZIP-10 standard that describes the communication between decentralized applications and wallets. The package provides developers a way to connect a dapp built with WebMavryk to a wallet giving the freedom to the users of the dapp to choose the wallet they want.

## Install

Install the package as follows

```
npm install @mavrykdynamics/webmavryk-beacon-wallet
```

## Usage

Create a wallet instance with defined option parameters and set the wallet provider using `setWalletProvider` to the `MavrykToolkit` instance

```ts
import { MavrykToolkit } from '@mavrykdynamics/webmavryk';
import { BeaconWallet } from '@mavrykdynamics/webmavryk-beacon-wallet';

const options = {
  name: 'MyAwesomeDapp',
  iconUrl: 'https://webmavryk.mavryk.org/img/favicon.ico',
  network: { type: 'basenet' },
  enableMetrics: true,
};
const wallet = new BeaconWallet(options);

await wallet.client.subscribeToEvent(
  BeaconEvent.ACTIVE_ACCOUNT_SET,
  async (account) => {
    // An active account has been set, update the dApp UI
    console.log(`${BeaconEvent.ACTIVE_ACCOUNT_SET} triggered: `, account);
  },
);
await wallet.requestPermissions();

const Mavryk = new MavrykToolkit('https://YOUR_PREFERRED_RPC_URL');
Mavryk.setWalletProvider(wallet);
```

## Additional Info

See the top-level [https://github.com/mavryk-network/webmavryk](https://github.com/mavryk-network/webmavryk) file for details on reporting issues, contributing and versioning.

## Disclaimer

THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
npm package: @mavrykdynamics/webmavryk-contracts-library
Description: Can be used as an extension on the MavrykToolkit to provide contracts data
Author: Roxane Letourneau
Latest version: 2.0.0

<!-- SPDX-License-Identifier: Apache-2.0
     This file has been modified for the WebMavryk fork of Taquito by Mavryk Dynamics (2025).
     Original project: Taquito by ECAD Labs Inc. -->

# WebMavryk Contracts Library package

`@mavrykdynamics/webmavryk-contracts-library` allows developers to specify static data related to contracts (i.e., script and entrypoints) avoiding WebMavryk to fetch them from the network. The `contracts-library` module provide a `ContractsLibrary` class that can be injected as an extension to a MavrykToolkit instance in order to increase dApps performance.

```ts
import { ContractsLibrary } from '@mavrykdynamics/webmavryk-contracts-library';

const contractsLibrary = new ContractsLibrary();
contractsLibrary.addContract({
    'contractAddress1': {
        script: script1, // obtained from Mavryk.rpc.getNormalizedScript('contractAddress1')
        entrypoints: entrypoints1 // obtained from Mavryk.rpc.getEntrypoints('contractAddress1')
    },
    'contractAddress2': {
        script: script2,
        entrypoints: entrypoints2
    }
})
Mavryk.addExtension(contractsLibrary);
```

See the top-level [https://github.com/mavryk-network/webmavryk](https://github.com/mavryk-network/webmavryk) file for details on reporting issues, contributing and versioning.

## API Documentation

TypeDoc style documentation is available on-line [here](https://webmavryk.mavryk.org/typedoc/modules/_webmavryk_http_utils.html)

## Disclaimer

THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
npm package: @mavrykdynamics/webmavryk-core
Description: Classes, interfaces, and types shared across WebMavryk packages
Author: huianyang
Latest version: 2.0.0

<!-- SPDX-License-Identifier: Apache-2.0
     This file has been modified for the WebMavryk fork of Taquito by Mavryk Dynamics (2025).
     Original project: Taquito by ECAD Labs Inc. -->

# WebMavryk Core package

`@mavrykdynamics/webmavryk-core` This package contains classes and interfaces used across WebMavryk packages to avoid circular dependencies.
npm package: @mavrykdynamics/webmavryk-http-utils
Description: <!-- SPDX-License-Identifier: Apache-2.0      This file has been modified for the WebMavryk fork of Taquito by Mavryk Dynamics (2025).      Original project: Taquito by ECAD Labs Inc. -->
Author: Simon Boissonneault-Robert
Latest version: 2.0.0

<!-- SPDX-License-Identifier: Apache-2.0
     This file has been modified for the WebMavryk fork of Taquito by Mavryk Dynamics (2025).
     Original project: Taquito by ECAD Labs Inc. -->

# WebMavryk HTTP Utilities package
*TypeDoc style documentation is available [here](https://webmavryk.mavryk.org/typedoc/modules/_webmavryk_http_utils.html)*

`@mavrykdynamics/webmavryk-http-utils` is an npm package that provides developers with http functionality for WebMavryk.

## General Information

The `HttpBackend` class contains a `createRequest` method which accepts options to be passed for the HTTP request (url, method, timeout, json, query, headers, mimeType). This method will help users interact with the RPC with a more familiar HTTP format.

Parameters for `createRequest`:

`url`(string): RPC URL pointing to the Mavryk node 
`method`(string): HTTP method of the request
`timeout`(number): request timeout 
`json`(boolean): Parse response into JSON when set to `true`; defaults to `true`
`query`(object): Query that we would like to pass as an HTTP request
`headers`(object): HTTP request header 
`mimeType`(string): Sets the MIME type of the request; see [MIME types](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)


## Install
The package(s) need to be installed as follows
```
npm install @mavrykdynamics/webmavryk-http-utils
```

## Usage
Create an instance of `HttpBackend` and call it's member function `createRequest` to construct an HTTP request. 
```ts
import { HttpBackend } from '@mavrykdynamics/webmavryk-http-utils';

const httpBackend = new HttpBackend();
const response = httpBackend.createRequest<string>({
    url: `/chains/${chain}/blocks/${block}/context/contracts/${address}/script`,
    method: 'GET',
    mimeType: "text; charset=utf-8",
    json: false
});

```

## Additional Info
See the top-level https://github.com/mavryk-network/webmavryk file for details on reporting issues, contributing, and versioning.


## Disclaimer

THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
npm package: @mavrykdynamics/webmavryk-local-forging
Description: Provide local forging functionality to be with webmavryk
Author: Simon Boissonneault-Robert
Latest version: 2.0.0

<!-- SPDX-License-Identifier: Apache-2.0
     This file has been modified for the WebMavryk fork of Taquito by Mavryk Dynamics (2025).
     Original project: Taquito by ECAD Labs Inc. -->


# WebMavryk Local Forging package
*TypeDoc style documentation is available [here](https://webmavryk.mavryk.org/typedoc/modules/_webmavryk_local_forging.html)*

## General Information

_Forging_ is the act of encoding your operation shell into its binary representation. Forging can be done either remotely by the RPC node, or locally. `@mavrykdynamics/webmavryk-local-forging` is an npm package that provides developers with local forging functionality.


Operations must be _forged_ and _signed_ before it gets injected to the blockchain.

Example of an unforged operation:
```
{
  branch: 'BLzyjjHKEKMULtvkpSHxuZxx6ei6fpntH2BTkYZiLgs8zLVstvX',
    contents: [
        {
          kind: 'origination',
          counter: '1',
          source: 'mv1NiGqJHiRwivfGULeVz8kV16AnhepCa5rW',
          fee: '10000',
          gas_limit: '10',
          storage_limit: '10',
          balance: '0',
          script: [Object]
        }
    ]
}
```

A forged operation:
```
a99b946c97ada0f42c1bdeae0383db7893351232a832d00d0cd716eb6f66e5616d0035e993d8c7aaa42b5e3ccd86a33390ececc73abd904e010a0a000000000011020000000c0500036c0501036c0502038d00000002030b
```

The forged values can then be parsed back into its JSON counterpart

## Install
Install the package as follows
```
npm install @mavrykdynamics/webmavryk-local-forging
```
## Usage
```ts
import { MavrykToolkit } from '@mavrykdynamics/webmavryk'
import { LocalForger } from '@mavrykdynamics/webmavryk-local-forging'

const Mavryk = new MavrykToolkit('https://YOUR_PREFERRED_RPC_URL');
Mavryk.setProvider({ forger: localForger })
```

## Additional Info
See the top-level [https://github.com/mavryk-network/webmavryk](https://github.com/mavryk-network/webmavryk) file for details on reporting issues, contributing and versioning.

## Disclaimer

THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
npm package: @mavrykdynamics/webmavryk-mavlet-wallet
Description: Mavlet wallet provider
Author: Simon Boissonneault-Robert
Latest version: 2.0.0

<!-- SPDX-License-Identifier: Apache-2.0
     This file has been modified for the WebMavryk fork of Taquito by Mavryk Dynamics (2025).
     Original project: Taquito by ECAD Labs Inc. -->

# WebMavryk Mavlet Wallet package

_Documentation can be found [here](https://webmavryk.mavryk.org/docs/wallet_API)_  
_TypeDoc style documentation is available [here](https://webmavryk.mavryk.org/typedoc/modules/_webmavryk_mavlet_wallet.html)_

## General Information

`@mavrykdynamics/webmavryk-mavlet-wallet` is an npm package implementing the TZIP-10 standard that describes the communication between decentralized applications and wallets. The package provides developers a way to connect a dapp built with WebMavryk to a wallet giving the freedom to the users of the dapp to choose the wallet they want.

## Install

Install the package as follows

```
npm install @mavrykdynamics/webmavryk-mavlet-wallet
```

## Usage

Create a wallet instance with defined option parameters and set the wallet provider using `setWalletProvider` to the `MavrykToolkit` instance

```ts
import { MavrykToolkit } from '@mavrykdynamics/webmavryk';
import { MavletWallet } from '@mavrykdynamics/webmavryk-mavlet-wallet';

const options = {
  name: 'MyAwesomeDapp',
  iconUrl: 'https://webmavryk.mavryk.org/img/favicon.ico',
  network: { type: 'basenet' },
  enableMetrics: true,
};
const wallet = new MavletWallet(options);

await wallet.client.subscribeToEvent(
  MavletEvent.ACTIVE_ACCOUNT_SET,
  async (account) => {
    // An active account has been set, update the dApp UI
    console.log(`${MavletEvent.ACTIVE_ACCOUNT_SET} triggered: `, account);
  },
);
await wallet.requestPermissions();

const Mavryk = new MavrykToolkit('https://YOUR_PREFERRED_RPC_URL');
Mavryk.setWalletProvider(wallet);
```

## Additional Info

See the top-level [https://github.com/mavryk-network/webmavryk](https://github.com/mavryk-network/webmavryk) file for details on reporting issues, contributing and versioning.

## Disclaimer

THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
npm package: @mavrykdynamics/webmavryk-remote-signer
Description: Remote signer provider
Author: Simon Boissonneault-Robert
Latest version: 2.0.0

<!-- SPDX-License-Identifier: Apache-2.0
     This file has been modified for the WebMavryk fork of Taquito by Mavryk Dynamics (2025).
     Original project: Taquito by ECAD Labs Inc. -->

# WebMavryk Remote Signer package
*TypeDoc style documentation is available on-line [here](https://webmavryk.mavryk.org/typedoc/modules/_webmavryk_remote_signer.html)*

`@mavrykdynamics/webmavryk-remote-signer` is an npm package that provides developers with remote signing functionality for WebMavryk. 

## General Information

If you require the server-side signing of operations on the mainnet, we recommend exploring the use of the Remote Signer package in conjunction with an HSM remote signer such as [Signatory](https://signatory.io/) or [TacoInfra's Remote Signer](https://github.com/tacoinfra/remote-signer).

## Install 

```
npm i --save @mavrykdynamics/webmavryk
npm i --save @mavrykdynamics/webmavryk-remote-signer
```

## Usage

When the `RemoteSigner` is configured on the `MavrykToolkit`, WebMavryk features that require signing support can be used. The Contract API operations will be signed using the signer. Validation of the signature will be conducted before the operation is injected. The `RemoteSigner` can be injected into the `MavrykToolkit` as follows:

```ts
import { MavrykToolkit } from '@mavrykdynamics/webmavryk';
import { RemoteSigner } from '@mavrykdynamics/webmavryk-remote-signer';

const Mavryk = new MavrykToolkit('https://YOUR_PREFERRED_RPC_URL');
const signer = new RemoteSigner(pkh, rootUrl);
Mavryk.setSignerProvider(signer);

// WebMavryk will send a request to the configured Remote Signer to sign the transfer operation:
await Mavryk.contract.transfer({ to: publicKeyHash, amount: 2 });
```

The constructor of the `RemoteSigner` class requires the public key hash and the URL of the remote signer as parameters. It also takes optional headers (i.e., Authorization) and an optional `HttpBackend` to override the default one if needed.

## Additional info

See the top-level [https://github.com/mavryk-network/webmavryk](https://github.com/mavryk-network/webmavryk) file for details on reporting issues, contributing, and versioning.

## Disclaimer

THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
npm package: @mavrykdynamics/webmavryk-rpc
Description: Provides low level methods, and types to invoke RPC calls from a Nomadic Mavryk RPC node
Author: Simon Boissonneault-Robert
Latest version: 2.0.0

<!-- SPDX-License-Identifier: Apache-2.0
     This file has been modified for the WebMavryk fork of Taquito by Mavryk Dynamics (2025).
     Original project: Taquito by ECAD Labs Inc. -->

# WebMavryk RPC package
*Documentation can be found [here](https://webmavryk.mavryk.org/docs/rpc_package)*  
*TypeDoc style documentation is available on-line [here](https://webmavryk.mavryk.org/typedoc/modules/_webmavryk_rpc.html)*

`@mavrykdynamics/webmavryk-rpc` is an npm package that provides low-level methods and types to invoke RPC calls from a Nomadic Mavryk RPC node.

## General Information

The RPC package can be used to query the RPC API of your chosen node. Methods in the RPC package map one-to-one to the corresponding Mavryk RPC API endpoints. All responses from the RPC are returns with TypeScript types.

The higher-level `@mavrykdynamics/webmavryk` package builds on this RPC package.

## Install

```
npm i --save @mavrykdynamics/webmavryk-rpc
```

## Usage
### RpcClient

The constructor of the `RpcClient` takes an RPC URL as a parameter and an optional chain (default is main).

```ts
import { RpcClient } from '@mavrykdynamics/webmavryk-rpc';

const client = new RpcClient('https://YOUR_PREFERRED_RPC_URL');

// Fetching the balance of an account in mumav (micro ꝳ)
const balance = await client.getBalance('mv1Hox9jGJg3uSmsv9NTvuK7rMHh25cq44nv');
```

### RpcClientCache

The `RpcClientCache` class aims to improve the performance of dApps built using WebMavryk by reducing the number of calls made to the RPC. Its constructor takes a RpcClient instance as a parameter and an optional ttl (time to live). The RpcClient responses will be cached for the period defined by the ttl (default is of 1000 milliseconds). The `RpcClientCache` can be injected to the MavrykToolkit as follow:

```ts
import { MavrykToolkit } from '@mavrykdynamics/webmavryk';
import { RpcClient, RpcClientCache } from '@mavrykdynamics/webmavryk-rpc';

const rpcClient = new RpcClient('https://YOUR_PREFERRED_RPC_URL');
const mavryk = new MavrykToolkit(new RpcClientCache(rpcClient));
```
## Additional info

See the top-level project [https://github.com/mavryk-network/webmavryk](https://github.com/mavryk-network/webmavryk) for details on reporting issues, contributing and versioning.

## Disclaimer

THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.