Relay protocol SDK
npm install @relay-protocol/settlement-sdkTypeScript SDK for encoding/decoding and passing messages accross the Relay Settlement Protocol.
``bash`
npm install @relay-protocol/settlement-sdkor
yarn add @relay-protocol/settlement-sdk
`typescript
import {
encodeOrderCall,
decodeOrderCall,
getOrderId,
} from "@relay-protocol/settlement-sdk"
// Encode an order call
const encoded = encodeOrderCall({
vmType: "ethereum-vm",
call: {
to: "0x...",
data: "0x...",
value: "1000000000000000000",
},
})
// Decode an order call
const decoded = decodeOrderCall(encoded, "ethereum-vm")
// Get order ID
const orderId = getOrderId(order, chainsConfig)
`
`typescript
import {
encodeAddress,
decodeAddress,
VmType,
} from "@relay-protocol/settlement-sdk"
// Encode address for a specific VM type
const encoded = encodeAddress("bc1q...", "bitcoin-vm")
const decoded = decodeAddress(encoded, "bitcoin-vm")
`
`typescript
import {
generateAddress,
generateTokenId,
} from "@relay-protocol/settlement-sdk"
// Generate virtual address
const virtualAddress = generateAddress({
family: "ethereum-vm",
chainId: 1n,
address: "0x...",
})
// Generate token ID
const tokenId = generateTokenId({
family: "ethereum-vm",
chainId: 1n,
address: "0x...",
})
`
`typescript
import {
encodeWithdrawal,
decodeWithdrawal,
getDepositoryDepositMessageId,
getExecutionMessageId,
} from "@relay-protocol/settlement-sdk"
// Encode/decode withdrawal messages
const encoded = encodeWithdrawal(withdrawal, vmType)
const decoded = decodeWithdrawal(encoded, vmType)
// Get message IDs
const depositId = getDepositoryDepositMessageId(message)
const executionId = getExecutionMessageId(message)
`
- bitcoin-vmethereum-vm
- solana-vm
- sui-vm
- hyperliquid-vm
- tron-vm
- lighter-vm`
-
See the TypeScript definitions for complete API documentation.