🚀 Big News: Socket Acquires Coana to Bring Reachability Analysis to Every Appsec Team.Learn more
Socket
Book a DemoInstallSign in
Socket

sw-fe-sdk

Package Overview
Dependencies
Maintainers
1
Versions
24
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

sw-fe-sdk

MPC key management and build ERC4337 transaction

0.0.5
latest
npm
Version published
Weekly downloads
2
Maintainers
1
Weekly downloads
 
Created
Source

SDK For Smarter Wallet Frond End

MPC key management and build ERC4337 transaction

Features

  • MPC key management
  • Build AA transaction

Installation

To install the package, run the following command:

npm install sw-fe-sdk

Usage

Before using the package, make sure to import the required modules and configure the necessary variables:

import { MPCManageAccount } from 'sw-fe-sdk';
import { JSONBigInt } from 'sw-fe-sdk';

Configuration

Set up the RPC URL and other constants:

const rpcUrl = "https://mumbai-rpc.web3idea.xyz"; // Replace with your RPC URL
// ... other constants

Creating an MPC Account

To initialize and use an MPC account, follow these steps:

  • Initialize the account with the given key string:
const mpcAccount = new MPCManageAccount(
  rpcUrl, 
  mpcBackendApiUrl, 
  mpcWasmUrl, 
  walletFactoryAddres, 
  authorization, 
  createWalletApiUrl
);

// mpcKeyStr is string, e.g.: '{"Id":1,"ShareI":219499044982805701588892377127447501004150432209403709303384334655408914819632,"PublicKey":{"Curve":"secp256k1","X":97292621653416266750380703637875538596866301353776849812982916816163853412988,"Y":32440693875191451391160231867342089322288044048122424317742935922111154446039},"ChainCode":"013d57fb4dea99754bc3773dedf201f9c555684eab127a529d335663c0063425c9","SharePubKeyMap":{"1":{"Curve":"secp256k1","X":29161051009961544429569809800230777877472024870500305033506395207674118416373,"Y":44796153314212729221467409179106608297103339961871905099986927630538307838333},"2":{"Curve":"secp256k1","X":40713022408703343240041761412242766867715143730321538117446016757996923246685,"Y":54311185172390094674585055235636263490742909410647712991051877387418786801570},"3":{"Curve":"secp256k1","X":36535362237429459090412737650018500331292975515911824642793483191706305761009,"Y":97503616435531946333830622361346685900869373933095170990256609518446036018220}}}'
await mpcAccount.initAccount(mpcKeyStr);
  • Calculate the owner address:
const ownerAddress = await mpcAccount.getOwnerAddress();
console.log("Owner Address:", ownerAddress);

Transactions

Transfer Native Token with token pay master

To build a transaction for transferring native tokens:

const gasPrice = await ethersWallet.getGasPrice();
const op = await mpcAccount.buildTxTransferNativeToken(
  entryPointAddress,
  gasPrice,
  "0xRecipientAddress", // Replace with the recipient's address
  ethers.utils.parseEther("Amount"), // Replace with the amount to send
  tokenPaymasterAddress,
  payGasFeeTokenAddress
);
console.log("Transfer native token tx op:", JSONBigInt.stringify(op));

Transfer Native Token without token pay master

TODO

Transfer ERC20 Token with token pay master

To build a transaction for transferring ERC20 tokens:

const gasPrice = await ethersWallet.getGasPrice();
const op = await mpcAccount.buildTxTransferERC20Token(
  entryPointAddress,
  gasPrice,
  "0xRecipientAddress", // Replace with the recipient's address
  ethers.utils.parseEther("Amount"), // Replace with the amount to send
  "0xTokenAddress", // Replace with the ERC20 token address
  tokenPaymasterAddress,
  payGasFeeTokenAddress
);
console.log("Transfer ERC20 token tx op:", JSONBigInt.stringify(op));

Transfer ERC20 Token without token pay master

TODO

FAQs

Package last updated on 05 Mar 2024

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts