@reppo/cli 0.9.0 → 0.11.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/dist/bin.js +4 -0
- package/dist/bin.js.map +1 -1
- package/dist/chain/abis.d.ts +56 -0
- package/dist/chain/abis.d.ts.map +1 -1
- package/dist/chain/abis.js +11 -0
- package/dist/chain/abis.js.map +1 -1
- package/dist/commands/claim-voter-emissions.d.ts +11 -0
- package/dist/commands/claim-voter-emissions.d.ts.map +1 -0
- package/dist/commands/claim-voter-emissions.js +188 -0
- package/dist/commands/claim-voter-emissions.js.map +1 -0
- package/dist/commands/query/datanet.d.ts.map +1 -1
- package/dist/commands/query/datanet.js +30 -3
- package/dist/commands/query/datanet.js.map +1 -1
- package/dist/commands/query/voter-emissions-due.d.ts +11 -0
- package/dist/commands/query/voter-emissions-due.d.ts.map +1 -0
- package/dist/commands/query/voter-emissions-due.js +131 -0
- package/dist/commands/query/voter-emissions-due.js.map +1 -0
- package/package.json +1 -1
package/dist/bin.js
CHANGED
|
@@ -8,6 +8,7 @@ import { Cli, Builtins } from 'clipanion';
|
|
|
8
8
|
import { ApproveCommand } from './commands/approve.js';
|
|
9
9
|
import { AuthCommand } from './commands/auth.js';
|
|
10
10
|
import { ClaimEmissionsCommand } from './commands/claim-emissions.js';
|
|
11
|
+
import { ClaimVoterEmissionsCommand } from './commands/claim-voter-emissions.js';
|
|
11
12
|
import { ExtendLockCommand } from './commands/extend-lock.js';
|
|
12
13
|
import { GrantAccessCommand } from './commands/grant-access.js';
|
|
13
14
|
import { ListDatanetsCommand } from './commands/list/datanets.js';
|
|
@@ -19,6 +20,7 @@ import { QueryDatanetCommand } from './commands/query/datanet.js';
|
|
|
19
20
|
import { QueryEmissionsDueCommand } from './commands/query/emissions-due.js';
|
|
20
21
|
import { QueryEpochCommand } from './commands/query/epoch.js';
|
|
21
22
|
import { QueryPodCommand } from './commands/query/pod.js';
|
|
23
|
+
import { QueryVoterEmissionsDueCommand } from './commands/query/voter-emissions-due.js';
|
|
22
24
|
import { QueryVotingPowerCommand } from './commands/query/voting-power.js';
|
|
23
25
|
import { RegisterAgentCommand } from './commands/register-agent.js';
|
|
24
26
|
import { UnlockCommand } from './commands/unlock.js';
|
|
@@ -46,6 +48,7 @@ cli.register(Builtins.VersionCommand);
|
|
|
46
48
|
cli.register(ApproveCommand);
|
|
47
49
|
cli.register(AuthCommand);
|
|
48
50
|
cli.register(ClaimEmissionsCommand);
|
|
51
|
+
cli.register(ClaimVoterEmissionsCommand);
|
|
49
52
|
cli.register(ExtendLockCommand);
|
|
50
53
|
cli.register(GrantAccessCommand);
|
|
51
54
|
cli.register(ListDatanetsCommand);
|
|
@@ -57,6 +60,7 @@ cli.register(QueryDatanetCommand);
|
|
|
57
60
|
cli.register(QueryEmissionsDueCommand);
|
|
58
61
|
cli.register(QueryEpochCommand);
|
|
59
62
|
cli.register(QueryPodCommand);
|
|
63
|
+
cli.register(QueryVoterEmissionsDueCommand);
|
|
60
64
|
cli.register(QueryVotingPowerCommand);
|
|
61
65
|
cli.register(RegisterAgentCommand);
|
|
62
66
|
cli.register(UnlockCommand);
|
package/dist/bin.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bin.js","sourceRoot":"","sources":["../src/bin.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"bin.js","sourceRoot":"","sources":["../src/bin.ts"],"names":[],"mappings":"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"}
|
package/dist/chain/abis.d.ts
CHANGED
|
@@ -131,6 +131,40 @@ export declare const POD_MANAGER_ABI: readonly [{
|
|
|
131
131
|
readonly outputs: readonly [{
|
|
132
132
|
readonly type: "uint256";
|
|
133
133
|
}];
|
|
134
|
+
}, {
|
|
135
|
+
readonly name: "getVotersUpVotesForPodInEpoch";
|
|
136
|
+
readonly type: "function";
|
|
137
|
+
readonly stateMutability: "view";
|
|
138
|
+
readonly inputs: readonly [{
|
|
139
|
+
readonly type: "uint256";
|
|
140
|
+
readonly name: "epoch";
|
|
141
|
+
}, {
|
|
142
|
+
readonly type: "uint256";
|
|
143
|
+
readonly name: "podId";
|
|
144
|
+
}, {
|
|
145
|
+
readonly type: "address";
|
|
146
|
+
readonly name: "voter";
|
|
147
|
+
}];
|
|
148
|
+
readonly outputs: readonly [{
|
|
149
|
+
readonly type: "uint256";
|
|
150
|
+
}];
|
|
151
|
+
}, {
|
|
152
|
+
readonly name: "getVotersDownVotesForPodInEpoch";
|
|
153
|
+
readonly type: "function";
|
|
154
|
+
readonly stateMutability: "view";
|
|
155
|
+
readonly inputs: readonly [{
|
|
156
|
+
readonly type: "uint256";
|
|
157
|
+
readonly name: "epoch";
|
|
158
|
+
}, {
|
|
159
|
+
readonly type: "uint256";
|
|
160
|
+
readonly name: "podId";
|
|
161
|
+
}, {
|
|
162
|
+
readonly type: "address";
|
|
163
|
+
readonly name: "voter";
|
|
164
|
+
}];
|
|
165
|
+
readonly outputs: readonly [{
|
|
166
|
+
readonly type: "uint256";
|
|
167
|
+
}];
|
|
134
168
|
}, {
|
|
135
169
|
readonly name: "hasPodOwnerClaimedEmissions";
|
|
136
170
|
readonly type: "function";
|
|
@@ -250,6 +284,28 @@ export declare const SUBNET_MANAGER_ABI: readonly [{
|
|
|
250
284
|
readonly outputs: readonly [{
|
|
251
285
|
readonly type: "uint256";
|
|
252
286
|
}];
|
|
287
|
+
}, {
|
|
288
|
+
readonly name: "getPublishingFeeREPPO";
|
|
289
|
+
readonly type: "function";
|
|
290
|
+
readonly stateMutability: "view";
|
|
291
|
+
readonly inputs: readonly [{
|
|
292
|
+
readonly type: "uint256";
|
|
293
|
+
readonly name: "subnetId";
|
|
294
|
+
}];
|
|
295
|
+
readonly outputs: readonly [{
|
|
296
|
+
readonly type: "uint256";
|
|
297
|
+
}];
|
|
298
|
+
}, {
|
|
299
|
+
readonly name: "getPublishingFeePrimaryToken";
|
|
300
|
+
readonly type: "function";
|
|
301
|
+
readonly stateMutability: "view";
|
|
302
|
+
readonly inputs: readonly [{
|
|
303
|
+
readonly type: "uint256";
|
|
304
|
+
readonly name: "subnetId";
|
|
305
|
+
}];
|
|
306
|
+
readonly outputs: readonly [{
|
|
307
|
+
readonly type: "uint256";
|
|
308
|
+
}];
|
|
253
309
|
}, {
|
|
254
310
|
readonly name: "getSubnetPrimaryToken";
|
|
255
311
|
readonly type: "function";
|
package/dist/chain/abis.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"abis.d.ts","sourceRoot":"","sources":["../../src/chain/abis.ts"],"names":[],"mappings":"AAkBA,eAAO,MAAM,eAAe
|
|
1
|
+
{"version":3,"file":"abis.d.ts","sourceRoot":"","sources":["../../src/chain/abis.ts"],"names":[],"mappings":"AAkBA,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAmB1B,CAAC;AAEH,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAc7B,CAAC;AAEH,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAoBvB,CAAC;AAEH,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAUpB,CAAC;AAEH,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAG7B,CAAC;AAEH,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAErB,CAAC"}
|
package/dist/chain/abis.js
CHANGED
|
@@ -26,6 +26,11 @@ export const POD_MANAGER_ABI = parseAbi([
|
|
|
26
26
|
'function getPodValidityEpoch(uint256 podId) view returns (uint256)',
|
|
27
27
|
'function getPodUpVotesOfEpoch(uint256 epoch, uint256 podId) view returns (uint256)',
|
|
28
28
|
'function getPodDownVotesOfEpoch(uint256 epoch, uint256 podId) view returns (uint256)',
|
|
29
|
+
// Per-voter vote counts on a pod in an epoch (verified on impl 0x474d4f03…).
|
|
30
|
+
// V2 exposes no per-(voter,pod) due-AMOUNT view, so `query voter-emissions-due`
|
|
31
|
+
// derives CLAIMABILITY from these: voted > 0 && !hasUserClaimedEmissions.
|
|
32
|
+
'function getVotersUpVotesForPodInEpoch(uint256 epoch, uint256 podId, address voter) view returns (uint256)',
|
|
33
|
+
'function getVotersDownVotesForPodInEpoch(uint256 epoch, uint256 podId, address voter) view returns (uint256)',
|
|
29
34
|
'function hasPodOwnerClaimedEmissions(uint256 epoch, uint256 podId) view returns (bool)',
|
|
30
35
|
'function hasUserClaimedEmissions(uint256 epoch, uint256 podId, address user) view returns (bool)',
|
|
31
36
|
'event Transfer(address indexed from, address indexed to, uint256 indexed tokenId)',
|
|
@@ -37,6 +42,12 @@ export const SUBNET_MANAGER_ABI = parseAbi([
|
|
|
37
42
|
'function validSubnet(uint256 subnetId) view returns (bool)',
|
|
38
43
|
'function getAccessFeeREPPO(uint256 subnetId) view returns (uint256)',
|
|
39
44
|
'function getAccessFeePrimaryToken(uint256 subnetId) view returns (uint256)',
|
|
45
|
+
// Per-mint fee mintPodWithREPPO/mintPodWithPrimaryToken pulls from the signer —
|
|
46
|
+
// SEPARATE from the one-time access fee. Surfaced by `query datanet` so
|
|
47
|
+
// publishers can pre-flight balance before a mint reverts
|
|
48
|
+
// TransferAmountExceedsBalance (verified on the deployed impl 0xead1a577…).
|
|
49
|
+
'function getPublishingFeeREPPO(uint256 subnetId) view returns (uint256)',
|
|
50
|
+
'function getPublishingFeePrimaryToken(uint256 subnetId) view returns (uint256)',
|
|
40
51
|
'function getSubnetPrimaryToken(uint256 subnetId) view returns (address)',
|
|
41
52
|
]);
|
|
42
53
|
export const VE_REPPO_ABI = parseAbi([
|
package/dist/chain/abis.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"abis.js","sourceRoot":"","sources":["../../src/chain/abis.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AACH,OAAO,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAC;AAEhC,MAAM,CAAC,MAAM,eAAe,GAAG,QAAQ,CAAC;IACtC,iFAAiF;IACjF,wFAAwF;IACxF,0DAA0D;IAC1D,+DAA+D;IAC/D,2EAA2E;IAC3E,0DAA0D;IAC1D,sDAAsD;IACtD,oEAAoE;IACpE,oFAAoF;IACpF,sFAAsF;IACtF,wFAAwF;IACxF,kGAAkG;IAClG,mFAAmF;CACpF,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,kBAAkB,GAAG,QAAQ,CAAC;IACzC,iEAAiE;IACjE,wEAAwE;IACxE,kFAAkF;IAClF,4DAA4D;IAC5D,qEAAqE;IACrE,4EAA4E;IAC5E,yEAAyE;CAC1E,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,YAAY,GAAG,QAAQ,CAAC;IACnC,4EAA4E;IAC5E,sEAAsE;IACtE,wEAAwE;IACxE,yEAAyE;IACzE,mDAAmD;IACnD,gDAAgD;IAChD,+CAA+C;IAC/C,yDAAyD;IACzD,wDAAwD;IACxD,6EAA6E;IAC7E,sDAAsD;IACtD,yDAAyD;IACzD,gDAAgD;IAChD,qGAAqG;IACrG,oDAAoD;IACpD,oDAAoD;IACpD,6HAA6H;IAC7H,oDAAoD;IACpD,0DAA0D;CAC3D,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,SAAS,GAAG,QAAQ,CAAC;IAChC,uCAAuC;IACvC,yCAAyC;IACzC,0CAA0C;IAC1C,+CAA+C;IAC/C,oDAAoD;IACpD,2EAA2E;IAC3E,kEAAkE;IAClE,8DAA8D;IAC9D,yEAAyE;CAC1E,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,kBAAkB,GAAG,QAAQ,CAAC;IACzC,0MAA0M;IAC1M,sGAAsG;CACvG,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,UAAU,GAAG,QAAQ,CAAC;IACjC,wOAAwO;CACzO,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"file":"abis.js","sourceRoot":"","sources":["../../src/chain/abis.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AACH,OAAO,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAC;AAEhC,MAAM,CAAC,MAAM,eAAe,GAAG,QAAQ,CAAC;IACtC,iFAAiF;IACjF,wFAAwF;IACxF,0DAA0D;IAC1D,+DAA+D;IAC/D,2EAA2E;IAC3E,0DAA0D;IAC1D,sDAAsD;IACtD,oEAAoE;IACpE,oFAAoF;IACpF,sFAAsF;IACtF,6EAA6E;IAC7E,gFAAgF;IAChF,0EAA0E;IAC1E,4GAA4G;IAC5G,8GAA8G;IAC9G,wFAAwF;IACxF,kGAAkG;IAClG,mFAAmF;CACpF,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,kBAAkB,GAAG,QAAQ,CAAC;IACzC,iEAAiE;IACjE,wEAAwE;IACxE,kFAAkF;IAClF,4DAA4D;IAC5D,qEAAqE;IACrE,4EAA4E;IAC5E,gFAAgF;IAChF,wEAAwE;IACxE,0DAA0D;IAC1D,4EAA4E;IAC5E,yEAAyE;IACzE,gFAAgF;IAChF,yEAAyE;CAC1E,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,YAAY,GAAG,QAAQ,CAAC;IACnC,4EAA4E;IAC5E,sEAAsE;IACtE,wEAAwE;IACxE,yEAAyE;IACzE,mDAAmD;IACnD,gDAAgD;IAChD,+CAA+C;IAC/C,yDAAyD;IACzD,wDAAwD;IACxD,6EAA6E;IAC7E,sDAAsD;IACtD,yDAAyD;IACzD,gDAAgD;IAChD,qGAAqG;IACrG,oDAAoD;IACpD,oDAAoD;IACpD,6HAA6H;IAC7H,oDAAoD;IACpD,0DAA0D;CAC3D,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,SAAS,GAAG,QAAQ,CAAC;IAChC,uCAAuC;IACvC,yCAAyC;IACzC,0CAA0C;IAC1C,+CAA+C;IAC/C,oDAAoD;IACpD,2EAA2E;IAC3E,kEAAkE;IAClE,8DAA8D;IAC9D,yEAAyE;CAC1E,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,kBAAkB,GAAG,QAAQ,CAAC;IACzC,0MAA0M;IAC1M,sGAAsG;CACvG,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,UAAU,GAAG,QAAQ,CAAC;IACjC,wOAAwO;CACzO,CAAC,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { BaseCommand } from './_base.js';
|
|
2
|
+
export declare class ClaimVoterEmissionsCommand extends BaseCommand {
|
|
3
|
+
static paths: string[][];
|
|
4
|
+
static usage: import("clipanion").Usage;
|
|
5
|
+
pod: string;
|
|
6
|
+
epoch: string;
|
|
7
|
+
idempotencyKey: string | undefined;
|
|
8
|
+
dryRun: boolean;
|
|
9
|
+
execute(): Promise<number>;
|
|
10
|
+
}
|
|
11
|
+
//# sourceMappingURL=claim-voter-emissions.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"claim-voter-emissions.d.ts","sourceRoot":"","sources":["../../src/commands/claim-voter-emissions.ts"],"names":[],"mappings":"AAuBA,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAWzC,qBAAa,0BAA2B,SAAQ,WAAW;IACzD,OAAgB,KAAK,aAA+B;IAEpD,OAAgB,KAAK,4BAUlB;IAEH,GAAG,SAA8C;IACjD,KAAK,SAAgD;IACrD,cAAc,qBAAsC;IACpD,MAAM,UAAsC;IAEtC,OAAO,IAAI,OAAO,CAAC,MAAM,CAAC;CAyJjC"}
|
|
@@ -0,0 +1,188 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `reppo claim-voter-emissions --pod <id> --epoch <n>` — claim the SIGNER's
|
|
3
|
+
* voter emissions for a pod it up/down-voted in a given epoch.
|
|
4
|
+
*
|
|
5
|
+
* Counterpart to `claim-emissions` (which claims the POD OWNER's emissions via
|
|
6
|
+
* claimPodOwnerEmissions). Voters earn a separate share of a pod's epoch pool
|
|
7
|
+
* for curating it; that reward is claimed with claimVoterEmissions(voter, podId,
|
|
8
|
+
* epoch) and was previously unclaimable through the CLI.
|
|
9
|
+
*
|
|
10
|
+
* Pre-flight (V2):
|
|
11
|
+
* 1. INVALID_POD_ID, INVALID_EPOCH (parse)
|
|
12
|
+
* 2. ALREADY_CLAIMED (hasUserClaimedEmissions(epoch, podId, voter) === true)
|
|
13
|
+
*
|
|
14
|
+
* No ownership check — the caller claims AS A VOTER, not the owner. PodManager
|
|
15
|
+
* V2 exposes no per-(voter,pod) "due" view, so there is no NO_EMISSIONS_DUE
|
|
16
|
+
* pre-flight: the contract reverts cleanly when nothing is due and the
|
|
17
|
+
* structured decoder surfaces the code.
|
|
18
|
+
*
|
|
19
|
+
* Two-phase write protocol via peekIdempotent.
|
|
20
|
+
* Args fingerprint: { podId, epoch } — re-using one --idempotency-key across
|
|
21
|
+
* different (podId, epoch) is rejected with IDEMPOTENCY_ARGS_MISMATCH.
|
|
22
|
+
*/
|
|
23
|
+
import { Option } from 'clipanion';
|
|
24
|
+
import { BaseCommand } from './_base.js';
|
|
25
|
+
import { cliError, emit } from '../output/format.js';
|
|
26
|
+
import { createClients, nextNonce } from '../chain/clients.js';
|
|
27
|
+
import { podManager } from '../chain/contracts.js';
|
|
28
|
+
import { decodeRevert } from '../chain/errors.js';
|
|
29
|
+
import { handleSubmittedCacheDecision } from './write-cache.js';
|
|
30
|
+
import { waitForWriteReceipt, receiptGasEth } from '../chain/receipt.js';
|
|
31
|
+
import { begin, markSubmitted, markConfirmed, markFailed, peekIdempotent } from '../state/idempotency.js';
|
|
32
|
+
const COMMAND = 'claim-voter-emissions';
|
|
33
|
+
export class ClaimVoterEmissionsCommand extends BaseCommand {
|
|
34
|
+
static paths = [['claim-voter-emissions']];
|
|
35
|
+
static usage = BaseCommand.Usage({
|
|
36
|
+
description: 'Claim your voter emissions for a pod you voted on, for a given epoch.',
|
|
37
|
+
examples: [
|
|
38
|
+
['Claim voter emissions for pod 34, epoch 3940',
|
|
39
|
+
'reppo claim-voter-emissions --pod 34 --epoch 3940'],
|
|
40
|
+
['With idempotency key',
|
|
41
|
+
'reppo claim-voter-emissions --pod 34 --epoch 3940 --idempotency-key claim-voter-34-3940'],
|
|
42
|
+
['Dry-run',
|
|
43
|
+
'reppo claim-voter-emissions --pod 34 --epoch 3940 --dry-run'],
|
|
44
|
+
],
|
|
45
|
+
});
|
|
46
|
+
pod = Option.String('--pod', { required: true });
|
|
47
|
+
epoch = Option.String('--epoch', { required: true });
|
|
48
|
+
idempotencyKey = Option.String('--idempotency-key');
|
|
49
|
+
dryRun = Option.Boolean('--dry-run', false);
|
|
50
|
+
async execute() {
|
|
51
|
+
try {
|
|
52
|
+
const cfg = this.loadConfig();
|
|
53
|
+
const pk = cfg.privateKey;
|
|
54
|
+
if (!pk) {
|
|
55
|
+
throw cliError('MISSING_PRIVATE_KEY', 'No signing key available.', 'Set REPPO_PRIVATE_KEY in env.');
|
|
56
|
+
}
|
|
57
|
+
let podId;
|
|
58
|
+
try {
|
|
59
|
+
podId = BigInt(this.pod);
|
|
60
|
+
}
|
|
61
|
+
catch {
|
|
62
|
+
throw cliError('INVALID_POD_ID', `Pod id must be a non-negative integer; got "${this.pod}".`);
|
|
63
|
+
}
|
|
64
|
+
let epoch;
|
|
65
|
+
try {
|
|
66
|
+
epoch = BigInt(this.epoch);
|
|
67
|
+
}
|
|
68
|
+
catch {
|
|
69
|
+
throw cliError('INVALID_EPOCH', `Epoch must be a non-negative integer; got "${this.epoch}".`);
|
|
70
|
+
}
|
|
71
|
+
const args = { podId: podId.toString(), epoch: epoch.toString() };
|
|
72
|
+
const decision = await peekIdempotent(this.idempotencyKey, COMMAND, args, this.dryRun);
|
|
73
|
+
if (decision.kind === 'return-confirmed') {
|
|
74
|
+
emit({ ...decision.result, idempotent: true, status: 'confirmed' }, [`(cached, confirmed) tx: ${decision.txHash ?? 'n/a'}`]);
|
|
75
|
+
return 0;
|
|
76
|
+
}
|
|
77
|
+
if (decision.kind === 'return-submitted') {
|
|
78
|
+
const clients = createClients({
|
|
79
|
+
network: cfg.network,
|
|
80
|
+
privateKey: pk,
|
|
81
|
+
...(cfg.rpcUrl ? { rpcUrl: cfg.rpcUrl } : {}),
|
|
82
|
+
});
|
|
83
|
+
return handleSubmittedCacheDecision(decision, {
|
|
84
|
+
idempotencyKey: this.idempotencyKey,
|
|
85
|
+
command: COMMAND,
|
|
86
|
+
args,
|
|
87
|
+
network: cfg.network,
|
|
88
|
+
publicClient: clients.publicClient,
|
|
89
|
+
buildResult: () => ({
|
|
90
|
+
podId: podId.toString(),
|
|
91
|
+
epoch: epoch.toString(),
|
|
92
|
+
amountClaimed: { unavailable: 'PodManager V2 does not expose a per-voter emissions-due view' },
|
|
93
|
+
}),
|
|
94
|
+
});
|
|
95
|
+
}
|
|
96
|
+
const clients = createClients({
|
|
97
|
+
network: cfg.network,
|
|
98
|
+
privateKey: pk,
|
|
99
|
+
...(cfg.rpcUrl ? { rpcUrl: cfg.rpcUrl } : {}),
|
|
100
|
+
});
|
|
101
|
+
const pm = podManager(cfg.network);
|
|
102
|
+
const voter = clients.account.address;
|
|
103
|
+
// Pre-flight: already-claimed by THIS voter for (epoch, pod). PodManager V2
|
|
104
|
+
// exposes no per-(voter,pod) "due" view, so NO_EMISSIONS_DUE is not pre-
|
|
105
|
+
// flighted — the contract reverts cleanly and the decoder surfaces the code.
|
|
106
|
+
const alreadyClaimed = await clients.publicClient.readContract({
|
|
107
|
+
address: pm.address, abi: pm.abi, functionName: 'hasUserClaimedEmissions', args: [epoch, podId, voter],
|
|
108
|
+
});
|
|
109
|
+
if (alreadyClaimed) {
|
|
110
|
+
throw cliError('ALREADY_CLAIMED', `Voter emissions for pod ${podId}, epoch ${epoch} have already been claimed by ${voter}.`, 'Nothing to do — pick a different (pod, epoch).');
|
|
111
|
+
}
|
|
112
|
+
if (this.dryRun) {
|
|
113
|
+
const sim = await clients.publicClient.simulateContract({
|
|
114
|
+
address: pm.address, abi: pm.abi, functionName: 'claimVoterEmissions',
|
|
115
|
+
args: [voter, podId, epoch], account: clients.account,
|
|
116
|
+
}).catch((e) => {
|
|
117
|
+
const decoded = decodeRevert(e);
|
|
118
|
+
throw cliError(decoded.code, 'Simulation reverted', decoded.hint);
|
|
119
|
+
});
|
|
120
|
+
emit({
|
|
121
|
+
simulated: true,
|
|
122
|
+
voter,
|
|
123
|
+
podId: podId.toString(),
|
|
124
|
+
epoch: epoch.toString(),
|
|
125
|
+
amountDue: { unavailable: 'PodManager V2 does not expose a per-voter emissions-due view' },
|
|
126
|
+
gas: sim.request.gas?.toString() ?? null,
|
|
127
|
+
});
|
|
128
|
+
return 0;
|
|
129
|
+
}
|
|
130
|
+
if (this.idempotencyKey)
|
|
131
|
+
await begin(this.idempotencyKey, COMMAND, args);
|
|
132
|
+
let tx;
|
|
133
|
+
try {
|
|
134
|
+
const nonce = await nextNonce(clients.publicClient, clients.account.address);
|
|
135
|
+
tx = await clients.walletClient.writeContract({
|
|
136
|
+
address: pm.address, abi: pm.abi, functionName: 'claimVoterEmissions',
|
|
137
|
+
args: [voter, podId, epoch],
|
|
138
|
+
chain: clients.walletClient.chain, account: clients.account, nonce,
|
|
139
|
+
});
|
|
140
|
+
}
|
|
141
|
+
catch (e) {
|
|
142
|
+
const decoded = decodeRevert(e);
|
|
143
|
+
if (this.idempotencyKey)
|
|
144
|
+
await markFailed(this.idempotencyKey, COMMAND, args, decoded.code);
|
|
145
|
+
throw cliError(decoded.code, 'claim-voter-emissions tx failed to submit', decoded.hint);
|
|
146
|
+
}
|
|
147
|
+
// markSubmitted BEFORE waitForReceipt — closes the retry-resend window.
|
|
148
|
+
if (this.idempotencyKey) {
|
|
149
|
+
await markSubmitted(this.idempotencyKey, COMMAND, args, tx, {
|
|
150
|
+
podId: podId.toString(),
|
|
151
|
+
epoch: epoch.toString(),
|
|
152
|
+
amountClaimed: { unavailable: 'PodManager V2 does not expose a per-voter emissions-due view' },
|
|
153
|
+
});
|
|
154
|
+
}
|
|
155
|
+
const receipt = await waitForWriteReceipt(clients.publicClient, tx);
|
|
156
|
+
if (receipt.status === 'reverted') {
|
|
157
|
+
if (this.idempotencyKey)
|
|
158
|
+
await markFailed(this.idempotencyKey, COMMAND, args, 'TX_REVERTED', tx);
|
|
159
|
+
throw cliError('TX_REVERTED', `claim-voter-emissions tx reverted: ${tx}`);
|
|
160
|
+
}
|
|
161
|
+
const result = {
|
|
162
|
+
txHash: tx,
|
|
163
|
+
gasEth: receiptGasEth(receipt),
|
|
164
|
+
voter,
|
|
165
|
+
podId: podId.toString(),
|
|
166
|
+
epoch: epoch.toString(),
|
|
167
|
+
amountClaimed: { unavailable: 'PodManager V2 does not expose a per-voter emissions-due view' },
|
|
168
|
+
block: receipt.blockNumber.toString(),
|
|
169
|
+
basescanUrl: cfg.network === 'mainnet'
|
|
170
|
+
? `https://basescan.org/tx/${tx}`
|
|
171
|
+
: `https://sepolia.basescan.org/tx/${tx}`,
|
|
172
|
+
};
|
|
173
|
+
if (this.idempotencyKey)
|
|
174
|
+
await markConfirmed(this.idempotencyKey, COMMAND, args, result, tx);
|
|
175
|
+
emit(result, [
|
|
176
|
+
`✓ Claimed voter emissions for pod ${podId}, epoch ${epoch}`,
|
|
177
|
+
` amount: (unknown — V2 has no per-voter emissions-due view)`,
|
|
178
|
+
` tx: ${result.basescanUrl}`,
|
|
179
|
+
` block: ${receipt.blockNumber}`,
|
|
180
|
+
]);
|
|
181
|
+
return 0;
|
|
182
|
+
}
|
|
183
|
+
catch (err) {
|
|
184
|
+
this.handleError(err);
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
//# sourceMappingURL=claim-voter-emissions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"claim-voter-emissions.js","sourceRoot":"","sources":["../../src/commands/claim-voter-emissions.ts"],"names":[],"mappings":"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"}
|
|
@@ -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;IA4LhC,OAAO,CAAC,oBAAoB;IAW5B;;;;;OAKG;YACW,aAAa;IAW3B,OAAO,CAAC,UAAU;IAsBlB,uDAAuD;IACvD,OAAO,CAAC,aAAa;CAyBtB"}
|
|
@@ -98,10 +98,21 @@ export class QueryDatanetCommand extends BaseCommand {
|
|
|
98
98
|
? await client.readContract({ ...sm, functionName: 'getAccessFeeREPPO', args: [datanetId] })
|
|
99
99
|
.then((v) => ({ raw: v.toString(), formatted: formatUnits(v, 18) }))
|
|
100
100
|
: unavailable('datanet does not exist');
|
|
101
|
+
// Per-mint publishing fee — what mintPodWithREPPO pulls from the signer on
|
|
102
|
+
// EVERY mint, separate from (and additional to) the one-time access fee.
|
|
103
|
+
// Surfaced so publishers can pre-flight balance instead of discovering the
|
|
104
|
+
// fee via a TransferAmountExceedsBalance revert that still burns gas.
|
|
105
|
+
// Best-effort: a revert here must not break the authoritative fields above.
|
|
106
|
+
const publishingFeeREPPO = valid
|
|
107
|
+
? await client.readContract({ ...sm, functionName: 'getPublishingFeeREPPO', args: [datanetId] })
|
|
108
|
+
.then((v) => ({ raw: v.toString(), formatted: formatUnits(v, 18) }))
|
|
109
|
+
.catch(() => unavailable('publishing fee read failed'))
|
|
110
|
+
: unavailable('datanet does not exist');
|
|
101
111
|
// Primary-token access fee — for datanets that charge access in their own
|
|
102
112
|
// token rather than REPPO. Best-effort and decimals-aware: a revert here
|
|
103
113
|
// (or a datanet with no primary token) must NOT break the REPPO answer.
|
|
104
114
|
let accessFeePrimaryToken = unavailable('not read');
|
|
115
|
+
let publishingFeePrimaryToken = unavailable('not read');
|
|
105
116
|
let primaryToken;
|
|
106
117
|
if (valid) {
|
|
107
118
|
try {
|
|
@@ -116,19 +127,25 @@ export class QueryDatanetCommand extends BaseCommand {
|
|
|
116
127
|
// error.
|
|
117
128
|
if (BigInt(primaryAddr) === 0n) {
|
|
118
129
|
accessFeePrimaryToken = unavailable('datanet has no primary token');
|
|
130
|
+
publishingFeePrimaryToken = unavailable('datanet has no primary token');
|
|
119
131
|
}
|
|
120
132
|
else {
|
|
121
133
|
const ft = erc20(primaryAddr);
|
|
122
|
-
const [dec, sym, pFee] = await Promise.all([
|
|
134
|
+
const [dec, sym, pFee, pubFee] = await Promise.all([
|
|
123
135
|
client.readContract({ ...ft, functionName: 'decimals' }),
|
|
124
136
|
// symbol is cosmetic — best-effort: bytes32/non-standard tokens fail
|
|
125
137
|
// to decode against the `string` ABI; fall back to '' rather than abort.
|
|
126
138
|
client.readContract({ ...ft, functionName: 'symbol' }).catch(() => ''),
|
|
127
139
|
client.readContract({ ...sm, functionName: 'getAccessFeePrimaryToken', args: [datanetId] }),
|
|
140
|
+
// best-effort like the symbol read — null sentinel keeps the access fee intact.
|
|
141
|
+
client.readContract({ ...sm, functionName: 'getPublishingFeePrimaryToken', args: [datanetId] }).catch(() => null),
|
|
128
142
|
]);
|
|
129
143
|
const decimals = Number(dec);
|
|
130
144
|
primaryToken = { address: primaryAddr, symbol: sym, decimals };
|
|
131
145
|
accessFeePrimaryToken = { raw: pFee.toString(), formatted: formatUnits(pFee, decimals) };
|
|
146
|
+
publishingFeePrimaryToken = pubFee === null
|
|
147
|
+
? unavailable('publishing fee read failed')
|
|
148
|
+
: { raw: pubFee.toString(), formatted: formatUnits(pubFee, decimals) };
|
|
132
149
|
}
|
|
133
150
|
}
|
|
134
151
|
catch {
|
|
@@ -136,6 +153,7 @@ export class QueryDatanetCommand extends BaseCommand {
|
|
|
136
153
|
// getter reverted). Best-effort — never break the REPPO answer above.
|
|
137
154
|
// Wording is distinct from the no-primary-token case above.
|
|
138
155
|
accessFeePrimaryToken = unavailable('primary-token access fee read failed');
|
|
156
|
+
publishingFeePrimaryToken = unavailable('primary-token publishing fee read failed');
|
|
139
157
|
}
|
|
140
158
|
}
|
|
141
159
|
// Optional caller-access check.
|
|
@@ -155,6 +173,8 @@ export class QueryDatanetCommand extends BaseCommand {
|
|
|
155
173
|
currentEpoch,
|
|
156
174
|
accessFeeREPPO,
|
|
157
175
|
accessFeePrimaryToken,
|
|
176
|
+
publishingFeeREPPO,
|
|
177
|
+
publishingFeePrimaryToken,
|
|
158
178
|
...(primaryToken ? { primaryToken } : {}),
|
|
159
179
|
...(callerAccess ? { callerAccess } : {}),
|
|
160
180
|
metadata,
|
|
@@ -162,19 +182,26 @@ export class QueryDatanetCommand extends BaseCommand {
|
|
|
162
182
|
const feeFmt = 'unavailable' in accessFeeREPPO
|
|
163
183
|
? `(unavailable: ${accessFeeREPPO.unavailable})`
|
|
164
184
|
: `${accessFeeREPPO.formatted} REPPO`;
|
|
185
|
+
const pubFeeFmt = 'unavailable' in publishingFeeREPPO
|
|
186
|
+
? `(unavailable: ${publishingFeeREPPO.unavailable})`
|
|
187
|
+
: `${publishingFeeREPPO.formatted} REPPO per mint`;
|
|
165
188
|
const lines = [
|
|
166
189
|
`Datanet: ${datanetId}`,
|
|
167
190
|
`Network: ${cfg.network}`,
|
|
168
191
|
`Valid: ${valid}`,
|
|
169
192
|
`Current epoch: ${currentEpoch ?? '(unavailable)'}`,
|
|
170
193
|
`Access fee: ${feeFmt}`,
|
|
194
|
+
`Publish fee: ${pubFeeFmt}`,
|
|
171
195
|
];
|
|
172
|
-
// Primary-token
|
|
173
|
-
// primary token (primaryToken present implies
|
|
196
|
+
// Primary-token fees — shown only when the datanet actually has a
|
|
197
|
+
// primary token (primaryToken present implies the fees are numeric).
|
|
174
198
|
if (primaryToken && 'formatted' in accessFeePrimaryToken) {
|
|
175
199
|
lines.push(`Access fee (primary): ${accessFeePrimaryToken.formatted} ${primaryToken.symbol} ` +
|
|
176
200
|
`(${primaryToken.address}, ${primaryToken.decimals} dp)`);
|
|
177
201
|
}
|
|
202
|
+
if (primaryToken && 'formatted' in publishingFeePrimaryToken) {
|
|
203
|
+
lines.push(`Publish fee (primary): ${publishingFeePrimaryToken.formatted} ${primaryToken.symbol} per mint`);
|
|
204
|
+
}
|
|
178
205
|
if (callerAccess) {
|
|
179
206
|
lines.push(`Caller: ${callerAccess.address}`);
|
|
180
207
|
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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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { BaseCommand } from '../_base.js';
|
|
2
|
+
export declare class QueryVoterEmissionsDueCommand extends BaseCommand {
|
|
3
|
+
static paths: string[][];
|
|
4
|
+
static usage: import("clipanion").Usage;
|
|
5
|
+
pod: string;
|
|
6
|
+
epoch: string;
|
|
7
|
+
voter: string | undefined;
|
|
8
|
+
execute(): Promise<number>;
|
|
9
|
+
private resolveVoter;
|
|
10
|
+
}
|
|
11
|
+
//# sourceMappingURL=voter-emissions-due.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"voter-emissions-due.d.ts","sourceRoot":"","sources":["../../../src/commands/query/voter-emissions-due.ts"],"names":[],"mappings":"AAyBA,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAK1C,qBAAa,6BAA8B,SAAQ,WAAW;IAC5D,OAAgB,KAAK,aAAsC;IAE3D,OAAgB,KAAK,4BAUlB;IAEH,GAAG,SAAwF;IAC3F,KAAK,SAA6F;IAClG,KAAK,qBAA4H;IAE3H,OAAO,IAAI,OAAO,CAAC,MAAM,CAAC;IAoFhC,OAAO,CAAC,YAAY;CAWrB"}
|
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `reppo query voter-emissions-due --pod <id> --epoch <n> [--voter <addr>]` —
|
|
3
|
+
* is the voter's emissions share for a pod/epoch still claimable?
|
|
4
|
+
*
|
|
5
|
+
* PodManager V2 exposes no per-(voter, pod) due-AMOUNT view — the exact payout
|
|
6
|
+
* is computed inside claimVoterEmissions. What IS readable on-chain:
|
|
7
|
+
* - getVotersUpVotesForPodInEpoch / getVotersDownVotesForPodInEpoch
|
|
8
|
+
* (did this voter vote on this pod in this epoch, and with what weight)
|
|
9
|
+
* - hasUserClaimedEmissions (has the voter already claimed this pod/epoch)
|
|
10
|
+
*
|
|
11
|
+
* So this command answers CLAIMABILITY, not amount:
|
|
12
|
+
* claimable = (upVotes + downVotes) > 0 && !claimed
|
|
13
|
+
* That is the exact pre-flight `claim-voter-emissions` lacks — without it, the
|
|
14
|
+
* only way to discover "nothing due" is an on-chain revert that burns gas.
|
|
15
|
+
* `amount` is intentionally absent from the output rather than estimated: pool
|
|
16
|
+
* math lives in the contract and replicating it here would silently drift.
|
|
17
|
+
*
|
|
18
|
+
* Voter resolution mirrors query datanet's --for:
|
|
19
|
+
* 1. --voter <addr> (explicit, no key needed)
|
|
20
|
+
* 2. REPPO_VOTER_PRIVATE_KEY (the vote command's signer)
|
|
21
|
+
* 3. REPPO_PRIVATE_KEY (single-wallet setups)
|
|
22
|
+
*/
|
|
23
|
+
import { Option } from 'clipanion';
|
|
24
|
+
import { isAddress } from 'viem';
|
|
25
|
+
import { privateKeyToAddress } from 'viem/accounts';
|
|
26
|
+
import { BaseCommand } from '../_base.js';
|
|
27
|
+
import { cliError, emit } from '../../output/format.js';
|
|
28
|
+
import { createReadClient } from '../../chain/clients.js';
|
|
29
|
+
import { tryPodManager } from '../../chain/contracts.js';
|
|
30
|
+
export class QueryVoterEmissionsDueCommand extends BaseCommand {
|
|
31
|
+
static paths = [['query', 'voter-emissions-due']];
|
|
32
|
+
static usage = BaseCommand.Usage({
|
|
33
|
+
description: 'Check whether voter emissions for a pod/epoch are still claimable (pre-flight for claim-voter-emissions).',
|
|
34
|
+
examples: [
|
|
35
|
+
['Check pod 34, epoch 101, for the env-configured voter',
|
|
36
|
+
'reppo query voter-emissions-due --pod 34 --epoch 101'],
|
|
37
|
+
['Check for an explicit address (no key needed)',
|
|
38
|
+
'reppo query voter-emissions-due --pod 34 --epoch 101 --voter 0x726c…E31d'],
|
|
39
|
+
['JSON output for an agent',
|
|
40
|
+
'reppo query voter-emissions-due --pod 34 --epoch 101 --json'],
|
|
41
|
+
],
|
|
42
|
+
});
|
|
43
|
+
pod = Option.String('--pod', { required: true, description: 'Pod id the voter voted on' });
|
|
44
|
+
epoch = Option.String('--epoch', { required: true, description: 'Epoch the votes were cast in' });
|
|
45
|
+
voter = Option.String('--voter', { description: 'Voter address (defaults to REPPO_VOTER_PRIVATE_KEY, then REPPO_PRIVATE_KEY)' });
|
|
46
|
+
async execute() {
|
|
47
|
+
try {
|
|
48
|
+
const cfg = this.loadConfig();
|
|
49
|
+
let podId;
|
|
50
|
+
try {
|
|
51
|
+
podId = BigInt(this.pod);
|
|
52
|
+
}
|
|
53
|
+
catch {
|
|
54
|
+
throw cliError('INVALID_POD_ID', `Pod id must be a non-negative integer; got "${this.pod}".`);
|
|
55
|
+
}
|
|
56
|
+
let epoch;
|
|
57
|
+
try {
|
|
58
|
+
epoch = BigInt(this.epoch);
|
|
59
|
+
}
|
|
60
|
+
catch {
|
|
61
|
+
throw cliError('INVALID_EPOCH', `Epoch must be a non-negative integer; got "${this.epoch}".`);
|
|
62
|
+
}
|
|
63
|
+
const voter = this.resolveVoter();
|
|
64
|
+
if (!voter) {
|
|
65
|
+
throw cliError('VOTER_ADDRESS_REQUIRED', 'No voter address available.', 'Pass --voter <address>, or set REPPO_VOTER_PRIVATE_KEY / REPPO_PRIVATE_KEY.');
|
|
66
|
+
}
|
|
67
|
+
const client = createReadClient({ network: cfg.network, ...(cfg.rpcUrl ? { rpcUrl: cfg.rpcUrl } : {}) });
|
|
68
|
+
const pm = tryPodManager(cfg.network);
|
|
69
|
+
if (!pm) {
|
|
70
|
+
const reason = `PodManager address not configured for ${cfg.network}.`;
|
|
71
|
+
emit({
|
|
72
|
+
podId: podId.toString(), epoch: Number(epoch), voter, network: cfg.network,
|
|
73
|
+
claimable: { unavailable: reason },
|
|
74
|
+
}, [
|
|
75
|
+
`Pod: ${podId}`,
|
|
76
|
+
`Epoch: ${epoch}`,
|
|
77
|
+
`Voter: ${voter}`,
|
|
78
|
+
`(unavailable: ${reason})`,
|
|
79
|
+
]);
|
|
80
|
+
return 0;
|
|
81
|
+
}
|
|
82
|
+
const [upVotes, downVotes, claimed] = await Promise.all([
|
|
83
|
+
client.readContract({ ...pm, functionName: 'getVotersUpVotesForPodInEpoch', args: [epoch, podId, voter] }),
|
|
84
|
+
client.readContract({ ...pm, functionName: 'getVotersDownVotesForPodInEpoch', args: [epoch, podId, voter] }),
|
|
85
|
+
client.readContract({ ...pm, functionName: 'hasUserClaimedEmissions', args: [epoch, podId, voter] }),
|
|
86
|
+
]);
|
|
87
|
+
const voted = upVotes + downVotes > 0n;
|
|
88
|
+
const claimable = voted && !claimed;
|
|
89
|
+
const result = {
|
|
90
|
+
podId: podId.toString(),
|
|
91
|
+
epoch: Number(epoch),
|
|
92
|
+
voter,
|
|
93
|
+
network: cfg.network,
|
|
94
|
+
upVotes: upVotes.toString(),
|
|
95
|
+
downVotes: downVotes.toString(),
|
|
96
|
+
voted,
|
|
97
|
+
claimed,
|
|
98
|
+
claimable,
|
|
99
|
+
// The exact payout is computed inside claimVoterEmissions; V2 exposes no
|
|
100
|
+
// due-amount view. Stated explicitly so agents don't wait for a field
|
|
101
|
+
// that will never appear.
|
|
102
|
+
note: 'claimable = voted && !claimed; the payout amount is only known at claim time',
|
|
103
|
+
};
|
|
104
|
+
emit(result, [
|
|
105
|
+
`Pod: ${podId}`,
|
|
106
|
+
`Epoch: ${epoch}`,
|
|
107
|
+
`Voter: ${voter}`,
|
|
108
|
+
`Votes: ${upVotes}↑ / ${downVotes}↓`,
|
|
109
|
+
`Claimed: ${claimed}`,
|
|
110
|
+
`Claimable: ${claimable}${claimable ? ' — run `reppo claim-voter-emissions --pod ' + podId + ' --epoch ' + epoch + '`' : ''}`,
|
|
111
|
+
]);
|
|
112
|
+
return 0;
|
|
113
|
+
}
|
|
114
|
+
catch (err) {
|
|
115
|
+
this.handleError(err);
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
resolveVoter() {
|
|
119
|
+
if (this.voter) {
|
|
120
|
+
if (!isAddress(this.voter)) {
|
|
121
|
+
throw cliError('INVALID_ADDRESS', `Invalid --voter address: ${this.voter}`);
|
|
122
|
+
}
|
|
123
|
+
return this.voter;
|
|
124
|
+
}
|
|
125
|
+
const pk = (process.env.REPPO_VOTER_PRIVATE_KEY ?? process.env.REPPO_PRIVATE_KEY);
|
|
126
|
+
if (pk)
|
|
127
|
+
return privateKeyToAddress(pk);
|
|
128
|
+
return undefined;
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
//# sourceMappingURL=voter-emissions-due.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"voter-emissions-due.js","sourceRoot":"","sources":["../../../src/commands/query/voter-emissions-due.ts"],"names":[],"mappings":"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"}
|