naracli 1.0.91 → 1.0.93

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.
@@ -271417,7 +271417,7 @@ async function handleQuestGet(options) {
271417
271417
  ` Stake reward: ${quest.stakeRewardPerWinner} NARA/winner, ${quest.stakeWinnerCount}/${quest.stakeRewardCount} (${quest.stakeRemainingSlots} remaining)`
271418
271418
  );
271419
271419
  console.log(
271420
- ` Credit reward: ${quest.creditRewardPerWinner} NARA/winner, ${quest.creditWinnerCount}/${quest.creditRewardCount} (${quest.creditRemainingSlots} remaining)`
271420
+ ` Boost reward: ${quest.creditRewardPerWinner} NARA/winner, ${quest.creditWinnerCount}/${quest.creditRewardCount} (${quest.creditRemainingSlots} remaining)`
271421
271421
  );
271422
271422
  if (stakeRequired) {
271423
271423
  console.log(` Stake requirement: ${quest.effectiveStakeRequirement.toFixed(9).replace(/\.?0+$/, "")} NARA (decays ${quest.stakeHigh} \u2192 ${quest.stakeLow})`);
@@ -271426,7 +271426,7 @@ async function handleQuestGet(options) {
271426
271426
  } else {
271427
271427
  console.log(` Stake requirement: none`);
271428
271428
  }
271429
- console.log(` Stake-free credits: ${freeCredits}`);
271429
+ console.log(` Boost credits: ${freeCredits}`);
271430
271430
  console.log(` Deadline: ${new Date(quest.deadline * 1e3).toLocaleString()}`);
271431
271431
  if (quest.timeRemaining > 0) {
271432
271432
  console.log(` Time remaining: ${formatTimeRemaining(quest.timeRemaining)}`);
@@ -274322,13 +274322,13 @@ async function handleAgentGet(agentId, options) {
274322
274322
  const hoursAgo = (Date.now() - lastRewarded) / (1e3 * 60 * 60);
274323
274323
  if (hoursAgo >= 24) {
274324
274324
  const agoStr = hoursAgo >= 48 ? `${Math.floor(hoursAgo / 24)}d` : `${Math.floor(hoursAgo)}h`;
274325
- console.log(` Tip: Last tweet verified ${agoStr} ago (>24h). You can submit a new tweet to earn more stake-free credits.`);
274325
+ console.log(` Tip: Last tweet verified ${agoStr} ago (>24h). You can submit a new tweet to earn more Boost PoMI credits.`);
274326
274326
  } else {
274327
274327
  const hoursLeft = Math.ceil(24 - hoursAgo);
274328
274328
  console.log(` Tip: Next tweet verification available in ~${hoursLeft}h.`);
274329
274329
  }
274330
274330
  } else {
274331
- console.log(` Tip: Submit a tweet to earn stake-free PoMI mining credits!`);
274331
+ console.log(` Tip: Submit a tweet to earn Boost PoMI credits (stake-free)!`);
274332
274332
  }
274333
274333
  const submitTweetText = randomSubmitTweet();
274334
274334
  const submitTweetIntent = `https://x.com/intent/tweet?text=${submitTweetText.replace(/ /g, "%20").replace(/#/g, "%23").replace(/"/g, "%22")}`;
@@ -274336,11 +274336,12 @@ async function handleAgentGet(agentId, options) {
274336
274336
  console.log(` Link: ${submitTweetIntent}`);
274337
274337
  console.log(` Then run: npx naracli agent submit-tweet <tweet-url>`);
274338
274338
  console.log(` Credits are based on likes, bookmarks, retweets, and quotes.`);
274339
+ console.log(` Submit daily without breaking the streak to multiply your rewards!`);
274339
274340
  console.log("");
274340
274341
  } else {
274341
274342
  const tweetText = randomBindTweet(agentId);
274342
274343
  const tweetIntent = `https://x.com/intent/tweet?text=${tweetText.replace(/ /g, "%20").replace(/#/g, "%23").replace(/"/g, "%22")}`;
274343
- console.log(` Tip: Bind your X(Twitter) to earn 20 NARA + stake-free PoMI mining credits!`);
274344
+ console.log(` Tip: Bind your X(Twitter) to earn 20 NARA + Boost PoMI credits (stake-free)!`);
274344
274345
  console.log(` 1. Post a tweet with this content:`);
274345
274346
  console.log(` ${tweetText}`);
274346
274347
  console.log(` Link: ${tweetIntent}`);
@@ -274824,7 +274825,7 @@ Example:
274824
274825
  const tweetText = randomBindTweet(agentId);
274825
274826
  const tweetIntent = `https://x.com/intent/tweet?text=${tweetText.replace(/ /g, "%20").replace(/#/g, "%23").replace(/"/g, "%22")}`;
274826
274827
  console.log("");
274827
- console.log(` Bind your X(Twitter) to earn 20 NARA + stake-free PoMI mining credits!`);
274828
+ console.log(` Bind your X(Twitter) to earn 20 NARA + Boost PoMI credits (stake-free)!`);
274828
274829
  console.log(` 1. Post a tweet with this content:`);
274829
274830
  console.log(` ${tweetText}`);
274830
274831
  console.log(` Link: ${tweetIntent}`);
@@ -276939,7 +276940,7 @@ function registerCommands(program3) {
276939
276940
  }
276940
276941
 
276941
276942
  // bin/nara-cli.ts
276942
- var version2 = true ? "1.0.91" : "dev";
276943
+ var version2 = true ? "1.0.93" : "dev";
276943
276944
  var program2 = new Command();
276944
276945
  program2.name("naracli").description("CLI for the Nara chain. Native coin is NARA (not SOL). Mine NARA for free via PoMI quests, manage wallets, register agents, and more. Run 'naracli <command> --help' for details on any command.").version(version2);
276945
276946
  program2.option("-r, --rpc-url <url>", "RPC endpoint (default: https://mainnet-api.nara.build/)").option("-w, --wallet <path>", "Path to wallet keypair JSON file (default: ~/.config/nara/id.json)").option("-j, --json", "Output in JSON format");
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "naracli",
3
- "version": "1.0.91",
3
+ "version": "1.0.93",
4
4
  "description": "CLI for the Nara chain (Solana-compatible)",
5
5
  "homepage": "https://nara.build",
6
6
  "repository": {
@@ -264,13 +264,13 @@ async function handleAgentGet(agentId: string, options: GlobalOptions) {
264
264
  const hoursAgo = (Date.now() - lastRewarded) / (1000 * 60 * 60);
265
265
  if (hoursAgo >= 24) {
266
266
  const agoStr = hoursAgo >= 48 ? `${Math.floor(hoursAgo / 24)}d` : `${Math.floor(hoursAgo)}h`;
267
- console.log(` Tip: Last tweet verified ${agoStr} ago (>24h). You can submit a new tweet to earn more stake-free credits.`);
267
+ console.log(` Tip: Last tweet verified ${agoStr} ago (>24h). You can submit a new tweet to earn more Boost PoMI credits.`);
268
268
  } else {
269
269
  const hoursLeft = Math.ceil(24 - hoursAgo);
270
270
  console.log(` Tip: Next tweet verification available in ~${hoursLeft}h.`);
271
271
  }
272
272
  } else {
273
- console.log(` Tip: Submit a tweet to earn stake-free PoMI mining credits!`);
273
+ console.log(` Tip: Submit a tweet to earn Boost PoMI credits (stake-free)!`);
274
274
  }
275
275
  const submitTweetText = randomSubmitTweet();
276
276
  const submitTweetIntent = `https://x.com/intent/tweet?text=${submitTweetText.replace(/ /g, "%20").replace(/#/g, "%23").replace(/"/g, "%22")}`;
@@ -278,12 +278,13 @@ async function handleAgentGet(agentId: string, options: GlobalOptions) {
278
278
  console.log(` Link: ${submitTweetIntent}`);
279
279
  console.log(` Then run: npx naracli agent submit-tweet <tweet-url>`);
280
280
  console.log(` Credits are based on likes, bookmarks, retweets, and quotes.`);
281
+ console.log(` Submit daily without breaking the streak to multiply your rewards!`);
281
282
  console.log("");
282
283
  } else {
283
284
  // Not bound — show bind tip
284
285
  const tweetText = randomBindTweet(agentId);
285
286
  const tweetIntent = `https://x.com/intent/tweet?text=${tweetText.replace(/ /g, "%20").replace(/#/g, "%23").replace(/"/g, "%22")}`;
286
- console.log(` Tip: Bind your X(Twitter) to earn 20 NARA + stake-free PoMI mining credits!`);
287
+ console.log(` Tip: Bind your X(Twitter) to earn 20 NARA + Boost PoMI credits (stake-free)!`);
287
288
  console.log(` 1. Post a tweet with this content:`);
288
289
  console.log(` ${tweetText}`);
289
290
  console.log(` Link: ${tweetIntent}`);
@@ -945,7 +946,7 @@ Example:
945
946
  const tweetText = randomBindTweet(agentId);
946
947
  const tweetIntent = `https://x.com/intent/tweet?text=${tweetText.replace(/ /g, "%20").replace(/#/g, "%23").replace(/"/g, "%22")}`;
947
948
  console.log("");
948
- console.log(` Bind your X(Twitter) to earn 20 NARA + stake-free PoMI mining credits!`);
949
+ console.log(` Bind your X(Twitter) to earn 20 NARA + Boost PoMI credits (stake-free)!`);
949
950
  console.log(` 1. Post a tweet with this content:`);
950
951
  console.log(` ${tweetText}`);
951
952
  console.log(` Link: ${tweetIntent}`);
@@ -155,7 +155,7 @@ async function handleQuestGet(options: GlobalOptions & { verbose?: boolean }) {
155
155
  ` Stake reward: ${quest.stakeRewardPerWinner} NARA/winner, ${quest.stakeWinnerCount}/${quest.stakeRewardCount} (${quest.stakeRemainingSlots} remaining)`
156
156
  );
157
157
  console.log(
158
- ` Credit reward: ${quest.creditRewardPerWinner} NARA/winner, ${quest.creditWinnerCount}/${quest.creditRewardCount} (${quest.creditRemainingSlots} remaining)`
158
+ ` Boost reward: ${quest.creditRewardPerWinner} NARA/winner, ${quest.creditWinnerCount}/${quest.creditRewardCount} (${quest.creditRemainingSlots} remaining)`
159
159
  );
160
160
  if (stakeRequired) {
161
161
  console.log(` Stake requirement: ${quest.effectiveStakeRequirement.toFixed(9).replace(/\.?0+$/, "")} NARA (decays ${quest.stakeHigh} → ${quest.stakeLow})`);
@@ -164,7 +164,7 @@ async function handleQuestGet(options: GlobalOptions & { verbose?: boolean }) {
164
164
  } else {
165
165
  console.log(` Stake requirement: none`);
166
166
  }
167
- console.log(` Stake-free credits: ${freeCredits}`);
167
+ console.log(` Boost credits: ${freeCredits}`);
168
168
  console.log(` Deadline: ${new Date(quest.deadline * 1000).toLocaleString()}`);
169
169
  if (quest.timeRemaining > 0) {
170
170
  console.log(` Time remaining: ${formatTimeRemaining(quest.timeRemaining)}`);