@robertprp/intents-sdk
Version:
Shogun Network Intent-based cross-chain swaps SDK
28 lines • 1.07 kB
JavaScript
import { isValidSuiAddress, normalizeSuiAddress } from '@mysten/sui/utils';
import { MAX_UINT_64 } from '../../constants.js';
import { BaseValidator } from '../../utils/base-validator.js';
const SUI_TOKEN_ADDRESS_REGEX = /^0x[a-fA-F0-9]{64}::\w+::\w+$/;
export class SuiValidator extends BaseValidator {
isValidAddress(address) {
return isValidSuiAddress(normalizeSuiAddress(address));
}
isValidTokenAddress(tokenAddress) {
const [address] = tokenAddress.split('::');
const isValidAddress = address !== undefined ? this.isValidAddress(address) : false;
return isValidAddress && SUI_TOKEN_ADDRESS_REGEX.test(tokenAddress);
}
isValidAmount(amount) {
return amount > 0n && amount < MAX_UINT_64;
}
getChainName() {
return 'Sui';
}
async validateCrossChainOrderFeasability() {
// No chain-specific validation implemented for now for Sui
return;
}
validateSingleChainOrderFeasability() {
return Promise.resolve();
}
}
//# sourceMappingURL=validator.js.map