@pooflabs/server 0.0.33 → 0.0.35
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 +63 -86
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +11 -34
- package/dist/index.mjs.map +1 -1
- package/package.json +3 -3
package/dist/index.js
CHANGED
|
@@ -9,20 +9,20 @@ var bs58 = require('bs58');
|
|
|
9
9
|
var crypto = require('crypto');
|
|
10
10
|
|
|
11
11
|
function _interopNamespaceDefault(e) {
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
12
|
+
var n = Object.create(null);
|
|
13
|
+
if (e) {
|
|
14
|
+
Object.keys(e).forEach(function (k) {
|
|
15
|
+
if (k !== 'default') {
|
|
16
|
+
var d = Object.getOwnPropertyDescriptor(e, k);
|
|
17
|
+
Object.defineProperty(n, k, d.get ? d : {
|
|
18
|
+
enumerable: true,
|
|
19
|
+
get: function () { return e[k]; }
|
|
20
|
+
});
|
|
21
|
+
}
|
|
20
22
|
});
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
n.default = e;
|
|
25
|
-
return Object.freeze(n);
|
|
23
|
+
}
|
|
24
|
+
n.default = e;
|
|
25
|
+
return Object.freeze(n);
|
|
26
26
|
}
|
|
27
27
|
|
|
28
28
|
var anchor__namespace = /*#__PURE__*/_interopNamespaceDefault(anchor);
|
|
@@ -474,40 +474,17 @@ async function getIdToken() {
|
|
|
474
474
|
return core.getIdToken(true);
|
|
475
475
|
}
|
|
476
476
|
|
|
477
|
-
|
|
478
|
-
|
|
479
|
-
|
|
480
|
-
|
|
481
|
-
|
|
482
|
-
|
|
483
|
-
|
|
484
|
-
|
|
485
|
-
|
|
486
|
-
|
|
487
|
-
LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
|
|
488
|
-
OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
|
489
|
-
PERFORMANCE OF THIS SOFTWARE.
|
|
490
|
-
***************************************************************************** */
|
|
491
|
-
/* global Reflect, Promise, SuppressedError, Symbol, Iterator */
|
|
492
|
-
|
|
493
|
-
|
|
494
|
-
function __rest(s, e) {
|
|
495
|
-
var t = {};
|
|
496
|
-
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
|
497
|
-
t[p] = s[p];
|
|
498
|
-
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
|
499
|
-
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
500
|
-
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
|
501
|
-
t[p[i]] = s[p[i]];
|
|
502
|
-
}
|
|
503
|
-
return t;
|
|
504
|
-
}
|
|
505
|
-
|
|
506
|
-
typeof SuppressedError === "function" ? SuppressedError : function (error, suppressed, message) {
|
|
507
|
-
var e = new Error(message);
|
|
508
|
-
return e.name = "SuppressedError", e.error = error, e.suppressed = suppressed, e;
|
|
477
|
+
var __rest = (undefined && undefined.__rest) || function (s, e) {
|
|
478
|
+
var t = {};
|
|
479
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
|
480
|
+
t[p] = s[p];
|
|
481
|
+
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
|
482
|
+
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
483
|
+
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
|
484
|
+
t[p[i]] = s[p[i]];
|
|
485
|
+
}
|
|
486
|
+
return t;
|
|
509
487
|
};
|
|
510
|
-
|
|
511
488
|
/* ------------------------------------------------------------------ */
|
|
512
489
|
/* Keypair parsing */
|
|
513
490
|
/* ------------------------------------------------------------------ */
|
|
@@ -636,76 +613,76 @@ async function createWalletClient(opts) {
|
|
|
636
613
|
}
|
|
637
614
|
|
|
638
615
|
Object.defineProperty(exports, "InsufficientBalanceError", {
|
|
639
|
-
|
|
640
|
-
|
|
616
|
+
enumerable: true,
|
|
617
|
+
get: function () { return core.InsufficientBalanceError; }
|
|
641
618
|
});
|
|
642
619
|
Object.defineProperty(exports, "aggregate", {
|
|
643
|
-
|
|
644
|
-
|
|
620
|
+
enumerable: true,
|
|
621
|
+
get: function () { return core.aggregate; }
|
|
645
622
|
});
|
|
646
623
|
Object.defineProperty(exports, "count", {
|
|
647
|
-
|
|
648
|
-
|
|
624
|
+
enumerable: true,
|
|
625
|
+
get: function () { return core.count; }
|
|
649
626
|
});
|
|
650
627
|
Object.defineProperty(exports, "get", {
|
|
651
|
-
|
|
652
|
-
|
|
628
|
+
enumerable: true,
|
|
629
|
+
get: function () { return core.get; }
|
|
653
630
|
});
|
|
654
631
|
Object.defineProperty(exports, "getConfig", {
|
|
655
|
-
|
|
656
|
-
|
|
632
|
+
enumerable: true,
|
|
633
|
+
get: function () { return core.getConfig; }
|
|
657
634
|
});
|
|
658
635
|
Object.defineProperty(exports, "getFiles", {
|
|
659
|
-
|
|
660
|
-
|
|
636
|
+
enumerable: true,
|
|
637
|
+
get: function () { return core.getFiles; }
|
|
661
638
|
});
|
|
662
639
|
Object.defineProperty(exports, "getMany", {
|
|
663
|
-
|
|
664
|
-
|
|
640
|
+
enumerable: true,
|
|
641
|
+
get: function () { return core.getMany; }
|
|
665
642
|
});
|
|
666
643
|
Object.defineProperty(exports, "runExpression", {
|
|
667
|
-
|
|
668
|
-
|
|
644
|
+
enumerable: true,
|
|
645
|
+
get: function () { return core.runExpression; }
|
|
669
646
|
});
|
|
670
647
|
Object.defineProperty(exports, "runExpressionMany", {
|
|
671
|
-
|
|
672
|
-
|
|
648
|
+
enumerable: true,
|
|
649
|
+
get: function () { return core.runExpressionMany; }
|
|
673
650
|
});
|
|
674
651
|
Object.defineProperty(exports, "runQuery", {
|
|
675
|
-
|
|
676
|
-
|
|
652
|
+
enumerable: true,
|
|
653
|
+
get: function () { return core.runQuery; }
|
|
677
654
|
});
|
|
678
655
|
Object.defineProperty(exports, "runQueryMany", {
|
|
679
|
-
|
|
680
|
-
|
|
656
|
+
enumerable: true,
|
|
657
|
+
get: function () { return core.runQueryMany; }
|
|
681
658
|
});
|
|
682
659
|
Object.defineProperty(exports, "set", {
|
|
683
|
-
|
|
684
|
-
|
|
660
|
+
enumerable: true,
|
|
661
|
+
get: function () { return core.set; }
|
|
685
662
|
});
|
|
686
663
|
Object.defineProperty(exports, "setFile", {
|
|
687
|
-
|
|
688
|
-
|
|
664
|
+
enumerable: true,
|
|
665
|
+
get: function () { return core.setFile; }
|
|
689
666
|
});
|
|
690
667
|
Object.defineProperty(exports, "setMany", {
|
|
691
|
-
|
|
692
|
-
|
|
668
|
+
enumerable: true,
|
|
669
|
+
get: function () { return core.setMany; }
|
|
693
670
|
});
|
|
694
671
|
Object.defineProperty(exports, "signAndSubmitTransaction", {
|
|
695
|
-
|
|
696
|
-
|
|
672
|
+
enumerable: true,
|
|
673
|
+
get: function () { return core.signAndSubmitTransaction; }
|
|
697
674
|
});
|
|
698
675
|
Object.defineProperty(exports, "signMessage", {
|
|
699
|
-
|
|
700
|
-
|
|
676
|
+
enumerable: true,
|
|
677
|
+
get: function () { return core.signMessage; }
|
|
701
678
|
});
|
|
702
679
|
Object.defineProperty(exports, "signTransaction", {
|
|
703
|
-
|
|
704
|
-
|
|
680
|
+
enumerable: true,
|
|
681
|
+
get: function () { return core.signTransaction; }
|
|
705
682
|
});
|
|
706
683
|
Object.defineProperty(exports, "subscribe", {
|
|
707
|
-
|
|
708
|
-
|
|
684
|
+
enumerable: true,
|
|
685
|
+
get: function () { return core.subscribe; }
|
|
709
686
|
});
|
|
710
687
|
exports.WalletClient = WalletClient;
|
|
711
688
|
exports.createWalletClient = createWalletClient;
|
|
@@ -713,9 +690,9 @@ exports.getAuthProvider = getAuthProvider;
|
|
|
713
690
|
exports.getIdToken = getIdToken;
|
|
714
691
|
exports.init = init;
|
|
715
692
|
Object.keys(core).forEach(function (k) {
|
|
716
|
-
|
|
717
|
-
|
|
718
|
-
|
|
719
|
-
|
|
693
|
+
if (k !== 'default' && !Object.prototype.hasOwnProperty.call(exports, k)) Object.defineProperty(exports, k, {
|
|
694
|
+
enumerable: true,
|
|
695
|
+
get: function () { return core[k]; }
|
|
696
|
+
});
|
|
720
697
|
});
|
|
721
698
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../src/auth/providers/solana-keypair-provider.ts","../src/auth/providers/offchain-auth-provider.ts","../src/auth/index.ts","../src/global.ts","../src/utils.ts","../src/wallet-client.ts"],"sourcesContent":["import { Buffer } from 'buffer';\nimport {\n ComputeBudgetProgram,\n Connection,\n Keypair,\n Transaction,\n VersionedTransaction,\n VersionedTransactionResponse\n} from '@solana/web3.js';\nimport * as anchor from '@coral-xyz/anchor';\nimport nacl from 'tweetnacl';\nimport bs58 from 'bs58';\n\nimport type {\n AuthProvider,\n EVMTransaction,\n SolTransaction,\n TransactionResult,\n User,\n SetOptions,\n} from '@pooflabs/core';\n\nimport {\n convertRemainingAccounts,\n buildSetDocumentsTransaction,\n} from '@pooflabs/core';\nimport { SOLANA_DEVNET_RPC_URL, SOLANA_MAINNET_RPC_URL, SURFNET_RPC_URL } from '..';\n\n/* ------------------------------------------------------------- *\n * REQUIRED ENV-VAR\n * ------------------------------------------------------------- */\nconst ENV_VAR = 'TAROBASE_SOLANA_KEYPAIR'; // base-58 or JSON array\n\nfunction loadKeypairFromEnv(): Keypair {\n const secret = process?.env?.[ENV_VAR];\n if (!secret) {\n throw new Error(\n `Missing ${ENV_VAR}. Set it to a base58 secret key or JSON array.`,\n );\n }\n\n try {\n const secretKey = secret.trim().startsWith('[')\n ? Uint8Array.from(JSON.parse(secret))\n : bs58.decode(secret.trim());\n\n return Keypair.fromSecretKey(secretKey);\n } catch (err) {\n throw new Error(\n `Unable to parse ${ENV_VAR}. Ensure it is valid base58 or a JSON array.`,\n );\n }\n}\n\n/* ──────────────────────────────────────────────────────────\n * Helper – fetch getPriorityFeeEstimate\n * ──────────────────────────────────────────────────────── */\nasync function fetchPriorityFee(rpcEndpoint: string, rawUnsignedTxBuffer: Uint8Array) {\n try {\n const res = await fetch(rpcEndpoint, {\n method: \"POST\",\n headers: { \"Content-Type\": \"application/json\" },\n body: JSON.stringify({\n jsonrpc: \"2.0\",\n id: \"1\",\n method: \"getPriorityFeeEstimate\",\n params: [{\n transaction: bs58.encode(rawUnsignedTxBuffer), options: {\n recommended: true\n }\n }]\n })\n });\n const data = await res.json() as { result: { priorityFeeEstimate: number } };\n const fee = data?.result?.priorityFeeEstimate ?? null;\n console.log(\"Got fee from Helius\", fee);\n if (fee != null && fee > 0) {\n return Math.ceil(Number(fee) * 1.2);\n } else {\n console.log(\"No fee from Helius, using default 10000\");\n return Math.ceil(10000 * 1.2);\n }\n } catch (err) {\n console.warn(\"Priority‑fee estimate failed:\", err);\n return Math.ceil(10000 * 1.2);\n }\n}\n\nexport class SolanaKeypairProvider implements AuthProvider {\n private readonly keypair: Keypair;\n\n constructor(\n private readonly networkUrl: string | null = null,\n keypair?: Keypair,\n ) {\n this.keypair = keypair ?? loadKeypairFromEnv();\n }\n\n /* ----------------------------------------------------------- *\n * (Auth stubs – fill in later if needed)\n * ----------------------------------------------------------- */\n async login(): Promise<User | null> { throw new Error('Not implemented'); }\n async restoreSession(): Promise<User | null> { throw new Error('Not implemented'); }\n async logout(): Promise<void> { throw new Error('Not implemented'); }\n\n /* ----------------------------------------------------------- *\n * Sign arbitrary message\n * ----------------------------------------------------------- */\n async signMessage(message: string): Promise<string> {\n const sig = nacl.sign.detached(\n new TextEncoder().encode(message),\n this.keypair.secretKey,\n );\n return Buffer.from(sig).toString('base64');\n }\n\n /* ----------------------------------------------------------- *\n * Sign transaction\n * ----------------------------------------------------------- */\n async signTransaction(transaction: Transaction | VersionedTransaction): Promise<Transaction | VersionedTransaction> {\n // Use duck typing instead of instanceof to handle multiple @solana/web3.js versions\n const isLegacyTransaction = 'recentBlockhash' in transaction && !('message' in transaction && 'staticAccountKeys' in (transaction as any).message);\n\n if (isLegacyTransaction) {\n (transaction as Transaction).partialSign(this.keypair);\n } else {\n (transaction as VersionedTransaction).sign([this.keypair]);\n }\n return transaction;\n }\n\n /**\n * Signs and submits a Solana transaction to the network.\n *\n * This method handles blockhash and transaction confirmation automatically - you do NOT need to\n * set recentBlockhash or lastValidBlockHeight on the transaction before calling this method.\n * The network/RPC URL is derived from the provider's configuration (set during initialization).\n *\n * @param transaction - The transaction to sign and submit (Transaction or VersionedTransaction)\n * @param feePayer - Optional fee payer public key. If not provided and the transaction doesn't\n * already have a feePayer set, the keypair's public key will be used.\n * Useful for co-signing scenarios where a different account pays the fees.\n * @returns The transaction signature\n */\n async signAndSubmitTransaction(\n transaction: Transaction | VersionedTransaction,\n feePayer?: anchor.web3.PublicKey\n ): Promise<string> {\n // 1. Get RPC URL and create connection\n const rpcUrl = this.getRpcUrl();\n const connection = new Connection(rpcUrl, 'confirmed');\n\n // 2. Get fresh blockhash and set it on the transaction before signing\n const { blockhash, lastValidBlockHeight } = await connection.getLatestBlockhash('confirmed');\n\n // Use duck typing instead of instanceof to handle multiple @solana/web3.js versions\n const isLegacyTransaction = 'recentBlockhash' in transaction && !('message' in transaction && 'staticAccountKeys' in (transaction as any).message);\n\n if (isLegacyTransaction) {\n const legacyTx = transaction as Transaction;\n legacyTx.recentBlockhash = blockhash;\n legacyTx.lastValidBlockHeight = lastValidBlockHeight;\n\n // Set feePayer if not already set\n if (!legacyTx.feePayer) {\n legacyTx.feePayer = feePayer ?? this.keypair.publicKey;\n }\n } else {\n // VersionedTransaction\n const versionedTx = transaction as VersionedTransaction;\n versionedTx.message.recentBlockhash = blockhash;\n // Note: VersionedTransaction feePayer is set in the message at creation time\n // and cannot be modified after creation\n }\n\n // 3. Sign the transaction\n const signedTx = await this.signTransaction(transaction);\n\n // 4. Submit and confirm using shared helper\n const { signature } = await this.submitAndConfirmTransaction(signedTx, connection);\n return signature;\n }\n\n /* ----------------------------------------------------------- *\n * Private Helpers\n * ----------------------------------------------------------- */\n\n /**\n * Submits a signed transaction and waits for confirmation using polling.\n * Shared by both signAndSubmitTransaction and runTransactionInner.\n */\n private async submitAndConfirmTransaction(\n signedTx: Transaction | VersionedTransaction,\n connection: Connection,\n options?: { fetchTxInfo?: boolean }\n ): Promise<{ signature: string; txInfo: any }> {\n const sig = await connection.sendRawTransaction(signedTx.serialize(), {\n preflightCommitment: 'confirmed'\n });\n\n // Wait for confirmation using polling\n const startTime = Date.now();\n const timeoutMs = 10 * 1000; // 10 seconds\n\n while (true) {\n const st = await connection.getSignatureStatus(sig);\n if (st?.value?.err) {\n // Transaction confirmed but failed on-chain — fetch logs for a readable error\n const txInfo = await connection.getTransaction(sig, {\n maxSupportedTransactionVersion: 0,\n commitment: 'confirmed'\n });\n const logMessages = txInfo?.meta?.logMessages;\n const errorMessage = logMessages ? JSON.stringify(logMessages) : JSON.stringify(st?.value?.err);\n throw new Error(`Transaction failed: ${errorMessage}`);\n }\n if (st?.value?.confirmationStatus === 'confirmed') {\n break;\n }\n\n // Check if we've exceeded the timeout\n if (Date.now() - startTime > timeoutMs) {\n throw new Error(`Transaction confirmation timeout after ${timeoutMs / 1000} seconds`);\n }\n\n await new Promise(resolve => setTimeout(resolve, 500));\n }\n\n // Optionally fetch transaction info\n let txInfo : VersionedTransactionResponse | null = null;\n if (options?.fetchTxInfo) {\n txInfo = await connection.getTransaction(sig, {\n maxSupportedTransactionVersion: 0,\n commitment: 'confirmed'\n });\n }\n\n return { signature: sig, txInfo };\n }\n\n private getRpcUrl(network?: string): string {\n if (this.networkUrl) {\n return this.networkUrl;\n }\n if (network === 'solana_devnet') {\n return SOLANA_DEVNET_RPC_URL;\n } else if (network === 'solana_mainnet') {\n return SOLANA_MAINNET_RPC_URL;\n } else if (network === 'surfnet') {\n return SURFNET_RPC_URL;\n }\n return SOLANA_MAINNET_RPC_URL; // default to mainnet\n }\n\n /* ----------------------------------------------------------- *\n * Transaction runner\n * ----------------------------------------------------------- */\n async runTransaction(\n _evm?: EVMTransaction,\n sol?: SolTransaction,\n opts?: SetOptions,\n ): Promise<TransactionResult> {\n if (!sol) throw new Error('Solana transaction data required');\n\n const kp = this.keypair;\n\n // Helper for duck typing - checks if transaction is legacy Transaction vs VersionedTransaction\n const isLegacyTx = (tx: Transaction | VersionedTransaction): boolean => {\n return 'recentBlockhash' in tx && !('message' in tx && 'staticAccountKeys' in (tx as any).message);\n };\n\n const wallet: anchor.Wallet = {\n publicKey: kp.publicKey,\n signTransaction: async (tx: Transaction | VersionedTransaction) => {\n // Use duck typing instead of instanceof to handle multiple @solana/web3.js versions\n if (isLegacyTx(tx)) {\n (tx as Transaction).partialSign(kp);\n } else {\n (tx as VersionedTransaction).sign([kp]);\n }\n return tx;\n },\n signAllTransactions: async (txs: (Transaction | VersionedTransaction)[]) =>\n txs.map((t) => {\n // Use duck typing instead of instanceof to handle multiple @solana/web3.js versions\n if (isLegacyTx(t)) {\n (t as Transaction).partialSign(kp);\n } else {\n (t as VersionedTransaction).sign([kp]);\n }\n return t;\n }),\n } as unknown as anchor.Wallet;\n\n /* de-dupe remaining accounts */\n const deduped = (() => {\n const fin: ReturnType<typeof convertRemainingAccounts> = [];\n for (const acc of convertRemainingAccounts(\n sol.txArgs[0].remainingAccounts,\n )) {\n const ex = fin.find((x) => x.pubkey.equals(acc.pubkey));\n if (ex) {\n ex.isSigner ||= acc.isSigner;\n ex.isWritable ||= acc.isWritable;\n } else fin.push(acc);\n }\n return fin;\n })();\n\n let retries = 0;\n let didPass = false;\n let delay = 1000;\n let toReturn: TransactionResult | null = null;\n let errorMessage = \"\";\n while (retries < 5) {\n try {\n toReturn = await this.runTransactionInner(sol, opts, wallet, kp, deduped);\n didPass = true;\n break;\n } catch (error: any) {\n console.log(\"Error building and sending transaction on retry:\", retries, error);\n await new Promise(resolve => setTimeout(resolve, delay));\n // Exponential backoff\n delay *= 1.5;\n retries++;\n errorMessage = error.message || JSON.stringify(error, null, 2);\n }\n }\n if (!didPass) {\n throw new Error(`Failed to send transaction after 5 retries: ${errorMessage}`);\n }\n return toReturn as TransactionResult;\n }\n\n private async runTransactionInner(sol: SolTransaction, opts: SetOptions | undefined, wallet: anchor.Wallet, kp: Keypair, deduped: ReturnType<typeof convertRemainingAccounts>): Promise<TransactionResult> {\n\n let rpcUrl = this.getRpcUrl(sol.network);\n const connection = new Connection(rpcUrl, 'confirmed');\n\n const anchorProvider = new anchor.AnchorProvider(\n connection,\n wallet,\n anchor.AnchorProvider.defaultOptions(),\n );\n\n const app_id = sol.appId;\n if (!app_id) throw new Error('app_id missing');\n\n // When the server has co-signed a transaction (CPI attestation),\n // deserialize it and just add the wallet signature instead of\n // building from components.\n let tx: Transaction | VersionedTransaction;\n let blockhash: string;\n let lastValidBlockHeight: number;\n\n if (sol.signedTransaction) {\n tx = VersionedTransaction.deserialize(\n Buffer.from(sol.signedTransaction, 'base64')\n );\n const latestBlockhash = await connection.getLatestBlockhash('confirmed');\n blockhash = latestBlockhash.blockhash;\n lastValidBlockHeight = latestBlockhash.lastValidBlockHeight;\n } else {\n const result = await buildSetDocumentsTransaction(\n connection,\n sol.txArgs[0].idl,\n anchorProvider,\n kp.publicKey,\n {\n app_id,\n documents: sol.txArgs[0].setDocumentData,\n delete_paths: sol.txArgs[0].deletePaths,\n txData: sol.txArgs[0].txData\n },\n deduped,\n sol.lutKey,\n sol.preInstructions,\n false,\n sol.additionalLutAddresses,\n );\n tx = result.tx;\n blockhash = result.blockhash;\n lastValidBlockHeight = result.lastValidBlockHeight;\n }\n\n // Helper for duck typing - checks if transaction is legacy Transaction vs VersionedTransaction\n const isLegacyTx = (t: Transaction | VersionedTransaction): boolean => {\n return 'recentBlockhash' in t && !('message' in t && 'staticAccountKeys' in (t as any).message);\n };\n\n // Refresh blockhash and lastValidBlockHeight\n // Use duck typing instead of instanceof to handle multiple @solana/web3.js versions\n if (isLegacyTx(tx)) {\n (tx as Transaction).partialSign(kp);\n (tx as Transaction).recentBlockhash = blockhash;\n (tx as Transaction).lastValidBlockHeight = lastValidBlockHeight;\n (tx as Transaction).feePayer = kp.publicKey;\n } else {\n (tx as VersionedTransaction).sign([kp]);\n (tx as VersionedTransaction).message.recentBlockhash = blockhash;\n }\n\n // 3️⃣ Optional priority‑fee instruction\n\n const rawUnsigned = tx.serialize({ requireAllSignatures: false });\n const microLamports = await fetchPriorityFee(\n connection.rpcEndpoint,\n rawUnsigned\n );\n\n if (microLamports != null) {\n // Use duck typing instead of instanceof to handle multiple @solana/web3.js versions\n if (isLegacyTx(tx)) {\n (tx as Transaction).instructions.unshift(\n ComputeBudgetProgram.setComputeUnitPrice({ microLamports })\n );\n (tx as Transaction).partialSign(kp);\n } else {\n // For pre-signed (attestation) transactions, we can't rebuild — skip priority fee\n if (!sol.signedTransaction) {\n // Rebuild the transaction with the new priority fee\n const roundTwo = await buildSetDocumentsTransaction(\n connection,\n sol.txArgs[0].idl,\n anchorProvider,\n kp.publicKey,\n {\n app_id,\n documents: sol.txArgs[0].setDocumentData,\n delete_paths: sol.txArgs[0].deletePaths,\n txData: sol.txArgs[0].txData\n },\n deduped,\n sol.lutKey,\n [ComputeBudgetProgram.setComputeUnitPrice({ microLamports }), ...sol.preInstructions],\n false,\n sol.additionalLutAddresses,\n );\n tx = roundTwo.tx as VersionedTransaction;\n blockhash = roundTwo.blockhash;\n lastValidBlockHeight = roundTwo.lastValidBlockHeight;\n (tx as VersionedTransaction).sign([kp]);\n (tx as VersionedTransaction).message.recentBlockhash = blockhash;\n }\n }\n }\n\n if (opts?.shouldSubmitTx === false) {\n return { signedTransaction: tx, blockNumber: 0, gasUsed: '0', data: '' };\n }\n\n // Submit and confirm using shared helper\n const { signature, txInfo } = await this.submitAndConfirmTransaction(tx, connection, { fetchTxInfo: true });\n\n return {\n transactionSignature: signature,\n blockNumber: txInfo?.slot ?? 0,\n gasUsed: txInfo?.meta?.fee.toString() ?? '0',\n data: txInfo?.meta,\n };\n }\n\n /* ----------------------------------------------------------- */\n async getNativeMethods() {\n return { keypair: this.keypair };\n }\n}\n","import { AuthProvider } from '@pooflabs/core';\nimport { Transaction, VersionedTransaction } from '@solana/web3.js';\nimport * as crypto from 'crypto';\n\n/**\n * Server-side OffchainAuthProvider wrapper for the poofnet environment.\n *\n * For signMessage, this generates a mock signature using SHA-256 hashing.\n * This is used for offchain transaction signing.\n */\nexport class OffchainAuthProvider implements AuthProvider {\n private wrappedProvider: AuthProvider;\n\n constructor(wrappedProvider: AuthProvider) {\n this.wrappedProvider = wrappedProvider;\n }\n\n async login(): Promise<any> {\n return this.wrappedProvider.login();\n }\n\n async logout(): Promise<void> {\n return this.wrappedProvider.logout();\n }\n\n async restoreSession(): Promise<any> {\n return this.wrappedProvider.restoreSession();\n }\n\n async getNativeMethods(): Promise<any> {\n return this.wrappedProvider.getNativeMethods();\n }\n\n async signMessage(message: string): Promise<string> {\n // Delegate to wrapped provider for real signing\n return this.wrappedProvider.signMessage(message);\n }\n\n async signMessageMock(message: string): Promise<string> {\n // Generate mock signature (SHA-256 hash of message, base64 encoded)\n // This is used for offchain transaction signing\n const hash = crypto.createHash('sha256').update(message).digest('base64');\n return hash;\n }\n\n async signTransaction(transaction: Transaction | VersionedTransaction): Promise<Transaction | VersionedTransaction> {\n throw new Error('Poofnet does not support real Solana transactions. Deploy your project to mainnet to use this feature.');\n }\n\n /**\n * Sign and submit transaction - not supported in poofnet environment.\n * See the real providers (PhantomWalletProvider, PrivyWalletProvider, SolanaKeypairProvider)\n * for the full implementation with blockhash handling and feePayer support.\n */\n async signAndSubmitTransaction(\n _transaction: Transaction | VersionedTransaction,\n _feePayer?: any\n ): Promise<string> {\n throw new Error('Poofnet does not support real Solana transactions. Deploy your project to mainnet to use this feature.');\n }\n\n async runTransaction(evmTransactionData?: any, solTransactionData?: any, options?: any): Promise<any> {\n return this.wrappedProvider.runTransaction(evmTransactionData, solTransactionData, options);\n }\n}\n","import { getConfig } from '@pooflabs/core';\nimport { AuthProvider } from '@pooflabs/core';\nimport { SolanaKeypairProvider } from './providers/solana-keypair-provider';\nimport { OffchainAuthProvider } from './providers/offchain-auth-provider';\n\nlet currentAuthProvider: AuthProvider | null = null;\n\nexport const SOLANA_DEVNET_RPC_URL = \"https://idelle-8nxsep-fast-devnet.helius-rpc.com\";\nexport const SOLANA_MAINNET_RPC_URL = \"https://celestia-cegncv-fast-mainnet.helius-rpc.com\";\nexport const SURFNET_RPC_URL = \"https://surfpool.fly.dev\";\n\nexport async function getAuthProvider(): Promise<AuthProvider> {\n const config = await getConfig();\n\n if (currentAuthProvider) {\n // If provider exists but chain is \"offchain\" and it's not already wrapped, rewrap it\n if (config.chain === \"offchain\" && !(currentAuthProvider instanceof OffchainAuthProvider)) {\n currentAuthProvider = new OffchainAuthProvider(currentAuthProvider);\n }\n return currentAuthProvider;\n }\n\n currentAuthProvider = await matchAuthProvider(config.rpcUrl ?? null);\n \n // Wrap with OffchainAuthProvider for offchain chain\n if (config.chain === \"offchain\") {\n currentAuthProvider = new OffchainAuthProvider(currentAuthProvider);\n }\n\n return currentAuthProvider;\n}\n\nexport async function matchAuthProvider(rpcUrl: string | null): Promise<AuthProvider> {\n return new SolanaKeypairProvider(rpcUrl);\n}","import { AuthProvider } from '@pooflabs/core';\nimport { getAuthProvider } from './auth';\nimport { init as configInit, ClientConfig } from '@pooflabs/core';\n\nlet authProviderInstance: AuthProvider | null = null;\n\nconst SOLANA_DEVNET_RPC_URL = \"https://api.devnet.solana.com\";\nconst SOLANA_MAINNET_RPC_URL = \"https://celestia-cegncv-fast-mainnet.helius-rpc.com\";\nconst SURFNET_RPC_URL = \"https://surfpool.fly.dev\";\n\nexport async function init(newConfig: Partial<ClientConfig>): Promise<void> {\n // Initialize config first so getAuthProvider can access it\n // Server-side skips backend init since it already has all needed config\n await configInit({ ...newConfig, isServer: true, skipBackendInit: true });\n\n // Get the auth provider (which will wrap it if chain is \"offchain\")\n authProviderInstance = await getAuthProvider();\n\n // Update config with the wrapped provider\n await configInit({ ...newConfig, authProvider: authProviderInstance, isServer: true, skipBackendInit: true });\n}","import { getIdToken as getIdTokenCore } from '@pooflabs/core';\n\n// Wrapper for getIdToken - passes isServer=true for server-side usage\nexport async function getIdToken(): Promise<string | null> {\n return getIdTokenCore(true);\n}\n","import { Keypair } from '@solana/web3.js';\nimport { Transaction, VersionedTransaction, PublicKey } from '@solana/web3.js';\nimport bs58 from 'bs58';\nimport {\n getConfig,\n get as coreGet,\n getMany as coreGetMany,\n set as coreSet,\n setMany as coreSetMany,\n setFile as coreSetFile,\n getFiles as coreGetFiles,\n runQuery as coreRunQuery,\n runQueryMany as coreRunQueryMany,\n runExpression as coreRunExpression,\n runExpressionMany as coreRunExpressionMany,\n count as coreCount,\n aggregate as coreAggregate,\n ServerSessionManager,\n} from '@pooflabs/core';\nimport type {\n AuthProvider,\n SetOptions,\n GetOptions,\n GetManyResult,\n RunQueryOptions,\n RunExpressionOptions,\n RunExpressionResult,\n CountOptions,\n AggregateOptions,\n AggregateOperation,\n AggregateResult,\n RequestOverrides,\n} from '@pooflabs/core';\nimport { SolanaKeypairProvider } from './auth/providers/solana-keypair-provider';\nimport { OffchainAuthProvider } from './auth/providers/offchain-auth-provider';\n\n/* ------------------------------------------------------------------ */\n/* Keypair parsing */\n/* ------------------------------------------------------------------ */\nfunction parseKeypair(secret: string): Keypair {\n const trimmed = secret.trim();\n try {\n const secretKey = trimmed.startsWith('[')\n ? Uint8Array.from(JSON.parse(trimmed))\n : bs58.decode(trimmed);\n return Keypair.fromSecretKey(secretKey);\n } catch {\n throw new Error('Invalid keypair: must be base58 or JSON array.');\n }\n}\n\n/* ------------------------------------------------------------------ */\n/* WalletClient */\n/* ------------------------------------------------------------------ */\nexport class WalletClient {\n private readonly provider: AuthProvider;\n private readonly sessionManager: ServerSessionManager;\n public readonly address: string;\n\n constructor(\n provider: AuthProvider,\n sessionManager: ServerSessionManager,\n address: string,\n ) {\n this.provider = provider;\n this.sessionManager = sessionManager;\n this.address = address;\n }\n\n /* ---- Auth override helpers ---- */\n\n private buildOverrides(): Pick<RequestOverrides, 'authProvider' | '_getAuthHeaders' | '_clearAuth' | '_walletAddress'> {\n return {\n authProvider: this.provider,\n _getAuthHeaders: async () => {\n const s = await this.sessionManager.getSession();\n return { Authorization: `Bearer ${s.idToken}` };\n },\n _clearAuth: async () => {\n this.sessionManager.clearSession();\n },\n _walletAddress: this.address,\n };\n }\n\n /** Strip Authorization from caller headers to prevent overriding wallet token */\n private sanitizeHeaders(headers?: Record<string, string>): Record<string, string> | undefined {\n if (!headers) return undefined;\n const { Authorization, authorization, ...rest } = headers as Record<string, string>;\n return Object.keys(rest).length > 0 ? rest : undefined;\n }\n\n private mergeSetOverrides(opts?: SetOptions): SetOptions {\n const ovr = this.buildOverrides();\n return {\n ...opts,\n _overrides: {\n ...opts?._overrides,\n headers: this.sanitizeHeaders(opts?._overrides?.headers),\n authProvider: ovr.authProvider,\n _getAuthHeaders: ovr._getAuthHeaders,\n _clearAuth: ovr._clearAuth,\n },\n };\n }\n\n private mergeReadOverrides(existing?: RequestOverrides): RequestOverrides {\n const ovr = this.buildOverrides();\n return {\n ...existing,\n headers: this.sanitizeHeaders(existing?.headers),\n _getAuthHeaders: ovr._getAuthHeaders,\n _clearAuth: ovr._clearAuth,\n _walletAddress: ovr._walletAddress,\n };\n }\n\n /* ---- Data operations ---- */\n\n async set(path: string, document: any, options?: SetOptions): Promise<any> {\n return coreSet(path, document, this.mergeSetOverrides(options));\n }\n\n async setMany(many: { path: string; document: any }[], options?: SetOptions): Promise<any> {\n return coreSetMany(many, this.mergeSetOverrides(options));\n }\n\n async setFile(path: string, file: File | null, options?: { _overrides?: RequestOverrides }): Promise<any> {\n return coreSetFile(path, file, { _overrides: this.mergeReadOverrides(options?._overrides) });\n }\n\n async get(path: string, opts?: GetOptions): Promise<any> {\n return coreGet(path, { ...opts, _overrides: this.mergeReadOverrides(opts?._overrides) });\n }\n\n async getMany(paths: string[], opts?: { bypassCache?: boolean }): Promise<GetManyResult[]> {\n return coreGetMany(paths, { ...opts, _overrides: this.mergeReadOverrides() });\n }\n\n async getFiles(path: string, options?: { _overrides?: RequestOverrides }): Promise<any> {\n return coreGetFiles(path, { _overrides: this.mergeReadOverrides(options?._overrides) });\n }\n\n async runQuery(absolutePath: string, queryName: string, queryArgs: any, opts?: RunQueryOptions): Promise<any> {\n return coreRunQuery(absolutePath, queryName, queryArgs, { ...opts, _overrides: this.mergeReadOverrides(opts?._overrides) });\n }\n\n async runQueryMany(many: { absolutePath: string; queryName: string; queryArgs: any }[], opts?: RunQueryOptions): Promise<any> {\n return coreRunQueryMany(many, { ...opts, _overrides: this.mergeReadOverrides(opts?._overrides) });\n }\n\n async runExpression(expression: string, queryArgs: any, options?: RunExpressionOptions): Promise<RunExpressionResult> {\n return coreRunExpression(expression, queryArgs, { ...options, _overrides: this.mergeReadOverrides(options?._overrides) });\n }\n\n async runExpressionMany(many: { expression: string; queryArgs: any; returnType?: 'Bool' | 'String' | 'Int' | 'UInt'; _overrides?: RequestOverrides }[]): Promise<RunExpressionResult[]> {\n const ovr = this.mergeReadOverrides();\n return coreRunExpressionMany(many.map(m => ({ ...m, _overrides: ovr })));\n }\n\n async count(path: string, opts: CountOptions = {}): Promise<AggregateResult> {\n return coreCount(path, { ...opts, _overrides: this.mergeReadOverrides(opts?._overrides) });\n }\n\n async aggregate(path: string, operation: AggregateOperation, opts: AggregateOptions = {}): Promise<AggregateResult> {\n return coreAggregate(path, operation, { ...opts, _overrides: this.mergeReadOverrides(opts?._overrides) });\n }\n\n /* ---- Signing operations (use provider directly) ---- */\n\n async signMessage(message: string): Promise<string> {\n return this.provider.signMessage(message);\n }\n\n async signTransaction(transaction: Transaction | VersionedTransaction): Promise<Transaction | VersionedTransaction> {\n return this.provider.signTransaction(transaction);\n }\n\n async signAndSubmitTransaction(transaction: Transaction | VersionedTransaction, feePayer?: PublicKey): Promise<string> {\n return this.provider.signAndSubmitTransaction(transaction, feePayer);\n }\n}\n\n/* ------------------------------------------------------------------ */\n/* Factory */\n/* ------------------------------------------------------------------ */\nexport interface CreateWalletClientOptions {\n /** Base58 or JSON array secret key */\n keypair: string;\n}\n\n/**\n * Create a self-contained wallet client bound to a specific keypair.\n * Each client has its own auth session — no global state is mutated.\n *\n * @example\n * ```ts\n * const vault = await createWalletClient({ keypair: process.env.VAULT_KEY });\n * await vault.set('markets/123', data);\n * ```\n */\nexport async function createWalletClient(opts: CreateWalletClientOptions): Promise<WalletClient> {\n const kp = parseKeypair(opts.keypair);\n const config = await getConfig();\n\n let provider: AuthProvider = new SolanaKeypairProvider(config.rpcUrl ?? null, kp);\n if (config.chain === 'offchain') {\n provider = new OffchainAuthProvider(provider);\n }\n\n const sessionManager = ServerSessionManager.forKeypair(kp);\n // Eagerly authenticate so failures surface immediately\n await sessionManager.getSession();\n\n return new WalletClient(provider, sessionManager, kp.publicKey.toBase58());\n}\n"],"names":["Keypair","Buffer","Connection","convertRemainingAccounts","anchor","VersionedTransaction","buildSetDocumentsTransaction","ComputeBudgetProgram","crypto","getConfig","configInit","getIdTokenCore","coreSet","coreSetMany","coreSetFile","coreGet","coreGetMany","coreGetFiles","coreRunQuery","coreRunQueryMany","coreRunExpression","coreRunExpressionMany","coreCount","coreAggregate","ServerSessionManager"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../.rollup-tmp/auth/providers/solana-keypair-provider.js","../.rollup-tmp/auth/providers/offchain-auth-provider.js","../.rollup-tmp/auth/index.js","../.rollup-tmp/global.js","../.rollup-tmp/utils.js","../.rollup-tmp/wallet-client.js"],"sourcesContent":["import { Buffer } from 'buffer';\nimport { ComputeBudgetProgram, Connection, Keypair, VersionedTransaction } from '@solana/web3.js';\nimport * as anchor from '@coral-xyz/anchor';\nimport nacl from 'tweetnacl';\nimport bs58 from 'bs58';\nimport { convertRemainingAccounts, buildSetDocumentsTransaction, } from '@pooflabs/core';\nimport { SOLANA_DEVNET_RPC_URL, SOLANA_MAINNET_RPC_URL, SURFNET_RPC_URL } from '..';\n/* ------------------------------------------------------------- *\n * REQUIRED ENV-VAR\n * ------------------------------------------------------------- */\nconst ENV_VAR = 'TAROBASE_SOLANA_KEYPAIR'; // base-58 or JSON array\nfunction loadKeypairFromEnv() {\n var _a;\n const secret = (_a = process === null || process === void 0 ? void 0 : process.env) === null || _a === void 0 ? void 0 : _a[ENV_VAR];\n if (!secret) {\n throw new Error(`Missing ${ENV_VAR}. Set it to a base58 secret key or JSON array.`);\n }\n try {\n const secretKey = secret.trim().startsWith('[')\n ? Uint8Array.from(JSON.parse(secret))\n : bs58.decode(secret.trim());\n return Keypair.fromSecretKey(secretKey);\n }\n catch (err) {\n throw new Error(`Unable to parse ${ENV_VAR}. Ensure it is valid base58 or a JSON array.`);\n }\n}\n/* ──────────────────────────────────────────────────────────\n * Helper – fetch getPriorityFeeEstimate\n * ──────────────────────────────────────────────────────── */\nasync function fetchPriorityFee(rpcEndpoint, rawUnsignedTxBuffer) {\n var _a, _b;\n try {\n const res = await fetch(rpcEndpoint, {\n method: \"POST\",\n headers: { \"Content-Type\": \"application/json\" },\n body: JSON.stringify({\n jsonrpc: \"2.0\",\n id: \"1\",\n method: \"getPriorityFeeEstimate\",\n params: [{\n transaction: bs58.encode(rawUnsignedTxBuffer), options: {\n recommended: true\n }\n }]\n })\n });\n const data = await res.json();\n const fee = (_b = (_a = data === null || data === void 0 ? void 0 : data.result) === null || _a === void 0 ? void 0 : _a.priorityFeeEstimate) !== null && _b !== void 0 ? _b : null;\n console.log(\"Got fee from Helius\", fee);\n if (fee != null && fee > 0) {\n return Math.ceil(Number(fee) * 1.2);\n }\n else {\n console.log(\"No fee from Helius, using default 10000\");\n return Math.ceil(10000 * 1.2);\n }\n }\n catch (err) {\n console.warn(\"Priority‑fee estimate failed:\", err);\n return Math.ceil(10000 * 1.2);\n }\n}\nexport class SolanaKeypairProvider {\n constructor(networkUrl = null, keypair) {\n this.networkUrl = networkUrl;\n this.keypair = keypair !== null && keypair !== void 0 ? keypair : loadKeypairFromEnv();\n }\n /* ----------------------------------------------------------- *\n * (Auth stubs – fill in later if needed)\n * ----------------------------------------------------------- */\n async login() { throw new Error('Not implemented'); }\n async restoreSession() { throw new Error('Not implemented'); }\n async logout() { throw new Error('Not implemented'); }\n /* ----------------------------------------------------------- *\n * Sign arbitrary message\n * ----------------------------------------------------------- */\n async signMessage(message) {\n const sig = nacl.sign.detached(new TextEncoder().encode(message), this.keypair.secretKey);\n return Buffer.from(sig).toString('base64');\n }\n /* ----------------------------------------------------------- *\n * Sign transaction\n * ----------------------------------------------------------- */\n async signTransaction(transaction) {\n // Use duck typing instead of instanceof to handle multiple @solana/web3.js versions\n const isLegacyTransaction = 'recentBlockhash' in transaction && !('message' in transaction && 'staticAccountKeys' in transaction.message);\n if (isLegacyTransaction) {\n transaction.partialSign(this.keypair);\n }\n else {\n transaction.sign([this.keypair]);\n }\n return transaction;\n }\n /**\n * Signs and submits a Solana transaction to the network.\n *\n * This method handles blockhash and transaction confirmation automatically - you do NOT need to\n * set recentBlockhash or lastValidBlockHeight on the transaction before calling this method.\n * The network/RPC URL is derived from the provider's configuration (set during initialization).\n *\n * @param transaction - The transaction to sign and submit (Transaction or VersionedTransaction)\n * @param feePayer - Optional fee payer public key. If not provided and the transaction doesn't\n * already have a feePayer set, the keypair's public key will be used.\n * Useful for co-signing scenarios where a different account pays the fees.\n * @returns The transaction signature\n */\n async signAndSubmitTransaction(transaction, feePayer) {\n // 1. Get RPC URL and create connection\n const rpcUrl = this.getRpcUrl();\n const connection = new Connection(rpcUrl, 'confirmed');\n // 2. Get fresh blockhash and set it on the transaction before signing\n const { blockhash, lastValidBlockHeight } = await connection.getLatestBlockhash('confirmed');\n // Use duck typing instead of instanceof to handle multiple @solana/web3.js versions\n const isLegacyTransaction = 'recentBlockhash' in transaction && !('message' in transaction && 'staticAccountKeys' in transaction.message);\n if (isLegacyTransaction) {\n const legacyTx = transaction;\n legacyTx.recentBlockhash = blockhash;\n legacyTx.lastValidBlockHeight = lastValidBlockHeight;\n // Set feePayer if not already set\n if (!legacyTx.feePayer) {\n legacyTx.feePayer = feePayer !== null && feePayer !== void 0 ? feePayer : this.keypair.publicKey;\n }\n }\n else {\n // VersionedTransaction\n const versionedTx = transaction;\n versionedTx.message.recentBlockhash = blockhash;\n // Note: VersionedTransaction feePayer is set in the message at creation time\n // and cannot be modified after creation\n }\n // 3. Sign the transaction\n const signedTx = await this.signTransaction(transaction);\n // 4. Submit and confirm using shared helper\n const { signature } = await this.submitAndConfirmTransaction(signedTx, connection);\n return signature;\n }\n /* ----------------------------------------------------------- *\n * Private Helpers\n * ----------------------------------------------------------- */\n /**\n * Submits a signed transaction and waits for confirmation using polling.\n * Shared by both signAndSubmitTransaction and runTransactionInner.\n */\n async submitAndConfirmTransaction(signedTx, connection, options) {\n var _a, _b, _c, _d;\n const sig = await connection.sendRawTransaction(signedTx.serialize(), {\n preflightCommitment: 'confirmed'\n });\n // Wait for confirmation using polling\n const startTime = Date.now();\n const timeoutMs = 10 * 1000; // 10 seconds\n while (true) {\n const st = await connection.getSignatureStatus(sig);\n if ((_a = st === null || st === void 0 ? void 0 : st.value) === null || _a === void 0 ? void 0 : _a.err) {\n // Transaction confirmed but failed on-chain — fetch logs for a readable error\n const txInfo = await connection.getTransaction(sig, {\n maxSupportedTransactionVersion: 0,\n commitment: 'confirmed'\n });\n const logMessages = (_b = txInfo === null || txInfo === void 0 ? void 0 : txInfo.meta) === null || _b === void 0 ? void 0 : _b.logMessages;\n const errorMessage = logMessages ? JSON.stringify(logMessages) : JSON.stringify((_c = st === null || st === void 0 ? void 0 : st.value) === null || _c === void 0 ? void 0 : _c.err);\n throw new Error(`Transaction failed: ${errorMessage}`);\n }\n if (((_d = st === null || st === void 0 ? void 0 : st.value) === null || _d === void 0 ? void 0 : _d.confirmationStatus) === 'confirmed') {\n break;\n }\n // Check if we've exceeded the timeout\n if (Date.now() - startTime > timeoutMs) {\n throw new Error(`Transaction confirmation timeout after ${timeoutMs / 1000} seconds`);\n }\n await new Promise(resolve => setTimeout(resolve, 500));\n }\n // Optionally fetch transaction info\n let txInfo = null;\n if (options === null || options === void 0 ? void 0 : options.fetchTxInfo) {\n txInfo = await connection.getTransaction(sig, {\n maxSupportedTransactionVersion: 0,\n commitment: 'confirmed'\n });\n }\n return { signature: sig, txInfo };\n }\n getRpcUrl(network) {\n if (this.networkUrl) {\n return this.networkUrl;\n }\n if (network === 'solana_devnet') {\n return SOLANA_DEVNET_RPC_URL;\n }\n else if (network === 'solana_mainnet') {\n return SOLANA_MAINNET_RPC_URL;\n }\n else if (network === 'surfnet') {\n return SURFNET_RPC_URL;\n }\n return SOLANA_MAINNET_RPC_URL; // default to mainnet\n }\n /* ----------------------------------------------------------- *\n * Transaction runner\n * ----------------------------------------------------------- */\n async runTransaction(_evm, sol, opts) {\n if (!sol)\n throw new Error('Solana transaction data required');\n const kp = this.keypair;\n // Helper for duck typing - checks if transaction is legacy Transaction vs VersionedTransaction\n const isLegacyTx = (tx) => {\n return 'recentBlockhash' in tx && !('message' in tx && 'staticAccountKeys' in tx.message);\n };\n const wallet = {\n publicKey: kp.publicKey,\n signTransaction: async (tx) => {\n // Use duck typing instead of instanceof to handle multiple @solana/web3.js versions\n if (isLegacyTx(tx)) {\n tx.partialSign(kp);\n }\n else {\n tx.sign([kp]);\n }\n return tx;\n },\n signAllTransactions: async (txs) => txs.map((t) => {\n // Use duck typing instead of instanceof to handle multiple @solana/web3.js versions\n if (isLegacyTx(t)) {\n t.partialSign(kp);\n }\n else {\n t.sign([kp]);\n }\n return t;\n }),\n };\n /* de-dupe remaining accounts */\n const deduped = (() => {\n const fin = [];\n for (const acc of convertRemainingAccounts(sol.txArgs[0].remainingAccounts)) {\n const ex = fin.find((x) => x.pubkey.equals(acc.pubkey));\n if (ex) {\n ex.isSigner || (ex.isSigner = acc.isSigner);\n ex.isWritable || (ex.isWritable = acc.isWritable);\n }\n else\n fin.push(acc);\n }\n return fin;\n })();\n let retries = 0;\n let didPass = false;\n let delay = 1000;\n let toReturn = null;\n let errorMessage = \"\";\n while (retries < 5) {\n try {\n toReturn = await this.runTransactionInner(sol, opts, wallet, kp, deduped);\n didPass = true;\n break;\n }\n catch (error) {\n console.log(\"Error building and sending transaction on retry:\", retries, error);\n await new Promise(resolve => setTimeout(resolve, delay));\n // Exponential backoff\n delay *= 1.5;\n retries++;\n errorMessage = error.message || JSON.stringify(error, null, 2);\n }\n }\n if (!didPass) {\n throw new Error(`Failed to send transaction after 5 retries: ${errorMessage}`);\n }\n return toReturn;\n }\n async runTransactionInner(sol, opts, wallet, kp, deduped) {\n var _a, _b, _c;\n let rpcUrl = this.getRpcUrl(sol.network);\n const connection = new Connection(rpcUrl, 'confirmed');\n const anchorProvider = new anchor.AnchorProvider(connection, wallet, anchor.AnchorProvider.defaultOptions());\n const app_id = sol.appId;\n if (!app_id)\n throw new Error('app_id missing');\n // When the server has co-signed a transaction (CPI attestation),\n // deserialize it and just add the wallet signature instead of\n // building from components.\n let tx;\n let blockhash;\n let lastValidBlockHeight;\n if (sol.signedTransaction) {\n tx = VersionedTransaction.deserialize(Buffer.from(sol.signedTransaction, 'base64'));\n const latestBlockhash = await connection.getLatestBlockhash('confirmed');\n blockhash = latestBlockhash.blockhash;\n lastValidBlockHeight = latestBlockhash.lastValidBlockHeight;\n }\n else {\n const result = await buildSetDocumentsTransaction(connection, sol.txArgs[0].idl, anchorProvider, kp.publicKey, {\n app_id,\n documents: sol.txArgs[0].setDocumentData,\n delete_paths: sol.txArgs[0].deletePaths,\n txData: sol.txArgs[0].txData\n }, deduped, sol.lutKey, sol.preInstructions, false, sol.additionalLutAddresses);\n tx = result.tx;\n blockhash = result.blockhash;\n lastValidBlockHeight = result.lastValidBlockHeight;\n }\n // Helper for duck typing - checks if transaction is legacy Transaction vs VersionedTransaction\n const isLegacyTx = (t) => {\n return 'recentBlockhash' in t && !('message' in t && 'staticAccountKeys' in t.message);\n };\n // Refresh blockhash and lastValidBlockHeight\n // Use duck typing instead of instanceof to handle multiple @solana/web3.js versions\n if (isLegacyTx(tx)) {\n tx.partialSign(kp);\n tx.recentBlockhash = blockhash;\n tx.lastValidBlockHeight = lastValidBlockHeight;\n tx.feePayer = kp.publicKey;\n }\n else {\n tx.sign([kp]);\n tx.message.recentBlockhash = blockhash;\n }\n // 3️⃣ Optional priority‑fee instruction\n const rawUnsigned = tx.serialize({ requireAllSignatures: false });\n const microLamports = await fetchPriorityFee(connection.rpcEndpoint, rawUnsigned);\n if (microLamports != null) {\n // Use duck typing instead of instanceof to handle multiple @solana/web3.js versions\n if (isLegacyTx(tx)) {\n tx.instructions.unshift(ComputeBudgetProgram.setComputeUnitPrice({ microLamports }));\n tx.partialSign(kp);\n }\n else {\n // For pre-signed (attestation) transactions, we can't rebuild — skip priority fee\n if (!sol.signedTransaction) {\n // Rebuild the transaction with the new priority fee\n const roundTwo = await buildSetDocumentsTransaction(connection, sol.txArgs[0].idl, anchorProvider, kp.publicKey, {\n app_id,\n documents: sol.txArgs[0].setDocumentData,\n delete_paths: sol.txArgs[0].deletePaths,\n txData: sol.txArgs[0].txData\n }, deduped, sol.lutKey, [ComputeBudgetProgram.setComputeUnitPrice({ microLamports }), ...sol.preInstructions], false, sol.additionalLutAddresses);\n tx = roundTwo.tx;\n blockhash = roundTwo.blockhash;\n lastValidBlockHeight = roundTwo.lastValidBlockHeight;\n tx.sign([kp]);\n tx.message.recentBlockhash = blockhash;\n }\n }\n }\n if ((opts === null || opts === void 0 ? void 0 : opts.shouldSubmitTx) === false) {\n return { signedTransaction: tx, blockNumber: 0, gasUsed: '0', data: '' };\n }\n // Submit and confirm using shared helper\n const { signature, txInfo } = await this.submitAndConfirmTransaction(tx, connection, { fetchTxInfo: true });\n return {\n transactionSignature: signature,\n blockNumber: (_a = txInfo === null || txInfo === void 0 ? void 0 : txInfo.slot) !== null && _a !== void 0 ? _a : 0,\n gasUsed: (_c = (_b = txInfo === null || txInfo === void 0 ? void 0 : txInfo.meta) === null || _b === void 0 ? void 0 : _b.fee.toString()) !== null && _c !== void 0 ? _c : '0',\n data: txInfo === null || txInfo === void 0 ? void 0 : txInfo.meta,\n };\n }\n /* ----------------------------------------------------------- */\n async getNativeMethods() {\n return { keypair: this.keypair };\n }\n}\n//# sourceMappingURL=solana-keypair-provider.js.map","import * as crypto from 'crypto';\n/**\n * Server-side OffchainAuthProvider wrapper for the poofnet environment.\n *\n * For signMessage, this generates a mock signature using SHA-256 hashing.\n * This is used for offchain transaction signing.\n */\nexport class OffchainAuthProvider {\n constructor(wrappedProvider) {\n this.wrappedProvider = wrappedProvider;\n }\n async login() {\n return this.wrappedProvider.login();\n }\n async logout() {\n return this.wrappedProvider.logout();\n }\n async restoreSession() {\n return this.wrappedProvider.restoreSession();\n }\n async getNativeMethods() {\n return this.wrappedProvider.getNativeMethods();\n }\n async signMessage(message) {\n // Delegate to wrapped provider for real signing\n return this.wrappedProvider.signMessage(message);\n }\n async signMessageMock(message) {\n // Generate mock signature (SHA-256 hash of message, base64 encoded)\n // This is used for offchain transaction signing\n const hash = crypto.createHash('sha256').update(message).digest('base64');\n return hash;\n }\n async signTransaction(transaction) {\n throw new Error('Poofnet does not support real Solana transactions. Deploy your project to mainnet to use this feature.');\n }\n /**\n * Sign and submit transaction - not supported in poofnet environment.\n * See the real providers (PhantomWalletProvider, PrivyWalletProvider, SolanaKeypairProvider)\n * for the full implementation with blockhash handling and feePayer support.\n */\n async signAndSubmitTransaction(_transaction, _feePayer) {\n throw new Error('Poofnet does not support real Solana transactions. Deploy your project to mainnet to use this feature.');\n }\n async runTransaction(evmTransactionData, solTransactionData, options) {\n return this.wrappedProvider.runTransaction(evmTransactionData, solTransactionData, options);\n }\n}\n//# sourceMappingURL=offchain-auth-provider.js.map","import { getConfig } from '@pooflabs/core';\nimport { SolanaKeypairProvider } from './providers/solana-keypair-provider';\nimport { OffchainAuthProvider } from './providers/offchain-auth-provider';\nlet currentAuthProvider = null;\nexport const SOLANA_DEVNET_RPC_URL = \"https://idelle-8nxsep-fast-devnet.helius-rpc.com\";\nexport const SOLANA_MAINNET_RPC_URL = \"https://celestia-cegncv-fast-mainnet.helius-rpc.com\";\nexport const SURFNET_RPC_URL = \"https://surfpool.fly.dev\";\nexport async function getAuthProvider() {\n var _a;\n const config = await getConfig();\n if (currentAuthProvider) {\n // If provider exists but chain is \"offchain\" and it's not already wrapped, rewrap it\n if (config.chain === \"offchain\" && !(currentAuthProvider instanceof OffchainAuthProvider)) {\n currentAuthProvider = new OffchainAuthProvider(currentAuthProvider);\n }\n return currentAuthProvider;\n }\n currentAuthProvider = await matchAuthProvider((_a = config.rpcUrl) !== null && _a !== void 0 ? _a : null);\n // Wrap with OffchainAuthProvider for offchain chain\n if (config.chain === \"offchain\") {\n currentAuthProvider = new OffchainAuthProvider(currentAuthProvider);\n }\n return currentAuthProvider;\n}\nexport async function matchAuthProvider(rpcUrl) {\n return new SolanaKeypairProvider(rpcUrl);\n}\n//# sourceMappingURL=index.js.map","import { getAuthProvider } from './auth';\nimport { init as configInit } from '@pooflabs/core';\nlet authProviderInstance = null;\nconst SOLANA_DEVNET_RPC_URL = \"https://api.devnet.solana.com\";\nconst SOLANA_MAINNET_RPC_URL = \"https://celestia-cegncv-fast-mainnet.helius-rpc.com\";\nconst SURFNET_RPC_URL = \"https://surfpool.fly.dev\";\nexport async function init(newConfig) {\n // Initialize config first so getAuthProvider can access it\n // Server-side skips backend init since it already has all needed config\n await configInit(Object.assign(Object.assign({}, newConfig), { isServer: true, skipBackendInit: true }));\n // Get the auth provider (which will wrap it if chain is \"offchain\")\n authProviderInstance = await getAuthProvider();\n // Update config with the wrapped provider\n await configInit(Object.assign(Object.assign({}, newConfig), { authProvider: authProviderInstance, isServer: true, skipBackendInit: true }));\n}\n//# sourceMappingURL=global.js.map","import { getIdToken as getIdTokenCore } from '@pooflabs/core';\n// Wrapper for getIdToken - passes isServer=true for server-side usage\nexport async function getIdToken() {\n return getIdTokenCore(true);\n}\n//# sourceMappingURL=utils.js.map","var __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport { Keypair } from '@solana/web3.js';\nimport bs58 from 'bs58';\nimport { getConfig, get as coreGet, getMany as coreGetMany, set as coreSet, setMany as coreSetMany, setFile as coreSetFile, getFiles as coreGetFiles, runQuery as coreRunQuery, runQueryMany as coreRunQueryMany, runExpression as coreRunExpression, runExpressionMany as coreRunExpressionMany, count as coreCount, aggregate as coreAggregate, ServerSessionManager, } from '@pooflabs/core';\nimport { SolanaKeypairProvider } from './auth/providers/solana-keypair-provider';\nimport { OffchainAuthProvider } from './auth/providers/offchain-auth-provider';\n/* ------------------------------------------------------------------ */\n/* Keypair parsing */\n/* ------------------------------------------------------------------ */\nfunction parseKeypair(secret) {\n const trimmed = secret.trim();\n try {\n const secretKey = trimmed.startsWith('[')\n ? Uint8Array.from(JSON.parse(trimmed))\n : bs58.decode(trimmed);\n return Keypair.fromSecretKey(secretKey);\n }\n catch (_a) {\n throw new Error('Invalid keypair: must be base58 or JSON array.');\n }\n}\n/* ------------------------------------------------------------------ */\n/* WalletClient */\n/* ------------------------------------------------------------------ */\nexport class WalletClient {\n constructor(provider, sessionManager, address) {\n this.provider = provider;\n this.sessionManager = sessionManager;\n this.address = address;\n }\n /* ---- Auth override helpers ---- */\n buildOverrides() {\n return {\n authProvider: this.provider,\n _getAuthHeaders: async () => {\n const s = await this.sessionManager.getSession();\n return { Authorization: `Bearer ${s.idToken}` };\n },\n _clearAuth: async () => {\n this.sessionManager.clearSession();\n },\n _walletAddress: this.address,\n };\n }\n /** Strip Authorization from caller headers to prevent overriding wallet token */\n sanitizeHeaders(headers) {\n if (!headers)\n return undefined;\n const _a = headers, { Authorization, authorization } = _a, rest = __rest(_a, [\"Authorization\", \"authorization\"]);\n return Object.keys(rest).length > 0 ? rest : undefined;\n }\n mergeSetOverrides(opts) {\n var _a;\n const ovr = this.buildOverrides();\n return Object.assign(Object.assign({}, opts), { _overrides: Object.assign(Object.assign({}, opts === null || opts === void 0 ? void 0 : opts._overrides), { headers: this.sanitizeHeaders((_a = opts === null || opts === void 0 ? void 0 : opts._overrides) === null || _a === void 0 ? void 0 : _a.headers), authProvider: ovr.authProvider, _getAuthHeaders: ovr._getAuthHeaders, _clearAuth: ovr._clearAuth }) });\n }\n mergeReadOverrides(existing) {\n const ovr = this.buildOverrides();\n return Object.assign(Object.assign({}, existing), { headers: this.sanitizeHeaders(existing === null || existing === void 0 ? void 0 : existing.headers), _getAuthHeaders: ovr._getAuthHeaders, _clearAuth: ovr._clearAuth, _walletAddress: ovr._walletAddress });\n }\n /* ---- Data operations ---- */\n async set(path, document, options) {\n return coreSet(path, document, this.mergeSetOverrides(options));\n }\n async setMany(many, options) {\n return coreSetMany(many, this.mergeSetOverrides(options));\n }\n async setFile(path, file, options) {\n return coreSetFile(path, file, { _overrides: this.mergeReadOverrides(options === null || options === void 0 ? void 0 : options._overrides) });\n }\n async get(path, opts) {\n return coreGet(path, Object.assign(Object.assign({}, opts), { _overrides: this.mergeReadOverrides(opts === null || opts === void 0 ? void 0 : opts._overrides) }));\n }\n async getMany(paths, opts) {\n return coreGetMany(paths, Object.assign(Object.assign({}, opts), { _overrides: this.mergeReadOverrides() }));\n }\n async getFiles(path, options) {\n return coreGetFiles(path, { _overrides: this.mergeReadOverrides(options === null || options === void 0 ? void 0 : options._overrides) });\n }\n async runQuery(absolutePath, queryName, queryArgs, opts) {\n return coreRunQuery(absolutePath, queryName, queryArgs, Object.assign(Object.assign({}, opts), { _overrides: this.mergeReadOverrides(opts === null || opts === void 0 ? void 0 : opts._overrides) }));\n }\n async runQueryMany(many, opts) {\n return coreRunQueryMany(many, Object.assign(Object.assign({}, opts), { _overrides: this.mergeReadOverrides(opts === null || opts === void 0 ? void 0 : opts._overrides) }));\n }\n async runExpression(expression, queryArgs, options) {\n return coreRunExpression(expression, queryArgs, Object.assign(Object.assign({}, options), { _overrides: this.mergeReadOverrides(options === null || options === void 0 ? void 0 : options._overrides) }));\n }\n async runExpressionMany(many) {\n const ovr = this.mergeReadOverrides();\n return coreRunExpressionMany(many.map(m => (Object.assign(Object.assign({}, m), { _overrides: ovr }))));\n }\n async count(path, opts = {}) {\n return coreCount(path, Object.assign(Object.assign({}, opts), { _overrides: this.mergeReadOverrides(opts === null || opts === void 0 ? void 0 : opts._overrides) }));\n }\n async aggregate(path, operation, opts = {}) {\n return coreAggregate(path, operation, Object.assign(Object.assign({}, opts), { _overrides: this.mergeReadOverrides(opts === null || opts === void 0 ? void 0 : opts._overrides) }));\n }\n /* ---- Signing operations (use provider directly) ---- */\n async signMessage(message) {\n return this.provider.signMessage(message);\n }\n async signTransaction(transaction) {\n return this.provider.signTransaction(transaction);\n }\n async signAndSubmitTransaction(transaction, feePayer) {\n return this.provider.signAndSubmitTransaction(transaction, feePayer);\n }\n}\n/**\n * Create a self-contained wallet client bound to a specific keypair.\n * Each client has its own auth session — no global state is mutated.\n *\n * @example\n * ```ts\n * const vault = await createWalletClient({ keypair: process.env.VAULT_KEY });\n * await vault.set('markets/123', data);\n * ```\n */\nexport async function createWalletClient(opts) {\n var _a;\n const kp = parseKeypair(opts.keypair);\n const config = await getConfig();\n let provider = new SolanaKeypairProvider((_a = config.rpcUrl) !== null && _a !== void 0 ? _a : null, kp);\n if (config.chain === 'offchain') {\n provider = new OffchainAuthProvider(provider);\n }\n const sessionManager = ServerSessionManager.forKeypair(kp);\n // Eagerly authenticate so failures surface immediately\n await sessionManager.getSession();\n return new WalletClient(provider, sessionManager, kp.publicKey.toBase58());\n}\n//# sourceMappingURL=wallet-client.js.map"],"names":["Keypair","Buffer","Connection","convertRemainingAccounts","anchor","VersionedTransaction","buildSetDocumentsTransaction","ComputeBudgetProgram","crypto","getConfig","configInit","getIdTokenCore","this","coreSet","coreSetMany","coreSetFile","coreGet","coreGetMany","coreGetFiles","coreRunQuery","coreRunQueryMany","coreRunExpression","coreRunExpressionMany","coreCount","coreAggregate","ServerSessionManager"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAOA;AACA;AACA;AACA,MAAM,OAAO,GAAG,yBAAyB,CAAC;AAC1C,SAAS,kBAAkB,GAAG;AAC9B,IAAI,IAAI,EAAE;AACV,IAAI,MAAM,MAAM,GAAG,CAAC,EAAE,GAAG,OAAO,KAAK,IAAI,IAAI,OAAO,KAAK,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,GAAG,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,MAAM,GAAG,EAAE,CAAC,OAAO,CAAC;AACxI,IAAI,IAAI,CAAC,MAAM,EAAE;AACjB,QAAQ,MAAM,IAAI,KAAK,CAAC,CAAC,QAAQ,EAAE,OAAO,CAAC,8CAA8C,CAAC,CAAC;AAC3F,IAAI;AACJ,IAAI,IAAI;AACR,QAAQ,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG;AACtD,cAAc,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;AAChD,cAAc,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;AACxC,QAAQ,OAAOA,eAAO,CAAC,aAAa,CAAC,SAAS,CAAC;AAC/C,IAAI;AACJ,IAAI,OAAO,GAAG,EAAE;AAChB,QAAQ,MAAM,IAAI,KAAK,CAAC,CAAC,gBAAgB,EAAE,OAAO,CAAC,4CAA4C,CAAC,CAAC;AACjG,IAAI;AACJ;AACA;AACA;AACA;AACA,eAAe,gBAAgB,CAAC,WAAW,EAAE,mBAAmB,EAAE;AAClE,IAAI,IAAI,EAAE,EAAE,EAAE;AACd,IAAI,IAAI;AACR,QAAQ,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,WAAW,EAAE;AAC7C,YAAY,MAAM,EAAE,MAAM;AAC1B,YAAY,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;AAC3D,YAAY,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;AACjC,gBAAgB,OAAO,EAAE,KAAK;AAC9B,gBAAgB,EAAE,EAAE,GAAG;AACvB,gBAAgB,MAAM,EAAE,wBAAwB;AAChD,gBAAgB,MAAM,EAAE,CAAC;AACzB,wBAAwB,WAAW,EAAE,IAAI,CAAC,MAAM,CAAC,mBAAmB,CAAC,EAAE,OAAO,EAAE;AAChF,4BAA4B,WAAW,EAAE;AACzC;AACA,qBAAqB;AACrB,aAAa;AACb,SAAS,CAAC;AACV,QAAQ,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE;AACrC,QAAQ,MAAM,GAAG,GAAG,CAAC,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,IAAI,CAAC,MAAM,MAAM,IAAI,IAAI,EAAE,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,mBAAmB,MAAM,IAAI,IAAI,EAAE,KAAK,KAAK,CAAC,GAAG,EAAE,GAAG,IAAI;AAC3L,QAAQ,OAAO,CAAC,GAAG,CAAC,qBAAqB,EAAE,GAAG,CAAC;AAC/C,QAAQ,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,GAAG,CAAC,EAAE;AACpC,YAAY,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC;AAC/C,QAAQ;AACR,aAAa;AACb,YAAY,OAAO,CAAC,GAAG,CAAC,yCAAyC,CAAC;AAClE,YAAY,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,GAAG,CAAC;AACzC,QAAQ;AACR,IAAI;AACJ,IAAI,OAAO,GAAG,EAAE;AAChB,QAAQ,OAAO,CAAC,IAAI,CAAC,+BAA+B,EAAE,GAAG,CAAC;AAC1D,QAAQ,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,GAAG,CAAC;AACrC,IAAI;AACJ;AACO,MAAM,qBAAqB,CAAC;AACnC,IAAI,WAAW,CAAC,UAAU,GAAG,IAAI,EAAE,OAAO,EAAE;AAC5C,QAAQ,IAAI,CAAC,UAAU,GAAG,UAAU;AACpC,QAAQ,IAAI,CAAC,OAAO,GAAG,OAAO,KAAK,IAAI,IAAI,OAAO,KAAK,MAAM,GAAG,OAAO,GAAG,kBAAkB,EAAE;AAC9F,IAAI;AACJ;AACA;AACA;AACA,IAAI,MAAM,KAAK,GAAG,EAAE,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC,CAAC;AACxD,IAAI,MAAM,cAAc,GAAG,EAAE,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC,CAAC;AACjE,IAAI,MAAM,MAAM,GAAG,EAAE,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC,CAAC;AACzD;AACA;AACA;AACA,IAAI,MAAM,WAAW,CAAC,OAAO,EAAE;AAC/B,QAAQ,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;AACjG,QAAQ,OAAOC,aAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC;AAClD,IAAI;AACJ;AACA;AACA;AACA,IAAI,MAAM,eAAe,CAAC,WAAW,EAAE;AACvC;AACA,QAAQ,MAAM,mBAAmB,GAAG,iBAAiB,IAAI,WAAW,IAAI,EAAE,SAAS,IAAI,WAAW,IAAI,mBAAmB,IAAI,WAAW,CAAC,OAAO,CAAC;AACjJ,QAAQ,IAAI,mBAAmB,EAAE;AACjC,YAAY,WAAW,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC;AACjD,QAAQ;AACR,aAAa;AACb,YAAY,WAAW,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AAC5C,QAAQ;AACR,QAAQ,OAAO,WAAW;AAC1B,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,MAAM,wBAAwB,CAAC,WAAW,EAAE,QAAQ,EAAE;AAC1D;AACA,QAAQ,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,EAAE;AACvC,QAAQ,MAAM,UAAU,GAAG,IAAIC,kBAAU,CAAC,MAAM,EAAE,WAAW,CAAC;AAC9D;AACA,QAAQ,MAAM,EAAE,SAAS,EAAE,oBAAoB,EAAE,GAAG,MAAM,UAAU,CAAC,kBAAkB,CAAC,WAAW,CAAC;AACpG;AACA,QAAQ,MAAM,mBAAmB,GAAG,iBAAiB,IAAI,WAAW,IAAI,EAAE,SAAS,IAAI,WAAW,IAAI,mBAAmB,IAAI,WAAW,CAAC,OAAO,CAAC;AACjJ,QAAQ,IAAI,mBAAmB,EAAE;AACjC,YAAY,MAAM,QAAQ,GAAG,WAAW;AACxC,YAAY,QAAQ,CAAC,eAAe,GAAG,SAAS;AAChD,YAAY,QAAQ,CAAC,oBAAoB,GAAG,oBAAoB;AAChE;AACA,YAAY,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE;AACpC,gBAAgB,QAAQ,CAAC,QAAQ,GAAG,QAAQ,KAAK,IAAI,IAAI,QAAQ,KAAK,MAAM,GAAG,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS;AAChH,YAAY;AACZ,QAAQ;AACR,aAAa;AACb;AACA,YAAY,MAAM,WAAW,GAAG,WAAW;AAC3C,YAAY,WAAW,CAAC,OAAO,CAAC,eAAe,GAAG,SAAS;AAC3D;AACA;AACA,QAAQ;AACR;AACA,QAAQ,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC;AAChE;AACA,QAAQ,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,IAAI,CAAC,2BAA2B,CAAC,QAAQ,EAAE,UAAU,CAAC;AAC1F,QAAQ,OAAO,SAAS;AACxB,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,MAAM,2BAA2B,CAAC,QAAQ,EAAE,UAAU,EAAE,OAAO,EAAE;AACrE,QAAQ,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;AAC1B,QAAQ,MAAM,GAAG,GAAG,MAAM,UAAU,CAAC,kBAAkB,CAAC,QAAQ,CAAC,SAAS,EAAE,EAAE;AAC9E,YAAY,mBAAmB,EAAE;AACjC,SAAS,CAAC;AACV;AACA,QAAQ,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE;AACpC,QAAQ,MAAM,SAAS,GAAG,EAAE,GAAG,IAAI,CAAC;AACpC,QAAQ,OAAO,IAAI,EAAE;AACrB,YAAY,MAAM,EAAE,GAAG,MAAM,UAAU,CAAC,kBAAkB,CAAC,GAAG,CAAC;AAC/D,YAAY,IAAI,CAAC,EAAE,GAAG,EAAE,KAAK,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,MAAM,GAAG,EAAE,CAAC,KAAK,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,MAAM,GAAG,EAAE,CAAC,GAAG,EAAE;AACrH;AACA,gBAAgB,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,cAAc,CAAC,GAAG,EAAE;AACpE,oBAAoB,8BAA8B,EAAE,CAAC;AACrD,oBAAoB,UAAU,EAAE;AAChC,iBAAiB,CAAC;AAClB,gBAAgB,MAAM,WAAW,GAAG,CAAC,EAAE,GAAG,MAAM,KAAK,IAAI,IAAI,MAAM,KAAK,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC,IAAI,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,MAAM,GAAG,EAAE,CAAC,WAAW;AAC1J,gBAAgB,MAAM,YAAY,GAAG,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,EAAE,KAAK,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,MAAM,GAAG,EAAE,CAAC,KAAK,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,MAAM,GAAG,EAAE,CAAC,GAAG,CAAC;AACpM,gBAAgB,MAAM,IAAI,KAAK,CAAC,CAAC,oBAAoB,EAAE,YAAY,CAAC,CAAC,CAAC;AACtE,YAAY;AACZ,YAAY,IAAI,CAAC,CAAC,EAAE,GAAG,EAAE,KAAK,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,MAAM,GAAG,EAAE,CAAC,KAAK,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,MAAM,GAAG,EAAE,CAAC,kBAAkB,MAAM,WAAW,EAAE;AACtJ,gBAAgB;AAChB,YAAY;AACZ;AACA,YAAY,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,GAAG,SAAS,EAAE;AACpD,gBAAgB,MAAM,IAAI,KAAK,CAAC,CAAC,uCAAuC,EAAE,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC;AACrG,YAAY;AACZ,YAAY,MAAM,IAAI,OAAO,CAAC,OAAO,IAAI,UAAU,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;AAClE,QAAQ;AACR;AACA,QAAQ,IAAI,MAAM,GAAG,IAAI;AACzB,QAAQ,IAAI,OAAO,KAAK,IAAI,IAAI,OAAO,KAAK,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,WAAW,EAAE;AACnF,YAAY,MAAM,GAAG,MAAM,UAAU,CAAC,cAAc,CAAC,GAAG,EAAE;AAC1D,gBAAgB,8BAA8B,EAAE,CAAC;AACjD,gBAAgB,UAAU,EAAE;AAC5B,aAAa,CAAC;AACd,QAAQ;AACR,QAAQ,OAAO,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,EAAE;AACzC,IAAI;AACJ,IAAI,SAAS,CAAC,OAAO,EAAE;AACvB,QAAQ,IAAI,IAAI,CAAC,UAAU,EAAE;AAC7B,YAAY,OAAO,IAAI,CAAC,UAAU;AAClC,QAAQ;AACR,QAAQ,IAAI,OAAO,KAAK,eAAe,EAAE;AACzC,YAAY,OAAO,qBAAqB;AACxC,QAAQ;AACR,aAAa,IAAI,OAAO,KAAK,gBAAgB,EAAE;AAC/C,YAAY,OAAO,sBAAsB;AACzC,QAAQ;AACR,aAAa,IAAI,OAAO,KAAK,SAAS,EAAE;AACxC,YAAY,OAAO,eAAe;AAClC,QAAQ;AACR,QAAQ,OAAO,sBAAsB,CAAC;AACtC,IAAI;AACJ;AACA;AACA;AACA,IAAI,MAAM,cAAc,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE;AAC1C,QAAQ,IAAI,CAAC,GAAG;AAChB,YAAY,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC;AAC/D,QAAQ,MAAM,EAAE,GAAG,IAAI,CAAC,OAAO;AAC/B;AACA,QAAQ,MAAM,UAAU,GAAG,CAAC,EAAE,KAAK;AACnC,YAAY,OAAO,iBAAiB,IAAI,EAAE,IAAI,EAAE,SAAS,IAAI,EAAE,IAAI,mBAAmB,IAAI,EAAE,CAAC,OAAO,CAAC;AACrG,QAAQ,CAAC;AACT,QAAQ,MAAM,MAAM,GAAG;AACvB,YAAY,SAAS,EAAE,EAAE,CAAC,SAAS;AACnC,YAAY,eAAe,EAAE,OAAO,EAAE,KAAK;AAC3C;AACA,gBAAgB,IAAI,UAAU,CAAC,EAAE,CAAC,EAAE;AACpC,oBAAoB,EAAE,CAAC,WAAW,CAAC,EAAE,CAAC;AACtC,gBAAgB;AAChB,qBAAqB;AACrB,oBAAoB,EAAE,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC;AACjC,gBAAgB;AAChB,gBAAgB,OAAO,EAAE;AACzB,YAAY,CAAC;AACb,YAAY,mBAAmB,EAAE,OAAO,GAAG,KAAK,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK;AAC/D;AACA,gBAAgB,IAAI,UAAU,CAAC,CAAC,CAAC,EAAE;AACnC,oBAAoB,CAAC,CAAC,WAAW,CAAC,EAAE,CAAC;AACrC,gBAAgB;AAChB,qBAAqB;AACrB,oBAAoB,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC;AAChC,gBAAgB;AAChB,gBAAgB,OAAO,CAAC;AACxB,YAAY,CAAC,CAAC;AACd,SAAS;AACT;AACA,QAAQ,MAAM,OAAO,GAAG,CAAC,MAAM;AAC/B,YAAY,MAAM,GAAG,GAAG,EAAE;AAC1B,YAAY,KAAK,MAAM,GAAG,IAAIC,6BAAwB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC,EAAE;AACzF,gBAAgB,MAAM,EAAE,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;AACvE,gBAAgB,IAAI,EAAE,EAAE;AACxB,oBAAoB,EAAE,CAAC,QAAQ,KAAK,EAAE,CAAC,QAAQ,GAAG,GAAG,CAAC,QAAQ,CAAC;AAC/D,oBAAoB,EAAE,CAAC,UAAU,KAAK,EAAE,CAAC,UAAU,GAAG,GAAG,CAAC,UAAU,CAAC;AACrE,gBAAgB;AAChB;AACA,oBAAoB,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC;AACjC,YAAY;AACZ,YAAY,OAAO,GAAG;AACtB,QAAQ,CAAC,GAAG;AACZ,QAAQ,IAAI,OAAO,GAAG,CAAC;AACvB,QAAQ,IAAI,OAAO,GAAG,KAAK;AAC3B,QAAQ,IAAI,KAAK,GAAG,IAAI;AACxB,QAAQ,IAAI,QAAQ,GAAG,IAAI;AAC3B,QAAQ,IAAI,YAAY,GAAG,EAAE;AAC7B,QAAQ,OAAO,OAAO,GAAG,CAAC,EAAE;AAC5B,YAAY,IAAI;AAChB,gBAAgB,QAAQ,GAAG,MAAM,IAAI,CAAC,mBAAmB,CAAC,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,OAAO,CAAC;AACzF,gBAAgB,OAAO,GAAG,IAAI;AAC9B,gBAAgB;AAChB,YAAY;AACZ,YAAY,OAAO,KAAK,EAAE;AAC1B,gBAAgB,OAAO,CAAC,GAAG,CAAC,kDAAkD,EAAE,OAAO,EAAE,KAAK,CAAC;AAC/F,gBAAgB,MAAM,IAAI,OAAO,CAAC,OAAO,IAAI,UAAU,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;AACxE;AACA,gBAAgB,KAAK,IAAI,GAAG;AAC5B,gBAAgB,OAAO,EAAE;AACzB,gBAAgB,YAAY,GAAG,KAAK,CAAC,OAAO,IAAI,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;AAC9E,YAAY;AACZ,QAAQ;AACR,QAAQ,IAAI,CAAC,OAAO,EAAE;AACtB,YAAY,MAAM,IAAI,KAAK,CAAC,CAAC,4CAA4C,EAAE,YAAY,CAAC,CAAC,CAAC;AAC1F,QAAQ;AACR,QAAQ,OAAO,QAAQ;AACvB,IAAI;AACJ,IAAI,MAAM,mBAAmB,CAAC,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,OAAO,EAAE;AAC9D,QAAQ,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE;AACtB,QAAQ,IAAI,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC;AAChD,QAAQ,MAAM,UAAU,GAAG,IAAID,kBAAU,CAAC,MAAM,EAAE,WAAW,CAAC;AAC9D,QAAQ,MAAM,cAAc,GAAG,IAAIE,iBAAM,CAAC,cAAc,CAAC,UAAU,EAAE,MAAM,EAAEA,iBAAM,CAAC,cAAc,CAAC,cAAc,EAAE,CAAC;AACpH,QAAQ,MAAM,MAAM,GAAG,GAAG,CAAC,KAAK;AAChC,QAAQ,IAAI,CAAC,MAAM;AACnB,YAAY,MAAM,IAAI,KAAK,CAAC,gBAAgB,CAAC;AAC7C;AACA;AACA;AACA,QAAQ,IAAI,EAAE;AACd,QAAQ,IAAI,SAAS;AACrB,QAAQ,IAAI,oBAAoB;AAChC,QAAQ,IAAI,GAAG,CAAC,iBAAiB,EAAE;AACnC,YAAY,EAAE,GAAGC,4BAAoB,CAAC,WAAW,CAACJ,aAAM,CAAC,IAAI,CAAC,GAAG,CAAC,iBAAiB,EAAE,QAAQ,CAAC,CAAC;AAC/F,YAAY,MAAM,eAAe,GAAG,MAAM,UAAU,CAAC,kBAAkB,CAAC,WAAW,CAAC;AACpF,YAAY,SAAS,GAAG,eAAe,CAAC,SAAS;AACjD,YAAY,oBAAoB,GAAG,eAAe,CAAC,oBAAoB;AACvE,QAAQ;AACR,aAAa;AACb,YAAY,MAAM,MAAM,GAAG,MAAMK,iCAA4B,CAAC,UAAU,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,cAAc,EAAE,EAAE,CAAC,SAAS,EAAE;AAC3H,gBAAgB,MAAM;AACtB,gBAAgB,SAAS,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,eAAe;AACxD,gBAAgB,YAAY,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW;AACvD,gBAAgB,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AACtC,aAAa,EAAE,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,eAAe,EAAE,KAAK,EAAE,GAAG,CAAC,sBAAsB,CAAC;AAC3F,YAAY,EAAE,GAAG,MAAM,CAAC,EAAE;AAC1B,YAAY,SAAS,GAAG,MAAM,CAAC,SAAS;AACxC,YAAY,oBAAoB,GAAG,MAAM,CAAC,oBAAoB;AAC9D,QAAQ;AACR;AACA,QAAQ,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK;AAClC,YAAY,OAAO,iBAAiB,IAAI,CAAC,IAAI,EAAE,SAAS,IAAI,CAAC,IAAI,mBAAmB,IAAI,CAAC,CAAC,OAAO,CAAC;AAClG,QAAQ,CAAC;AACT;AACA;AACA,QAAQ,IAAI,UAAU,CAAC,EAAE,CAAC,EAAE;AAC5B,YAAY,EAAE,CAAC,WAAW,CAAC,EAAE,CAAC;AAC9B,YAAY,EAAE,CAAC,eAAe,GAAG,SAAS;AAC1C,YAAY,EAAE,CAAC,oBAAoB,GAAG,oBAAoB;AAC1D,YAAY,EAAE,CAAC,QAAQ,GAAG,EAAE,CAAC,SAAS;AACtC,QAAQ;AACR,aAAa;AACb,YAAY,EAAE,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC;AACzB,YAAY,EAAE,CAAC,OAAO,CAAC,eAAe,GAAG,SAAS;AAClD,QAAQ;AACR;AACA,QAAQ,MAAM,WAAW,GAAG,EAAE,CAAC,SAAS,CAAC,EAAE,oBAAoB,EAAE,KAAK,EAAE,CAAC;AACzE,QAAQ,MAAM,aAAa,GAAG,MAAM,gBAAgB,CAAC,UAAU,CAAC,WAAW,EAAE,WAAW,CAAC;AACzF,QAAQ,IAAI,aAAa,IAAI,IAAI,EAAE;AACnC;AACA,YAAY,IAAI,UAAU,CAAC,EAAE,CAAC,EAAE;AAChC,gBAAgB,EAAE,CAAC,YAAY,CAAC,OAAO,CAACC,4BAAoB,CAAC,mBAAmB,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC;AACpG,gBAAgB,EAAE,CAAC,WAAW,CAAC,EAAE,CAAC;AAClC,YAAY;AACZ,iBAAiB;AACjB;AACA,gBAAgB,IAAI,CAAC,GAAG,CAAC,iBAAiB,EAAE;AAC5C;AACA,oBAAoB,MAAM,QAAQ,GAAG,MAAMD,iCAA4B,CAAC,UAAU,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,cAAc,EAAE,EAAE,CAAC,SAAS,EAAE;AACrI,wBAAwB,MAAM;AAC9B,wBAAwB,SAAS,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,eAAe;AAChE,wBAAwB,YAAY,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW;AAC/D,wBAAwB,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AAC9C,qBAAqB,EAAE,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,CAACC,4BAAoB,CAAC,mBAAmB,CAAC,EAAE,aAAa,EAAE,CAAC,EAAE,GAAG,GAAG,CAAC,eAAe,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC,sBAAsB,CAAC;AACrK,oBAAoB,EAAE,GAAG,QAAQ,CAAC,EAAE;AACpC,oBAAoB,SAAS,GAAG,QAAQ,CAAC,SAAS;AAClD,oBAAoB,oBAAoB,GAAG,QAAQ,CAAC,oBAAoB;AACxE,oBAAoB,EAAE,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC;AACjC,oBAAoB,EAAE,CAAC,OAAO,CAAC,eAAe,GAAG,SAAS;AAC1D,gBAAgB;AAChB,YAAY;AACZ,QAAQ;AACR,QAAQ,IAAI,CAAC,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC,cAAc,MAAM,KAAK,EAAE;AACzF,YAAY,OAAO,EAAE,iBAAiB,EAAE,EAAE,EAAE,WAAW,EAAE,CAAC,EAAE,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE;AACpF,QAAQ;AACR;AACA,QAAQ,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,2BAA2B,CAAC,EAAE,EAAE,UAAU,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;AACnH,QAAQ,OAAO;AACf,YAAY,oBAAoB,EAAE,SAAS;AAC3C,YAAY,WAAW,EAAE,CAAC,EAAE,GAAG,MAAM,KAAK,IAAI,IAAI,MAAM,KAAK,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC,IAAI,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,EAAE,GAAG,CAAC;AAC9H,YAAY,OAAO,EAAE,CAAC,EAAE,GAAG,CAAC,EAAE,GAAG,MAAM,KAAK,IAAI,IAAI,MAAM,KAAK,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC,IAAI,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,MAAM,GAAG,EAAE,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,EAAE,GAAG,GAAG;AAC1L,YAAY,IAAI,EAAE,MAAM,KAAK,IAAI,IAAI,MAAM,KAAK,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC,IAAI;AAC7E,SAAS;AACT,IAAI;AACJ;AACA,IAAI,MAAM,gBAAgB,GAAG;AAC7B,QAAQ,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE;AACxC,IAAI;AACJ;;ACzWA;AACA;AACA;AACA;AACA;AACA;AACO,MAAM,oBAAoB,CAAC;AAClC,IAAI,WAAW,CAAC,eAAe,EAAE;AACjC,QAAQ,IAAI,CAAC,eAAe,GAAG,eAAe;AAC9C,IAAI;AACJ,IAAI,MAAM,KAAK,GAAG;AAClB,QAAQ,OAAO,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE;AAC3C,IAAI;AACJ,IAAI,MAAM,MAAM,GAAG;AACnB,QAAQ,OAAO,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE;AAC5C,IAAI;AACJ,IAAI,MAAM,cAAc,GAAG;AAC3B,QAAQ,OAAO,IAAI,CAAC,eAAe,CAAC,cAAc,EAAE;AACpD,IAAI;AACJ,IAAI,MAAM,gBAAgB,GAAG;AAC7B,QAAQ,OAAO,IAAI,CAAC,eAAe,CAAC,gBAAgB,EAAE;AACtD,IAAI;AACJ,IAAI,MAAM,WAAW,CAAC,OAAO,EAAE;AAC/B;AACA,QAAQ,OAAO,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,OAAO,CAAC;AACxD,IAAI;AACJ,IAAI,MAAM,eAAe,CAAC,OAAO,EAAE;AACnC;AACA;AACA,QAAQ,MAAM,IAAI,GAAGC,iBAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC;AACjF,QAAQ,OAAO,IAAI;AACnB,IAAI;AACJ,IAAI,MAAM,eAAe,CAAC,WAAW,EAAE;AACvC,QAAQ,MAAM,IAAI,KAAK,CAAC,wGAAwG,CAAC;AACjI,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA,IAAI,MAAM,wBAAwB,CAAC,YAAY,EAAE,SAAS,EAAE;AAC5D,QAAQ,MAAM,IAAI,KAAK,CAAC,wGAAwG,CAAC;AACjI,IAAI;AACJ,IAAI,MAAM,cAAc,CAAC,kBAAkB,EAAE,kBAAkB,EAAE,OAAO,EAAE;AAC1E,QAAQ,OAAO,IAAI,CAAC,eAAe,CAAC,cAAc,CAAC,kBAAkB,EAAE,kBAAkB,EAAE,OAAO,CAAC;AACnG,IAAI;AACJ;;AC5CA,IAAI,mBAAmB,GAAG,IAAI;AACvB,MAAM,qBAAqB,GAAG,kDAAkD;AAChF,MAAM,sBAAsB,GAAG,qDAAqD;AACpF,MAAM,eAAe,GAAG,0BAA0B;AAClD,eAAe,eAAe,GAAG;AACxC,IAAI,IAAI,EAAE;AACV,IAAI,MAAM,MAAM,GAAG,MAAMC,cAAS,EAAE;AACpC,IAAI,IAAI,mBAAmB,EAAE;AAC7B;AACA,QAAQ,IAAI,MAAM,CAAC,KAAK,KAAK,UAAU,IAAI,EAAE,mBAAmB,YAAY,oBAAoB,CAAC,EAAE;AACnG,YAAY,mBAAmB,GAAG,IAAI,oBAAoB,CAAC,mBAAmB,CAAC;AAC/E,QAAQ;AACR,QAAQ,OAAO,mBAAmB;AAClC,IAAI;AACJ,IAAI,mBAAmB,GAAG,MAAM,iBAAiB,CAAC,CAAC,EAAE,GAAG,MAAM,CAAC,MAAM,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,EAAE,GAAG,IAAI,CAAC;AAC7G;AACA,IAAI,IAAI,MAAM,CAAC,KAAK,KAAK,UAAU,EAAE;AACrC,QAAQ,mBAAmB,GAAG,IAAI,oBAAoB,CAAC,mBAAmB,CAAC;AAC3E,IAAI;AACJ,IAAI,OAAO,mBAAmB;AAC9B;AACO,eAAe,iBAAiB,CAAC,MAAM,EAAE;AAChD,IAAI,OAAO,IAAI,qBAAqB,CAAC,MAAM,CAAC;AAC5C;;ACxBA,IAAI,oBAAoB,GAAG,IAAI;AAIxB,eAAe,IAAI,CAAC,SAAS,EAAE;AACtC;AACA;AACA,IAAI,MAAMC,SAAU,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,SAAS,CAAC,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,CAAC,CAAC;AAC5G;AACA,IAAI,oBAAoB,GAAG,MAAM,eAAe,EAAE;AAClD;AACA,IAAI,MAAMA,SAAU,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,SAAS,CAAC,EAAE,EAAE,YAAY,EAAE,oBAAoB,EAAE,QAAQ,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,CAAC,CAAC;AAChJ;;ACbA;AACO,eAAe,UAAU,GAAG;AACnC,IAAI,OAAOC,eAAc,CAAC,IAAI,CAAC;AAC/B;;ACJA,IAAI,MAAM,GAAG,CAACC,SAAI,IAAIA,SAAI,CAAC,MAAM,KAAK,UAAU,CAAC,EAAE,CAAC,EAAE;AACtD,IAAI,IAAI,CAAC,GAAG,EAAE;AACd,IAAI,KAAK,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC;AACvF,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACnB,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,OAAO,MAAM,CAAC,qBAAqB,KAAK,UAAU;AACvE,QAAQ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,qBAAqB,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAChF,YAAY,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,MAAM,CAAC,SAAS,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;AAC1F,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACjC,QAAQ;AACR,IAAI,OAAO,CAAC;AACZ,CAAC;AAMD;AACA;AACA;AACA,SAAS,YAAY,CAAC,MAAM,EAAE;AAC9B,IAAI,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,EAAE;AACjC,IAAI,IAAI;AACR,QAAQ,MAAM,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC,GAAG;AAChD,cAAc,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC;AACjD,cAAc,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;AAClC,QAAQ,OAAOZ,eAAO,CAAC,aAAa,CAAC,SAAS,CAAC;AAC/C,IAAI;AACJ,IAAI,OAAO,EAAE,EAAE;AACf,QAAQ,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC;AACzE,IAAI;AACJ;AACA;AACA;AACA;AACO,MAAM,YAAY,CAAC;AAC1B,IAAI,WAAW,CAAC,QAAQ,EAAE,cAAc,EAAE,OAAO,EAAE;AACnD,QAAQ,IAAI,CAAC,QAAQ,GAAG,QAAQ;AAChC,QAAQ,IAAI,CAAC,cAAc,GAAG,cAAc;AAC5C,QAAQ,IAAI,CAAC,OAAO,GAAG,OAAO;AAC9B,IAAI;AACJ;AACA,IAAI,cAAc,GAAG;AACrB,QAAQ,OAAO;AACf,YAAY,YAAY,EAAE,IAAI,CAAC,QAAQ;AACvC,YAAY,eAAe,EAAE,YAAY;AACzC,gBAAgB,MAAM,CAAC,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,UAAU,EAAE;AAChE,gBAAgB,OAAO,EAAE,aAAa,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE;AAC/D,YAAY,CAAC;AACb,YAAY,UAAU,EAAE,YAAY;AACpC,gBAAgB,IAAI,CAAC,cAAc,CAAC,YAAY,EAAE;AAClD,YAAY,CAAC;AACb,YAAY,cAAc,EAAE,IAAI,CAAC,OAAO;AACxC,SAAS;AACT,IAAI;AACJ;AACA,IAAI,eAAe,CAAC,OAAO,EAAE;AAC7B,QAAQ,IAAI,CAAC,OAAO;AACpB,YAAY,OAAO,SAAS;AAC5B,QAAQ,MAAM,EAAE,GAAG,OAAO,EAAE,EAAE,aAAa,EAAE,aAAa,EAAE,GAAG,EAAE,EAAE,IAAI,GAAG,MAAM,CAAC,EAAE,EAAE,CAAC,eAAe,EAAE,eAAe,CAAC,CAAC;AACxH,QAAQ,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,GAAG,IAAI,GAAG,SAAS;AAC9D,IAAI;AACJ,IAAI,iBAAiB,CAAC,IAAI,EAAE;AAC5B,QAAQ,IAAI,EAAE;AACd,QAAQ,MAAM,GAAG,GAAG,IAAI,CAAC,cAAc,EAAE;AACzC,QAAQ,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,UAAU,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC,EAAE,GAAG,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC,UAAU,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,MAAM,GAAG,EAAE,CAAC,OAAO,CAAC,EAAE,YAAY,EAAE,GAAG,CAAC,YAAY,EAAE,eAAe,EAAE,GAAG,CAAC,eAAe,EAAE,UAAU,EAAE,GAAG,CAAC,UAAU,EAAE,CAAC,EAAE,CAAC;AAC7Z,IAAI;AACJ,IAAI,kBAAkB,CAAC,QAAQ,EAAE;AACjC,QAAQ,MAAM,GAAG,GAAG,IAAI,CAAC,cAAc,EAAE;AACzC,QAAQ,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,QAAQ,CAAC,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,eAAe,CAAC,QAAQ,KAAK,IAAI,IAAI,QAAQ,KAAK,MAAM,GAAG,MAAM,GAAG,QAAQ,CAAC,OAAO,CAAC,EAAE,eAAe,EAAE,GAAG,CAAC,eAAe,EAAE,UAAU,EAAE,GAAG,CAAC,UAAU,EAAE,cAAc,EAAE,GAAG,CAAC,cAAc,EAAE,CAAC;AACxQ,IAAI;AACJ;AACA,IAAI,MAAM,GAAG,CAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE;AACvC,QAAQ,OAAOa,QAAO,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;AACvE,IAAI;AACJ,IAAI,MAAM,OAAO,CAAC,IAAI,EAAE,OAAO,EAAE;AACjC,QAAQ,OAAOC,YAAW,CAAC,IAAI,EAAE,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;AACjE,IAAI;AACJ,IAAI,MAAM,OAAO,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE;AACvC,QAAQ,OAAOC,YAAW,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,UAAU,EAAE,IAAI,CAAC,kBAAkB,CAAC,OAAO,KAAK,IAAI,IAAI,OAAO,KAAK,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;AACrJ,IAAI;AACJ,IAAI,MAAM,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE;AAC1B,QAAQ,OAAOC,QAAO,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,UAAU,EAAE,IAAI,CAAC,kBAAkB,CAAC,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;AAC1K,IAAI;AACJ,IAAI,MAAM,OAAO,CAAC,KAAK,EAAE,IAAI,EAAE;AAC/B,QAAQ,OAAOC,YAAW,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,UAAU,EAAE,IAAI,CAAC,kBAAkB,EAAE,EAAE,CAAC,CAAC;AACpH,IAAI;AACJ,IAAI,MAAM,QAAQ,CAAC,IAAI,EAAE,OAAO,EAAE;AAClC,QAAQ,OAAOC,aAAY,CAAC,IAAI,EAAE,EAAE,UAAU,EAAE,IAAI,CAAC,kBAAkB,CAAC,OAAO,KAAK,IAAI,IAAI,OAAO,KAAK,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;AAChJ,IAAI;AACJ,IAAI,MAAM,QAAQ,CAAC,YAAY,EAAE,SAAS,EAAE,SAAS,EAAE,IAAI,EAAE;AAC7D,QAAQ,OAAOC,aAAY,CAAC,YAAY,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,UAAU,EAAE,IAAI,CAAC,kBAAkB,CAAC,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;AAC7M,IAAI;AACJ,IAAI,MAAM,YAAY,CAAC,IAAI,EAAE,IAAI,EAAE;AACnC,QAAQ,OAAOC,iBAAgB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,UAAU,EAAE,IAAI,CAAC,kBAAkB,CAAC,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;AACnL,IAAI;AACJ,IAAI,MAAM,aAAa,CAAC,UAAU,EAAE,SAAS,EAAE,OAAO,EAAE;AACxD,QAAQ,OAAOC,kBAAiB,CAAC,UAAU,EAAE,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,OAAO,CAAC,EAAE,EAAE,UAAU,EAAE,IAAI,CAAC,kBAAkB,CAAC,OAAO,KAAK,IAAI,IAAI,OAAO,KAAK,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;AACjN,IAAI;AACJ,IAAI,MAAM,iBAAiB,CAAC,IAAI,EAAE;AAClC,QAAQ,MAAM,GAAG,GAAG,IAAI,CAAC,kBAAkB,EAAE;AAC7C,QAAQ,OAAOC,sBAAqB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,UAAU,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;AAC/G,IAAI;AACJ,IAAI,MAAM,KAAK,CAAC,IAAI,EAAE,IAAI,GAAG,EAAE,EAAE;AACjC,QAAQ,OAAOC,UAAS,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,UAAU,EAAE,IAAI,CAAC,kBAAkB,CAAC,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;AAC5K,IAAI;AACJ,IAAI,MAAM,SAAS,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,GAAG,EAAE,EAAE;AAChD,QAAQ,OAAOC,cAAa,CAAC,IAAI,EAAE,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,UAAU,EAAE,IAAI,CAAC,kBAAkB,CAAC,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;AAC3L,IAAI;AACJ;AACA,IAAI,MAAM,WAAW,CAAC,OAAO,EAAE;AAC/B,QAAQ,OAAO,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,OAAO,CAAC;AACjD,IAAI;AACJ,IAAI,MAAM,eAAe,CAAC,WAAW,EAAE;AACvC,QAAQ,OAAO,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,WAAW,CAAC;AACzD,IAAI;AACJ,IAAI,MAAM,wBAAwB,CAAC,WAAW,EAAE,QAAQ,EAAE;AAC1D,QAAQ,OAAO,IAAI,CAAC,QAAQ,CAAC,wBAAwB,CAAC,WAAW,EAAE,QAAQ,CAAC;AAC5E,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,eAAe,kBAAkB,CAAC,IAAI,EAAE;AAC/C,IAAI,IAAI,EAAE;AACV,IAAI,MAAM,EAAE,GAAG,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC;AACzC,IAAI,MAAM,MAAM,GAAG,MAAMf,cAAS,EAAE;AACpC,IAAI,IAAI,QAAQ,GAAG,IAAI,qBAAqB,CAAC,CAAC,EAAE,GAAG,MAAM,CAAC,MAAM,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,EAAE,GAAG,IAAI,EAAE,EAAE,CAAC;AAC5G,IAAI,IAAI,MAAM,CAAC,KAAK,KAAK,UAAU,EAAE;AACrC,QAAQ,QAAQ,GAAG,IAAI,oBAAoB,CAAC,QAAQ,CAAC;AACrD,IAAI;AACJ,IAAI,MAAM,cAAc,GAAGgB,yBAAoB,CAAC,UAAU,CAAC,EAAE,CAAC;AAC9D;AACA,IAAI,MAAM,cAAc,CAAC,UAAU,EAAE;AACrC,IAAI,OAAO,IAAI,YAAY,CAAC,QAAQ,EAAE,cAAc,EAAE,EAAE,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC;AAC9E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
package/dist/index.mjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { convertRemainingAccounts, buildSetDocumentsTransaction, getConfig, init as init$1, getIdToken as getIdToken$1, set, setMany, setFile, get, getMany, getFiles, runQuery, runQueryMany, runExpression, runExpressionMany, count, aggregate
|
|
1
|
+
import { convertRemainingAccounts, buildSetDocumentsTransaction, getConfig, init as init$1, getIdToken as getIdToken$1, ServerSessionManager, set, setMany, setFile, get, getMany, getFiles, runQuery, runQueryMany, runExpression, runExpressionMany, count, aggregate } from '@pooflabs/core';
|
|
2
2
|
export * from '@pooflabs/core';
|
|
3
3
|
export { InsufficientBalanceError, aggregate, count, get, getConfig, getFiles, getMany, runExpression, runExpressionMany, runQuery, runQueryMany, set, setFile, setMany, signAndSubmitTransaction, signMessage, signTransaction, subscribe } from '@pooflabs/core';
|
|
4
4
|
import { Buffer } from 'buffer';
|
|
@@ -454,40 +454,17 @@ async function getIdToken() {
|
|
|
454
454
|
return getIdToken$1(true);
|
|
455
455
|
}
|
|
456
456
|
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
|
|
468
|
-
OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
|
469
|
-
PERFORMANCE OF THIS SOFTWARE.
|
|
470
|
-
***************************************************************************** */
|
|
471
|
-
/* global Reflect, Promise, SuppressedError, Symbol, Iterator */
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
function __rest(s, e) {
|
|
475
|
-
var t = {};
|
|
476
|
-
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
|
477
|
-
t[p] = s[p];
|
|
478
|
-
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
|
479
|
-
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
480
|
-
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
|
481
|
-
t[p[i]] = s[p[i]];
|
|
482
|
-
}
|
|
483
|
-
return t;
|
|
484
|
-
}
|
|
485
|
-
|
|
486
|
-
typeof SuppressedError === "function" ? SuppressedError : function (error, suppressed, message) {
|
|
487
|
-
var e = new Error(message);
|
|
488
|
-
return e.name = "SuppressedError", e.error = error, e.suppressed = suppressed, e;
|
|
457
|
+
var __rest = (undefined && undefined.__rest) || function (s, e) {
|
|
458
|
+
var t = {};
|
|
459
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
|
460
|
+
t[p] = s[p];
|
|
461
|
+
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
|
462
|
+
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
463
|
+
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
|
464
|
+
t[p[i]] = s[p[i]];
|
|
465
|
+
}
|
|
466
|
+
return t;
|
|
489
467
|
};
|
|
490
|
-
|
|
491
468
|
/* ------------------------------------------------------------------ */
|
|
492
469
|
/* Keypair parsing */
|
|
493
470
|
/* ------------------------------------------------------------------ */
|
package/dist/index.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.mjs","sources":["../src/auth/providers/solana-keypair-provider.ts","../src/auth/providers/offchain-auth-provider.ts","../src/auth/index.ts","../src/global.ts","../src/utils.ts","../src/wallet-client.ts"],"sourcesContent":["import { Buffer } from 'buffer';\nimport {\n ComputeBudgetProgram,\n Connection,\n Keypair,\n Transaction,\n VersionedTransaction,\n VersionedTransactionResponse\n} from '@solana/web3.js';\nimport * as anchor from '@coral-xyz/anchor';\nimport nacl from 'tweetnacl';\nimport bs58 from 'bs58';\n\nimport type {\n AuthProvider,\n EVMTransaction,\n SolTransaction,\n TransactionResult,\n User,\n SetOptions,\n} from '@pooflabs/core';\n\nimport {\n convertRemainingAccounts,\n buildSetDocumentsTransaction,\n} from '@pooflabs/core';\nimport { SOLANA_DEVNET_RPC_URL, SOLANA_MAINNET_RPC_URL, SURFNET_RPC_URL } from '..';\n\n/* ------------------------------------------------------------- *\n * REQUIRED ENV-VAR\n * ------------------------------------------------------------- */\nconst ENV_VAR = 'TAROBASE_SOLANA_KEYPAIR'; // base-58 or JSON array\n\nfunction loadKeypairFromEnv(): Keypair {\n const secret = process?.env?.[ENV_VAR];\n if (!secret) {\n throw new Error(\n `Missing ${ENV_VAR}. Set it to a base58 secret key or JSON array.`,\n );\n }\n\n try {\n const secretKey = secret.trim().startsWith('[')\n ? Uint8Array.from(JSON.parse(secret))\n : bs58.decode(secret.trim());\n\n return Keypair.fromSecretKey(secretKey);\n } catch (err) {\n throw new Error(\n `Unable to parse ${ENV_VAR}. Ensure it is valid base58 or a JSON array.`,\n );\n }\n}\n\n/* ──────────────────────────────────────────────────────────\n * Helper – fetch getPriorityFeeEstimate\n * ──────────────────────────────────────────────────────── */\nasync function fetchPriorityFee(rpcEndpoint: string, rawUnsignedTxBuffer: Uint8Array) {\n try {\n const res = await fetch(rpcEndpoint, {\n method: \"POST\",\n headers: { \"Content-Type\": \"application/json\" },\n body: JSON.stringify({\n jsonrpc: \"2.0\",\n id: \"1\",\n method: \"getPriorityFeeEstimate\",\n params: [{\n transaction: bs58.encode(rawUnsignedTxBuffer), options: {\n recommended: true\n }\n }]\n })\n });\n const data = await res.json() as { result: { priorityFeeEstimate: number } };\n const fee = data?.result?.priorityFeeEstimate ?? null;\n console.log(\"Got fee from Helius\", fee);\n if (fee != null && fee > 0) {\n return Math.ceil(Number(fee) * 1.2);\n } else {\n console.log(\"No fee from Helius, using default 10000\");\n return Math.ceil(10000 * 1.2);\n }\n } catch (err) {\n console.warn(\"Priority‑fee estimate failed:\", err);\n return Math.ceil(10000 * 1.2);\n }\n}\n\nexport class SolanaKeypairProvider implements AuthProvider {\n private readonly keypair: Keypair;\n\n constructor(\n private readonly networkUrl: string | null = null,\n keypair?: Keypair,\n ) {\n this.keypair = keypair ?? loadKeypairFromEnv();\n }\n\n /* ----------------------------------------------------------- *\n * (Auth stubs – fill in later if needed)\n * ----------------------------------------------------------- */\n async login(): Promise<User | null> { throw new Error('Not implemented'); }\n async restoreSession(): Promise<User | null> { throw new Error('Not implemented'); }\n async logout(): Promise<void> { throw new Error('Not implemented'); }\n\n /* ----------------------------------------------------------- *\n * Sign arbitrary message\n * ----------------------------------------------------------- */\n async signMessage(message: string): Promise<string> {\n const sig = nacl.sign.detached(\n new TextEncoder().encode(message),\n this.keypair.secretKey,\n );\n return Buffer.from(sig).toString('base64');\n }\n\n /* ----------------------------------------------------------- *\n * Sign transaction\n * ----------------------------------------------------------- */\n async signTransaction(transaction: Transaction | VersionedTransaction): Promise<Transaction | VersionedTransaction> {\n // Use duck typing instead of instanceof to handle multiple @solana/web3.js versions\n const isLegacyTransaction = 'recentBlockhash' in transaction && !('message' in transaction && 'staticAccountKeys' in (transaction as any).message);\n\n if (isLegacyTransaction) {\n (transaction as Transaction).partialSign(this.keypair);\n } else {\n (transaction as VersionedTransaction).sign([this.keypair]);\n }\n return transaction;\n }\n\n /**\n * Signs and submits a Solana transaction to the network.\n *\n * This method handles blockhash and transaction confirmation automatically - you do NOT need to\n * set recentBlockhash or lastValidBlockHeight on the transaction before calling this method.\n * The network/RPC URL is derived from the provider's configuration (set during initialization).\n *\n * @param transaction - The transaction to sign and submit (Transaction or VersionedTransaction)\n * @param feePayer - Optional fee payer public key. If not provided and the transaction doesn't\n * already have a feePayer set, the keypair's public key will be used.\n * Useful for co-signing scenarios where a different account pays the fees.\n * @returns The transaction signature\n */\n async signAndSubmitTransaction(\n transaction: Transaction | VersionedTransaction,\n feePayer?: anchor.web3.PublicKey\n ): Promise<string> {\n // 1. Get RPC URL and create connection\n const rpcUrl = this.getRpcUrl();\n const connection = new Connection(rpcUrl, 'confirmed');\n\n // 2. Get fresh blockhash and set it on the transaction before signing\n const { blockhash, lastValidBlockHeight } = await connection.getLatestBlockhash('confirmed');\n\n // Use duck typing instead of instanceof to handle multiple @solana/web3.js versions\n const isLegacyTransaction = 'recentBlockhash' in transaction && !('message' in transaction && 'staticAccountKeys' in (transaction as any).message);\n\n if (isLegacyTransaction) {\n const legacyTx = transaction as Transaction;\n legacyTx.recentBlockhash = blockhash;\n legacyTx.lastValidBlockHeight = lastValidBlockHeight;\n\n // Set feePayer if not already set\n if (!legacyTx.feePayer) {\n legacyTx.feePayer = feePayer ?? this.keypair.publicKey;\n }\n } else {\n // VersionedTransaction\n const versionedTx = transaction as VersionedTransaction;\n versionedTx.message.recentBlockhash = blockhash;\n // Note: VersionedTransaction feePayer is set in the message at creation time\n // and cannot be modified after creation\n }\n\n // 3. Sign the transaction\n const signedTx = await this.signTransaction(transaction);\n\n // 4. Submit and confirm using shared helper\n const { signature } = await this.submitAndConfirmTransaction(signedTx, connection);\n return signature;\n }\n\n /* ----------------------------------------------------------- *\n * Private Helpers\n * ----------------------------------------------------------- */\n\n /**\n * Submits a signed transaction and waits for confirmation using polling.\n * Shared by both signAndSubmitTransaction and runTransactionInner.\n */\n private async submitAndConfirmTransaction(\n signedTx: Transaction | VersionedTransaction,\n connection: Connection,\n options?: { fetchTxInfo?: boolean }\n ): Promise<{ signature: string; txInfo: any }> {\n const sig = await connection.sendRawTransaction(signedTx.serialize(), {\n preflightCommitment: 'confirmed'\n });\n\n // Wait for confirmation using polling\n const startTime = Date.now();\n const timeoutMs = 10 * 1000; // 10 seconds\n\n while (true) {\n const st = await connection.getSignatureStatus(sig);\n if (st?.value?.err) {\n // Transaction confirmed but failed on-chain — fetch logs for a readable error\n const txInfo = await connection.getTransaction(sig, {\n maxSupportedTransactionVersion: 0,\n commitment: 'confirmed'\n });\n const logMessages = txInfo?.meta?.logMessages;\n const errorMessage = logMessages ? JSON.stringify(logMessages) : JSON.stringify(st?.value?.err);\n throw new Error(`Transaction failed: ${errorMessage}`);\n }\n if (st?.value?.confirmationStatus === 'confirmed') {\n break;\n }\n\n // Check if we've exceeded the timeout\n if (Date.now() - startTime > timeoutMs) {\n throw new Error(`Transaction confirmation timeout after ${timeoutMs / 1000} seconds`);\n }\n\n await new Promise(resolve => setTimeout(resolve, 500));\n }\n\n // Optionally fetch transaction info\n let txInfo : VersionedTransactionResponse | null = null;\n if (options?.fetchTxInfo) {\n txInfo = await connection.getTransaction(sig, {\n maxSupportedTransactionVersion: 0,\n commitment: 'confirmed'\n });\n }\n\n return { signature: sig, txInfo };\n }\n\n private getRpcUrl(network?: string): string {\n if (this.networkUrl) {\n return this.networkUrl;\n }\n if (network === 'solana_devnet') {\n return SOLANA_DEVNET_RPC_URL;\n } else if (network === 'solana_mainnet') {\n return SOLANA_MAINNET_RPC_URL;\n } else if (network === 'surfnet') {\n return SURFNET_RPC_URL;\n }\n return SOLANA_MAINNET_RPC_URL; // default to mainnet\n }\n\n /* ----------------------------------------------------------- *\n * Transaction runner\n * ----------------------------------------------------------- */\n async runTransaction(\n _evm?: EVMTransaction,\n sol?: SolTransaction,\n opts?: SetOptions,\n ): Promise<TransactionResult> {\n if (!sol) throw new Error('Solana transaction data required');\n\n const kp = this.keypair;\n\n // Helper for duck typing - checks if transaction is legacy Transaction vs VersionedTransaction\n const isLegacyTx = (tx: Transaction | VersionedTransaction): boolean => {\n return 'recentBlockhash' in tx && !('message' in tx && 'staticAccountKeys' in (tx as any).message);\n };\n\n const wallet: anchor.Wallet = {\n publicKey: kp.publicKey,\n signTransaction: async (tx: Transaction | VersionedTransaction) => {\n // Use duck typing instead of instanceof to handle multiple @solana/web3.js versions\n if (isLegacyTx(tx)) {\n (tx as Transaction).partialSign(kp);\n } else {\n (tx as VersionedTransaction).sign([kp]);\n }\n return tx;\n },\n signAllTransactions: async (txs: (Transaction | VersionedTransaction)[]) =>\n txs.map((t) => {\n // Use duck typing instead of instanceof to handle multiple @solana/web3.js versions\n if (isLegacyTx(t)) {\n (t as Transaction).partialSign(kp);\n } else {\n (t as VersionedTransaction).sign([kp]);\n }\n return t;\n }),\n } as unknown as anchor.Wallet;\n\n /* de-dupe remaining accounts */\n const deduped = (() => {\n const fin: ReturnType<typeof convertRemainingAccounts> = [];\n for (const acc of convertRemainingAccounts(\n sol.txArgs[0].remainingAccounts,\n )) {\n const ex = fin.find((x) => x.pubkey.equals(acc.pubkey));\n if (ex) {\n ex.isSigner ||= acc.isSigner;\n ex.isWritable ||= acc.isWritable;\n } else fin.push(acc);\n }\n return fin;\n })();\n\n let retries = 0;\n let didPass = false;\n let delay = 1000;\n let toReturn: TransactionResult | null = null;\n let errorMessage = \"\";\n while (retries < 5) {\n try {\n toReturn = await this.runTransactionInner(sol, opts, wallet, kp, deduped);\n didPass = true;\n break;\n } catch (error: any) {\n console.log(\"Error building and sending transaction on retry:\", retries, error);\n await new Promise(resolve => setTimeout(resolve, delay));\n // Exponential backoff\n delay *= 1.5;\n retries++;\n errorMessage = error.message || JSON.stringify(error, null, 2);\n }\n }\n if (!didPass) {\n throw new Error(`Failed to send transaction after 5 retries: ${errorMessage}`);\n }\n return toReturn as TransactionResult;\n }\n\n private async runTransactionInner(sol: SolTransaction, opts: SetOptions | undefined, wallet: anchor.Wallet, kp: Keypair, deduped: ReturnType<typeof convertRemainingAccounts>): Promise<TransactionResult> {\n\n let rpcUrl = this.getRpcUrl(sol.network);\n const connection = new Connection(rpcUrl, 'confirmed');\n\n const anchorProvider = new anchor.AnchorProvider(\n connection,\n wallet,\n anchor.AnchorProvider.defaultOptions(),\n );\n\n const app_id = sol.appId;\n if (!app_id) throw new Error('app_id missing');\n\n // When the server has co-signed a transaction (CPI attestation),\n // deserialize it and just add the wallet signature instead of\n // building from components.\n let tx: Transaction | VersionedTransaction;\n let blockhash: string;\n let lastValidBlockHeight: number;\n\n if (sol.signedTransaction) {\n tx = VersionedTransaction.deserialize(\n Buffer.from(sol.signedTransaction, 'base64')\n );\n const latestBlockhash = await connection.getLatestBlockhash('confirmed');\n blockhash = latestBlockhash.blockhash;\n lastValidBlockHeight = latestBlockhash.lastValidBlockHeight;\n } else {\n const result = await buildSetDocumentsTransaction(\n connection,\n sol.txArgs[0].idl,\n anchorProvider,\n kp.publicKey,\n {\n app_id,\n documents: sol.txArgs[0].setDocumentData,\n delete_paths: sol.txArgs[0].deletePaths,\n txData: sol.txArgs[0].txData\n },\n deduped,\n sol.lutKey,\n sol.preInstructions,\n false,\n sol.additionalLutAddresses,\n );\n tx = result.tx;\n blockhash = result.blockhash;\n lastValidBlockHeight = result.lastValidBlockHeight;\n }\n\n // Helper for duck typing - checks if transaction is legacy Transaction vs VersionedTransaction\n const isLegacyTx = (t: Transaction | VersionedTransaction): boolean => {\n return 'recentBlockhash' in t && !('message' in t && 'staticAccountKeys' in (t as any).message);\n };\n\n // Refresh blockhash and lastValidBlockHeight\n // Use duck typing instead of instanceof to handle multiple @solana/web3.js versions\n if (isLegacyTx(tx)) {\n (tx as Transaction).partialSign(kp);\n (tx as Transaction).recentBlockhash = blockhash;\n (tx as Transaction).lastValidBlockHeight = lastValidBlockHeight;\n (tx as Transaction).feePayer = kp.publicKey;\n } else {\n (tx as VersionedTransaction).sign([kp]);\n (tx as VersionedTransaction).message.recentBlockhash = blockhash;\n }\n\n // 3️⃣ Optional priority‑fee instruction\n\n const rawUnsigned = tx.serialize({ requireAllSignatures: false });\n const microLamports = await fetchPriorityFee(\n connection.rpcEndpoint,\n rawUnsigned\n );\n\n if (microLamports != null) {\n // Use duck typing instead of instanceof to handle multiple @solana/web3.js versions\n if (isLegacyTx(tx)) {\n (tx as Transaction).instructions.unshift(\n ComputeBudgetProgram.setComputeUnitPrice({ microLamports })\n );\n (tx as Transaction).partialSign(kp);\n } else {\n // For pre-signed (attestation) transactions, we can't rebuild — skip priority fee\n if (!sol.signedTransaction) {\n // Rebuild the transaction with the new priority fee\n const roundTwo = await buildSetDocumentsTransaction(\n connection,\n sol.txArgs[0].idl,\n anchorProvider,\n kp.publicKey,\n {\n app_id,\n documents: sol.txArgs[0].setDocumentData,\n delete_paths: sol.txArgs[0].deletePaths,\n txData: sol.txArgs[0].txData\n },\n deduped,\n sol.lutKey,\n [ComputeBudgetProgram.setComputeUnitPrice({ microLamports }), ...sol.preInstructions],\n false,\n sol.additionalLutAddresses,\n );\n tx = roundTwo.tx as VersionedTransaction;\n blockhash = roundTwo.blockhash;\n lastValidBlockHeight = roundTwo.lastValidBlockHeight;\n (tx as VersionedTransaction).sign([kp]);\n (tx as VersionedTransaction).message.recentBlockhash = blockhash;\n }\n }\n }\n\n if (opts?.shouldSubmitTx === false) {\n return { signedTransaction: tx, blockNumber: 0, gasUsed: '0', data: '' };\n }\n\n // Submit and confirm using shared helper\n const { signature, txInfo } = await this.submitAndConfirmTransaction(tx, connection, { fetchTxInfo: true });\n\n return {\n transactionSignature: signature,\n blockNumber: txInfo?.slot ?? 0,\n gasUsed: txInfo?.meta?.fee.toString() ?? '0',\n data: txInfo?.meta,\n };\n }\n\n /* ----------------------------------------------------------- */\n async getNativeMethods() {\n return { keypair: this.keypair };\n }\n}\n","import { AuthProvider } from '@pooflabs/core';\nimport { Transaction, VersionedTransaction } from '@solana/web3.js';\nimport * as crypto from 'crypto';\n\n/**\n * Server-side OffchainAuthProvider wrapper for the poofnet environment.\n *\n * For signMessage, this generates a mock signature using SHA-256 hashing.\n * This is used for offchain transaction signing.\n */\nexport class OffchainAuthProvider implements AuthProvider {\n private wrappedProvider: AuthProvider;\n\n constructor(wrappedProvider: AuthProvider) {\n this.wrappedProvider = wrappedProvider;\n }\n\n async login(): Promise<any> {\n return this.wrappedProvider.login();\n }\n\n async logout(): Promise<void> {\n return this.wrappedProvider.logout();\n }\n\n async restoreSession(): Promise<any> {\n return this.wrappedProvider.restoreSession();\n }\n\n async getNativeMethods(): Promise<any> {\n return this.wrappedProvider.getNativeMethods();\n }\n\n async signMessage(message: string): Promise<string> {\n // Delegate to wrapped provider for real signing\n return this.wrappedProvider.signMessage(message);\n }\n\n async signMessageMock(message: string): Promise<string> {\n // Generate mock signature (SHA-256 hash of message, base64 encoded)\n // This is used for offchain transaction signing\n const hash = crypto.createHash('sha256').update(message).digest('base64');\n return hash;\n }\n\n async signTransaction(transaction: Transaction | VersionedTransaction): Promise<Transaction | VersionedTransaction> {\n throw new Error('Poofnet does not support real Solana transactions. Deploy your project to mainnet to use this feature.');\n }\n\n /**\n * Sign and submit transaction - not supported in poofnet environment.\n * See the real providers (PhantomWalletProvider, PrivyWalletProvider, SolanaKeypairProvider)\n * for the full implementation with blockhash handling and feePayer support.\n */\n async signAndSubmitTransaction(\n _transaction: Transaction | VersionedTransaction,\n _feePayer?: any\n ): Promise<string> {\n throw new Error('Poofnet does not support real Solana transactions. Deploy your project to mainnet to use this feature.');\n }\n\n async runTransaction(evmTransactionData?: any, solTransactionData?: any, options?: any): Promise<any> {\n return this.wrappedProvider.runTransaction(evmTransactionData, solTransactionData, options);\n }\n}\n","import { getConfig } from '@pooflabs/core';\nimport { AuthProvider } from '@pooflabs/core';\nimport { SolanaKeypairProvider } from './providers/solana-keypair-provider';\nimport { OffchainAuthProvider } from './providers/offchain-auth-provider';\n\nlet currentAuthProvider: AuthProvider | null = null;\n\nexport const SOLANA_DEVNET_RPC_URL = \"https://idelle-8nxsep-fast-devnet.helius-rpc.com\";\nexport const SOLANA_MAINNET_RPC_URL = \"https://celestia-cegncv-fast-mainnet.helius-rpc.com\";\nexport const SURFNET_RPC_URL = \"https://surfpool.fly.dev\";\n\nexport async function getAuthProvider(): Promise<AuthProvider> {\n const config = await getConfig();\n\n if (currentAuthProvider) {\n // If provider exists but chain is \"offchain\" and it's not already wrapped, rewrap it\n if (config.chain === \"offchain\" && !(currentAuthProvider instanceof OffchainAuthProvider)) {\n currentAuthProvider = new OffchainAuthProvider(currentAuthProvider);\n }\n return currentAuthProvider;\n }\n\n currentAuthProvider = await matchAuthProvider(config.rpcUrl ?? null);\n \n // Wrap with OffchainAuthProvider for offchain chain\n if (config.chain === \"offchain\") {\n currentAuthProvider = new OffchainAuthProvider(currentAuthProvider);\n }\n\n return currentAuthProvider;\n}\n\nexport async function matchAuthProvider(rpcUrl: string | null): Promise<AuthProvider> {\n return new SolanaKeypairProvider(rpcUrl);\n}","import { AuthProvider } from '@pooflabs/core';\nimport { getAuthProvider } from './auth';\nimport { init as configInit, ClientConfig } from '@pooflabs/core';\n\nlet authProviderInstance: AuthProvider | null = null;\n\nconst SOLANA_DEVNET_RPC_URL = \"https://api.devnet.solana.com\";\nconst SOLANA_MAINNET_RPC_URL = \"https://celestia-cegncv-fast-mainnet.helius-rpc.com\";\nconst SURFNET_RPC_URL = \"https://surfpool.fly.dev\";\n\nexport async function init(newConfig: Partial<ClientConfig>): Promise<void> {\n // Initialize config first so getAuthProvider can access it\n // Server-side skips backend init since it already has all needed config\n await configInit({ ...newConfig, isServer: true, skipBackendInit: true });\n\n // Get the auth provider (which will wrap it if chain is \"offchain\")\n authProviderInstance = await getAuthProvider();\n\n // Update config with the wrapped provider\n await configInit({ ...newConfig, authProvider: authProviderInstance, isServer: true, skipBackendInit: true });\n}","import { getIdToken as getIdTokenCore } from '@pooflabs/core';\n\n// Wrapper for getIdToken - passes isServer=true for server-side usage\nexport async function getIdToken(): Promise<string | null> {\n return getIdTokenCore(true);\n}\n","import { Keypair } from '@solana/web3.js';\nimport { Transaction, VersionedTransaction, PublicKey } from '@solana/web3.js';\nimport bs58 from 'bs58';\nimport {\n getConfig,\n get as coreGet,\n getMany as coreGetMany,\n set as coreSet,\n setMany as coreSetMany,\n setFile as coreSetFile,\n getFiles as coreGetFiles,\n runQuery as coreRunQuery,\n runQueryMany as coreRunQueryMany,\n runExpression as coreRunExpression,\n runExpressionMany as coreRunExpressionMany,\n count as coreCount,\n aggregate as coreAggregate,\n ServerSessionManager,\n} from '@pooflabs/core';\nimport type {\n AuthProvider,\n SetOptions,\n GetOptions,\n GetManyResult,\n RunQueryOptions,\n RunExpressionOptions,\n RunExpressionResult,\n CountOptions,\n AggregateOptions,\n AggregateOperation,\n AggregateResult,\n RequestOverrides,\n} from '@pooflabs/core';\nimport { SolanaKeypairProvider } from './auth/providers/solana-keypair-provider';\nimport { OffchainAuthProvider } from './auth/providers/offchain-auth-provider';\n\n/* ------------------------------------------------------------------ */\n/* Keypair parsing */\n/* ------------------------------------------------------------------ */\nfunction parseKeypair(secret: string): Keypair {\n const trimmed = secret.trim();\n try {\n const secretKey = trimmed.startsWith('[')\n ? Uint8Array.from(JSON.parse(trimmed))\n : bs58.decode(trimmed);\n return Keypair.fromSecretKey(secretKey);\n } catch {\n throw new Error('Invalid keypair: must be base58 or JSON array.');\n }\n}\n\n/* ------------------------------------------------------------------ */\n/* WalletClient */\n/* ------------------------------------------------------------------ */\nexport class WalletClient {\n private readonly provider: AuthProvider;\n private readonly sessionManager: ServerSessionManager;\n public readonly address: string;\n\n constructor(\n provider: AuthProvider,\n sessionManager: ServerSessionManager,\n address: string,\n ) {\n this.provider = provider;\n this.sessionManager = sessionManager;\n this.address = address;\n }\n\n /* ---- Auth override helpers ---- */\n\n private buildOverrides(): Pick<RequestOverrides, 'authProvider' | '_getAuthHeaders' | '_clearAuth' | '_walletAddress'> {\n return {\n authProvider: this.provider,\n _getAuthHeaders: async () => {\n const s = await this.sessionManager.getSession();\n return { Authorization: `Bearer ${s.idToken}` };\n },\n _clearAuth: async () => {\n this.sessionManager.clearSession();\n },\n _walletAddress: this.address,\n };\n }\n\n /** Strip Authorization from caller headers to prevent overriding wallet token */\n private sanitizeHeaders(headers?: Record<string, string>): Record<string, string> | undefined {\n if (!headers) return undefined;\n const { Authorization, authorization, ...rest } = headers as Record<string, string>;\n return Object.keys(rest).length > 0 ? rest : undefined;\n }\n\n private mergeSetOverrides(opts?: SetOptions): SetOptions {\n const ovr = this.buildOverrides();\n return {\n ...opts,\n _overrides: {\n ...opts?._overrides,\n headers: this.sanitizeHeaders(opts?._overrides?.headers),\n authProvider: ovr.authProvider,\n _getAuthHeaders: ovr._getAuthHeaders,\n _clearAuth: ovr._clearAuth,\n },\n };\n }\n\n private mergeReadOverrides(existing?: RequestOverrides): RequestOverrides {\n const ovr = this.buildOverrides();\n return {\n ...existing,\n headers: this.sanitizeHeaders(existing?.headers),\n _getAuthHeaders: ovr._getAuthHeaders,\n _clearAuth: ovr._clearAuth,\n _walletAddress: ovr._walletAddress,\n };\n }\n\n /* ---- Data operations ---- */\n\n async set(path: string, document: any, options?: SetOptions): Promise<any> {\n return coreSet(path, document, this.mergeSetOverrides(options));\n }\n\n async setMany(many: { path: string; document: any }[], options?: SetOptions): Promise<any> {\n return coreSetMany(many, this.mergeSetOverrides(options));\n }\n\n async setFile(path: string, file: File | null, options?: { _overrides?: RequestOverrides }): Promise<any> {\n return coreSetFile(path, file, { _overrides: this.mergeReadOverrides(options?._overrides) });\n }\n\n async get(path: string, opts?: GetOptions): Promise<any> {\n return coreGet(path, { ...opts, _overrides: this.mergeReadOverrides(opts?._overrides) });\n }\n\n async getMany(paths: string[], opts?: { bypassCache?: boolean }): Promise<GetManyResult[]> {\n return coreGetMany(paths, { ...opts, _overrides: this.mergeReadOverrides() });\n }\n\n async getFiles(path: string, options?: { _overrides?: RequestOverrides }): Promise<any> {\n return coreGetFiles(path, { _overrides: this.mergeReadOverrides(options?._overrides) });\n }\n\n async runQuery(absolutePath: string, queryName: string, queryArgs: any, opts?: RunQueryOptions): Promise<any> {\n return coreRunQuery(absolutePath, queryName, queryArgs, { ...opts, _overrides: this.mergeReadOverrides(opts?._overrides) });\n }\n\n async runQueryMany(many: { absolutePath: string; queryName: string; queryArgs: any }[], opts?: RunQueryOptions): Promise<any> {\n return coreRunQueryMany(many, { ...opts, _overrides: this.mergeReadOverrides(opts?._overrides) });\n }\n\n async runExpression(expression: string, queryArgs: any, options?: RunExpressionOptions): Promise<RunExpressionResult> {\n return coreRunExpression(expression, queryArgs, { ...options, _overrides: this.mergeReadOverrides(options?._overrides) });\n }\n\n async runExpressionMany(many: { expression: string; queryArgs: any; returnType?: 'Bool' | 'String' | 'Int' | 'UInt'; _overrides?: RequestOverrides }[]): Promise<RunExpressionResult[]> {\n const ovr = this.mergeReadOverrides();\n return coreRunExpressionMany(many.map(m => ({ ...m, _overrides: ovr })));\n }\n\n async count(path: string, opts: CountOptions = {}): Promise<AggregateResult> {\n return coreCount(path, { ...opts, _overrides: this.mergeReadOverrides(opts?._overrides) });\n }\n\n async aggregate(path: string, operation: AggregateOperation, opts: AggregateOptions = {}): Promise<AggregateResult> {\n return coreAggregate(path, operation, { ...opts, _overrides: this.mergeReadOverrides(opts?._overrides) });\n }\n\n /* ---- Signing operations (use provider directly) ---- */\n\n async signMessage(message: string): Promise<string> {\n return this.provider.signMessage(message);\n }\n\n async signTransaction(transaction: Transaction | VersionedTransaction): Promise<Transaction | VersionedTransaction> {\n return this.provider.signTransaction(transaction);\n }\n\n async signAndSubmitTransaction(transaction: Transaction | VersionedTransaction, feePayer?: PublicKey): Promise<string> {\n return this.provider.signAndSubmitTransaction(transaction, feePayer);\n }\n}\n\n/* ------------------------------------------------------------------ */\n/* Factory */\n/* ------------------------------------------------------------------ */\nexport interface CreateWalletClientOptions {\n /** Base58 or JSON array secret key */\n keypair: string;\n}\n\n/**\n * Create a self-contained wallet client bound to a specific keypair.\n * Each client has its own auth session — no global state is mutated.\n *\n * @example\n * ```ts\n * const vault = await createWalletClient({ keypair: process.env.VAULT_KEY });\n * await vault.set('markets/123', data);\n * ```\n */\nexport async function createWalletClient(opts: CreateWalletClientOptions): Promise<WalletClient> {\n const kp = parseKeypair(opts.keypair);\n const config = await getConfig();\n\n let provider: AuthProvider = new SolanaKeypairProvider(config.rpcUrl ?? null, kp);\n if (config.chain === 'offchain') {\n provider = new OffchainAuthProvider(provider);\n }\n\n const sessionManager = ServerSessionManager.forKeypair(kp);\n // Eagerly authenticate so failures surface immediately\n await sessionManager.getSession();\n\n return new WalletClient(provider, sessionManager, kp.publicKey.toBase58());\n}\n"],"names":["configInit","getIdTokenCore","coreSet","coreSetMany","coreSetFile","coreGet","coreGetMany","coreGetFiles","coreRunQuery","coreRunQueryMany","coreRunExpression","coreRunExpressionMany","coreCount","coreAggregate"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.mjs","sources":["../.rollup-tmp/auth/providers/solana-keypair-provider.js","../.rollup-tmp/auth/providers/offchain-auth-provider.js","../.rollup-tmp/auth/index.js","../.rollup-tmp/global.js","../.rollup-tmp/utils.js","../.rollup-tmp/wallet-client.js"],"sourcesContent":["import { Buffer } from 'buffer';\nimport { ComputeBudgetProgram, Connection, Keypair, VersionedTransaction } from '@solana/web3.js';\nimport * as anchor from '@coral-xyz/anchor';\nimport nacl from 'tweetnacl';\nimport bs58 from 'bs58';\nimport { convertRemainingAccounts, buildSetDocumentsTransaction, } from '@pooflabs/core';\nimport { SOLANA_DEVNET_RPC_URL, SOLANA_MAINNET_RPC_URL, SURFNET_RPC_URL } from '..';\n/* ------------------------------------------------------------- *\n * REQUIRED ENV-VAR\n * ------------------------------------------------------------- */\nconst ENV_VAR = 'TAROBASE_SOLANA_KEYPAIR'; // base-58 or JSON array\nfunction loadKeypairFromEnv() {\n var _a;\n const secret = (_a = process === null || process === void 0 ? void 0 : process.env) === null || _a === void 0 ? void 0 : _a[ENV_VAR];\n if (!secret) {\n throw new Error(`Missing ${ENV_VAR}. Set it to a base58 secret key or JSON array.`);\n }\n try {\n const secretKey = secret.trim().startsWith('[')\n ? Uint8Array.from(JSON.parse(secret))\n : bs58.decode(secret.trim());\n return Keypair.fromSecretKey(secretKey);\n }\n catch (err) {\n throw new Error(`Unable to parse ${ENV_VAR}. Ensure it is valid base58 or a JSON array.`);\n }\n}\n/* ──────────────────────────────────────────────────────────\n * Helper – fetch getPriorityFeeEstimate\n * ──────────────────────────────────────────────────────── */\nasync function fetchPriorityFee(rpcEndpoint, rawUnsignedTxBuffer) {\n var _a, _b;\n try {\n const res = await fetch(rpcEndpoint, {\n method: \"POST\",\n headers: { \"Content-Type\": \"application/json\" },\n body: JSON.stringify({\n jsonrpc: \"2.0\",\n id: \"1\",\n method: \"getPriorityFeeEstimate\",\n params: [{\n transaction: bs58.encode(rawUnsignedTxBuffer), options: {\n recommended: true\n }\n }]\n })\n });\n const data = await res.json();\n const fee = (_b = (_a = data === null || data === void 0 ? void 0 : data.result) === null || _a === void 0 ? void 0 : _a.priorityFeeEstimate) !== null && _b !== void 0 ? _b : null;\n console.log(\"Got fee from Helius\", fee);\n if (fee != null && fee > 0) {\n return Math.ceil(Number(fee) * 1.2);\n }\n else {\n console.log(\"No fee from Helius, using default 10000\");\n return Math.ceil(10000 * 1.2);\n }\n }\n catch (err) {\n console.warn(\"Priority‑fee estimate failed:\", err);\n return Math.ceil(10000 * 1.2);\n }\n}\nexport class SolanaKeypairProvider {\n constructor(networkUrl = null, keypair) {\n this.networkUrl = networkUrl;\n this.keypair = keypair !== null && keypair !== void 0 ? keypair : loadKeypairFromEnv();\n }\n /* ----------------------------------------------------------- *\n * (Auth stubs – fill in later if needed)\n * ----------------------------------------------------------- */\n async login() { throw new Error('Not implemented'); }\n async restoreSession() { throw new Error('Not implemented'); }\n async logout() { throw new Error('Not implemented'); }\n /* ----------------------------------------------------------- *\n * Sign arbitrary message\n * ----------------------------------------------------------- */\n async signMessage(message) {\n const sig = nacl.sign.detached(new TextEncoder().encode(message), this.keypair.secretKey);\n return Buffer.from(sig).toString('base64');\n }\n /* ----------------------------------------------------------- *\n * Sign transaction\n * ----------------------------------------------------------- */\n async signTransaction(transaction) {\n // Use duck typing instead of instanceof to handle multiple @solana/web3.js versions\n const isLegacyTransaction = 'recentBlockhash' in transaction && !('message' in transaction && 'staticAccountKeys' in transaction.message);\n if (isLegacyTransaction) {\n transaction.partialSign(this.keypair);\n }\n else {\n transaction.sign([this.keypair]);\n }\n return transaction;\n }\n /**\n * Signs and submits a Solana transaction to the network.\n *\n * This method handles blockhash and transaction confirmation automatically - you do NOT need to\n * set recentBlockhash or lastValidBlockHeight on the transaction before calling this method.\n * The network/RPC URL is derived from the provider's configuration (set during initialization).\n *\n * @param transaction - The transaction to sign and submit (Transaction or VersionedTransaction)\n * @param feePayer - Optional fee payer public key. If not provided and the transaction doesn't\n * already have a feePayer set, the keypair's public key will be used.\n * Useful for co-signing scenarios where a different account pays the fees.\n * @returns The transaction signature\n */\n async signAndSubmitTransaction(transaction, feePayer) {\n // 1. Get RPC URL and create connection\n const rpcUrl = this.getRpcUrl();\n const connection = new Connection(rpcUrl, 'confirmed');\n // 2. Get fresh blockhash and set it on the transaction before signing\n const { blockhash, lastValidBlockHeight } = await connection.getLatestBlockhash('confirmed');\n // Use duck typing instead of instanceof to handle multiple @solana/web3.js versions\n const isLegacyTransaction = 'recentBlockhash' in transaction && !('message' in transaction && 'staticAccountKeys' in transaction.message);\n if (isLegacyTransaction) {\n const legacyTx = transaction;\n legacyTx.recentBlockhash = blockhash;\n legacyTx.lastValidBlockHeight = lastValidBlockHeight;\n // Set feePayer if not already set\n if (!legacyTx.feePayer) {\n legacyTx.feePayer = feePayer !== null && feePayer !== void 0 ? feePayer : this.keypair.publicKey;\n }\n }\n else {\n // VersionedTransaction\n const versionedTx = transaction;\n versionedTx.message.recentBlockhash = blockhash;\n // Note: VersionedTransaction feePayer is set in the message at creation time\n // and cannot be modified after creation\n }\n // 3. Sign the transaction\n const signedTx = await this.signTransaction(transaction);\n // 4. Submit and confirm using shared helper\n const { signature } = await this.submitAndConfirmTransaction(signedTx, connection);\n return signature;\n }\n /* ----------------------------------------------------------- *\n * Private Helpers\n * ----------------------------------------------------------- */\n /**\n * Submits a signed transaction and waits for confirmation using polling.\n * Shared by both signAndSubmitTransaction and runTransactionInner.\n */\n async submitAndConfirmTransaction(signedTx, connection, options) {\n var _a, _b, _c, _d;\n const sig = await connection.sendRawTransaction(signedTx.serialize(), {\n preflightCommitment: 'confirmed'\n });\n // Wait for confirmation using polling\n const startTime = Date.now();\n const timeoutMs = 10 * 1000; // 10 seconds\n while (true) {\n const st = await connection.getSignatureStatus(sig);\n if ((_a = st === null || st === void 0 ? void 0 : st.value) === null || _a === void 0 ? void 0 : _a.err) {\n // Transaction confirmed but failed on-chain — fetch logs for a readable error\n const txInfo = await connection.getTransaction(sig, {\n maxSupportedTransactionVersion: 0,\n commitment: 'confirmed'\n });\n const logMessages = (_b = txInfo === null || txInfo === void 0 ? void 0 : txInfo.meta) === null || _b === void 0 ? void 0 : _b.logMessages;\n const errorMessage = logMessages ? JSON.stringify(logMessages) : JSON.stringify((_c = st === null || st === void 0 ? void 0 : st.value) === null || _c === void 0 ? void 0 : _c.err);\n throw new Error(`Transaction failed: ${errorMessage}`);\n }\n if (((_d = st === null || st === void 0 ? void 0 : st.value) === null || _d === void 0 ? void 0 : _d.confirmationStatus) === 'confirmed') {\n break;\n }\n // Check if we've exceeded the timeout\n if (Date.now() - startTime > timeoutMs) {\n throw new Error(`Transaction confirmation timeout after ${timeoutMs / 1000} seconds`);\n }\n await new Promise(resolve => setTimeout(resolve, 500));\n }\n // Optionally fetch transaction info\n let txInfo = null;\n if (options === null || options === void 0 ? void 0 : options.fetchTxInfo) {\n txInfo = await connection.getTransaction(sig, {\n maxSupportedTransactionVersion: 0,\n commitment: 'confirmed'\n });\n }\n return { signature: sig, txInfo };\n }\n getRpcUrl(network) {\n if (this.networkUrl) {\n return this.networkUrl;\n }\n if (network === 'solana_devnet') {\n return SOLANA_DEVNET_RPC_URL;\n }\n else if (network === 'solana_mainnet') {\n return SOLANA_MAINNET_RPC_URL;\n }\n else if (network === 'surfnet') {\n return SURFNET_RPC_URL;\n }\n return SOLANA_MAINNET_RPC_URL; // default to mainnet\n }\n /* ----------------------------------------------------------- *\n * Transaction runner\n * ----------------------------------------------------------- */\n async runTransaction(_evm, sol, opts) {\n if (!sol)\n throw new Error('Solana transaction data required');\n const kp = this.keypair;\n // Helper for duck typing - checks if transaction is legacy Transaction vs VersionedTransaction\n const isLegacyTx = (tx) => {\n return 'recentBlockhash' in tx && !('message' in tx && 'staticAccountKeys' in tx.message);\n };\n const wallet = {\n publicKey: kp.publicKey,\n signTransaction: async (tx) => {\n // Use duck typing instead of instanceof to handle multiple @solana/web3.js versions\n if (isLegacyTx(tx)) {\n tx.partialSign(kp);\n }\n else {\n tx.sign([kp]);\n }\n return tx;\n },\n signAllTransactions: async (txs) => txs.map((t) => {\n // Use duck typing instead of instanceof to handle multiple @solana/web3.js versions\n if (isLegacyTx(t)) {\n t.partialSign(kp);\n }\n else {\n t.sign([kp]);\n }\n return t;\n }),\n };\n /* de-dupe remaining accounts */\n const deduped = (() => {\n const fin = [];\n for (const acc of convertRemainingAccounts(sol.txArgs[0].remainingAccounts)) {\n const ex = fin.find((x) => x.pubkey.equals(acc.pubkey));\n if (ex) {\n ex.isSigner || (ex.isSigner = acc.isSigner);\n ex.isWritable || (ex.isWritable = acc.isWritable);\n }\n else\n fin.push(acc);\n }\n return fin;\n })();\n let retries = 0;\n let didPass = false;\n let delay = 1000;\n let toReturn = null;\n let errorMessage = \"\";\n while (retries < 5) {\n try {\n toReturn = await this.runTransactionInner(sol, opts, wallet, kp, deduped);\n didPass = true;\n break;\n }\n catch (error) {\n console.log(\"Error building and sending transaction on retry:\", retries, error);\n await new Promise(resolve => setTimeout(resolve, delay));\n // Exponential backoff\n delay *= 1.5;\n retries++;\n errorMessage = error.message || JSON.stringify(error, null, 2);\n }\n }\n if (!didPass) {\n throw new Error(`Failed to send transaction after 5 retries: ${errorMessage}`);\n }\n return toReturn;\n }\n async runTransactionInner(sol, opts, wallet, kp, deduped) {\n var _a, _b, _c;\n let rpcUrl = this.getRpcUrl(sol.network);\n const connection = new Connection(rpcUrl, 'confirmed');\n const anchorProvider = new anchor.AnchorProvider(connection, wallet, anchor.AnchorProvider.defaultOptions());\n const app_id = sol.appId;\n if (!app_id)\n throw new Error('app_id missing');\n // When the server has co-signed a transaction (CPI attestation),\n // deserialize it and just add the wallet signature instead of\n // building from components.\n let tx;\n let blockhash;\n let lastValidBlockHeight;\n if (sol.signedTransaction) {\n tx = VersionedTransaction.deserialize(Buffer.from(sol.signedTransaction, 'base64'));\n const latestBlockhash = await connection.getLatestBlockhash('confirmed');\n blockhash = latestBlockhash.blockhash;\n lastValidBlockHeight = latestBlockhash.lastValidBlockHeight;\n }\n else {\n const result = await buildSetDocumentsTransaction(connection, sol.txArgs[0].idl, anchorProvider, kp.publicKey, {\n app_id,\n documents: sol.txArgs[0].setDocumentData,\n delete_paths: sol.txArgs[0].deletePaths,\n txData: sol.txArgs[0].txData\n }, deduped, sol.lutKey, sol.preInstructions, false, sol.additionalLutAddresses);\n tx = result.tx;\n blockhash = result.blockhash;\n lastValidBlockHeight = result.lastValidBlockHeight;\n }\n // Helper for duck typing - checks if transaction is legacy Transaction vs VersionedTransaction\n const isLegacyTx = (t) => {\n return 'recentBlockhash' in t && !('message' in t && 'staticAccountKeys' in t.message);\n };\n // Refresh blockhash and lastValidBlockHeight\n // Use duck typing instead of instanceof to handle multiple @solana/web3.js versions\n if (isLegacyTx(tx)) {\n tx.partialSign(kp);\n tx.recentBlockhash = blockhash;\n tx.lastValidBlockHeight = lastValidBlockHeight;\n tx.feePayer = kp.publicKey;\n }\n else {\n tx.sign([kp]);\n tx.message.recentBlockhash = blockhash;\n }\n // 3️⃣ Optional priority‑fee instruction\n const rawUnsigned = tx.serialize({ requireAllSignatures: false });\n const microLamports = await fetchPriorityFee(connection.rpcEndpoint, rawUnsigned);\n if (microLamports != null) {\n // Use duck typing instead of instanceof to handle multiple @solana/web3.js versions\n if (isLegacyTx(tx)) {\n tx.instructions.unshift(ComputeBudgetProgram.setComputeUnitPrice({ microLamports }));\n tx.partialSign(kp);\n }\n else {\n // For pre-signed (attestation) transactions, we can't rebuild — skip priority fee\n if (!sol.signedTransaction) {\n // Rebuild the transaction with the new priority fee\n const roundTwo = await buildSetDocumentsTransaction(connection, sol.txArgs[0].idl, anchorProvider, kp.publicKey, {\n app_id,\n documents: sol.txArgs[0].setDocumentData,\n delete_paths: sol.txArgs[0].deletePaths,\n txData: sol.txArgs[0].txData\n }, deduped, sol.lutKey, [ComputeBudgetProgram.setComputeUnitPrice({ microLamports }), ...sol.preInstructions], false, sol.additionalLutAddresses);\n tx = roundTwo.tx;\n blockhash = roundTwo.blockhash;\n lastValidBlockHeight = roundTwo.lastValidBlockHeight;\n tx.sign([kp]);\n tx.message.recentBlockhash = blockhash;\n }\n }\n }\n if ((opts === null || opts === void 0 ? void 0 : opts.shouldSubmitTx) === false) {\n return { signedTransaction: tx, blockNumber: 0, gasUsed: '0', data: '' };\n }\n // Submit and confirm using shared helper\n const { signature, txInfo } = await this.submitAndConfirmTransaction(tx, connection, { fetchTxInfo: true });\n return {\n transactionSignature: signature,\n blockNumber: (_a = txInfo === null || txInfo === void 0 ? void 0 : txInfo.slot) !== null && _a !== void 0 ? _a : 0,\n gasUsed: (_c = (_b = txInfo === null || txInfo === void 0 ? void 0 : txInfo.meta) === null || _b === void 0 ? void 0 : _b.fee.toString()) !== null && _c !== void 0 ? _c : '0',\n data: txInfo === null || txInfo === void 0 ? void 0 : txInfo.meta,\n };\n }\n /* ----------------------------------------------------------- */\n async getNativeMethods() {\n return { keypair: this.keypair };\n }\n}\n//# sourceMappingURL=solana-keypair-provider.js.map","import * as crypto from 'crypto';\n/**\n * Server-side OffchainAuthProvider wrapper for the poofnet environment.\n *\n * For signMessage, this generates a mock signature using SHA-256 hashing.\n * This is used for offchain transaction signing.\n */\nexport class OffchainAuthProvider {\n constructor(wrappedProvider) {\n this.wrappedProvider = wrappedProvider;\n }\n async login() {\n return this.wrappedProvider.login();\n }\n async logout() {\n return this.wrappedProvider.logout();\n }\n async restoreSession() {\n return this.wrappedProvider.restoreSession();\n }\n async getNativeMethods() {\n return this.wrappedProvider.getNativeMethods();\n }\n async signMessage(message) {\n // Delegate to wrapped provider for real signing\n return this.wrappedProvider.signMessage(message);\n }\n async signMessageMock(message) {\n // Generate mock signature (SHA-256 hash of message, base64 encoded)\n // This is used for offchain transaction signing\n const hash = crypto.createHash('sha256').update(message).digest('base64');\n return hash;\n }\n async signTransaction(transaction) {\n throw new Error('Poofnet does not support real Solana transactions. Deploy your project to mainnet to use this feature.');\n }\n /**\n * Sign and submit transaction - not supported in poofnet environment.\n * See the real providers (PhantomWalletProvider, PrivyWalletProvider, SolanaKeypairProvider)\n * for the full implementation with blockhash handling and feePayer support.\n */\n async signAndSubmitTransaction(_transaction, _feePayer) {\n throw new Error('Poofnet does not support real Solana transactions. Deploy your project to mainnet to use this feature.');\n }\n async runTransaction(evmTransactionData, solTransactionData, options) {\n return this.wrappedProvider.runTransaction(evmTransactionData, solTransactionData, options);\n }\n}\n//# sourceMappingURL=offchain-auth-provider.js.map","import { getConfig } from '@pooflabs/core';\nimport { SolanaKeypairProvider } from './providers/solana-keypair-provider';\nimport { OffchainAuthProvider } from './providers/offchain-auth-provider';\nlet currentAuthProvider = null;\nexport const SOLANA_DEVNET_RPC_URL = \"https://idelle-8nxsep-fast-devnet.helius-rpc.com\";\nexport const SOLANA_MAINNET_RPC_URL = \"https://celestia-cegncv-fast-mainnet.helius-rpc.com\";\nexport const SURFNET_RPC_URL = \"https://surfpool.fly.dev\";\nexport async function getAuthProvider() {\n var _a;\n const config = await getConfig();\n if (currentAuthProvider) {\n // If provider exists but chain is \"offchain\" and it's not already wrapped, rewrap it\n if (config.chain === \"offchain\" && !(currentAuthProvider instanceof OffchainAuthProvider)) {\n currentAuthProvider = new OffchainAuthProvider(currentAuthProvider);\n }\n return currentAuthProvider;\n }\n currentAuthProvider = await matchAuthProvider((_a = config.rpcUrl) !== null && _a !== void 0 ? _a : null);\n // Wrap with OffchainAuthProvider for offchain chain\n if (config.chain === \"offchain\") {\n currentAuthProvider = new OffchainAuthProvider(currentAuthProvider);\n }\n return currentAuthProvider;\n}\nexport async function matchAuthProvider(rpcUrl) {\n return new SolanaKeypairProvider(rpcUrl);\n}\n//# sourceMappingURL=index.js.map","import { getAuthProvider } from './auth';\nimport { init as configInit } from '@pooflabs/core';\nlet authProviderInstance = null;\nconst SOLANA_DEVNET_RPC_URL = \"https://api.devnet.solana.com\";\nconst SOLANA_MAINNET_RPC_URL = \"https://celestia-cegncv-fast-mainnet.helius-rpc.com\";\nconst SURFNET_RPC_URL = \"https://surfpool.fly.dev\";\nexport async function init(newConfig) {\n // Initialize config first so getAuthProvider can access it\n // Server-side skips backend init since it already has all needed config\n await configInit(Object.assign(Object.assign({}, newConfig), { isServer: true, skipBackendInit: true }));\n // Get the auth provider (which will wrap it if chain is \"offchain\")\n authProviderInstance = await getAuthProvider();\n // Update config with the wrapped provider\n await configInit(Object.assign(Object.assign({}, newConfig), { authProvider: authProviderInstance, isServer: true, skipBackendInit: true }));\n}\n//# sourceMappingURL=global.js.map","import { getIdToken as getIdTokenCore } from '@pooflabs/core';\n// Wrapper for getIdToken - passes isServer=true for server-side usage\nexport async function getIdToken() {\n return getIdTokenCore(true);\n}\n//# sourceMappingURL=utils.js.map","var __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport { Keypair } from '@solana/web3.js';\nimport bs58 from 'bs58';\nimport { getConfig, get as coreGet, getMany as coreGetMany, set as coreSet, setMany as coreSetMany, setFile as coreSetFile, getFiles as coreGetFiles, runQuery as coreRunQuery, runQueryMany as coreRunQueryMany, runExpression as coreRunExpression, runExpressionMany as coreRunExpressionMany, count as coreCount, aggregate as coreAggregate, ServerSessionManager, } from '@pooflabs/core';\nimport { SolanaKeypairProvider } from './auth/providers/solana-keypair-provider';\nimport { OffchainAuthProvider } from './auth/providers/offchain-auth-provider';\n/* ------------------------------------------------------------------ */\n/* Keypair parsing */\n/* ------------------------------------------------------------------ */\nfunction parseKeypair(secret) {\n const trimmed = secret.trim();\n try {\n const secretKey = trimmed.startsWith('[')\n ? Uint8Array.from(JSON.parse(trimmed))\n : bs58.decode(trimmed);\n return Keypair.fromSecretKey(secretKey);\n }\n catch (_a) {\n throw new Error('Invalid keypair: must be base58 or JSON array.');\n }\n}\n/* ------------------------------------------------------------------ */\n/* WalletClient */\n/* ------------------------------------------------------------------ */\nexport class WalletClient {\n constructor(provider, sessionManager, address) {\n this.provider = provider;\n this.sessionManager = sessionManager;\n this.address = address;\n }\n /* ---- Auth override helpers ---- */\n buildOverrides() {\n return {\n authProvider: this.provider,\n _getAuthHeaders: async () => {\n const s = await this.sessionManager.getSession();\n return { Authorization: `Bearer ${s.idToken}` };\n },\n _clearAuth: async () => {\n this.sessionManager.clearSession();\n },\n _walletAddress: this.address,\n };\n }\n /** Strip Authorization from caller headers to prevent overriding wallet token */\n sanitizeHeaders(headers) {\n if (!headers)\n return undefined;\n const _a = headers, { Authorization, authorization } = _a, rest = __rest(_a, [\"Authorization\", \"authorization\"]);\n return Object.keys(rest).length > 0 ? rest : undefined;\n }\n mergeSetOverrides(opts) {\n var _a;\n const ovr = this.buildOverrides();\n return Object.assign(Object.assign({}, opts), { _overrides: Object.assign(Object.assign({}, opts === null || opts === void 0 ? void 0 : opts._overrides), { headers: this.sanitizeHeaders((_a = opts === null || opts === void 0 ? void 0 : opts._overrides) === null || _a === void 0 ? void 0 : _a.headers), authProvider: ovr.authProvider, _getAuthHeaders: ovr._getAuthHeaders, _clearAuth: ovr._clearAuth }) });\n }\n mergeReadOverrides(existing) {\n const ovr = this.buildOverrides();\n return Object.assign(Object.assign({}, existing), { headers: this.sanitizeHeaders(existing === null || existing === void 0 ? void 0 : existing.headers), _getAuthHeaders: ovr._getAuthHeaders, _clearAuth: ovr._clearAuth, _walletAddress: ovr._walletAddress });\n }\n /* ---- Data operations ---- */\n async set(path, document, options) {\n return coreSet(path, document, this.mergeSetOverrides(options));\n }\n async setMany(many, options) {\n return coreSetMany(many, this.mergeSetOverrides(options));\n }\n async setFile(path, file, options) {\n return coreSetFile(path, file, { _overrides: this.mergeReadOverrides(options === null || options === void 0 ? void 0 : options._overrides) });\n }\n async get(path, opts) {\n return coreGet(path, Object.assign(Object.assign({}, opts), { _overrides: this.mergeReadOverrides(opts === null || opts === void 0 ? void 0 : opts._overrides) }));\n }\n async getMany(paths, opts) {\n return coreGetMany(paths, Object.assign(Object.assign({}, opts), { _overrides: this.mergeReadOverrides() }));\n }\n async getFiles(path, options) {\n return coreGetFiles(path, { _overrides: this.mergeReadOverrides(options === null || options === void 0 ? void 0 : options._overrides) });\n }\n async runQuery(absolutePath, queryName, queryArgs, opts) {\n return coreRunQuery(absolutePath, queryName, queryArgs, Object.assign(Object.assign({}, opts), { _overrides: this.mergeReadOverrides(opts === null || opts === void 0 ? void 0 : opts._overrides) }));\n }\n async runQueryMany(many, opts) {\n return coreRunQueryMany(many, Object.assign(Object.assign({}, opts), { _overrides: this.mergeReadOverrides(opts === null || opts === void 0 ? void 0 : opts._overrides) }));\n }\n async runExpression(expression, queryArgs, options) {\n return coreRunExpression(expression, queryArgs, Object.assign(Object.assign({}, options), { _overrides: this.mergeReadOverrides(options === null || options === void 0 ? void 0 : options._overrides) }));\n }\n async runExpressionMany(many) {\n const ovr = this.mergeReadOverrides();\n return coreRunExpressionMany(many.map(m => (Object.assign(Object.assign({}, m), { _overrides: ovr }))));\n }\n async count(path, opts = {}) {\n return coreCount(path, Object.assign(Object.assign({}, opts), { _overrides: this.mergeReadOverrides(opts === null || opts === void 0 ? void 0 : opts._overrides) }));\n }\n async aggregate(path, operation, opts = {}) {\n return coreAggregate(path, operation, Object.assign(Object.assign({}, opts), { _overrides: this.mergeReadOverrides(opts === null || opts === void 0 ? void 0 : opts._overrides) }));\n }\n /* ---- Signing operations (use provider directly) ---- */\n async signMessage(message) {\n return this.provider.signMessage(message);\n }\n async signTransaction(transaction) {\n return this.provider.signTransaction(transaction);\n }\n async signAndSubmitTransaction(transaction, feePayer) {\n return this.provider.signAndSubmitTransaction(transaction, feePayer);\n }\n}\n/**\n * Create a self-contained wallet client bound to a specific keypair.\n * Each client has its own auth session — no global state is mutated.\n *\n * @example\n * ```ts\n * const vault = await createWalletClient({ keypair: process.env.VAULT_KEY });\n * await vault.set('markets/123', data);\n * ```\n */\nexport async function createWalletClient(opts) {\n var _a;\n const kp = parseKeypair(opts.keypair);\n const config = await getConfig();\n let provider = new SolanaKeypairProvider((_a = config.rpcUrl) !== null && _a !== void 0 ? _a : null, kp);\n if (config.chain === 'offchain') {\n provider = new OffchainAuthProvider(provider);\n }\n const sessionManager = ServerSessionManager.forKeypair(kp);\n // Eagerly authenticate so failures surface immediately\n await sessionManager.getSession();\n return new WalletClient(provider, sessionManager, kp.publicKey.toBase58());\n}\n//# sourceMappingURL=wallet-client.js.map"],"names":["configInit","getIdTokenCore","this","coreSet","coreSetMany","coreSetFile","coreGet","coreGetMany","coreGetFiles","coreRunQuery","coreRunQueryMany","coreRunExpression","coreRunExpressionMany","coreCount","coreAggregate"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pooflabs/server",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.35",
|
|
4
4
|
"description": "Server SDK for Poof API - Node.js/Backend implementation",
|
|
5
5
|
"main": "./dist/index.js",
|
|
6
6
|
"module": "./dist/index.mjs",
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
}
|
|
14
14
|
},
|
|
15
15
|
"scripts": {
|
|
16
|
-
"build": "rm -rf ./dist && rollup -c && tsc -p tsconfig.build.json --emitDeclarationOnly --declarationDir dist",
|
|
16
|
+
"build": "rm -rf ./dist ./.rollup-tmp && tsc -p tsconfig.build.json --outDir .rollup-tmp --declarationDir .rollup-tmp --emitDeclarationOnly false && rollup -c && tsc -p tsconfig.build.json --emitDeclarationOnly --declarationDir dist && rm -rf ./.rollup-tmp",
|
|
17
17
|
"watch": "rollup -c -w",
|
|
18
18
|
"prepare": "npm run build"
|
|
19
19
|
},
|
|
@@ -46,7 +46,7 @@
|
|
|
46
46
|
},
|
|
47
47
|
"dependencies": {
|
|
48
48
|
"@coral-xyz/anchor": "0.31.1",
|
|
49
|
-
"@pooflabs/core": "0.0.
|
|
49
|
+
"@pooflabs/core": "0.0.46",
|
|
50
50
|
"@solana/spl-token": "0.4.14",
|
|
51
51
|
"@solana/web3.js": "1.98.4",
|
|
52
52
|
"axios": "1.15.2",
|