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.
package/dist/nara-cli-bundle.cjs
CHANGED
|
@@ -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
|
-
`
|
|
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(`
|
|
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
|
|
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
|
|
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 +
|
|
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 +
|
|
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.
|
|
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
|
@@ -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
|
|
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
|
|
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 +
|
|
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 +
|
|
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
|
-
`
|
|
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(`
|
|
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)}`);
|