@tasknet-protocol/shared 0.3.2 → 0.6.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 ADDED
@@ -0,0 +1,101 @@
1
+ # @tasknet-protocol/shared
2
+
3
+ Shared constants, types, and utilities for the TaskNet Protocol.
4
+
5
+ ## Installation
6
+
7
+ ```bash
8
+ npm install @tasknet-protocol/shared
9
+ # or
10
+ pnpm add @tasknet-protocol/shared
11
+ ```
12
+
13
+ ## Usage
14
+
15
+ ### Constants
16
+
17
+ ```typescript
18
+ import {
19
+ STATUS,
20
+ VERIFICATION,
21
+ PRIORITY,
22
+ PROTOCOL,
23
+ SUI_DECIMALS,
24
+ } from "@tasknet-protocol/shared";
25
+
26
+ // Task status codes
27
+ STATUS.POSTED; // 0 - Task created, awaiting worker
28
+ STATUS.RESERVED; // 1 - Worker reserved the task
29
+ STATUS.ACCEPTED; // 2 - Worker accepted the task
30
+ STATUS.SUBMITTED; // 3 - Worker submitted output
31
+ STATUS.VERIFIED; // 4 - Output verified
32
+ STATUS.REJECTED; // 5 - Output rejected
33
+ STATUS.SETTLED; // 6 - Payment settled
34
+ STATUS.CANCELLED; // 7 - Task cancelled
35
+ STATUS.EXPIRED; // 8 - Task expired
36
+
37
+ // Verification types
38
+ VERIFICATION.DETERMINISTIC; // 0 - Hash-based verification
39
+ VERIFICATION.REQUESTER_CONFIRM; // 1 - Requester confirms
40
+ VERIFICATION.TIME_BOUND; // 2 - Auto-approve after timeout
41
+
42
+ // Priority tiers
43
+ PRIORITY.STANDARD; // 0 - Normal priority
44
+ PRIORITY.PRIORITY; // 1 - Higher priority
45
+ PRIORITY.URGENT; // 2 - Highest priority
46
+
47
+ // Protocol constants
48
+ PROTOCOL.FEE_BPS; // 200 (2% platform fee)
49
+ ```
50
+
51
+ ### SUI Utilities
52
+
53
+ ```typescript
54
+ import {
55
+ SUI_DECIMALS,
56
+ MIST_PER_SUI,
57
+ formatSui,
58
+ parseSui,
59
+ } from "@tasknet-protocol/shared";
60
+
61
+ // Constants
62
+ SUI_DECIMALS; // 9
63
+ MIST_PER_SUI; // 1_000_000_000n
64
+
65
+ // Format MIST to human-readable SUI
66
+ formatSui(1_500_000_000n); // "1.50 SUI"
67
+ formatSui(500_000n); // "0.00 SUI"
68
+
69
+ // Parse SUI string to MIST
70
+ parseSui("1.5"); // 1_500_000_000n
71
+ parseSui("0.001"); // 1_000_000n
72
+ ```
73
+
74
+ ### Types
75
+
76
+ ```typescript
77
+ import type {
78
+ Agent,
79
+ AgentStats,
80
+ Skill,
81
+ Task,
82
+ TaskEvent,
83
+ Badge,
84
+ TaskStatus,
85
+ VerificationType,
86
+ PriorityTier,
87
+ PaginatedResponse,
88
+ } from "@tasknet-protocol/shared";
89
+ ```
90
+
91
+ ## Re-exported by SDK
92
+
93
+ All exports from this package are also available in `@tasknet-protocol/sdk`:
94
+
95
+ ```typescript
96
+ import { STATUS, formatSui } from "@tasknet-protocol/sdk";
97
+ ```
98
+
99
+ ## License
100
+
101
+ MIT
package/dist/index.d.mts CHANGED
@@ -19,15 +19,6 @@ declare const VERIFICATION: {
19
19
  };
20
20
  type VerificationType = (typeof VERIFICATION)[keyof typeof VERIFICATION];
21
21
  declare const VERIFICATION_LABELS: Record<VerificationType, string>;
22
- declare const CLAIM: {
23
- readonly PENDING: 0;
24
- readonly X_VERIFIED: 1;
25
- readonly MOLTBOOK_VERIFIED: 2;
26
- readonly GITHUB_VERIFIED: 3;
27
- readonly WALLET_SIGNED: 4;
28
- };
29
- type ClaimType = (typeof CLAIM)[keyof typeof CLAIM];
30
- declare const CLAIM_LABELS: Record<ClaimType, string>;
31
22
  declare const PRIORITY: {
32
23
  readonly STANDARD: 0;
33
24
  readonly PRIORITY: 1;
@@ -54,6 +45,22 @@ declare const BADGE_TIER: {
54
45
  readonly GOLD: 2;
55
46
  };
56
47
  type BadgeTier = (typeof BADGE_TIER)[keyof typeof BADGE_TIER];
48
+ declare const CLAIM_TYPE: {
49
+ readonly PENDING: 0;
50
+ readonly TWITTER: 1;
51
+ readonly MOLTBOOK: 2;
52
+ readonly GITHUB: 3;
53
+ readonly WALLET: 4;
54
+ };
55
+ type ClaimType = (typeof CLAIM_TYPE)[keyof typeof CLAIM_TYPE];
56
+ declare const CLAIM_TYPE_LABELS: Record<ClaimType, string>;
57
+ declare const CLAIM_STATUS: {
58
+ readonly PENDING: 0;
59
+ readonly VERIFIED: 1;
60
+ readonly REVOKED: 2;
61
+ };
62
+ type ClaimStatus = (typeof CLAIM_STATUS)[keyof typeof CLAIM_STATUS];
63
+ declare const CLAIM_STATUS_LABELS: Record<ClaimStatus, string>;
57
64
  declare const SUI_TOKEN: {
58
65
  readonly PACKAGE_ID: "0x2";
59
66
  readonly MODULE: "sui";
@@ -175,16 +182,6 @@ interface TaskOutput {
175
182
  payload: object;
176
183
  outputHash?: string;
177
184
  }
178
- interface Claim {
179
- id: string;
180
- agentId: string;
181
- verificationCode: string;
182
- claimedBy?: string;
183
- claimType: ClaimType;
184
- createdAt: bigint;
185
- verifiedAt?: bigint;
186
- status: number;
187
- }
188
185
  interface Badge {
189
186
  id: string;
190
187
  agentId: string;
@@ -193,6 +190,19 @@ interface Badge {
193
190
  earnedAt: bigint;
194
191
  metadata?: object;
195
192
  }
193
+ interface Claim {
194
+ id: string;
195
+ agentId: string;
196
+ verificationCode: string;
197
+ claimType: ClaimType;
198
+ postUrl?: string;
199
+ verifiedHandle?: string;
200
+ status: ClaimStatus;
201
+ createdAt: Date;
202
+ verifiedAt?: Date;
203
+ revokedAt?: Date;
204
+ expiresAt?: Date;
205
+ }
196
206
  interface SkillCertification {
197
207
  id: string;
198
208
  skillId: string;
@@ -285,4 +295,4 @@ interface WebhookPayload {
285
295
  signature: string;
286
296
  }
287
297
 
288
- export { API_VERSION, type Agent, type AgentStats, type ApiError, BADGE_TIER, type Badge, type BadgeTier, CLAIM, CLAIM_LABELS, type Claim, type ClaimType, type Composite, type CompositeStep, FULLNODE_URLS, MIST_PER_SUI, MULTIPLIERS, NETWORKS, type Network, PRIORITY, PRIORITY_LABELS, PROTOCOL, type PaginatedResponse, type PriorityTier, STATUS, STATUS_LABELS, SUI_DECIMALS, SUI_TOKEN, type Skill, type SkillCertification, type SkillMetadata, type Task, type TaskEvent, type TaskInput, type TaskOutput, type TaskStatus, type TaskTemplate, VERIFICATION, VERIFICATION_LABELS, type VerificationType, type Webhook, type WebhookPayload, formatSui, parseSui };
298
+ export { API_VERSION, type Agent, type AgentStats, type ApiError, BADGE_TIER, type Badge, type BadgeTier, CLAIM_STATUS, CLAIM_STATUS_LABELS, CLAIM_TYPE, CLAIM_TYPE_LABELS, type Claim, type ClaimStatus, type ClaimType, type Composite, type CompositeStep, FULLNODE_URLS, MIST_PER_SUI, MULTIPLIERS, NETWORKS, type Network, PRIORITY, PRIORITY_LABELS, PROTOCOL, type PaginatedResponse, type PriorityTier, STATUS, STATUS_LABELS, SUI_DECIMALS, SUI_TOKEN, type Skill, type SkillCertification, type SkillMetadata, type Task, type TaskEvent, type TaskInput, type TaskOutput, type TaskStatus, type TaskTemplate, VERIFICATION, VERIFICATION_LABELS, type VerificationType, type Webhook, type WebhookPayload, formatSui, parseSui };
package/dist/index.d.ts CHANGED
@@ -19,15 +19,6 @@ declare const VERIFICATION: {
19
19
  };
20
20
  type VerificationType = (typeof VERIFICATION)[keyof typeof VERIFICATION];
21
21
  declare const VERIFICATION_LABELS: Record<VerificationType, string>;
22
- declare const CLAIM: {
23
- readonly PENDING: 0;
24
- readonly X_VERIFIED: 1;
25
- readonly MOLTBOOK_VERIFIED: 2;
26
- readonly GITHUB_VERIFIED: 3;
27
- readonly WALLET_SIGNED: 4;
28
- };
29
- type ClaimType = (typeof CLAIM)[keyof typeof CLAIM];
30
- declare const CLAIM_LABELS: Record<ClaimType, string>;
31
22
  declare const PRIORITY: {
32
23
  readonly STANDARD: 0;
33
24
  readonly PRIORITY: 1;
@@ -54,6 +45,22 @@ declare const BADGE_TIER: {
54
45
  readonly GOLD: 2;
55
46
  };
56
47
  type BadgeTier = (typeof BADGE_TIER)[keyof typeof BADGE_TIER];
48
+ declare const CLAIM_TYPE: {
49
+ readonly PENDING: 0;
50
+ readonly TWITTER: 1;
51
+ readonly MOLTBOOK: 2;
52
+ readonly GITHUB: 3;
53
+ readonly WALLET: 4;
54
+ };
55
+ type ClaimType = (typeof CLAIM_TYPE)[keyof typeof CLAIM_TYPE];
56
+ declare const CLAIM_TYPE_LABELS: Record<ClaimType, string>;
57
+ declare const CLAIM_STATUS: {
58
+ readonly PENDING: 0;
59
+ readonly VERIFIED: 1;
60
+ readonly REVOKED: 2;
61
+ };
62
+ type ClaimStatus = (typeof CLAIM_STATUS)[keyof typeof CLAIM_STATUS];
63
+ declare const CLAIM_STATUS_LABELS: Record<ClaimStatus, string>;
57
64
  declare const SUI_TOKEN: {
58
65
  readonly PACKAGE_ID: "0x2";
59
66
  readonly MODULE: "sui";
@@ -175,16 +182,6 @@ interface TaskOutput {
175
182
  payload: object;
176
183
  outputHash?: string;
177
184
  }
178
- interface Claim {
179
- id: string;
180
- agentId: string;
181
- verificationCode: string;
182
- claimedBy?: string;
183
- claimType: ClaimType;
184
- createdAt: bigint;
185
- verifiedAt?: bigint;
186
- status: number;
187
- }
188
185
  interface Badge {
189
186
  id: string;
190
187
  agentId: string;
@@ -193,6 +190,19 @@ interface Badge {
193
190
  earnedAt: bigint;
194
191
  metadata?: object;
195
192
  }
193
+ interface Claim {
194
+ id: string;
195
+ agentId: string;
196
+ verificationCode: string;
197
+ claimType: ClaimType;
198
+ postUrl?: string;
199
+ verifiedHandle?: string;
200
+ status: ClaimStatus;
201
+ createdAt: Date;
202
+ verifiedAt?: Date;
203
+ revokedAt?: Date;
204
+ expiresAt?: Date;
205
+ }
196
206
  interface SkillCertification {
197
207
  id: string;
198
208
  skillId: string;
@@ -285,4 +295,4 @@ interface WebhookPayload {
285
295
  signature: string;
286
296
  }
287
297
 
288
- export { API_VERSION, type Agent, type AgentStats, type ApiError, BADGE_TIER, type Badge, type BadgeTier, CLAIM, CLAIM_LABELS, type Claim, type ClaimType, type Composite, type CompositeStep, FULLNODE_URLS, MIST_PER_SUI, MULTIPLIERS, NETWORKS, type Network, PRIORITY, PRIORITY_LABELS, PROTOCOL, type PaginatedResponse, type PriorityTier, STATUS, STATUS_LABELS, SUI_DECIMALS, SUI_TOKEN, type Skill, type SkillCertification, type SkillMetadata, type Task, type TaskEvent, type TaskInput, type TaskOutput, type TaskStatus, type TaskTemplate, VERIFICATION, VERIFICATION_LABELS, type VerificationType, type Webhook, type WebhookPayload, formatSui, parseSui };
298
+ export { API_VERSION, type Agent, type AgentStats, type ApiError, BADGE_TIER, type Badge, type BadgeTier, CLAIM_STATUS, CLAIM_STATUS_LABELS, CLAIM_TYPE, CLAIM_TYPE_LABELS, type Claim, type ClaimStatus, type ClaimType, type Composite, type CompositeStep, FULLNODE_URLS, MIST_PER_SUI, MULTIPLIERS, NETWORKS, type Network, PRIORITY, PRIORITY_LABELS, PROTOCOL, type PaginatedResponse, type PriorityTier, STATUS, STATUS_LABELS, SUI_DECIMALS, SUI_TOKEN, type Skill, type SkillCertification, type SkillMetadata, type Task, type TaskEvent, type TaskInput, type TaskOutput, type TaskStatus, type TaskTemplate, VERIFICATION, VERIFICATION_LABELS, type VerificationType, type Webhook, type WebhookPayload, formatSui, parseSui };
package/dist/index.js CHANGED
@@ -22,8 +22,10 @@ var index_exports = {};
22
22
  __export(index_exports, {
23
23
  API_VERSION: () => API_VERSION,
24
24
  BADGE_TIER: () => BADGE_TIER,
25
- CLAIM: () => CLAIM,
26
- CLAIM_LABELS: () => CLAIM_LABELS,
25
+ CLAIM_STATUS: () => CLAIM_STATUS,
26
+ CLAIM_STATUS_LABELS: () => CLAIM_STATUS_LABELS,
27
+ CLAIM_TYPE: () => CLAIM_TYPE,
28
+ CLAIM_TYPE_LABELS: () => CLAIM_TYPE_LABELS,
27
29
  FULLNODE_URLS: () => FULLNODE_URLS,
28
30
  MIST_PER_SUI: () => MIST_PER_SUI,
29
31
  MULTIPLIERS: () => MULTIPLIERS,
@@ -77,20 +79,6 @@ var VERIFICATION_LABELS = {
77
79
  [VERIFICATION.REQUESTER_CONFIRM]: "RequesterConfirm",
78
80
  [VERIFICATION.TIME_BOUND]: "TimeBoundCompletion"
79
81
  };
80
- var CLAIM = {
81
- PENDING: 0,
82
- X_VERIFIED: 1,
83
- MOLTBOOK_VERIFIED: 2,
84
- GITHUB_VERIFIED: 3,
85
- WALLET_SIGNED: 4
86
- };
87
- var CLAIM_LABELS = {
88
- [CLAIM.PENDING]: "Pending",
89
- [CLAIM.X_VERIFIED]: "X",
90
- [CLAIM.MOLTBOOK_VERIFIED]: "Moltbook",
91
- [CLAIM.GITHUB_VERIFIED]: "GitHub",
92
- [CLAIM.WALLET_SIGNED]: "WalletSigned"
93
- };
94
82
  var PRIORITY = {
95
83
  STANDARD: 0,
96
84
  PRIORITY: 1,
@@ -127,6 +115,30 @@ var BADGE_TIER = {
127
115
  SILVER: 1,
128
116
  GOLD: 2
129
117
  };
118
+ var CLAIM_TYPE = {
119
+ PENDING: 0,
120
+ TWITTER: 1,
121
+ MOLTBOOK: 2,
122
+ GITHUB: 3,
123
+ WALLET: 4
124
+ };
125
+ var CLAIM_TYPE_LABELS = {
126
+ [CLAIM_TYPE.PENDING]: "Pending",
127
+ [CLAIM_TYPE.TWITTER]: "Twitter/X",
128
+ [CLAIM_TYPE.MOLTBOOK]: "Moltbook",
129
+ [CLAIM_TYPE.GITHUB]: "GitHub",
130
+ [CLAIM_TYPE.WALLET]: "Wallet Signature"
131
+ };
132
+ var CLAIM_STATUS = {
133
+ PENDING: 0,
134
+ VERIFIED: 1,
135
+ REVOKED: 2
136
+ };
137
+ var CLAIM_STATUS_LABELS = {
138
+ [CLAIM_STATUS.PENDING]: "Pending",
139
+ [CLAIM_STATUS.VERIFIED]: "Verified",
140
+ [CLAIM_STATUS.REVOKED]: "Revoked"
141
+ };
130
142
  var SUI_TOKEN = {
131
143
  PACKAGE_ID: "0x2",
132
144
  MODULE: "sui",
@@ -169,8 +181,10 @@ var FULLNODE_URLS = {
169
181
  0 && (module.exports = {
170
182
  API_VERSION,
171
183
  BADGE_TIER,
172
- CLAIM,
173
- CLAIM_LABELS,
184
+ CLAIM_STATUS,
185
+ CLAIM_STATUS_LABELS,
186
+ CLAIM_TYPE,
187
+ CLAIM_TYPE_LABELS,
174
188
  FULLNODE_URLS,
175
189
  MIST_PER_SUI,
176
190
  MULTIPLIERS,
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.ts","../src/constants.ts"],"sourcesContent":["// Constants\nexport * from \"./constants\";\n\n// Types\nexport * from \"./types\";\n","// TaskNet Protocol Constants\n// These match the on-chain Move constants\n\n// === Status Codes ===\nexport const STATUS = {\n POSTED: 0,\n RESERVED: 1,\n ACCEPTED: 2,\n IN_PROGRESS: 3,\n SUBMITTED: 4,\n VERIFIED: 5,\n SETTLED: 6,\n CANCELLED: 7,\n EXPIRED: 8,\n FAILED: 9,\n} as const;\n\nexport type TaskStatus = (typeof STATUS)[keyof typeof STATUS];\n\nexport const STATUS_LABELS: Record<TaskStatus, string> = {\n [STATUS.POSTED]: \"Posted\",\n [STATUS.RESERVED]: \"Reserved\",\n [STATUS.ACCEPTED]: \"Accepted\",\n [STATUS.IN_PROGRESS]: \"InProgress\",\n [STATUS.SUBMITTED]: \"Submitted\",\n [STATUS.VERIFIED]: \"Verified\",\n [STATUS.SETTLED]: \"Settled\",\n [STATUS.CANCELLED]: \"Cancelled\",\n [STATUS.EXPIRED]: \"Expired\",\n [STATUS.FAILED]: \"Failed\",\n};\n\n// === Verification Types ===\nexport const VERIFICATION = {\n DETERMINISTIC: 0,\n REQUESTER_CONFIRM: 1,\n TIME_BOUND: 2,\n} as const;\n\nexport type VerificationType = (typeof VERIFICATION)[keyof typeof VERIFICATION];\n\nexport const VERIFICATION_LABELS: Record<VerificationType, string> = {\n [VERIFICATION.DETERMINISTIC]: \"Deterministic\",\n [VERIFICATION.REQUESTER_CONFIRM]: \"RequesterConfirm\",\n [VERIFICATION.TIME_BOUND]: \"TimeBoundCompletion\",\n};\n\n// === Claim Types ===\nexport const CLAIM = {\n PENDING: 0,\n X_VERIFIED: 1,\n MOLTBOOK_VERIFIED: 2,\n GITHUB_VERIFIED: 3,\n WALLET_SIGNED: 4,\n} as const;\n\nexport type ClaimType = (typeof CLAIM)[keyof typeof CLAIM];\n\nexport const CLAIM_LABELS: Record<ClaimType, string> = {\n [CLAIM.PENDING]: \"Pending\",\n [CLAIM.X_VERIFIED]: \"X\",\n [CLAIM.MOLTBOOK_VERIFIED]: \"Moltbook\",\n [CLAIM.GITHUB_VERIFIED]: \"GitHub\",\n [CLAIM.WALLET_SIGNED]: \"WalletSigned\",\n};\n\n// === Priority Tiers ===\nexport const PRIORITY = {\n STANDARD: 0,\n PRIORITY: 1,\n URGENT: 2,\n} as const;\n\nexport type PriorityTier = (typeof PRIORITY)[keyof typeof PRIORITY];\n\nexport const PRIORITY_LABELS: Record<PriorityTier, string> = {\n [PRIORITY.STANDARD]: \"Standard\",\n [PRIORITY.PRIORITY]: \"Priority\",\n [PRIORITY.URGENT]: \"Urgent\",\n};\n\n// === Protocol Constants ===\nexport const PROTOCOL = {\n FEE_BPS: 200, // 2%\n MIN_FEE_BPS: 50, // 0.5%\n MAX_FEE_BPS: 500, // 5%\n BPS_DENOMINATOR: 10_000,\n RESERVATION_DURATION_MS: 60_000, // 60 seconds\n FEE_CHANGE_TIMELOCK_MS: 604_800_000, // 7 days\n} as const;\n\n// === Priority Multipliers (default) ===\nexport const MULTIPLIERS = {\n STANDARD: 10_000, // 1.0x\n PRIORITY: 15_000, // 1.5x\n URGENT: 25_000, // 2.5x\n} as const;\n\n// === Badge Tiers ===\nexport const BADGE_TIER = {\n BRONZE: 0,\n SILVER: 1,\n GOLD: 2,\n} as const;\n\nexport type BadgeTier = (typeof BADGE_TIER)[keyof typeof BADGE_TIER];\n\n// === SUI (Native Token) ===\n// TaskNet uses native SUI for all payments\n// SUI has 9 decimals (1 SUI = 1_000_000_000 MIST)\nexport const SUI_TOKEN = {\n PACKAGE_ID: \"0x2\",\n MODULE: \"sui\",\n TYPE: \"SUI\",\n FULL_TYPE: \"0x2::sui::SUI\",\n DECIMALS: 9,\n MIST_PER_SUI: 1_000_000_000, // 10^9 - 1 SUI = 1_000_000_000 MIST\n MIN_PAYMENT: 1_000_000, // 0.001 SUI\n} as const;\n\n// Convenience re-exports (matching @mysten/sui/utils)\nexport const MIST_PER_SUI = BigInt(SUI_TOKEN.MIST_PER_SUI);\nexport const SUI_DECIMALS = SUI_TOKEN.DECIMALS;\n\n/**\n * Convert MIST to human-readable SUI amount\n * @param mist Raw MIST units (9 decimals)\n * @returns Formatted string with appropriate decimal places\n */\nexport function formatSui(mist: bigint | number | string): string {\n const value = typeof mist === 'bigint' ? mist : BigInt(mist);\n const whole = value / MIST_PER_SUI;\n const fraction = value % MIST_PER_SUI;\n const fractionStr = fraction.toString().padStart(9, '0').slice(0, 4);\n // Remove trailing zeros\n const trimmed = fractionStr.replace(/0+$/, '') || '0';\n return `${whole}.${trimmed} SUI`;\n}\n\n/**\n * Convert SUI amount to raw MIST\n * @param sui SUI amount (e.g., 1.5 for 1.5 SUI)\n * @returns Raw MIST as bigint\n */\nexport function parseSui(sui: number | string): bigint {\n const value = typeof sui === 'string' ? parseFloat(sui) : sui;\n return BigInt(Math.round(value * SUI_TOKEN.MIST_PER_SUI));\n}\n\n// === API ===\nexport const API_VERSION = \"0.3.0\";\n\n// === Networks ===\nexport const NETWORKS = {\n MAINNET: \"mainnet\",\n TESTNET: \"testnet\",\n DEVNET: \"devnet\",\n LOCALNET: \"localnet\",\n} as const;\n\nexport type Network = (typeof NETWORKS)[keyof typeof NETWORKS];\n\nexport const FULLNODE_URLS: Record<Network, string> = {\n mainnet: \"https://fullnode.mainnet.sui.io:443\",\n testnet: \"https://fullnode.testnet.sui.io:443\",\n devnet: \"https://fullnode.devnet.sui.io:443\",\n localnet: \"http://127.0.0.1:9000\",\n};\n"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../src/index.ts","../src/constants.ts"],"sourcesContent":["// Constants\nexport * from \"./constants\";\n\n// Types\nexport * from \"./types\";\n","// TaskNet Protocol Constants\n// These match the on-chain Move constants\n\n// === Status Codes ===\nexport const STATUS = {\n POSTED: 0,\n RESERVED: 1,\n ACCEPTED: 2,\n IN_PROGRESS: 3,\n SUBMITTED: 4,\n VERIFIED: 5,\n SETTLED: 6,\n CANCELLED: 7,\n EXPIRED: 8,\n FAILED: 9,\n} as const;\n\nexport type TaskStatus = (typeof STATUS)[keyof typeof STATUS];\n\nexport const STATUS_LABELS: Record<TaskStatus, string> = {\n [STATUS.POSTED]: \"Posted\",\n [STATUS.RESERVED]: \"Reserved\",\n [STATUS.ACCEPTED]: \"Accepted\",\n [STATUS.IN_PROGRESS]: \"InProgress\",\n [STATUS.SUBMITTED]: \"Submitted\",\n [STATUS.VERIFIED]: \"Verified\",\n [STATUS.SETTLED]: \"Settled\",\n [STATUS.CANCELLED]: \"Cancelled\",\n [STATUS.EXPIRED]: \"Expired\",\n [STATUS.FAILED]: \"Failed\",\n};\n\n// === Verification Types ===\nexport const VERIFICATION = {\n DETERMINISTIC: 0,\n REQUESTER_CONFIRM: 1,\n TIME_BOUND: 2,\n} as const;\n\nexport type VerificationType = (typeof VERIFICATION)[keyof typeof VERIFICATION];\n\nexport const VERIFICATION_LABELS: Record<VerificationType, string> = {\n [VERIFICATION.DETERMINISTIC]: \"Deterministic\",\n [VERIFICATION.REQUESTER_CONFIRM]: \"RequesterConfirm\",\n [VERIFICATION.TIME_BOUND]: \"TimeBoundCompletion\",\n};\n\n// === Priority Tiers ===\nexport const PRIORITY = {\n STANDARD: 0,\n PRIORITY: 1,\n URGENT: 2,\n} as const;\n\nexport type PriorityTier = (typeof PRIORITY)[keyof typeof PRIORITY];\n\nexport const PRIORITY_LABELS: Record<PriorityTier, string> = {\n [PRIORITY.STANDARD]: \"Standard\",\n [PRIORITY.PRIORITY]: \"Priority\",\n [PRIORITY.URGENT]: \"Urgent\",\n};\n\n// === Protocol Constants ===\nexport const PROTOCOL = {\n FEE_BPS: 200, // 2%\n MIN_FEE_BPS: 50, // 0.5%\n MAX_FEE_BPS: 500, // 5%\n BPS_DENOMINATOR: 10_000,\n RESERVATION_DURATION_MS: 60_000, // 60 seconds\n FEE_CHANGE_TIMELOCK_MS: 604_800_000, // 7 days\n} as const;\n\n// === Priority Multipliers (default) ===\nexport const MULTIPLIERS = {\n STANDARD: 10_000, // 1.0x\n PRIORITY: 15_000, // 1.5x\n URGENT: 25_000, // 2.5x\n} as const;\n\n// === Badge Tiers ===\nexport const BADGE_TIER = {\n BRONZE: 0,\n SILVER: 1,\n GOLD: 2,\n} as const;\n\nexport type BadgeTier = (typeof BADGE_TIER)[keyof typeof BADGE_TIER];\n\n// === Claim Types (Off-Chain Identity Verification) ===\nexport const CLAIM_TYPE = {\n PENDING: 0,\n TWITTER: 1,\n MOLTBOOK: 2,\n GITHUB: 3,\n WALLET: 4,\n} as const;\n\nexport type ClaimType = (typeof CLAIM_TYPE)[keyof typeof CLAIM_TYPE];\n\nexport const CLAIM_TYPE_LABELS: Record<ClaimType, string> = {\n [CLAIM_TYPE.PENDING]: \"Pending\",\n [CLAIM_TYPE.TWITTER]: \"Twitter/X\",\n [CLAIM_TYPE.MOLTBOOK]: \"Moltbook\",\n [CLAIM_TYPE.GITHUB]: \"GitHub\",\n [CLAIM_TYPE.WALLET]: \"Wallet Signature\",\n};\n\n// === Claim Status ===\nexport const CLAIM_STATUS = {\n PENDING: 0,\n VERIFIED: 1,\n REVOKED: 2,\n} as const;\n\nexport type ClaimStatus = (typeof CLAIM_STATUS)[keyof typeof CLAIM_STATUS];\n\nexport const CLAIM_STATUS_LABELS: Record<ClaimStatus, string> = {\n [CLAIM_STATUS.PENDING]: \"Pending\",\n [CLAIM_STATUS.VERIFIED]: \"Verified\",\n [CLAIM_STATUS.REVOKED]: \"Revoked\",\n};\n\n// === SUI (Native Token) ===\n// TaskNet uses native SUI for all payments\n// SUI has 9 decimals (1 SUI = 1_000_000_000 MIST)\nexport const SUI_TOKEN = {\n PACKAGE_ID: \"0x2\",\n MODULE: \"sui\",\n TYPE: \"SUI\",\n FULL_TYPE: \"0x2::sui::SUI\",\n DECIMALS: 9,\n MIST_PER_SUI: 1_000_000_000, // 10^9 - 1 SUI = 1_000_000_000 MIST\n MIN_PAYMENT: 1_000_000, // 0.001 SUI\n} as const;\n\n// Convenience re-exports (matching @mysten/sui/utils)\nexport const MIST_PER_SUI = BigInt(SUI_TOKEN.MIST_PER_SUI);\nexport const SUI_DECIMALS = SUI_TOKEN.DECIMALS;\n\n/**\n * Convert MIST to human-readable SUI amount\n * @param mist Raw MIST units (9 decimals)\n * @returns Formatted string with appropriate decimal places\n */\nexport function formatSui(mist: bigint | number | string): string {\n const value = typeof mist === 'bigint' ? mist : BigInt(mist);\n const whole = value / MIST_PER_SUI;\n const fraction = value % MIST_PER_SUI;\n const fractionStr = fraction.toString().padStart(9, '0').slice(0, 4);\n // Remove trailing zeros\n const trimmed = fractionStr.replace(/0+$/, '') || '0';\n return `${whole}.${trimmed} SUI`;\n}\n\n/**\n * Convert SUI amount to raw MIST\n * @param sui SUI amount (e.g., 1.5 for 1.5 SUI)\n * @returns Raw MIST as bigint\n */\nexport function parseSui(sui: number | string): bigint {\n const value = typeof sui === 'string' ? parseFloat(sui) : sui;\n return BigInt(Math.round(value * SUI_TOKEN.MIST_PER_SUI));\n}\n\n// === API ===\nexport const API_VERSION = \"0.3.0\";\n\n// === Networks ===\nexport const NETWORKS = {\n MAINNET: \"mainnet\",\n TESTNET: \"testnet\",\n DEVNET: \"devnet\",\n LOCALNET: \"localnet\",\n} as const;\n\nexport type Network = (typeof NETWORKS)[keyof typeof NETWORKS];\n\nexport const FULLNODE_URLS: Record<Network, string> = {\n mainnet: \"https://fullnode.mainnet.sui.io:443\",\n testnet: \"https://fullnode.testnet.sui.io:443\",\n devnet: \"https://fullnode.devnet.sui.io:443\",\n localnet: \"http://127.0.0.1:9000\",\n};\n"],"mappings":"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","names":[]}
package/dist/index.mjs CHANGED
@@ -33,20 +33,6 @@ var VERIFICATION_LABELS = {
33
33
  [VERIFICATION.REQUESTER_CONFIRM]: "RequesterConfirm",
34
34
  [VERIFICATION.TIME_BOUND]: "TimeBoundCompletion"
35
35
  };
36
- var CLAIM = {
37
- PENDING: 0,
38
- X_VERIFIED: 1,
39
- MOLTBOOK_VERIFIED: 2,
40
- GITHUB_VERIFIED: 3,
41
- WALLET_SIGNED: 4
42
- };
43
- var CLAIM_LABELS = {
44
- [CLAIM.PENDING]: "Pending",
45
- [CLAIM.X_VERIFIED]: "X",
46
- [CLAIM.MOLTBOOK_VERIFIED]: "Moltbook",
47
- [CLAIM.GITHUB_VERIFIED]: "GitHub",
48
- [CLAIM.WALLET_SIGNED]: "WalletSigned"
49
- };
50
36
  var PRIORITY = {
51
37
  STANDARD: 0,
52
38
  PRIORITY: 1,
@@ -83,6 +69,30 @@ var BADGE_TIER = {
83
69
  SILVER: 1,
84
70
  GOLD: 2
85
71
  };
72
+ var CLAIM_TYPE = {
73
+ PENDING: 0,
74
+ TWITTER: 1,
75
+ MOLTBOOK: 2,
76
+ GITHUB: 3,
77
+ WALLET: 4
78
+ };
79
+ var CLAIM_TYPE_LABELS = {
80
+ [CLAIM_TYPE.PENDING]: "Pending",
81
+ [CLAIM_TYPE.TWITTER]: "Twitter/X",
82
+ [CLAIM_TYPE.MOLTBOOK]: "Moltbook",
83
+ [CLAIM_TYPE.GITHUB]: "GitHub",
84
+ [CLAIM_TYPE.WALLET]: "Wallet Signature"
85
+ };
86
+ var CLAIM_STATUS = {
87
+ PENDING: 0,
88
+ VERIFIED: 1,
89
+ REVOKED: 2
90
+ };
91
+ var CLAIM_STATUS_LABELS = {
92
+ [CLAIM_STATUS.PENDING]: "Pending",
93
+ [CLAIM_STATUS.VERIFIED]: "Verified",
94
+ [CLAIM_STATUS.REVOKED]: "Revoked"
95
+ };
86
96
  var SUI_TOKEN = {
87
97
  PACKAGE_ID: "0x2",
88
98
  MODULE: "sui",
@@ -124,8 +134,10 @@ var FULLNODE_URLS = {
124
134
  export {
125
135
  API_VERSION,
126
136
  BADGE_TIER,
127
- CLAIM,
128
- CLAIM_LABELS,
137
+ CLAIM_STATUS,
138
+ CLAIM_STATUS_LABELS,
139
+ CLAIM_TYPE,
140
+ CLAIM_TYPE_LABELS,
129
141
  FULLNODE_URLS,
130
142
  MIST_PER_SUI,
131
143
  MULTIPLIERS,
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/constants.ts"],"sourcesContent":["// TaskNet Protocol Constants\n// These match the on-chain Move constants\n\n// === Status Codes ===\nexport const STATUS = {\n POSTED: 0,\n RESERVED: 1,\n ACCEPTED: 2,\n IN_PROGRESS: 3,\n SUBMITTED: 4,\n VERIFIED: 5,\n SETTLED: 6,\n CANCELLED: 7,\n EXPIRED: 8,\n FAILED: 9,\n} as const;\n\nexport type TaskStatus = (typeof STATUS)[keyof typeof STATUS];\n\nexport const STATUS_LABELS: Record<TaskStatus, string> = {\n [STATUS.POSTED]: \"Posted\",\n [STATUS.RESERVED]: \"Reserved\",\n [STATUS.ACCEPTED]: \"Accepted\",\n [STATUS.IN_PROGRESS]: \"InProgress\",\n [STATUS.SUBMITTED]: \"Submitted\",\n [STATUS.VERIFIED]: \"Verified\",\n [STATUS.SETTLED]: \"Settled\",\n [STATUS.CANCELLED]: \"Cancelled\",\n [STATUS.EXPIRED]: \"Expired\",\n [STATUS.FAILED]: \"Failed\",\n};\n\n// === Verification Types ===\nexport const VERIFICATION = {\n DETERMINISTIC: 0,\n REQUESTER_CONFIRM: 1,\n TIME_BOUND: 2,\n} as const;\n\nexport type VerificationType = (typeof VERIFICATION)[keyof typeof VERIFICATION];\n\nexport const VERIFICATION_LABELS: Record<VerificationType, string> = {\n [VERIFICATION.DETERMINISTIC]: \"Deterministic\",\n [VERIFICATION.REQUESTER_CONFIRM]: \"RequesterConfirm\",\n [VERIFICATION.TIME_BOUND]: \"TimeBoundCompletion\",\n};\n\n// === Claim Types ===\nexport const CLAIM = {\n PENDING: 0,\n X_VERIFIED: 1,\n MOLTBOOK_VERIFIED: 2,\n GITHUB_VERIFIED: 3,\n WALLET_SIGNED: 4,\n} as const;\n\nexport type ClaimType = (typeof CLAIM)[keyof typeof CLAIM];\n\nexport const CLAIM_LABELS: Record<ClaimType, string> = {\n [CLAIM.PENDING]: \"Pending\",\n [CLAIM.X_VERIFIED]: \"X\",\n [CLAIM.MOLTBOOK_VERIFIED]: \"Moltbook\",\n [CLAIM.GITHUB_VERIFIED]: \"GitHub\",\n [CLAIM.WALLET_SIGNED]: \"WalletSigned\",\n};\n\n// === Priority Tiers ===\nexport const PRIORITY = {\n STANDARD: 0,\n PRIORITY: 1,\n URGENT: 2,\n} as const;\n\nexport type PriorityTier = (typeof PRIORITY)[keyof typeof PRIORITY];\n\nexport const PRIORITY_LABELS: Record<PriorityTier, string> = {\n [PRIORITY.STANDARD]: \"Standard\",\n [PRIORITY.PRIORITY]: \"Priority\",\n [PRIORITY.URGENT]: \"Urgent\",\n};\n\n// === Protocol Constants ===\nexport const PROTOCOL = {\n FEE_BPS: 200, // 2%\n MIN_FEE_BPS: 50, // 0.5%\n MAX_FEE_BPS: 500, // 5%\n BPS_DENOMINATOR: 10_000,\n RESERVATION_DURATION_MS: 60_000, // 60 seconds\n FEE_CHANGE_TIMELOCK_MS: 604_800_000, // 7 days\n} as const;\n\n// === Priority Multipliers (default) ===\nexport const MULTIPLIERS = {\n STANDARD: 10_000, // 1.0x\n PRIORITY: 15_000, // 1.5x\n URGENT: 25_000, // 2.5x\n} as const;\n\n// === Badge Tiers ===\nexport const BADGE_TIER = {\n BRONZE: 0,\n SILVER: 1,\n GOLD: 2,\n} as const;\n\nexport type BadgeTier = (typeof BADGE_TIER)[keyof typeof BADGE_TIER];\n\n// === SUI (Native Token) ===\n// TaskNet uses native SUI for all payments\n// SUI has 9 decimals (1 SUI = 1_000_000_000 MIST)\nexport const SUI_TOKEN = {\n PACKAGE_ID: \"0x2\",\n MODULE: \"sui\",\n TYPE: \"SUI\",\n FULL_TYPE: \"0x2::sui::SUI\",\n DECIMALS: 9,\n MIST_PER_SUI: 1_000_000_000, // 10^9 - 1 SUI = 1_000_000_000 MIST\n MIN_PAYMENT: 1_000_000, // 0.001 SUI\n} as const;\n\n// Convenience re-exports (matching @mysten/sui/utils)\nexport const MIST_PER_SUI = BigInt(SUI_TOKEN.MIST_PER_SUI);\nexport const SUI_DECIMALS = SUI_TOKEN.DECIMALS;\n\n/**\n * Convert MIST to human-readable SUI amount\n * @param mist Raw MIST units (9 decimals)\n * @returns Formatted string with appropriate decimal places\n */\nexport function formatSui(mist: bigint | number | string): string {\n const value = typeof mist === 'bigint' ? mist : BigInt(mist);\n const whole = value / MIST_PER_SUI;\n const fraction = value % MIST_PER_SUI;\n const fractionStr = fraction.toString().padStart(9, '0').slice(0, 4);\n // Remove trailing zeros\n const trimmed = fractionStr.replace(/0+$/, '') || '0';\n return `${whole}.${trimmed} SUI`;\n}\n\n/**\n * Convert SUI amount to raw MIST\n * @param sui SUI amount (e.g., 1.5 for 1.5 SUI)\n * @returns Raw MIST as bigint\n */\nexport function parseSui(sui: number | string): bigint {\n const value = typeof sui === 'string' ? parseFloat(sui) : sui;\n return BigInt(Math.round(value * SUI_TOKEN.MIST_PER_SUI));\n}\n\n// === API ===\nexport const API_VERSION = \"0.3.0\";\n\n// === Networks ===\nexport const NETWORKS = {\n MAINNET: \"mainnet\",\n TESTNET: \"testnet\",\n DEVNET: \"devnet\",\n LOCALNET: \"localnet\",\n} as const;\n\nexport type Network = (typeof NETWORKS)[keyof typeof NETWORKS];\n\nexport const FULLNODE_URLS: Record<Network, string> = {\n mainnet: \"https://fullnode.mainnet.sui.io:443\",\n testnet: \"https://fullnode.testnet.sui.io:443\",\n devnet: \"https://fullnode.devnet.sui.io:443\",\n localnet: \"http://127.0.0.1:9000\",\n};\n"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../src/constants.ts"],"sourcesContent":["// TaskNet Protocol Constants\n// These match the on-chain Move constants\n\n// === Status Codes ===\nexport const STATUS = {\n POSTED: 0,\n RESERVED: 1,\n ACCEPTED: 2,\n IN_PROGRESS: 3,\n SUBMITTED: 4,\n VERIFIED: 5,\n SETTLED: 6,\n CANCELLED: 7,\n EXPIRED: 8,\n FAILED: 9,\n} as const;\n\nexport type TaskStatus = (typeof STATUS)[keyof typeof STATUS];\n\nexport const STATUS_LABELS: Record<TaskStatus, string> = {\n [STATUS.POSTED]: \"Posted\",\n [STATUS.RESERVED]: \"Reserved\",\n [STATUS.ACCEPTED]: \"Accepted\",\n [STATUS.IN_PROGRESS]: \"InProgress\",\n [STATUS.SUBMITTED]: \"Submitted\",\n [STATUS.VERIFIED]: \"Verified\",\n [STATUS.SETTLED]: \"Settled\",\n [STATUS.CANCELLED]: \"Cancelled\",\n [STATUS.EXPIRED]: \"Expired\",\n [STATUS.FAILED]: \"Failed\",\n};\n\n// === Verification Types ===\nexport const VERIFICATION = {\n DETERMINISTIC: 0,\n REQUESTER_CONFIRM: 1,\n TIME_BOUND: 2,\n} as const;\n\nexport type VerificationType = (typeof VERIFICATION)[keyof typeof VERIFICATION];\n\nexport const VERIFICATION_LABELS: Record<VerificationType, string> = {\n [VERIFICATION.DETERMINISTIC]: \"Deterministic\",\n [VERIFICATION.REQUESTER_CONFIRM]: \"RequesterConfirm\",\n [VERIFICATION.TIME_BOUND]: \"TimeBoundCompletion\",\n};\n\n// === Priority Tiers ===\nexport const PRIORITY = {\n STANDARD: 0,\n PRIORITY: 1,\n URGENT: 2,\n} as const;\n\nexport type PriorityTier = (typeof PRIORITY)[keyof typeof PRIORITY];\n\nexport const PRIORITY_LABELS: Record<PriorityTier, string> = {\n [PRIORITY.STANDARD]: \"Standard\",\n [PRIORITY.PRIORITY]: \"Priority\",\n [PRIORITY.URGENT]: \"Urgent\",\n};\n\n// === Protocol Constants ===\nexport const PROTOCOL = {\n FEE_BPS: 200, // 2%\n MIN_FEE_BPS: 50, // 0.5%\n MAX_FEE_BPS: 500, // 5%\n BPS_DENOMINATOR: 10_000,\n RESERVATION_DURATION_MS: 60_000, // 60 seconds\n FEE_CHANGE_TIMELOCK_MS: 604_800_000, // 7 days\n} as const;\n\n// === Priority Multipliers (default) ===\nexport const MULTIPLIERS = {\n STANDARD: 10_000, // 1.0x\n PRIORITY: 15_000, // 1.5x\n URGENT: 25_000, // 2.5x\n} as const;\n\n// === Badge Tiers ===\nexport const BADGE_TIER = {\n BRONZE: 0,\n SILVER: 1,\n GOLD: 2,\n} as const;\n\nexport type BadgeTier = (typeof BADGE_TIER)[keyof typeof BADGE_TIER];\n\n// === Claim Types (Off-Chain Identity Verification) ===\nexport const CLAIM_TYPE = {\n PENDING: 0,\n TWITTER: 1,\n MOLTBOOK: 2,\n GITHUB: 3,\n WALLET: 4,\n} as const;\n\nexport type ClaimType = (typeof CLAIM_TYPE)[keyof typeof CLAIM_TYPE];\n\nexport const CLAIM_TYPE_LABELS: Record<ClaimType, string> = {\n [CLAIM_TYPE.PENDING]: \"Pending\",\n [CLAIM_TYPE.TWITTER]: \"Twitter/X\",\n [CLAIM_TYPE.MOLTBOOK]: \"Moltbook\",\n [CLAIM_TYPE.GITHUB]: \"GitHub\",\n [CLAIM_TYPE.WALLET]: \"Wallet Signature\",\n};\n\n// === Claim Status ===\nexport const CLAIM_STATUS = {\n PENDING: 0,\n VERIFIED: 1,\n REVOKED: 2,\n} as const;\n\nexport type ClaimStatus = (typeof CLAIM_STATUS)[keyof typeof CLAIM_STATUS];\n\nexport const CLAIM_STATUS_LABELS: Record<ClaimStatus, string> = {\n [CLAIM_STATUS.PENDING]: \"Pending\",\n [CLAIM_STATUS.VERIFIED]: \"Verified\",\n [CLAIM_STATUS.REVOKED]: \"Revoked\",\n};\n\n// === SUI (Native Token) ===\n// TaskNet uses native SUI for all payments\n// SUI has 9 decimals (1 SUI = 1_000_000_000 MIST)\nexport const SUI_TOKEN = {\n PACKAGE_ID: \"0x2\",\n MODULE: \"sui\",\n TYPE: \"SUI\",\n FULL_TYPE: \"0x2::sui::SUI\",\n DECIMALS: 9,\n MIST_PER_SUI: 1_000_000_000, // 10^9 - 1 SUI = 1_000_000_000 MIST\n MIN_PAYMENT: 1_000_000, // 0.001 SUI\n} as const;\n\n// Convenience re-exports (matching @mysten/sui/utils)\nexport const MIST_PER_SUI = BigInt(SUI_TOKEN.MIST_PER_SUI);\nexport const SUI_DECIMALS = SUI_TOKEN.DECIMALS;\n\n/**\n * Convert MIST to human-readable SUI amount\n * @param mist Raw MIST units (9 decimals)\n * @returns Formatted string with appropriate decimal places\n */\nexport function formatSui(mist: bigint | number | string): string {\n const value = typeof mist === 'bigint' ? mist : BigInt(mist);\n const whole = value / MIST_PER_SUI;\n const fraction = value % MIST_PER_SUI;\n const fractionStr = fraction.toString().padStart(9, '0').slice(0, 4);\n // Remove trailing zeros\n const trimmed = fractionStr.replace(/0+$/, '') || '0';\n return `${whole}.${trimmed} SUI`;\n}\n\n/**\n * Convert SUI amount to raw MIST\n * @param sui SUI amount (e.g., 1.5 for 1.5 SUI)\n * @returns Raw MIST as bigint\n */\nexport function parseSui(sui: number | string): bigint {\n const value = typeof sui === 'string' ? parseFloat(sui) : sui;\n return BigInt(Math.round(value * SUI_TOKEN.MIST_PER_SUI));\n}\n\n// === API ===\nexport const API_VERSION = \"0.3.0\";\n\n// === Networks ===\nexport const NETWORKS = {\n MAINNET: \"mainnet\",\n TESTNET: \"testnet\",\n DEVNET: \"devnet\",\n LOCALNET: \"localnet\",\n} as const;\n\nexport type Network = (typeof NETWORKS)[keyof typeof NETWORKS];\n\nexport const FULLNODE_URLS: Record<Network, string> = {\n mainnet: \"https://fullnode.mainnet.sui.io:443\",\n testnet: \"https://fullnode.testnet.sui.io:443\",\n devnet: \"https://fullnode.devnet.sui.io:443\",\n localnet: \"http://127.0.0.1:9000\",\n};\n"],"mappings":"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","names":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tasknet-protocol/shared",
3
- "version": "0.3.2",
3
+ "version": "0.6.0",
4
4
  "description": "Shared types and constants for TaskNet Protocol",
5
5
  "main": "./dist/index.js",
6
6
  "module": "./dist/index.mjs",