tenzro-sdk 0.2.0 → 0.3.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.
Files changed (98) hide show
  1. package/README.md +1 -1
  2. package/dist/adaptive-burn.js +4 -4
  3. package/dist/adaptive-burn.js.map +1 -1
  4. package/dist/agent.d.ts +119 -11
  5. package/dist/agent.d.ts.map +1 -1
  6. package/dist/agent.js +162 -13
  7. package/dist/agent.js.map +1 -1
  8. package/dist/app.js +1 -1
  9. package/dist/app.js.map +1 -1
  10. package/dist/auth.d.ts +37 -0
  11. package/dist/auth.d.ts.map +1 -1
  12. package/dist/auth.js +11 -0
  13. package/dist/auth.js.map +1 -1
  14. package/dist/client.d.ts +81 -0
  15. package/dist/client.d.ts.map +1 -1
  16. package/dist/client.js +99 -0
  17. package/dist/client.js.map +1 -1
  18. package/dist/eip7702.d.ts +110 -0
  19. package/dist/eip7702.d.ts.map +1 -0
  20. package/dist/eip7702.js +73 -0
  21. package/dist/eip7702.js.map +1 -0
  22. package/dist/erc7683.d.ts +79 -0
  23. package/dist/erc7683.d.ts.map +1 -0
  24. package/dist/erc7683.js +82 -0
  25. package/dist/erc7683.js.map +1 -0
  26. package/dist/events.d.ts +45 -15
  27. package/dist/events.d.ts.map +1 -1
  28. package/dist/events.js +38 -8
  29. package/dist/events.js.map +1 -1
  30. package/dist/identity.d.ts +1 -1
  31. package/dist/identity.js +1 -1
  32. package/dist/index.d.ts +25 -3
  33. package/dist/index.d.ts.map +1 -1
  34. package/dist/index.js +36 -2
  35. package/dist/index.js.map +1 -1
  36. package/dist/iroh.d.ts +104 -0
  37. package/dist/iroh.d.ts.map +1 -0
  38. package/dist/iroh.js +102 -0
  39. package/dist/iroh.js.map +1 -0
  40. package/dist/marketplace.d.ts +2 -2
  41. package/dist/marketplace.js +2 -2
  42. package/dist/memory.d.ts +78 -0
  43. package/dist/memory.d.ts.map +1 -0
  44. package/dist/memory.js +60 -0
  45. package/dist/memory.js.map +1 -0
  46. package/dist/multimodal.d.ts +294 -0
  47. package/dist/multimodal.d.ts.map +1 -0
  48. package/dist/multimodal.js +160 -0
  49. package/dist/multimodal.js.map +1 -0
  50. package/dist/passkey.d.ts +193 -0
  51. package/dist/passkey.d.ts.map +1 -0
  52. package/dist/passkey.js +481 -0
  53. package/dist/passkey.js.map +1 -0
  54. package/dist/provider.d.ts +5 -4
  55. package/dist/provider.d.ts.map +1 -1
  56. package/dist/provider.js +8 -5
  57. package/dist/provider.js.map +1 -1
  58. package/dist/seed-agent.js +7 -7
  59. package/dist/seed-agent.js.map +1 -1
  60. package/dist/settlement.d.ts +23 -6
  61. package/dist/settlement.d.ts.map +1 -1
  62. package/dist/settlement.js +30 -7
  63. package/dist/settlement.js.map +1 -1
  64. package/dist/signer.d.ts +181 -0
  65. package/dist/signer.d.ts.map +1 -0
  66. package/dist/signer.js +69 -0
  67. package/dist/signer.js.map +1 -0
  68. package/dist/sla.d.ts +95 -0
  69. package/dist/sla.d.ts.map +1 -0
  70. package/dist/sla.js +70 -0
  71. package/dist/sla.js.map +1 -0
  72. package/dist/snapshot.d.ts +122 -0
  73. package/dist/snapshot.d.ts.map +1 -0
  74. package/dist/snapshot.js +80 -0
  75. package/dist/snapshot.js.map +1 -0
  76. package/dist/staking.d.ts +5 -5
  77. package/dist/staking.d.ts.map +1 -1
  78. package/dist/staking.js +8 -6
  79. package/dist/staking.js.map +1 -1
  80. package/dist/task.d.ts +56 -22
  81. package/dist/task.d.ts.map +1 -1
  82. package/dist/task.js +65 -31
  83. package/dist/task.js.map +1 -1
  84. package/dist/token.d.ts +41 -11
  85. package/dist/token.d.ts.map +1 -1
  86. package/dist/token.js.map +1 -1
  87. package/dist/training.d.ts +108 -0
  88. package/dist/training.d.ts.map +1 -0
  89. package/dist/training.js +53 -0
  90. package/dist/training.js.map +1 -0
  91. package/dist/types.d.ts +72 -11
  92. package/dist/types.d.ts.map +1 -1
  93. package/dist/types.js.map +1 -1
  94. package/dist/validator.d.ts +76 -0
  95. package/dist/validator.d.ts.map +1 -0
  96. package/dist/validator.js +47 -0
  97. package/dist/validator.js.map +1 -0
  98. package/package.json +2 -1
@@ -0,0 +1,122 @@
1
+ import type { RpcClient } from './rpc';
2
+ /**
3
+ * Compact summary returned by `tenzro_listSnapshots`. Per-chunk hashes
4
+ * are elided here — fetch the full manifest with
5
+ * `getSnapshotManifest(height)` to verify chunks.
6
+ */
7
+ export interface SnapshotSummary {
8
+ height: number;
9
+ state_root_hex: string;
10
+ num_chunks: number;
11
+ created_at: string;
12
+ format: number;
13
+ }
14
+ /** Result of `tenzro_listSnapshots`. */
15
+ export interface SnapshotList {
16
+ snapshots: SnapshotSummary[];
17
+ }
18
+ /**
19
+ * Full snapshot manifest with per-chunk SHA-256 hashes. Returned by
20
+ * `tenzro_getSnapshotManifest` and consumed by `tenzro_offerSnapshot`.
21
+ */
22
+ export interface SnapshotManifest {
23
+ /** Block height at which this snapshot was taken. */
24
+ height: number;
25
+ /**
26
+ * State root committed at `height`. The caller MUST verify this
27
+ * against a trusted QC at the same height before offering or
28
+ * applying this snapshot.
29
+ */
30
+ state_root_hex: string;
31
+ /** Number of chunks. Chunk indices are `0..num_chunks`. */
32
+ num_chunks: number;
33
+ /**
34
+ * Per-chunk SHA-256 hash (hex), indexed by chunk number. Used by the
35
+ * receiver to verify chunks before disk write.
36
+ */
37
+ chunk_hashes_hex: string[];
38
+ /** Wall-clock time the snapshot was produced (ISO 8601, UTC). */
39
+ created_at: string;
40
+ /** Manifest format version. */
41
+ format: number;
42
+ }
43
+ /**
44
+ * Result of `tenzro_getSnapshotChunk`. `data_b64` is the base64-encoded
45
+ * chunk bytes.
46
+ */
47
+ export interface SnapshotChunk {
48
+ height: number;
49
+ chunk_index: number;
50
+ data_b64: string;
51
+ }
52
+ /** Result of `tenzro_offerSnapshot`. */
53
+ export interface SnapshotOfferAccepted {
54
+ accepted: boolean;
55
+ height: number;
56
+ num_chunks: number;
57
+ }
58
+ /**
59
+ * Result of `tenzro_applySnapshotChunk`. `complete` flips to `true` on
60
+ * the final chunk, after which the snapshot has been atomically
61
+ * committed via `write_batch_sync`.
62
+ */
63
+ export interface SnapshotChunkApplied {
64
+ complete: boolean;
65
+ height: number;
66
+ chunk_index: number;
67
+ }
68
+ /**
69
+ * State-sync snapshot client.
70
+ *
71
+ * Wraps the five snapshot RPCs that drive state-sync between nodes:
72
+ * - `tenzro_listSnapshots` — enumerate local snapshots
73
+ * - `tenzro_getSnapshotManifest` — full manifest including per-chunk hashes
74
+ * - `tenzro_getSnapshotChunk` — fetch a single chunk by index
75
+ * - `tenzro_offerSnapshot` — register an inbound manifest from a peer
76
+ * - `tenzro_applySnapshotChunk` — write one inbound chunk
77
+ *
78
+ * **Trust model:** Callers MUST verify `manifest.state_root_hex` against
79
+ * a trusted QC at the same height before calling `offerSnapshot` /
80
+ * `applySnapshotChunk`. The node verifies per-chunk SHA-256 against
81
+ * the manifest before any disk write, and atomically commits on the
82
+ * final chunk via `write_batch_sync`.
83
+ */
84
+ export declare class SnapshotClient {
85
+ private readonly rpc;
86
+ constructor(rpc: RpcClient);
87
+ /**
88
+ * Enumerate local snapshots. Per-chunk hashes are elided for
89
+ * compactness — use `getSnapshotManifest(height)` to retrieve the
90
+ * full manifest.
91
+ */
92
+ listSnapshots(): Promise<SnapshotList>;
93
+ /**
94
+ * Fetch the full manifest for the snapshot at `height`, including
95
+ * per-chunk SHA-256 hashes. Returns the node's `-32004 no snapshot
96
+ * at height` error if no snapshot is taken at that height.
97
+ */
98
+ getSnapshotManifest(height: number): Promise<SnapshotManifest>;
99
+ /**
100
+ * Fetch one chunk by `(height, chunkIndex)`. The returned `data_b64`
101
+ * is the base64-encoded chunk bytes; verify against
102
+ * `manifest.chunk_hashes_hex[chunkIndex]` before applying.
103
+ */
104
+ getSnapshotChunk(height: number, chunkIndex: number): Promise<SnapshotChunk>;
105
+ /**
106
+ * Register an inbound manifest from a peer.
107
+ *
108
+ * **Caller MUST verify `manifest.state_root_hex` against a trusted QC
109
+ * at the same height before invoking.** This RPC only registers the
110
+ * offer and provisions the spool directory; it does not itself
111
+ * validate the manifest against chain state.
112
+ */
113
+ offerSnapshot(manifest: SnapshotManifest): Promise<SnapshotOfferAccepted>;
114
+ /**
115
+ * Write one inbound chunk. The chunk's SHA-256 is verified against
116
+ * `manifest.chunk_hashes_hex[chunkIndex]` before any disk write. On
117
+ * the final chunk, all chunks are decoded and atomically committed
118
+ * via `write_batch_sync`; `complete` will be `true` on that call.
119
+ */
120
+ applySnapshotChunk(height: number, chunkIndex: number, dataB64: string): Promise<SnapshotChunkApplied>;
121
+ }
122
+ //# sourceMappingURL=snapshot.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"snapshot.d.ts","sourceRoot":"","sources":["../src/snapshot.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAIvC;;;;GAIG;AACH,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,cAAc,EAAE,MAAM,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,wCAAwC;AACxC,MAAM,WAAW,YAAY;IAC3B,SAAS,EAAE,eAAe,EAAE,CAAC;CAC9B;AAED;;;GAGG;AACH,MAAM,WAAW,gBAAgB;IAC/B,qDAAqD;IACrD,MAAM,EAAE,MAAM,CAAC;IACf;;;;OAIG;IACH,cAAc,EAAE,MAAM,CAAC;IACvB,2DAA2D;IAC3D,UAAU,EAAE,MAAM,CAAC;IACnB;;;OAGG;IACH,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B,iEAAiE;IACjE,UAAU,EAAE,MAAM,CAAC;IACnB,+BAA+B;IAC/B,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;;GAGG;AACH,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,wCAAwC;AACxC,MAAM,WAAW,qBAAqB;IACpC,QAAQ,EAAE,OAAO,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;;;GAIG;AACH,MAAM,WAAW,oBAAoB;IACnC,QAAQ,EAAE,OAAO,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;CACrB;AAID;;;;;;;;;;;;;;;GAeG;AACH,qBAAa,cAAc;IACb,OAAO,CAAC,QAAQ,CAAC,GAAG;gBAAH,GAAG,EAAE,SAAS;IAE3C;;;;OAIG;IACG,aAAa,IAAI,OAAO,CAAC,YAAY,CAAC;IAI5C;;;;OAIG;IACG,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAMpE;;;;OAIG;IACG,gBAAgB,CACpB,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,aAAa,CAAC;IAMzB;;;;;;;OAOG;IACG,aAAa,CACjB,QAAQ,EAAE,gBAAgB,GACzB,OAAO,CAAC,qBAAqB,CAAC;IAMjC;;;;;OAKG;IACG,kBAAkB,CACtB,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,oBAAoB,CAAC;CAKjC"}
@@ -0,0 +1,80 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SnapshotClient = void 0;
4
+ // ── Client ──
5
+ /**
6
+ * State-sync snapshot client.
7
+ *
8
+ * Wraps the five snapshot RPCs that drive state-sync between nodes:
9
+ * - `tenzro_listSnapshots` — enumerate local snapshots
10
+ * - `tenzro_getSnapshotManifest` — full manifest including per-chunk hashes
11
+ * - `tenzro_getSnapshotChunk` — fetch a single chunk by index
12
+ * - `tenzro_offerSnapshot` — register an inbound manifest from a peer
13
+ * - `tenzro_applySnapshotChunk` — write one inbound chunk
14
+ *
15
+ * **Trust model:** Callers MUST verify `manifest.state_root_hex` against
16
+ * a trusted QC at the same height before calling `offerSnapshot` /
17
+ * `applySnapshotChunk`. The node verifies per-chunk SHA-256 against
18
+ * the manifest before any disk write, and atomically commits on the
19
+ * final chunk via `write_batch_sync`.
20
+ */
21
+ class SnapshotClient {
22
+ rpc;
23
+ constructor(rpc) {
24
+ this.rpc = rpc;
25
+ }
26
+ /**
27
+ * Enumerate local snapshots. Per-chunk hashes are elided for
28
+ * compactness — use `getSnapshotManifest(height)` to retrieve the
29
+ * full manifest.
30
+ */
31
+ async listSnapshots() {
32
+ return this.rpc.call('tenzro_listSnapshots', []);
33
+ }
34
+ /**
35
+ * Fetch the full manifest for the snapshot at `height`, including
36
+ * per-chunk SHA-256 hashes. Returns the node's `-32004 no snapshot
37
+ * at height` error if no snapshot is taken at that height.
38
+ */
39
+ async getSnapshotManifest(height) {
40
+ return this.rpc.call('tenzro_getSnapshotManifest', [
41
+ { height },
42
+ ]);
43
+ }
44
+ /**
45
+ * Fetch one chunk by `(height, chunkIndex)`. The returned `data_b64`
46
+ * is the base64-encoded chunk bytes; verify against
47
+ * `manifest.chunk_hashes_hex[chunkIndex]` before applying.
48
+ */
49
+ async getSnapshotChunk(height, chunkIndex) {
50
+ return this.rpc.call('tenzro_getSnapshotChunk', [
51
+ { height, chunk_index: chunkIndex },
52
+ ]);
53
+ }
54
+ /**
55
+ * Register an inbound manifest from a peer.
56
+ *
57
+ * **Caller MUST verify `manifest.state_root_hex` against a trusted QC
58
+ * at the same height before invoking.** This RPC only registers the
59
+ * offer and provisions the spool directory; it does not itself
60
+ * validate the manifest against chain state.
61
+ */
62
+ async offerSnapshot(manifest) {
63
+ return this.rpc.call('tenzro_offerSnapshot', [
64
+ manifest,
65
+ ]);
66
+ }
67
+ /**
68
+ * Write one inbound chunk. The chunk's SHA-256 is verified against
69
+ * `manifest.chunk_hashes_hex[chunkIndex]` before any disk write. On
70
+ * the final chunk, all chunks are decoded and atomically committed
71
+ * via `write_batch_sync`; `complete` will be `true` on that call.
72
+ */
73
+ async applySnapshotChunk(height, chunkIndex, dataB64) {
74
+ return this.rpc.call('tenzro_applySnapshotChunk', [
75
+ { height, chunk_index: chunkIndex, data_b64: dataB64 },
76
+ ]);
77
+ }
78
+ }
79
+ exports.SnapshotClient = SnapshotClient;
80
+ //# sourceMappingURL=snapshot.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"snapshot.js","sourceRoot":"","sources":["../src/snapshot.ts"],"names":[],"mappings":";;;AA4EA,eAAe;AAEf;;;;;;;;;;;;;;;GAeG;AACH,MAAa,cAAc;IACI;IAA7B,YAA6B,GAAc;QAAd,QAAG,GAAH,GAAG,CAAW;IAAG,CAAC;IAE/C;;;;OAIG;IACH,KAAK,CAAC,aAAa;QACjB,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAe,sBAAsB,EAAE,EAAE,CAAC,CAAC;IACjE,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,mBAAmB,CAAC,MAAc;QACtC,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAmB,4BAA4B,EAAE;YACnE,EAAE,MAAM,EAAE;SACX,CAAC,CAAC;IACL,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,gBAAgB,CACpB,MAAc,EACd,UAAkB;QAElB,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAgB,yBAAyB,EAAE;YAC7D,EAAE,MAAM,EAAE,WAAW,EAAE,UAAU,EAAE;SACpC,CAAC,CAAC;IACL,CAAC;IAED;;;;;;;OAOG;IACH,KAAK,CAAC,aAAa,CACjB,QAA0B;QAE1B,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAwB,sBAAsB,EAAE;YAClE,QAAQ;SACT,CAAC,CAAC;IACL,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,kBAAkB,CACtB,MAAc,EACd,UAAkB,EAClB,OAAe;QAEf,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAuB,2BAA2B,EAAE;YACtE,EAAE,MAAM,EAAE,WAAW,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE;SACvD,CAAC,CAAC;IACL,CAAC;CACF;AApED,wCAoEC"}
package/dist/staking.d.ts CHANGED
@@ -8,15 +8,15 @@ export declare class StakingClient {
8
8
  private readonly rpc;
9
9
  constructor(rpc: RpcClient);
10
10
  /**
11
- * Stake TNZO tokens for a given role.
12
- * @param amount - Amount of TNZO to stake (decimal string, e.g. "1000")
13
- * @param role - Staking role: "validator", "model_provider", or "tee_provider"
11
+ * Stake TNZO tokens for a given provider type.
12
+ * @param amount - Amount in wei (10^-18 TNZO) as decimal string, e.g. "1000000000000000000000" for 1000 TNZO
13
+ * @param providerType - Provider type: "validator", "model_provider", "tee_provider", or "storage_provider"
14
14
  * @returns Stake result with transaction hash and status
15
15
  */
16
- stake(amount: string, role: StakingRole): Promise<StakeResult>;
16
+ stake(amount: string, providerType: StakingRole): Promise<StakeResult>;
17
17
  /**
18
18
  * Unstake TNZO tokens (initiates the unbonding period).
19
- * @param amount - Amount of TNZO to unstake (decimal string)
19
+ * @param amount - Amount in wei (10^-18 TNZO) as decimal string
20
20
  * @returns Unstake result with transaction hash, status, and unbonding end time
21
21
  */
22
22
  unstake(amount: string): Promise<UnstakeResult>;
@@ -1 +1 @@
1
- {"version":3,"file":"staking.d.ts","sourceRoot":"","sources":["../src/staking.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,KAAK,EACV,WAAW,EACX,WAAW,EACX,aAAa,EACb,cAAc,EACd,cAAc,EACd,cAAc,EACf,MAAM,SAAS,CAAC;AAEjB;;;GAGG;AACH,qBAAa,aAAa;IACZ,OAAO,CAAC,QAAQ,CAAC,GAAG;gBAAH,GAAG,EAAE,SAAS;IAE3C;;;;;OAKG;IACG,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;IAIpE;;;;OAIG;IACG,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;IAIrD;;;;OAIG;IACG,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IAMjE;;;;OAIG;IACG,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IAM1D;;;;OAIG;IACG,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;CAK/D"}
1
+ {"version":3,"file":"staking.d.ts","sourceRoot":"","sources":["../src/staking.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,KAAK,EACV,WAAW,EACX,WAAW,EACX,aAAa,EACb,cAAc,EACd,cAAc,EACd,cAAc,EACf,MAAM,SAAS,CAAC;AAEjB;;;GAGG;AACH,qBAAa,aAAa;IACZ,OAAO,CAAC,QAAQ,CAAC,GAAG;gBAAH,GAAG,EAAE,SAAS;IAE3C;;;;;OAKG;IACG,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;IAM5E;;;;OAIG;IACG,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;IAIrD;;;;OAIG;IACG,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IAMjE;;;;OAIG;IACG,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IAM1D;;;;OAIG;IACG,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;CAK/D"}
package/dist/staking.js CHANGED
@@ -11,17 +11,19 @@ class StakingClient {
11
11
  this.rpc = rpc;
12
12
  }
13
13
  /**
14
- * Stake TNZO tokens for a given role.
15
- * @param amount - Amount of TNZO to stake (decimal string, e.g. "1000")
16
- * @param role - Staking role: "validator", "model_provider", or "tee_provider"
14
+ * Stake TNZO tokens for a given provider type.
15
+ * @param amount - Amount in wei (10^-18 TNZO) as decimal string, e.g. "1000000000000000000000" for 1000 TNZO
16
+ * @param providerType - Provider type: "validator", "model_provider", "tee_provider", or "storage_provider"
17
17
  * @returns Stake result with transaction hash and status
18
18
  */
19
- async stake(amount, role) {
20
- return this.rpc.call('tenzro_stake', [{ amount, role }]);
19
+ async stake(amount, providerType) {
20
+ return this.rpc.call('tenzro_stake', [
21
+ { amount, provider_type: providerType },
22
+ ]);
21
23
  }
22
24
  /**
23
25
  * Unstake TNZO tokens (initiates the unbonding period).
24
- * @param amount - Amount of TNZO to unstake (decimal string)
26
+ * @param amount - Amount in wei (10^-18 TNZO) as decimal string
25
27
  * @returns Unstake result with transaction hash, status, and unbonding end time
26
28
  */
27
29
  async unstake(amount) {
@@ -1 +1 @@
1
- {"version":3,"file":"staking.js","sourceRoot":"","sources":["../src/staking.ts"],"names":[],"mappings":";;;AAUA;;;GAGG;AACH,MAAa,aAAa;IACK;IAA7B,YAA6B,GAAc;QAAd,QAAG,GAAH,GAAG,CAAW;IAAG,CAAC;IAE/C;;;;;OAKG;IACH,KAAK,CAAC,KAAK,CAAC,MAAc,EAAE,IAAiB;QAC3C,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAc,cAAc,EAAE,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IACxE,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,OAAO,CAAC,MAAc;QAC1B,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAgB,gBAAgB,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;IACtE,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,iBAAiB,CAAC,OAAe;QACrC,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAiB,0BAA0B,EAAE;YAC/D,EAAE,OAAO,EAAE;SACZ,CAAC,CAAC;IACL,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,UAAU,CAAC,OAAe;QAC9B,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAiB,0BAA0B,EAAE;YAC/D,EAAE,OAAO,EAAE;SACZ,CAAC,CAAC;IACL,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,YAAY,CAAC,OAAe;QAChC,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAmB,qBAAqB,EAAE;YAC5D,EAAE,OAAO,EAAE;SACZ,CAAC,CAAC;IACL,CAAC;CACF;AAtDD,sCAsDC"}
1
+ {"version":3,"file":"staking.js","sourceRoot":"","sources":["../src/staking.ts"],"names":[],"mappings":";;;AAUA;;;GAGG;AACH,MAAa,aAAa;IACK;IAA7B,YAA6B,GAAc;QAAd,QAAG,GAAH,GAAG,CAAW;IAAG,CAAC;IAE/C;;;;;OAKG;IACH,KAAK,CAAC,KAAK,CAAC,MAAc,EAAE,YAAyB;QACnD,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAc,cAAc,EAAE;YAChD,EAAE,MAAM,EAAE,aAAa,EAAE,YAAY,EAAE;SACxC,CAAC,CAAC;IACL,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,OAAO,CAAC,MAAc;QAC1B,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAgB,gBAAgB,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;IACtE,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,iBAAiB,CAAC,OAAe;QACrC,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAiB,0BAA0B,EAAE;YAC/D,EAAE,OAAO,EAAE;SACZ,CAAC,CAAC;IACL,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,UAAU,CAAC,OAAe;QAC9B,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAiB,0BAA0B,EAAE;YAC/D,EAAE,OAAO,EAAE;SACZ,CAAC,CAAC;IACL,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,YAAY,CAAC,OAAe;QAChC,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAmB,qBAAqB,EAAE;YAC5D,EAAE,OAAO,EAAE;SACZ,CAAC,CAAC;IACL,CAAC;CACF;AAxDD,sCAwDC"}
package/dist/task.d.ts CHANGED
@@ -1,5 +1,19 @@
1
1
  import type { RpcClient } from './rpc';
2
2
  import type { TaskInfo, TaskQuote, TaskFilter, PostTaskParams, AssignTaskResult, CompleteTaskResult } from './types';
3
+ /**
4
+ * Task-marketplace client.
5
+ *
6
+ * Full settlement cycle on the live testnet:
7
+ *
8
+ * await client.task.postTask({ title, poster, max_price, task_type, input })
9
+ * await client.task.quoteTask(taskId, providerAddress, price, { model_id, ... })
10
+ * await client.task.assignTask(taskId, providerAddress, quotedPrice)
11
+ * await client.task.completeTask(taskId, output) // <- triggers TNZO transfer
12
+ *
13
+ * `completeTask` performs the on-chain settlement: `tenzro-token`
14
+ * transfers `final_price` (the quoted price, or `max_price` if unquoted)
15
+ * from poster to assignee through the unified token registry.
16
+ */
3
17
  export declare class TaskClient {
4
18
  private readonly rpc;
5
19
  constructor(rpc: RpcClient);
@@ -7,40 +21,60 @@ export declare class TaskClient {
7
21
  listTasks(filter?: TaskFilter): Promise<TaskInfo[]>;
8
22
  getTask(taskId: string): Promise<TaskInfo>;
9
23
  cancelTask(taskId: string): Promise<boolean>;
10
- submitQuote(taskId: string, price: string, modelId: string, estimatedDurationSecs: number): Promise<TaskQuote>;
11
24
  /**
12
- * Submit a quote for a task with price and estimated completion time.
13
- * @param taskId - The task to quote
14
- * @param price - Quoted price (in TNZO wei)
15
- * @param estimatedTime - Estimated completion time (e.g., "120s", "5m", "1h")
16
- * @returns Quote result
25
+ * Submit a quote for a task.
26
+ *
27
+ * @param taskId - The task to quote.
28
+ * @param provider - Provider address (hex). Required the live RPC
29
+ * rejects quotes that lack a provider address.
30
+ * @param price - Quoted price in TNZO wei (u128 as decimal string).
31
+ * @param opts.modelId - Optional model identifier (default: `"any"`).
32
+ * @param opts.confidence - Quote confidence 0–100 (default: 80).
33
+ * @param opts.estimatedDurationSecs - Estimated runtime in seconds (default: 60).
34
+ * @param opts.notes - Optional free-form notes.
17
35
  */
18
- quoteTask(taskId: string, price: number, estimatedTime: string): Promise<any>;
36
+ quoteTask(taskId: string, provider: string, price: string, opts?: {
37
+ modelId?: string;
38
+ confidence?: number;
39
+ estimatedDurationSecs?: number;
40
+ notes?: string;
41
+ }): Promise<TaskQuote>;
19
42
  /**
20
- * Assign a task to a specific agent.
21
- * @param taskId - The task to assign
22
- * @param agentId - The agent to assign it to
23
- * @returns Assignment result with status
43
+ * Assign a task to a specific provider address.
44
+ *
45
+ * The live RPC handler keys assignment on the provider's wallet
46
+ * address, not an agent_id — the task's `assignee` field is set to
47
+ * `provider`, and `quoted_price` is stored on the task so that
48
+ * `completeTask` can settle to it.
49
+ *
50
+ * @param taskId - The task to assign.
51
+ * @param provider - Provider wallet address (hex).
52
+ * @param quotedPrice - Optional locked-in price in TNZO wei
53
+ * (u128 as decimal string). If omitted, the task's `max_price`
54
+ * is used at settlement time.
24
55
  */
25
- assignTask(taskId: string, agentId: string): Promise<AssignTaskResult>;
56
+ assignTask(taskId: string, provider: string, quotedPrice?: string): Promise<AssignTaskResult>;
26
57
  /**
27
- * Mark a task as completed with the final result.
28
- * @param taskId - The task to complete
29
- * @param result - The output / result of the task
30
- * @returns Completion result with status and optional settlement tx hash
58
+ * Mark a task as completed and trigger on-chain TNZO settlement.
59
+ *
60
+ * The live RPC handler:
61
+ * 1. transfers `final_price` from poster to assignee via the token registry,
62
+ * 2. sets `task.status = Completed`,
63
+ * 3. stores `output` on the task,
64
+ * 4. returns the new poster/assignee balances under `settlement`.
65
+ *
66
+ * @param taskId - The task to complete.
67
+ * @param output - The result / output text to attach to the task.
31
68
  */
32
- completeTask(taskId: string, result: string): Promise<CompleteTaskResult>;
69
+ completeTask(taskId: string, output: string): Promise<CompleteTaskResult>;
33
70
  /**
34
- * Update an existing task.
35
- * @param taskId - The task to update
36
- * @param options - Fields to update (partial)
37
- * @returns Updated task information
71
+ * Update an existing task (creator only).
38
72
  */
39
73
  updateTask(taskId: string, options?: {
40
74
  title?: string;
41
75
  description?: string;
42
76
  status?: string;
43
77
  output?: string;
44
- }): Promise<any>;
78
+ }): Promise<TaskInfo>;
45
79
  }
46
80
  //# sourceMappingURL=task.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"task.d.ts","sourceRoot":"","sources":["../src/task.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,UAAU,EAAE,cAAc,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAErH,qBAAa,UAAU;IACT,OAAO,CAAC,QAAQ,CAAC,GAAG;gBAAH,GAAG,EAAE,SAAS;IAErC,QAAQ,CAAC,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC,QAAQ,CAAC;IAInD,SAAS,CAAC,MAAM,CAAC,EAAE,UAAU,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;IAInD,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC;IAI1C,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAI5C,WAAW,CACf,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,MAAM,EACf,qBAAqB,EAAE,MAAM,GAC5B,OAAO,CAAC,SAAS,CAAC;IASrB;;;;;;OAMG;IACG,SAAS,CACb,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM,EACb,aAAa,EAAE,MAAM,GACpB,OAAO,CAAC,GAAG,CAAC;IAMf;;;;;OAKG;IACG,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAM5E;;;;;OAKG;IACG,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAM/E;;;;;OAKG;IACG,UAAU,CACd,MAAM,EAAE,MAAM,EACd,OAAO,CAAC,EAAE;QACR,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB,GACA,OAAO,CAAC,GAAG,CAAC;CAKhB"}
1
+ {"version":3,"file":"task.d.ts","sourceRoot":"","sources":["../src/task.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,KAAK,EACV,QAAQ,EACR,SAAS,EACT,UAAU,EACV,cAAc,EACd,gBAAgB,EAChB,kBAAkB,EACnB,MAAM,SAAS,CAAC;AAEjB;;;;;;;;;;;;;GAaG;AACH,qBAAa,UAAU;IACT,OAAO,CAAC,QAAQ,CAAC,GAAG;gBAAH,GAAG,EAAE,SAAS;IAErC,QAAQ,CAAC,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC,QAAQ,CAAC;IAInD,SAAS,CAAC,MAAM,CAAC,EAAE,UAAU,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;IAInD,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC;IAI1C,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAIlD;;;;;;;;;;;OAWG;IACG,SAAS,CACb,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,MAAM,EACb,IAAI,CAAC,EAAE;QACL,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,qBAAqB,CAAC,EAAE,MAAM,CAAC;QAC/B,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,GACA,OAAO,CAAC,SAAS,CAAC;IAcrB;;;;;;;;;;;;;OAaG;IACG,UAAU,CACd,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,EAChB,WAAW,CAAC,EAAE,MAAM,GACnB,OAAO,CAAC,gBAAgB,CAAC;IAU5B;;;;;;;;;;;OAWG;IACG,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAM/E;;OAEG;IACG,UAAU,CACd,MAAM,EAAE,MAAM,EACd,OAAO,CAAC,EAAE;QACR,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB,GACA,OAAO,CAAC,QAAQ,CAAC;CAKrB"}
package/dist/task.js CHANGED
@@ -1,6 +1,20 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.TaskClient = void 0;
4
+ /**
5
+ * Task-marketplace client.
6
+ *
7
+ * Full settlement cycle on the live testnet:
8
+ *
9
+ * await client.task.postTask({ title, poster, max_price, task_type, input })
10
+ * await client.task.quoteTask(taskId, providerAddress, price, { model_id, ... })
11
+ * await client.task.assignTask(taskId, providerAddress, quotedPrice)
12
+ * await client.task.completeTask(taskId, output) // <- triggers TNZO transfer
13
+ *
14
+ * `completeTask` performs the on-chain settlement: `tenzro-token`
15
+ * transfers `final_price` (the quoted price, or `max_price` if unquoted)
16
+ * from poster to assignee through the unified token registry.
17
+ */
4
18
  class TaskClient {
5
19
  rpc;
6
20
  constructor(rpc) {
@@ -18,53 +32,73 @@ class TaskClient {
18
32
  async cancelTask(taskId) {
19
33
  return this.rpc.call('tenzro_cancelTask', [{ task_id: taskId }]);
20
34
  }
21
- async submitQuote(taskId, price, modelId, estimatedDurationSecs) {
22
- return this.rpc.call('tenzro_submitQuote', [{
23
- task_id: taskId,
24
- price,
25
- model_id: modelId,
26
- estimated_duration_secs: estimatedDurationSecs,
27
- }]);
28
- }
29
35
  /**
30
- * Submit a quote for a task with price and estimated completion time.
31
- * @param taskId - The task to quote
32
- * @param price - Quoted price (in TNZO wei)
33
- * @param estimatedTime - Estimated completion time (e.g., "120s", "5m", "1h")
34
- * @returns Quote result
36
+ * Submit a quote for a task.
37
+ *
38
+ * @param taskId - The task to quote.
39
+ * @param provider - Provider address (hex). Required the live RPC
40
+ * rejects quotes that lack a provider address.
41
+ * @param price - Quoted price in TNZO wei (u128 as decimal string).
42
+ * @param opts.modelId - Optional model identifier (default: `"any"`).
43
+ * @param opts.confidence - Quote confidence 0–100 (default: 80).
44
+ * @param opts.estimatedDurationSecs - Estimated runtime in seconds (default: 60).
45
+ * @param opts.notes - Optional free-form notes.
35
46
  */
36
- async quoteTask(taskId, price, estimatedTime) {
47
+ async quoteTask(taskId, provider, price, opts) {
37
48
  return this.rpc.call('tenzro_quoteTask', [
38
- { task_id: taskId, price, estimated_time: estimatedTime },
49
+ {
50
+ task_id: taskId,
51
+ provider,
52
+ price,
53
+ model_id: opts?.modelId,
54
+ confidence: opts?.confidence,
55
+ estimated_duration_secs: opts?.estimatedDurationSecs,
56
+ notes: opts?.notes,
57
+ },
39
58
  ]);
40
59
  }
41
60
  /**
42
- * Assign a task to a specific agent.
43
- * @param taskId - The task to assign
44
- * @param agentId - The agent to assign it to
45
- * @returns Assignment result with status
61
+ * Assign a task to a specific provider address.
62
+ *
63
+ * The live RPC handler keys assignment on the provider's wallet
64
+ * address, not an agent_id — the task's `assignee` field is set to
65
+ * `provider`, and `quoted_price` is stored on the task so that
66
+ * `completeTask` can settle to it.
67
+ *
68
+ * @param taskId - The task to assign.
69
+ * @param provider - Provider wallet address (hex).
70
+ * @param quotedPrice - Optional locked-in price in TNZO wei
71
+ * (u128 as decimal string). If omitted, the task's `max_price`
72
+ * is used at settlement time.
46
73
  */
47
- async assignTask(taskId, agentId) {
74
+ async assignTask(taskId, provider, quotedPrice) {
48
75
  return this.rpc.call('tenzro_assignTask', [
49
- { task_id: taskId, agent_id: agentId },
76
+ {
77
+ task_id: taskId,
78
+ provider,
79
+ quoted_price: quotedPrice,
80
+ },
50
81
  ]);
51
82
  }
52
83
  /**
53
- * Mark a task as completed with the final result.
54
- * @param taskId - The task to complete
55
- * @param result - The output / result of the task
56
- * @returns Completion result with status and optional settlement tx hash
84
+ * Mark a task as completed and trigger on-chain TNZO settlement.
85
+ *
86
+ * The live RPC handler:
87
+ * 1. transfers `final_price` from poster to assignee via the token registry,
88
+ * 2. sets `task.status = Completed`,
89
+ * 3. stores `output` on the task,
90
+ * 4. returns the new poster/assignee balances under `settlement`.
91
+ *
92
+ * @param taskId - The task to complete.
93
+ * @param output - The result / output text to attach to the task.
57
94
  */
58
- async completeTask(taskId, result) {
95
+ async completeTask(taskId, output) {
59
96
  return this.rpc.call('tenzro_completeTask', [
60
- { task_id: taskId, result },
97
+ { task_id: taskId, output },
61
98
  ]);
62
99
  }
63
100
  /**
64
- * Update an existing task.
65
- * @param taskId - The task to update
66
- * @param options - Fields to update (partial)
67
- * @returns Updated task information
101
+ * Update an existing task (creator only).
68
102
  */
69
103
  async updateTask(taskId, options) {
70
104
  return this.rpc.call('tenzro_updateTask', [
package/dist/task.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"task.js","sourceRoot":"","sources":["../src/task.ts"],"names":[],"mappings":";;;AAGA,MAAa,UAAU;IACQ;IAA7B,YAA6B,GAAc;QAAd,QAAG,GAAH,GAAG,CAAW;IAAG,CAAC;IAE/C,KAAK,CAAC,QAAQ,CAAC,MAAsB;QACnC,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAW,iBAAiB,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;IAC9D,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,MAAmB;QACjC,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAa,kBAAkB,EAAE,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,CAAC;IACvE,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,MAAc;QAC1B,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAW,gBAAgB,EAAE,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;IAC1E,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,MAAc;QAC7B,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAU,mBAAmB,EAAE,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;IAC5E,CAAC;IAED,KAAK,CAAC,WAAW,CACf,MAAc,EACd,KAAa,EACb,OAAe,EACf,qBAA6B;QAE7B,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAY,oBAAoB,EAAE,CAAC;gBACrD,OAAO,EAAE,MAAM;gBACf,KAAK;gBACL,QAAQ,EAAE,OAAO;gBACjB,uBAAuB,EAAE,qBAAqB;aAC/C,CAAC,CAAC,CAAC;IACN,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,SAAS,CACb,MAAc,EACd,KAAa,EACb,aAAqB;QAErB,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,kBAAkB,EAAE;YACvC,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE;SAC1D,CAAC,CAAC;IACL,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,UAAU,CAAC,MAAc,EAAE,OAAe;QAC9C,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAmB,mBAAmB,EAAE;YAC1D,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE;SACvC,CAAC,CAAC;IACL,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,YAAY,CAAC,MAAc,EAAE,MAAc;QAC/C,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAqB,qBAAqB,EAAE;YAC9D,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE;SAC5B,CAAC,CAAC;IACL,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,UAAU,CACd,MAAc,EACd,OAKC;QAED,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,mBAAmB,EAAE;YACxC,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,OAAO,EAAE;SAChC,CAAC,CAAC;IACL,CAAC;CACF;AA7FD,gCA6FC"}
1
+ {"version":3,"file":"task.js","sourceRoot":"","sources":["../src/task.ts"],"names":[],"mappings":";;;AAUA;;;;;;;;;;;;;GAaG;AACH,MAAa,UAAU;IACQ;IAA7B,YAA6B,GAAc;QAAd,QAAG,GAAH,GAAG,CAAW;IAAG,CAAC;IAE/C,KAAK,CAAC,QAAQ,CAAC,MAAsB;QACnC,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAW,iBAAiB,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;IAC9D,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,MAAmB;QACjC,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAa,kBAAkB,EAAE,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,CAAC;IACvE,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,MAAc;QAC1B,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAW,gBAAgB,EAAE,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;IAC1E,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,MAAc;QAC7B,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAU,mBAAmB,EAAE,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;IAC5E,CAAC;IAED;;;;;;;;;;;OAWG;IACH,KAAK,CAAC,SAAS,CACb,MAAc,EACd,QAAgB,EAChB,KAAa,EACb,IAKC;QAED,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAY,kBAAkB,EAAE;YAClD;gBACE,OAAO,EAAE,MAAM;gBACf,QAAQ;gBACR,KAAK;gBACL,QAAQ,EAAE,IAAI,EAAE,OAAO;gBACvB,UAAU,EAAE,IAAI,EAAE,UAAU;gBAC5B,uBAAuB,EAAE,IAAI,EAAE,qBAAqB;gBACpD,KAAK,EAAE,IAAI,EAAE,KAAK;aACnB;SACF,CAAC,CAAC;IACL,CAAC;IAED;;;;;;;;;;;;;OAaG;IACH,KAAK,CAAC,UAAU,CACd,MAAc,EACd,QAAgB,EAChB,WAAoB;QAEpB,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAmB,mBAAmB,EAAE;YAC1D;gBACE,OAAO,EAAE,MAAM;gBACf,QAAQ;gBACR,YAAY,EAAE,WAAW;aAC1B;SACF,CAAC,CAAC;IACL,CAAC;IAED;;;;;;;;;;;OAWG;IACH,KAAK,CAAC,YAAY,CAAC,MAAc,EAAE,MAAc;QAC/C,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAqB,qBAAqB,EAAE;YAC9D,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE;SAC5B,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,UAAU,CACd,MAAc,EACd,OAKC;QAED,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAW,mBAAmB,EAAE;YAClD,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,OAAO,EAAE;SAChC,CAAC,CAAC;IACL,CAAC;CACF;AArHD,gCAqHC"}
package/dist/token.d.ts CHANGED
@@ -37,14 +37,14 @@ export interface ListTokensParams {
37
37
  /** Parameters for a cross-VM token transfer. */
38
38
  export interface CrossVmTransferParams {
39
39
  /** Sender address */
40
- from: string;
40
+ from_address: string;
41
41
  /** Recipient address */
42
- to: string;
42
+ to_address: string;
43
43
  /** Amount as a decimal string */
44
44
  amount: string;
45
- /** Source VM: "evm", "svm", or "daml" */
45
+ /** Source VM: "evm", "svm", "daml", or "native" */
46
46
  from_vm: string;
47
- /** Destination VM: "evm", "svm", or "daml" */
47
+ /** Destination VM: "evm", "svm", "daml", or "native" */
48
48
  to_vm: string;
49
49
  /** Token symbol (default: "TNZO") */
50
50
  token?: string;
@@ -77,16 +77,46 @@ export interface TokenListResult {
77
77
  /** Total number of tokens matching the filter */
78
78
  total: number;
79
79
  }
80
- /** Token balance across VMs. */
80
+ /** Native TNZO view (18 decimals). */
81
+ export interface NativeBalance {
82
+ /** Balance in wei (decimal string) */
83
+ balance_wei: string;
84
+ /** Number of decimals (always 18) */
85
+ decimals: number;
86
+ }
87
+ /** EVM wTNZO ERC-20 view — same wei as native, 18 decimals. */
88
+ export interface EvmBalance {
89
+ /** Balance in wei (decimal string) */
90
+ balance_wei: string;
91
+ /** Number of decimals (always 18) */
92
+ decimals: number;
93
+ }
94
+ /** SVM wTNZO SPL view — 9-decimal truncation of native balance. */
95
+ export interface SvmBalance {
96
+ /** Balance in SPL base units (decimal string, 9 decimals) */
97
+ balance_base_units: string;
98
+ /** Number of decimals (always 9) */
99
+ decimals: number;
100
+ }
101
+ /** DAML CIP-56 holding view — same wei as native, 18 decimals. */
102
+ export interface DamlBalance {
103
+ /** Holding amount in wei (decimal string) */
104
+ amount_wei: string;
105
+ /** Number of decimals (always 18) */
106
+ decimals: number;
107
+ }
108
+ /** Token balance across all four VM views (pointer model). */
81
109
  export interface TokenBalance {
82
110
  /** Address queried */
83
111
  address: string;
84
- /** Token symbol */
85
- token: string;
86
- /** Total balance as a decimal string */
87
- balance: string;
88
- /** Per-VM breakdown */
89
- balances?: Record<string, string>;
112
+ /** Native TNZO balance (18-decimal wei) */
113
+ native: NativeBalance;
114
+ /** EVM wTNZO ERC-20 view tracks native 1:1 */
115
+ evm_wtnzo: EvmBalance;
116
+ /** SVM wTNZO SPL view — 9-decimal truncation */
117
+ svm_wtnzo: SvmBalance;
118
+ /** DAML CIP-56 holding view — tracks native 1:1 */
119
+ daml_holding: DamlBalance;
90
120
  }
91
121
  /** Result of wrapping native TNZO into a VM representation. */
92
122
  export interface WrapResult {
@@ -1 +1 @@
1
- {"version":3,"file":"token.d.ts","sourceRoot":"","sources":["../src/token.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"token.d.ts","sourceRoot":"","sources":["../src/token.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEvC;;;;GAIG;AACH,eAAO,MAAM,iBAAiB,+CAA+C,CAAC;AAI9E,2DAA2D;AAC3D,MAAM,WAAW,iBAAiB;IAChC,yCAAyC;IACzC,IAAI,EAAE,MAAM,CAAC;IACb,uCAAuC;IACvC,MAAM,EAAE,MAAM,CAAC;IACf,uCAAuC;IACvC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,0DAA0D;IAC1D,cAAc,EAAE,MAAM,CAAC;IACvB,sBAAsB;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,yCAAyC;IACzC,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,yCAAyC;AACzC,MAAM,WAAW,kBAAkB;IACjC,iCAAiC;IACjC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,2BAA2B;IAC3B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,uBAAuB;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,qCAAqC;AACrC,MAAM,WAAW,gBAAgB;IAC/B,8CAA8C;IAC9C,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,gDAAgD;AAChD,MAAM,WAAW,qBAAqB;IACpC,qBAAqB;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,wBAAwB;IACxB,UAAU,EAAE,MAAM,CAAC;IACnB,iCAAiC;IACjC,MAAM,EAAE,MAAM,CAAC;IACf,mDAAmD;IACnD,OAAO,EAAE,MAAM,CAAC;IAChB,wDAAwD;IACxD,KAAK,EAAE,MAAM,CAAC;IACd,qCAAqC;IACrC,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAID,4CAA4C;AAC5C,MAAM,WAAW,SAAS;IACxB,8BAA8B;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,iBAAiB;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,mBAAmB;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,yBAAyB;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,uCAAuC;IACvC,YAAY,EAAE,MAAM,CAAC;IACrB,sBAAsB;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,wCAAwC;IACxC,OAAO,EAAE,MAAM,CAAC;IAChB,2CAA2C;IAC3C,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,uCAAuC;IACvC,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,gCAAgC;AAChC,MAAM,WAAW,eAAe;IAC9B,iCAAiC;IACjC,MAAM,EAAE,SAAS,EAAE,CAAC;IACpB,iDAAiD;IACjD,KAAK,EAAE,MAAM,CAAC;CACf;AAED,sCAAsC;AACtC,MAAM,WAAW,aAAa;IAC5B,sCAAsC;IACtC,WAAW,EAAE,MAAM,CAAC;IACpB,qCAAqC;IACrC,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,+DAA+D;AAC/D,MAAM,WAAW,UAAU;IACzB,sCAAsC;IACtC,WAAW,EAAE,MAAM,CAAC;IACpB,qCAAqC;IACrC,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,mEAAmE;AACnE,MAAM,WAAW,UAAU;IACzB,6DAA6D;IAC7D,kBAAkB,EAAE,MAAM,CAAC;IAC3B,oCAAoC;IACpC,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,kEAAkE;AAClE,MAAM,WAAW,WAAW;IAC1B,6CAA6C;IAC7C,UAAU,EAAE,MAAM,CAAC;IACnB,qCAAqC;IACrC,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,8DAA8D;AAC9D,MAAM,WAAW,YAAY;IAC3B,sBAAsB;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,2CAA2C;IAC3C,MAAM,EAAE,aAAa,CAAC;IACtB,gDAAgD;IAChD,SAAS,EAAE,UAAU,CAAC;IACtB,gDAAgD;IAChD,SAAS,EAAE,UAAU,CAAC;IACtB,mDAAmD;IACnD,YAAY,EAAE,WAAW,CAAC;CAC3B;AAED,+DAA+D;AAC/D,MAAM,WAAW,UAAU;IACzB,uBAAuB;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,yCAAyC;IACzC,MAAM,EAAE,MAAM,CAAC;IACf,gBAAgB;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa;IACb,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,qCAAqC;AACrC,MAAM,WAAW,cAAc;IAC7B,uBAAuB;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,6CAA6C;IAC7C,MAAM,EAAE,MAAM,CAAC;IACf,gBAAgB;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,qBAAqB;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,aAAa;IACb,MAAM,EAAE,MAAM,CAAC;CAChB;AAID;;;;GAIG;AACH,qBAAa,WAAW;IACV,OAAO,CAAC,QAAQ,CAAC,GAAG;gBAAH,GAAG,EAAE,SAAS;IAE3C;;;;;OAKG;IACG,WAAW,CAAC,MAAM,EAAE,iBAAiB,GAAG,OAAO,CAAC,SAAS,CAAC;IAIhE;;;;OAIG;IACG,YAAY,CAAC,MAAM,EAAE,kBAAkB,GAAG,OAAO,CAAC,SAAS,CAAC;IAIlE;;;;OAIG;IACG,UAAU,CAAC,MAAM,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC,eAAe,CAAC;IAIrE;;;;;OAKG;IACG,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IAM7E;;;;;;;OAOG;IACG,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IAMlF;;;;OAIG;IACG,eAAe,CAAC,MAAM,EAAE,qBAAqB,GAAG,OAAO,CAAC,cAAc,CAAC;CAG9E"}
package/dist/token.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"token.js","sourceRoot":"","sources":["../src/token.ts"],"names":[],"mappings":";;;AAEA;;;;GAIG;AACU,QAAA,iBAAiB,GAAG,4CAA4C,CAAC;AA0H9E,eAAe;AAEf;;;;GAIG;AACH,MAAa,WAAW;IACO;IAA7B,YAA6B,GAAc;QAAd,QAAG,GAAH,GAAG,CAAW;IAAG,CAAC;IAE/C;;;;;OAKG;IACH,KAAK,CAAC,WAAW,CAAC,MAAyB;QACzC,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAY,oBAAoB,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;IAClE,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,YAAY,CAAC,MAA0B;QAC3C,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAY,iBAAiB,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;IAC/D,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,UAAU,CAAC,MAAyB;QACxC,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAkB,mBAAmB,EAAE,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,CAAC;IAC7E,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,eAAe,CAAC,OAAe,EAAE,KAAc;QACnD,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAe,wBAAwB,EAAE;YAC3D,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,IAAI,MAAM,EAAE;SACpC,CAAC,CAAC;IACL,CAAC;IAED;;;;;;;OAOG;IACH,KAAK,CAAC,QAAQ,CAAC,OAAe,EAAE,MAAc,EAAE,IAAY;QAC1D,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAa,iBAAiB,EAAE;YAClD,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE;SACnC,CAAC,CAAC;IACL,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,eAAe,CAAC,MAA6B;QACjD,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAiB,wBAAwB,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;IAC3E,CAAC;CACF;AAjED,kCAiEC"}
1
+ {"version":3,"file":"token.js","sourceRoot":"","sources":["../src/token.ts"],"names":[],"mappings":";;;AAEA;;;;GAIG;AACU,QAAA,iBAAiB,GAAG,4CAA4C,CAAC;AA4J9E,eAAe;AAEf;;;;GAIG;AACH,MAAa,WAAW;IACO;IAA7B,YAA6B,GAAc;QAAd,QAAG,GAAH,GAAG,CAAW;IAAG,CAAC;IAE/C;;;;;OAKG;IACH,KAAK,CAAC,WAAW,CAAC,MAAyB;QACzC,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAY,oBAAoB,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;IAClE,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,YAAY,CAAC,MAA0B;QAC3C,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAY,iBAAiB,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;IAC/D,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,UAAU,CAAC,MAAyB;QACxC,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAkB,mBAAmB,EAAE,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,CAAC;IAC7E,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,eAAe,CAAC,OAAe,EAAE,KAAc;QACnD,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAe,wBAAwB,EAAE;YAC3D,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,IAAI,MAAM,EAAE;SACpC,CAAC,CAAC;IACL,CAAC;IAED;;;;;;;OAOG;IACH,KAAK,CAAC,QAAQ,CAAC,OAAe,EAAE,MAAc,EAAE,IAAY;QAC1D,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAa,iBAAiB,EAAE;YAClD,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE;SACnC,CAAC,CAAC;IACL,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,eAAe,CAAC,MAA6B;QACjD,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAiB,wBAAwB,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;IAC3E,CAAC;CACF;AAjED,kCAiEC"}