@andrewkimjoseph/celina-sdk 0.4.11 → 0.4.12
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/build/analytics/mcp-tool-events.js +1 -0
- package/build/analytics/mcp-tool-events.js.map +1 -1
- package/build/services/blockchain.service.d.ts +33 -3
- package/build/services/blockchain.service.js +40 -21
- package/build/services/blockchain.service.js.map +1 -1
- package/package.json +1 -1
- package/tests/catalog/domains/blockchain.ts +24 -0
|
@@ -6,6 +6,7 @@ export const MCP_TOOL_EVENT_BY_SDK_METHOD = {
|
|
|
6
6
|
"account.getAccount": "get_account",
|
|
7
7
|
"account.getWalletAddress": "get_wallet_address",
|
|
8
8
|
"blockchain.getBlock": "get_block",
|
|
9
|
+
"blockchain.getBlockWithTransactions": "get_block",
|
|
9
10
|
"blockchain.getLatestBlocks": "get_latest_blocks",
|
|
10
11
|
"blockchain.getNetworkStatus": "get_network_status",
|
|
11
12
|
"blockchain.getTransaction": "get_transaction",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcp-tool-events.js","sourceRoot":"","sources":["../../src/analytics/mcp-tool-events.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,CAAC,MAAM,4BAA4B,GAAqC;IAC5E,oBAAoB,EAAE,aAAa;IACnC,0BAA0B,EAAE,oBAAoB;IAChD,qBAAqB,EAAE,WAAW;IAClC,4BAA4B,EAAE,mBAAmB;IACjD,6BAA6B,EAAE,oBAAoB;IACnD,2BAA2B,EAAE,iBAAiB;IAC9C,oBAAoB,EAAE,qBAAqB;IAC3C,0BAA0B,EAAE,2BAA2B;IACvD,oBAAoB,EAAE,qBAAqB;IAC3C,wBAAwB,EAAE,0BAA0B;IACpD,yBAAyB,EAAE,2BAA2B;IACtD,sBAAsB,EAAE,uBAAuB;IAC/C,oBAAoB,EAAE,qBAAqB;IAC3C,sBAAsB,EAAE,wBAAwB;IAChD,aAAa,EAAE,aAAa;IAC5B,cAAc,EAAE,cAAc;IAC9B,qBAAqB,EAAE,sBAAsB;IAC7C,yBAAyB,EAAE,0BAA0B;IACrD,uBAAuB,EAAE,wBAAwB;IACjD,sBAAsB,EAAE,uBAAuB;IAC/C,gBAAgB,EAAE,aAAa;IAC/B,mCAAmC,EAAE,gCAAgC;IACrE,gCAAgC,EAAE,kCAAkC;IACpE,mCAAmC,EAAE,0BAA0B;IAC/D,+BAA+B,EAAE,sBAAsB;IACvD,oBAAoB,EAAE,mBAAmB;IACzC,oBAAoB,EAAE,oBAAoB;IAC1C,mBAAmB,EAAE,iBAAiB;IACtC,gBAAgB,EAAE,cAAc;IAChC,6BAA6B,EAAE,0BAA0B;IACzD,4BAA4B,EAAE,yBAAyB;IACvD,sBAAsB,EAAE,mBAAmB;IAC3C,sBAAsB,EAAE,mBAAmB;IAC3C,sBAAsB,EAAE,mBAAmB;IAC3C,sBAAsB,EAAE,mBAAmB;IAC3C,wBAAwB,EAAE,qBAAqB;IAC/C,8BAA8B,EAAE,wBAAwB;IACxD,4BAA4B,EAAE,sBAAsB;IACpD,6BAA6B,EAAE,wBAAwB;IACvD,kCAAkC,EAAE,6BAA6B;IACjE,4BAA4B,EAAE,sBAAsB;IACpD,mBAAmB,EAAE,mBAAmB;IACxC,6BAA6B,EAAE,yBAAyB;IACxD,uBAAuB,EAAE,mBAAmB;IAC5C,oBAAoB,EAAE,gBAAgB;IACtC,0BAA0B,EAAE,eAAe;IAC3C,iCAAiC,EAAE,sBAAsB;IACzD,2BAA2B,EAAE,kBAAkB;IAC/C,sBAAsB,EAAE,uBAAuB;IAC/C,sBAAsB,EAAE,mBAAmB;CACnC,CAAC"}
|
|
1
|
+
{"version":3,"file":"mcp-tool-events.js","sourceRoot":"","sources":["../../src/analytics/mcp-tool-events.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,CAAC,MAAM,4BAA4B,GAAqC;IAC5E,oBAAoB,EAAE,aAAa;IACnC,0BAA0B,EAAE,oBAAoB;IAChD,qBAAqB,EAAE,WAAW;IAClC,qCAAqC,EAAE,WAAW;IAClD,4BAA4B,EAAE,mBAAmB;IACjD,6BAA6B,EAAE,oBAAoB;IACnD,2BAA2B,EAAE,iBAAiB;IAC9C,oBAAoB,EAAE,qBAAqB;IAC3C,0BAA0B,EAAE,2BAA2B;IACvD,oBAAoB,EAAE,qBAAqB;IAC3C,wBAAwB,EAAE,0BAA0B;IACpD,yBAAyB,EAAE,2BAA2B;IACtD,sBAAsB,EAAE,uBAAuB;IAC/C,oBAAoB,EAAE,qBAAqB;IAC3C,sBAAsB,EAAE,wBAAwB;IAChD,aAAa,EAAE,aAAa;IAC5B,cAAc,EAAE,cAAc;IAC9B,qBAAqB,EAAE,sBAAsB;IAC7C,yBAAyB,EAAE,0BAA0B;IACrD,uBAAuB,EAAE,wBAAwB;IACjD,sBAAsB,EAAE,uBAAuB;IAC/C,gBAAgB,EAAE,aAAa;IAC/B,mCAAmC,EAAE,gCAAgC;IACrE,gCAAgC,EAAE,kCAAkC;IACpE,mCAAmC,EAAE,0BAA0B;IAC/D,+BAA+B,EAAE,sBAAsB;IACvD,oBAAoB,EAAE,mBAAmB;IACzC,oBAAoB,EAAE,oBAAoB;IAC1C,mBAAmB,EAAE,iBAAiB;IACtC,gBAAgB,EAAE,cAAc;IAChC,6BAA6B,EAAE,0BAA0B;IACzD,4BAA4B,EAAE,yBAAyB;IACvD,sBAAsB,EAAE,mBAAmB;IAC3C,sBAAsB,EAAE,mBAAmB;IAC3C,sBAAsB,EAAE,mBAAmB;IAC3C,sBAAsB,EAAE,mBAAmB;IAC3C,wBAAwB,EAAE,qBAAqB;IAC/C,8BAA8B,EAAE,wBAAwB;IACxD,4BAA4B,EAAE,sBAAsB;IACpD,6BAA6B,EAAE,wBAAwB;IACvD,kCAAkC,EAAE,6BAA6B;IACjE,4BAA4B,EAAE,sBAAsB;IACpD,mBAAmB,EAAE,mBAAmB;IACxC,6BAA6B,EAAE,yBAAyB;IACxD,uBAAuB,EAAE,mBAAmB;IAC5C,oBAAoB,EAAE,gBAAgB;IACtC,0BAA0B,EAAE,eAAe;IAC3C,iCAAiC,EAAE,sBAAsB;IACzD,2BAA2B,EAAE,kBAAkB;IAC/C,sBAAsB,EAAE,uBAAuB;IAC/C,sBAAsB,EAAE,mBAAmB;CACnC,CAAC"}
|
|
@@ -35,7 +35,21 @@ export declare class BlockchainService {
|
|
|
35
35
|
gasUtilization: number;
|
|
36
36
|
miner: `0x${string}`;
|
|
37
37
|
transactionCount: number;
|
|
38
|
-
transactions: `0x${string}`
|
|
38
|
+
transactions: (`0x${string}` | {
|
|
39
|
+
hash: `0x${string}`;
|
|
40
|
+
from: `0x${string}`;
|
|
41
|
+
to: `0x${string}` | null;
|
|
42
|
+
value: string;
|
|
43
|
+
valueCelo: number;
|
|
44
|
+
nonce: number;
|
|
45
|
+
gas: string;
|
|
46
|
+
gasPrice: string | undefined;
|
|
47
|
+
gasPriceGwei: number | undefined;
|
|
48
|
+
input: `0x${string}`;
|
|
49
|
+
blockNumber: string | undefined;
|
|
50
|
+
transactionIndex: number | null | undefined;
|
|
51
|
+
type: string | undefined;
|
|
52
|
+
})[] | undefined;
|
|
39
53
|
}>;
|
|
40
54
|
/**
|
|
41
55
|
* List recent blocks ending at the chain tip (newest last in the array).
|
|
@@ -66,12 +80,28 @@ export declare class BlockchainService {
|
|
|
66
80
|
valueCelo: number;
|
|
67
81
|
nonce: number;
|
|
68
82
|
gas: string;
|
|
83
|
+
gasPrice: string | undefined;
|
|
84
|
+
gasPriceGwei: number | undefined;
|
|
85
|
+
input: `0x${string}`;
|
|
86
|
+
blockNumber: string | undefined;
|
|
87
|
+
transactionIndex: number | null | undefined;
|
|
88
|
+
type: string | undefined;
|
|
89
|
+
} | {
|
|
90
|
+
status?: string | undefined;
|
|
69
91
|
gasUsed: string;
|
|
70
92
|
gasEfficiency: number;
|
|
93
|
+
hash: `0x${string}`;
|
|
94
|
+
from: `0x${string}`;
|
|
95
|
+
to: `0x${string}` | null;
|
|
96
|
+
value: string;
|
|
97
|
+
valueCelo: number;
|
|
98
|
+
nonce: number;
|
|
99
|
+
gas: string;
|
|
71
100
|
gasPrice: string | undefined;
|
|
72
101
|
gasPriceGwei: number | undefined;
|
|
73
102
|
input: `0x${string}`;
|
|
74
|
-
blockNumber: string;
|
|
75
|
-
|
|
103
|
+
blockNumber: string | undefined;
|
|
104
|
+
transactionIndex: number | null | undefined;
|
|
105
|
+
type: string | undefined;
|
|
76
106
|
}>;
|
|
77
107
|
}
|
|
@@ -1,3 +1,32 @@
|
|
|
1
|
+
function serializeTransactionSummary(tx, extras) {
|
|
2
|
+
const base = {
|
|
3
|
+
hash: tx.hash,
|
|
4
|
+
from: tx.from,
|
|
5
|
+
to: tx.to,
|
|
6
|
+
value: tx.value.toString(),
|
|
7
|
+
valueCelo: Number(tx.value) / 1e18,
|
|
8
|
+
nonce: tx.nonce,
|
|
9
|
+
gas: tx.gas.toString(),
|
|
10
|
+
gasPrice: tx.gasPrice?.toString(),
|
|
11
|
+
gasPriceGwei: tx.gasPrice ? Number(tx.gasPrice) / 1e9 : undefined,
|
|
12
|
+
input: tx.input,
|
|
13
|
+
blockNumber: tx.blockNumber?.toString(),
|
|
14
|
+
transactionIndex: tx.transactionIndex,
|
|
15
|
+
type: tx.type,
|
|
16
|
+
};
|
|
17
|
+
if (!extras) {
|
|
18
|
+
return base;
|
|
19
|
+
}
|
|
20
|
+
const gasEfficiency = tx.gas > 0n
|
|
21
|
+
? Number((extras.gasUsed * 10000n) / tx.gas) / 100
|
|
22
|
+
: 0;
|
|
23
|
+
return {
|
|
24
|
+
...base,
|
|
25
|
+
gasUsed: extras.gasUsed.toString(),
|
|
26
|
+
gasEfficiency,
|
|
27
|
+
...(extras.status !== undefined ? { status: extras.status } : {}),
|
|
28
|
+
};
|
|
29
|
+
}
|
|
1
30
|
/** Celo mainnet block and transaction queries. */
|
|
2
31
|
export class BlockchainService {
|
|
3
32
|
clientFactory;
|
|
@@ -35,16 +64,16 @@ export class BlockchainService {
|
|
|
35
64
|
const blockParams = typeof blockId === "number"
|
|
36
65
|
? {
|
|
37
66
|
blockNumber: BigInt(blockId),
|
|
38
|
-
includeTransactions
|
|
67
|
+
includeTransactions,
|
|
39
68
|
}
|
|
40
69
|
: blockId === "latest" || blockId === "pending"
|
|
41
70
|
? {
|
|
42
71
|
blockTag: blockId,
|
|
43
|
-
includeTransactions
|
|
72
|
+
includeTransactions,
|
|
44
73
|
}
|
|
45
74
|
: {
|
|
46
75
|
blockHash: blockId,
|
|
47
|
-
includeTransactions
|
|
76
|
+
includeTransactions,
|
|
48
77
|
};
|
|
49
78
|
const block = await client.getBlock(blockParams);
|
|
50
79
|
if (!block) {
|
|
@@ -63,7 +92,11 @@ export class BlockchainService {
|
|
|
63
92
|
gasUtilization,
|
|
64
93
|
miner: block.miner,
|
|
65
94
|
transactionCount: block.transactions.length,
|
|
66
|
-
transactions: includeTransactions
|
|
95
|
+
transactions: includeTransactions
|
|
96
|
+
? block.transactions.map((tx) => typeof tx === "string"
|
|
97
|
+
? tx
|
|
98
|
+
: serializeTransactionSummary(tx))
|
|
99
|
+
: undefined,
|
|
67
100
|
};
|
|
68
101
|
}
|
|
69
102
|
/**
|
|
@@ -109,24 +142,10 @@ export class BlockchainService {
|
|
|
109
142
|
if (!tx) {
|
|
110
143
|
throw new Error(`Transaction not found: ${hash}`);
|
|
111
144
|
}
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
return {
|
|
115
|
-
hash: tx.hash,
|
|
116
|
-
from: tx.from,
|
|
117
|
-
to: tx.to,
|
|
118
|
-
value: tx.value.toString(),
|
|
119
|
-
valueCelo: Number(tx.value) / 1e18,
|
|
120
|
-
nonce: tx.nonce,
|
|
121
|
-
gas: tx.gas.toString(),
|
|
122
|
-
gasUsed: gasUsed.toString(),
|
|
123
|
-
gasEfficiency,
|
|
124
|
-
gasPrice: tx.gasPrice?.toString(),
|
|
125
|
-
gasPriceGwei: tx.gasPrice ? Number(tx.gasPrice) / 1e9 : undefined,
|
|
126
|
-
input: tx.input,
|
|
127
|
-
blockNumber: tx.blockNumber?.toString(),
|
|
145
|
+
return serializeTransactionSummary(tx, {
|
|
146
|
+
gasUsed: receipt?.gasUsed ?? 0n,
|
|
128
147
|
status: receipt?.status,
|
|
129
|
-
};
|
|
148
|
+
});
|
|
130
149
|
}
|
|
131
150
|
}
|
|
132
151
|
//# sourceMappingURL=blockchain.service.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"blockchain.service.js","sourceRoot":"","sources":["../../src/services/blockchain.service.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"blockchain.service.js","sourceRoot":"","sources":["../../src/services/blockchain.service.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -42,6 +42,30 @@ export const blockchainOperations: OperationSpec[] = [
|
|
|
42
42
|
assertHasKeys(result, ["number", "hash"]);
|
|
43
43
|
},
|
|
44
44
|
},
|
|
45
|
+
{
|
|
46
|
+
id: "blockchain.getBlockWithTransactions",
|
|
47
|
+
domain: "blockchain",
|
|
48
|
+
layer: "read",
|
|
49
|
+
sdk: {
|
|
50
|
+
invoke: (client, fx) =>
|
|
51
|
+
client.blockchain.getBlock(Number(fx.latestBlockNumber), {
|
|
52
|
+
includeTransactions: true,
|
|
53
|
+
}),
|
|
54
|
+
},
|
|
55
|
+
mcp: {
|
|
56
|
+
tool: "get_block",
|
|
57
|
+
arguments: (fx) => ({
|
|
58
|
+
blockId: Number(fx.latestBlockNumber),
|
|
59
|
+
includeTransactions: true,
|
|
60
|
+
}),
|
|
61
|
+
},
|
|
62
|
+
assert: (result) => {
|
|
63
|
+
const obj = assertHasKeys(result, ["number", "hash", "transactions"]);
|
|
64
|
+
expect(() => JSON.stringify(result)).not.toThrow();
|
|
65
|
+
const txs = assertArray(obj.transactions);
|
|
66
|
+
expect(txs.length).toBeGreaterThan(0);
|
|
67
|
+
},
|
|
68
|
+
},
|
|
45
69
|
{
|
|
46
70
|
id: "blockchain.getLatestBlocks",
|
|
47
71
|
domain: "blockchain",
|