@vleap/warps-adapter-fastset 0.1.0-alpha.22 → 0.1.0-alpha.23
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js +3 -0
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +3 -0
- package/dist/index.mjs.map +1 -1
- package/package.json +2 -2
package/dist/index.js
CHANGED
|
@@ -713,6 +713,7 @@ var getFastsetAdapter = createFastsetAdapter(import_warps6.WarpChainName.Fastset
|
|
|
713
713
|
blockTime: 1e3,
|
|
714
714
|
addressHrp: "set",
|
|
715
715
|
defaultApiUrl: "https://proxy.fastset.xyz",
|
|
716
|
+
logoUrl: "https://vleap.ai/images/chains/fastset.svg",
|
|
716
717
|
nativeToken: NativeTokenSet
|
|
717
718
|
},
|
|
718
719
|
testnet: {
|
|
@@ -722,6 +723,7 @@ var getFastsetAdapter = createFastsetAdapter(import_warps6.WarpChainName.Fastset
|
|
|
722
723
|
blockTime: 1e3,
|
|
723
724
|
addressHrp: "set",
|
|
724
725
|
defaultApiUrl: "https://proxy.fastset.xyz",
|
|
726
|
+
logoUrl: "https://vleap.ai/images/chains/fastset.svg",
|
|
725
727
|
nativeToken: NativeTokenSet
|
|
726
728
|
},
|
|
727
729
|
devnet: {
|
|
@@ -731,6 +733,7 @@ var getFastsetAdapter = createFastsetAdapter(import_warps6.WarpChainName.Fastset
|
|
|
731
733
|
blockTime: 1e3,
|
|
732
734
|
addressHrp: "set",
|
|
733
735
|
defaultApiUrl: "https://proxy.fastset.xyz",
|
|
736
|
+
logoUrl: "https://vleap.ai/images/chains/fastset.svg",
|
|
734
737
|
nativeToken: NativeTokenSet
|
|
735
738
|
}
|
|
736
739
|
});
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/sdk/ed25519-setup.ts","../src/sdk/FastsetClient.ts","../src/sdk/index.ts","../src/index.ts","../src/main.ts","../src/WarpFastsetDataLoader.ts","../src/helpers/general.ts","../src/WarpFastsetExecutor.ts","../src/WarpFastsetExplorer.ts","../src/WarpFastsetResults.ts","../src/WarpFastsetSerializer.ts","../src/WarpFastsetWallet.ts"],"sourcesContent":["import * as ed from '@noble/ed25519'\nimport { sha512 } from '@noble/hashes/sha512'\n\n// Configure ed25519 library exactly like the official wallet\nif (ed.etc) {\n // @ts-ignore\n ed.etc.sha512Sync = (...m: Uint8Array[]) => sha512(ed.etc.concatBytes(...m))\n}\n\nexport { ed }\n","import { WarpClientConfig } from '@vleap/warps'\nimport * as bech32 from 'bech32'\nimport { ed } from './ed25519-setup'\n;(BigInt.prototype as any).toJSON = function () {\n return Number(this)\n}\n\nexport interface TransactionData {\n sender: number[] | Uint8Array\n recipient: any\n nonce: number\n timestamp_nanos: bigint\n claim: any\n}\n\nexport interface AccountInfoResponse {\n sender: number[]\n balance: string\n next_nonce: number\n pending_confirmation?: any\n requested_certificate?: any\n requested_validated_transaction?: any\n requested_received_transfers: any[]\n token_balance: Array<[number[], string]>\n requested_claim_by_id?: any\n requested_claims: any[]\n}\n\nexport class Transaction {\n constructor(\n private sender: Uint8Array,\n private recipient: { FastSet: Uint8Array } | { External: Uint8Array },\n private nonce: number,\n private claim: any,\n private timestamp: bigint = BigInt(Date.now()) * 1_000_000n\n ) {\n // Fix claim data - remove 0x prefix from amounts\n if (claim?.Transfer?.amount?.startsWith('0x')) {\n claim = { ...claim, Transfer: { ...claim.Transfer, amount: claim.Transfer.amount.slice(2) } }\n }\n }\n\n toTransaction() {\n return { sender: this.sender, recipient: this.recipient, nonce: this.nonce, timestamp_nanos: this.timestamp, claim: this.claim }\n }\n\n getRecipientAddress() {\n return this.recipient\n }\n getAmount() {\n return this.claim?.Transfer?.amount || ''\n }\n getUserData() {\n return this.claim?.Transfer?.user_data || null\n }\n}\n\nexport interface AccountInfoResponse {\n sender: number[]\n balance: string\n next_nonce: number\n pending_confirmation?: any\n requested_certificate?: any\n requested_validated_transaction?: any\n requested_received_transfers: any[]\n token_balance: Array<[number[], string]>\n requested_claim_by_id?: any\n requested_claims: any[]\n}\n\nexport class FastsetClient {\n private proxyUrl: string\n\n constructor(config?: WarpClientConfig | { proxyUrl: string }, chain?: any) {\n this.proxyUrl = config && 'proxyUrl' in config ? config.proxyUrl : config && chain ? chain.defaultApiUrl : 'https://proxy.fastset.xyz'\n }\n\n private async makeRequest<T = any>(method: string, params: any = {}): Promise<T> {\n const response = await fetch(this.proxyUrl, {\n method: 'POST',\n headers: { 'Content-Type': 'application/json' },\n body: JSON.stringify({ jsonrpc: '2.0', method, params, id: Date.now() }, (k, v) => (v instanceof Uint8Array ? Array.from(v) : v)),\n })\n\n if (!response.ok) throw new Error(`HTTP error! status: ${response.status}`)\n const jsonResponse = await response.json()\n if (jsonResponse.error) throw new Error(`JSON-RPC error ${jsonResponse.error.code}: ${jsonResponse.error.message}`)\n return jsonResponse.result\n }\n\n async getAccountInfo(address: number[]): Promise<AccountInfoResponse> {\n return this.makeRequest('set_proxy_getAccountInfo', { address })\n }\n\n async getNextNonce(address: string | number[]): Promise<number> {\n const addressBytes = typeof address === 'string' ? this.addressToBytes(address) : address\n const accountInfo = await this.getAccountInfo(addressBytes)\n return accountInfo.next_nonce\n }\n\n async submitTransaction(transaction: TransactionData, signature: number[] | Uint8Array): Promise<string> {\n const signatureArray = Array.isArray(signature) ? signature : Array.from(signature)\n const submitTxReq = {\n transaction: {\n sender: transaction.sender instanceof Uint8Array ? transaction.sender : new Uint8Array(transaction.sender),\n recipient: transaction.recipient,\n nonce: transaction.nonce,\n timestamp_nanos: transaction.timestamp_nanos,\n claim: transaction.claim,\n },\n signature: new Uint8Array(signatureArray),\n }\n\n const response = await fetch(this.proxyUrl, {\n method: 'POST',\n headers: { 'Content-Type': 'application/json' },\n body: JSON.stringify({ jsonrpc: '2.0', method: 'set_proxy_submitTransaction', params: submitTxReq, id: 1 }, (k, v) =>\n v instanceof Uint8Array ? Array.from(v) : v\n ),\n })\n\n if (!response.ok) throw new Error(`HTTP error! status: ${response.status}`)\n const jsonResponse = await response.json()\n if (jsonResponse.error) throw new Error(`JSON-RPC error ${jsonResponse.error.code}: ${jsonResponse.error.message}`)\n return jsonResponse.result\n }\n\n async faucetDrip(recipient: number[] | Uint8Array, amount: string): Promise<any> {\n const recipientArray = Array.isArray(recipient) ? recipient : Array.from(recipient)\n return this.makeRequest('set_proxy_faucetDrip', { recipient: recipientArray, amount })\n }\n\n private addressToBytes(address: string): number[] {\n try {\n const decoded = bech32.bech32m.decode(address)\n return Array.from(bech32.bech32m.fromWords(decoded.words))\n } catch {\n const decoded = bech32.bech32.decode(address)\n return Array.from(bech32.bech32.fromWords(decoded.words))\n }\n }\n\n // Wallet utilities\n generateNewWallet(): Wallet {\n const privateKey = ed.utils.randomPrivateKey()\n return new Wallet(Buffer.from(privateKey).toString('hex'))\n }\n\n createWallet(privateKeyHex: string): Wallet {\n return new Wallet(privateKeyHex)\n }\n\n static decodeBech32Address(address: string): Uint8Array {\n try {\n const decoded = bech32.bech32m.decode(address)\n return new Uint8Array(bech32.bech32m.fromWords(decoded.words))\n } catch {\n const decoded = bech32.bech32.decode(address)\n return new Uint8Array(bech32.bech32.fromWords(decoded.words))\n }\n }\n\n static encodeBech32Address(publicKey: Uint8Array): string {\n const words = bech32.bech32m.toWords(publicKey)\n return bech32.bech32m.encode('set', words)\n }\n}\n\nexport class Wallet {\n public readonly publicKey: Uint8Array\n private readonly privateKey: Uint8Array\n\n constructor(privateKeyHex: string) {\n this.privateKey = new Uint8Array(Buffer.from(privateKeyHex.replace(/^0x/, ''), 'hex'))\n this.publicKey = ed.getPublicKey(this.privateKey)\n }\n\n toBech32(): string {\n return bech32.bech32m.encode('set', bech32.bech32m.toWords(this.publicKey))\n }\n\n signTransactionRaw(data: Uint8Array): Uint8Array {\n return ed.sign(data, this.privateKey)\n }\n\n getPrivateKey(): Uint8Array {\n return this.privateKey\n }\n}\n","export * from './FastsetClient'\n","export * from './main'\nexport { FastsetClient, Transaction, Wallet } from './sdk'\nexport { WarpFastsetExecutor } from './WarpFastsetExecutor'\nexport { WarpFastsetWallet } from './WarpFastsetWallet'\n","import { Adapter, AdapterFactory, WarpChainAsset, WarpChainEnv, WarpChainInfo, WarpChainName, WarpClientConfig } from '@vleap/warps'\nimport { WarpFastsetDataLoader } from './WarpFastsetDataLoader'\nimport { WarpFastsetExecutor } from './WarpFastsetExecutor'\nimport { WarpFastsetExplorer } from './WarpFastsetExplorer'\nimport { WarpFastsetResults } from './WarpFastsetResults'\nimport { WarpFastsetSerializer } from './WarpFastsetSerializer'\nimport { WarpFastsetWallet } from './WarpFastsetWallet'\n\nexport const NativeTokenSet: WarpChainAsset = {\n chain: WarpChainName.Fastset,\n identifier: 'SET',\n name: 'SET',\n symbol: 'SET',\n decimals: 6,\n logoUrl: 'https://vleap.ai/images/tokens/set.svg',\n}\n\nfunction createFastsetAdapter(chainName: string, chainPrefix: string, chainInfos: Record<WarpChainEnv, WarpChainInfo>): AdapterFactory {\n return (config: WarpClientConfig, fallback?: Adapter) => {\n const chainInfo = chainInfos[config.env]\n if (!chainInfo) throw new Error(`FastsetAdapter: chain info not found for chain ${chainName}`)\n\n if (!fallback) throw new Error('Fastset adapter requires a fallback adapter')\n\n return {\n chain: chainName,\n chainInfo,\n prefix: chainPrefix,\n builder: () => fallback.builder(),\n executor: new WarpFastsetExecutor(config, chainInfo),\n results: new WarpFastsetResults(config, chainInfo),\n serializer: new WarpFastsetSerializer(),\n registry: fallback.registry,\n explorer: new WarpFastsetExplorer(chainInfo, config),\n abiBuilder: () => fallback.abiBuilder(),\n brandBuilder: () => fallback.brandBuilder(),\n dataLoader: new WarpFastsetDataLoader(config, chainInfo),\n wallet: new WarpFastsetWallet(config, chainInfo),\n }\n }\n}\n\nexport const getFastsetAdapter: AdapterFactory = createFastsetAdapter(WarpChainName.Fastset, 'fastset', {\n mainnet: {\n name: WarpChainName.Fastset,\n displayName: 'FastSet',\n chainId: '1',\n blockTime: 1000,\n addressHrp: 'set',\n defaultApiUrl: 'https://proxy.fastset.xyz',\n nativeToken: NativeTokenSet,\n },\n testnet: {\n name: WarpChainName.Fastset,\n displayName: 'FastSet Testnet',\n chainId: 'testnet',\n blockTime: 1000,\n addressHrp: 'set',\n defaultApiUrl: 'https://proxy.fastset.xyz',\n nativeToken: NativeTokenSet,\n },\n devnet: {\n name: WarpChainName.Fastset,\n displayName: 'FastSet Devnet',\n chainId: 'devnet',\n blockTime: 1000,\n addressHrp: 'set',\n defaultApiUrl: 'https://proxy.fastset.xyz',\n nativeToken: NativeTokenSet,\n },\n})\n","import {\n AdapterWarpDataLoader,\n WarpChainAccount,\n WarpChainAction,\n WarpChainAsset,\n WarpChainInfo,\n WarpClientConfig,\n WarpDataLoaderOptions,\n} from '@vleap/warps'\nimport * as bech32 from 'bech32'\nimport { getConfiguredFastsetClient } from './helpers'\nimport { FastsetClient } from './sdk/FastsetClient'\n\nexport class WarpFastsetDataLoader implements AdapterWarpDataLoader {\n private client: FastsetClient\n\n constructor(\n private readonly config: WarpClientConfig,\n private readonly chain: WarpChainInfo\n ) {\n this.client = getConfiguredFastsetClient(config, chain)\n }\n\n async getAccount(address: string): Promise<WarpChainAccount> {\n const addressBytes = this.addressToBytes(address)\n const accountInfo = await this.client.getAccountInfo(addressBytes)\n\n return { chain: this.chain.name, address, balance: BigInt(parseInt(accountInfo.balance, 16)) }\n }\n\n async getAccountAssets(address: string): Promise<WarpChainAsset[]> {\n const addressBytes = this.addressToBytes(address)\n const accountInfo = await this.client.getAccountInfo(addressBytes)\n\n const assets: WarpChainAsset[] = []\n const balance = BigInt(parseInt(accountInfo.balance, 16))\n if (balance > 0n) {\n assets.push({ ...this.chain.nativeToken, amount: balance })\n }\n\n for (const [tokenId, tokenBalance] of accountInfo.token_balance) {\n const amount = BigInt(parseInt(tokenBalance, 16))\n if (amount > 0n) {\n const tokenInfo = await this.client.getTokenInfo([tokenId])\n const metadata = tokenInfo.requested_token_metadata[0]?.[1]\n\n assets.push({\n chain: this.chain.name,\n identifier: Buffer.from(tokenId).toString('hex'),\n symbol: metadata?.token_name || 'UNKNOWN',\n name: metadata?.token_name || 'Unknown Token',\n decimals: metadata?.decimals || 6,\n logoUrl: undefined,\n amount,\n })\n }\n }\n\n return assets\n }\n\n async getAsset(identifier: string): Promise<WarpChainAsset | null> {\n if (identifier === this.chain.nativeToken.identifier) {\n return this.chain.nativeToken\n }\n\n const tokenId = Buffer.from(identifier, 'hex')\n const tokenInfo = await this.client.getTokenInfo([Array.from(tokenId)])\n const metadata = tokenInfo.requested_token_metadata[0]?.[1]\n if (!metadata) return null\n\n return {\n chain: this.chain.name,\n identifier,\n symbol: metadata.token_name,\n name: metadata.token_name,\n decimals: metadata.decimals,\n logoUrl: undefined,\n amount: BigInt(metadata.total_supply),\n }\n }\n\n async getAction(identifier: string, awaitCompleted = false): Promise<WarpChainAction | null> {\n return null\n }\n\n async getAccountActions(address: string, options?: WarpDataLoaderOptions): Promise<WarpChainAction[]> {\n return []\n }\n\n private addressToBytes(address: string): number[] {\n try {\n const decoded = bech32.bech32m.decode(address)\n return Array.from(bech32.bech32m.fromWords(decoded.words))\n } catch {\n try {\n const decoded = bech32.bech32.decode(address)\n return Array.from(bech32.bech32.fromWords(decoded.words))\n } catch {\n throw new Error(`Invalid FastSet address: ${address}`)\n }\n }\n }\n}\n","import { WarpChainInfo, WarpClientConfig, getProviderUrl } from '@vleap/warps'\nimport { FastsetClient } from '../sdk'\n\nexport const getConfiguredFastsetClient = (config: WarpClientConfig, chain: WarpChainInfo) => {\n const proxyUrl = getProviderUrl(config, chain.name, config.env, chain.defaultApiUrl)\n return new FastsetClient({ proxyUrl })\n}\n","import {\n AdapterWarpExecutor,\n getWarpActionByIndex,\n getWarpWalletAddressFromConfig,\n WarpChainInfo,\n WarpClientConfig,\n WarpExecutable,\n} from '@vleap/warps'\nimport { FastsetClient, Transaction } from './sdk'\n\nexport class WarpFastsetExecutor implements AdapterWarpExecutor {\n private readonly fastsetClient: FastsetClient\n\n constructor(\n private readonly config: WarpClientConfig,\n private readonly chain: WarpChainInfo\n ) {\n this.fastsetClient = new FastsetClient({ proxyUrl: 'https://proxy.fastset.xyz' })\n }\n\n async createTransaction(executable: WarpExecutable): Promise<any> {\n const action = getWarpActionByIndex(executable.warp, executable.action)\n if (action.type === 'transfer') return this.createTransferTransaction(executable)\n if (action.type === 'contract') return this.createContractCallTransaction(executable)\n if (action.type === 'query') throw new Error('WarpFastsetExecutor: Invalid type for createTransaction; Use executeQuery instead')\n if (action.type === 'collect') throw new Error('WarpFastsetExecutor: Invalid type for createTransaction; Use executeCollect instead')\n throw new Error(`WarpFastsetExecutor: Invalid type (${action.type})`)\n }\n\n async createTransferTransaction(executable: WarpExecutable): Promise<Transaction> {\n const userWallet = getWarpWalletAddressFromConfig(this.config, executable.chain.name)\n if (!userWallet) throw new Error('WarpFastsetExecutor: User address not set')\n\n const senderAddress = FastsetClient.decodeBech32Address(userWallet)\n const recipientAddress = FastsetClient.decodeBech32Address(executable.destination)\n const nonce = await this.fastsetClient.getNextNonce(userWallet)\n\n // Get amount from transfers or value\n const amount = executable.transfers?.[0]?.amount ? '0x' + executable.transfers[0].amount.toString(16) : executable.value.toString()\n\n const userData = executable.data ? this.fromBase64(executable.data) : null\n\n const claim = { Transfer: { amount, user_data: userData } }\n return new Transaction(senderAddress, { FastSet: recipientAddress }, nonce, claim)\n }\n\n async createContractCallTransaction(executable: WarpExecutable): Promise<any> {\n const userWallet = this.config.user?.wallets?.[executable.chain.name]\n if (!userWallet) throw new Error('WarpFastsetExecutor: User address not set')\n const action = getWarpActionByIndex(executable.warp, executable.action)\n if (!action || !('func' in action) || !action.func) throw new Error('Contract action must have function name')\n\n return {\n type: 'fastset-contract-call',\n contract: this.fromBase64(executable.destination),\n function: action.func,\n data: JSON.stringify({ function: action.func, arguments: executable.args }),\n value: executable.value,\n chain: executable.chain,\n }\n }\n\n async executeQuery(executable: WarpExecutable): Promise<any> {\n const action = getWarpActionByIndex(executable.warp, executable.action) as any\n if (action.type !== 'query') throw new Error(`Invalid action type for executeQuery: ${action.type}`)\n\n try {\n const result = await this.executeFastsetQuery(this.fromBase64(executable.destination), action.func, executable.args)\n return { success: true, result, chain: executable.chain }\n } catch (error) {\n return { success: false, error: error instanceof Error ? error.message : String(error), chain: executable.chain }\n }\n }\n\n async executeTransfer(executable: WarpExecutable): Promise<any> {\n const transaction = await this.createTransferTransaction(executable)\n return { success: true, transaction, chain: executable.chain.name }\n }\n\n async executeTransferWithKey(executable: WarpExecutable, privateKey: string): Promise<any> {\n const transaction = await this.createTransferTransaction(executable)\n const privateKeyBytes = this.fromBase64(privateKey)\n\n const transactionData = {\n sender: privateKeyBytes.slice(0, 32),\n recipient: transaction.getRecipientAddress(),\n nonce: await this.fastsetClient.getNextNonce(FastsetClient.encodeBech32Address(privateKeyBytes.slice(0, 32))),\n timestamp_nanos: BigInt(Date.now()) * 1_000_000n,\n claim: { Transfer: { amount: transaction.getAmount(), user_data: transaction.getUserData() } },\n }\n\n const signature = await this.signTransaction(transactionData, privateKeyBytes)\n const result = await this.fastsetClient.submitTransaction(transactionData, signature)\n\n return { success: true, result, message: 'Transaction submitted successfully', chain: executable.chain.name }\n }\n\n private async signTransaction(transaction: any, privateKey: Uint8Array): Promise<Uint8Array> {\n const wallet = new (await import('./sdk')).Wallet(Buffer.from(privateKey).toString('hex'))\n return wallet.signTransactionRaw(this.serializeTransaction(transaction))\n }\n\n private serializeTransaction(tx: any): Uint8Array {\n const serialized = JSON.stringify(tx, (k, v) => (v instanceof Uint8Array ? Array.from(v) : v))\n return new TextEncoder().encode(serialized)\n }\n\n private async executeFastsetQuery(contractAddress: Uint8Array, functionName: string, args: unknown[]): Promise<unknown> {\n const response = await fetch('https://proxy.fastset.xyz', {\n method: 'POST',\n headers: { 'Content-Type': 'application/json' },\n body: JSON.stringify({\n jsonrpc: '2.0',\n method: 'set_proxy_query',\n params: { contract: Array.from(contractAddress), function: functionName, arguments: args },\n id: 1,\n }),\n })\n if (!response.ok) throw new Error(`Query failed: ${response.statusText}`)\n return response.json()\n }\n\n private fromBase64(base64: string): Uint8Array {\n return Uint8Array.from(atob(base64), (c) => c.charCodeAt(0))\n }\n}\n","import { AdapterWarpExplorer, WarpChainInfo, WarpClientConfig } from '@vleap/warps'\n\nexport class WarpFastsetExplorer implements AdapterWarpExplorer {\n private readonly explorerUrl = 'https://explorer.fastset.xyz'\n\n constructor(\n private readonly _chainInfo: WarpChainInfo,\n private readonly _config?: WarpClientConfig\n ) {}\n\n getAccountUrl(address: string): string {\n return `${this.explorerUrl}/account/${address}`\n }\n\n getTransactionUrl(hash: string): string {\n return `${this.explorerUrl}/transaction/${hash}`\n }\n\n getAssetUrl(identifier: string): string {\n return `${this.explorerUrl}/asset/${identifier}`\n }\n\n getContractUrl(address: string): string {\n return `${this.explorerUrl}/account/${address}`\n }\n}\n","import {\n AdapterWarpResults,\n evaluateResultsCommon,\n getWarpWalletAddressFromConfig,\n parseResultsOutIndex,\n ResolvedInput,\n Warp,\n WarpChainInfo,\n WarpClientConfig,\n WarpConstants,\n WarpExecution,\n WarpExecutionResults,\n} from '@vleap/warps'\nimport { WarpFastsetSerializer } from './WarpFastsetSerializer'\n\nexport class WarpFastsetResults implements AdapterWarpResults {\n private readonly serializer: WarpFastsetSerializer\n\n constructor(\n private readonly config: WarpClientConfig,\n private readonly chain: WarpChainInfo\n ) {\n this.serializer = new WarpFastsetSerializer()\n }\n\n async getTransactionExecutionResults(warp: Warp, tx: any): Promise<WarpExecution> {\n const success = this.isTransactionSuccessful(tx)\n const transactionHash = this.extractTransactionHash(tx)\n const blockNumber = this.extractBlockNumber(tx)\n const timestamp = this.extractTimestamp(tx)\n\n return {\n success,\n warp,\n action: 0,\n user: getWarpWalletAddressFromConfig(this.config, this.chain.name),\n txHash: transactionHash,\n tx,\n next: null,\n values: [transactionHash, blockNumber, timestamp],\n valuesRaw: [transactionHash, blockNumber, timestamp],\n results: {},\n messages: {},\n }\n }\n\n async extractQueryResults(\n warp: Warp,\n typedValues: any[],\n actionIndex: number,\n inputs: ResolvedInput[]\n ): Promise<{ values: any[]; results: WarpExecutionResults }> {\n const values = typedValues.map((t) => this.serializer.typedToString(t))\n const valuesRaw = typedValues.map((t) => this.serializer.typedToNative(t)[1])\n let results: WarpExecutionResults = {}\n\n if (!warp.results) return { values, results }\n\n const getNestedValue = (path: string): unknown => {\n const match = path.match(/^out\\[(\\d+)\\]$/)\n if (match) {\n const index = parseInt(match[1]) - 1\n return valuesRaw[index]\n }\n\n const indices = path\n .split('.')\n .slice(1)\n .map((i) => parseInt(i) - 1)\n if (indices.length === 0) return undefined\n let value: any = valuesRaw[indices[0]]\n for (let i = 1; i < indices.length; i++) {\n if (value === undefined || value === null) return undefined\n value = value[indices[i]]\n }\n return value\n }\n\n for (const [key, path] of Object.entries(warp.results)) {\n if (path.startsWith(WarpConstants.Transform.Prefix)) continue\n const currentActionIndex = parseResultsOutIndex(path)\n if (currentActionIndex !== null && currentActionIndex !== actionIndex) {\n results[key] = null\n continue\n }\n if (path.startsWith('out.') || path === 'out' || path.startsWith('out[')) {\n const value = getNestedValue(path)\n results[key] = value || null\n } else {\n results[key] = path\n }\n }\n\n return { values, results: await evaluateResultsCommon(warp, results, actionIndex, inputs, this.config.transform?.runner) }\n }\n\n private isTransactionSuccessful(tx: any): boolean {\n if (!tx) return false\n\n if (tx.success === false) return false\n if (tx.success === true) return true\n if (tx.status === 'success') return true\n if (tx.status === 1) return true\n if (tx.result && tx.result.success === true) return true\n\n return false\n }\n\n private extractTransactionHash(tx: any): string {\n if (!tx) return ''\n\n return tx.transaction_hash || tx.transactionHash || tx.hash || (tx.result && tx.result.transaction_hash) || ''\n }\n\n private extractBlockNumber(tx: any): string {\n if (!tx) return '0'\n\n return tx.block_number?.toString() || tx.blockNumber?.toString() || (tx.result && tx.result.block_number?.toString()) || '0'\n }\n\n private extractTimestamp(tx: any): string {\n if (!tx) return '0'\n\n return (\n tx.timestamp?.toString() || tx.timestamp_nanos?.toString() || (tx.result && tx.result.timestamp?.toString()) || Date.now().toString()\n )\n }\n}\n","import {\n AdapterWarpSerializer,\n BaseWarpActionInputType,\n WarpActionInputType,\n WarpAdapterGenericType,\n WarpNativeValue,\n WarpSerializer,\n} from '@vleap/warps'\n\nexport class WarpFastsetSerializer implements AdapterWarpSerializer {\n public readonly coreSerializer: WarpSerializer\n\n constructor() {\n this.coreSerializer = new WarpSerializer()\n }\n\n typedToString(value: any): string {\n if (typeof value === 'string') {\n return `string:${value}`\n }\n\n if (typeof value === 'number') {\n return `number:${value}`\n }\n\n if (typeof value === 'boolean') {\n return `boolean:${value}`\n }\n\n if (typeof value === 'bigint') {\n return `biguint:${value.toString()}`\n }\n\n if (Array.isArray(value)) {\n const items = value.map((item) => this.typedToString(item)).join(',')\n return `array:${items}`\n }\n\n if (value === null) {\n return 'null:null'\n }\n\n if (value === undefined) {\n return 'undefined:undefined'\n }\n\n return `string:${String(value)}`\n }\n\n typedToNative(value: any): [WarpActionInputType, WarpNativeValue] {\n if (typeof value === 'string') {\n return ['string', value]\n }\n\n if (typeof value === 'number') {\n return ['number', value]\n }\n\n if (typeof value === 'boolean') {\n return ['boolean', value]\n }\n\n if (typeof value === 'bigint') {\n return ['biguint', value.toString()]\n }\n\n return ['string', String(value)]\n }\n\n nativeToTyped(type: WarpActionInputType, value: WarpNativeValue): any {\n switch (type) {\n case 'string':\n return String(value)\n case 'number':\n return Number(value)\n case 'boolean':\n return Boolean(value)\n case 'biguint':\n return BigInt(value as string | number)\n case 'address':\n return String(value)\n case 'hex':\n return String(value)\n default:\n return String(value)\n }\n }\n\n nativeToType(type: BaseWarpActionInputType): WarpAdapterGenericType {\n switch (type) {\n case 'string':\n return 'string'\n case 'number':\n return 'number'\n case 'boolean':\n return 'boolean'\n case 'biguint':\n return 'biguint'\n case 'address':\n return 'address'\n case 'hex':\n return 'hex'\n default:\n return 'string'\n }\n }\n\n stringToTyped(value: string): any {\n const colonIndex = value.indexOf(':')\n if (colonIndex === -1) {\n return value\n }\n\n const type = value.substring(0, colonIndex)\n const stringValue = value.substring(colonIndex + 1)\n\n switch (type) {\n case 'string':\n return stringValue\n case 'number':\n return Number(stringValue)\n case 'boolean':\n return stringValue === 'true'\n case 'biguint':\n return BigInt(stringValue)\n case 'array':\n return stringValue.split(',').map((item) => this.stringToTyped(item))\n case 'null':\n return null\n case 'undefined':\n return undefined\n default:\n return stringValue\n }\n }\n}\n","import {\n AdapterWarpWallet,\n getWarpWalletAddressFromConfig,\n WarpAdapterGenericTransaction,\n WarpChainInfo,\n WarpClientConfig,\n WarpWalletDetails,\n} from '@vleap/warps'\nimport { getConfiguredFastsetClient } from './helpers'\nimport { FastsetClient, Transaction, Wallet } from './sdk'\nimport { ed } from './sdk/ed25519-setup'\n\nexport class WarpFastsetWallet implements AdapterWarpWallet {\n private wallet: Wallet | null = null\n private client: FastsetClient\n\n constructor(\n private config: WarpClientConfig,\n private chain: WarpChainInfo\n ) {\n this.initializeWallet()\n this.client = getConfiguredFastsetClient(this.config, this.chain)\n }\n\n private initializeWallet() {\n const walletConfig = this.config.user?.wallets?.[this.chain.name]\n if (walletConfig && typeof walletConfig === 'object' && 'privateKey' in walletConfig && walletConfig.privateKey) {\n this.wallet = new Wallet(walletConfig.privateKey)\n }\n }\n\n async signTransaction(tx: WarpAdapterGenericTransaction): Promise<WarpAdapterGenericTransaction> {\n if (!this.wallet) throw new Error('Wallet not initialized')\n const transaction = tx as Transaction\n const serializedTx = this.serializeTransaction(transaction.toTransaction())\n const signature = await ed.sign(serializedTx, this.wallet.getPrivateKey())\n return Object.assign(transaction, { signature })\n }\n\n async signMessage(message: string): Promise<string> {\n if (!this.wallet) throw new Error('Wallet not initialized')\n const signature = await ed.sign(new TextEncoder().encode(message), this.wallet.getPrivateKey())\n return Buffer.from(signature).toString('hex')\n }\n\n async sendTransaction(tx: WarpAdapterGenericTransaction): Promise<string> {\n if (!this.wallet) throw new Error('Wallet not initialized')\n const transaction = tx as Transaction\n const fastsetTx = transaction.toTransaction()\n\n const transactionData = {\n sender: fastsetTx.sender,\n recipient: fastsetTx.recipient,\n nonce: fastsetTx.nonce,\n timestamp_nanos: fastsetTx.timestamp_nanos,\n claim: fastsetTx.claim,\n }\n\n const signature = tx.signature\n ? new Uint8Array(Buffer.from(tx.signature, 'hex'))\n : await ed.sign(this.serializeTransaction(transactionData), this.wallet.getPrivateKey())\n\n return await this.client.submitTransaction(transactionData, signature)\n }\n\n create(mnemonic: string): WarpWalletDetails {\n const wallet = new Wallet(mnemonic)\n return { address: wallet.toBech32(), privateKey: Buffer.from(wallet.getPrivateKey()).toString('hex'), mnemonic }\n }\n\n generate(): WarpWalletDetails {\n const privateKey = ed.utils.randomPrivateKey()\n const wallet = new Wallet(Buffer.from(privateKey).toString('hex'))\n return { address: wallet.toBech32(), privateKey: Buffer.from(privateKey).toString('hex'), mnemonic: null }\n }\n\n getAddress(): string | null {\n return getWarpWalletAddressFromConfig(this.config, this.chain.name)\n }\n\n private serializeTransaction(tx: any): Uint8Array {\n const serialized = JSON.stringify(tx, (k, v) => (v instanceof Uint8Array ? Array.from(v) : v))\n return new TextEncoder().encode(serialized)\n }\n}\n"],"mappings":"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","names":["import_warps","bech32","import_warps","import_warps","import_warps","import_warps"]}
|
|
1
|
+
{"version":3,"sources":["../src/sdk/ed25519-setup.ts","../src/sdk/FastsetClient.ts","../src/sdk/index.ts","../src/index.ts","../src/main.ts","../src/WarpFastsetDataLoader.ts","../src/helpers/general.ts","../src/WarpFastsetExecutor.ts","../src/WarpFastsetExplorer.ts","../src/WarpFastsetResults.ts","../src/WarpFastsetSerializer.ts","../src/WarpFastsetWallet.ts"],"sourcesContent":["import * as ed from '@noble/ed25519'\nimport { sha512 } from '@noble/hashes/sha512'\n\n// Configure ed25519 library exactly like the official wallet\nif (ed.etc) {\n // @ts-ignore\n ed.etc.sha512Sync = (...m: Uint8Array[]) => sha512(ed.etc.concatBytes(...m))\n}\n\nexport { ed }\n","import { WarpClientConfig } from '@vleap/warps'\nimport * as bech32 from 'bech32'\nimport { ed } from './ed25519-setup'\n;(BigInt.prototype as any).toJSON = function () {\n return Number(this)\n}\n\nexport interface TransactionData {\n sender: number[] | Uint8Array\n recipient: any\n nonce: number\n timestamp_nanos: bigint\n claim: any\n}\n\nexport interface AccountInfoResponse {\n sender: number[]\n balance: string\n next_nonce: number\n pending_confirmation?: any\n requested_certificate?: any\n requested_validated_transaction?: any\n requested_received_transfers: any[]\n token_balance: Array<[number[], string]>\n requested_claim_by_id?: any\n requested_claims: any[]\n}\n\nexport class Transaction {\n constructor(\n private sender: Uint8Array,\n private recipient: { FastSet: Uint8Array } | { External: Uint8Array },\n private nonce: number,\n private claim: any,\n private timestamp: bigint = BigInt(Date.now()) * 1_000_000n\n ) {\n // Fix claim data - remove 0x prefix from amounts\n if (claim?.Transfer?.amount?.startsWith('0x')) {\n claim = { ...claim, Transfer: { ...claim.Transfer, amount: claim.Transfer.amount.slice(2) } }\n }\n }\n\n toTransaction() {\n return { sender: this.sender, recipient: this.recipient, nonce: this.nonce, timestamp_nanos: this.timestamp, claim: this.claim }\n }\n\n getRecipientAddress() {\n return this.recipient\n }\n getAmount() {\n return this.claim?.Transfer?.amount || ''\n }\n getUserData() {\n return this.claim?.Transfer?.user_data || null\n }\n}\n\nexport interface AccountInfoResponse {\n sender: number[]\n balance: string\n next_nonce: number\n pending_confirmation?: any\n requested_certificate?: any\n requested_validated_transaction?: any\n requested_received_transfers: any[]\n token_balance: Array<[number[], string]>\n requested_claim_by_id?: any\n requested_claims: any[]\n}\n\nexport class FastsetClient {\n private proxyUrl: string\n\n constructor(config?: WarpClientConfig | { proxyUrl: string }, chain?: any) {\n this.proxyUrl = config && 'proxyUrl' in config ? config.proxyUrl : config && chain ? chain.defaultApiUrl : 'https://proxy.fastset.xyz'\n }\n\n private async makeRequest<T = any>(method: string, params: any = {}): Promise<T> {\n const response = await fetch(this.proxyUrl, {\n method: 'POST',\n headers: { 'Content-Type': 'application/json' },\n body: JSON.stringify({ jsonrpc: '2.0', method, params, id: Date.now() }, (k, v) => (v instanceof Uint8Array ? Array.from(v) : v)),\n })\n\n if (!response.ok) throw new Error(`HTTP error! status: ${response.status}`)\n const jsonResponse = await response.json()\n if (jsonResponse.error) throw new Error(`JSON-RPC error ${jsonResponse.error.code}: ${jsonResponse.error.message}`)\n return jsonResponse.result\n }\n\n async getAccountInfo(address: number[]): Promise<AccountInfoResponse> {\n return this.makeRequest('set_proxy_getAccountInfo', { address })\n }\n\n async getNextNonce(address: string | number[]): Promise<number> {\n const addressBytes = typeof address === 'string' ? this.addressToBytes(address) : address\n const accountInfo = await this.getAccountInfo(addressBytes)\n return accountInfo.next_nonce\n }\n\n async submitTransaction(transaction: TransactionData, signature: number[] | Uint8Array): Promise<string> {\n const signatureArray = Array.isArray(signature) ? signature : Array.from(signature)\n const submitTxReq = {\n transaction: {\n sender: transaction.sender instanceof Uint8Array ? transaction.sender : new Uint8Array(transaction.sender),\n recipient: transaction.recipient,\n nonce: transaction.nonce,\n timestamp_nanos: transaction.timestamp_nanos,\n claim: transaction.claim,\n },\n signature: new Uint8Array(signatureArray),\n }\n\n const response = await fetch(this.proxyUrl, {\n method: 'POST',\n headers: { 'Content-Type': 'application/json' },\n body: JSON.stringify({ jsonrpc: '2.0', method: 'set_proxy_submitTransaction', params: submitTxReq, id: 1 }, (k, v) =>\n v instanceof Uint8Array ? Array.from(v) : v\n ),\n })\n\n if (!response.ok) throw new Error(`HTTP error! status: ${response.status}`)\n const jsonResponse = await response.json()\n if (jsonResponse.error) throw new Error(`JSON-RPC error ${jsonResponse.error.code}: ${jsonResponse.error.message}`)\n return jsonResponse.result\n }\n\n async faucetDrip(recipient: number[] | Uint8Array, amount: string): Promise<any> {\n const recipientArray = Array.isArray(recipient) ? recipient : Array.from(recipient)\n return this.makeRequest('set_proxy_faucetDrip', { recipient: recipientArray, amount })\n }\n\n private addressToBytes(address: string): number[] {\n try {\n const decoded = bech32.bech32m.decode(address)\n return Array.from(bech32.bech32m.fromWords(decoded.words))\n } catch {\n const decoded = bech32.bech32.decode(address)\n return Array.from(bech32.bech32.fromWords(decoded.words))\n }\n }\n\n // Wallet utilities\n generateNewWallet(): Wallet {\n const privateKey = ed.utils.randomPrivateKey()\n return new Wallet(Buffer.from(privateKey).toString('hex'))\n }\n\n createWallet(privateKeyHex: string): Wallet {\n return new Wallet(privateKeyHex)\n }\n\n static decodeBech32Address(address: string): Uint8Array {\n try {\n const decoded = bech32.bech32m.decode(address)\n return new Uint8Array(bech32.bech32m.fromWords(decoded.words))\n } catch {\n const decoded = bech32.bech32.decode(address)\n return new Uint8Array(bech32.bech32.fromWords(decoded.words))\n }\n }\n\n static encodeBech32Address(publicKey: Uint8Array): string {\n const words = bech32.bech32m.toWords(publicKey)\n return bech32.bech32m.encode('set', words)\n }\n}\n\nexport class Wallet {\n public readonly publicKey: Uint8Array\n private readonly privateKey: Uint8Array\n\n constructor(privateKeyHex: string) {\n this.privateKey = new Uint8Array(Buffer.from(privateKeyHex.replace(/^0x/, ''), 'hex'))\n this.publicKey = ed.getPublicKey(this.privateKey)\n }\n\n toBech32(): string {\n return bech32.bech32m.encode('set', bech32.bech32m.toWords(this.publicKey))\n }\n\n signTransactionRaw(data: Uint8Array): Uint8Array {\n return ed.sign(data, this.privateKey)\n }\n\n getPrivateKey(): Uint8Array {\n return this.privateKey\n }\n}\n","export * from './FastsetClient'\n","export * from './main'\nexport { FastsetClient, Transaction, Wallet } from './sdk'\nexport { WarpFastsetExecutor } from './WarpFastsetExecutor'\nexport { WarpFastsetWallet } from './WarpFastsetWallet'\n","import { Adapter, AdapterFactory, WarpChainAsset, WarpChainEnv, WarpChainInfo, WarpChainName, WarpClientConfig } from '@vleap/warps'\nimport { WarpFastsetDataLoader } from './WarpFastsetDataLoader'\nimport { WarpFastsetExecutor } from './WarpFastsetExecutor'\nimport { WarpFastsetExplorer } from './WarpFastsetExplorer'\nimport { WarpFastsetResults } from './WarpFastsetResults'\nimport { WarpFastsetSerializer } from './WarpFastsetSerializer'\nimport { WarpFastsetWallet } from './WarpFastsetWallet'\n\nexport const NativeTokenSet: WarpChainAsset = {\n chain: WarpChainName.Fastset,\n identifier: 'SET',\n name: 'SET',\n symbol: 'SET',\n decimals: 6,\n logoUrl: 'https://vleap.ai/images/tokens/set.svg',\n}\n\nfunction createFastsetAdapter(chainName: string, chainPrefix: string, chainInfos: Record<WarpChainEnv, WarpChainInfo>): AdapterFactory {\n return (config: WarpClientConfig, fallback?: Adapter) => {\n const chainInfo = chainInfos[config.env]\n if (!chainInfo) throw new Error(`FastsetAdapter: chain info not found for chain ${chainName}`)\n\n if (!fallback) throw new Error('Fastset adapter requires a fallback adapter')\n\n return {\n chain: chainName,\n chainInfo,\n prefix: chainPrefix,\n builder: () => fallback.builder(),\n executor: new WarpFastsetExecutor(config, chainInfo),\n results: new WarpFastsetResults(config, chainInfo),\n serializer: new WarpFastsetSerializer(),\n registry: fallback.registry,\n explorer: new WarpFastsetExplorer(chainInfo, config),\n abiBuilder: () => fallback.abiBuilder(),\n brandBuilder: () => fallback.brandBuilder(),\n dataLoader: new WarpFastsetDataLoader(config, chainInfo),\n wallet: new WarpFastsetWallet(config, chainInfo),\n }\n }\n}\n\nexport const getFastsetAdapter: AdapterFactory = createFastsetAdapter(WarpChainName.Fastset, 'fastset', {\n mainnet: {\n name: WarpChainName.Fastset,\n displayName: 'FastSet',\n chainId: '1',\n blockTime: 1000,\n addressHrp: 'set',\n defaultApiUrl: 'https://proxy.fastset.xyz',\n logoUrl: 'https://vleap.ai/images/chains/fastset.svg',\n nativeToken: NativeTokenSet,\n },\n testnet: {\n name: WarpChainName.Fastset,\n displayName: 'FastSet Testnet',\n chainId: 'testnet',\n blockTime: 1000,\n addressHrp: 'set',\n defaultApiUrl: 'https://proxy.fastset.xyz',\n logoUrl: 'https://vleap.ai/images/chains/fastset.svg',\n nativeToken: NativeTokenSet,\n },\n devnet: {\n name: WarpChainName.Fastset,\n displayName: 'FastSet Devnet',\n chainId: 'devnet',\n blockTime: 1000,\n addressHrp: 'set',\n defaultApiUrl: 'https://proxy.fastset.xyz',\n logoUrl: 'https://vleap.ai/images/chains/fastset.svg',\n nativeToken: NativeTokenSet,\n },\n})\n","import {\n AdapterWarpDataLoader,\n WarpChainAccount,\n WarpChainAction,\n WarpChainAsset,\n WarpChainInfo,\n WarpClientConfig,\n WarpDataLoaderOptions,\n} from '@vleap/warps'\nimport * as bech32 from 'bech32'\nimport { getConfiguredFastsetClient } from './helpers'\nimport { FastsetClient } from './sdk/FastsetClient'\n\nexport class WarpFastsetDataLoader implements AdapterWarpDataLoader {\n private client: FastsetClient\n\n constructor(\n private readonly config: WarpClientConfig,\n private readonly chain: WarpChainInfo\n ) {\n this.client = getConfiguredFastsetClient(config, chain)\n }\n\n async getAccount(address: string): Promise<WarpChainAccount> {\n const addressBytes = this.addressToBytes(address)\n const accountInfo = await this.client.getAccountInfo(addressBytes)\n\n return { chain: this.chain.name, address, balance: BigInt(parseInt(accountInfo.balance, 16)) }\n }\n\n async getAccountAssets(address: string): Promise<WarpChainAsset[]> {\n const addressBytes = this.addressToBytes(address)\n const accountInfo = await this.client.getAccountInfo(addressBytes)\n\n const assets: WarpChainAsset[] = []\n const balance = BigInt(parseInt(accountInfo.balance, 16))\n if (balance > 0n) {\n assets.push({ ...this.chain.nativeToken, amount: balance })\n }\n\n for (const [tokenId, tokenBalance] of accountInfo.token_balance) {\n const amount = BigInt(parseInt(tokenBalance, 16))\n if (amount > 0n) {\n const tokenInfo = await this.client.getTokenInfo([tokenId])\n const metadata = tokenInfo.requested_token_metadata[0]?.[1]\n\n assets.push({\n chain: this.chain.name,\n identifier: Buffer.from(tokenId).toString('hex'),\n symbol: metadata?.token_name || 'UNKNOWN',\n name: metadata?.token_name || 'Unknown Token',\n decimals: metadata?.decimals || 6,\n logoUrl: undefined,\n amount,\n })\n }\n }\n\n return assets\n }\n\n async getAsset(identifier: string): Promise<WarpChainAsset | null> {\n if (identifier === this.chain.nativeToken.identifier) {\n return this.chain.nativeToken\n }\n\n const tokenId = Buffer.from(identifier, 'hex')\n const tokenInfo = await this.client.getTokenInfo([Array.from(tokenId)])\n const metadata = tokenInfo.requested_token_metadata[0]?.[1]\n if (!metadata) return null\n\n return {\n chain: this.chain.name,\n identifier,\n symbol: metadata.token_name,\n name: metadata.token_name,\n decimals: metadata.decimals,\n logoUrl: undefined,\n amount: BigInt(metadata.total_supply),\n }\n }\n\n async getAction(identifier: string, awaitCompleted = false): Promise<WarpChainAction | null> {\n return null\n }\n\n async getAccountActions(address: string, options?: WarpDataLoaderOptions): Promise<WarpChainAction[]> {\n return []\n }\n\n private addressToBytes(address: string): number[] {\n try {\n const decoded = bech32.bech32m.decode(address)\n return Array.from(bech32.bech32m.fromWords(decoded.words))\n } catch {\n try {\n const decoded = bech32.bech32.decode(address)\n return Array.from(bech32.bech32.fromWords(decoded.words))\n } catch {\n throw new Error(`Invalid FastSet address: ${address}`)\n }\n }\n }\n}\n","import { WarpChainInfo, WarpClientConfig, getProviderUrl } from '@vleap/warps'\nimport { FastsetClient } from '../sdk'\n\nexport const getConfiguredFastsetClient = (config: WarpClientConfig, chain: WarpChainInfo) => {\n const proxyUrl = getProviderUrl(config, chain.name, config.env, chain.defaultApiUrl)\n return new FastsetClient({ proxyUrl })\n}\n","import {\n AdapterWarpExecutor,\n getWarpActionByIndex,\n getWarpWalletAddressFromConfig,\n WarpChainInfo,\n WarpClientConfig,\n WarpExecutable,\n} from '@vleap/warps'\nimport { FastsetClient, Transaction } from './sdk'\n\nexport class WarpFastsetExecutor implements AdapterWarpExecutor {\n private readonly fastsetClient: FastsetClient\n\n constructor(\n private readonly config: WarpClientConfig,\n private readonly chain: WarpChainInfo\n ) {\n this.fastsetClient = new FastsetClient({ proxyUrl: 'https://proxy.fastset.xyz' })\n }\n\n async createTransaction(executable: WarpExecutable): Promise<any> {\n const action = getWarpActionByIndex(executable.warp, executable.action)\n if (action.type === 'transfer') return this.createTransferTransaction(executable)\n if (action.type === 'contract') return this.createContractCallTransaction(executable)\n if (action.type === 'query') throw new Error('WarpFastsetExecutor: Invalid type for createTransaction; Use executeQuery instead')\n if (action.type === 'collect') throw new Error('WarpFastsetExecutor: Invalid type for createTransaction; Use executeCollect instead')\n throw new Error(`WarpFastsetExecutor: Invalid type (${action.type})`)\n }\n\n async createTransferTransaction(executable: WarpExecutable): Promise<Transaction> {\n const userWallet = getWarpWalletAddressFromConfig(this.config, executable.chain.name)\n if (!userWallet) throw new Error('WarpFastsetExecutor: User address not set')\n\n const senderAddress = FastsetClient.decodeBech32Address(userWallet)\n const recipientAddress = FastsetClient.decodeBech32Address(executable.destination)\n const nonce = await this.fastsetClient.getNextNonce(userWallet)\n\n // Get amount from transfers or value\n const amount = executable.transfers?.[0]?.amount ? '0x' + executable.transfers[0].amount.toString(16) : executable.value.toString()\n\n const userData = executable.data ? this.fromBase64(executable.data) : null\n\n const claim = { Transfer: { amount, user_data: userData } }\n return new Transaction(senderAddress, { FastSet: recipientAddress }, nonce, claim)\n }\n\n async createContractCallTransaction(executable: WarpExecutable): Promise<any> {\n const userWallet = this.config.user?.wallets?.[executable.chain.name]\n if (!userWallet) throw new Error('WarpFastsetExecutor: User address not set')\n const action = getWarpActionByIndex(executable.warp, executable.action)\n if (!action || !('func' in action) || !action.func) throw new Error('Contract action must have function name')\n\n return {\n type: 'fastset-contract-call',\n contract: this.fromBase64(executable.destination),\n function: action.func,\n data: JSON.stringify({ function: action.func, arguments: executable.args }),\n value: executable.value,\n chain: executable.chain,\n }\n }\n\n async executeQuery(executable: WarpExecutable): Promise<any> {\n const action = getWarpActionByIndex(executable.warp, executable.action) as any\n if (action.type !== 'query') throw new Error(`Invalid action type for executeQuery: ${action.type}`)\n\n try {\n const result = await this.executeFastsetQuery(this.fromBase64(executable.destination), action.func, executable.args)\n return { success: true, result, chain: executable.chain }\n } catch (error) {\n return { success: false, error: error instanceof Error ? error.message : String(error), chain: executable.chain }\n }\n }\n\n async executeTransfer(executable: WarpExecutable): Promise<any> {\n const transaction = await this.createTransferTransaction(executable)\n return { success: true, transaction, chain: executable.chain.name }\n }\n\n async executeTransferWithKey(executable: WarpExecutable, privateKey: string): Promise<any> {\n const transaction = await this.createTransferTransaction(executable)\n const privateKeyBytes = this.fromBase64(privateKey)\n\n const transactionData = {\n sender: privateKeyBytes.slice(0, 32),\n recipient: transaction.getRecipientAddress(),\n nonce: await this.fastsetClient.getNextNonce(FastsetClient.encodeBech32Address(privateKeyBytes.slice(0, 32))),\n timestamp_nanos: BigInt(Date.now()) * 1_000_000n,\n claim: { Transfer: { amount: transaction.getAmount(), user_data: transaction.getUserData() } },\n }\n\n const signature = await this.signTransaction(transactionData, privateKeyBytes)\n const result = await this.fastsetClient.submitTransaction(transactionData, signature)\n\n return { success: true, result, message: 'Transaction submitted successfully', chain: executable.chain.name }\n }\n\n private async signTransaction(transaction: any, privateKey: Uint8Array): Promise<Uint8Array> {\n const wallet = new (await import('./sdk')).Wallet(Buffer.from(privateKey).toString('hex'))\n return wallet.signTransactionRaw(this.serializeTransaction(transaction))\n }\n\n private serializeTransaction(tx: any): Uint8Array {\n const serialized = JSON.stringify(tx, (k, v) => (v instanceof Uint8Array ? Array.from(v) : v))\n return new TextEncoder().encode(serialized)\n }\n\n private async executeFastsetQuery(contractAddress: Uint8Array, functionName: string, args: unknown[]): Promise<unknown> {\n const response = await fetch('https://proxy.fastset.xyz', {\n method: 'POST',\n headers: { 'Content-Type': 'application/json' },\n body: JSON.stringify({\n jsonrpc: '2.0',\n method: 'set_proxy_query',\n params: { contract: Array.from(contractAddress), function: functionName, arguments: args },\n id: 1,\n }),\n })\n if (!response.ok) throw new Error(`Query failed: ${response.statusText}`)\n return response.json()\n }\n\n private fromBase64(base64: string): Uint8Array {\n return Uint8Array.from(atob(base64), (c) => c.charCodeAt(0))\n }\n}\n","import { AdapterWarpExplorer, WarpChainInfo, WarpClientConfig } from '@vleap/warps'\n\nexport class WarpFastsetExplorer implements AdapterWarpExplorer {\n private readonly explorerUrl = 'https://explorer.fastset.xyz'\n\n constructor(\n private readonly _chainInfo: WarpChainInfo,\n private readonly _config?: WarpClientConfig\n ) {}\n\n getAccountUrl(address: string): string {\n return `${this.explorerUrl}/account/${address}`\n }\n\n getTransactionUrl(hash: string): string {\n return `${this.explorerUrl}/transaction/${hash}`\n }\n\n getAssetUrl(identifier: string): string {\n return `${this.explorerUrl}/asset/${identifier}`\n }\n\n getContractUrl(address: string): string {\n return `${this.explorerUrl}/account/${address}`\n }\n}\n","import {\n AdapterWarpResults,\n evaluateResultsCommon,\n getWarpWalletAddressFromConfig,\n parseResultsOutIndex,\n ResolvedInput,\n Warp,\n WarpChainInfo,\n WarpClientConfig,\n WarpConstants,\n WarpExecution,\n WarpExecutionResults,\n} from '@vleap/warps'\nimport { WarpFastsetSerializer } from './WarpFastsetSerializer'\n\nexport class WarpFastsetResults implements AdapterWarpResults {\n private readonly serializer: WarpFastsetSerializer\n\n constructor(\n private readonly config: WarpClientConfig,\n private readonly chain: WarpChainInfo\n ) {\n this.serializer = new WarpFastsetSerializer()\n }\n\n async getTransactionExecutionResults(warp: Warp, tx: any): Promise<WarpExecution> {\n const success = this.isTransactionSuccessful(tx)\n const transactionHash = this.extractTransactionHash(tx)\n const blockNumber = this.extractBlockNumber(tx)\n const timestamp = this.extractTimestamp(tx)\n\n return {\n success,\n warp,\n action: 0,\n user: getWarpWalletAddressFromConfig(this.config, this.chain.name),\n txHash: transactionHash,\n tx,\n next: null,\n values: [transactionHash, blockNumber, timestamp],\n valuesRaw: [transactionHash, blockNumber, timestamp],\n results: {},\n messages: {},\n }\n }\n\n async extractQueryResults(\n warp: Warp,\n typedValues: any[],\n actionIndex: number,\n inputs: ResolvedInput[]\n ): Promise<{ values: any[]; results: WarpExecutionResults }> {\n const values = typedValues.map((t) => this.serializer.typedToString(t))\n const valuesRaw = typedValues.map((t) => this.serializer.typedToNative(t)[1])\n let results: WarpExecutionResults = {}\n\n if (!warp.results) return { values, results }\n\n const getNestedValue = (path: string): unknown => {\n const match = path.match(/^out\\[(\\d+)\\]$/)\n if (match) {\n const index = parseInt(match[1]) - 1\n return valuesRaw[index]\n }\n\n const indices = path\n .split('.')\n .slice(1)\n .map((i) => parseInt(i) - 1)\n if (indices.length === 0) return undefined\n let value: any = valuesRaw[indices[0]]\n for (let i = 1; i < indices.length; i++) {\n if (value === undefined || value === null) return undefined\n value = value[indices[i]]\n }\n return value\n }\n\n for (const [key, path] of Object.entries(warp.results)) {\n if (path.startsWith(WarpConstants.Transform.Prefix)) continue\n const currentActionIndex = parseResultsOutIndex(path)\n if (currentActionIndex !== null && currentActionIndex !== actionIndex) {\n results[key] = null\n continue\n }\n if (path.startsWith('out.') || path === 'out' || path.startsWith('out[')) {\n const value = getNestedValue(path)\n results[key] = value || null\n } else {\n results[key] = path\n }\n }\n\n return { values, results: await evaluateResultsCommon(warp, results, actionIndex, inputs, this.config.transform?.runner) }\n }\n\n private isTransactionSuccessful(tx: any): boolean {\n if (!tx) return false\n\n if (tx.success === false) return false\n if (tx.success === true) return true\n if (tx.status === 'success') return true\n if (tx.status === 1) return true\n if (tx.result && tx.result.success === true) return true\n\n return false\n }\n\n private extractTransactionHash(tx: any): string {\n if (!tx) return ''\n\n return tx.transaction_hash || tx.transactionHash || tx.hash || (tx.result && tx.result.transaction_hash) || ''\n }\n\n private extractBlockNumber(tx: any): string {\n if (!tx) return '0'\n\n return tx.block_number?.toString() || tx.blockNumber?.toString() || (tx.result && tx.result.block_number?.toString()) || '0'\n }\n\n private extractTimestamp(tx: any): string {\n if (!tx) return '0'\n\n return (\n tx.timestamp?.toString() || tx.timestamp_nanos?.toString() || (tx.result && tx.result.timestamp?.toString()) || Date.now().toString()\n )\n }\n}\n","import {\n AdapterWarpSerializer,\n BaseWarpActionInputType,\n WarpActionInputType,\n WarpAdapterGenericType,\n WarpNativeValue,\n WarpSerializer,\n} from '@vleap/warps'\n\nexport class WarpFastsetSerializer implements AdapterWarpSerializer {\n public readonly coreSerializer: WarpSerializer\n\n constructor() {\n this.coreSerializer = new WarpSerializer()\n }\n\n typedToString(value: any): string {\n if (typeof value === 'string') {\n return `string:${value}`\n }\n\n if (typeof value === 'number') {\n return `number:${value}`\n }\n\n if (typeof value === 'boolean') {\n return `boolean:${value}`\n }\n\n if (typeof value === 'bigint') {\n return `biguint:${value.toString()}`\n }\n\n if (Array.isArray(value)) {\n const items = value.map((item) => this.typedToString(item)).join(',')\n return `array:${items}`\n }\n\n if (value === null) {\n return 'null:null'\n }\n\n if (value === undefined) {\n return 'undefined:undefined'\n }\n\n return `string:${String(value)}`\n }\n\n typedToNative(value: any): [WarpActionInputType, WarpNativeValue] {\n if (typeof value === 'string') {\n return ['string', value]\n }\n\n if (typeof value === 'number') {\n return ['number', value]\n }\n\n if (typeof value === 'boolean') {\n return ['boolean', value]\n }\n\n if (typeof value === 'bigint') {\n return ['biguint', value.toString()]\n }\n\n return ['string', String(value)]\n }\n\n nativeToTyped(type: WarpActionInputType, value: WarpNativeValue): any {\n switch (type) {\n case 'string':\n return String(value)\n case 'number':\n return Number(value)\n case 'boolean':\n return Boolean(value)\n case 'biguint':\n return BigInt(value as string | number)\n case 'address':\n return String(value)\n case 'hex':\n return String(value)\n default:\n return String(value)\n }\n }\n\n nativeToType(type: BaseWarpActionInputType): WarpAdapterGenericType {\n switch (type) {\n case 'string':\n return 'string'\n case 'number':\n return 'number'\n case 'boolean':\n return 'boolean'\n case 'biguint':\n return 'biguint'\n case 'address':\n return 'address'\n case 'hex':\n return 'hex'\n default:\n return 'string'\n }\n }\n\n stringToTyped(value: string): any {\n const colonIndex = value.indexOf(':')\n if (colonIndex === -1) {\n return value\n }\n\n const type = value.substring(0, colonIndex)\n const stringValue = value.substring(colonIndex + 1)\n\n switch (type) {\n case 'string':\n return stringValue\n case 'number':\n return Number(stringValue)\n case 'boolean':\n return stringValue === 'true'\n case 'biguint':\n return BigInt(stringValue)\n case 'array':\n return stringValue.split(',').map((item) => this.stringToTyped(item))\n case 'null':\n return null\n case 'undefined':\n return undefined\n default:\n return stringValue\n }\n }\n}\n","import {\n AdapterWarpWallet,\n getWarpWalletAddressFromConfig,\n WarpAdapterGenericTransaction,\n WarpChainInfo,\n WarpClientConfig,\n WarpWalletDetails,\n} from '@vleap/warps'\nimport { getConfiguredFastsetClient } from './helpers'\nimport { FastsetClient, Transaction, Wallet } from './sdk'\nimport { ed } from './sdk/ed25519-setup'\n\nexport class WarpFastsetWallet implements AdapterWarpWallet {\n private wallet: Wallet | null = null\n private client: FastsetClient\n\n constructor(\n private config: WarpClientConfig,\n private chain: WarpChainInfo\n ) {\n this.initializeWallet()\n this.client = getConfiguredFastsetClient(this.config, this.chain)\n }\n\n private initializeWallet() {\n const walletConfig = this.config.user?.wallets?.[this.chain.name]\n if (walletConfig && typeof walletConfig === 'object' && 'privateKey' in walletConfig && walletConfig.privateKey) {\n this.wallet = new Wallet(walletConfig.privateKey)\n }\n }\n\n async signTransaction(tx: WarpAdapterGenericTransaction): Promise<WarpAdapterGenericTransaction> {\n if (!this.wallet) throw new Error('Wallet not initialized')\n const transaction = tx as Transaction\n const serializedTx = this.serializeTransaction(transaction.toTransaction())\n const signature = await ed.sign(serializedTx, this.wallet.getPrivateKey())\n return Object.assign(transaction, { signature })\n }\n\n async signMessage(message: string): Promise<string> {\n if (!this.wallet) throw new Error('Wallet not initialized')\n const signature = await ed.sign(new TextEncoder().encode(message), this.wallet.getPrivateKey())\n return Buffer.from(signature).toString('hex')\n }\n\n async sendTransaction(tx: WarpAdapterGenericTransaction): Promise<string> {\n if (!this.wallet) throw new Error('Wallet not initialized')\n const transaction = tx as Transaction\n const fastsetTx = transaction.toTransaction()\n\n const transactionData = {\n sender: fastsetTx.sender,\n recipient: fastsetTx.recipient,\n nonce: fastsetTx.nonce,\n timestamp_nanos: fastsetTx.timestamp_nanos,\n claim: fastsetTx.claim,\n }\n\n const signature = tx.signature\n ? new Uint8Array(Buffer.from(tx.signature, 'hex'))\n : await ed.sign(this.serializeTransaction(transactionData), this.wallet.getPrivateKey())\n\n return await this.client.submitTransaction(transactionData, signature)\n }\n\n create(mnemonic: string): WarpWalletDetails {\n const wallet = new Wallet(mnemonic)\n return { address: wallet.toBech32(), privateKey: Buffer.from(wallet.getPrivateKey()).toString('hex'), mnemonic }\n }\n\n generate(): WarpWalletDetails {\n const privateKey = ed.utils.randomPrivateKey()\n const wallet = new Wallet(Buffer.from(privateKey).toString('hex'))\n return { address: wallet.toBech32(), privateKey: Buffer.from(privateKey).toString('hex'), mnemonic: null }\n }\n\n getAddress(): string | null {\n return getWarpWalletAddressFromConfig(this.config, this.chain.name)\n }\n\n private serializeTransaction(tx: any): Uint8Array {\n const serialized = JSON.stringify(tx, (k, v) => (v instanceof Uint8Array ? Array.from(v) : v))\n return new TextEncoder().encode(serialized)\n }\n}\n"],"mappings":"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","names":["import_warps","bech32","import_warps","import_warps","import_warps","import_warps"]}
|
package/dist/index.mjs
CHANGED
|
@@ -689,6 +689,7 @@ var getFastsetAdapter = createFastsetAdapter(WarpChainName.Fastset, "fastset", {
|
|
|
689
689
|
blockTime: 1e3,
|
|
690
690
|
addressHrp: "set",
|
|
691
691
|
defaultApiUrl: "https://proxy.fastset.xyz",
|
|
692
|
+
logoUrl: "https://vleap.ai/images/chains/fastset.svg",
|
|
692
693
|
nativeToken: NativeTokenSet
|
|
693
694
|
},
|
|
694
695
|
testnet: {
|
|
@@ -698,6 +699,7 @@ var getFastsetAdapter = createFastsetAdapter(WarpChainName.Fastset, "fastset", {
|
|
|
698
699
|
blockTime: 1e3,
|
|
699
700
|
addressHrp: "set",
|
|
700
701
|
defaultApiUrl: "https://proxy.fastset.xyz",
|
|
702
|
+
logoUrl: "https://vleap.ai/images/chains/fastset.svg",
|
|
701
703
|
nativeToken: NativeTokenSet
|
|
702
704
|
},
|
|
703
705
|
devnet: {
|
|
@@ -707,6 +709,7 @@ var getFastsetAdapter = createFastsetAdapter(WarpChainName.Fastset, "fastset", {
|
|
|
707
709
|
blockTime: 1e3,
|
|
708
710
|
addressHrp: "set",
|
|
709
711
|
defaultApiUrl: "https://proxy.fastset.xyz",
|
|
712
|
+
logoUrl: "https://vleap.ai/images/chains/fastset.svg",
|
|
710
713
|
nativeToken: NativeTokenSet
|
|
711
714
|
}
|
|
712
715
|
});
|
package/dist/index.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/sdk/ed25519-setup.ts","../src/sdk/FastsetClient.ts","../src/sdk/index.ts","../src/main.ts","../src/WarpFastsetDataLoader.ts","../src/helpers/general.ts","../src/WarpFastsetExecutor.ts","../src/WarpFastsetExplorer.ts","../src/WarpFastsetResults.ts","../src/WarpFastsetSerializer.ts","../src/WarpFastsetWallet.ts","../src/index.ts"],"sourcesContent":["import * as ed from '@noble/ed25519'\nimport { sha512 } from '@noble/hashes/sha512'\n\n// Configure ed25519 library exactly like the official wallet\nif (ed.etc) {\n // @ts-ignore\n ed.etc.sha512Sync = (...m: Uint8Array[]) => sha512(ed.etc.concatBytes(...m))\n}\n\nexport { ed }\n","import { WarpClientConfig } from '@vleap/warps'\nimport * as bech32 from 'bech32'\nimport { ed } from './ed25519-setup'\n;(BigInt.prototype as any).toJSON = function () {\n return Number(this)\n}\n\nexport interface TransactionData {\n sender: number[] | Uint8Array\n recipient: any\n nonce: number\n timestamp_nanos: bigint\n claim: any\n}\n\nexport interface AccountInfoResponse {\n sender: number[]\n balance: string\n next_nonce: number\n pending_confirmation?: any\n requested_certificate?: any\n requested_validated_transaction?: any\n requested_received_transfers: any[]\n token_balance: Array<[number[], string]>\n requested_claim_by_id?: any\n requested_claims: any[]\n}\n\nexport class Transaction {\n constructor(\n private sender: Uint8Array,\n private recipient: { FastSet: Uint8Array } | { External: Uint8Array },\n private nonce: number,\n private claim: any,\n private timestamp: bigint = BigInt(Date.now()) * 1_000_000n\n ) {\n // Fix claim data - remove 0x prefix from amounts\n if (claim?.Transfer?.amount?.startsWith('0x')) {\n claim = { ...claim, Transfer: { ...claim.Transfer, amount: claim.Transfer.amount.slice(2) } }\n }\n }\n\n toTransaction() {\n return { sender: this.sender, recipient: this.recipient, nonce: this.nonce, timestamp_nanos: this.timestamp, claim: this.claim }\n }\n\n getRecipientAddress() {\n return this.recipient\n }\n getAmount() {\n return this.claim?.Transfer?.amount || ''\n }\n getUserData() {\n return this.claim?.Transfer?.user_data || null\n }\n}\n\nexport interface AccountInfoResponse {\n sender: number[]\n balance: string\n next_nonce: number\n pending_confirmation?: any\n requested_certificate?: any\n requested_validated_transaction?: any\n requested_received_transfers: any[]\n token_balance: Array<[number[], string]>\n requested_claim_by_id?: any\n requested_claims: any[]\n}\n\nexport class FastsetClient {\n private proxyUrl: string\n\n constructor(config?: WarpClientConfig | { proxyUrl: string }, chain?: any) {\n this.proxyUrl = config && 'proxyUrl' in config ? config.proxyUrl : config && chain ? chain.defaultApiUrl : 'https://proxy.fastset.xyz'\n }\n\n private async makeRequest<T = any>(method: string, params: any = {}): Promise<T> {\n const response = await fetch(this.proxyUrl, {\n method: 'POST',\n headers: { 'Content-Type': 'application/json' },\n body: JSON.stringify({ jsonrpc: '2.0', method, params, id: Date.now() }, (k, v) => (v instanceof Uint8Array ? Array.from(v) : v)),\n })\n\n if (!response.ok) throw new Error(`HTTP error! status: ${response.status}`)\n const jsonResponse = await response.json()\n if (jsonResponse.error) throw new Error(`JSON-RPC error ${jsonResponse.error.code}: ${jsonResponse.error.message}`)\n return jsonResponse.result\n }\n\n async getAccountInfo(address: number[]): Promise<AccountInfoResponse> {\n return this.makeRequest('set_proxy_getAccountInfo', { address })\n }\n\n async getNextNonce(address: string | number[]): Promise<number> {\n const addressBytes = typeof address === 'string' ? this.addressToBytes(address) : address\n const accountInfo = await this.getAccountInfo(addressBytes)\n return accountInfo.next_nonce\n }\n\n async submitTransaction(transaction: TransactionData, signature: number[] | Uint8Array): Promise<string> {\n const signatureArray = Array.isArray(signature) ? signature : Array.from(signature)\n const submitTxReq = {\n transaction: {\n sender: transaction.sender instanceof Uint8Array ? transaction.sender : new Uint8Array(transaction.sender),\n recipient: transaction.recipient,\n nonce: transaction.nonce,\n timestamp_nanos: transaction.timestamp_nanos,\n claim: transaction.claim,\n },\n signature: new Uint8Array(signatureArray),\n }\n\n const response = await fetch(this.proxyUrl, {\n method: 'POST',\n headers: { 'Content-Type': 'application/json' },\n body: JSON.stringify({ jsonrpc: '2.0', method: 'set_proxy_submitTransaction', params: submitTxReq, id: 1 }, (k, v) =>\n v instanceof Uint8Array ? Array.from(v) : v\n ),\n })\n\n if (!response.ok) throw new Error(`HTTP error! status: ${response.status}`)\n const jsonResponse = await response.json()\n if (jsonResponse.error) throw new Error(`JSON-RPC error ${jsonResponse.error.code}: ${jsonResponse.error.message}`)\n return jsonResponse.result\n }\n\n async faucetDrip(recipient: number[] | Uint8Array, amount: string): Promise<any> {\n const recipientArray = Array.isArray(recipient) ? recipient : Array.from(recipient)\n return this.makeRequest('set_proxy_faucetDrip', { recipient: recipientArray, amount })\n }\n\n private addressToBytes(address: string): number[] {\n try {\n const decoded = bech32.bech32m.decode(address)\n return Array.from(bech32.bech32m.fromWords(decoded.words))\n } catch {\n const decoded = bech32.bech32.decode(address)\n return Array.from(bech32.bech32.fromWords(decoded.words))\n }\n }\n\n // Wallet utilities\n generateNewWallet(): Wallet {\n const privateKey = ed.utils.randomPrivateKey()\n return new Wallet(Buffer.from(privateKey).toString('hex'))\n }\n\n createWallet(privateKeyHex: string): Wallet {\n return new Wallet(privateKeyHex)\n }\n\n static decodeBech32Address(address: string): Uint8Array {\n try {\n const decoded = bech32.bech32m.decode(address)\n return new Uint8Array(bech32.bech32m.fromWords(decoded.words))\n } catch {\n const decoded = bech32.bech32.decode(address)\n return new Uint8Array(bech32.bech32.fromWords(decoded.words))\n }\n }\n\n static encodeBech32Address(publicKey: Uint8Array): string {\n const words = bech32.bech32m.toWords(publicKey)\n return bech32.bech32m.encode('set', words)\n }\n}\n\nexport class Wallet {\n public readonly publicKey: Uint8Array\n private readonly privateKey: Uint8Array\n\n constructor(privateKeyHex: string) {\n this.privateKey = new Uint8Array(Buffer.from(privateKeyHex.replace(/^0x/, ''), 'hex'))\n this.publicKey = ed.getPublicKey(this.privateKey)\n }\n\n toBech32(): string {\n return bech32.bech32m.encode('set', bech32.bech32m.toWords(this.publicKey))\n }\n\n signTransactionRaw(data: Uint8Array): Uint8Array {\n return ed.sign(data, this.privateKey)\n }\n\n getPrivateKey(): Uint8Array {\n return this.privateKey\n }\n}\n","export * from './FastsetClient'\n","import { Adapter, AdapterFactory, WarpChainAsset, WarpChainEnv, WarpChainInfo, WarpChainName, WarpClientConfig } from '@vleap/warps'\nimport { WarpFastsetDataLoader } from './WarpFastsetDataLoader'\nimport { WarpFastsetExecutor } from './WarpFastsetExecutor'\nimport { WarpFastsetExplorer } from './WarpFastsetExplorer'\nimport { WarpFastsetResults } from './WarpFastsetResults'\nimport { WarpFastsetSerializer } from './WarpFastsetSerializer'\nimport { WarpFastsetWallet } from './WarpFastsetWallet'\n\nexport const NativeTokenSet: WarpChainAsset = {\n chain: WarpChainName.Fastset,\n identifier: 'SET',\n name: 'SET',\n symbol: 'SET',\n decimals: 6,\n logoUrl: 'https://vleap.ai/images/tokens/set.svg',\n}\n\nfunction createFastsetAdapter(chainName: string, chainPrefix: string, chainInfos: Record<WarpChainEnv, WarpChainInfo>): AdapterFactory {\n return (config: WarpClientConfig, fallback?: Adapter) => {\n const chainInfo = chainInfos[config.env]\n if (!chainInfo) throw new Error(`FastsetAdapter: chain info not found for chain ${chainName}`)\n\n if (!fallback) throw new Error('Fastset adapter requires a fallback adapter')\n\n return {\n chain: chainName,\n chainInfo,\n prefix: chainPrefix,\n builder: () => fallback.builder(),\n executor: new WarpFastsetExecutor(config, chainInfo),\n results: new WarpFastsetResults(config, chainInfo),\n serializer: new WarpFastsetSerializer(),\n registry: fallback.registry,\n explorer: new WarpFastsetExplorer(chainInfo, config),\n abiBuilder: () => fallback.abiBuilder(),\n brandBuilder: () => fallback.brandBuilder(),\n dataLoader: new WarpFastsetDataLoader(config, chainInfo),\n wallet: new WarpFastsetWallet(config, chainInfo),\n }\n }\n}\n\nexport const getFastsetAdapter: AdapterFactory = createFastsetAdapter(WarpChainName.Fastset, 'fastset', {\n mainnet: {\n name: WarpChainName.Fastset,\n displayName: 'FastSet',\n chainId: '1',\n blockTime: 1000,\n addressHrp: 'set',\n defaultApiUrl: 'https://proxy.fastset.xyz',\n nativeToken: NativeTokenSet,\n },\n testnet: {\n name: WarpChainName.Fastset,\n displayName: 'FastSet Testnet',\n chainId: 'testnet',\n blockTime: 1000,\n addressHrp: 'set',\n defaultApiUrl: 'https://proxy.fastset.xyz',\n nativeToken: NativeTokenSet,\n },\n devnet: {\n name: WarpChainName.Fastset,\n displayName: 'FastSet Devnet',\n chainId: 'devnet',\n blockTime: 1000,\n addressHrp: 'set',\n defaultApiUrl: 'https://proxy.fastset.xyz',\n nativeToken: NativeTokenSet,\n },\n})\n","import {\n AdapterWarpDataLoader,\n WarpChainAccount,\n WarpChainAction,\n WarpChainAsset,\n WarpChainInfo,\n WarpClientConfig,\n WarpDataLoaderOptions,\n} from '@vleap/warps'\nimport * as bech32 from 'bech32'\nimport { getConfiguredFastsetClient } from './helpers'\nimport { FastsetClient } from './sdk/FastsetClient'\n\nexport class WarpFastsetDataLoader implements AdapterWarpDataLoader {\n private client: FastsetClient\n\n constructor(\n private readonly config: WarpClientConfig,\n private readonly chain: WarpChainInfo\n ) {\n this.client = getConfiguredFastsetClient(config, chain)\n }\n\n async getAccount(address: string): Promise<WarpChainAccount> {\n const addressBytes = this.addressToBytes(address)\n const accountInfo = await this.client.getAccountInfo(addressBytes)\n\n return { chain: this.chain.name, address, balance: BigInt(parseInt(accountInfo.balance, 16)) }\n }\n\n async getAccountAssets(address: string): Promise<WarpChainAsset[]> {\n const addressBytes = this.addressToBytes(address)\n const accountInfo = await this.client.getAccountInfo(addressBytes)\n\n const assets: WarpChainAsset[] = []\n const balance = BigInt(parseInt(accountInfo.balance, 16))\n if (balance > 0n) {\n assets.push({ ...this.chain.nativeToken, amount: balance })\n }\n\n for (const [tokenId, tokenBalance] of accountInfo.token_balance) {\n const amount = BigInt(parseInt(tokenBalance, 16))\n if (amount > 0n) {\n const tokenInfo = await this.client.getTokenInfo([tokenId])\n const metadata = tokenInfo.requested_token_metadata[0]?.[1]\n\n assets.push({\n chain: this.chain.name,\n identifier: Buffer.from(tokenId).toString('hex'),\n symbol: metadata?.token_name || 'UNKNOWN',\n name: metadata?.token_name || 'Unknown Token',\n decimals: metadata?.decimals || 6,\n logoUrl: undefined,\n amount,\n })\n }\n }\n\n return assets\n }\n\n async getAsset(identifier: string): Promise<WarpChainAsset | null> {\n if (identifier === this.chain.nativeToken.identifier) {\n return this.chain.nativeToken\n }\n\n const tokenId = Buffer.from(identifier, 'hex')\n const tokenInfo = await this.client.getTokenInfo([Array.from(tokenId)])\n const metadata = tokenInfo.requested_token_metadata[0]?.[1]\n if (!metadata) return null\n\n return {\n chain: this.chain.name,\n identifier,\n symbol: metadata.token_name,\n name: metadata.token_name,\n decimals: metadata.decimals,\n logoUrl: undefined,\n amount: BigInt(metadata.total_supply),\n }\n }\n\n async getAction(identifier: string, awaitCompleted = false): Promise<WarpChainAction | null> {\n return null\n }\n\n async getAccountActions(address: string, options?: WarpDataLoaderOptions): Promise<WarpChainAction[]> {\n return []\n }\n\n private addressToBytes(address: string): number[] {\n try {\n const decoded = bech32.bech32m.decode(address)\n return Array.from(bech32.bech32m.fromWords(decoded.words))\n } catch {\n try {\n const decoded = bech32.bech32.decode(address)\n return Array.from(bech32.bech32.fromWords(decoded.words))\n } catch {\n throw new Error(`Invalid FastSet address: ${address}`)\n }\n }\n }\n}\n","import { WarpChainInfo, WarpClientConfig, getProviderUrl } from '@vleap/warps'\nimport { FastsetClient } from '../sdk'\n\nexport const getConfiguredFastsetClient = (config: WarpClientConfig, chain: WarpChainInfo) => {\n const proxyUrl = getProviderUrl(config, chain.name, config.env, chain.defaultApiUrl)\n return new FastsetClient({ proxyUrl })\n}\n","import {\n AdapterWarpExecutor,\n getWarpActionByIndex,\n getWarpWalletAddressFromConfig,\n WarpChainInfo,\n WarpClientConfig,\n WarpExecutable,\n} from '@vleap/warps'\nimport { FastsetClient, Transaction } from './sdk'\n\nexport class WarpFastsetExecutor implements AdapterWarpExecutor {\n private readonly fastsetClient: FastsetClient\n\n constructor(\n private readonly config: WarpClientConfig,\n private readonly chain: WarpChainInfo\n ) {\n this.fastsetClient = new FastsetClient({ proxyUrl: 'https://proxy.fastset.xyz' })\n }\n\n async createTransaction(executable: WarpExecutable): Promise<any> {\n const action = getWarpActionByIndex(executable.warp, executable.action)\n if (action.type === 'transfer') return this.createTransferTransaction(executable)\n if (action.type === 'contract') return this.createContractCallTransaction(executable)\n if (action.type === 'query') throw new Error('WarpFastsetExecutor: Invalid type for createTransaction; Use executeQuery instead')\n if (action.type === 'collect') throw new Error('WarpFastsetExecutor: Invalid type for createTransaction; Use executeCollect instead')\n throw new Error(`WarpFastsetExecutor: Invalid type (${action.type})`)\n }\n\n async createTransferTransaction(executable: WarpExecutable): Promise<Transaction> {\n const userWallet = getWarpWalletAddressFromConfig(this.config, executable.chain.name)\n if (!userWallet) throw new Error('WarpFastsetExecutor: User address not set')\n\n const senderAddress = FastsetClient.decodeBech32Address(userWallet)\n const recipientAddress = FastsetClient.decodeBech32Address(executable.destination)\n const nonce = await this.fastsetClient.getNextNonce(userWallet)\n\n // Get amount from transfers or value\n const amount = executable.transfers?.[0]?.amount ? '0x' + executable.transfers[0].amount.toString(16) : executable.value.toString()\n\n const userData = executable.data ? this.fromBase64(executable.data) : null\n\n const claim = { Transfer: { amount, user_data: userData } }\n return new Transaction(senderAddress, { FastSet: recipientAddress }, nonce, claim)\n }\n\n async createContractCallTransaction(executable: WarpExecutable): Promise<any> {\n const userWallet = this.config.user?.wallets?.[executable.chain.name]\n if (!userWallet) throw new Error('WarpFastsetExecutor: User address not set')\n const action = getWarpActionByIndex(executable.warp, executable.action)\n if (!action || !('func' in action) || !action.func) throw new Error('Contract action must have function name')\n\n return {\n type: 'fastset-contract-call',\n contract: this.fromBase64(executable.destination),\n function: action.func,\n data: JSON.stringify({ function: action.func, arguments: executable.args }),\n value: executable.value,\n chain: executable.chain,\n }\n }\n\n async executeQuery(executable: WarpExecutable): Promise<any> {\n const action = getWarpActionByIndex(executable.warp, executable.action) as any\n if (action.type !== 'query') throw new Error(`Invalid action type for executeQuery: ${action.type}`)\n\n try {\n const result = await this.executeFastsetQuery(this.fromBase64(executable.destination), action.func, executable.args)\n return { success: true, result, chain: executable.chain }\n } catch (error) {\n return { success: false, error: error instanceof Error ? error.message : String(error), chain: executable.chain }\n }\n }\n\n async executeTransfer(executable: WarpExecutable): Promise<any> {\n const transaction = await this.createTransferTransaction(executable)\n return { success: true, transaction, chain: executable.chain.name }\n }\n\n async executeTransferWithKey(executable: WarpExecutable, privateKey: string): Promise<any> {\n const transaction = await this.createTransferTransaction(executable)\n const privateKeyBytes = this.fromBase64(privateKey)\n\n const transactionData = {\n sender: privateKeyBytes.slice(0, 32),\n recipient: transaction.getRecipientAddress(),\n nonce: await this.fastsetClient.getNextNonce(FastsetClient.encodeBech32Address(privateKeyBytes.slice(0, 32))),\n timestamp_nanos: BigInt(Date.now()) * 1_000_000n,\n claim: { Transfer: { amount: transaction.getAmount(), user_data: transaction.getUserData() } },\n }\n\n const signature = await this.signTransaction(transactionData, privateKeyBytes)\n const result = await this.fastsetClient.submitTransaction(transactionData, signature)\n\n return { success: true, result, message: 'Transaction submitted successfully', chain: executable.chain.name }\n }\n\n private async signTransaction(transaction: any, privateKey: Uint8Array): Promise<Uint8Array> {\n const wallet = new (await import('./sdk')).Wallet(Buffer.from(privateKey).toString('hex'))\n return wallet.signTransactionRaw(this.serializeTransaction(transaction))\n }\n\n private serializeTransaction(tx: any): Uint8Array {\n const serialized = JSON.stringify(tx, (k, v) => (v instanceof Uint8Array ? Array.from(v) : v))\n return new TextEncoder().encode(serialized)\n }\n\n private async executeFastsetQuery(contractAddress: Uint8Array, functionName: string, args: unknown[]): Promise<unknown> {\n const response = await fetch('https://proxy.fastset.xyz', {\n method: 'POST',\n headers: { 'Content-Type': 'application/json' },\n body: JSON.stringify({\n jsonrpc: '2.0',\n method: 'set_proxy_query',\n params: { contract: Array.from(contractAddress), function: functionName, arguments: args },\n id: 1,\n }),\n })\n if (!response.ok) throw new Error(`Query failed: ${response.statusText}`)\n return response.json()\n }\n\n private fromBase64(base64: string): Uint8Array {\n return Uint8Array.from(atob(base64), (c) => c.charCodeAt(0))\n }\n}\n","import { AdapterWarpExplorer, WarpChainInfo, WarpClientConfig } from '@vleap/warps'\n\nexport class WarpFastsetExplorer implements AdapterWarpExplorer {\n private readonly explorerUrl = 'https://explorer.fastset.xyz'\n\n constructor(\n private readonly _chainInfo: WarpChainInfo,\n private readonly _config?: WarpClientConfig\n ) {}\n\n getAccountUrl(address: string): string {\n return `${this.explorerUrl}/account/${address}`\n }\n\n getTransactionUrl(hash: string): string {\n return `${this.explorerUrl}/transaction/${hash}`\n }\n\n getAssetUrl(identifier: string): string {\n return `${this.explorerUrl}/asset/${identifier}`\n }\n\n getContractUrl(address: string): string {\n return `${this.explorerUrl}/account/${address}`\n }\n}\n","import {\n AdapterWarpResults,\n evaluateResultsCommon,\n getWarpWalletAddressFromConfig,\n parseResultsOutIndex,\n ResolvedInput,\n Warp,\n WarpChainInfo,\n WarpClientConfig,\n WarpConstants,\n WarpExecution,\n WarpExecutionResults,\n} from '@vleap/warps'\nimport { WarpFastsetSerializer } from './WarpFastsetSerializer'\n\nexport class WarpFastsetResults implements AdapterWarpResults {\n private readonly serializer: WarpFastsetSerializer\n\n constructor(\n private readonly config: WarpClientConfig,\n private readonly chain: WarpChainInfo\n ) {\n this.serializer = new WarpFastsetSerializer()\n }\n\n async getTransactionExecutionResults(warp: Warp, tx: any): Promise<WarpExecution> {\n const success = this.isTransactionSuccessful(tx)\n const transactionHash = this.extractTransactionHash(tx)\n const blockNumber = this.extractBlockNumber(tx)\n const timestamp = this.extractTimestamp(tx)\n\n return {\n success,\n warp,\n action: 0,\n user: getWarpWalletAddressFromConfig(this.config, this.chain.name),\n txHash: transactionHash,\n tx,\n next: null,\n values: [transactionHash, blockNumber, timestamp],\n valuesRaw: [transactionHash, blockNumber, timestamp],\n results: {},\n messages: {},\n }\n }\n\n async extractQueryResults(\n warp: Warp,\n typedValues: any[],\n actionIndex: number,\n inputs: ResolvedInput[]\n ): Promise<{ values: any[]; results: WarpExecutionResults }> {\n const values = typedValues.map((t) => this.serializer.typedToString(t))\n const valuesRaw = typedValues.map((t) => this.serializer.typedToNative(t)[1])\n let results: WarpExecutionResults = {}\n\n if (!warp.results) return { values, results }\n\n const getNestedValue = (path: string): unknown => {\n const match = path.match(/^out\\[(\\d+)\\]$/)\n if (match) {\n const index = parseInt(match[1]) - 1\n return valuesRaw[index]\n }\n\n const indices = path\n .split('.')\n .slice(1)\n .map((i) => parseInt(i) - 1)\n if (indices.length === 0) return undefined\n let value: any = valuesRaw[indices[0]]\n for (let i = 1; i < indices.length; i++) {\n if (value === undefined || value === null) return undefined\n value = value[indices[i]]\n }\n return value\n }\n\n for (const [key, path] of Object.entries(warp.results)) {\n if (path.startsWith(WarpConstants.Transform.Prefix)) continue\n const currentActionIndex = parseResultsOutIndex(path)\n if (currentActionIndex !== null && currentActionIndex !== actionIndex) {\n results[key] = null\n continue\n }\n if (path.startsWith('out.') || path === 'out' || path.startsWith('out[')) {\n const value = getNestedValue(path)\n results[key] = value || null\n } else {\n results[key] = path\n }\n }\n\n return { values, results: await evaluateResultsCommon(warp, results, actionIndex, inputs, this.config.transform?.runner) }\n }\n\n private isTransactionSuccessful(tx: any): boolean {\n if (!tx) return false\n\n if (tx.success === false) return false\n if (tx.success === true) return true\n if (tx.status === 'success') return true\n if (tx.status === 1) return true\n if (tx.result && tx.result.success === true) return true\n\n return false\n }\n\n private extractTransactionHash(tx: any): string {\n if (!tx) return ''\n\n return tx.transaction_hash || tx.transactionHash || tx.hash || (tx.result && tx.result.transaction_hash) || ''\n }\n\n private extractBlockNumber(tx: any): string {\n if (!tx) return '0'\n\n return tx.block_number?.toString() || tx.blockNumber?.toString() || (tx.result && tx.result.block_number?.toString()) || '0'\n }\n\n private extractTimestamp(tx: any): string {\n if (!tx) return '0'\n\n return (\n tx.timestamp?.toString() || tx.timestamp_nanos?.toString() || (tx.result && tx.result.timestamp?.toString()) || Date.now().toString()\n )\n }\n}\n","import {\n AdapterWarpSerializer,\n BaseWarpActionInputType,\n WarpActionInputType,\n WarpAdapterGenericType,\n WarpNativeValue,\n WarpSerializer,\n} from '@vleap/warps'\n\nexport class WarpFastsetSerializer implements AdapterWarpSerializer {\n public readonly coreSerializer: WarpSerializer\n\n constructor() {\n this.coreSerializer = new WarpSerializer()\n }\n\n typedToString(value: any): string {\n if (typeof value === 'string') {\n return `string:${value}`\n }\n\n if (typeof value === 'number') {\n return `number:${value}`\n }\n\n if (typeof value === 'boolean') {\n return `boolean:${value}`\n }\n\n if (typeof value === 'bigint') {\n return `biguint:${value.toString()}`\n }\n\n if (Array.isArray(value)) {\n const items = value.map((item) => this.typedToString(item)).join(',')\n return `array:${items}`\n }\n\n if (value === null) {\n return 'null:null'\n }\n\n if (value === undefined) {\n return 'undefined:undefined'\n }\n\n return `string:${String(value)}`\n }\n\n typedToNative(value: any): [WarpActionInputType, WarpNativeValue] {\n if (typeof value === 'string') {\n return ['string', value]\n }\n\n if (typeof value === 'number') {\n return ['number', value]\n }\n\n if (typeof value === 'boolean') {\n return ['boolean', value]\n }\n\n if (typeof value === 'bigint') {\n return ['biguint', value.toString()]\n }\n\n return ['string', String(value)]\n }\n\n nativeToTyped(type: WarpActionInputType, value: WarpNativeValue): any {\n switch (type) {\n case 'string':\n return String(value)\n case 'number':\n return Number(value)\n case 'boolean':\n return Boolean(value)\n case 'biguint':\n return BigInt(value as string | number)\n case 'address':\n return String(value)\n case 'hex':\n return String(value)\n default:\n return String(value)\n }\n }\n\n nativeToType(type: BaseWarpActionInputType): WarpAdapterGenericType {\n switch (type) {\n case 'string':\n return 'string'\n case 'number':\n return 'number'\n case 'boolean':\n return 'boolean'\n case 'biguint':\n return 'biguint'\n case 'address':\n return 'address'\n case 'hex':\n return 'hex'\n default:\n return 'string'\n }\n }\n\n stringToTyped(value: string): any {\n const colonIndex = value.indexOf(':')\n if (colonIndex === -1) {\n return value\n }\n\n const type = value.substring(0, colonIndex)\n const stringValue = value.substring(colonIndex + 1)\n\n switch (type) {\n case 'string':\n return stringValue\n case 'number':\n return Number(stringValue)\n case 'boolean':\n return stringValue === 'true'\n case 'biguint':\n return BigInt(stringValue)\n case 'array':\n return stringValue.split(',').map((item) => this.stringToTyped(item))\n case 'null':\n return null\n case 'undefined':\n return undefined\n default:\n return stringValue\n }\n }\n}\n","import {\n AdapterWarpWallet,\n getWarpWalletAddressFromConfig,\n WarpAdapterGenericTransaction,\n WarpChainInfo,\n WarpClientConfig,\n WarpWalletDetails,\n} from '@vleap/warps'\nimport { getConfiguredFastsetClient } from './helpers'\nimport { FastsetClient, Transaction, Wallet } from './sdk'\nimport { ed } from './sdk/ed25519-setup'\n\nexport class WarpFastsetWallet implements AdapterWarpWallet {\n private wallet: Wallet | null = null\n private client: FastsetClient\n\n constructor(\n private config: WarpClientConfig,\n private chain: WarpChainInfo\n ) {\n this.initializeWallet()\n this.client = getConfiguredFastsetClient(this.config, this.chain)\n }\n\n private initializeWallet() {\n const walletConfig = this.config.user?.wallets?.[this.chain.name]\n if (walletConfig && typeof walletConfig === 'object' && 'privateKey' in walletConfig && walletConfig.privateKey) {\n this.wallet = new Wallet(walletConfig.privateKey)\n }\n }\n\n async signTransaction(tx: WarpAdapterGenericTransaction): Promise<WarpAdapterGenericTransaction> {\n if (!this.wallet) throw new Error('Wallet not initialized')\n const transaction = tx as Transaction\n const serializedTx = this.serializeTransaction(transaction.toTransaction())\n const signature = await ed.sign(serializedTx, this.wallet.getPrivateKey())\n return Object.assign(transaction, { signature })\n }\n\n async signMessage(message: string): Promise<string> {\n if (!this.wallet) throw new Error('Wallet not initialized')\n const signature = await ed.sign(new TextEncoder().encode(message), this.wallet.getPrivateKey())\n return Buffer.from(signature).toString('hex')\n }\n\n async sendTransaction(tx: WarpAdapterGenericTransaction): Promise<string> {\n if (!this.wallet) throw new Error('Wallet not initialized')\n const transaction = tx as Transaction\n const fastsetTx = transaction.toTransaction()\n\n const transactionData = {\n sender: fastsetTx.sender,\n recipient: fastsetTx.recipient,\n nonce: fastsetTx.nonce,\n timestamp_nanos: fastsetTx.timestamp_nanos,\n claim: fastsetTx.claim,\n }\n\n const signature = tx.signature\n ? new Uint8Array(Buffer.from(tx.signature, 'hex'))\n : await ed.sign(this.serializeTransaction(transactionData), this.wallet.getPrivateKey())\n\n return await this.client.submitTransaction(transactionData, signature)\n }\n\n create(mnemonic: string): WarpWalletDetails {\n const wallet = new Wallet(mnemonic)\n return { address: wallet.toBech32(), privateKey: Buffer.from(wallet.getPrivateKey()).toString('hex'), mnemonic }\n }\n\n generate(): WarpWalletDetails {\n const privateKey = ed.utils.randomPrivateKey()\n const wallet = new Wallet(Buffer.from(privateKey).toString('hex'))\n return { address: wallet.toBech32(), privateKey: Buffer.from(privateKey).toString('hex'), mnemonic: null }\n }\n\n getAddress(): string | null {\n return getWarpWalletAddressFromConfig(this.config, this.chain.name)\n }\n\n private serializeTransaction(tx: any): Uint8Array {\n const serialized = JSON.stringify(tx, (k, v) => (v instanceof Uint8Array ? Array.from(v) : v))\n return new TextEncoder().encode(serialized)\n }\n}\n","export * from './main'\nexport { FastsetClient, Transaction, Wallet } from './sdk'\nexport { WarpFastsetExecutor } from './WarpFastsetExecutor'\nexport { WarpFastsetWallet } from './WarpFastsetWallet'\n"],"mappings":"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","names":["bech32","getWarpWalletAddressFromConfig","getWarpWalletAddressFromConfig","getWarpWalletAddressFromConfig","getWarpWalletAddressFromConfig"]}
|
|
1
|
+
{"version":3,"sources":["../src/sdk/ed25519-setup.ts","../src/sdk/FastsetClient.ts","../src/sdk/index.ts","../src/main.ts","../src/WarpFastsetDataLoader.ts","../src/helpers/general.ts","../src/WarpFastsetExecutor.ts","../src/WarpFastsetExplorer.ts","../src/WarpFastsetResults.ts","../src/WarpFastsetSerializer.ts","../src/WarpFastsetWallet.ts","../src/index.ts"],"sourcesContent":["import * as ed from '@noble/ed25519'\nimport { sha512 } from '@noble/hashes/sha512'\n\n// Configure ed25519 library exactly like the official wallet\nif (ed.etc) {\n // @ts-ignore\n ed.etc.sha512Sync = (...m: Uint8Array[]) => sha512(ed.etc.concatBytes(...m))\n}\n\nexport { ed }\n","import { WarpClientConfig } from '@vleap/warps'\nimport * as bech32 from 'bech32'\nimport { ed } from './ed25519-setup'\n;(BigInt.prototype as any).toJSON = function () {\n return Number(this)\n}\n\nexport interface TransactionData {\n sender: number[] | Uint8Array\n recipient: any\n nonce: number\n timestamp_nanos: bigint\n claim: any\n}\n\nexport interface AccountInfoResponse {\n sender: number[]\n balance: string\n next_nonce: number\n pending_confirmation?: any\n requested_certificate?: any\n requested_validated_transaction?: any\n requested_received_transfers: any[]\n token_balance: Array<[number[], string]>\n requested_claim_by_id?: any\n requested_claims: any[]\n}\n\nexport class Transaction {\n constructor(\n private sender: Uint8Array,\n private recipient: { FastSet: Uint8Array } | { External: Uint8Array },\n private nonce: number,\n private claim: any,\n private timestamp: bigint = BigInt(Date.now()) * 1_000_000n\n ) {\n // Fix claim data - remove 0x prefix from amounts\n if (claim?.Transfer?.amount?.startsWith('0x')) {\n claim = { ...claim, Transfer: { ...claim.Transfer, amount: claim.Transfer.amount.slice(2) } }\n }\n }\n\n toTransaction() {\n return { sender: this.sender, recipient: this.recipient, nonce: this.nonce, timestamp_nanos: this.timestamp, claim: this.claim }\n }\n\n getRecipientAddress() {\n return this.recipient\n }\n getAmount() {\n return this.claim?.Transfer?.amount || ''\n }\n getUserData() {\n return this.claim?.Transfer?.user_data || null\n }\n}\n\nexport interface AccountInfoResponse {\n sender: number[]\n balance: string\n next_nonce: number\n pending_confirmation?: any\n requested_certificate?: any\n requested_validated_transaction?: any\n requested_received_transfers: any[]\n token_balance: Array<[number[], string]>\n requested_claim_by_id?: any\n requested_claims: any[]\n}\n\nexport class FastsetClient {\n private proxyUrl: string\n\n constructor(config?: WarpClientConfig | { proxyUrl: string }, chain?: any) {\n this.proxyUrl = config && 'proxyUrl' in config ? config.proxyUrl : config && chain ? chain.defaultApiUrl : 'https://proxy.fastset.xyz'\n }\n\n private async makeRequest<T = any>(method: string, params: any = {}): Promise<T> {\n const response = await fetch(this.proxyUrl, {\n method: 'POST',\n headers: { 'Content-Type': 'application/json' },\n body: JSON.stringify({ jsonrpc: '2.0', method, params, id: Date.now() }, (k, v) => (v instanceof Uint8Array ? Array.from(v) : v)),\n })\n\n if (!response.ok) throw new Error(`HTTP error! status: ${response.status}`)\n const jsonResponse = await response.json()\n if (jsonResponse.error) throw new Error(`JSON-RPC error ${jsonResponse.error.code}: ${jsonResponse.error.message}`)\n return jsonResponse.result\n }\n\n async getAccountInfo(address: number[]): Promise<AccountInfoResponse> {\n return this.makeRequest('set_proxy_getAccountInfo', { address })\n }\n\n async getNextNonce(address: string | number[]): Promise<number> {\n const addressBytes = typeof address === 'string' ? this.addressToBytes(address) : address\n const accountInfo = await this.getAccountInfo(addressBytes)\n return accountInfo.next_nonce\n }\n\n async submitTransaction(transaction: TransactionData, signature: number[] | Uint8Array): Promise<string> {\n const signatureArray = Array.isArray(signature) ? signature : Array.from(signature)\n const submitTxReq = {\n transaction: {\n sender: transaction.sender instanceof Uint8Array ? transaction.sender : new Uint8Array(transaction.sender),\n recipient: transaction.recipient,\n nonce: transaction.nonce,\n timestamp_nanos: transaction.timestamp_nanos,\n claim: transaction.claim,\n },\n signature: new Uint8Array(signatureArray),\n }\n\n const response = await fetch(this.proxyUrl, {\n method: 'POST',\n headers: { 'Content-Type': 'application/json' },\n body: JSON.stringify({ jsonrpc: '2.0', method: 'set_proxy_submitTransaction', params: submitTxReq, id: 1 }, (k, v) =>\n v instanceof Uint8Array ? Array.from(v) : v\n ),\n })\n\n if (!response.ok) throw new Error(`HTTP error! status: ${response.status}`)\n const jsonResponse = await response.json()\n if (jsonResponse.error) throw new Error(`JSON-RPC error ${jsonResponse.error.code}: ${jsonResponse.error.message}`)\n return jsonResponse.result\n }\n\n async faucetDrip(recipient: number[] | Uint8Array, amount: string): Promise<any> {\n const recipientArray = Array.isArray(recipient) ? recipient : Array.from(recipient)\n return this.makeRequest('set_proxy_faucetDrip', { recipient: recipientArray, amount })\n }\n\n private addressToBytes(address: string): number[] {\n try {\n const decoded = bech32.bech32m.decode(address)\n return Array.from(bech32.bech32m.fromWords(decoded.words))\n } catch {\n const decoded = bech32.bech32.decode(address)\n return Array.from(bech32.bech32.fromWords(decoded.words))\n }\n }\n\n // Wallet utilities\n generateNewWallet(): Wallet {\n const privateKey = ed.utils.randomPrivateKey()\n return new Wallet(Buffer.from(privateKey).toString('hex'))\n }\n\n createWallet(privateKeyHex: string): Wallet {\n return new Wallet(privateKeyHex)\n }\n\n static decodeBech32Address(address: string): Uint8Array {\n try {\n const decoded = bech32.bech32m.decode(address)\n return new Uint8Array(bech32.bech32m.fromWords(decoded.words))\n } catch {\n const decoded = bech32.bech32.decode(address)\n return new Uint8Array(bech32.bech32.fromWords(decoded.words))\n }\n }\n\n static encodeBech32Address(publicKey: Uint8Array): string {\n const words = bech32.bech32m.toWords(publicKey)\n return bech32.bech32m.encode('set', words)\n }\n}\n\nexport class Wallet {\n public readonly publicKey: Uint8Array\n private readonly privateKey: Uint8Array\n\n constructor(privateKeyHex: string) {\n this.privateKey = new Uint8Array(Buffer.from(privateKeyHex.replace(/^0x/, ''), 'hex'))\n this.publicKey = ed.getPublicKey(this.privateKey)\n }\n\n toBech32(): string {\n return bech32.bech32m.encode('set', bech32.bech32m.toWords(this.publicKey))\n }\n\n signTransactionRaw(data: Uint8Array): Uint8Array {\n return ed.sign(data, this.privateKey)\n }\n\n getPrivateKey(): Uint8Array {\n return this.privateKey\n }\n}\n","export * from './FastsetClient'\n","import { Adapter, AdapterFactory, WarpChainAsset, WarpChainEnv, WarpChainInfo, WarpChainName, WarpClientConfig } from '@vleap/warps'\nimport { WarpFastsetDataLoader } from './WarpFastsetDataLoader'\nimport { WarpFastsetExecutor } from './WarpFastsetExecutor'\nimport { WarpFastsetExplorer } from './WarpFastsetExplorer'\nimport { WarpFastsetResults } from './WarpFastsetResults'\nimport { WarpFastsetSerializer } from './WarpFastsetSerializer'\nimport { WarpFastsetWallet } from './WarpFastsetWallet'\n\nexport const NativeTokenSet: WarpChainAsset = {\n chain: WarpChainName.Fastset,\n identifier: 'SET',\n name: 'SET',\n symbol: 'SET',\n decimals: 6,\n logoUrl: 'https://vleap.ai/images/tokens/set.svg',\n}\n\nfunction createFastsetAdapter(chainName: string, chainPrefix: string, chainInfos: Record<WarpChainEnv, WarpChainInfo>): AdapterFactory {\n return (config: WarpClientConfig, fallback?: Adapter) => {\n const chainInfo = chainInfos[config.env]\n if (!chainInfo) throw new Error(`FastsetAdapter: chain info not found for chain ${chainName}`)\n\n if (!fallback) throw new Error('Fastset adapter requires a fallback adapter')\n\n return {\n chain: chainName,\n chainInfo,\n prefix: chainPrefix,\n builder: () => fallback.builder(),\n executor: new WarpFastsetExecutor(config, chainInfo),\n results: new WarpFastsetResults(config, chainInfo),\n serializer: new WarpFastsetSerializer(),\n registry: fallback.registry,\n explorer: new WarpFastsetExplorer(chainInfo, config),\n abiBuilder: () => fallback.abiBuilder(),\n brandBuilder: () => fallback.brandBuilder(),\n dataLoader: new WarpFastsetDataLoader(config, chainInfo),\n wallet: new WarpFastsetWallet(config, chainInfo),\n }\n }\n}\n\nexport const getFastsetAdapter: AdapterFactory = createFastsetAdapter(WarpChainName.Fastset, 'fastset', {\n mainnet: {\n name: WarpChainName.Fastset,\n displayName: 'FastSet',\n chainId: '1',\n blockTime: 1000,\n addressHrp: 'set',\n defaultApiUrl: 'https://proxy.fastset.xyz',\n logoUrl: 'https://vleap.ai/images/chains/fastset.svg',\n nativeToken: NativeTokenSet,\n },\n testnet: {\n name: WarpChainName.Fastset,\n displayName: 'FastSet Testnet',\n chainId: 'testnet',\n blockTime: 1000,\n addressHrp: 'set',\n defaultApiUrl: 'https://proxy.fastset.xyz',\n logoUrl: 'https://vleap.ai/images/chains/fastset.svg',\n nativeToken: NativeTokenSet,\n },\n devnet: {\n name: WarpChainName.Fastset,\n displayName: 'FastSet Devnet',\n chainId: 'devnet',\n blockTime: 1000,\n addressHrp: 'set',\n defaultApiUrl: 'https://proxy.fastset.xyz',\n logoUrl: 'https://vleap.ai/images/chains/fastset.svg',\n nativeToken: NativeTokenSet,\n },\n})\n","import {\n AdapterWarpDataLoader,\n WarpChainAccount,\n WarpChainAction,\n WarpChainAsset,\n WarpChainInfo,\n WarpClientConfig,\n WarpDataLoaderOptions,\n} from '@vleap/warps'\nimport * as bech32 from 'bech32'\nimport { getConfiguredFastsetClient } from './helpers'\nimport { FastsetClient } from './sdk/FastsetClient'\n\nexport class WarpFastsetDataLoader implements AdapterWarpDataLoader {\n private client: FastsetClient\n\n constructor(\n private readonly config: WarpClientConfig,\n private readonly chain: WarpChainInfo\n ) {\n this.client = getConfiguredFastsetClient(config, chain)\n }\n\n async getAccount(address: string): Promise<WarpChainAccount> {\n const addressBytes = this.addressToBytes(address)\n const accountInfo = await this.client.getAccountInfo(addressBytes)\n\n return { chain: this.chain.name, address, balance: BigInt(parseInt(accountInfo.balance, 16)) }\n }\n\n async getAccountAssets(address: string): Promise<WarpChainAsset[]> {\n const addressBytes = this.addressToBytes(address)\n const accountInfo = await this.client.getAccountInfo(addressBytes)\n\n const assets: WarpChainAsset[] = []\n const balance = BigInt(parseInt(accountInfo.balance, 16))\n if (balance > 0n) {\n assets.push({ ...this.chain.nativeToken, amount: balance })\n }\n\n for (const [tokenId, tokenBalance] of accountInfo.token_balance) {\n const amount = BigInt(parseInt(tokenBalance, 16))\n if (amount > 0n) {\n const tokenInfo = await this.client.getTokenInfo([tokenId])\n const metadata = tokenInfo.requested_token_metadata[0]?.[1]\n\n assets.push({\n chain: this.chain.name,\n identifier: Buffer.from(tokenId).toString('hex'),\n symbol: metadata?.token_name || 'UNKNOWN',\n name: metadata?.token_name || 'Unknown Token',\n decimals: metadata?.decimals || 6,\n logoUrl: undefined,\n amount,\n })\n }\n }\n\n return assets\n }\n\n async getAsset(identifier: string): Promise<WarpChainAsset | null> {\n if (identifier === this.chain.nativeToken.identifier) {\n return this.chain.nativeToken\n }\n\n const tokenId = Buffer.from(identifier, 'hex')\n const tokenInfo = await this.client.getTokenInfo([Array.from(tokenId)])\n const metadata = tokenInfo.requested_token_metadata[0]?.[1]\n if (!metadata) return null\n\n return {\n chain: this.chain.name,\n identifier,\n symbol: metadata.token_name,\n name: metadata.token_name,\n decimals: metadata.decimals,\n logoUrl: undefined,\n amount: BigInt(metadata.total_supply),\n }\n }\n\n async getAction(identifier: string, awaitCompleted = false): Promise<WarpChainAction | null> {\n return null\n }\n\n async getAccountActions(address: string, options?: WarpDataLoaderOptions): Promise<WarpChainAction[]> {\n return []\n }\n\n private addressToBytes(address: string): number[] {\n try {\n const decoded = bech32.bech32m.decode(address)\n return Array.from(bech32.bech32m.fromWords(decoded.words))\n } catch {\n try {\n const decoded = bech32.bech32.decode(address)\n return Array.from(bech32.bech32.fromWords(decoded.words))\n } catch {\n throw new Error(`Invalid FastSet address: ${address}`)\n }\n }\n }\n}\n","import { WarpChainInfo, WarpClientConfig, getProviderUrl } from '@vleap/warps'\nimport { FastsetClient } from '../sdk'\n\nexport const getConfiguredFastsetClient = (config: WarpClientConfig, chain: WarpChainInfo) => {\n const proxyUrl = getProviderUrl(config, chain.name, config.env, chain.defaultApiUrl)\n return new FastsetClient({ proxyUrl })\n}\n","import {\n AdapterWarpExecutor,\n getWarpActionByIndex,\n getWarpWalletAddressFromConfig,\n WarpChainInfo,\n WarpClientConfig,\n WarpExecutable,\n} from '@vleap/warps'\nimport { FastsetClient, Transaction } from './sdk'\n\nexport class WarpFastsetExecutor implements AdapterWarpExecutor {\n private readonly fastsetClient: FastsetClient\n\n constructor(\n private readonly config: WarpClientConfig,\n private readonly chain: WarpChainInfo\n ) {\n this.fastsetClient = new FastsetClient({ proxyUrl: 'https://proxy.fastset.xyz' })\n }\n\n async createTransaction(executable: WarpExecutable): Promise<any> {\n const action = getWarpActionByIndex(executable.warp, executable.action)\n if (action.type === 'transfer') return this.createTransferTransaction(executable)\n if (action.type === 'contract') return this.createContractCallTransaction(executable)\n if (action.type === 'query') throw new Error('WarpFastsetExecutor: Invalid type for createTransaction; Use executeQuery instead')\n if (action.type === 'collect') throw new Error('WarpFastsetExecutor: Invalid type for createTransaction; Use executeCollect instead')\n throw new Error(`WarpFastsetExecutor: Invalid type (${action.type})`)\n }\n\n async createTransferTransaction(executable: WarpExecutable): Promise<Transaction> {\n const userWallet = getWarpWalletAddressFromConfig(this.config, executable.chain.name)\n if (!userWallet) throw new Error('WarpFastsetExecutor: User address not set')\n\n const senderAddress = FastsetClient.decodeBech32Address(userWallet)\n const recipientAddress = FastsetClient.decodeBech32Address(executable.destination)\n const nonce = await this.fastsetClient.getNextNonce(userWallet)\n\n // Get amount from transfers or value\n const amount = executable.transfers?.[0]?.amount ? '0x' + executable.transfers[0].amount.toString(16) : executable.value.toString()\n\n const userData = executable.data ? this.fromBase64(executable.data) : null\n\n const claim = { Transfer: { amount, user_data: userData } }\n return new Transaction(senderAddress, { FastSet: recipientAddress }, nonce, claim)\n }\n\n async createContractCallTransaction(executable: WarpExecutable): Promise<any> {\n const userWallet = this.config.user?.wallets?.[executable.chain.name]\n if (!userWallet) throw new Error('WarpFastsetExecutor: User address not set')\n const action = getWarpActionByIndex(executable.warp, executable.action)\n if (!action || !('func' in action) || !action.func) throw new Error('Contract action must have function name')\n\n return {\n type: 'fastset-contract-call',\n contract: this.fromBase64(executable.destination),\n function: action.func,\n data: JSON.stringify({ function: action.func, arguments: executable.args }),\n value: executable.value,\n chain: executable.chain,\n }\n }\n\n async executeQuery(executable: WarpExecutable): Promise<any> {\n const action = getWarpActionByIndex(executable.warp, executable.action) as any\n if (action.type !== 'query') throw new Error(`Invalid action type for executeQuery: ${action.type}`)\n\n try {\n const result = await this.executeFastsetQuery(this.fromBase64(executable.destination), action.func, executable.args)\n return { success: true, result, chain: executable.chain }\n } catch (error) {\n return { success: false, error: error instanceof Error ? error.message : String(error), chain: executable.chain }\n }\n }\n\n async executeTransfer(executable: WarpExecutable): Promise<any> {\n const transaction = await this.createTransferTransaction(executable)\n return { success: true, transaction, chain: executable.chain.name }\n }\n\n async executeTransferWithKey(executable: WarpExecutable, privateKey: string): Promise<any> {\n const transaction = await this.createTransferTransaction(executable)\n const privateKeyBytes = this.fromBase64(privateKey)\n\n const transactionData = {\n sender: privateKeyBytes.slice(0, 32),\n recipient: transaction.getRecipientAddress(),\n nonce: await this.fastsetClient.getNextNonce(FastsetClient.encodeBech32Address(privateKeyBytes.slice(0, 32))),\n timestamp_nanos: BigInt(Date.now()) * 1_000_000n,\n claim: { Transfer: { amount: transaction.getAmount(), user_data: transaction.getUserData() } },\n }\n\n const signature = await this.signTransaction(transactionData, privateKeyBytes)\n const result = await this.fastsetClient.submitTransaction(transactionData, signature)\n\n return { success: true, result, message: 'Transaction submitted successfully', chain: executable.chain.name }\n }\n\n private async signTransaction(transaction: any, privateKey: Uint8Array): Promise<Uint8Array> {\n const wallet = new (await import('./sdk')).Wallet(Buffer.from(privateKey).toString('hex'))\n return wallet.signTransactionRaw(this.serializeTransaction(transaction))\n }\n\n private serializeTransaction(tx: any): Uint8Array {\n const serialized = JSON.stringify(tx, (k, v) => (v instanceof Uint8Array ? Array.from(v) : v))\n return new TextEncoder().encode(serialized)\n }\n\n private async executeFastsetQuery(contractAddress: Uint8Array, functionName: string, args: unknown[]): Promise<unknown> {\n const response = await fetch('https://proxy.fastset.xyz', {\n method: 'POST',\n headers: { 'Content-Type': 'application/json' },\n body: JSON.stringify({\n jsonrpc: '2.0',\n method: 'set_proxy_query',\n params: { contract: Array.from(contractAddress), function: functionName, arguments: args },\n id: 1,\n }),\n })\n if (!response.ok) throw new Error(`Query failed: ${response.statusText}`)\n return response.json()\n }\n\n private fromBase64(base64: string): Uint8Array {\n return Uint8Array.from(atob(base64), (c) => c.charCodeAt(0))\n }\n}\n","import { AdapterWarpExplorer, WarpChainInfo, WarpClientConfig } from '@vleap/warps'\n\nexport class WarpFastsetExplorer implements AdapterWarpExplorer {\n private readonly explorerUrl = 'https://explorer.fastset.xyz'\n\n constructor(\n private readonly _chainInfo: WarpChainInfo,\n private readonly _config?: WarpClientConfig\n ) {}\n\n getAccountUrl(address: string): string {\n return `${this.explorerUrl}/account/${address}`\n }\n\n getTransactionUrl(hash: string): string {\n return `${this.explorerUrl}/transaction/${hash}`\n }\n\n getAssetUrl(identifier: string): string {\n return `${this.explorerUrl}/asset/${identifier}`\n }\n\n getContractUrl(address: string): string {\n return `${this.explorerUrl}/account/${address}`\n }\n}\n","import {\n AdapterWarpResults,\n evaluateResultsCommon,\n getWarpWalletAddressFromConfig,\n parseResultsOutIndex,\n ResolvedInput,\n Warp,\n WarpChainInfo,\n WarpClientConfig,\n WarpConstants,\n WarpExecution,\n WarpExecutionResults,\n} from '@vleap/warps'\nimport { WarpFastsetSerializer } from './WarpFastsetSerializer'\n\nexport class WarpFastsetResults implements AdapterWarpResults {\n private readonly serializer: WarpFastsetSerializer\n\n constructor(\n private readonly config: WarpClientConfig,\n private readonly chain: WarpChainInfo\n ) {\n this.serializer = new WarpFastsetSerializer()\n }\n\n async getTransactionExecutionResults(warp: Warp, tx: any): Promise<WarpExecution> {\n const success = this.isTransactionSuccessful(tx)\n const transactionHash = this.extractTransactionHash(tx)\n const blockNumber = this.extractBlockNumber(tx)\n const timestamp = this.extractTimestamp(tx)\n\n return {\n success,\n warp,\n action: 0,\n user: getWarpWalletAddressFromConfig(this.config, this.chain.name),\n txHash: transactionHash,\n tx,\n next: null,\n values: [transactionHash, blockNumber, timestamp],\n valuesRaw: [transactionHash, blockNumber, timestamp],\n results: {},\n messages: {},\n }\n }\n\n async extractQueryResults(\n warp: Warp,\n typedValues: any[],\n actionIndex: number,\n inputs: ResolvedInput[]\n ): Promise<{ values: any[]; results: WarpExecutionResults }> {\n const values = typedValues.map((t) => this.serializer.typedToString(t))\n const valuesRaw = typedValues.map((t) => this.serializer.typedToNative(t)[1])\n let results: WarpExecutionResults = {}\n\n if (!warp.results) return { values, results }\n\n const getNestedValue = (path: string): unknown => {\n const match = path.match(/^out\\[(\\d+)\\]$/)\n if (match) {\n const index = parseInt(match[1]) - 1\n return valuesRaw[index]\n }\n\n const indices = path\n .split('.')\n .slice(1)\n .map((i) => parseInt(i) - 1)\n if (indices.length === 0) return undefined\n let value: any = valuesRaw[indices[0]]\n for (let i = 1; i < indices.length; i++) {\n if (value === undefined || value === null) return undefined\n value = value[indices[i]]\n }\n return value\n }\n\n for (const [key, path] of Object.entries(warp.results)) {\n if (path.startsWith(WarpConstants.Transform.Prefix)) continue\n const currentActionIndex = parseResultsOutIndex(path)\n if (currentActionIndex !== null && currentActionIndex !== actionIndex) {\n results[key] = null\n continue\n }\n if (path.startsWith('out.') || path === 'out' || path.startsWith('out[')) {\n const value = getNestedValue(path)\n results[key] = value || null\n } else {\n results[key] = path\n }\n }\n\n return { values, results: await evaluateResultsCommon(warp, results, actionIndex, inputs, this.config.transform?.runner) }\n }\n\n private isTransactionSuccessful(tx: any): boolean {\n if (!tx) return false\n\n if (tx.success === false) return false\n if (tx.success === true) return true\n if (tx.status === 'success') return true\n if (tx.status === 1) return true\n if (tx.result && tx.result.success === true) return true\n\n return false\n }\n\n private extractTransactionHash(tx: any): string {\n if (!tx) return ''\n\n return tx.transaction_hash || tx.transactionHash || tx.hash || (tx.result && tx.result.transaction_hash) || ''\n }\n\n private extractBlockNumber(tx: any): string {\n if (!tx) return '0'\n\n return tx.block_number?.toString() || tx.blockNumber?.toString() || (tx.result && tx.result.block_number?.toString()) || '0'\n }\n\n private extractTimestamp(tx: any): string {\n if (!tx) return '0'\n\n return (\n tx.timestamp?.toString() || tx.timestamp_nanos?.toString() || (tx.result && tx.result.timestamp?.toString()) || Date.now().toString()\n )\n }\n}\n","import {\n AdapterWarpSerializer,\n BaseWarpActionInputType,\n WarpActionInputType,\n WarpAdapterGenericType,\n WarpNativeValue,\n WarpSerializer,\n} from '@vleap/warps'\n\nexport class WarpFastsetSerializer implements AdapterWarpSerializer {\n public readonly coreSerializer: WarpSerializer\n\n constructor() {\n this.coreSerializer = new WarpSerializer()\n }\n\n typedToString(value: any): string {\n if (typeof value === 'string') {\n return `string:${value}`\n }\n\n if (typeof value === 'number') {\n return `number:${value}`\n }\n\n if (typeof value === 'boolean') {\n return `boolean:${value}`\n }\n\n if (typeof value === 'bigint') {\n return `biguint:${value.toString()}`\n }\n\n if (Array.isArray(value)) {\n const items = value.map((item) => this.typedToString(item)).join(',')\n return `array:${items}`\n }\n\n if (value === null) {\n return 'null:null'\n }\n\n if (value === undefined) {\n return 'undefined:undefined'\n }\n\n return `string:${String(value)}`\n }\n\n typedToNative(value: any): [WarpActionInputType, WarpNativeValue] {\n if (typeof value === 'string') {\n return ['string', value]\n }\n\n if (typeof value === 'number') {\n return ['number', value]\n }\n\n if (typeof value === 'boolean') {\n return ['boolean', value]\n }\n\n if (typeof value === 'bigint') {\n return ['biguint', value.toString()]\n }\n\n return ['string', String(value)]\n }\n\n nativeToTyped(type: WarpActionInputType, value: WarpNativeValue): any {\n switch (type) {\n case 'string':\n return String(value)\n case 'number':\n return Number(value)\n case 'boolean':\n return Boolean(value)\n case 'biguint':\n return BigInt(value as string | number)\n case 'address':\n return String(value)\n case 'hex':\n return String(value)\n default:\n return String(value)\n }\n }\n\n nativeToType(type: BaseWarpActionInputType): WarpAdapterGenericType {\n switch (type) {\n case 'string':\n return 'string'\n case 'number':\n return 'number'\n case 'boolean':\n return 'boolean'\n case 'biguint':\n return 'biguint'\n case 'address':\n return 'address'\n case 'hex':\n return 'hex'\n default:\n return 'string'\n }\n }\n\n stringToTyped(value: string): any {\n const colonIndex = value.indexOf(':')\n if (colonIndex === -1) {\n return value\n }\n\n const type = value.substring(0, colonIndex)\n const stringValue = value.substring(colonIndex + 1)\n\n switch (type) {\n case 'string':\n return stringValue\n case 'number':\n return Number(stringValue)\n case 'boolean':\n return stringValue === 'true'\n case 'biguint':\n return BigInt(stringValue)\n case 'array':\n return stringValue.split(',').map((item) => this.stringToTyped(item))\n case 'null':\n return null\n case 'undefined':\n return undefined\n default:\n return stringValue\n }\n }\n}\n","import {\n AdapterWarpWallet,\n getWarpWalletAddressFromConfig,\n WarpAdapterGenericTransaction,\n WarpChainInfo,\n WarpClientConfig,\n WarpWalletDetails,\n} from '@vleap/warps'\nimport { getConfiguredFastsetClient } from './helpers'\nimport { FastsetClient, Transaction, Wallet } from './sdk'\nimport { ed } from './sdk/ed25519-setup'\n\nexport class WarpFastsetWallet implements AdapterWarpWallet {\n private wallet: Wallet | null = null\n private client: FastsetClient\n\n constructor(\n private config: WarpClientConfig,\n private chain: WarpChainInfo\n ) {\n this.initializeWallet()\n this.client = getConfiguredFastsetClient(this.config, this.chain)\n }\n\n private initializeWallet() {\n const walletConfig = this.config.user?.wallets?.[this.chain.name]\n if (walletConfig && typeof walletConfig === 'object' && 'privateKey' in walletConfig && walletConfig.privateKey) {\n this.wallet = new Wallet(walletConfig.privateKey)\n }\n }\n\n async signTransaction(tx: WarpAdapterGenericTransaction): Promise<WarpAdapterGenericTransaction> {\n if (!this.wallet) throw new Error('Wallet not initialized')\n const transaction = tx as Transaction\n const serializedTx = this.serializeTransaction(transaction.toTransaction())\n const signature = await ed.sign(serializedTx, this.wallet.getPrivateKey())\n return Object.assign(transaction, { signature })\n }\n\n async signMessage(message: string): Promise<string> {\n if (!this.wallet) throw new Error('Wallet not initialized')\n const signature = await ed.sign(new TextEncoder().encode(message), this.wallet.getPrivateKey())\n return Buffer.from(signature).toString('hex')\n }\n\n async sendTransaction(tx: WarpAdapterGenericTransaction): Promise<string> {\n if (!this.wallet) throw new Error('Wallet not initialized')\n const transaction = tx as Transaction\n const fastsetTx = transaction.toTransaction()\n\n const transactionData = {\n sender: fastsetTx.sender,\n recipient: fastsetTx.recipient,\n nonce: fastsetTx.nonce,\n timestamp_nanos: fastsetTx.timestamp_nanos,\n claim: fastsetTx.claim,\n }\n\n const signature = tx.signature\n ? new Uint8Array(Buffer.from(tx.signature, 'hex'))\n : await ed.sign(this.serializeTransaction(transactionData), this.wallet.getPrivateKey())\n\n return await this.client.submitTransaction(transactionData, signature)\n }\n\n create(mnemonic: string): WarpWalletDetails {\n const wallet = new Wallet(mnemonic)\n return { address: wallet.toBech32(), privateKey: Buffer.from(wallet.getPrivateKey()).toString('hex'), mnemonic }\n }\n\n generate(): WarpWalletDetails {\n const privateKey = ed.utils.randomPrivateKey()\n const wallet = new Wallet(Buffer.from(privateKey).toString('hex'))\n return { address: wallet.toBech32(), privateKey: Buffer.from(privateKey).toString('hex'), mnemonic: null }\n }\n\n getAddress(): string | null {\n return getWarpWalletAddressFromConfig(this.config, this.chain.name)\n }\n\n private serializeTransaction(tx: any): Uint8Array {\n const serialized = JSON.stringify(tx, (k, v) => (v instanceof Uint8Array ? Array.from(v) : v))\n return new TextEncoder().encode(serialized)\n }\n}\n","export * from './main'\nexport { FastsetClient, Transaction, Wallet } from './sdk'\nexport { WarpFastsetExecutor } from './WarpFastsetExecutor'\nexport { WarpFastsetWallet } from './WarpFastsetWallet'\n"],"mappings":"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","names":["bech32","getWarpWalletAddressFromConfig","getWarpWalletAddressFromConfig","getWarpWalletAddressFromConfig","getWarpWalletAddressFromConfig"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@vleap/warps-adapter-fastset",
|
|
3
|
-
"version": "0.1.0-alpha.
|
|
3
|
+
"version": "0.1.0-alpha.23",
|
|
4
4
|
"description": "Fastset adapter for Warps SDK",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"types": "./dist/index.d.ts",
|
|
@@ -40,7 +40,7 @@
|
|
|
40
40
|
"@mysten/bcs": "^1.8.0",
|
|
41
41
|
"@noble/ed25519": "^3.0.0",
|
|
42
42
|
"@noble/hashes": "^2.0.0",
|
|
43
|
-
"@vleap/warps": "^3.0.0-alpha.
|
|
43
|
+
"@vleap/warps": "^3.0.0-alpha.104",
|
|
44
44
|
"bech32": "^2.0.0"
|
|
45
45
|
}
|
|
46
46
|
}
|