@reppo/cli 0.8.5 → 0.9.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 +4 -4
- package/dist/chain/allowance.d.ts +33 -0
- package/dist/chain/allowance.d.ts.map +1 -0
- package/dist/chain/allowance.js +58 -0
- package/dist/chain/allowance.js.map +1 -0
- package/dist/commands/approve.d.ts.map +1 -1
- package/dist/commands/approve.js +59 -22
- package/dist/commands/approve.js.map +1 -1
- package/dist/commands/grant-access.d.ts.map +1 -1
- package/dist/commands/grant-access.js +49 -14
- package/dist/commands/grant-access.js.map +1 -1
- package/dist/commands/lock.d.ts.map +1 -1
- package/dist/commands/lock.js +28 -6
- package/dist/commands/lock.js.map +1 -1
- package/dist/commands/query/datanet.d.ts.map +1 -1
- package/dist/commands/query/datanet.js +32 -12
- package/dist/commands/query/datanet.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -47,7 +47,7 @@ Errors **always** emit JSON on stderr regardless of mode, with a stable `code` f
|
|
|
47
47
|
- `reppo query balance [address]` — ETH + REPPO + veREPPO + USDC
|
|
48
48
|
- `reppo query voting-power [address]` — veREPPO voting power + lockup count
|
|
49
49
|
- `reppo query pod <podId>` — pod existence + owner address
|
|
50
|
-
- `reppo query datanet <datanetId> [--for <addr>]` — on-chain validity + REPPO access fee (`accessFeeREPPO`) and, for datanets that charge in their own token, the primary-token access fee (`accessFeePrimaryToken` + `primaryToken: { address, decimals }
|
|
50
|
+
- `reppo query datanet <datanetId> [--for <addr>]` — on-chain validity + REPPO access fee (`accessFeeREPPO`) and, for datanets that charge in their own token, the primary-token access fee (`accessFeePrimaryToken` + `primaryToken: { address, symbol, decimals }` — present only for a real non-zero primary token; best-effort — `{ unavailable }` with distinct wording for "datanet has no primary token" vs a read failure) (optionally check access for an address) + the current on-chain epoch, plus off-chain catalog metadata: name, description, native token (symbol/address/decimals), per-epoch emissions, vote volumes, publisher/voter onboarding guidance, and the platform `subnetUuid` (the `--subnet-uuid` for `mint-pod` publishing). Catalog enrichment is best-effort — a platform outage degrades `metadata` to `{ unavailable }` without affecting the on-chain answer.
|
|
51
51
|
- `reppo query epoch` — current on-chain epoch, read directly from `veReppo.currentEpoch()` (the protocol's epoch time-base). JSON: `{ network, epoch, epochStart, epochDurationSeconds, secondsRemaining }`. Epochs are fixed ~48h windows; the timing fields are derived from `epochEnd`/`epochLength` and degrade to `null` if those getters are unavailable. Pure read — no signer, no gas. Honor `--rpc-url` against a private RPC (the public Base RPC rate-limits).
|
|
52
52
|
- `reppo query emissions-due` — list unclaimed REPPO emissions across all pods owned by the configured wallet (uses platform API)
|
|
53
53
|
|
|
@@ -59,13 +59,13 @@ Errors **always** emit JSON on stderr regardless of mode, with a stable `code` f
|
|
|
59
59
|
|
|
60
60
|
### Write
|
|
61
61
|
|
|
62
|
-
- `reppo approve --spender <pod-manager|subnet-manager|ve-reppo|0x…> [--amount <units|max>] [--token reppo|usdc]` — set an ERC20 allowance so subsequent writes (lock, grant-access, mint-pod) don't fail with INSUFFICIENT_ALLOWANCE. Defaults to unlimited (`max`); reads the current allowance first and emits `{status:'no-op'}` if it already covers the request.
|
|
62
|
+
- `reppo approve --spender <pod-manager|subnet-manager|ve-reppo|0x…> [--amount <units|max>] [--token reppo|usdc|0x…]` — set an ERC20 allowance so subsequent writes (lock, grant-access, mint-pod) don't fail with INSUFFICIENT_ALLOWANCE. `--token` accepts the `reppo`/`usdc` aliases or an arbitrary ERC20 token address (0x…) — e.g. a datanet's primary token, so an operator can approve it for the SubnetManager; for an address the token's `decimals()` is read on-chain for amount scaling. Defaults to unlimited (`max`); reads the current allowance first and emits `{status:'no-op'}` if it already covers the request.
|
|
63
63
|
- `reppo vote --pod <id> --votes <n> --like|--dislike` — cast a vote on a pod, spending `<n>` voting power
|
|
64
64
|
- `reppo mint-pod --datanet <id> [--token reppo|primary] [--to <addr>]` — mint a pod into a datanet. Add `--pod-name <s>` to also publish metadata (Phase 2): after the on-chain mint, register the pod with the platform (`POST /agents/{id}/pods`). Requires `--subnet-uuid <cuid>` (the platform UUID, **not** the numeric `--datanet` id), `--agree-to-terms`, and `REPPO_AGENT_ID` + agent key. Optionally `--pod-description`, `--category`, `--platform`, `--url`, and a dataset: `--dataset <file>` (pinned to IPFS via `PINATA_JWT`) or `--dataset-uri <url>` (used as-is). A Phase-2 failure does not fail the mint — it exits 0 with `metadata.published:false`; re-run with the same `--idempotency-key` to retry.
|
|
65
|
-
- `reppo lock <amount> --duration <seconds>` — lock REPPO into veREPPO for voting power
|
|
65
|
+
- `reppo lock <amount> --duration <seconds>` — lock REPPO into veREPPO for voting power. Auto-approves veREPPO for REPPO when the allowance is short (no manual `approve` needed); emits `autoApproveTx` when it does.
|
|
66
66
|
- `reppo unlock <lockupId> [--to <addr>]` — withdraw an expired veREPPO lockup, returning the locked REPPO
|
|
67
67
|
- `reppo extend-lock <lockupId> --duration <seconds>` — extend an existing veREPPO lockup
|
|
68
|
-
- `reppo grant-access --datanet <id> [--to <addr>] [--token reppo|primary]` — pay the datanet access fee and grant `--to` access. Defaults to REPPO; `--token primary` pays in the datanet's primary token (e.g. $EXY). Output: `feeAmount` (on-chain fee quote), `feePaid` (receipt-derived actual), `feeToken: { symbol, address, decimals }`, and `token`. On the REPPO path the legacy `reppoFee` field is also emitted for back-compat (pre-0.8.5 consumers).
|
|
68
|
+
- `reppo grant-access --datanet <id> [--to <addr>] [--token reppo|primary]` — pay the datanet access fee and grant `--to` access. Defaults to REPPO; `--token primary` pays in the datanet's primary token (e.g. $EXY). Auto-approves the SubnetManager for the fee token when the allowance is short (no manual `approve` needed); emits `autoApproveTx` when it does. Output: `feeAmount` (on-chain fee quote), `feePaid` (receipt-derived actual), `feeToken: { symbol, address, decimals }`, and `token`. On the REPPO path the legacy `reppoFee` field is also emitted for back-compat (pre-0.8.5 consumers).
|
|
69
69
|
- `reppo claim-emissions --pod <id> --epoch <n>` — claim a pod's emissions for an epoch
|
|
70
70
|
- `reppo register-agent --name <s> --description <s>` — register a new agent identity on the Reppo platform; returns `{ id, apiKey }`. The apiKey is the Bearer token for subsequent agent-scoped calls (`/agents/[id]/subnets`, `/agents/[id]/pods`). On-chain mints use your `REPPO_PRIVATE_KEY` wallet; the platform no longer provisions one server-side.
|
|
71
71
|
- `reppo auth [--force]` — sign in to the platform API (api.reppo.xyz); caches a 24h Bearer token used by `query emissions-due` and other platform-API commands
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Auto-approval helper for write commands that pull an ERC20 (lock → veREPPO,
|
|
3
|
+
* grant-access → SubnetManager).
|
|
4
|
+
*
|
|
5
|
+
* Pre-alpha these commands threw INSUFFICIENT_ALLOWANCE and told the operator to
|
|
6
|
+
* "send approve() manually, e.g. via cast" — a real onboarding blocker for
|
|
7
|
+
* non-technical node operators. `ensureAllowance` now sends an unlimited approve()
|
|
8
|
+
* and waits for its receipt whenever the current allowance is short, so the spend
|
|
9
|
+
* just works. An allowance that already covers the amount is a no-op (no tx) — which
|
|
10
|
+
* keeps the command idempotent on retry: a re-run after the approve landed simply
|
|
11
|
+
* sees a sufficient allowance and proceeds.
|
|
12
|
+
*
|
|
13
|
+
* Unlimited (MaxUint256) matches `reppo approve`'s default and the one-time-approve
|
|
14
|
+
* pattern agents expect; a bounded approval would force a fresh approve tx on every
|
|
15
|
+
* fee change. The spender is always a Reppo protocol contract the caller already
|
|
16
|
+
* consented to interact with by running the command.
|
|
17
|
+
*/
|
|
18
|
+
import { type Address } from 'viem';
|
|
19
|
+
import type { Clients } from './clients.js';
|
|
20
|
+
export interface EnsureAllowanceResult {
|
|
21
|
+
/** True when an approve() tx was sent (allowance was short); false on a no-op. */
|
|
22
|
+
approved: boolean;
|
|
23
|
+
/** The approve tx hash, present only when `approved` is true. */
|
|
24
|
+
approveTx?: `0x${string}`;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Ensure the caller has approved `spender` for at least `needed` of `token`.
|
|
28
|
+
* Sends an unlimited approve() + waits for the receipt when short; no-op otherwise.
|
|
29
|
+
* Pass `knownAllowance` to reuse an allowance the caller already read (avoids a
|
|
30
|
+
* second RPC round-trip).
|
|
31
|
+
*/
|
|
32
|
+
export declare function ensureAllowance(clients: Clients, token: Address, spender: Address, needed: bigint, knownAllowance?: bigint): Promise<EnsureAllowanceResult>;
|
|
33
|
+
//# sourceMappingURL=allowance.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"allowance.d.ts","sourceRoot":"","sources":["../../src/chain/allowance.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AACH,OAAO,EAAc,KAAK,OAAO,EAAE,MAAM,MAAM,CAAC;AAChD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAM5C,MAAM,WAAW,qBAAqB;IACpC,kFAAkF;IAClF,QAAQ,EAAE,OAAO,CAAC;IAClB,iEAAiE;IACjE,SAAS,CAAC,EAAE,KAAK,MAAM,EAAE,CAAC;CAC3B;AAED;;;;;GAKG;AACH,wBAAsB,eAAe,CACnC,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,OAAO,EACd,OAAO,EAAE,OAAO,EAChB,MAAM,EAAE,MAAM,EACd,cAAc,CAAC,EAAE,MAAM,GACtB,OAAO,CAAC,qBAAqB,CAAC,CA6BhC"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Auto-approval helper for write commands that pull an ERC20 (lock → veREPPO,
|
|
3
|
+
* grant-access → SubnetManager).
|
|
4
|
+
*
|
|
5
|
+
* Pre-alpha these commands threw INSUFFICIENT_ALLOWANCE and told the operator to
|
|
6
|
+
* "send approve() manually, e.g. via cast" — a real onboarding blocker for
|
|
7
|
+
* non-technical node operators. `ensureAllowance` now sends an unlimited approve()
|
|
8
|
+
* and waits for its receipt whenever the current allowance is short, so the spend
|
|
9
|
+
* just works. An allowance that already covers the amount is a no-op (no tx) — which
|
|
10
|
+
* keeps the command idempotent on retry: a re-run after the approve landed simply
|
|
11
|
+
* sees a sufficient allowance and proceeds.
|
|
12
|
+
*
|
|
13
|
+
* Unlimited (MaxUint256) matches `reppo approve`'s default and the one-time-approve
|
|
14
|
+
* pattern agents expect; a bounded approval would force a fresh approve tx on every
|
|
15
|
+
* fee change. The spender is always a Reppo protocol contract the caller already
|
|
16
|
+
* consented to interact with by running the command.
|
|
17
|
+
*/
|
|
18
|
+
import { maxUint256 } from 'viem';
|
|
19
|
+
import { nextNonce } from './clients.js';
|
|
20
|
+
import { erc20 } from './contracts.js';
|
|
21
|
+
import { decodeRevert } from './errors.js';
|
|
22
|
+
import { cliError } from '../output/format.js';
|
|
23
|
+
/**
|
|
24
|
+
* Ensure the caller has approved `spender` for at least `needed` of `token`.
|
|
25
|
+
* Sends an unlimited approve() + waits for the receipt when short; no-op otherwise.
|
|
26
|
+
* Pass `knownAllowance` to reuse an allowance the caller already read (avoids a
|
|
27
|
+
* second RPC round-trip).
|
|
28
|
+
*/
|
|
29
|
+
export async function ensureAllowance(clients, token, spender, needed, knownAllowance) {
|
|
30
|
+
const t = erc20(token);
|
|
31
|
+
const allowance = knownAllowance ?? (await clients.publicClient.readContract({
|
|
32
|
+
address: t.address, abi: t.abi, functionName: 'allowance',
|
|
33
|
+
args: [clients.account.address, spender],
|
|
34
|
+
}));
|
|
35
|
+
if (allowance >= needed)
|
|
36
|
+
return { approved: false };
|
|
37
|
+
let approveTx;
|
|
38
|
+
try {
|
|
39
|
+
const nonce = await nextNonce(clients.publicClient, clients.account.address);
|
|
40
|
+
approveTx = await clients.walletClient.writeContract({
|
|
41
|
+
address: t.address, abi: t.abi, functionName: 'approve',
|
|
42
|
+
args: [spender, maxUint256],
|
|
43
|
+
chain: clients.walletClient.chain, account: clients.account, nonce,
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
catch (e) {
|
|
47
|
+
const decoded = decodeRevert(e);
|
|
48
|
+
throw cliError(decoded.code, 'auto-approve tx failed to submit', decoded.hint);
|
|
49
|
+
}
|
|
50
|
+
// Wait so the on-chain nonce advances before the caller's own write (the next
|
|
51
|
+
// nextNonce returns approveNonce+1) and so a revert fails loud, not silently.
|
|
52
|
+
const receipt = await clients.publicClient.waitForTransactionReceipt({ hash: approveTx, timeout: 120_000 });
|
|
53
|
+
if (receipt.status === 'reverted') {
|
|
54
|
+
throw cliError('APPROVE_REVERTED', `auto-approve tx reverted: ${approveTx}`, 'The approve() transaction reverted on-chain. Check the token contract and that the wallet holds gas.');
|
|
55
|
+
}
|
|
56
|
+
return { approved: true, approveTx };
|
|
57
|
+
}
|
|
58
|
+
//# sourceMappingURL=allowance.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"allowance.js","sourceRoot":"","sources":["../../src/chain/allowance.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AACH,OAAO,EAAE,UAAU,EAAgB,MAAM,MAAM,CAAC;AAEhD,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AACvC,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAS/C;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,OAAgB,EAChB,KAAc,EACd,OAAgB,EAChB,MAAc,EACd,cAAuB;IAEvB,MAAM,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC;IACvB,MAAM,SAAS,GAAG,cAAc,IAAI,CAAC,MAAM,OAAO,CAAC,YAAY,CAAC,YAAY,CAAC;QAC3E,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,EAAE,YAAY,EAAE,WAAW;QACzD,IAAI,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC;KACzC,CAAC,CAAC,CAAC;IACJ,IAAI,SAAS,IAAI,MAAM;QAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;IAEpD,IAAI,SAAwB,CAAC;IAC7B,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,MAAM,SAAS,CAAC,OAAO,CAAC,YAAY,EAAE,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAC7E,SAAS,GAAG,MAAM,OAAO,CAAC,YAAY,CAAC,aAAa,CAAC;YACnD,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,EAAE,YAAY,EAAE,SAAS;YACvD,IAAI,EAAE,CAAC,OAAO,EAAE,UAAU,CAAC;YAC3B,KAAK,EAAE,OAAO,CAAC,YAAY,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,KAAK;SACnE,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,MAAM,OAAO,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;QAChC,MAAM,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,kCAAkC,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;IACjF,CAAC;IAED,8EAA8E;IAC9E,8EAA8E;IAC9E,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,YAAY,CAAC,yBAAyB,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC;IAC5G,IAAI,OAAO,CAAC,MAAM,KAAK,UAAU,EAAE,CAAC;QAClC,MAAM,QAAQ,CAAC,kBAAkB,EAAE,6BAA6B,SAAS,EAAE,EACzE,sGAAsG,CAAC,CAAC;IAC5G,CAAC;IACD,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;AACvC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"approve.d.ts","sourceRoot":"","sources":["../../src/commands/approve.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"approve.d.ts","sourceRoot":"","sources":["../../src/commands/approve.ts"],"names":[],"mappings":"AA6BA,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AA6CzC,qBAAa,cAAe,SAAQ,WAAW;IAC7C,OAAgB,KAAK,aAAiB;IAEtC,OAAgB,KAAK,4BAgBlB;IAEH,OAAO,SAAuH;IAC9H,MAAM,SAAwH;IAC9H,KAAK,SAA0H;IAC/H,cAAc,qBAAsC;IACpD,MAAM,UAAsC;IAEtC,OAAO,IAAI,OAAO,CAAC,MAAM,CAAC;CAqNjC"}
|
package/dist/commands/approve.js
CHANGED
|
@@ -1,12 +1,17 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* `reppo approve --spender <alias|0x...> [--amount <units|max>] [--token reppo|usdc]`
|
|
2
|
+
* `reppo approve --spender <alias|0x...> [--amount <units|max>] [--token reppo|usdc|0x...]`
|
|
3
3
|
* — set an ERC20 allowance so subsequent write commands (lock, grant-access,
|
|
4
4
|
* mint-pod) don't fail with INSUFFICIENT_ALLOWANCE.
|
|
5
5
|
*
|
|
6
6
|
* Most agent flows want unlimited approval once, so `--amount` defaults to
|
|
7
|
-
* `max` (MaxUint256). Pass a numeric value (in human
|
|
7
|
+
* `max` (MaxUint256). Pass a numeric value (in human token units) for a
|
|
8
8
|
* bounded approval.
|
|
9
9
|
*
|
|
10
|
+
* `--token` accepts the `reppo`/`usdc` aliases (decimals known statically) or
|
|
11
|
+
* an arbitrary ERC20 token ADDRESS (0x…) — e.g. a datanet's primary token, so
|
|
12
|
+
* an operator can approve it for the SubnetManager. For an address the token's
|
|
13
|
+
* `decimals()` is read on-chain for amount scaling (never assumed 18).
|
|
14
|
+
*
|
|
10
15
|
* Spender aliases resolve per network:
|
|
11
16
|
* - pod-manager → PodManager (mintPodWithREPPO, mintPodWithPrimaryToken)
|
|
12
17
|
* - subnet-manager → SubnetManager (grantAccess REPPO fee — pulled here)
|
|
@@ -25,7 +30,7 @@ import { isAddress, parseUnits, formatUnits, maxUint256 } from 'viem';
|
|
|
25
30
|
import { BaseCommand } from './_base.js';
|
|
26
31
|
import { cliError, emit } from '../output/format.js';
|
|
27
32
|
import { createClients, nextNonce } from '../chain/clients.js';
|
|
28
|
-
import { podManager, subnetManager, veReppo, reppoToken, usdcToken, } from '../chain/contracts.js';
|
|
33
|
+
import { podManager, subnetManager, veReppo, reppoToken, usdcToken, erc20, } from '../chain/contracts.js';
|
|
29
34
|
import { decodeRevert } from '../chain/errors.js';
|
|
30
35
|
import { receiptGasEth } from '../chain/receipt.js';
|
|
31
36
|
import { begin, markSubmitted, markConfirmed, markFailed, peekIdempotent, } from '../state/idempotency.js';
|
|
@@ -47,7 +52,7 @@ function resolveSpender(spender, network) {
|
|
|
47
52
|
export class ApproveCommand extends BaseCommand {
|
|
48
53
|
static paths = [['approve']];
|
|
49
54
|
static usage = BaseCommand.Usage({
|
|
50
|
-
description: 'Approve a Reppo contract to spend your REPPO
|
|
55
|
+
description: 'Approve a Reppo contract to spend your REPPO, USDC, or an arbitrary ERC20 token.',
|
|
51
56
|
examples: [
|
|
52
57
|
['Unlimited REPPO approval for veREPPO (default amount=max)',
|
|
53
58
|
'reppo approve --spender ve-reppo'],
|
|
@@ -55,6 +60,8 @@ export class ApproveCommand extends BaseCommand {
|
|
|
55
60
|
'reppo approve --spender subnet-manager --amount 100'],
|
|
56
61
|
['USDC approval for PodManager (mintPodWithPrimaryToken)',
|
|
57
62
|
'reppo approve --spender pod-manager --token usdc --amount 50'],
|
|
63
|
+
["Approve a datanet's primary token (arbitrary ERC20 address) for SubnetManager",
|
|
64
|
+
'reppo approve --spender subnet-manager --token 0xEeEE…0000 --amount 25'],
|
|
58
65
|
['Raw spender address + idempotency key',
|
|
59
66
|
'reppo approve --spender 0xabc...def --amount max --idempotency-key approve-veReppo-once'],
|
|
60
67
|
['Dry-run',
|
|
@@ -63,23 +70,59 @@ export class ApproveCommand extends BaseCommand {
|
|
|
63
70
|
});
|
|
64
71
|
spender = Option.String('--spender', { required: true, description: 'pod-manager | subnet-manager | ve-reppo | 0x-address' });
|
|
65
72
|
amount = Option.String('--amount', 'max', { description: 'Token amount in human units, or "max" for MaxUint256 (default).' });
|
|
66
|
-
token = Option.String('--token', 'reppo', { description: 'reppo (default) or
|
|
73
|
+
token = Option.String('--token', 'reppo', { description: 'reppo (default), usdc, or an arbitrary ERC20 token address (0x…)' });
|
|
67
74
|
idempotencyKey = Option.String('--idempotency-key');
|
|
68
75
|
dryRun = Option.Boolean('--dry-run', false);
|
|
69
76
|
async execute() {
|
|
70
77
|
try {
|
|
71
|
-
// Validate token
|
|
72
|
-
|
|
73
|
-
|
|
78
|
+
// Validate --token early: a reppo/usdc alias, or an arbitrary ERC20
|
|
79
|
+
// address. INVALID_TOKEN for anything that's neither. (decimals for the
|
|
80
|
+
// address path is read on-chain below — it needs the RPC client.)
|
|
81
|
+
const tokenIsAlias = TOKEN_NAMES.has(this.token);
|
|
82
|
+
const tokenIsAddress = isAddress(this.token);
|
|
83
|
+
if (!tokenIsAlias && !tokenIsAddress) {
|
|
84
|
+
throw cliError('INVALID_TOKEN', `--token must be reppo, usdc, or a 0x-prefixed ERC20 address; got "${this.token}".`);
|
|
74
85
|
}
|
|
75
|
-
const tokenName = this.token;
|
|
76
|
-
const decimals = tokenName === 'reppo' ? 18 : 6;
|
|
77
86
|
const cfg = this.loadConfig();
|
|
78
87
|
const pk = cfg.privateKey;
|
|
79
88
|
if (!pk) {
|
|
80
89
|
throw cliError('MISSING_PRIVATE_KEY', 'No signing key available.', 'Set REPPO_PRIVATE_KEY in env.');
|
|
81
90
|
}
|
|
82
91
|
const spenderAddr = resolveSpender(this.spender, cfg.network);
|
|
92
|
+
const clients = createClients({
|
|
93
|
+
network: cfg.network,
|
|
94
|
+
privateKey: pk,
|
|
95
|
+
...(cfg.rpcUrl ? { rpcUrl: cfg.rpcUrl } : {}),
|
|
96
|
+
});
|
|
97
|
+
// Resolve the token contract, its decimals, and a display/fingerprint
|
|
98
|
+
// label. Aliases pin decimals statically; an address reads decimals()
|
|
99
|
+
// on-chain (catch → clean cliError) so amount scaling is never wrong.
|
|
100
|
+
// reppoToken/usdcToken and erc20 all return Contract<typeof ERC20_ABI>.
|
|
101
|
+
let token;
|
|
102
|
+
let decimals;
|
|
103
|
+
// tokenLabel: stable identifier for the args fingerprint + result `token` field
|
|
104
|
+
// (alias name, or the lowercased address). tokenDisplay: human-mode label.
|
|
105
|
+
let tokenLabel;
|
|
106
|
+
let tokenDisplay;
|
|
107
|
+
if (tokenIsAlias) {
|
|
108
|
+
const tokenName = this.token;
|
|
109
|
+
token = tokenName === 'reppo' ? reppoToken(cfg.network) : usdcToken(cfg.network);
|
|
110
|
+
decimals = tokenName === 'reppo' ? 18 : 6;
|
|
111
|
+
tokenLabel = tokenName;
|
|
112
|
+
tokenDisplay = tokenName.toUpperCase();
|
|
113
|
+
}
|
|
114
|
+
else {
|
|
115
|
+
const tokenAddr = this.token;
|
|
116
|
+
token = erc20(tokenAddr);
|
|
117
|
+
decimals = await clients.publicClient
|
|
118
|
+
.readContract({ ...token, functionName: 'decimals' })
|
|
119
|
+
.then((dec) => Number(dec))
|
|
120
|
+
.catch(() => {
|
|
121
|
+
throw cliError('INVALID_TOKEN', `Could not read decimals() for token ${tokenAddr} on ${cfg.network}.`, 'The address is not a standard ERC20 (decimals() reverted or returned non-numeric data).');
|
|
122
|
+
});
|
|
123
|
+
tokenLabel = tokenAddr.toLowerCase();
|
|
124
|
+
tokenDisplay = tokenAddr;
|
|
125
|
+
}
|
|
83
126
|
let amount;
|
|
84
127
|
if (this.amount === 'max') {
|
|
85
128
|
amount = maxUint256;
|
|
@@ -98,7 +141,7 @@ export class ApproveCommand extends BaseCommand {
|
|
|
98
141
|
// Args fingerprint baked into the cache so re-using one key with a
|
|
99
142
|
// different (token, spender, amount) → IDEMPOTENCY_ARGS_MISMATCH.
|
|
100
143
|
const args = {
|
|
101
|
-
token:
|
|
144
|
+
token: tokenLabel,
|
|
102
145
|
spender: spenderAddr.toLowerCase(),
|
|
103
146
|
amount: amount.toString(),
|
|
104
147
|
};
|
|
@@ -115,12 +158,6 @@ export class ApproveCommand extends BaseCommand {
|
|
|
115
158
|
`Re-run after the tx confirms, or check the explorer.`]);
|
|
116
159
|
return 0;
|
|
117
160
|
}
|
|
118
|
-
const clients = createClients({
|
|
119
|
-
network: cfg.network,
|
|
120
|
-
privateKey: pk,
|
|
121
|
-
...(cfg.rpcUrl ? { rpcUrl: cfg.rpcUrl } : {}),
|
|
122
|
-
});
|
|
123
|
-
const token = tokenName === 'reppo' ? reppoToken(cfg.network) : usdcToken(cfg.network);
|
|
124
161
|
// Pre-flight: skip the tx entirely if the existing allowance already
|
|
125
162
|
// covers the request. Saves gas and matches agent re-runnability.
|
|
126
163
|
const currentAllowance = await clients.publicClient.readContract({
|
|
@@ -132,7 +169,7 @@ export class ApproveCommand extends BaseCommand {
|
|
|
132
169
|
: { raw: a.toString(), formatted: formatUnits(a, decimals) };
|
|
133
170
|
if (currentAllowance >= amount) {
|
|
134
171
|
const result = {
|
|
135
|
-
token:
|
|
172
|
+
token: tokenLabel,
|
|
136
173
|
spender: spenderAddr,
|
|
137
174
|
owner: clients.account.address,
|
|
138
175
|
requested: fmtAmt(amount),
|
|
@@ -144,7 +181,7 @@ export class ApproveCommand extends BaseCommand {
|
|
|
144
181
|
// `markConfirmed` requires a real txHash. Re-reading the chain
|
|
145
182
|
// allowance on retry is cheap and authoritative.
|
|
146
183
|
emit(result, [
|
|
147
|
-
`= No-op: ${
|
|
184
|
+
`= No-op: ${tokenDisplay} allowance from ${clients.account.address} to ${spenderAddr}`,
|
|
148
185
|
` is already ${fmtAmt(currentAllowance).formatted} (>= requested ${fmtAmt(amount).formatted}).`,
|
|
149
186
|
]);
|
|
150
187
|
return 0;
|
|
@@ -159,7 +196,7 @@ export class ApproveCommand extends BaseCommand {
|
|
|
159
196
|
});
|
|
160
197
|
emit({
|
|
161
198
|
simulated: true,
|
|
162
|
-
token:
|
|
199
|
+
token: tokenLabel,
|
|
163
200
|
spender: spenderAddr,
|
|
164
201
|
owner: clients.account.address,
|
|
165
202
|
requested: fmtAmt(amount),
|
|
@@ -199,7 +236,7 @@ export class ApproveCommand extends BaseCommand {
|
|
|
199
236
|
const result = {
|
|
200
237
|
txHash: tx,
|
|
201
238
|
gasEth: receiptGasEth(receipt),
|
|
202
|
-
token:
|
|
239
|
+
token: tokenLabel,
|
|
203
240
|
spender: spenderAddr,
|
|
204
241
|
owner: clients.account.address,
|
|
205
242
|
requested: fmtAmt(amount),
|
|
@@ -212,7 +249,7 @@ export class ApproveCommand extends BaseCommand {
|
|
|
212
249
|
if (this.idempotencyKey)
|
|
213
250
|
await markConfirmed(this.idempotencyKey, COMMAND, args, result, tx);
|
|
214
251
|
emit(result, [
|
|
215
|
-
`✓ Approved ${spenderAddr} to spend ${fmtAmt(amount).formatted} ${
|
|
252
|
+
`✓ Approved ${spenderAddr} to spend ${fmtAmt(amount).formatted} ${tokenDisplay}`,
|
|
216
253
|
` tx: ${result.basescanUrl}`,
|
|
217
254
|
` block: ${receipt.blockNumber}`,
|
|
218
255
|
]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"approve.js","sourceRoot":"","sources":["../../src/commands/approve.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"approve.js","sourceRoot":"","sources":["../../src/commands/approve.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"grant-access.d.ts","sourceRoot":"","sources":["../../src/commands/grant-access.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"grant-access.d.ts","sourceRoot":"","sources":["../../src/commands/grant-access.ts"],"names":[],"mappings":"AA0BA,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAYzC,+EAA+E;AAC/E,wBAAgB,SAAS,CAAC,KAAK,EAAE,OAAO,GAAG,SAAS,GAAG;IACrD,MAAM,EAAE,0BAA0B,GAAG,iCAAiC,CAAC;IACvE,SAAS,EAAE,mBAAmB,GAAG,0BAA0B,CAAC;CAC7D,CAIA;AAED,qBAAa,kBAAmB,SAAQ,WAAW;IACjD,OAAgB,KAAK,aAAsB;IAE3C,OAAgB,KAAK,4BAclB;IAEH,OAAO,SAAyG;IAChH,KAAK,SAAoG;IACzG,EAAE,qBAA6H;IAC/H,cAAc,qBAAsC;IACpD,MAAM,UAAsC;IAEtC,OAAO,IAAI,OAAO,CAAC,MAAM,CAAC;CA4QjC"}
|
|
@@ -16,7 +16,8 @@
|
|
|
16
16
|
* 3. hasSubnetAccess(datanetId, to) → ACCESS_ALREADY_GRANTED
|
|
17
17
|
* 4. fee getter → fee amount (in the fee token)
|
|
18
18
|
* 5. feeToken balance >= fee → INSUFFICIENT_REPPO_BALANCE / INSUFFICIENT_TOKEN_BALANCE
|
|
19
|
-
* 6. feeToken allowance(caller→sm)
|
|
19
|
+
* 6. feeToken allowance(caller→sm): a short allowance is AUTO-APPROVED
|
|
20
|
+
* (unlimited approve() + wait) before the access call — no longer a hard error.
|
|
20
21
|
*
|
|
21
22
|
* Idempotency: begin → submit → markSubmitted → wait → markConfirmed.
|
|
22
23
|
* Args fingerprint: { datanetId, to, token }.
|
|
@@ -27,6 +28,7 @@ import { BaseCommand } from './_base.js';
|
|
|
27
28
|
import { cliError, emit } from '../output/format.js';
|
|
28
29
|
import { createClients, nextNonce } from '../chain/clients.js';
|
|
29
30
|
import { subnetManager, reppoToken, erc20 } from '../chain/contracts.js';
|
|
31
|
+
import { ensureAllowance } from '../chain/allowance.js';
|
|
30
32
|
import { decodeRevert } from '../chain/errors.js';
|
|
31
33
|
import { handleSubmittedCacheDecision } from './write-cache.js';
|
|
32
34
|
import { waitForWriteReceipt, receiptGasEth, tokenFeeFromReceipt } from '../chain/receipt.js';
|
|
@@ -124,6 +126,16 @@ export class GrantAccessCommand extends BaseCommand {
|
|
|
124
126
|
});
|
|
125
127
|
}
|
|
126
128
|
const sm = subnetManager(cfg.network);
|
|
129
|
+
// Validate the datanet BEFORE resolving the fee token. A nonexistent
|
|
130
|
+
// datanet must surface DATANET_NOT_FOUND — not DATANET_HAS_NO_PRIMARY_TOKEN
|
|
131
|
+
// (getSubnetPrimaryToken returns address(0) for a missing subnet too, which
|
|
132
|
+
// would otherwise mis-report the cause on the `--token primary` path).
|
|
133
|
+
const valid = await clients.publicClient.readContract({
|
|
134
|
+
address: sm.address, abi: sm.abi, functionName: 'validSubnet', args: [datanetId],
|
|
135
|
+
});
|
|
136
|
+
if (!valid) {
|
|
137
|
+
throw cliError('DATANET_NOT_FOUND', `Datanet ${datanetId} does not exist on ${cfg.network}.`, `Verify the id; check \`reppo query datanet ${datanetId}\` before granting access.`);
|
|
138
|
+
}
|
|
127
139
|
// Resolve the fee token: REPPO (pinned) or the datanet's primary token
|
|
128
140
|
// (discovered on-chain). decimals MUST be read for the primary token,
|
|
129
141
|
// never assumed 18 — a non-18-decimal token would otherwise corrupt every
|
|
@@ -152,8 +164,15 @@ export class GrantAccessCommand extends BaseCommand {
|
|
|
152
164
|
}
|
|
153
165
|
feeTokenAddress = primaryAddr;
|
|
154
166
|
const ft = erc20(feeTokenAddress);
|
|
155
|
-
|
|
156
|
-
|
|
167
|
+
// decimals has no safe default — a wrong value corrupts every amount —
|
|
168
|
+
// so a read failure is a hard error, not a guess. Wrap it like symbol()
|
|
169
|
+
// below so a raw viem decode error doesn't surface as INTERNAL_ERROR.
|
|
170
|
+
feeTokenDecimals = await clients.publicClient
|
|
171
|
+
.readContract({ ...ft, functionName: 'decimals' })
|
|
172
|
+
.then((dec) => Number(dec))
|
|
173
|
+
.catch(() => {
|
|
174
|
+
throw cliError('INVALID_PRIMARY_TOKEN', `Could not read decimals() for datanet ${datanetId} primary token ${feeTokenAddress}.`, 'The primary token is not a standard ERC20 (decimals() reverted or returned non-numeric data).');
|
|
175
|
+
});
|
|
157
176
|
// symbol is cosmetic — best-effort: some tokens return bytes32, which would
|
|
158
177
|
// fail to decode against the `string` ABI and abort the whole command.
|
|
159
178
|
feeTokenSymbol = await clients.publicClient
|
|
@@ -161,28 +180,23 @@ export class GrantAccessCommand extends BaseCommand {
|
|
|
161
180
|
.catch(() => `${feeTokenAddress.slice(0, 6)}…${feeTokenAddress.slice(-4)}`);
|
|
162
181
|
}
|
|
163
182
|
const feeToken = erc20(feeTokenAddress);
|
|
164
|
-
// Pre-flight in parallel where independent.
|
|
165
|
-
const [
|
|
166
|
-
clients.publicClient.readContract({ address: sm.address, abi: sm.abi, functionName: 'validSubnet', args: [datanetId] }),
|
|
183
|
+
// Pre-flight in parallel where independent (validSubnet already checked above).
|
|
184
|
+
const [alreadyHasAccess, fee, balance, allowance] = await Promise.all([
|
|
167
185
|
clients.publicClient.readContract({ address: sm.address, abi: sm.abi, functionName: 'hasSubnetAccess', args: [datanetId, target] }),
|
|
168
186
|
clients.publicClient.readContract({ address: sm.address, abi: sm.abi, functionName: fns.feeGetter, args: [datanetId] }),
|
|
169
187
|
clients.publicClient.readContract({ ...feeToken, functionName: 'balanceOf', args: [clients.account.address] }),
|
|
170
188
|
clients.publicClient.readContract({ ...feeToken, functionName: 'allowance', args: [clients.account.address, sm.address] }),
|
|
171
189
|
]);
|
|
172
|
-
if (!valid) {
|
|
173
|
-
throw cliError('DATANET_NOT_FOUND', `Datanet ${datanetId} does not exist on ${cfg.network}.`, `Verify the id; check \`reppo query datanet ${datanetId}\` before granting access.`);
|
|
174
|
-
}
|
|
175
190
|
if (alreadyHasAccess) {
|
|
176
191
|
throw cliError('ACCESS_ALREADY_GRANTED', `${target} already has access to datanet ${datanetId}.`, 'Nothing to do — skip the call.');
|
|
177
192
|
}
|
|
178
193
|
if (balance < fee) {
|
|
179
194
|
throw cliError(this.token === 'reppo' ? 'INSUFFICIENT_REPPO_BALANCE' : 'INSUFFICIENT_TOKEN_BALANCE', `Caller has ${formatUnits(balance, feeTokenDecimals)} ${feeTokenSymbol} but the fee is ${formatUnits(fee, feeTokenDecimals)} ${feeTokenSymbol}.`, `Acquire more ${feeTokenSymbol} before granting access.`);
|
|
180
195
|
}
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
}
|
|
196
|
+
// Auto-approval: a short allowance no longer hard-fails. The real-write path
|
|
197
|
+
// (below) sends an unlimited approve() to SubnetManager for the fee token before
|
|
198
|
+
// the access call; dry-run only reports it (the access sim would revert).
|
|
199
|
+
const needsApproval = allowance < fee;
|
|
186
200
|
const feeFields = {
|
|
187
201
|
feeToken: { symbol: feeTokenSymbol, address: feeTokenAddress, decimals: feeTokenDecimals },
|
|
188
202
|
feeAmount: { raw: fee.toString(), formatted: formatUnits(fee, feeTokenDecimals) },
|
|
@@ -192,6 +206,21 @@ export class GrantAccessCommand extends BaseCommand {
|
|
|
192
206
|
: {}),
|
|
193
207
|
};
|
|
194
208
|
if (this.dryRun) {
|
|
209
|
+
if (needsApproval) {
|
|
210
|
+
// Can't simulate the access call without allowance (it would revert). Report
|
|
211
|
+
// the approve that the real run would send first.
|
|
212
|
+
emit({
|
|
213
|
+
simulated: true,
|
|
214
|
+
wouldAutoApprove: { token: feeTokenAddress, spender: sm.address, currentAllowance: formatUnits(allowance, feeTokenDecimals) },
|
|
215
|
+
datanetId: datanetId.toString(),
|
|
216
|
+
to: target,
|
|
217
|
+
token: this.token,
|
|
218
|
+
...feeFields,
|
|
219
|
+
}, [
|
|
220
|
+
`(dry-run) would auto-approve SubnetManager for ${feeTokenSymbol}, then grant ${target} access to datanet ${datanetId}`,
|
|
221
|
+
]);
|
|
222
|
+
return 0;
|
|
223
|
+
}
|
|
195
224
|
const sim = await clients.publicClient.simulateContract({
|
|
196
225
|
address: sm.address, abi: sm.abi, functionName: fns.access,
|
|
197
226
|
args: [datanetId, target], account: clients.account,
|
|
@@ -209,6 +238,10 @@ export class GrantAccessCommand extends BaseCommand {
|
|
|
209
238
|
});
|
|
210
239
|
return 0;
|
|
211
240
|
}
|
|
241
|
+
// Auto-approve SubnetManager to pull the fee token before the access call (no-op
|
|
242
|
+
// when already approved). Outside the idempotency two-phase: approve() is
|
|
243
|
+
// self-idempotent via the allowance read, and waiting advances the nonce.
|
|
244
|
+
const approval = await ensureAllowance(clients, feeTokenAddress, sm.address, fee, allowance);
|
|
212
245
|
if (this.idempotencyKey)
|
|
213
246
|
await begin(this.idempotencyKey, COMMAND, args);
|
|
214
247
|
let tx;
|
|
@@ -241,6 +274,7 @@ export class GrantAccessCommand extends BaseCommand {
|
|
|
241
274
|
const result = {
|
|
242
275
|
txHash: tx,
|
|
243
276
|
gasEth: receiptGasEth(receipt),
|
|
277
|
+
...(approval.approved ? { autoApproveTx: approval.approveTx } : {}),
|
|
244
278
|
feePaid,
|
|
245
279
|
// Legacy top-level field for back-compat with pre-0.8.5 consumers that
|
|
246
280
|
// read `reppoFee`; only meaningful on the REPPO path.
|
|
@@ -259,6 +293,7 @@ export class GrantAccessCommand extends BaseCommand {
|
|
|
259
293
|
// Show the on-chain fee quote (always correct); feePaid in JSON is the
|
|
260
294
|
// receipt-derived actual, which can read 0 for non-standard transfer flows.
|
|
261
295
|
emit(result, [
|
|
296
|
+
...(approval.approved ? [`✓ Auto-approved SubnetManager for ${feeTokenSymbol} (tx: ${approval.approveTx})`] : []),
|
|
262
297
|
`✓ Granted ${target} access to datanet ${datanetId}`,
|
|
263
298
|
` fee: ${result.feeAmount.formatted} ${feeTokenSymbol}`,
|
|
264
299
|
` tx: ${result.basescanUrl}`,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"grant-access.js","sourceRoot":"","sources":["../../src/commands/grant-access.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"grant-access.js","sourceRoot":"","sources":["../../src/commands/grant-access.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lock.d.ts","sourceRoot":"","sources":["../../src/commands/lock.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"lock.d.ts","sourceRoot":"","sources":["../../src/commands/lock.ts"],"names":[],"mappings":"AA2BA,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAYzC,qBAAa,WAAY,SAAQ,WAAW;IAC1C,OAAgB,KAAK,aAAc;IAEnC,OAAgB,KAAK,4BAUlB;IAEH,MAAM,SAAqC;IAC3C,QAAQ,SAA4F;IACpG,cAAc,qBAAsC;IACpD,MAAM,UAAsC;IAEtC,OAAO,IAAI,OAAO,CAAC,MAAM,CAAC;CA4NjC"}
|
package/dist/commands/lock.js
CHANGED
|
@@ -8,7 +8,8 @@
|
|
|
8
8
|
* 1. INVALID_AMOUNT / INVALID_DURATION (parse)
|
|
9
9
|
* 2. DURATION_OUT_OF_BOUNDS (min/maxStakeDuration)
|
|
10
10
|
* 3. INSUFFICIENT_REPPO_BALANCE
|
|
11
|
-
* 4.
|
|
11
|
+
* 4. allowance (caller → veReppo): a short allowance is AUTO-APPROVED
|
|
12
|
+
* (unlimited approve() + wait) before stake — no longer a hard error.
|
|
12
13
|
* 5. previewPoints captures the predicted voting-power-gained for the
|
|
13
14
|
* result payload; also surfaces in dry-run.
|
|
14
15
|
*
|
|
@@ -28,6 +29,7 @@ import { BaseCommand } from './_base.js';
|
|
|
28
29
|
import { cliError, emit } from '../output/format.js';
|
|
29
30
|
import { createClients, nextNonce } from '../chain/clients.js';
|
|
30
31
|
import { veReppo, reppoToken } from '../chain/contracts.js';
|
|
32
|
+
import { ensureAllowance } from '../chain/allowance.js';
|
|
31
33
|
import { decodeRevert } from '../chain/errors.js';
|
|
32
34
|
import { handleSubmittedCacheDecision } from './write-cache.js';
|
|
33
35
|
import { waitForWriteReceipt, receiptGasEth } from '../chain/receipt.js';
|
|
@@ -141,12 +143,26 @@ export class LockCommand extends BaseCommand {
|
|
|
141
143
|
if (balance < amount) {
|
|
142
144
|
throw cliError('INSUFFICIENT_REPPO_BALANCE', `Caller has ${formatUnits(balance, 18)} REPPO but requested to lock ${formatUnits(amount, 18)} REPPO.`, 'Acquire more REPPO before locking.');
|
|
143
145
|
}
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
}
|
|
146
|
+
// Auto-approval: a short allowance no longer hard-fails. The real-write path
|
|
147
|
+
// (below) sends an unlimited approve() to veReppo before stake; dry-run only
|
|
148
|
+
// reports it (the stake sim would revert with no allowance).
|
|
149
|
+
const needsApproval = allowance < amount;
|
|
149
150
|
if (this.dryRun) {
|
|
151
|
+
if (needsApproval) {
|
|
152
|
+
// Can't simulate stake without allowance (it would revert). Report the
|
|
153
|
+
// approve that the real run would send first.
|
|
154
|
+
emit({
|
|
155
|
+
simulated: true,
|
|
156
|
+
wouldAutoApprove: { token: reppo.address, spender: vr.address, currentAllowance: formatUnits(allowance, 18) },
|
|
157
|
+
amount: { raw: amount.toString(), formatted: formatUnits(amount, 18) },
|
|
158
|
+
duration: duration.toString(),
|
|
159
|
+
votingPowerGained: { raw: previewPower.toString(), formatted: formatUnits(previewPower, 18) },
|
|
160
|
+
predictedExpiresAt: previewEnd.toString(),
|
|
161
|
+
}, [
|
|
162
|
+
`(dry-run) would auto-approve veReppo for REPPO, then lock ${formatUnits(amount, 18)} REPPO for ${duration}s`,
|
|
163
|
+
]);
|
|
164
|
+
return 0;
|
|
165
|
+
}
|
|
150
166
|
const sim = await clients.publicClient.simulateContract({
|
|
151
167
|
address: vr.address, abi: vr.abi, functionName: 'stake',
|
|
152
168
|
args: [amount, duration], account: clients.account,
|
|
@@ -165,6 +181,10 @@ export class LockCommand extends BaseCommand {
|
|
|
165
181
|
});
|
|
166
182
|
return 0;
|
|
167
183
|
}
|
|
184
|
+
// Auto-approve veReppo to pull REPPO before stake (no-op when already approved).
|
|
185
|
+
// Outside the idempotency two-phase on purpose: approve() is self-idempotent via
|
|
186
|
+
// the allowance read, and waiting for its receipt advances the nonce for stake.
|
|
187
|
+
const approval = await ensureAllowance(clients, reppo.address, vr.address, amount, allowance);
|
|
168
188
|
if (this.idempotencyKey)
|
|
169
189
|
await begin(this.idempotencyKey, COMMAND, args);
|
|
170
190
|
let tx;
|
|
@@ -200,6 +220,7 @@ export class LockCommand extends BaseCommand {
|
|
|
200
220
|
const result = {
|
|
201
221
|
txHash: tx,
|
|
202
222
|
gasEth: receiptGasEth(receipt),
|
|
223
|
+
...(approval.approved ? { autoApproveTx: approval.approveTx } : {}),
|
|
203
224
|
amount: { raw: amount.toString(), formatted: formatUnits(amount, 18) },
|
|
204
225
|
duration: duration.toString(),
|
|
205
226
|
votingPowerGained: { raw: previewPower.toString(), formatted: formatUnits(previewPower, 18) },
|
|
@@ -214,6 +235,7 @@ export class LockCommand extends BaseCommand {
|
|
|
214
235
|
if (this.idempotencyKey)
|
|
215
236
|
await markConfirmed(this.idempotencyKey, COMMAND, args, result, tx);
|
|
216
237
|
emit(result, [
|
|
238
|
+
...(approval.approved ? [`✓ Auto-approved veReppo for REPPO (tx: ${approval.approveTx})`] : []),
|
|
217
239
|
`✓ Locked ${formatUnits(amount, 18)} REPPO for ${duration}s`,
|
|
218
240
|
` voting power gained: ${formatUnits(previewPower, 18)}`,
|
|
219
241
|
` tx: ${result.basescanUrl}`,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lock.js","sourceRoot":"","sources":["../../src/commands/lock.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"lock.js","sourceRoot":"","sources":["../../src/commands/lock.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AACnC,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,MAAM,CAAC;AAC/C,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACzC,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAC/D,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,4BAA4B,EAAE,MAAM,kBAAkB,CAAC;AAChE,OAAO,EAAE,mBAAmB,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACzE,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,aAAa,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAE1G,MAAM,OAAO,GAAG,MAAM,CAAC;AAEvB,MAAM,OAAO,WAAY,SAAQ,WAAW;IAC1C,MAAM,CAAU,KAAK,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;IAEnC,MAAM,CAAU,KAAK,GAAG,WAAW,CAAC,KAAK,CAAC;QACxC,WAAW,EAAE,sEAAsE;QACnF,QAAQ,EAAE;YACR,CAAC,+CAA+C;gBAC9C,iCAAiC,CAAC;YACpC,CAAC,sBAAsB;gBACrB,gEAAgE,CAAC;YACnE,CAAC,SAAS;gBACR,2CAA2C,CAAC;SAC/C;KACF,CAAC,CAAC;IAEH,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;IAC3C,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,YAAY,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,0BAA0B,EAAE,CAAC,CAAC;IACpG,cAAc,GAAG,MAAM,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC;IACpD,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;IAE5C,KAAK,CAAC,OAAO;QACX,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;YAC9B,MAAM,EAAE,GAAG,GAAG,CAAC,UAAU,CAAC;YAC1B,IAAI,CAAC,EAAE,EAAE,CAAC;gBACR,MAAM,QAAQ,CACZ,qBAAqB,EACrB,2BAA2B,EAC3B,+BAA+B,CAChC,CAAC;YACJ,CAAC;YAED,2DAA2D;YAC3D,IAAI,MAAc,CAAC;YACnB,IAAI,CAAC;gBACH,MAAM,GAAG,UAAU,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;YACvC,CAAC;YAAC,MAAM,CAAC;gBACP,MAAM,QAAQ,CAAC,gBAAgB,EAAE,8CAA8C,IAAI,CAAC,MAAM,IAAI,CAAC,CAAC;YAClG,CAAC;YACD,IAAI,MAAM,IAAI,EAAE,EAAE,CAAC;gBACjB,MAAM,QAAQ,CAAC,gBAAgB,EAAE,sCAAsC,CAAC,CAAC;YAC3E,CAAC;YAED,IAAI,QAAgB,CAAC;YACrB,IAAI,CAAC;gBACH,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACnC,CAAC;YAAC,MAAM,CAAC;gBACP,MAAM,QAAQ,CAAC,kBAAkB,EAAE,2DAA2D,IAAI,CAAC,QAAQ,IAAI,CAAC,CAAC;YACnH,CAAC;YACD,IAAI,QAAQ,IAAI,EAAE,EAAE,CAAC;gBACnB,MAAM,QAAQ,CAAC,kBAAkB,EAAE,0CAA0C,CAAC,CAAC;YACjF,CAAC;YAED,MAAM,IAAI,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,QAAQ,EAAE,EAAE,QAAQ,EAAE,QAAQ,CAAC,QAAQ,EAAE,EAAE,CAAC;YAE1E,MAAM,QAAQ,GAAG,MAAM,cAAc,CACnC,IAAI,CAAC,cAAc,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,MAAM,CAChD,CAAC;YACF,IAAI,QAAQ,CAAC,IAAI,KAAK,kBAAkB,EAAE,CAAC;gBACzC,IAAI,CAAC,EAAE,GAAG,QAAQ,CAAC,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,EAChE,CAAC,2BAA2B,QAAQ,CAAC,MAAM,IAAI,KAAK,EAAE,CAAC,CAAC,CAAC;gBAC3D,OAAO,CAAC,CAAC;YACX,CAAC;YACD,IAAI,QAAQ,CAAC,IAAI,KAAK,kBAAkB,EAAE,CAAC;gBACzC,MAAM,OAAO,GAAG,aAAa,CAAC;oBAC5B,OAAO,EAAE,GAAG,CAAC,OAAO;oBACpB,UAAU,EAAE,EAAE;oBACd,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;iBAC9C,CAAC,CAAC;gBACH,OAAO,4BAA4B,CAAC,QAAQ,EAAE;oBAC5C,cAAc,EAAE,IAAI,CAAC,cAAc;oBACnC,OAAO,EAAE,OAAO;oBAChB,IAAI;oBACJ,OAAO,EAAE,GAAG,CAAC,OAAO;oBACpB,YAAY,EAAE,OAAO,CAAC,YAAY;oBAClC,WAAW,EAAE,KAAK,IAAI,EAAE;wBACtB,IAAI,CAAC;4BACH,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;4BACrC,MAAM,CAAC,YAAY,EAAE,UAAU,CAAC,GAAG,MAAM,OAAO,CAAC,YAAY,CAAC,YAAY,CAAC;gCACzE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,YAAY,EAAE,eAAe,EAAE,IAAI,EAAE,CAAC,MAAM,EAAE,QAAQ,CAAC;6BACpG,CAAC,CAAC;4BACH,OAAO;gCACL,MAAM,EAAE,EAAE,GAAG,EAAE,MAAM,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,WAAW,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE;gCACtE,QAAQ,EAAE,QAAQ,CAAC,QAAQ,EAAE;gCAC7B,iBAAiB,EAAE,EAAE,GAAG,EAAE,YAAY,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,WAAW,CAAC,YAAY,EAAE,EAAE,CAAC,EAAE;gCAC7F,SAAS,EAAE,UAAU,CAAC,QAAQ,EAAE;6BACjC,CAAC;wBACJ,CAAC;wBAAC,MAAM,CAAC;4BACP,OAAO;gCACL,MAAM,EAAE,EAAE,GAAG,EAAE,MAAM,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,WAAW,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE;gCACtE,QAAQ,EAAE,QAAQ,CAAC,QAAQ,EAAE;6BAC9B,CAAC;wBACJ,CAAC;oBACH,CAAC;iBACF,CAAC,CAAC;YACL,CAAC;YAED,MAAM,OAAO,GAAG,aAAa,CAAC;gBAC5B,OAAO,EAAE,GAAG,CAAC,OAAO;gBACpB,UAAU,EAAE,EAAE;gBACd,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aAC9C,CAAC,CAAC;YAEH,4DAA4D;YAC5D,MAAM,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YAChC,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YAEtC,kDAAkD;YAClD,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;gBACtE,OAAO,CAAC,YAAY,CAAC,YAAY,CAAC,EAAE,OAAO,EAAE,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,YAAY,EAAE,kBAAkB,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;gBACnH,OAAO,CAAC,YAAY,CAAC,YAAY,CAAC,EAAE,OAAO,EAAE,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,YAAY,EAAE,kBAAkB,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;gBACnH,OAAO,CAAC,YAAY,CAAC,YAAY,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,YAAY,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;gBACzI,OAAO,CAAC,YAAY,CAAC,YAAY,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,YAAY,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;gBACrJ,OAAO,CAAC,YAAY,CAAC,YAAY,CAAC,EAAE,OAAO,EAAE,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,YAAY,EAAE,eAAe,EAAE,IAAI,EAAE,CAAC,MAAM,EAAE,QAAQ,CAAC,EAAE,CAAC;aACjI,CAAC,CAAC;YACH,MAAM,CAAC,YAAY,EAAE,UAAU,CAAC,GAAG,OAAO,CAAC;YAE3C,IAAI,QAAQ,GAAG,MAAM,IAAI,QAAQ,GAAG,MAAM,EAAE,CAAC;gBAC3C,MAAM,QAAQ,CACZ,wBAAwB,EACxB,YAAY,QAAQ,mCAAmC,MAAM,KAAK,MAAM,IAAI,EAC5E,mDAAmD,MAAM,QAAQ,MAAM,GAAG,CAC3E,CAAC;YACJ,CAAC;YAED,IAAI,OAAO,GAAG,MAAM,EAAE,CAAC;gBACrB,MAAM,QAAQ,CACZ,4BAA4B,EAC5B,cAAc,WAAW,CAAC,OAAO,EAAE,EAAE,CAAC,gCAAgC,WAAW,CAAC,MAAM,EAAE,EAAE,CAAC,SAAS,EACtG,oCAAoC,CACrC,CAAC;YACJ,CAAC;YAED,6EAA6E;YAC7E,6EAA6E;YAC7E,6DAA6D;YAC7D,MAAM,aAAa,GAAG,SAAS,GAAG,MAAM,CAAC;YAEzC,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;gBAChB,IAAI,aAAa,EAAE,CAAC;oBAClB,uEAAuE;oBACvE,8CAA8C;oBAC9C,IAAI,CAAC;wBACH,SAAS,EAAE,IAAI;wBACf,gBAAgB,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,CAAC,OAAO,EAAE,gBAAgB,EAAE,WAAW,CAAC,SAAS,EAAE,EAAE,CAAC,EAAE;wBAC7G,MAAM,EAAE,EAAE,GAAG,EAAE,MAAM,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,WAAW,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE;wBACtE,QAAQ,EAAE,QAAQ,CAAC,QAAQ,EAAE;wBAC7B,iBAAiB,EAAE,EAAE,GAAG,EAAE,YAAY,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,WAAW,CAAC,YAAY,EAAE,EAAE,CAAC,EAAE;wBAC7F,kBAAkB,EAAE,UAAU,CAAC,QAAQ,EAAE;qBAC1C,EAAE;wBACD,6DAA6D,WAAW,CAAC,MAAM,EAAE,EAAE,CAAC,cAAc,QAAQ,GAAG;qBAC9G,CAAC,CAAC;oBACH,OAAO,CAAC,CAAC;gBACX,CAAC;gBACD,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,YAAY,CAAC,gBAAgB,CAAC;oBACtD,OAAO,EAAE,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,YAAY,EAAE,OAAO;oBACvD,IAAI,EAAE,CAAC,MAAM,EAAE,QAAQ,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO;iBACnD,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE;oBACb,MAAM,OAAO,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;oBAChC,MAAM,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,qBAAqB,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;gBACpE,CAAC,CAAC,CAAC;gBACH,IAAI,CAAC;oBACH,SAAS,EAAE,IAAI;oBACf,MAAM,EAAE,EAAE,GAAG,EAAE,MAAM,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,WAAW,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE;oBACtE,QAAQ,EAAE,QAAQ,CAAC,QAAQ,EAAE;oBAC7B,iBAAiB,EAAE,GAAG,CAAC,MAAM,CAAC,QAAQ,EAAE;oBACxC,iBAAiB,EAAE,EAAE,GAAG,EAAE,YAAY,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,WAAW,CAAC,YAAY,EAAE,EAAE,CAAC,EAAE;oBAC7F,kBAAkB,EAAE,UAAU,CAAC,QAAQ,EAAE;oBACzC,GAAG,EAAE,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,QAAQ,EAAE,IAAI,IAAI;iBACzC,CAAC,CAAC;gBACH,OAAO,CAAC,CAAC;YACX,CAAC;YAED,iFAAiF;YACjF,iFAAiF;YACjF,gFAAgF;YAChF,MAAM,QAAQ,GAAG,MAAM,eAAe,CAAC,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC;YAE9F,IAAI,IAAI,CAAC,cAAc;gBAAE,MAAM,KAAK,CAAC,IAAI,CAAC,cAAc,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;YAEzE,IAAI,EAAiB,CAAC;YACtB,IAAI,CAAC;gBACH,MAAM,KAAK,GAAG,MAAM,SAAS,CAAC,OAAO,CAAC,YAAY,EAAE,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;gBAC7E,EAAE,GAAG,MAAM,OAAO,CAAC,YAAY,CAAC,aAAa,CAAC;oBAC5C,OAAO,EAAE,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,YAAY,EAAE,OAAO;oBACvD,IAAI,EAAE,CAAC,MAAM,EAAE,QAAQ,CAAC;oBACxB,KAAK,EAAE,OAAO,CAAC,YAAY,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,KAAK;iBACnE,CAAC,CAAC;YACL,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,MAAM,OAAO,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;gBAChC,IAAI,IAAI,CAAC,cAAc;oBAAE,MAAM,UAAU,CAAC,IAAI,CAAC,cAAc,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;gBAC5F,MAAM,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,0BAA0B,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;YACzE,CAAC;YAED,wEAAwE;YACxE,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;gBACxB,MAAM,aAAa,CAAC,IAAI,CAAC,cAAc,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE;oBAC1D,MAAM,EAAE,EAAE,GAAG,EAAE,MAAM,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,WAAW,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE;oBACtE,QAAQ,EAAE,QAAQ,CAAC,QAAQ,EAAE;oBAC7B,iBAAiB,EAAE,EAAE,GAAG,EAAE,YAAY,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,WAAW,CAAC,YAAY,EAAE,EAAE,CAAC,EAAE;oBAC7F,SAAS,EAAE,UAAU,CAAC,QAAQ,EAAE;iBACjC,CAAC,CAAC;YACL,CAAC;YAED,MAAM,OAAO,GAAG,MAAM,mBAAmB,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC;YACpE,IAAI,OAAO,CAAC,MAAM,KAAK,UAAU,EAAE,CAAC;gBAClC,IAAI,IAAI,CAAC,cAAc;oBAAE,MAAM,UAAU,CAAC,IAAI,CAAC,cAAc,EAAE,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,EAAE,CAAC,CAAC;gBACjG,MAAM,QAAQ,CAAC,aAAa,EAAE,qBAAqB,EAAE,EAAE,CAAC,CAAC;YAC3D,CAAC;YAED,MAAM,MAAM,GAAG;gBACb,MAAM,EAAE,EAAE;gBACV,MAAM,EAAE,aAAa,CAAC,OAAO,CAAC;gBAC9B,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,QAAQ,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACnE,MAAM,EAAE,EAAE,GAAG,EAAE,MAAM,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,WAAW,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE;gBACtE,QAAQ,EAAE,QAAQ,CAAC,QAAQ,EAAE;gBAC7B,iBAAiB,EAAE,EAAE,GAAG,EAAE,YAAY,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,WAAW,CAAC,YAAY,EAAE,EAAE,CAAC,EAAE;gBAC7F,SAAS,EAAE,UAAU,CAAC,QAAQ,EAAE;gBAChC,KAAK,EAAE,OAAO,CAAC,WAAW,CAAC,QAAQ,EAAE;gBACrC,WAAW,EAAE,GAAG,CAAC,OAAO,KAAK,SAAS;oBACpC,CAAC,CAAC,2BAA2B,EAAE,EAAE;oBACjC,CAAC,CAAC,mCAAmC,EAAE,EAAE;gBAC3C,kDAAkD;gBAClD,yDAAyD;aAC1D,CAAC;YACF,IAAI,IAAI,CAAC,cAAc;gBAAE,MAAM,aAAa,CAAC,IAAI,CAAC,cAAc,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC;YAE7F,IAAI,CAAC,MAAM,EAAE;gBACX,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,0CAA0C,QAAQ,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC/F,YAAY,WAAW,CAAC,MAAM,EAAE,EAAE,CAAC,cAAc,QAAQ,GAAG;gBAC5D,0BAA0B,WAAW,CAAC,YAAY,EAAE,EAAE,CAAC,EAAE;gBACzD,SAAS,MAAM,CAAC,WAAW,EAAE;gBAC7B,YAAY,OAAO,CAAC,WAAW,EAAE;gBACjC,yEAAyE;aAC1E,CAAC,CAAC;YACH,OAAO,CAAC,CAAC;QACX,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;QACxB,CAAC;IACH,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"datanet.d.ts","sourceRoot":"","sources":["../../../src/commands/query/datanet.ts"],"names":[],"mappings":"AAqBA,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAgC1C,qBAAa,mBAAoB,SAAQ,WAAW;IAClD,OAAgB,KAAK,aAA0B;IAE/C,OAAgB,KAAK,4BAUlB;IAEH,OAAO,SAAqC;IAC5C,IAAI,qBAA+H;IAE7H,OAAO,IAAI,OAAO,CAAC,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"datanet.d.ts","sourceRoot":"","sources":["../../../src/commands/query/datanet.ts"],"names":[],"mappings":"AAqBA,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAgC1C,qBAAa,mBAAoB,SAAQ,WAAW;IAClD,OAAgB,KAAK,aAA0B;IAE/C,OAAgB,KAAK,4BAUlB;IAEH,OAAO,SAAqC;IAC5C,IAAI,qBAA+H;IAE7H,OAAO,IAAI,OAAO,CAAC,MAAM,CAAC;IA8JhC,OAAO,CAAC,oBAAoB;IAW5B;;;;;OAKG;YACW,aAAa;IAW3B,OAAO,CAAC,UAAU;IAsBlB,uDAAuD;IACvD,OAAO,CAAC,aAAa;CAyBtB"}
|
|
@@ -108,20 +108,34 @@ export class QueryDatanetCommand extends BaseCommand {
|
|
|
108
108
|
const primaryAddr = await client.readContract({
|
|
109
109
|
...sm, functionName: 'getSubnetPrimaryToken', args: [datanetId],
|
|
110
110
|
});
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
111
|
+
// getSubnetPrimaryToken returns address(0) for REPPO-only datanets.
|
|
112
|
+
// Short-circuit BEFORE touching the token (mirrors grant-access.ts's
|
|
113
|
+
// guard): no decimals()/symbol()/fee read, and primaryToken stays
|
|
114
|
+
// undefined. The wording is DISTINCT from a read failure so callers
|
|
115
|
+
// can tell "this datanet has no primary token" apart from a transport
|
|
116
|
+
// error.
|
|
117
|
+
if (BigInt(primaryAddr) === 0n) {
|
|
118
|
+
accessFeePrimaryToken = unavailable('datanet has no primary token');
|
|
119
|
+
}
|
|
120
|
+
else {
|
|
121
|
+
const ft = erc20(primaryAddr);
|
|
122
|
+
const [dec, sym, pFee] = await Promise.all([
|
|
123
|
+
client.readContract({ ...ft, functionName: 'decimals' }),
|
|
124
|
+
// symbol is cosmetic — best-effort: bytes32/non-standard tokens fail
|
|
125
|
+
// to decode against the `string` ABI; fall back to '' rather than abort.
|
|
126
|
+
client.readContract({ ...ft, functionName: 'symbol' }).catch(() => ''),
|
|
127
|
+
client.readContract({ ...sm, functionName: 'getAccessFeePrimaryToken', args: [datanetId] }),
|
|
128
|
+
]);
|
|
129
|
+
const decimals = Number(dec);
|
|
130
|
+
primaryToken = { address: primaryAddr, symbol: sym, decimals };
|
|
131
|
+
accessFeePrimaryToken = { raw: pFee.toString(), formatted: formatUnits(pFee, decimals) };
|
|
132
|
+
}
|
|
119
133
|
}
|
|
120
134
|
catch {
|
|
121
|
-
//
|
|
122
|
-
//
|
|
123
|
-
//
|
|
124
|
-
accessFeePrimaryToken = unavailable('
|
|
135
|
+
// The read failed (transport, or a non-standard token's decimals()/fee
|
|
136
|
+
// getter reverted). Best-effort — never break the REPPO answer above.
|
|
137
|
+
// Wording is distinct from the no-primary-token case above.
|
|
138
|
+
accessFeePrimaryToken = unavailable('primary-token access fee read failed');
|
|
125
139
|
}
|
|
126
140
|
}
|
|
127
141
|
// Optional caller-access check.
|
|
@@ -155,6 +169,12 @@ export class QueryDatanetCommand extends BaseCommand {
|
|
|
155
169
|
`Current epoch: ${currentEpoch ?? '(unavailable)'}`,
|
|
156
170
|
`Access fee: ${feeFmt}`,
|
|
157
171
|
];
|
|
172
|
+
// Primary-token access fee — shown only when the datanet actually has a
|
|
173
|
+
// primary token (primaryToken present implies accessFeePrimaryToken is numeric).
|
|
174
|
+
if (primaryToken && 'formatted' in accessFeePrimaryToken) {
|
|
175
|
+
lines.push(`Access fee (primary): ${accessFeePrimaryToken.formatted} ${primaryToken.symbol} ` +
|
|
176
|
+
`(${primaryToken.address}, ${primaryToken.decimals} dp)`);
|
|
177
|
+
}
|
|
158
178
|
if (callerAccess) {
|
|
159
179
|
lines.push(`Caller: ${callerAccess.address}`);
|
|
160
180
|
lines.push(`Caller access: ${callerAccess.hasAccess}`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"datanet.js","sourceRoot":"","sources":["../../../src/commands/query/datanet.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"datanet.js","sourceRoot":"","sources":["../../../src/commands/query/datanet.ts"],"names":[],"mappings":"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"}
|