openclaw-arcade-plugin 0.2.34 → 0.2.37
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 +18 -1
- package/dist/index.js.map +2 -2
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -3,7 +3,7 @@ import debug from "debug";
|
|
|
3
3
|
var log = debug("openclaw:plugin:arcade");
|
|
4
4
|
var isInitialized = false;
|
|
5
5
|
function register(api) {
|
|
6
|
-
const version = "0.2.
|
|
6
|
+
const version = "0.2.37";
|
|
7
7
|
if (isInitialized) return;
|
|
8
8
|
isInitialized = true;
|
|
9
9
|
const config = api.pluginConfig || {};
|
|
@@ -11,6 +11,14 @@ function register(api) {
|
|
|
11
11
|
const defaultUrl = net === "testnet" ? "https://testnet.arc.gorillapool.io" : "https://arc.gorillapool.io";
|
|
12
12
|
const url = (config.arcadeUrl || defaultUrl).replace(/\/$/, "");
|
|
13
13
|
api.logger.info(`[arcade] Initializing Arcade Plugin v${version}`);
|
|
14
|
+
api.registerOnboarding({
|
|
15
|
+
id: "arcade-setup",
|
|
16
|
+
title: "Arcade Setup",
|
|
17
|
+
description: "Configuring transaction broadcasting and lifecycle tracking",
|
|
18
|
+
handler: async () => {
|
|
19
|
+
return { success: true, message: "Arcade broadcaster ready." };
|
|
20
|
+
}
|
|
21
|
+
});
|
|
14
22
|
api.registerTool({
|
|
15
23
|
name: "arcade",
|
|
16
24
|
description: "Submit and track BSV transactions with full lifecycle visibility",
|
|
@@ -132,6 +140,15 @@ Network: ${net}` }] };
|
|
|
132
140
|
});
|
|
133
141
|
api.registerCli(({ program }) => {
|
|
134
142
|
const arc = program.command("arcade").description("BSV transaction tracking commands");
|
|
143
|
+
arc.addHelpText("after", `
|
|
144
|
+
\u{1F3AE} Arcade Examples:
|
|
145
|
+
$ openclaw arcade status <txid> # Check status of a broadcasted TX
|
|
146
|
+
$ openclaw arcade broadcast <hex> # Send raw transaction to the network
|
|
147
|
+
$ openclaw arcade config # Show active Arcade URL and network
|
|
148
|
+
|
|
149
|
+
\u{1F4A1} Tip: Arcade provides real-time lifecycle tracking for your transactions,
|
|
150
|
+
from mempool acceptance to block confirmation.
|
|
151
|
+
`);
|
|
135
152
|
arc.command("status <txid>").description("Check broadcast status").action(async (txid) => {
|
|
136
153
|
const res = await fetch(`${url}/v1/tx/${txid}`);
|
|
137
154
|
const data = await res.json();
|
package/dist/index.js.map
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../index.ts"],
|
|
4
|
-
"sourcesContent": ["import path from \"node:path\";\nimport os from \"node:os\";\nimport debug from 'debug';\n\nconst log = debug('openclaw:plugin:arcade');\n\nlet isInitialized = false;\n\n// Shared configuration resolved at module level or startup\n// to avoid combining process.env access with fetch in the same scope.\nlet arcadeUrl: string = '';\nlet network: string = '';\n\n/**\n * OpenClaw Arcade Plugin\n * Transaction broadcasting and lifecycle tracking via BSV Arcade.\n */\nexport function register(api: any) {\n const version = \"0.2.
|
|
5
|
-
"mappings": "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
|
|
4
|
+
"sourcesContent": ["import path from \"node:path\";\nimport os from \"node:os\";\nimport debug from 'debug';\n\nconst log = debug('openclaw:plugin:arcade');\n\nlet isInitialized = false;\n\n// Shared configuration resolved at module level or startup\n// to avoid combining process.env access with fetch in the same scope.\nlet arcadeUrl: string = '';\nlet network: string = '';\n\n/**\n * OpenClaw Arcade Plugin\n * Transaction broadcasting and lifecycle tracking via BSV Arcade.\n */\nexport function register(api: any) {\n const version = \"0.2.37\";\n if (isInitialized) return;\n isInitialized = true;\n\n // RESOLUTION LOGIC AT THE TOP\n const config = api.pluginConfig || {};\n const net = config.network || 'mainnet';\n const defaultUrl = net === 'testnet' \n ? 'https://testnet.arc.gorillapool.io' \n : 'https://arc.gorillapool.io';\n const url = (config.arcadeUrl || defaultUrl).replace(/\\/$/, '');\n\n api.logger.info(`[arcade] Initializing Arcade Plugin v${version}`);\n\n // Onboarding\n api.registerOnboarding({\n id: \"arcade-setup\",\n title: \"Arcade Setup\",\n description: \"Configuring transaction broadcasting and lifecycle tracking\",\n handler: async () => {\n // Arcade is a stateless broadcaster, no wallet check needed.\n return { success: true, message: \"Arcade broadcaster ready.\" };\n }\n });\n \n // Tool\n api.registerTool({\n name: \"arcade\",\n description: \"Submit and track BSV transactions with full lifecycle visibility\",\n parameters: {\n type: \"object\",\n properties: {\n action: {\n type: \"string\",\n enum: [\"broadcast\", \"status\", \"proof\", \"config\"],\n description: \"Action to perform\"\n },\n txhex: {\n type: \"string\",\n description: \"Hex-encoded raw transaction to broadcast\"\n },\n txid: {\n type: \"string\",\n description: \"Transaction ID to track or fetch proof for\"\n }\n },\n required: [\"action\"]\n },\n async execute(_id: string, params: any) {\n log('Executing tool action: %s with params: %O', params.action, params);\n \n try {\n const { action, txhex, txid } = params;\n\n switch (action) {\n case \"broadcast\":\n if (!txhex) throw new Error(\"txhex is required for broadcast\");\n log('Broadcasting transaction: %s...', txhex.slice(0, 64));\n const bResp = await fetch(`${url}/v1/tx`, {\n method: 'POST',\n headers: { 'Content-Type': 'application/json' },\n body: JSON.stringify({ rawTx: txhex })\n });\n const bData: any = await bResp.json();\n if (!bResp.ok) {\n log('Broadcast failed: %O', bData);\n throw new Error(`Broadcast failed: ${JSON.stringify(bData)}`);\n }\n log('Broadcast successful, TXID: %s', bData.txid);\n return { content: [{ type: \"text\", text: `Transaction broadcasted! TXID: ${bData.txid}\\nStatus: ${bData.txStatus}` }] };\n\n case \"status\":\n if (!txid) throw new Error(\"txid is required for status check\");\n log('Checking status for TXID: %s', txid);\n const sResp = await fetch(`${url}/v1/tx/${txid}`);\n const sData: any = await sResp.json();\n if (!sResp.ok) {\n log('Status check failed: %O', sData);\n throw new Error(`Status check failed: ${JSON.stringify(sData)}`);\n }\n log('Status: %s, Block: %s', sData.txStatus, sData.blockHeight);\n return { content: [{ type: \"text\", text: `Transaction ${txid}:\\nStatus: ${sData.txStatus}\\nBlock: ${sData.blockHeight || 'Pending'}` }] };\n\n case \"proof\":\n if (!txid) throw new Error(\"txid is required for proof retrieval\");\n log('Fetching proof for TXID: %s', txid);\n const pResp = await fetch(`${url}/v1/tx/${txid}/proof`);\n if (!pResp.ok) {\n log('Proof retrieval failed: %d', pResp.status);\n throw new Error(`Proof retrieval failed: ${pResp.status}`);\n }\n const pData = await pResp.arrayBuffer();\n const base64Proof = Buffer.from(pData).toString('base64');\n log('Proof retrieved, length: %d bytes', pData.byteLength);\n return { content: [{ type: \"text\", text: `Merkle Proof (Base64): ${base64Proof}` }] };\n case \"config\":\n return { content: [{ type: \"text\", text: `Arcade Configuration:\\nURL: ${url}\\nNetwork: ${net}` }] };\n\n default:\n throw new Error(`Unknown action: ${action}`);\n }\n } catch (error: any) {\n return {\n content: [{\n type: \"text\",\n text: `Error: ${error.message || String(error)}`\n }]\n };\n }\n }\n });\n\n // Command\n api.registerCommand({\n name: \"arcade\",\n description: \"BSV transaction tracking commands\",\n acceptsArgs: true,\n handler: async (ctx: any) => {\n try {\n api.logger?.info?.(`[openclaw-arcade] Command received with args: ${JSON.stringify(ctx.args)} (type: ${typeof ctx.args})`);\n const args = Array.isArray(ctx.args) ? ctx.args : (typeof ctx.args === 'string' ? ctx.args.split(' ').filter(Boolean) : []);\n const action = args[0] || 'config';\n const params: any = { action };\n \n if (action === 'help') {\n return { text: `\uD83D\uDEE1\uFE0F **Arcade Help**\\n\\n**Subcommands**:\\n- \\`status <txid>\\`: Check broadcast status\\n- \\`broadcast <hex>\\`: Send raw transaction\\n- \\`proof <txid>\\`: Fetch Merkle Proof\\n- \\`config\\`: Show active URL` };\n }\n\n if (action === 'status' && args[1]) params.txid = args[1];\n if (action === 'broadcast' && args[1]) params.txhex = args[1];\n\n if (action === 'status' && params.txid) {\n const res = await fetch(`${url}/v1/tx/${params.txid}`);\n const data: any = await res.json();\n return { text: `\uD83D\uDEE1\uFE0F **Transaction Status**\\n**TXID**: ${params.txid}\\n**Status**: ${data.txStatus || 'Unknown'}` };\n }\n\n return { text: `Command '${action}' executed.` };\n } catch (error: any) {\n return { text: `\u274C Arcade Error: ${error.message}` };\n }\n }\n });\n\n // CLI\n api.registerCli(({ program }: any) => {\n const arc = program.command(\"arcade\").description(\"BSV transaction tracking commands\");\n\n arc.addHelpText('after', `\n\uD83C\uDFAE Arcade Examples:\n $ openclaw arcade status <txid> # Check status of a broadcasted TX\n $ openclaw arcade broadcast <hex> # Send raw transaction to the network\n $ openclaw arcade config # Show active Arcade URL and network\n\n\uD83D\uDCA1 Tip: Arcade provides real-time lifecycle tracking for your transactions, \n from mempool acceptance to block confirmation.\n`);\n\n arc.command(\"status <txid>\").description(\"Check broadcast status\").action(async (txid: string) => {\n const res = await fetch(`${url}/v1/tx/${txid}`);\n const data: any = await res.json();\n console.log(JSON.stringify(data, null, 2));\n });\n\n arc.command(\"broadcast <hex>\").description(\"Send raw transaction\").action(async (txhex: string) => {\n const res = await fetch(`${url}/v1/tx`, {\n method: 'POST',\n headers: { 'Content-Type': 'application/json' },\n body: JSON.stringify({ rawTx: txhex })\n });\n const data: any = await res.json();\n console.log(JSON.stringify(data, null, 2));\n });\n\n arc.command(\"config\").description(\"Show current Arcade configuration\").action(() => {\n console.log(JSON.stringify({ arcadeUrl: url, network: net }, null, 2));\n });\n }, { commands: [\"arcade\"] });\n}\n\nexport const plugin = {\n id: \"openclaw-arcade-plugin\",\n name: \"BSV Arcade Broadcaster\",\n description: \"Submit and track BSV transactions with full lifecycle visibility\",\n activate: register,\n register: register\n};\n\nexport default register;\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|