@tangram-mover/sdk 0.1.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 +349 -0
- package/dist/src/analyzer/analyzer.d.ts +35 -0
- package/dist/src/analyzer/analyzer.d.ts.map +1 -0
- package/dist/src/analyzer/analyzer.js +74 -0
- package/dist/src/analyzer/analyzer.js.map +1 -0
- package/dist/src/analyzer/index.d.ts +7 -0
- package/dist/src/analyzer/index.d.ts.map +1 -0
- package/dist/src/analyzer/index.js +25 -0
- package/dist/src/analyzer/index.js.map +1 -0
- package/dist/src/analyzer/invariants.d.ts +25 -0
- package/dist/src/analyzer/invariants.d.ts.map +1 -0
- package/dist/src/analyzer/invariants.js +159 -0
- package/dist/src/analyzer/invariants.js.map +1 -0
- package/dist/src/analyzer/types.d.ts +63 -0
- package/dist/src/analyzer/types.d.ts.map +1 -0
- package/dist/src/analyzer/types.js +21 -0
- package/dist/src/analyzer/types.js.map +1 -0
- package/dist/src/index.d.ts +14 -0
- package/dist/src/index.d.ts.map +1 -0
- package/dist/src/index.js +42 -0
- package/dist/src/index.js.map +1 -0
- package/dist/src/tangram-mover.d.ts +95 -0
- package/dist/src/tangram-mover.d.ts.map +1 -0
- package/dist/src/tangram-mover.js +254 -0
- package/dist/src/tangram-mover.js.map +1 -0
- package/dist/src/tracer/index.d.ts +6 -0
- package/dist/src/tracer/index.d.ts.map +1 -0
- package/dist/src/tracer/index.js +24 -0
- package/dist/src/tracer/index.js.map +1 -0
- package/dist/src/tracer/tracer.d.ts +26 -0
- package/dist/src/tracer/tracer.d.ts.map +1 -0
- package/dist/src/tracer/tracer.js +123 -0
- package/dist/src/tracer/tracer.js.map +1 -0
- package/dist/src/tracer/types.d.ts +110 -0
- package/dist/src/tracer/types.d.ts.map +1 -0
- package/dist/src/tracer/types.js +7 -0
- package/dist/src/tracer/types.js.map +1 -0
- package/dist/src/types/index.d.ts +44 -0
- package/dist/src/types/index.d.ts.map +1 -0
- package/dist/src/types/index.js +6 -0
- package/dist/src/types/index.js.map +1 -0
- package/dist/src/utils/parsers.d.ts +10 -0
- package/dist/src/utils/parsers.d.ts.map +1 -0
- package/dist/src/utils/parsers.js +120 -0
- package/dist/src/utils/parsers.js.map +1 -0
- package/dist/src/utils/rpc-client.d.ts +32 -0
- package/dist/src/utils/rpc-client.d.ts.map +1 -0
- package/dist/src/utils/rpc-client.js +92 -0
- package/dist/src/utils/rpc-client.js.map +1 -0
- package/dist/tests/analyzer.test.d.ts +5 -0
- package/dist/tests/analyzer.test.d.ts.map +1 -0
- package/dist/tests/analyzer.test.js +128 -0
- package/dist/tests/analyzer.test.js.map +1 -0
- package/dist/tests/integration.test.d.ts +6 -0
- package/dist/tests/integration.test.d.ts.map +1 -0
- package/dist/tests/integration.test.js +49 -0
- package/dist/tests/integration.test.js.map +1 -0
- package/dist/tests/tracer.test.d.ts +5 -0
- package/dist/tests/tracer.test.d.ts.map +1 -0
- package/dist/tests/tracer.test.js +197 -0
- package/dist/tests/tracer.test.js.map +1 -0
- package/package.json +44 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tangram-mover.js","sourceRoot":"","sources":["../../src/tangram-mover.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/tracer/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,cAAc,SAAS,CAAC"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Tracer module exports
|
|
4
|
+
*/
|
|
5
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
6
|
+
if (k2 === undefined) k2 = k;
|
|
7
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
8
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
9
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
10
|
+
}
|
|
11
|
+
Object.defineProperty(o, k2, desc);
|
|
12
|
+
}) : (function(o, m, k, k2) {
|
|
13
|
+
if (k2 === undefined) k2 = k;
|
|
14
|
+
o[k2] = m[k];
|
|
15
|
+
}));
|
|
16
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
17
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
18
|
+
};
|
|
19
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
20
|
+
exports.Tracer = void 0;
|
|
21
|
+
var tracer_1 = require("./tracer");
|
|
22
|
+
Object.defineProperty(exports, "Tracer", { enumerable: true, get: function () { return tracer_1.Tracer; } });
|
|
23
|
+
__exportStar(require("./types"), exports);
|
|
24
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/tracer/index.ts"],"names":[],"mappings":";AAAA;;GAEG;;;;;;;;;;;;;;;;;AAEH,mCAAkC;AAAzB,gGAAA,MAAM,OAAA;AACf,0CAAwB"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Transaction tracer for fetching and parsing Sui transaction traces
|
|
3
|
+
*/
|
|
4
|
+
import { RpcClient } from '../utils/rpc-client';
|
|
5
|
+
import type { TraceData } from './types';
|
|
6
|
+
import type { SuiTransactionBlockResponse } from '@mysten/sui/client';
|
|
7
|
+
/**
|
|
8
|
+
* Tracer class for fetching and parsing transaction traces
|
|
9
|
+
*/
|
|
10
|
+
export declare class Tracer {
|
|
11
|
+
private rpcClient;
|
|
12
|
+
constructor(rpcClient: RpcClient);
|
|
13
|
+
/**
|
|
14
|
+
* Fetch and parse transaction trace
|
|
15
|
+
*/
|
|
16
|
+
fetchTrace(digest: string): Promise<TraceData>;
|
|
17
|
+
/**
|
|
18
|
+
* Parse transaction response into structured trace data
|
|
19
|
+
*/
|
|
20
|
+
parseTrace(response: SuiTransactionBlockResponse): TraceData;
|
|
21
|
+
/**
|
|
22
|
+
* Fetch multiple transaction traces
|
|
23
|
+
*/
|
|
24
|
+
fetchTraces(digests: string[]): Promise<TraceData[]>;
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=tracer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tracer.d.ts","sourceRoot":"","sources":["../../../src/tracer/tracer.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAEhD,OAAO,KAAK,EAAE,SAAS,EAAyC,MAAM,SAAS,CAAC;AAChF,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,oBAAoB,CAAC;AAEtE;;GAEG;AACH,qBAAa,MAAM;IACjB,OAAO,CAAC,SAAS,CAAY;gBAEjB,SAAS,EAAE,SAAS;IAIhC;;OAEG;IACG,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC;IAKpD;;OAEG;IACH,UAAU,CAAC,QAAQ,EAAE,2BAA2B,GAAG,SAAS;IAqG5D;;OAEG;IACG,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;CAI3D"}
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Transaction tracer for fetching and parsing Sui transaction traces
|
|
4
|
+
*/
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.Tracer = void 0;
|
|
7
|
+
const parsers_1 = require("../utils/parsers");
|
|
8
|
+
/**
|
|
9
|
+
* Tracer class for fetching and parsing transaction traces
|
|
10
|
+
*/
|
|
11
|
+
class Tracer {
|
|
12
|
+
constructor(rpcClient) {
|
|
13
|
+
this.rpcClient = rpcClient;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Fetch and parse transaction trace
|
|
17
|
+
*/
|
|
18
|
+
async fetchTrace(digest) {
|
|
19
|
+
const response = await this.rpcClient.getTransactionBlock(digest);
|
|
20
|
+
return this.parseTrace(response);
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Parse transaction response into structured trace data
|
|
24
|
+
*/
|
|
25
|
+
parseTrace(response) {
|
|
26
|
+
const digest = response.digest;
|
|
27
|
+
// Extract sender
|
|
28
|
+
const sender = response.transaction?.data?.sender || 'unknown';
|
|
29
|
+
// Extract status and gas metrics from effects
|
|
30
|
+
let status = 'unknown';
|
|
31
|
+
let gas_computation = 0;
|
|
32
|
+
let gas_storage = 0;
|
|
33
|
+
let gas_storage_rebate = 0;
|
|
34
|
+
let objects_created = 0;
|
|
35
|
+
let objects_mutated = 0;
|
|
36
|
+
let objects_deleted = 0;
|
|
37
|
+
if (response.effects) {
|
|
38
|
+
const effects = response.effects;
|
|
39
|
+
// Determine status
|
|
40
|
+
if (effects.status?.status === 'success') {
|
|
41
|
+
status = 'success';
|
|
42
|
+
}
|
|
43
|
+
else {
|
|
44
|
+
status = 'failure';
|
|
45
|
+
}
|
|
46
|
+
// Extract gas information
|
|
47
|
+
if (effects.gasUsed) {
|
|
48
|
+
gas_computation = Number(effects.gasUsed.computationCost || 0);
|
|
49
|
+
gas_storage_rebate = Number(effects.gasUsed.storageRebate || 0);
|
|
50
|
+
const storageCost = Number(effects.gasUsed.storageCost || 0);
|
|
51
|
+
gas_storage = storageCost - gas_storage_rebate;
|
|
52
|
+
}
|
|
53
|
+
// Count object changes
|
|
54
|
+
objects_created = effects.created?.length || 0;
|
|
55
|
+
objects_mutated = effects.mutated?.length || 0;
|
|
56
|
+
objects_deleted = (effects.deleted?.length || 0) +
|
|
57
|
+
(effects.wrapped?.length || 0) +
|
|
58
|
+
(effects.unwrappedThenDeleted?.length || 0);
|
|
59
|
+
}
|
|
60
|
+
// Extract events
|
|
61
|
+
const events = (response.events || []).map((event) => ({
|
|
62
|
+
type: event.type || '',
|
|
63
|
+
packageId: event.packageId,
|
|
64
|
+
module: event.parsedJson?.module,
|
|
65
|
+
sender: event.sender,
|
|
66
|
+
parsedJson: event.parsedJson,
|
|
67
|
+
bcs: event.bcs,
|
|
68
|
+
}));
|
|
69
|
+
// Extract balance changes
|
|
70
|
+
const balance_changes = (response.balanceChanges || []).map((bc) => ({
|
|
71
|
+
owner: bc.owner || '',
|
|
72
|
+
coinType: bc.coinType || '',
|
|
73
|
+
amount: bc.amount || '0',
|
|
74
|
+
}));
|
|
75
|
+
// Calculate net balance change
|
|
76
|
+
const net_balance_change = balance_changes.reduce((sum, bc) => {
|
|
77
|
+
const amount = typeof bc.amount === 'string' ? parseInt(bc.amount) : bc.amount;
|
|
78
|
+
return sum + amount;
|
|
79
|
+
}, 0);
|
|
80
|
+
// Extract object changes
|
|
81
|
+
const object_changes = (response.objectChanges || []).map((oc) => ({
|
|
82
|
+
objectId: oc.objectId || '',
|
|
83
|
+
type: oc.type || '',
|
|
84
|
+
objectType: oc.objectType || '',
|
|
85
|
+
owner: oc.owner,
|
|
86
|
+
previousOwner: oc.previousOwner,
|
|
87
|
+
}));
|
|
88
|
+
// Parse PTB commands
|
|
89
|
+
const ptb_commands = (0, parsers_1.parsePTBCommands)(response);
|
|
90
|
+
const has_move_calls = ptb_commands.some(cmd => cmd.command_type === 'MoveCall');
|
|
91
|
+
return {
|
|
92
|
+
digest,
|
|
93
|
+
sender,
|
|
94
|
+
status,
|
|
95
|
+
gas_computation,
|
|
96
|
+
gas_storage,
|
|
97
|
+
gas_storage_rebate,
|
|
98
|
+
effects: response.effects,
|
|
99
|
+
events,
|
|
100
|
+
balance_changes,
|
|
101
|
+
object_changes,
|
|
102
|
+
ptb_commands,
|
|
103
|
+
num_commands: ptb_commands.length,
|
|
104
|
+
num_events: events.length,
|
|
105
|
+
num_balance_changes: balance_changes.length,
|
|
106
|
+
num_object_changes: object_changes.length,
|
|
107
|
+
objects_created,
|
|
108
|
+
objects_mutated,
|
|
109
|
+
objects_deleted,
|
|
110
|
+
has_move_calls,
|
|
111
|
+
net_balance_change,
|
|
112
|
+
};
|
|
113
|
+
}
|
|
114
|
+
/**
|
|
115
|
+
* Fetch multiple transaction traces
|
|
116
|
+
*/
|
|
117
|
+
async fetchTraces(digests) {
|
|
118
|
+
const responses = await this.rpcClient.getTransactionBlocks(digests);
|
|
119
|
+
return responses.map(response => this.parseTrace(response));
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
exports.Tracer = Tracer;
|
|
123
|
+
//# sourceMappingURL=tracer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tracer.js","sourceRoot":"","sources":["../../../src/tracer/tracer.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAGH,8CAAoD;AAIpD;;GAEG;AACH,MAAa,MAAM;IAGjB,YAAY,SAAoB;QAC9B,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC7B,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,UAAU,CAAC,MAAc;QAC7B,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC;QAClE,OAAO,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;IACnC,CAAC;IAED;;OAEG;IACH,UAAU,CAAC,QAAqC;QAC9C,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC;QAE/B,iBAAiB;QACjB,MAAM,MAAM,GAAG,QAAQ,CAAC,WAAW,EAAE,IAAI,EAAE,MAAM,IAAI,SAAS,CAAC;QAE/D,8CAA8C;QAC9C,IAAI,MAAM,GAAG,SAAS,CAAC;QACvB,IAAI,eAAe,GAAG,CAAC,CAAC;QACxB,IAAI,WAAW,GAAG,CAAC,CAAC;QACpB,IAAI,kBAAkB,GAAG,CAAC,CAAC;QAC3B,IAAI,eAAe,GAAG,CAAC,CAAC;QACxB,IAAI,eAAe,GAAG,CAAC,CAAC;QACxB,IAAI,eAAe,GAAG,CAAC,CAAC;QAExB,IAAI,QAAQ,CAAC,OAAO,EAAE,CAAC;YACrB,MAAM,OAAO,GAAG,QAAQ,CAAC,OAAc,CAAC;YAExC,mBAAmB;YACnB,IAAI,OAAO,CAAC,MAAM,EAAE,MAAM,KAAK,SAAS,EAAE,CAAC;gBACzC,MAAM,GAAG,SAAS,CAAC;YACrB,CAAC;iBAAM,CAAC;gBACN,MAAM,GAAG,SAAS,CAAC;YACrB,CAAC;YAED,0BAA0B;YAC1B,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;gBACpB,eAAe,GAAG,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,eAAe,IAAI,CAAC,CAAC,CAAC;gBAC/D,kBAAkB,GAAG,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,aAAa,IAAI,CAAC,CAAC,CAAC;gBAChE,MAAM,WAAW,GAAG,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,WAAW,IAAI,CAAC,CAAC,CAAC;gBAC7D,WAAW,GAAG,WAAW,GAAG,kBAAkB,CAAC;YACjD,CAAC;YAED,uBAAuB;YACvB,eAAe,GAAG,OAAO,CAAC,OAAO,EAAE,MAAM,IAAI,CAAC,CAAC;YAC/C,eAAe,GAAG,OAAO,CAAC,OAAO,EAAE,MAAM,IAAI,CAAC,CAAC;YAC/C,eAAe,GAAG,CAAC,OAAO,CAAC,OAAO,EAAE,MAAM,IAAI,CAAC,CAAC;gBAC/B,CAAC,OAAO,CAAC,OAAO,EAAE,MAAM,IAAI,CAAC,CAAC;gBAC9B,CAAC,OAAO,CAAC,oBAAoB,EAAE,MAAM,IAAI,CAAC,CAAC,CAAC;QAC/D,CAAC;QAED,iBAAiB;QACjB,MAAM,MAAM,GAAe,CAAC,QAAQ,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,KAAU,EAAE,EAAE,CAAC,CAAC;YACtE,IAAI,EAAE,KAAK,CAAC,IAAI,IAAI,EAAE;YACtB,SAAS,EAAE,KAAK,CAAC,SAAS;YAC1B,MAAM,EAAE,KAAK,CAAC,UAAU,EAAE,MAAM;YAChC,MAAM,EAAE,KAAK,CAAC,MAAM;YACpB,UAAU,EAAE,KAAK,CAAC,UAAU;YAC5B,GAAG,EAAE,KAAK,CAAC,GAAG;SACf,CAAC,CAAC,CAAC;QAEJ,0BAA0B;QAC1B,MAAM,eAAe,GAAoB,CAAC,QAAQ,CAAC,cAAc,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,EAAO,EAAE,EAAE,CAAC,CAAC;YACzF,KAAK,EAAE,EAAE,CAAC,KAAK,IAAI,EAAE;YACrB,QAAQ,EAAE,EAAE,CAAC,QAAQ,IAAI,EAAE;YAC3B,MAAM,EAAE,EAAE,CAAC,MAAM,IAAI,GAAG;SACzB,CAAC,CAAC,CAAC;QAEJ,+BAA+B;QAC/B,MAAM,kBAAkB,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE;YAC5D,MAAM,MAAM,GAAG,OAAO,EAAE,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC;YAC/E,OAAO,GAAG,GAAG,MAAM,CAAC;QACtB,CAAC,EAAE,CAAC,CAAC,CAAC;QAEN,yBAAyB;QACzB,MAAM,cAAc,GAAmB,CAAC,QAAQ,CAAC,aAAa,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,EAAO,EAAE,EAAE,CAAC,CAAC;YACtF,QAAQ,EAAE,EAAE,CAAC,QAAQ,IAAI,EAAE;YAC3B,IAAI,EAAE,EAAE,CAAC,IAAI,IAAI,EAAE;YACnB,UAAU,EAAE,EAAE,CAAC,UAAU,IAAI,EAAE;YAC/B,KAAK,EAAE,EAAE,CAAC,KAAK;YACf,aAAa,EAAE,EAAE,CAAC,aAAa;SAChC,CAAC,CAAC,CAAC;QAEJ,qBAAqB;QACrB,MAAM,YAAY,GAAG,IAAA,0BAAgB,EAAC,QAAQ,CAAC,CAAC;QAChD,MAAM,cAAc,GAAG,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,YAAY,KAAK,UAAU,CAAC,CAAC;QAEjF,OAAO;YACL,MAAM;YACN,MAAM;YACN,MAAM;YACN,eAAe;YACf,WAAW;YACX,kBAAkB;YAClB,OAAO,EAAE,QAAQ,CAAC,OAAO;YACzB,MAAM;YACN,eAAe;YACf,cAAc;YACd,YAAY;YACZ,YAAY,EAAE,YAAY,CAAC,MAAM;YACjC,UAAU,EAAE,MAAM,CAAC,MAAM;YACzB,mBAAmB,EAAE,eAAe,CAAC,MAAM;YAC3C,kBAAkB,EAAE,cAAc,CAAC,MAAM;YACzC,eAAe;YACf,eAAe;YACf,eAAe;YACf,cAAc;YACd,kBAAkB;SACnB,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,WAAW,CAAC,OAAiB;QACjC,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC;QACrE,OAAO,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC9D,CAAC;CACF;AA9HD,wBA8HC"}
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Type definitions for transaction tracing
|
|
3
|
+
* These types match the Rust TraceData structure
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* Parsed PTB (Programmable Transaction Block) command data
|
|
7
|
+
*/
|
|
8
|
+
export interface PTBCommand {
|
|
9
|
+
/** Index of the command in the PTB */
|
|
10
|
+
command_index: number;
|
|
11
|
+
/** Type of command (MoveCall, TransferObjects, SplitCoins, etc.) */
|
|
12
|
+
command_type: string;
|
|
13
|
+
/** Package ID (for MoveCall commands) */
|
|
14
|
+
package?: string;
|
|
15
|
+
/** Module name (for MoveCall commands) */
|
|
16
|
+
module?: string;
|
|
17
|
+
/** Function name (for MoveCall commands) */
|
|
18
|
+
function?: string;
|
|
19
|
+
/** Type arguments (for MoveCall commands) */
|
|
20
|
+
type_arguments: string[];
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Balance change information
|
|
24
|
+
*/
|
|
25
|
+
export interface BalanceChange {
|
|
26
|
+
/** Owner address */
|
|
27
|
+
owner: string;
|
|
28
|
+
/** Coin type (e.g., "0x2::sui::SUI") */
|
|
29
|
+
coinType: string;
|
|
30
|
+
/** Amount changed (positive for increase, negative for decrease) */
|
|
31
|
+
amount: string | number;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Object change information
|
|
35
|
+
*/
|
|
36
|
+
export interface ObjectChange {
|
|
37
|
+
/** Object ID */
|
|
38
|
+
objectId: string;
|
|
39
|
+
/** Type of change (Created, Mutated, Deleted, etc.) */
|
|
40
|
+
type: string;
|
|
41
|
+
/** Object type */
|
|
42
|
+
objectType: string;
|
|
43
|
+
/** Current owner */
|
|
44
|
+
owner?: string;
|
|
45
|
+
/** Previous owner (for transfers) */
|
|
46
|
+
previousOwner?: string;
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Sui event information
|
|
50
|
+
*/
|
|
51
|
+
export interface SuiEvent {
|
|
52
|
+
/** Event type */
|
|
53
|
+
type: string;
|
|
54
|
+
/** Package ID */
|
|
55
|
+
packageId?: string;
|
|
56
|
+
/** Module name */
|
|
57
|
+
module?: string;
|
|
58
|
+
/** Sender address */
|
|
59
|
+
sender?: string;
|
|
60
|
+
/** Event data as JSON */
|
|
61
|
+
parsedJson?: Record<string, any>;
|
|
62
|
+
/** Raw event data */
|
|
63
|
+
bcs?: string;
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Complete trace data for a transaction
|
|
67
|
+
*/
|
|
68
|
+
export interface TraceData {
|
|
69
|
+
/** Transaction digest */
|
|
70
|
+
digest: string;
|
|
71
|
+
/** Sender address */
|
|
72
|
+
sender: string;
|
|
73
|
+
/** Transaction status (success/failure) */
|
|
74
|
+
status: string;
|
|
75
|
+
/** Gas computation cost */
|
|
76
|
+
gas_computation: number;
|
|
77
|
+
/** Gas storage cost (can be negative after rebate) */
|
|
78
|
+
gas_storage: number;
|
|
79
|
+
/** Gas storage rebate */
|
|
80
|
+
gas_storage_rebate: number;
|
|
81
|
+
/** Transaction effects (raw Sui effects object) */
|
|
82
|
+
effects?: any;
|
|
83
|
+
/** All emitted events */
|
|
84
|
+
events: SuiEvent[];
|
|
85
|
+
/** All balance changes */
|
|
86
|
+
balance_changes: BalanceChange[];
|
|
87
|
+
/** All object changes */
|
|
88
|
+
object_changes: ObjectChange[];
|
|
89
|
+
/** Parsed PTB commands */
|
|
90
|
+
ptb_commands: PTBCommand[];
|
|
91
|
+
/** Number of PTB commands */
|
|
92
|
+
num_commands: number;
|
|
93
|
+
/** Number of events */
|
|
94
|
+
num_events: number;
|
|
95
|
+
/** Number of balance changes */
|
|
96
|
+
num_balance_changes: number;
|
|
97
|
+
/** Number of object changes */
|
|
98
|
+
num_object_changes: number;
|
|
99
|
+
/** Number of objects created */
|
|
100
|
+
objects_created: number;
|
|
101
|
+
/** Number of objects mutated */
|
|
102
|
+
objects_mutated: number;
|
|
103
|
+
/** Number of objects deleted */
|
|
104
|
+
objects_deleted: number;
|
|
105
|
+
/** Whether transaction contains Move calls */
|
|
106
|
+
has_move_calls: boolean;
|
|
107
|
+
/** Net balance change across all coins */
|
|
108
|
+
net_balance_change: number | string;
|
|
109
|
+
}
|
|
110
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/tracer/types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,sCAAsC;IACtC,aAAa,EAAE,MAAM,CAAC;IACtB,oEAAoE;IACpE,YAAY,EAAE,MAAM,CAAC;IACrB,yCAAyC;IACzC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,0CAA0C;IAC1C,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,4CAA4C;IAC5C,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,6CAA6C;IAC7C,cAAc,EAAE,MAAM,EAAE,CAAC;CAC1B;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,oBAAoB;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,wCAAwC;IACxC,QAAQ,EAAE,MAAM,CAAC;IACjB,oEAAoE;IACpE,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC;CACzB;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,gBAAgB;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,uDAAuD;IACvD,IAAI,EAAE,MAAM,CAAC;IACb,kBAAkB;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,oBAAoB;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,qCAAqC;IACrC,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,QAAQ;IACvB,iBAAiB;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,iBAAiB;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,kBAAkB;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,qBAAqB;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,yBAAyB;IACzB,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACjC,qBAAqB;IACrB,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,yBAAyB;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,qBAAqB;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,2CAA2C;IAC3C,MAAM,EAAE,MAAM,CAAC;IAEf,2BAA2B;IAC3B,eAAe,EAAE,MAAM,CAAC;IACxB,sDAAsD;IACtD,WAAW,EAAE,MAAM,CAAC;IACpB,yBAAyB;IACzB,kBAAkB,EAAE,MAAM,CAAC;IAE3B,mDAAmD;IACnD,OAAO,CAAC,EAAE,GAAG,CAAC;IACd,yBAAyB;IACzB,MAAM,EAAE,QAAQ,EAAE,CAAC;IACnB,0BAA0B;IAC1B,eAAe,EAAE,aAAa,EAAE,CAAC;IACjC,yBAAyB;IACzB,cAAc,EAAE,YAAY,EAAE,CAAC;IAC/B,0BAA0B;IAC1B,YAAY,EAAE,UAAU,EAAE,CAAC;IAE3B,6BAA6B;IAC7B,YAAY,EAAE,MAAM,CAAC;IACrB,uBAAuB;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,gCAAgC;IAChC,mBAAmB,EAAE,MAAM,CAAC;IAC5B,+BAA+B;IAC/B,kBAAkB,EAAE,MAAM,CAAC;IAC3B,gCAAgC;IAChC,eAAe,EAAE,MAAM,CAAC;IACxB,gCAAgC;IAChC,eAAe,EAAE,MAAM,CAAC;IACxB,gCAAgC;IAChC,eAAe,EAAE,MAAM,CAAC;IACxB,8CAA8C;IAC9C,cAAc,EAAE,OAAO,CAAC;IACxB,0CAA0C;IAC1C,kBAAkB,EAAE,MAAM,GAAG,MAAM,CAAC;CACrC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/tracer/types.ts"],"names":[],"mappings":";AAAA;;;GAGG"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared types and interfaces
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* Network type for Sui
|
|
6
|
+
*/
|
|
7
|
+
export type NetworkType = 'mainnet' | 'testnet' | 'devnet' | 'localnet';
|
|
8
|
+
/**
|
|
9
|
+
* Options for initializing TangramMover
|
|
10
|
+
*/
|
|
11
|
+
export interface TangramMoverOptions {
|
|
12
|
+
/** Secret key (base64, hex, or legacy format) */
|
|
13
|
+
secretKey?: string;
|
|
14
|
+
/** Mnemonics (12 or 24 words) */
|
|
15
|
+
mnemonics?: string;
|
|
16
|
+
/** Network type */
|
|
17
|
+
networkType?: NetworkType;
|
|
18
|
+
/** Custom fullnode URLs */
|
|
19
|
+
fullnodeUrls?: string[];
|
|
20
|
+
/** Custom faucet URL */
|
|
21
|
+
faucetUrl?: string;
|
|
22
|
+
/** Account index for HD wallet (default: 0) */
|
|
23
|
+
accountIndex?: number;
|
|
24
|
+
/** Rate limit in milliseconds between RPC calls */
|
|
25
|
+
rateLimitMs?: number;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Transaction result from execution
|
|
29
|
+
*/
|
|
30
|
+
export interface TransactionResult {
|
|
31
|
+
/** Transaction digest */
|
|
32
|
+
digest: string;
|
|
33
|
+
/** Transaction status */
|
|
34
|
+
status: 'success' | 'failure';
|
|
35
|
+
/** Gas used */
|
|
36
|
+
gasUsed?: {
|
|
37
|
+
computationCost: number;
|
|
38
|
+
storageCost: number;
|
|
39
|
+
storageRebate: number;
|
|
40
|
+
};
|
|
41
|
+
/** Error message (if failed) */
|
|
42
|
+
error?: string;
|
|
43
|
+
}
|
|
44
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/types/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;GAEG;AACH,MAAM,MAAM,WAAW,GAAG,SAAS,GAAG,SAAS,GAAG,QAAQ,GAAG,UAAU,CAAC;AAExE;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,iDAAiD;IACjD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,iCAAiC;IACjC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,mBAAmB;IACnB,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,2BAA2B;IAC3B,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,wBAAwB;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,+CAA+C;IAC/C,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,mDAAmD;IACnD,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,yBAAyB;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,yBAAyB;IACzB,MAAM,EAAE,SAAS,GAAG,SAAS,CAAC;IAC9B,eAAe;IACf,OAAO,CAAC,EAAE;QACR,eAAe,EAAE,MAAM,CAAC;QACxB,WAAW,EAAE,MAAM,CAAC;QACpB,aAAa,EAAE,MAAM,CAAC;KACvB,CAAC;IACF,gCAAgC;IAChC,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/types/index.ts"],"names":[],"mappings":";AAAA;;GAEG"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Parsing utilities for PTB commands and transaction data
|
|
3
|
+
*/
|
|
4
|
+
import type { PTBCommand } from '../tracer/types';
|
|
5
|
+
import type { SuiTransactionBlockResponse } from '@mysten/sui/client';
|
|
6
|
+
/**
|
|
7
|
+
* Parse PTB commands from transaction response
|
|
8
|
+
*/
|
|
9
|
+
export declare function parsePTBCommands(response: SuiTransactionBlockResponse): PTBCommand[];
|
|
10
|
+
//# sourceMappingURL=parsers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parsers.d.ts","sourceRoot":"","sources":["../../../src/utils/parsers.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,oBAAoB,CAAC;AAEtE;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,2BAA2B,GAAG,UAAU,EAAE,CA0BpF"}
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Parsing utilities for PTB commands and transaction data
|
|
4
|
+
*/
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.parsePTBCommands = parsePTBCommands;
|
|
7
|
+
/**
|
|
8
|
+
* Parse PTB commands from transaction response
|
|
9
|
+
*/
|
|
10
|
+
function parsePTBCommands(response) {
|
|
11
|
+
const commands = [];
|
|
12
|
+
// Try to extract from transaction data
|
|
13
|
+
if (response.transaction?.data) {
|
|
14
|
+
const txData = response.transaction.data;
|
|
15
|
+
// Check if it's a programmable transaction
|
|
16
|
+
if ('kind' in txData && txData.kind === 'ProgrammableTransaction') {
|
|
17
|
+
const pt = txData;
|
|
18
|
+
if (pt.transactions && Array.isArray(pt.transactions)) {
|
|
19
|
+
pt.transactions.forEach((cmd, index) => {
|
|
20
|
+
const parsed = parseCommand(index, cmd);
|
|
21
|
+
if (parsed) {
|
|
22
|
+
commands.push(parsed);
|
|
23
|
+
}
|
|
24
|
+
});
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
// Alternative: try to parse from raw transaction if available
|
|
29
|
+
// This would require BCS decoding which is more complex
|
|
30
|
+
return commands;
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Parse individual PTB command
|
|
34
|
+
*/
|
|
35
|
+
function parseCommand(index, command) {
|
|
36
|
+
if (!command)
|
|
37
|
+
return null;
|
|
38
|
+
// Handle different command types
|
|
39
|
+
if (command.MoveCall) {
|
|
40
|
+
const moveCall = command.MoveCall;
|
|
41
|
+
return {
|
|
42
|
+
command_index: index,
|
|
43
|
+
command_type: 'MoveCall',
|
|
44
|
+
package: moveCall.package || moveCall.Package,
|
|
45
|
+
module: moveCall.module || moveCall.Module,
|
|
46
|
+
function: moveCall.function || moveCall.Function,
|
|
47
|
+
type_arguments: moveCall.typeArguments || moveCall.type_arguments || [],
|
|
48
|
+
};
|
|
49
|
+
}
|
|
50
|
+
if (command.TransferObjects) {
|
|
51
|
+
return {
|
|
52
|
+
command_index: index,
|
|
53
|
+
command_type: 'TransferObjects',
|
|
54
|
+
package: undefined,
|
|
55
|
+
module: undefined,
|
|
56
|
+
function: undefined,
|
|
57
|
+
type_arguments: [],
|
|
58
|
+
};
|
|
59
|
+
}
|
|
60
|
+
if (command.SplitCoins) {
|
|
61
|
+
return {
|
|
62
|
+
command_index: index,
|
|
63
|
+
command_type: 'SplitCoins',
|
|
64
|
+
package: undefined,
|
|
65
|
+
module: undefined,
|
|
66
|
+
function: undefined,
|
|
67
|
+
type_arguments: [],
|
|
68
|
+
};
|
|
69
|
+
}
|
|
70
|
+
if (command.MergeCoins) {
|
|
71
|
+
return {
|
|
72
|
+
command_index: index,
|
|
73
|
+
command_type: 'MergeCoins',
|
|
74
|
+
package: undefined,
|
|
75
|
+
module: undefined,
|
|
76
|
+
function: undefined,
|
|
77
|
+
type_arguments: [],
|
|
78
|
+
};
|
|
79
|
+
}
|
|
80
|
+
if (command.Publish) {
|
|
81
|
+
return {
|
|
82
|
+
command_index: index,
|
|
83
|
+
command_type: 'Publish',
|
|
84
|
+
package: undefined,
|
|
85
|
+
module: undefined,
|
|
86
|
+
function: undefined,
|
|
87
|
+
type_arguments: [],
|
|
88
|
+
};
|
|
89
|
+
}
|
|
90
|
+
if (command.MakeMoveVec) {
|
|
91
|
+
return {
|
|
92
|
+
command_index: index,
|
|
93
|
+
command_type: 'MakeMoveVec',
|
|
94
|
+
package: undefined,
|
|
95
|
+
module: undefined,
|
|
96
|
+
function: undefined,
|
|
97
|
+
type_arguments: [],
|
|
98
|
+
};
|
|
99
|
+
}
|
|
100
|
+
if (command.Upgrade) {
|
|
101
|
+
return {
|
|
102
|
+
command_index: index,
|
|
103
|
+
command_type: 'Upgrade',
|
|
104
|
+
package: undefined,
|
|
105
|
+
module: undefined,
|
|
106
|
+
function: undefined,
|
|
107
|
+
type_arguments: [],
|
|
108
|
+
};
|
|
109
|
+
}
|
|
110
|
+
// Unknown command type
|
|
111
|
+
return {
|
|
112
|
+
command_index: index,
|
|
113
|
+
command_type: 'Unknown',
|
|
114
|
+
package: undefined,
|
|
115
|
+
module: undefined,
|
|
116
|
+
function: undefined,
|
|
117
|
+
type_arguments: [],
|
|
118
|
+
};
|
|
119
|
+
}
|
|
120
|
+
//# sourceMappingURL=parsers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parsers.js","sourceRoot":"","sources":["../../../src/utils/parsers.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* RPC client wrapper for Sui network interactions
|
|
3
|
+
* Uses sui-kit's RPC client when available, falls back to direct RPC calls
|
|
4
|
+
*/
|
|
5
|
+
import { SuiKit } from '@scallop-io/sui-kit';
|
|
6
|
+
import type { SuiTransactionBlockResponse, SuiTransactionBlockResponseOptions } from '@mysten/sui/client';
|
|
7
|
+
/**
|
|
8
|
+
* Wrapper around Sui RPC client
|
|
9
|
+
*/
|
|
10
|
+
export declare class RpcClient {
|
|
11
|
+
private suiKit;
|
|
12
|
+
private rateLimitMs;
|
|
13
|
+
private lastRequestTime;
|
|
14
|
+
constructor(suiKit: SuiKit, rateLimitMs?: number);
|
|
15
|
+
/**
|
|
16
|
+
* Get the underlying Sui client from sui-kit
|
|
17
|
+
*/
|
|
18
|
+
private getClient;
|
|
19
|
+
/**
|
|
20
|
+
* Rate limit helper
|
|
21
|
+
*/
|
|
22
|
+
private rateLimit;
|
|
23
|
+
/**
|
|
24
|
+
* Fetch transaction with options
|
|
25
|
+
*/
|
|
26
|
+
getTransactionBlock(digest: string, options?: SuiTransactionBlockResponseOptions): Promise<SuiTransactionBlockResponse>;
|
|
27
|
+
/**
|
|
28
|
+
* Get multiple transaction blocks
|
|
29
|
+
*/
|
|
30
|
+
getTransactionBlocks(digests: string[], options?: SuiTransactionBlockResponseOptions): Promise<SuiTransactionBlockResponse[]>;
|
|
31
|
+
}
|
|
32
|
+
//# sourceMappingURL=rpc-client.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rpc-client.d.ts","sourceRoot":"","sources":["../../../src/utils/rpc-client.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAC7C,OAAO,KAAK,EAAE,2BAA2B,EAAE,kCAAkC,EAAE,MAAM,oBAAoB,CAAC;AAE1G;;GAEG;AACH,qBAAa,SAAS;IACpB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,eAAe,CAAa;gBAExB,MAAM,EAAE,MAAM,EAAE,WAAW,GAAE,MAAa;IAKtD;;OAEG;IACH,OAAO,CAAC,SAAS;IAQjB;;OAEG;YACW,SAAS;IAYvB;;OAEG;IACG,mBAAmB,CACvB,MAAM,EAAE,MAAM,EACd,OAAO,CAAC,EAAE,kCAAkC,GAC3C,OAAO,CAAC,2BAA2B,CAAC;IAoCvC;;OAEG;IACG,oBAAoB,CACxB,OAAO,EAAE,MAAM,EAAE,EACjB,OAAO,CAAC,EAAE,kCAAkC,GAC3C,OAAO,CAAC,2BAA2B,EAAE,CAAC;CAe1C"}
|