1.3.9 • Published 11 months ago

zkt-sdk v1.3.9

Weekly downloads
-
License
ISC
Repository
github
Last release
11 months ago

zkt-sdk

zkToken | JS SDK

library designed to interact with zkETH contracts on Ethereum and other supported blockchains. It provides methods to deposit native tokens and ERC-20 tokens, manage token approvals, and handle authentication.

Installation and Running

To install ZkETH, use npm or yarn:

npm install zketh

or

yarn add zketh

As a package for typescript project

Initiate zketh instance:

import { ZkEth, ethers } from "zkt-sdk";

const main = async () => {
    const provider = new ethers.JsonRpcProvider('https://ethereum-holesky.publicnode.com');
    const signer = new ethers.Wallet(privateKey, provider);

    // Define the chain ID (e.g., 17000 for holesky)
    const zkEth = new ZkEth(signer, 17000); // holesky

    try {
        const tx = await zkEth.depositNative(20n, '0x3077Bf667dBD81d3c718684Da4DE4Dc8448220E1', 0); // 20 wei

        const txReceipt = await tx.wait();

    } catch (e) {
        console.log("error:", e);
    }

    console.log('venu!');
};

main();

Example in React Project

Here's an example of how to use the zkt-lib library with ethers v5 lib:

using Ethers v6:

    import { ZkEth } from "zkt-sdk";
    import { ethers } from 'ethers';

    const provider = new ethers.BrowserProvider(window.ethereum, { name: 'polygon', chainId: 137 });

    const zkEth = new ZkEth(provider, 137);

    await zkEth.depositNative(33, '0x3077Bf667dBD81d3c718684Da4DE4Dc8448220E1', 0)

zkt-sdk also export ethers v6 instance:

import { ZkEth, SupportedChain ,ethers} from "zketh";

const provider = new ethers.JsonRpcProvider("YOUR_RPC_URL");
const signer = provider.getSigner();

// Define the chain ID (1 for Ethereum mainnet)
const chainId: SupportedChain = 1;

// Instantiate the ZkEth class
const zkEth = new ZkEth(signer, chainId);

// Use the ZkEth instance to interact with zkETH contracts
async function main() {
    const tokenContract = await zkEth.getTokenContract("usdt");
    console.log("Token contract address:", tokenContract.address);

    const depositTx = await zkEth.depositNative(BigInt("1000000000000000000"), "0xRecipientAddress");
    console.log("Deposit transaction:", depositTx);
}

main().catch(console.error);

As a package file for the nodejs

  1. Install all dependencies
yarn
  1. Generate a node js package
yarn run build

Node js version of the files will be generated to lib

Methods

  • getZkETHContract
async getZkETHContract(): Promise<ethers.Contract>

Returns an instance of the zkETH contract.

  • getTokenAddress
getTokenAddress(token: TokenName): string

Returns the address of a specified token.

token: The name of the token. Valid names are "usdt", "usdc", "link", "wsteth".

  • getTokenListsWithMetadata
getTokenListsWithMetadata(): TokenMetadataType[]

Returns a list of tokens with their metadata.

  • getTokenContract
async getTokenContract(token: TokenName): Promise<ethers.Contract>

Returns an instance of the specified token's contract.

token: The name of the token.

  • depositNative
async depositNative(
    amountInWei: bigint,
    onBehalfOf: string
): Promise<any>

Deposits native tokens (ETH/MATIC) into the zkETH contract.

amountInWei: The amount to deposit, in wei. onBehalfOf: The address on whose behalf the deposit is made.

  • approve
async approve(token: TokenName, amount: bigint): Promise<any>
Approves the zkETH contract to spend a specified amount of a token.

token: The name of the token. amount: The amount to approve.

  • revokeApprove
async revokeApprove(token: TokenName): Promise<any>
Revokes the approval for the zkETH contract to spend a specified token.

token: The name of the token.

  • allowance
async allowance(token: TokenName): Promise<any>
get the allowed amount for the zkETH contract to spend on specified token.

token: The name of the token.

  • depositTokens
async depositTokens(
    token: TokenName,
    amount: bigint,
    onBehalfOf: string
): Promise<any>

Deposits ERC-20 tokens into the zkETH contract.

token: The name of the token. amount: The amount to deposit. onBehalfOf: The address on whose behalf the deposit is made.

Development

To contribute to the development of ZkETH, clone the repository and install the dependencies:

git clone https://github.com/spaceandtimelabs/zkt-sdk-js.git
cd zketh
npm install

Contributing

We welcome contributions to zkt-sdk. Please open an issue or submit a pull request on GitHub.

License

ZkETH is released under the MIT License. See the LICENSE file for more details.

1.2.6

1 year ago

1.2.4

1 year ago

1.3.9

11 months ago

1.3.8

11 months ago

1.2.12

1 year ago

1.2.13

1 year ago

1.2.10

1 year ago

1.2.11

1 year ago

1.2.16

1 year ago

1.2.17

1 year ago

1.2.15

1 year ago

1.2.18

1 year ago

1.2.19

1 year ago

1.3.7

12 months ago

1.3.6

12 months ago

1.3.5

12 months ago

1.3.4

1 year ago

1.3.3

1 year ago

1.3.2

1 year ago

1.3.1

1 year ago

1.2.20

1 year ago

1.2.23

1 year ago

1.2.24

1 year ago

1.2.21

1 year ago

1.2.22

1 year ago

1.2.27

1 year ago

1.2.25

1 year ago

1.2.26

1 year ago

1.2.9

1 year ago

1.2.3

1 year ago

1.2.2

1 year ago

1.2.1

1 year ago

1.1.11

1 year ago

1.1.9

1 year ago

1.1.8

1 year ago

1.1.10

1 year ago

1.1.1

1 year ago

1.1.0

1 year ago

1.0.9

1 year ago

1.0.8

1 year ago

1.1.6

1 year ago

1.1.5

1 year ago

1.1.4

1 year ago

1.1.3

1 year ago

1.1.2

1 year ago

1.0.7

1 year ago

1.0.6

1 year ago

1.0.5

1 year ago

1.0.2

1 year ago

1.0.4

1 year ago

1.0.3

1 year ago

1.0.1

1 year ago

1.0.0

1 year ago