@aibtc/mcp-server 1.19.2 → 1.21.0
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/README.md +64 -3
- package/dist/index.js +55 -17
- package/dist/index.js.map +1 -1
- package/dist/services/bns.service.d.ts.map +1 -1
- package/dist/services/bns.service.js +34 -2
- package/dist/services/bns.service.js.map +1 -1
- package/dist/services/nft.service.d.ts.map +1 -1
- package/dist/services/nft.service.js +13 -0
- package/dist/services/nft.service.js.map +1 -1
- package/dist/services/sbtc.service.d.ts.map +1 -1
- package/dist/services/sbtc.service.js +4 -0
- package/dist/services/sbtc.service.js.map +1 -1
- package/dist/services/stacking.service.d.ts.map +1 -1
- package/dist/services/stacking.service.js +13 -0
- package/dist/services/stacking.service.js.map +1 -1
- package/dist/services/tokens.service.d.ts.map +1 -1
- package/dist/services/tokens.service.js +11 -0
- package/dist/services/tokens.service.js.map +1 -1
- package/dist/tools/contract.tools.d.ts.map +1 -1
- package/dist/tools/contract.tools.js +90 -2
- package/dist/tools/contract.tools.js.map +1 -1
- package/dist/tools/pillar-direct.tools.d.ts.map +1 -1
- package/dist/tools/pillar-direct.tools.js +316 -42
- package/dist/tools/pillar-direct.tools.js.map +1 -1
- package/dist/tools/pillar.tools.d.ts.map +1 -1
- package/dist/tools/pillar.tools.js +23 -26
- package/dist/tools/pillar.tools.js.map +1 -1
- package/dist/transactions/post-conditions.d.ts +5 -3
- package/dist/transactions/post-conditions.d.ts.map +1 -1
- package/dist/transactions/post-conditions.js +6 -2
- package/dist/transactions/post-conditions.js.map +1 -1
- package/dist/wallet.d.ts +2 -1
- package/dist/wallet.d.ts.map +1 -1
- package/dist/wallet.js +2 -0
- package/dist/wallet.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -21,7 +21,7 @@ Bitcoin-native MCP server for AI agents: BTC/STX wallets, DeFi yield, sBTC peg,
|
|
|
21
21
|
|
|
22
22
|
## Quick Start
|
|
23
23
|
|
|
24
|
-
###
|
|
24
|
+
### Claude Code (Terminal)
|
|
25
25
|
|
|
26
26
|
```bash
|
|
27
27
|
npx @aibtc/mcp-server@latest --install
|
|
@@ -29,13 +29,74 @@ npx @aibtc/mcp-server@latest --install
|
|
|
29
29
|
|
|
30
30
|
That's it! This automatically configures Claude Code. Restart your terminal and start chatting.
|
|
31
31
|
|
|
32
|
-
|
|
32
|
+
### Claude Desktop (App)
|
|
33
|
+
|
|
34
|
+
```bash
|
|
35
|
+
npx @aibtc/mcp-server@latest --install --desktop
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
This detects your OS and writes to the correct Claude Desktop config file:
|
|
39
|
+
|
|
40
|
+
| OS | Config Path |
|
|
41
|
+
|----|-------------|
|
|
42
|
+
| macOS | `~/Library/Application Support/Claude/claude_desktop_config.json` |
|
|
43
|
+
| Linux | `~/.config/Claude/claude_desktop_config.json` |
|
|
44
|
+
| Windows | `%APPDATA%/Claude/claude_desktop_config.json` |
|
|
45
|
+
|
|
46
|
+
Restart Claude Desktop after installing.
|
|
47
|
+
|
|
48
|
+
### Testnet Mode
|
|
49
|
+
|
|
50
|
+
Add `--testnet` to either command:
|
|
51
|
+
|
|
33
52
|
```bash
|
|
53
|
+
# Claude Code on testnet
|
|
34
54
|
npx @aibtc/mcp-server@latest --install --testnet
|
|
55
|
+
|
|
56
|
+
# Claude Desktop on testnet
|
|
57
|
+
npx @aibtc/mcp-server@latest --install --desktop --testnet
|
|
35
58
|
```
|
|
36
59
|
|
|
37
60
|
> **Why npx?** Using `npx @aibtc/mcp-server@latest` ensures you always get the newest version automatically. Global installs (`npm install -g`) won't auto-update.
|
|
38
61
|
|
|
62
|
+
### Manual Configuration
|
|
63
|
+
|
|
64
|
+
If you prefer to configure manually, add the following to your config file.
|
|
65
|
+
|
|
66
|
+
**Claude Code** (`~/.claude.json`):
|
|
67
|
+
|
|
68
|
+
```json
|
|
69
|
+
{
|
|
70
|
+
"mcpServers": {
|
|
71
|
+
"aibtc": {
|
|
72
|
+
"command": "npx",
|
|
73
|
+
"args": ["@aibtc/mcp-server@latest"],
|
|
74
|
+
"env": {
|
|
75
|
+
"NETWORK": "mainnet"
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
**Claude Desktop** (`claude_desktop_config.json` -- see path table above):
|
|
83
|
+
|
|
84
|
+
```json
|
|
85
|
+
{
|
|
86
|
+
"mcpServers": {
|
|
87
|
+
"aibtc": {
|
|
88
|
+
"command": "npx",
|
|
89
|
+
"args": ["-y", "@aibtc/mcp-server@latest"],
|
|
90
|
+
"env": {
|
|
91
|
+
"NETWORK": "mainnet"
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
> **Note:** Claude Desktop requires the `-y` flag in args so npx doesn't prompt for confirmation.
|
|
99
|
+
|
|
39
100
|
## Giving Claude a Wallet
|
|
40
101
|
|
|
41
102
|
When you first use @aibtc/mcp-server, Claude doesn't have a wallet. Here's the smooth onboarding flow:
|
|
@@ -408,7 +469,7 @@ You ←→ Claude ←→ aibtc-mcp-server
|
|
|
408
469
|
|
|
409
470
|
## Advanced: Pre-configured Mnemonic
|
|
410
471
|
|
|
411
|
-
For automated setups where Claude needs immediate wallet access,
|
|
472
|
+
For automated setups where Claude needs immediate wallet access, add the `CLIENT_MNEMONIC` environment variable to your MCP server config (in `~/.claude.json` for Claude Code, or `claude_desktop_config.json` for Claude Desktop):
|
|
412
473
|
|
|
413
474
|
```json
|
|
414
475
|
{
|
package/dist/index.js
CHANGED
|
@@ -13,45 +13,81 @@ import { initializeStorage } from "./utils/storage.js";
|
|
|
13
13
|
const require = createRequire(import.meta.url);
|
|
14
14
|
const packageJson = require("../package.json");
|
|
15
15
|
// =============================================================================
|
|
16
|
-
// AUTO-INSTALL FOR CLAUDE CODE
|
|
16
|
+
// AUTO-INSTALL FOR CLAUDE CODE AND CLAUDE DESKTOP
|
|
17
17
|
// =============================================================================
|
|
18
|
-
|
|
19
|
-
const
|
|
20
|
-
const
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
18
|
+
function getClaudeDesktopConfigPath() {
|
|
19
|
+
const platform = process.platform;
|
|
20
|
+
const home = os.homedir();
|
|
21
|
+
if (platform === "darwin") {
|
|
22
|
+
return path.join(home, "Library", "Application Support", "Claude", "claude_desktop_config.json");
|
|
23
|
+
}
|
|
24
|
+
else if (platform === "win32") {
|
|
25
|
+
const appData = process.env.APPDATA || path.join(home, "AppData", "Roaming");
|
|
26
|
+
return path.join(appData, "Claude", "claude_desktop_config.json");
|
|
27
|
+
}
|
|
28
|
+
else {
|
|
29
|
+
// Linux and other Unix-like systems
|
|
30
|
+
return path.join(home, ".config", "Claude", "claude_desktop_config.json");
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
async function readJsonConfig(filePath) {
|
|
24
34
|
try {
|
|
25
|
-
const content = await fs.readFile(
|
|
26
|
-
|
|
35
|
+
const content = await fs.readFile(filePath, "utf8");
|
|
36
|
+
return JSON.parse(content);
|
|
27
37
|
}
|
|
28
38
|
catch {
|
|
29
|
-
// File doesn't exist, start fresh
|
|
39
|
+
// File doesn't exist or isn't valid JSON, start fresh
|
|
40
|
+
return {};
|
|
30
41
|
}
|
|
31
|
-
|
|
42
|
+
}
|
|
43
|
+
async function writeJsonConfig(filePath, config) {
|
|
44
|
+
// Ensure the parent directory exists
|
|
45
|
+
const dir = path.dirname(filePath);
|
|
46
|
+
await fs.mkdir(dir, { recursive: true });
|
|
47
|
+
await fs.writeFile(filePath, JSON.stringify(config, null, 2));
|
|
48
|
+
}
|
|
49
|
+
async function installMcpServer(options) {
|
|
50
|
+
const { configPath, label, extraArgs = [], restartMessage } = options;
|
|
51
|
+
const network = process.argv.includes("--testnet") ? "testnet" : "mainnet";
|
|
52
|
+
console.log(`🔧 Installing @aibtc/mcp-server to ${label}...\n`);
|
|
53
|
+
const config = await readJsonConfig(configPath);
|
|
32
54
|
if (!config.mcpServers) {
|
|
33
55
|
config.mcpServers = {};
|
|
34
56
|
}
|
|
35
57
|
config.mcpServers["aibtc"] = {
|
|
36
58
|
command: "npx",
|
|
37
|
-
args: ["@aibtc/mcp-server@latest"],
|
|
59
|
+
args: [...extraArgs, "@aibtc/mcp-server@latest"],
|
|
38
60
|
env: {
|
|
39
61
|
NETWORK: network,
|
|
40
62
|
},
|
|
41
63
|
};
|
|
42
|
-
|
|
43
|
-
await fs.writeFile(claudeConfigPath, JSON.stringify(config, null, 2));
|
|
64
|
+
await writeJsonConfig(configPath, config);
|
|
44
65
|
console.log("✅ Successfully installed!\n");
|
|
45
|
-
console.log(` Config: ${
|
|
66
|
+
console.log(` Config: ${configPath}`);
|
|
46
67
|
console.log(` Network: ${network}`);
|
|
47
68
|
console.log("\n📋 Next steps:");
|
|
48
|
-
console.log(
|
|
69
|
+
console.log(` 1. ${restartMessage}`);
|
|
49
70
|
console.log(" 2. Ask Claude: \"What's your wallet address?\"");
|
|
50
71
|
console.log(" 3. Claude will guide you through wallet setup\n");
|
|
51
72
|
if (network === "testnet") {
|
|
52
73
|
console.log("💡 Tip: Get testnet STX at https://explorer.hiro.so/sandbox/faucet?chain=testnet\n");
|
|
53
74
|
}
|
|
54
75
|
}
|
|
76
|
+
async function installToClaudeCode() {
|
|
77
|
+
return installMcpServer({
|
|
78
|
+
configPath: path.join(os.homedir(), ".claude.json"),
|
|
79
|
+
label: "Claude Code",
|
|
80
|
+
restartMessage: "Restart Claude Code (close and reopen terminal)",
|
|
81
|
+
});
|
|
82
|
+
}
|
|
83
|
+
async function installToClaudeDesktop() {
|
|
84
|
+
return installMcpServer({
|
|
85
|
+
configPath: getClaudeDesktopConfigPath(),
|
|
86
|
+
label: "Claude Desktop",
|
|
87
|
+
extraArgs: ["-y"],
|
|
88
|
+
restartMessage: "Restart Claude Desktop (quit and reopen the app)",
|
|
89
|
+
});
|
|
90
|
+
}
|
|
55
91
|
// =============================================================================
|
|
56
92
|
// YIELD HUNTER DAEMON
|
|
57
93
|
// =============================================================================
|
|
@@ -78,7 +114,9 @@ if (process.argv[2] === "yield-hunter") {
|
|
|
78
114
|
}
|
|
79
115
|
// Check for --install flag
|
|
80
116
|
else if (process.argv.includes("--install") || process.argv.includes("install")) {
|
|
81
|
-
|
|
117
|
+
const isDesktop = process.argv.includes("--desktop");
|
|
118
|
+
const installFn = isDesktop ? installToClaudeDesktop : installToClaudeCode;
|
|
119
|
+
installFn()
|
|
82
120
|
.then(() => process.exit(0))
|
|
83
121
|
.catch((error) => {
|
|
84
122
|
console.error("❌ Installation failed:", redactSensitive(error.message));
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA,OAAO,eAAe,CAAC;AACvB,OAAO,EAAE,MAAM,aAAa,CAAC;AAC7B,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAC;AACvC,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AAEjF,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAEvD,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC/C,MAAM,WAAW,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC;AAE/C,gFAAgF;AAChF
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bns.service.d.ts","sourceRoot":"","sources":["../../src/services/bns.service.ts"],"names":[],"mappings":"AAEA,OAAO,EAAiC,KAAK,OAAO,EAAE,MAAM,oBAAoB,CAAC;AACjF,OAAO,EAAgB,KAAK,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"bns.service.d.ts","sourceRoot":"","sources":["../../src/services/bns.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
import { bufferCV, uintCV, hexToCV, cvToJSON } from "@stacks/transactions";
|
|
1
|
+
import { bufferCV, uintCV, hexToCV, cvToJSON, tupleCV } from "@stacks/transactions";
|
|
2
2
|
import { getHiroApi, getBnsV2Api } from "./hiro-api.js";
|
|
3
3
|
import { getContracts, parseContractId } from "../config/index.js";
|
|
4
4
|
import { callContract } from "../transactions/builder.js";
|
|
5
|
+
import { createStxPostCondition, createNftSendPostCondition } from "../transactions/post-conditions.js";
|
|
5
6
|
// ============================================================================
|
|
6
7
|
// BNS Service
|
|
7
8
|
// ============================================================================
|
|
@@ -282,11 +283,14 @@ export class BnsService {
|
|
|
282
283
|
bufferCV(hashedSaltedFqn),
|
|
283
284
|
uintCV(stxToBurn),
|
|
284
285
|
];
|
|
286
|
+
// Add post condition: sender must burn exactly stxToBurn amount
|
|
287
|
+
const postCondition = createStxPostCondition(account.address, "eq", stxToBurn);
|
|
285
288
|
return callContract(account, {
|
|
286
289
|
contractAddress,
|
|
287
290
|
contractName,
|
|
288
291
|
functionName: "name-preorder",
|
|
289
292
|
functionArgs,
|
|
293
|
+
postConditions: [postCondition],
|
|
290
294
|
});
|
|
291
295
|
}
|
|
292
296
|
/**
|
|
@@ -327,11 +331,13 @@ export class BnsService {
|
|
|
327
331
|
bufferCV(zonefileHashBuffer),
|
|
328
332
|
];
|
|
329
333
|
}
|
|
334
|
+
// No post conditions needed for registration (doesn't move assets)
|
|
330
335
|
return callContract(account, {
|
|
331
336
|
contractAddress,
|
|
332
337
|
contractName,
|
|
333
338
|
functionName: "name-register",
|
|
334
339
|
functionArgs,
|
|
340
|
+
postConditions: [],
|
|
335
341
|
});
|
|
336
342
|
}
|
|
337
343
|
/**
|
|
@@ -346,11 +352,13 @@ export class BnsService {
|
|
|
346
352
|
bufferCV(Buffer.from(baseName)),
|
|
347
353
|
bufferCV(Buffer.from(zonefile)),
|
|
348
354
|
];
|
|
355
|
+
// No post conditions needed for zonefile updates (doesn't move assets)
|
|
349
356
|
return callContract(account, {
|
|
350
357
|
contractAddress,
|
|
351
358
|
contractName,
|
|
352
359
|
functionName: "name-update",
|
|
353
360
|
functionArgs,
|
|
361
|
+
postConditions: [],
|
|
354
362
|
});
|
|
355
363
|
}
|
|
356
364
|
/**
|
|
@@ -366,11 +374,26 @@ export class BnsService {
|
|
|
366
374
|
{ type: "principal", value: newOwner },
|
|
367
375
|
zonefile ? bufferCV(Buffer.from(zonefile)) : bufferCV(Buffer.alloc(0)),
|
|
368
376
|
];
|
|
377
|
+
// Fetch the BNS contract interface to get the NFT name
|
|
378
|
+
const bnsContractId = this.contracts.BNS;
|
|
379
|
+
const contractInterface = await this.hiro.getContractInterface(bnsContractId);
|
|
380
|
+
if (!contractInterface.non_fungible_tokens || contractInterface.non_fungible_tokens.length === 0) {
|
|
381
|
+
throw new Error(`No NFT tokens found in BNS contract ${bnsContractId}`);
|
|
382
|
+
}
|
|
383
|
+
const nftName = contractInterface.non_fungible_tokens[0].name;
|
|
384
|
+
// BNS NFT token ID is a tuple: {name: (buff 48), namespace: (buff 20)}
|
|
385
|
+
const nftTokenId = tupleCV({
|
|
386
|
+
name: bufferCV(Buffer.from(baseName)),
|
|
387
|
+
namespace: bufferCV(Buffer.from(namespace)),
|
|
388
|
+
});
|
|
389
|
+
// Add post condition: sender must send the BNS name NFT
|
|
390
|
+
const postCondition = createNftSendPostCondition(account.address, bnsContractId, nftName, nftTokenId);
|
|
369
391
|
return callContract(account, {
|
|
370
392
|
contractAddress,
|
|
371
393
|
contractName,
|
|
372
394
|
functionName: "name-transfer",
|
|
373
395
|
functionArgs,
|
|
396
|
+
postConditions: [postCondition],
|
|
374
397
|
});
|
|
375
398
|
}
|
|
376
399
|
/**
|
|
@@ -380,16 +403,25 @@ export class BnsService {
|
|
|
380
403
|
const { address: contractAddress, name: contractName } = parseContractId(this.contracts.BNS);
|
|
381
404
|
const fullName = name.endsWith(".btc") ? name : `${name}.btc`;
|
|
382
405
|
const [baseName, namespace] = fullName.split(".");
|
|
406
|
+
// Get the renewal price
|
|
407
|
+
const price = await this.getPrice(fullName);
|
|
408
|
+
if (!price) {
|
|
409
|
+
throw new Error("Could not determine renewal price");
|
|
410
|
+
}
|
|
411
|
+
const stxToBurn = BigInt(price.amount);
|
|
383
412
|
const functionArgs = [
|
|
384
413
|
bufferCV(Buffer.from(namespace)),
|
|
385
414
|
bufferCV(Buffer.from(baseName)),
|
|
386
|
-
uintCV(
|
|
415
|
+
uintCV(stxToBurn),
|
|
387
416
|
];
|
|
417
|
+
// Add post condition: sender must burn exactly stxToBurn amount for renewal
|
|
418
|
+
const postCondition = createStxPostCondition(account.address, "eq", stxToBurn);
|
|
388
419
|
return callContract(account, {
|
|
389
420
|
contractAddress,
|
|
390
421
|
contractName,
|
|
391
422
|
functionName: "name-renewal",
|
|
392
423
|
functionArgs,
|
|
424
|
+
postConditions: [postCondition],
|
|
393
425
|
});
|
|
394
426
|
}
|
|
395
427
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bns.service.js","sourceRoot":"","sources":["../../src/services/bns.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,QAAQ,EAAE,MAAM,EAAgB,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AACvG,OAAO,EAAkB,UAAU,EAAW,WAAW,EAAmB,MAAM,eAAe,CAAC;AAClG,OAAO,EAAE,YAAY,EAAE,eAAe,EAAgB,MAAM,oBAAoB,CAAC;AACjF,OAAO,EAAE,YAAY,EAAqC,MAAM,4BAA4B,CAAC;AAgC7F,+EAA+E;AAC/E,cAAc;AACd,+EAA+E;AAE/E;;GAEG;AACH,SAAS,eAAe,CAAC,KAAc;IACrC,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;QAC3B,OAAO,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;IAChF,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,OAAO,UAAU;IAKD;IAJZ,IAAI,CAAiB;IACrB,KAAK,CAAkB;IACvB,SAAS,CAAkC;IAEnD,YAAoB,OAAgB;QAAhB,YAAO,GAAP,OAAO,CAAS;QAClC,IAAI,CAAC,IAAI,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC;QAChC,IAAI,CAAC,KAAK,GAAG,WAAW,EAAE,CAAC;QAC3B,IAAI,CAAC,SAAS,GAAG,YAAY,CAAC,OAAO,CAAC,CAAC;IACzC,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,UAAU,CAAC,IAAY;QAC3B,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,MAAM,CAAC;QAC9D,MAAM,CAAC,QAAQ,EAAE,SAAS,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAElD,mEAAmE;QACnE,IAAI,SAAS,KAAK,KAAK,IAAI,CAAC,SAAS,EAAE,CAAC;YACtC,IAAI,CAAC;gBACH,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;gBACpD,IAAI,IAAI,CAAC,MAAM,KAAK,QAAQ,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;oBACzE,OAAO;wBACL,IAAI,EAAE,QAAQ;wBACd,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK;wBACxB,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,gBAAgB,IAAI,KAAK;wBAC9C,WAAW,EAAE,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,EAAE,CAAC;qBACpD,CAAC;gBACJ,CAAC;gBACD,OAAO,IAAI,CAAC;YACd,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC;oBAAE,MAAM,KAAK,CAAC;gBACzC,+EAA+E;YACjF,CAAC;QACH,CAAC;QAED,+DAA+D;QAC/D,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;YACtD,OAAO;gBACL,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE,IAAI,CAAC,OAAO;gBACrB,SAAS,EAAE,SAAS,IAAI,KAAK;gBAC7B,WAAW,EAAE,IAAI,CAAC,YAAY;gBAC9B,QAAQ,EAAE,IAAI,CAAC,QAAQ;aACxB,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC;gBAAE,MAAM,KAAK,CAAC;YACzC,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,aAAa,CAAC,OAAe;QACjC,MAAM,QAAQ,GAAa,EAAE,CAAC;QAE9B,wBAAwB;QACxB,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,sBAAsB,CAAC,OAAO,CAAC,CAAC;YAClE,IAAI,QAAQ,CAAC,KAAK,EAAE,CAAC;gBACnB,QAAQ,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;YACzD,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC;gBAAE,MAAM,KAAK,CAAC;QAC3C,CAAC;QAED,mCAAmC;QACnC,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,yBAAyB,CAAC,OAAO,CAAC,CAAC;YACpE,IAAI,QAAQ,CAAC,KAAK,EAAE,CAAC;gBACnB,KAAK,MAAM,IAAI,IAAI,QAAQ,CAAC,KAAK,EAAE,CAAC;oBAClC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;wBAC7B,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;oBACtB,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC;gBAAE,MAAM,KAAK,CAAC;QAC3C,CAAC;QAED,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,WAAW,CAAC,IAAY;QAC5B,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,MAAM,CAAC;QAC9D,MAAM,CAAC,QAAQ,EAAE,SAAS,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAElD,mCAAmC;QACnC,IAAI,SAAS,KAAK,KAAK,IAAI,CAAC,SAAS,EAAE,CAAC;YACtC,IAAI,CAAC;gBACH,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;gBACpD,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;oBACd,OAAO;wBACL,IAAI,EAAE,QAAQ;wBACd,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,gBAAgB,IAAI,KAAK;wBAC9C,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK;wBACxB,WAAW,EAAE,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,EAAE,CAAC;wBACnD,WAAW,EAAE,CAAC;wBACd,MAAM,EAAE,IAAI,CAAC,MAAM;wBACnB,QAAQ,EAAE,EAAE;qBACb,CAAC;gBACJ,CAAC;YACH,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC;oBAAE,MAAM,KAAK,CAAC;YAC3C,CAAC;QACH,CAAC;QAED,uBAAuB;QACvB,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;YACtD,OAAO;gBACL,IAAI,EAAE,QAAQ;gBACd,SAAS,EAAE,SAAS,IAAI,KAAK;gBAC7B,OAAO,EAAE,IAAI,CAAC,OAAO;gBACrB,WAAW,EAAE,IAAI,CAAC,YAAY;gBAC9B,WAAW,EAAE,IAAI,CAAC,YAAY;gBAC9B,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,QAAQ,EAAE,IAAI,CAAC,QAAQ;gBACvB,YAAY,EAAE,IAAI,CAAC,aAAa;gBAChC,QAAQ,EAAE,IAAI,CAAC,SAAS;aACzB,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC;gBAAE,MAAM,KAAK,CAAC;YACzC,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,iBAAiB,CAAC,IAAY;QAClC,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,MAAM,CAAC;QAE9D,4DAA4D;QAC5D,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;YACrD,IAAI,MAAM,EAAE,CAAC;gBACX,OAAO,KAAK,CAAC,CAAC,gBAAgB;YAChC,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC;gBAAE,MAAM,KAAK,CAAC;QAC3C,CAAC;QAED,gDAAgD;QAChD,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;YACtD,IAAI,IAAI,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;gBACzB,OAAO,KAAK,CAAC,CAAC,sBAAsB;YACtC,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC;gBAAE,MAAM,KAAK,CAAC;QAC3C,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,QAAQ,CAAC,IAAY;QACzB,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,MAAM,CAAC;QAC3D,MAAM,CAAC,QAAQ,EAAE,SAAS,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAElD,kDAAkD;QAClD,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,GAAG,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;QACvE,MAAM,UAAU,GAAG,GAAG,OAAO,IAAI,YAAY,EAAE,CAAC;QAEhD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,oBAAoB,CACjD,UAAU,EACV,gBAAgB,EAChB;YACE,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAChC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;SAChC,EACD,OAAO,CACR,CAAC;QAEF,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;YACnC,MAAM,IAAI,KAAK,CAAC,2BAA2B,QAAQ,KAAK,MAAM,CAAC,KAAK,IAAI,eAAe,EAAE,CAAC,CAAC;QAC7F,CAAC;QAED,6BAA6B;QAC7B,MAAM,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;QACjD,4FAA4F;QAC5F,MAAM,UAAU,GAAG,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,IAAI,OAAO,EAAE,KAAK,EAAE,KAAK,IAAI,OAAO,EAAE,KAAK,IAAI,OAAO,CAAC;QAEtG,IAAI,UAAU,KAAK,SAAS,IAAI,UAAU,KAAK,IAAI,EAAE,CAAC;YACpD,MAAM,IAAI,KAAK,CAAC,sCAAsC,QAAQ,EAAE,CAAC,CAAC;QACpE,CAAC;QAED,MAAM,cAAc,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC;QAC1C,MAAM,SAAS,GAAG,CAAC,MAAM,CAAC,cAAc,CAAC,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;QAC1E,OAAO;YACL,KAAK,EAAE,MAAM;YACb,MAAM,EAAE,cAAc;YACtB,SAAS;SACV,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,cAAc,CAAC,OAAe;QAClC,OAAO,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;IACrC,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,OAAO,CAAC,IAAY;QACxB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QAC3C,OAAO,MAAM,EAAE,OAAO,IAAI,IAAI,CAAC;IACjC,CAAC;IAED;;;;OAIG;IACK,cAAc,CAAC,SAAiB;QACtC,IAAI,SAAS,KAAK,KAAK,EAAE,CAAC;YACxB,wBAAwB;YACxB,OAAO;gBACL,OAAO,EAAE,2CAA2C;gBACpD,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE,CAAC;aACX,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,8BAA8B;YAC9B,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,eAAe,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;YAC9D,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;QACvC,CAAC;IACH,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,OAAO,CAAC,IAAY;QAChC,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,CAAC;QACtC,MAAM,MAAM,GAAG,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC;QACjE,MAAM,SAAS,GAAG,MAAM,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,CAAC;QACzE,OAAO,SAAS,CAAC;IACnB,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,YAAY,CAChB,OAAgB,EAChB,IAAY,EACZ,IAAY;QAEZ,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,MAAM,CAAC;QAC3D,MAAM,CAAC,QAAQ,EAAE,SAAS,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAElD,MAAM,EAAE,OAAO,EAAE,eAAe,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;QAEjG,wBAAwB;QACxB,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QAC5C,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;QACpD,CAAC;QACD,MAAM,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAEvC,kDAAkD;QAClD,6CAA6C;QAC7C,MAAM,UAAU,GAAG,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACpC,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QAC3C,SAAS,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;QAEjE,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC;QACvE,MAAM,eAAe,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;QAExD,MAAM,YAAY,GAAmB;YACnC,QAAQ,CAAC,eAAe,CAAC;YACzB,MAAM,CAAC,SAAS,CAAC;SAClB,CAAC;QAEF,OAAO,YAAY,CAAC,OAAO,EAAE;YAC3B,eAAe;YACf,YAAY;YACZ,YAAY,EAAE,eAAe;YAC7B,YAAY;SACb,CAAC,CAAC;IACL,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,YAAY,CAChB,OAAgB,EAChB,IAAY,EACZ,IAAY,EACZ,YAAqB;QAErB,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,MAAM,CAAC;QAC3D,MAAM,CAAC,QAAQ,EAAE,SAAS,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAElD,MAAM,EAAE,OAAO,EAAE,eAAe,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;QAEjG,yCAAyC;QACzC,MAAM,UAAU,GAAG,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACpC,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QAC3C,SAAS,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;QAEjE,IAAI,YAA4B,CAAC;QAEjC,IAAI,OAAO,KAAK,CAAC,EAAE,CAAC;YAClB,8BAA8B;YAC9B,YAAY,GAAG;gBACb,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;gBAChC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBAC/B,QAAQ,CAAC,UAAU,CAAC;aACrB,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,6CAA6C;YAC7C,MAAM,kBAAkB,GAAG,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YAC5C,IAAI,YAAY,EAAE,CAAC;gBACjB,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC;gBACnD,SAAS,CAAC,IAAI,CAAC,kBAAkB,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;YAC3E,CAAC;YACD,YAAY,GAAG;gBACb,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;gBAChC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBAC/B,QAAQ,CAAC,UAAU,CAAC;gBACpB,QAAQ,CAAC,kBAAkB,CAAC;aAC7B,CAAC;QACJ,CAAC;QAED,OAAO,YAAY,CAAC,OAAO,EAAE;YAC3B,eAAe;YACf,YAAY;YACZ,YAAY,EAAE,eAAe;YAC7B,YAAY;SACb,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,cAAc,CAClB,OAAgB,EAChB,IAAY,EACZ,QAAgB;QAEhB,MAAM,EAAE,OAAO,EAAE,eAAe,EAAE,IAAI,EAAE,YAAY,EAAE,GAAG,eAAe,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;QAE7F,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,MAAM,CAAC;QAC9D,MAAM,CAAC,QAAQ,EAAE,SAAS,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAElD,MAAM,YAAY,GAAmB;YACnC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAChC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAC/B,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;SAChC,CAAC;QAEF,OAAO,YAAY,CAAC,OAAO,EAAE;YAC3B,eAAe;YACf,YAAY;YACZ,YAAY,EAAE,aAAa;YAC3B,YAAY;SACb,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,YAAY,CAChB,OAAgB,EAChB,IAAY,EACZ,QAAgB,EAChB,QAAiB;QAEjB,MAAM,EAAE,OAAO,EAAE,eAAe,EAAE,IAAI,EAAE,YAAY,EAAE,GAAG,eAAe,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;QAE7F,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,MAAM,CAAC;QAC9D,MAAM,CAAC,QAAQ,EAAE,SAAS,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAElD,MAAM,YAAY,GAAmB;YACnC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAChC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAC/B,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,QAAQ,EAA6B;YACjE,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;SACvE,CAAC;QAEF,OAAO,YAAY,CAAC,OAAO,EAAE;YAC3B,eAAe;YACf,YAAY;YACZ,YAAY,EAAE,eAAe;YAC7B,YAAY;SACb,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,SAAS,CACb,OAAgB,EAChB,IAAY;QAEZ,MAAM,EAAE,OAAO,EAAE,eAAe,EAAE,IAAI,EAAE,YAAY,EAAE,GAAG,eAAe,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;QAE7F,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,MAAM,CAAC;QAC9D,MAAM,CAAC,QAAQ,EAAE,SAAS,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAElD,MAAM,YAAY,GAAmB;YACnC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAChC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAC/B,MAAM,CAAC,CAAC,CAAC,EAAE,4BAA4B;SACxC,CAAC;QAEF,OAAO,YAAY,CAAC,OAAO,EAAE;YAC3B,eAAe;YACf,YAAY;YACZ,YAAY,EAAE,cAAc;YAC5B,YAAY;SACb,CAAC,CAAC;IACL,CAAC;CACF;AAED,+EAA+E;AAC/E,mBAAmB;AACnB,+EAA+E;AAE/E,IAAI,mBAAmB,GAAsB,IAAI,CAAC;AAElD,MAAM,UAAU,aAAa,CAAC,OAAgB;IAC5C,IAAI,CAAC,mBAAmB,IAAI,mBAAmB,CAAC,SAAS,CAAC,KAAK,OAAO,EAAE,CAAC;QACvE,mBAAmB,GAAG,IAAI,UAAU,CAAC,OAAO,CAAC,CAAC;IAChD,CAAC;IACD,OAAO,mBAAmB,CAAC;AAC7B,CAAC"}
|
|
1
|
+
{"version":3,"file":"bns.service.js","sourceRoot":"","sources":["../../src/services/bns.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,QAAQ,EAAE,MAAM,EAAgB,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAChH,OAAO,EAAkB,UAAU,EAAW,WAAW,EAAmB,MAAM,eAAe,CAAC;AAClG,OAAO,EAAE,YAAY,EAAE,eAAe,EAAgB,MAAM,oBAAoB,CAAC;AACjF,OAAO,EAAE,YAAY,EAAqC,MAAM,4BAA4B,CAAC;AAC7F,OAAO,EAAE,sBAAsB,EAAE,0BAA0B,EAAE,MAAM,oCAAoC,CAAC;AAgCxG,+EAA+E;AAC/E,cAAc;AACd,+EAA+E;AAE/E;;GAEG;AACH,SAAS,eAAe,CAAC,KAAc;IACrC,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;QAC3B,OAAO,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;IAChF,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,OAAO,UAAU;IAKD;IAJZ,IAAI,CAAiB;IACrB,KAAK,CAAkB;IACvB,SAAS,CAAkC;IAEnD,YAAoB,OAAgB;QAAhB,YAAO,GAAP,OAAO,CAAS;QAClC,IAAI,CAAC,IAAI,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC;QAChC,IAAI,CAAC,KAAK,GAAG,WAAW,EAAE,CAAC;QAC3B,IAAI,CAAC,SAAS,GAAG,YAAY,CAAC,OAAO,CAAC,CAAC;IACzC,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,UAAU,CAAC,IAAY;QAC3B,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,MAAM,CAAC;QAC9D,MAAM,CAAC,QAAQ,EAAE,SAAS,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAElD,mEAAmE;QACnE,IAAI,SAAS,KAAK,KAAK,IAAI,CAAC,SAAS,EAAE,CAAC;YACtC,IAAI,CAAC;gBACH,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;gBACpD,IAAI,IAAI,CAAC,MAAM,KAAK,QAAQ,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;oBACzE,OAAO;wBACL,IAAI,EAAE,QAAQ;wBACd,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK;wBACxB,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,gBAAgB,IAAI,KAAK;wBAC9C,WAAW,EAAE,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,EAAE,CAAC;qBACpD,CAAC;gBACJ,CAAC;gBACD,OAAO,IAAI,CAAC;YACd,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC;oBAAE,MAAM,KAAK,CAAC;gBACzC,+EAA+E;YACjF,CAAC;QACH,CAAC;QAED,+DAA+D;QAC/D,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;YACtD,OAAO;gBACL,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE,IAAI,CAAC,OAAO;gBACrB,SAAS,EAAE,SAAS,IAAI,KAAK;gBAC7B,WAAW,EAAE,IAAI,CAAC,YAAY;gBAC9B,QAAQ,EAAE,IAAI,CAAC,QAAQ;aACxB,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC;gBAAE,MAAM,KAAK,CAAC;YACzC,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,aAAa,CAAC,OAAe;QACjC,MAAM,QAAQ,GAAa,EAAE,CAAC;QAE9B,wBAAwB;QACxB,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,sBAAsB,CAAC,OAAO,CAAC,CAAC;YAClE,IAAI,QAAQ,CAAC,KAAK,EAAE,CAAC;gBACnB,QAAQ,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;YACzD,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC;gBAAE,MAAM,KAAK,CAAC;QAC3C,CAAC;QAED,mCAAmC;QACnC,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,yBAAyB,CAAC,OAAO,CAAC,CAAC;YACpE,IAAI,QAAQ,CAAC,KAAK,EAAE,CAAC;gBACnB,KAAK,MAAM,IAAI,IAAI,QAAQ,CAAC,KAAK,EAAE,CAAC;oBAClC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;wBAC7B,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;oBACtB,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC;gBAAE,MAAM,KAAK,CAAC;QAC3C,CAAC;QAED,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,WAAW,CAAC,IAAY;QAC5B,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,MAAM,CAAC;QAC9D,MAAM,CAAC,QAAQ,EAAE,SAAS,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAElD,mCAAmC;QACnC,IAAI,SAAS,KAAK,KAAK,IAAI,CAAC,SAAS,EAAE,CAAC;YACtC,IAAI,CAAC;gBACH,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;gBACpD,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;oBACd,OAAO;wBACL,IAAI,EAAE,QAAQ;wBACd,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,gBAAgB,IAAI,KAAK;wBAC9C,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK;wBACxB,WAAW,EAAE,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,EAAE,CAAC;wBACnD,WAAW,EAAE,CAAC;wBACd,MAAM,EAAE,IAAI,CAAC,MAAM;wBACnB,QAAQ,EAAE,EAAE;qBACb,CAAC;gBACJ,CAAC;YACH,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC;oBAAE,MAAM,KAAK,CAAC;YAC3C,CAAC;QACH,CAAC;QAED,uBAAuB;QACvB,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;YACtD,OAAO;gBACL,IAAI,EAAE,QAAQ;gBACd,SAAS,EAAE,SAAS,IAAI,KAAK;gBAC7B,OAAO,EAAE,IAAI,CAAC,OAAO;gBACrB,WAAW,EAAE,IAAI,CAAC,YAAY;gBAC9B,WAAW,EAAE,IAAI,CAAC,YAAY;gBAC9B,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,QAAQ,EAAE,IAAI,CAAC,QAAQ;gBACvB,YAAY,EAAE,IAAI,CAAC,aAAa;gBAChC,QAAQ,EAAE,IAAI,CAAC,SAAS;aACzB,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC;gBAAE,MAAM,KAAK,CAAC;YACzC,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,iBAAiB,CAAC,IAAY;QAClC,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,MAAM,CAAC;QAE9D,4DAA4D;QAC5D,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;YACrD,IAAI,MAAM,EAAE,CAAC;gBACX,OAAO,KAAK,CAAC,CAAC,gBAAgB;YAChC,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC;gBAAE,MAAM,KAAK,CAAC;QAC3C,CAAC;QAED,gDAAgD;QAChD,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;YACtD,IAAI,IAAI,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;gBACzB,OAAO,KAAK,CAAC,CAAC,sBAAsB;YACtC,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC;gBAAE,MAAM,KAAK,CAAC;QAC3C,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,QAAQ,CAAC,IAAY;QACzB,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,MAAM,CAAC;QAC3D,MAAM,CAAC,QAAQ,EAAE,SAAS,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAElD,kDAAkD;QAClD,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,GAAG,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;QACvE,MAAM,UAAU,GAAG,GAAG,OAAO,IAAI,YAAY,EAAE,CAAC;QAEhD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,oBAAoB,CACjD,UAAU,EACV,gBAAgB,EAChB;YACE,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAChC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;SAChC,EACD,OAAO,CACR,CAAC;QAEF,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;YACnC,MAAM,IAAI,KAAK,CAAC,2BAA2B,QAAQ,KAAK,MAAM,CAAC,KAAK,IAAI,eAAe,EAAE,CAAC,CAAC;QAC7F,CAAC;QAED,6BAA6B;QAC7B,MAAM,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;QACjD,4FAA4F;QAC5F,MAAM,UAAU,GAAG,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,IAAI,OAAO,EAAE,KAAK,EAAE,KAAK,IAAI,OAAO,EAAE,KAAK,IAAI,OAAO,CAAC;QAEtG,IAAI,UAAU,KAAK,SAAS,IAAI,UAAU,KAAK,IAAI,EAAE,CAAC;YACpD,MAAM,IAAI,KAAK,CAAC,sCAAsC,QAAQ,EAAE,CAAC,CAAC;QACpE,CAAC;QAED,MAAM,cAAc,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC;QAC1C,MAAM,SAAS,GAAG,CAAC,MAAM,CAAC,cAAc,CAAC,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;QAC1E,OAAO;YACL,KAAK,EAAE,MAAM;YACb,MAAM,EAAE,cAAc;YACtB,SAAS;SACV,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,cAAc,CAAC,OAAe;QAClC,OAAO,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;IACrC,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,OAAO,CAAC,IAAY;QACxB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QAC3C,OAAO,MAAM,EAAE,OAAO,IAAI,IAAI,CAAC;IACjC,CAAC;IAED;;;;OAIG;IACK,cAAc,CAAC,SAAiB;QACtC,IAAI,SAAS,KAAK,KAAK,EAAE,CAAC;YACxB,wBAAwB;YACxB,OAAO;gBACL,OAAO,EAAE,2CAA2C;gBACpD,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE,CAAC;aACX,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,8BAA8B;YAC9B,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,eAAe,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;YAC9D,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;QACvC,CAAC;IACH,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,OAAO,CAAC,IAAY;QAChC,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,CAAC;QACtC,MAAM,MAAM,GAAG,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC;QACjE,MAAM,SAAS,GAAG,MAAM,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,CAAC;QACzE,OAAO,SAAS,CAAC;IACnB,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,YAAY,CAChB,OAAgB,EAChB,IAAY,EACZ,IAAY;QAEZ,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,MAAM,CAAC;QAC3D,MAAM,CAAC,QAAQ,EAAE,SAAS,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAElD,MAAM,EAAE,OAAO,EAAE,eAAe,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;QAEjG,wBAAwB;QACxB,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QAC5C,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;QACpD,CAAC;QACD,MAAM,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAEvC,kDAAkD;QAClD,6CAA6C;QAC7C,MAAM,UAAU,GAAG,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACpC,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QAC3C,SAAS,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;QAEjE,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC;QACvE,MAAM,eAAe,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;QAExD,MAAM,YAAY,GAAmB;YACnC,QAAQ,CAAC,eAAe,CAAC;YACzB,MAAM,CAAC,SAAS,CAAC;SAClB,CAAC;QAEF,gEAAgE;QAChE,MAAM,aAAa,GAAG,sBAAsB,CAC1C,OAAO,CAAC,OAAO,EACf,IAAI,EACJ,SAAS,CACV,CAAC;QAEF,OAAO,YAAY,CAAC,OAAO,EAAE;YAC3B,eAAe;YACf,YAAY;YACZ,YAAY,EAAE,eAAe;YAC7B,YAAY;YACZ,cAAc,EAAE,CAAC,aAAa,CAAC;SAChC,CAAC,CAAC;IACL,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,YAAY,CAChB,OAAgB,EAChB,IAAY,EACZ,IAAY,EACZ,YAAqB;QAErB,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,MAAM,CAAC;QAC3D,MAAM,CAAC,QAAQ,EAAE,SAAS,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAElD,MAAM,EAAE,OAAO,EAAE,eAAe,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;QAEjG,yCAAyC;QACzC,MAAM,UAAU,GAAG,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACpC,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QAC3C,SAAS,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;QAEjE,IAAI,YAA4B,CAAC;QAEjC,IAAI,OAAO,KAAK,CAAC,EAAE,CAAC;YAClB,8BAA8B;YAC9B,YAAY,GAAG;gBACb,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;gBAChC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBAC/B,QAAQ,CAAC,UAAU,CAAC;aACrB,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,6CAA6C;YAC7C,MAAM,kBAAkB,GAAG,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YAC5C,IAAI,YAAY,EAAE,CAAC;gBACjB,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC;gBACnD,SAAS,CAAC,IAAI,CAAC,kBAAkB,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;YAC3E,CAAC;YACD,YAAY,GAAG;gBACb,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;gBAChC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBAC/B,QAAQ,CAAC,UAAU,CAAC;gBACpB,QAAQ,CAAC,kBAAkB,CAAC;aAC7B,CAAC;QACJ,CAAC;QAED,mEAAmE;QACnE,OAAO,YAAY,CAAC,OAAO,EAAE;YAC3B,eAAe;YACf,YAAY;YACZ,YAAY,EAAE,eAAe;YAC7B,YAAY;YACZ,cAAc,EAAE,EAAE;SACnB,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,cAAc,CAClB,OAAgB,EAChB,IAAY,EACZ,QAAgB;QAEhB,MAAM,EAAE,OAAO,EAAE,eAAe,EAAE,IAAI,EAAE,YAAY,EAAE,GAAG,eAAe,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;QAE7F,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,MAAM,CAAC;QAC9D,MAAM,CAAC,QAAQ,EAAE,SAAS,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAElD,MAAM,YAAY,GAAmB;YACnC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAChC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAC/B,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;SAChC,CAAC;QAEF,uEAAuE;QACvE,OAAO,YAAY,CAAC,OAAO,EAAE;YAC3B,eAAe;YACf,YAAY;YACZ,YAAY,EAAE,aAAa;YAC3B,YAAY;YACZ,cAAc,EAAE,EAAE;SACnB,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,YAAY,CAChB,OAAgB,EAChB,IAAY,EACZ,QAAgB,EAChB,QAAiB;QAEjB,MAAM,EAAE,OAAO,EAAE,eAAe,EAAE,IAAI,EAAE,YAAY,EAAE,GAAG,eAAe,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;QAE7F,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,MAAM,CAAC;QAC9D,MAAM,CAAC,QAAQ,EAAE,SAAS,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAElD,MAAM,YAAY,GAAmB;YACnC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAChC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAC/B,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,QAAQ,EAA6B;YACjE,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;SACvE,CAAC;QAEF,uDAAuD;QACvD,MAAM,aAAa,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC;QACzC,MAAM,iBAAiB,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,oBAAoB,CAAC,aAAa,CAAC,CAAC;QAC9E,IAAI,CAAC,iBAAiB,CAAC,mBAAmB,IAAI,iBAAiB,CAAC,mBAAmB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACjG,MAAM,IAAI,KAAK,CAAC,uCAAuC,aAAa,EAAE,CAAC,CAAC;QAC1E,CAAC;QACD,MAAM,OAAO,GAAG,iBAAiB,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAE9D,uEAAuE;QACvE,MAAM,UAAU,GAAG,OAAO,CAAC;YACzB,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACrC,SAAS,EAAE,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;SAC5C,CAAC,CAAC;QAEH,wDAAwD;QACxD,MAAM,aAAa,GAAG,0BAA0B,CAC9C,OAAO,CAAC,OAAO,EACf,aAAa,EACb,OAAO,EACP,UAAU,CACX,CAAC;QAEF,OAAO,YAAY,CAAC,OAAO,EAAE;YAC3B,eAAe;YACf,YAAY;YACZ,YAAY,EAAE,eAAe;YAC7B,YAAY;YACZ,cAAc,EAAE,CAAC,aAAa,CAAC;SAChC,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,SAAS,CACb,OAAgB,EAChB,IAAY;QAEZ,MAAM,EAAE,OAAO,EAAE,eAAe,EAAE,IAAI,EAAE,YAAY,EAAE,GAAG,eAAe,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;QAE7F,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,MAAM,CAAC;QAC9D,MAAM,CAAC,QAAQ,EAAE,SAAS,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAElD,wBAAwB;QACxB,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QAC5C,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;QACvD,CAAC;QACD,MAAM,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAEvC,MAAM,YAAY,GAAmB;YACnC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAChC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAC/B,MAAM,CAAC,SAAS,CAAC;SAClB,CAAC;QAEF,4EAA4E;QAC5E,MAAM,aAAa,GAAG,sBAAsB,CAC1C,OAAO,CAAC,OAAO,EACf,IAAI,EACJ,SAAS,CACV,CAAC;QAEF,OAAO,YAAY,CAAC,OAAO,EAAE;YAC3B,eAAe;YACf,YAAY;YACZ,YAAY,EAAE,cAAc;YAC5B,YAAY;YACZ,cAAc,EAAE,CAAC,aAAa,CAAC;SAChC,CAAC,CAAC;IACL,CAAC;CACF;AAED,+EAA+E;AAC/E,mBAAmB;AACnB,+EAA+E;AAE/E,IAAI,mBAAmB,GAAsB,IAAI,CAAC;AAElD,MAAM,UAAU,aAAa,CAAC,OAAgB;IAC5C,IAAI,CAAC,mBAAmB,IAAI,mBAAmB,CAAC,SAAS,CAAC,KAAK,OAAO,EAAE,CAAC;QACvE,mBAAmB,GAAG,IAAI,UAAU,CAAC,OAAO,CAAC,CAAC;IAChD,CAAC;IACD,OAAO,mBAAmB,CAAC;AAC7B,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nft.service.d.ts","sourceRoot":"","sources":["../../src/services/nft.service.ts"],"names":[],"mappings":"AACA,OAAO,EAA8B,UAAU,EAAY,MAAM,eAAe,CAAC;AACjF,OAAO,EAAmB,KAAK,OAAO,EAAE,MAAM,oBAAoB,CAAC;AACnE,OAAO,EAAgB,KAAK,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"nft.service.d.ts","sourceRoot":"","sources":["../../src/services/nft.service.ts"],"names":[],"mappings":"AACA,OAAO,EAA8B,UAAU,EAAY,MAAM,eAAe,CAAC;AACjF,OAAO,EAAmB,KAAK,OAAO,EAAE,MAAM,oBAAoB,CAAC;AACnE,OAAO,EAAgB,KAAK,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAO7F,MAAM,WAAW,OAAO;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,iBAAiB;IAChC,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,EAAE,CAAC;CACrB;AAED,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;CACrB;AAMD,qBAAa,UAAU;IAGT,OAAO,CAAC,OAAO;IAF3B,OAAO,CAAC,IAAI,CAAiB;gBAET,OAAO,EAAE,OAAO;IAIpC;;OAEG;IACG,WAAW,CACf,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAA;KAAE,GACjE,OAAO,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,UAAU,EAAE,CAAA;KAAE,CAAC;IAcjD;;OAEG;IACG,WAAW,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAIxE;;OAEG;IACG,QAAQ,CACZ,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,MAAM,EACf,aAAa,EAAE,MAAM,GACpB,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAyBzB;;OAEG;IACG,iBAAiB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAmCvE;;OAEG;IACG,UAAU,CACd,UAAU,EAAE,MAAM,EAClB,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,GAC5C,OAAO,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,gBAAgB,EAAE,CAAA;KAAE,CAAC;IAiBzD;;;OAGG;IACG,QAAQ,CACZ,OAAO,EAAE,OAAO,EAChB,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM,EACjB,GAAG,CAAC,EAAE,MAAM,GACX,OAAO,CAAC,cAAc,CAAC;IAqC1B;;OAEG;IACG,IAAI,CACR,OAAO,EAAE,OAAO,EAChB,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,MAAM,EACjB,gBAAgB,GAAE,MAAe,GAChC,OAAO,CAAC,cAAc,CAAC;CAe3B;AAQD,wBAAgB,aAAa,CAAC,OAAO,EAAE,OAAO,GAAG,UAAU,CAK1D"}
|
|
@@ -2,6 +2,7 @@ import { uintCV, principalCV } from "@stacks/transactions";
|
|
|
2
2
|
import { getHiroApi } from "./hiro-api.js";
|
|
3
3
|
import { parseContractId } from "../config/index.js";
|
|
4
4
|
import { callContract } from "../transactions/builder.js";
|
|
5
|
+
import { createNftSendPostCondition } from "../transactions/post-conditions.js";
|
|
5
6
|
// ============================================================================
|
|
6
7
|
// NFT Service (SIP-009)
|
|
7
8
|
// ============================================================================
|
|
@@ -107,6 +108,13 @@ export class NftService {
|
|
|
107
108
|
*/
|
|
108
109
|
async transfer(account, contractId, tokenId, recipient, fee) {
|
|
109
110
|
const { address: contractAddress, name: contractName } = parseContractId(contractId);
|
|
111
|
+
// Fetch the contract interface to get the NFT token name
|
|
112
|
+
const contractInterface = await this.hiro.getContractInterface(contractId);
|
|
113
|
+
if (!contractInterface.non_fungible_tokens || contractInterface.non_fungible_tokens.length === 0) {
|
|
114
|
+
throw new Error(`No NFT tokens found in contract ${contractId}`);
|
|
115
|
+
}
|
|
116
|
+
// Use the first NFT token name (SIP-009 contracts typically have one)
|
|
117
|
+
const nftName = contractInterface.non_fungible_tokens[0].name;
|
|
110
118
|
// SIP-009 transfer function signature:
|
|
111
119
|
// (transfer (token-id uint) (sender principal) (recipient principal))
|
|
112
120
|
const functionArgs = [
|
|
@@ -114,11 +122,14 @@ export class NftService {
|
|
|
114
122
|
principalCV(account.address),
|
|
115
123
|
principalCV(recipient),
|
|
116
124
|
];
|
|
125
|
+
// Add post condition: sender must send this specific NFT
|
|
126
|
+
const postCondition = createNftSendPostCondition(account.address, contractId, nftName, tokenId);
|
|
117
127
|
return callContract(account, {
|
|
118
128
|
contractAddress,
|
|
119
129
|
contractName,
|
|
120
130
|
functionName: "transfer",
|
|
121
131
|
functionArgs,
|
|
132
|
+
postConditions: [postCondition],
|
|
122
133
|
...(fee !== undefined && { fee }),
|
|
123
134
|
});
|
|
124
135
|
}
|
|
@@ -129,11 +140,13 @@ export class NftService {
|
|
|
129
140
|
const { address: contractAddress, name: contractName } = parseContractId(contractId);
|
|
130
141
|
// This is a generic mint call - actual parameters depend on the specific contract
|
|
131
142
|
const functionArgs = [principalCV(recipient)];
|
|
143
|
+
// No post conditions needed for minting (contract creates new asset)
|
|
132
144
|
return callContract(account, {
|
|
133
145
|
contractAddress,
|
|
134
146
|
contractName,
|
|
135
147
|
functionName: mintFunctionName,
|
|
136
148
|
functionArgs,
|
|
149
|
+
postConditions: [],
|
|
137
150
|
});
|
|
138
151
|
}
|
|
139
152
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nft.service.js","sourceRoot":"","sources":["../../src/services/nft.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,MAAM,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACzE,OAAO,EAAkB,UAAU,EAAwB,MAAM,eAAe,CAAC;AACjF,OAAO,EAAE,eAAe,EAAgB,MAAM,oBAAoB,CAAC;AACnE,OAAO,EAAE,YAAY,EAAqC,MAAM,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"nft.service.js","sourceRoot":"","sources":["../../src/services/nft.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sbtc.service.d.ts","sourceRoot":"","sources":["../../src/services/sbtc.service.ts"],"names":[],"mappings":"AAEA,OAAO,EAAiC,KAAK,OAAO,EAAE,MAAM,oBAAoB,CAAC;AACjF,OAAO,EAAgB,KAAK,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"sbtc.service.d.ts","sourceRoot":"","sources":["../../src/services/sbtc.service.ts"],"names":[],"mappings":"AAEA,OAAO,EAAiC,KAAK,OAAO,EAAE,MAAM,oBAAoB,CAAC;AACjF,OAAO,EAAgB,KAAK,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAQ7F,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,WAAW;IAC1B,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,EAAE,MAAM,CAAC;IACxB,cAAc,EAAE,MAAM,CAAC;IACvB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,eAAe;IAC9B,cAAc,EAAE,MAAM,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,EAAE,CAAC;CACxB;AAMD,qBAAa,WAAW;IAIV,OAAO,CAAC,OAAO;IAH3B,OAAO,CAAC,IAAI,CAAiB;IAC7B,OAAO,CAAC,SAAS,CAAkC;gBAE/B,OAAO,EAAE,OAAO;IAKpC;;OAEG;IACG,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAevD;;;OAGG;IACG,QAAQ,CACZ,OAAO,EAAE,OAAO,EAChB,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,EACd,IAAI,CAAC,EAAE,MAAM,EACb,GAAG,CAAC,EAAE,MAAM,EACZ,SAAS,CAAC,EAAE,OAAO,GAClB,OAAO,CAAC,cAAc,CAAC;IAoC1B;;;OAGG;IACG,cAAc,IAAI,OAAO,CAAC,eAAe,CAAC;IAehD;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,WAAW,CAAC;CAgBzC;AAQD,wBAAgB,cAAc,CAAC,OAAO,EAAE,OAAO,GAAG,WAAW,CAK5D"}
|
|
@@ -3,6 +3,7 @@ import { getHiroApi } from "./hiro-api.js";
|
|
|
3
3
|
import { getContracts, parseContractId } from "../config/index.js";
|
|
4
4
|
import { callContract } from "../transactions/builder.js";
|
|
5
5
|
import { sponsoredContractCall } from "../transactions/sponsor-builder.js";
|
|
6
|
+
import { createFungiblePostCondition } from "../transactions/post-conditions.js";
|
|
6
7
|
// ============================================================================
|
|
7
8
|
// sBTC Service
|
|
8
9
|
// ============================================================================
|
|
@@ -43,11 +44,14 @@ export class SbtcService {
|
|
|
43
44
|
principalCV(recipient),
|
|
44
45
|
memo ? someCV(bufferCV(Buffer.from(memo).subarray(0, 34))) : noneCV(),
|
|
45
46
|
];
|
|
47
|
+
// Add post condition: sender must send exactly `amount` of sBTC
|
|
48
|
+
const postCondition = createFungiblePostCondition(account.address, sbtcContract, "sbtc-token", "eq", amount);
|
|
46
49
|
const contractCallOptions = {
|
|
47
50
|
contractAddress,
|
|
48
51
|
contractName,
|
|
49
52
|
functionName: "transfer",
|
|
50
53
|
functionArgs,
|
|
54
|
+
postConditions: [postCondition],
|
|
51
55
|
...(fee !== undefined && { fee }),
|
|
52
56
|
};
|
|
53
57
|
if (sponsored) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sbtc.service.js","sourceRoot":"","sources":["../../src/services/sbtc.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AACnG,OAAO,EAAkB,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAE,eAAe,EAAgB,MAAM,oBAAoB,CAAC;AACjF,OAAO,EAAE,YAAY,EAAqC,MAAM,4BAA4B,CAAC;AAC7F,OAAO,EAAE,qBAAqB,EAAE,MAAM,oCAAoC,CAAC;
|
|
1
|
+
{"version":3,"file":"sbtc.service.js","sourceRoot":"","sources":["../../src/services/sbtc.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stacking.service.d.ts","sourceRoot":"","sources":["../../src/services/stacking.service.ts"],"names":[],"mappings":"AACA,OAAO,EAA8B,OAAO,EAAE,MAAM,eAAe,CAAC;AACpE,OAAO,EAAiC,KAAK,OAAO,EAAE,MAAM,oBAAoB,CAAC;AACjF,OAAO,EAAgB,KAAK,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"stacking.service.d.ts","sourceRoot":"","sources":["../../src/services/stacking.service.ts"],"names":[],"mappings":"AACA,OAAO,EAA8B,OAAO,EAAE,MAAM,eAAe,CAAC;AACpE,OAAO,EAAiC,KAAK,OAAO,EAAE,MAAM,oBAAoB,CAAC;AACjF,OAAO,EAAgB,KAAK,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAO7F,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,OAAO,CAAC;IACjB,cAAc,EAAE,MAAM,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,gBAAgB,EAAE,MAAM,CAAC;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAMD,qBAAa,eAAe;IAId,OAAO,CAAC,OAAO;IAH3B,OAAO,CAAC,IAAI,CAAiB;IAC7B,OAAO,CAAC,SAAS,CAAkC;gBAE/B,OAAO,EAAE,OAAO;IAKpC;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,OAAO,CAAC;IAIpC;;;OAGG;IACG,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IAmCjE;;OAEG;IACG,KAAK,CACT,OAAO,EAAE,OAAO,EAChB,MAAM,EAAE,MAAM,EACd,UAAU,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,EAClD,eAAe,EAAE,MAAM,EACvB,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,cAAc,CAAC;IA6B1B;;OAEG;IACG,cAAc,CAClB,OAAO,EAAE,OAAO,EAChB,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,GACjD,OAAO,CAAC,cAAc,CAAC;IAqB1B;;OAEG;IACG,gBAAgB,CACpB,OAAO,EAAE,OAAO,EAChB,cAAc,EAAE,MAAM,GACrB,OAAO,CAAC,cAAc,CAAC;IAqB1B;;OAEG;IACG,WAAW,CACf,OAAO,EAAE,OAAO,EAChB,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,MAAM,EAClB,eAAe,CAAC,EAAE,MAAM,EACxB,UAAU,CAAC,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,GAClD,OAAO,CAAC,cAAc,CAAC;IAyB1B;;OAEG;IACG,gBAAgB,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,cAAc,CAAC;CAalE;AAQD,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,OAAO,GAAG,eAAe,CAKpE"}
|
|
@@ -2,6 +2,7 @@ import { uintCV, tupleCV, bufferCV, noneCV, someCV } from "@stacks/transactions"
|
|
|
2
2
|
import { getHiroApi } from "./hiro-api.js";
|
|
3
3
|
import { getContracts, parseContractId } from "../config/index.js";
|
|
4
4
|
import { callContract } from "../transactions/builder.js";
|
|
5
|
+
import { createStxPostCondition } from "../transactions/post-conditions.js";
|
|
5
6
|
// ============================================================================
|
|
6
7
|
// Stacking Service
|
|
7
8
|
// ============================================================================
|
|
@@ -65,11 +66,14 @@ export class StackingService {
|
|
|
65
66
|
uintCV(startBurnHeight),
|
|
66
67
|
uintCV(lockPeriod),
|
|
67
68
|
];
|
|
69
|
+
// Add post condition: sender must lock exactly `amount` of STX
|
|
70
|
+
const postCondition = createStxPostCondition(account.address, "eq", amount);
|
|
68
71
|
return callContract(account, {
|
|
69
72
|
contractAddress,
|
|
70
73
|
contractName,
|
|
71
74
|
functionName: "stack-stx",
|
|
72
75
|
functionArgs,
|
|
76
|
+
postConditions: [postCondition],
|
|
73
77
|
});
|
|
74
78
|
}
|
|
75
79
|
/**
|
|
@@ -84,11 +88,13 @@ export class StackingService {
|
|
|
84
88
|
hashbytes: bufferCV(Buffer.from(poxAddress.hashbytes, "hex")),
|
|
85
89
|
}),
|
|
86
90
|
];
|
|
91
|
+
// No assets moved from sender (extends existing lock period)
|
|
87
92
|
return callContract(account, {
|
|
88
93
|
contractAddress,
|
|
89
94
|
contractName,
|
|
90
95
|
functionName: "stack-extend",
|
|
91
96
|
functionArgs,
|
|
97
|
+
postConditions: [],
|
|
92
98
|
});
|
|
93
99
|
}
|
|
94
100
|
/**
|
|
@@ -97,11 +103,14 @@ export class StackingService {
|
|
|
97
103
|
async increaseStacking(account, increaseAmount) {
|
|
98
104
|
const { address: contractAddress, name: contractName } = parseContractId(this.contracts.POX_4);
|
|
99
105
|
const functionArgs = [uintCV(increaseAmount)];
|
|
106
|
+
// Add post condition: sender must lock exactly `increaseAmount` of additional STX
|
|
107
|
+
const postCondition = createStxPostCondition(account.address, "eq", increaseAmount);
|
|
100
108
|
return callContract(account, {
|
|
101
109
|
contractAddress,
|
|
102
110
|
contractName,
|
|
103
111
|
functionName: "stack-increase",
|
|
104
112
|
functionArgs,
|
|
113
|
+
postConditions: [postCondition],
|
|
105
114
|
});
|
|
106
115
|
}
|
|
107
116
|
/**
|
|
@@ -120,11 +129,13 @@ export class StackingService {
|
|
|
120
129
|
}))
|
|
121
130
|
: noneCV(),
|
|
122
131
|
];
|
|
132
|
+
// No assets moved from sender (delegation is permission, not transfer)
|
|
123
133
|
return callContract(account, {
|
|
124
134
|
contractAddress,
|
|
125
135
|
contractName,
|
|
126
136
|
functionName: "delegate-stx",
|
|
127
137
|
functionArgs,
|
|
138
|
+
postConditions: [],
|
|
128
139
|
});
|
|
129
140
|
}
|
|
130
141
|
/**
|
|
@@ -132,11 +143,13 @@ export class StackingService {
|
|
|
132
143
|
*/
|
|
133
144
|
async revokeDelegation(account) {
|
|
134
145
|
const { address: contractAddress, name: contractName } = parseContractId(this.contracts.POX_4);
|
|
146
|
+
// No assets moved from sender (revokes delegation permission)
|
|
135
147
|
return callContract(account, {
|
|
136
148
|
contractAddress,
|
|
137
149
|
contractName,
|
|
138
150
|
functionName: "revoke-delegate-stx",
|
|
139
151
|
functionArgs: [],
|
|
152
|
+
postConditions: [],
|
|
140
153
|
});
|
|
141
154
|
}
|
|
142
155
|
}
|