privvyrelaylinkadapter
v1.0.1
Published
A relay.link adaptor to use privvy server-side actions
Maintainers
Readme
Privvy Relay Link Adapter
A relay.link adapter to use Privvy server-side actions for blockchain transactions, enabling easy cross-chain operations.
Installation
npm install privvyrelaylinkadapterUsage
import { PrivyRelayLinkAdaptor } from 'privvyrelaylinkadapter';
import { PrivyClient } from '@privy-io/server-auth';
import { mainnet, arbitrum, base } from 'viem/chains';
// Initialize the adapter with supported chains
const supportedChains = [mainnet, arbitrum, base];
const currentChainIndex = 0; // Index of the initial chain in the supportedChains array
const currentWalletId = 'your-privy-wallet-id'; // The Privy wallet ID for the user's wallet
//Get all env vars from privvy
const privyClient = new PrivyClient(
process.env.NEXT_PUBLIC_PRIVY_APP_ID,
process.env.PRIVY_APP_SECRET,
{
walletApi: {
authorizationPrivateKey: process.env.PRIVY_DELEGATION_KEY,
},
},
);
const adapter = new PrivyRelayLinkAdaptor(
privyClient, // PrivyClient instance
currentWalletId, // Privy user's wallet ID
desiredConfirmations, // Number of confirmations to wait for
supportedChains, // Array of supported Viem chains
currentChainIndex, // Index of the current chain in supportedChains
verbose // Optional: Enable verbose logging
);
// Execute a cross-chain swap
const swap = await adapter.executeSwap(
fromChainId, // Source chain ID
toChainId, // Destination chain ID
fromCurrency, // Source currency address, 0x0000000000000000000000000000000000000000 if native currency
toCurrency, // Destination currency address, 0x0000000000000000000000000000000000000000 if native currency
amountWei, // Amount in wei (Input or Output, according to trade type, see below)
userAddress, // User's wallet address
"EXACT_OUTPUT" // Trade type: Either EXACT_INPUT for quoting via an input amount, or EXACT_OUTPUT for quoting via an output amount.
);Features
- Seamless integration with Privvy's server-side actions
- Support for multiple EVM chains through Viem
- Cross-chain transaction support
- Transaction confirmation handling with configurable confirmations
- Message signing support (EIP-191 and EIP-712)
- Verbose logging option for debugging
- Support for both native and token currencies
- Easily switch current user and current source chain on the fly.
Please read for more information about how relay.link works.
Requirements
- @privy-io/server-auth
- @reservoir0x/relay-sdk
License
ISC
Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
