0.1.0 • Published 3 months ago

@kanalabs/paymaster-sdk v0.1.0

Weekly downloads
-
License
MIT
Repository
github
Last release
3 months ago

@kanalabs/paymaster-sdk

Install the paymaster SDK

npm i @kanalabs/paymaster-sdk

Initialize SDK with Private Key and projectKey

import { PaymasterSdk } from "@kanalabs/paymaster-sdk";
const sdk = new PaymasterSdk(
  {
    privateKey:
      "user private key", // Optional
  },
  { projectKey: "your project key",
    network: Network.MAINNET // Default is MAINNET
  }
);

Check If user already whitelisted,

const isWhitelisted = await sdk.isWhitelisted();
or
const isWhitelisted = await sdk.isWhitelisted({address: "user address"});

// Response format
{
    success: boolean;
    message: string;
}

It will return { success: true, message: 'whitelisted' } if already whitelisted. It will return { success: true, message: 'not whitelisted' } if it is not whitelisted.

To add user to whitelist

const whitelist = await sdk.addToWhitelist();
or
const whitelist = await sdk.addToWhitelist({address: "user address"});

// Response format
{
    success: boolean;
    message: string;
}

It will return { success: true, message: 'Successfully added' } if successfully whitelisted. It will return { success: true, message: 'already whitelisted' } if user already whitelisted.

Initialize user account default

If that account is not available in Aptos mainnet you can initialize account with the following function.
const initAccount = await sdk.initAccount();
or
const initAccount = await sdk.initAccount({address: "user address"});

// Response format
{
    success: boolean;
    message: string;
}

It will return { success: true, message: 'account initialized' } if successfully initialized.

Initialize user account custom

If that account is not available in Aptos mainnet you can initialize and register a custom coin like lzUSDC, whUSDC.
const initAccount = await sdk.initAccount({coin: "0xf22bede237a07e121b56d91a491eb7bcdfd1f5907926a9e58338f964a01b17fa::asset::USDC"});
or
const initAccount = await sdk.initAccount({address: "user address", coin: "0xf22bede237a07e121b56d91a491eb7bcdfd1f5907926a9e58338f964a01b17fa::asset::USDC"});

// Response format
{
    success: boolean;
    message: string;
}

It will return { success: true, message: 'account initialized' } if successfully initialized.

Sponsor Transactions

To make sponsored transactons you can build they required payload and pass it to the sponsoredTxn

const payload: TransactionPayload = {
    function: "0x1::aptos_account::transfer_coins",
    functionArguments: [
      "0xa197f0ffe941bf5cfca7af28438c8692464316fd8075baf6145c26051bc85d4d",
      0,
    ],
    typeArguments: ["0x1::aptos_coin::AptosCoin"],
  };
  const options: TransactionOptions = { gasUnitPrice: 100, maxGasAmount: 2000 };
try {
    const txn = await sdk.sponsoredTxn({
      data: payload, // Transaction payload
      options: options
    });
    console.log(txn);
    const txnReceipt = await sdk.aptosClient.waitForTransaction({
      transactionHash: txn.hash,
      options: {
        checkSuccess: true,
      },
    });
    console.log("Txn status", txnReceipt.success);
  } catch (error: any) {
    console.log("error", error);
  }

Sponsor Transactions with senderAuth

To make sponsored transactons with senderAuth you have to pass the senderAuth and generated transaction to the sponsoredTxnWithSenderAuth function

const txn = await sdk.sponsoredTxnWithSenderAuth({
  transaction: payload, // Generated transaction
  senderAuth: senderAuth, // Sender auth
  options: options,
});
0.1.0

3 months ago

0.0.9

3 months ago

0.0.8

3 months ago

0.0.7

3 months ago

0.0.5

3 months ago

0.0.6

3 months ago

0.0.4

3 months ago

0.0.3

4 months ago

0.0.2

4 months ago

0.0.1

6 months ago