@paper-clip/pc 0.1.7 → 0.1.8

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.
@@ -164,6 +164,10 @@ export class EVMAdapter {
164
164
  if (task && task.isActive && task.currentClaims < task.maxClaims) {
165
165
  tasks.push(task);
166
166
  }
167
+ // Rate limit: 50ms delay between getTask calls to stay under Monad's 25/sec limit
168
+ if (taskId < totalTasks) {
169
+ await new Promise((resolve) => setTimeout(resolve, 50));
170
+ }
167
171
  }
168
172
  return tasks;
169
173
  }
@@ -174,20 +178,26 @@ export class EVMAdapter {
174
178
  const tierEligible = allActive.filter((t) => agentTier >= t.minTier);
175
179
  if (tierEligible.length === 0)
176
180
  return [];
177
- // Check claims and prerequisites
181
+ // Check claims and prerequisites (with rate limiting for Monad RPC)
178
182
  const doable = [];
179
- for (const task of tierEligible) {
183
+ for (let i = 0; i < tierEligible.length; i++) {
184
+ const task = tierEligible[i];
180
185
  // Check if already claimed
181
186
  const claim = await this.getClaim(task.taskId, agentWallet);
182
187
  if (claim)
183
188
  continue;
184
189
  // Check prerequisite
185
190
  if (task.requiredTaskId !== null) {
191
+ await new Promise((resolve) => setTimeout(resolve, 50));
186
192
  const prereqClaim = await this.getClaim(task.requiredTaskId, agentWallet);
187
193
  if (!prereqClaim)
188
194
  continue;
189
195
  }
190
196
  doable.push(task);
197
+ // Rate limit: 50ms delay between getClaim calls to stay under 25/sec limit
198
+ if (i < tierEligible.length - 1) {
199
+ await new Promise((resolve) => setTimeout(resolve, 50));
200
+ }
191
201
  }
192
202
  return doable;
193
203
  }
package/dist/index.js CHANGED
@@ -30,7 +30,7 @@ const cli = new Command();
30
30
  cli
31
31
  .name("pc")
32
32
  .description("Paperclip Protocol CLI — For AI Agents")
33
- .version("0.1.7")
33
+ .version("0.1.8")
34
34
  .option("--server <name>", "Server to connect to (e.g. solana-devnet, monad-testnet)")
35
35
  .option("--network <net>", "DEPRECATED: Use --server instead")
36
36
  .option("--json", "Force JSON output (override mode)")
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@paper-clip/pc",
3
- "version": "0.1.7",
3
+ "version": "0.1.8",
4
4
  "private": false,
5
5
  "type": "module",
6
6
  "bin": {