npm install git+https://github.com/Emmet-Finance/Emmet.SDK.V2.0.git
Installation with npm
:
npm install emmet-sdk-v2
Installation with yarn
:
yarn add emmet-sdk-v2
|____src
| |____abis (Contract ABIs)
| | |____messageTransmitter.ts (Circle Transmitter)
| | |____erc20.ts (ERC20 / USDC)
| | |____index.ts (Folder exports)
| | |____TokenMessengerABI.ts (Circle Messenger)
| |____types (Library types and constants)
| | |____consts.ts (General constants)
| | |____tokens.ts (Token-related constants)
| | |____index.ts (Folder exports)
| | |____chains.ts (Chain-related types & constants)
| |____utils (Utility functions)
| | |____viem.ts (VIEM library involving)
| | |____index.ts (Folder exports)
| | |____chains.ts (Chain object-related)
| | |____address.ts (Blockchain address-related)
| |____index.ts (Library exports)
| |____chains (Blockchain Objects)
| | |____base.ts
| | |____ethereum.ts
| | |____polygonMumbai.ts
| | |____baseSepolia.ts
| | |____arbitrum.ts
| | |____polygon.ts
| | |____sepolia.ts
| | |____optimism.ts
| | |____optimismSepolia.ts
| | |____avalanche.ts
| | |____index.ts
| | |____arbitrumSepolia.ts
| | |____avalancheFuji.ts
-
Mainnet
with infura nodes support- Arbitrum
- Avalanche
- Base (no infura support!)
- Ethereum
- Optimism
- Polygon
-
Testnet
with infura nodes support- Arbitrum Sepolia
- Avalanche Fuji
- Base (no infura support!)
- Ethereum Sepolia
- Optimism Sepolia
- Polygon Mumbai
If infuraApiKey
is provided, an infura node relevant to the provided chainName
will be used. Otherwise a public RPC node will be used for communication with the chosen chain.
import { getProvider } from 'emmet-sdk-v2';
import { config } from 'dotenv';
config();
const { INFURA_API_KEY } = process.env;
const chainName = 'ethereum';
const provider = getProvider(
chainName,
INFURA_API_KEY // (optional)
);
Never use in any environment, where your private key can be exposed to strangers. Only siutable for initial testing or very secure backend.
import { getPrivateKeySigner } from 'emmet-sdk-v2';
import { config } from 'dotenv';
config();
const { PRIVATE_KEY, INFURA_API_KEY } = process.env;
const chainName = 'polygon';
cost backendSigner = getPrivateKeySigner(
chainName,
PRIVATE_KEY,
INFURA_API_KEY // optional
);
import { getBrowserExtentionSigner } from 'emmet-sdk-v2';
import {config} from 'dotenv';
config();
const { INFURA_API_KEY } = process.env;
const chainName = 'base';
const signer = getBrowserExtentionSigner(
chainName
);