axie-tools
Version:
TypeScript library and CLI tool for interacting with Axie Infinity marketplace and NFTs on Ronin network. Features marketplace operations (buy/sell/delist), batch transfers, and wallet information.
31 lines (25 loc) • 1.09 kB
text/typescript
import { ethers } from 'ethers';
export interface DelegationData {
from_address: string;
to_address: string;
delegated_at: number;
delegator_slips_percent: number;
}
export function generateDelegationMessage(data: DelegationData): string {
return `from_address=${data.from_address.toLowerCase()}&to_address=${data.to_address.toLowerCase()}&delegated_at=${data.delegated_at}&delegator_slips_percent=${data.delegator_slips_percent}`;
}
export async function signDelegation(wallet: ethers.Wallet, toAddress: string, delegatedAt: number, delegatorSlipsPercent: number = 100): Promise<{ message: string; signature: string }> {
const fromAddress = await wallet.getAddress();
const data: DelegationData = {
from_address: fromAddress.toLowerCase(),
to_address: toAddress.toLowerCase(),
delegated_at: delegatedAt,
delegator_slips_percent: delegatorSlipsPercent
};
const message = generateDelegationMessage(data);
const signature = await wallet.signMessage(message);
return {
message,
signature
};
}