project-cpu-mcp 0.8.1 → 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/dist/api/types.d.ts +17 -6
- package/dist/api/types.d.ts.map +1 -1
- package/dist/api/types.js.map +1 -1
- package/dist/config/constants.d.ts +1 -0
- package/dist/config/constants.d.ts.map +1 -1
- package/dist/config/constants.js +1 -0
- package/dist/config/constants.js.map +1 -1
- package/dist/contracts/cell.abi.d.ts +91 -1
- package/dist/contracts/cell.abi.d.ts.map +1 -1
- package/dist/contracts/cell.abi.js +86 -1
- package/dist/contracts/cell.abi.js.map +1 -1
- package/dist/index.js +0 -1
- package/dist/index.js.map +1 -1
- package/dist/randomness/drand.strategy.d.ts +0 -2
- package/dist/randomness/drand.strategy.d.ts.map +1 -1
- package/dist/randomness/drand.strategy.js +0 -18
- package/dist/randomness/drand.strategy.js.map +1 -1
- package/dist/randomness/factory.d.ts +0 -1
- package/dist/randomness/factory.d.ts.map +1 -1
- package/dist/randomness/factory.js +1 -5
- package/dist/randomness/factory.js.map +1 -1
- package/dist/randomness/types.d.ts +5 -9
- package/dist/randomness/types.d.ts.map +1 -1
- package/dist/randomness/types.js.map +1 -1
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +2 -0
- package/dist/server.js.map +1 -1
- package/dist/services/app-config.service.d.ts.map +1 -1
- package/dist/services/app-config.service.js +7 -2
- package/dist/services/app-config.service.js.map +1 -1
- package/dist/services/app-config.utils.d.ts +8 -1
- package/dist/services/app-config.utils.d.ts.map +1 -1
- package/dist/services/app-config.utils.js +20 -1
- package/dist/services/app-config.utils.js.map +1 -1
- package/dist/services/build.service.d.ts +7 -2
- package/dist/services/build.service.d.ts.map +1 -1
- package/dist/services/build.service.js +112 -4
- package/dist/services/build.service.js.map +1 -1
- package/dist/services/cell.client.d.ts +2 -1
- package/dist/services/cell.client.d.ts.map +1 -1
- package/dist/services/cell.client.js +14 -0
- package/dist/services/cell.client.js.map +1 -1
- package/dist/services/reveal-revert.utils.d.ts.map +1 -1
- package/dist/services/reveal-revert.utils.js +25 -18
- package/dist/services/reveal-revert.utils.js.map +1 -1
- package/dist/services/reveal.service.d.ts +8 -1
- package/dist/services/reveal.service.d.ts.map +1 -1
- package/dist/services/reveal.service.js +57 -56
- package/dist/services/reveal.service.js.map +1 -1
- package/dist/services/reveal.utils.d.ts +8 -0
- package/dist/services/reveal.utils.d.ts.map +1 -1
- package/dist/services/reveal.utils.js +12 -0
- package/dist/services/reveal.utils.js.map +1 -1
- package/dist/services/revert-decode.utils.d.ts +7 -0
- package/dist/services/revert-decode.utils.d.ts.map +1 -0
- package/dist/services/revert-decode.utils.js +13 -0
- package/dist/services/revert-decode.utils.js.map +1 -0
- package/dist/services/types.d.ts +71 -9
- package/dist/services/types.d.ts.map +1 -1
- package/dist/services/types.js +18 -1
- package/dist/services/types.js.map +1 -1
- package/dist/services/upgrade-revert.utils.d.ts +8 -0
- package/dist/services/upgrade-revert.utils.d.ts.map +1 -0
- package/dist/services/upgrade-revert.utils.js +46 -0
- package/dist/services/upgrade-revert.utils.js.map +1 -0
- package/dist/tools/build/constants.d.ts +1 -0
- package/dist/tools/build/constants.d.ts.map +1 -1
- package/dist/tools/build/constants.js +12 -0
- package/dist/tools/build/constants.js.map +1 -1
- package/dist/tools/build/types.d.ts +4 -0
- package/dist/tools/build/types.d.ts.map +1 -1
- package/dist/tools/build/types.js +11 -0
- package/dist/tools/build/types.js.map +1 -1
- package/dist/tools/build/upgrade.d.ts +4 -0
- package/dist/tools/build/upgrade.d.ts.map +1 -0
- package/dist/tools/build/upgrade.js +38 -0
- package/dist/tools/build/upgrade.js.map +1 -0
- package/dist/tools/config/get-game-config/constants.d.ts +9 -0
- package/dist/tools/config/get-game-config/constants.d.ts.map +1 -1
- package/dist/tools/config/get-game-config/constants.js +17 -3
- package/dist/tools/config/get-game-config/constants.js.map +1 -1
- package/dist/tools/config/get-game-config/get-game-config.d.ts.map +1 -1
- package/dist/tools/config/get-game-config/get-game-config.js +10 -5
- package/dist/tools/config/get-game-config/get-game-config.js.map +1 -1
- package/dist/tools/config/get-game-config/get-game-config.utils.d.ts +6 -1
- package/dist/tools/config/get-game-config/get-game-config.utils.d.ts.map +1 -1
- package/dist/tools/config/get-game-config/get-game-config.utils.js +96 -2
- package/dist/tools/config/get-game-config/get-game-config.utils.js.map +1 -1
- package/dist/tools/reveal/constants.d.ts.map +1 -1
- package/dist/tools/reveal/constants.js +5 -4
- package/dist/tools/reveal/constants.js.map +1 -1
- package/dist/tools/reveal/reveal.js +4 -4
- package/dist/tools/reveal/reveal.js.map +1 -1
- package/dist/utils/format.utils.d.ts +2 -0
- package/dist/utils/format.utils.d.ts.map +1 -1
- package/dist/utils/format.utils.js +4 -0
- package/dist/utils/format.utils.js.map +1 -1
- package/dist/wallet/constants.d.ts +0 -1
- package/dist/wallet/constants.d.ts.map +1 -1
- package/dist/wallet/constants.js +0 -1
- package/dist/wallet/constants.js.map +1 -1
- package/dist/wallet/gas.utils.d.ts.map +1 -1
- package/dist/wallet/gas.utils.js +2 -1
- package/dist/wallet/gas.utils.js.map +1 -1
- package/package.json +1 -1
- package/dist/contracts/randomness-source.abi.d.ts +0 -12
- package/dist/contracts/randomness-source.abi.d.ts.map +0 -1
- package/dist/contracts/randomness-source.abi.js +0 -10
- package/dist/contracts/randomness-source.abi.js.map +0 -1
- package/dist/randomness/push.strategy.d.ts +0 -12
- package/dist/randomness/push.strategy.d.ts.map +0 -1
- package/dist/randomness/push.strategy.js +0 -24
- package/dist/randomness/push.strategy.js.map +0 -1
|
@@ -1,17 +1,28 @@
|
|
|
1
|
+
import { decodeKnownRevert } from './revert-decode.utils.js';
|
|
1
2
|
import { CellRevertName } from './types.js';
|
|
2
3
|
import { CELL_ABI } from '../contracts/cell.abi.js';
|
|
3
4
|
import { withAdapterPhrase } from '../randomness/adapter-revert.utils.js';
|
|
4
|
-
import { decodeRevert } from '../wallet/revert.utils.js';
|
|
5
5
|
const CELL_REVERT_NAMES = Object.values(CellRevertName);
|
|
6
|
-
function toCellRevertName(name) {
|
|
7
|
-
return CELL_REVERT_NAMES.find((known) => known === name) ?? null;
|
|
8
|
-
}
|
|
9
6
|
function messageFor(name, args, tokenId) {
|
|
10
7
|
switch (name) {
|
|
11
|
-
case CellRevertName.
|
|
12
|
-
return (`The reveal
|
|
13
|
-
|
|
14
|
-
`
|
|
8
|
+
case CellRevertName.INSUFFICIENT_REVEAL_PAYMENT:
|
|
9
|
+
return (`The reveal price moved between the quote and the send: cell ${tokenId} required ` +
|
|
10
|
+
`${String(args[0] ?? 'more')} wei and this transaction carried ${String(args[1] ?? 'less')}. ` +
|
|
11
|
+
`Nothing was spent — reveal cell ${tokenId} again and it prices the reveal afresh.`);
|
|
12
|
+
case CellRevertName.REVEAL_PAYMENT_NOT_CONFIGURED:
|
|
13
|
+
return (`This deployment has put no price on a reveal yet — neither the ETH leg nor the $CPU leg — so ` +
|
|
14
|
+
`no cell can be revealed on it. Nothing was spent and cell ${tokenId} is untouched.`);
|
|
15
|
+
case CellRevertName.REVEAL_HOOK_NOT_CONFIGURED:
|
|
16
|
+
return (`This deployment has nowhere to send a reveal's ETH contribution, so it refuses every reveal. ` +
|
|
17
|
+
`Nothing was spent and cell ${tokenId} is untouched.`);
|
|
18
|
+
case CellRevertName.HOOK_DELIVERY_FAILED:
|
|
19
|
+
return (`The reveal's ETH contribution could not be delivered, so the whole request was undone: ` +
|
|
20
|
+
`nothing was spent and cell ${tokenId} is untouched. This is a fault of the deployment, not ` +
|
|
21
|
+
`of your wallet — retry later.`);
|
|
22
|
+
case CellRevertName.REFUND_FAILED:
|
|
23
|
+
return (`The reveal carried more ETH than it cost and the change could not be returned, so the whole ` +
|
|
24
|
+
`request was undone: nothing was spent and cell ${tokenId} is untouched. A wallet that ` +
|
|
25
|
+
`refuses a plain ETH transfer cannot reveal.`);
|
|
15
26
|
case CellRevertName.REVEAL_NOT_CONFIGURED:
|
|
16
27
|
return (`This deployment has no reveal draw configured, so no cell can be revealed on it yet. Nothing ` +
|
|
17
28
|
`was spent and cell ${tokenId} is untouched.`);
|
|
@@ -44,25 +55,21 @@ function messageFor(name, args, tokenId) {
|
|
|
44
55
|
}
|
|
45
56
|
}
|
|
46
57
|
export function isRevealAlreadyPending(error) {
|
|
47
|
-
const decoded =
|
|
48
|
-
return decoded !== null &&
|
|
58
|
+
const decoded = decodeKnownRevert(error, CELL_ABI, CELL_REVERT_NAMES);
|
|
59
|
+
return decoded !== null && decoded.name === CellRevertName.REVEAL_ALREADY_PENDING;
|
|
49
60
|
}
|
|
50
61
|
export function withRevealInFlightPhrase(error, tokenId) {
|
|
51
|
-
const decoded =
|
|
52
|
-
if (decoded === null ||
|
|
62
|
+
const decoded = decodeKnownRevert(error, CELL_ABI, CELL_REVERT_NAMES);
|
|
63
|
+
if (decoded === null || decoded.name !== CellRevertName.REVEAL_IN_FLIGHT) {
|
|
53
64
|
return error;
|
|
54
65
|
}
|
|
55
66
|
return new Error(messageFor(CellRevertName.REVEAL_IN_FLIGHT, decoded.args, tokenId), { cause: error });
|
|
56
67
|
}
|
|
57
68
|
export function withRevealRequestPhrase(error, tokenId) {
|
|
58
|
-
const decoded =
|
|
69
|
+
const decoded = decodeKnownRevert(error, CELL_ABI, CELL_REVERT_NAMES);
|
|
59
70
|
if (decoded === null) {
|
|
60
71
|
return withAdapterPhrase(error);
|
|
61
72
|
}
|
|
62
|
-
|
|
63
|
-
if (name === null) {
|
|
64
|
-
return withAdapterPhrase(error);
|
|
65
|
-
}
|
|
66
|
-
return new Error(messageFor(name, decoded.args, tokenId), { cause: error });
|
|
73
|
+
return new Error(messageFor(decoded.name, decoded.args, tokenId), { cause: error });
|
|
67
74
|
}
|
|
68
75
|
//# sourceMappingURL=reveal-revert.utils.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reveal-revert.utils.js","sourceRoot":"","sources":["../../src/services/reveal-revert.utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"reveal-revert.utils.js","sourceRoot":"","sources":["../../src/services/reveal-revert.utils.ts"],"names":[],"mappings":"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"}
|
|
@@ -27,7 +27,14 @@ export declare class RevealService {
|
|
|
27
27
|
private pendingWithoutSettleableRequest;
|
|
28
28
|
private pendingAtRetiredSource;
|
|
29
29
|
private pendingButUnlisted;
|
|
30
|
-
|
|
30
|
+
/**
|
|
31
|
+
* Every reveal is paid for, first one included, and only the Cell knows the price: the chain config
|
|
32
|
+
* carries the two gameplay legs but not the live randomness fee, so a value rebuilt from it underpays.
|
|
33
|
+
* Either leg may be zero — a zero burn needs no approval, and a zero contribution is not a free reveal.
|
|
34
|
+
*/
|
|
35
|
+
private fundReveal;
|
|
36
|
+
private prepareRevealRequest;
|
|
37
|
+
private sendRevealRequest;
|
|
31
38
|
private pollFulfillment;
|
|
32
39
|
}
|
|
33
40
|
//# sourceMappingURL=reveal.service.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reveal.service.d.ts","sourceRoot":"","sources":["../../src/services/reveal.service.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"reveal.service.d.ts","sourceRoot":"","sources":["../../src/services/reveal.service.ts"],"names":[],"mappings":"AAUA,OAAO,EAUH,KAAK,YAAY,EACjB,KAAK,oBAAoB,EAI5B,MAAM,YAAY,CAAC;AAqBpB,qBAAa,aAAa;IACtB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAiB;IACxC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAa;IACvC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAoB;IAC9C,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAc;IACzC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAkB;IAC5C,OAAO,CAAC,QAAQ,CAAC,UAAU,CAA6B;IACxD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAoB;IAC3C,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAmB;IAC7C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAU;gBAErB,OAAO,EAAE,oBAAoB;IAYnC,MAAM,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;YA4DtC,uBAAuB;YAiCvB,8BAA8B;YA4C9B,iBAAiB;YAsBjB,aAAa;YA0Db,eAAe;YAmDf,YAAY;IAmB1B,OAAO,CAAC,YAAY;YAQN,YAAY;YAeZ,SAAS;YAQT,QAAQ;IAyBtB,OAAO,CAAC,OAAO;YAiBD,UAAU;IAmBxB,OAAO,CAAC,UAAU;YAoBJ,+BAA+B;IAU7C,OAAO,CAAC,sBAAsB;IAqC9B,OAAO,CAAC,kBAAkB;IA6B1B;;;;OAIG;YACW,UAAU;YAgBV,oBAAoB;YAmBpB,iBAAiB;YAKjB,eAAe;CAYhC"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { isAddress
|
|
1
|
+
import { isAddress } from 'viem';
|
|
2
2
|
import { isRevealAlreadyPending } from './reveal-revert.utils.js';
|
|
3
|
-
import {
|
|
4
|
-
import { revealDepositsOf, revealRequestedOf } from './reveal.utils.js';
|
|
3
|
+
import { REVEAL_POLL_INTERVAL_MS, REVEAL_POLL_TIMEOUT_MS, REVEAL_PRIME_ATTEMPTS, REVEAL_PRIME_INTERVAL_MS, } from './reveal.constants.js';
|
|
4
|
+
import { bufferedRevealValue, revealDepositsOf, revealRequestedOf } from './reveal.utils.js';
|
|
5
5
|
import { RevealSettlementKind, } from './types.js';
|
|
6
6
|
import { RandomnessKind } from '../api/types.js';
|
|
7
7
|
import { sameAddress } from '../randomness/request.utils.js';
|
|
@@ -9,7 +9,7 @@ import { planBeaconWait } from '../randomness/round.utils.js';
|
|
|
9
9
|
import { AdapterRequestState, BeaconRoundOutcome, } from '../randomness/types.js';
|
|
10
10
|
import { sleep } from '../utils/async.utils.js';
|
|
11
11
|
import { errorMessage } from '../utils/error.utils.js';
|
|
12
|
-
import { cpuFromWei } from '../utils/format.utils.js';
|
|
12
|
+
import { cpuFromWei, ethFromWei } from '../utils/format.utils.js';
|
|
13
13
|
export class RevealService {
|
|
14
14
|
wallet;
|
|
15
15
|
appConfig;
|
|
@@ -81,21 +81,9 @@ export class RevealService {
|
|
|
81
81
|
}
|
|
82
82
|
}
|
|
83
83
|
async revealThroughPushSource(input) {
|
|
84
|
-
const { randomness,
|
|
85
|
-
const { approveTxHash,
|
|
86
|
-
const
|
|
87
|
-
const value = fee + (fee * REVEAL_FEE_BUFFER_BPS) / 10000n;
|
|
88
|
-
this.logger.info('requesting on-chain reveal', {
|
|
89
|
-
tokenId,
|
|
90
|
-
cell,
|
|
91
|
-
genesis,
|
|
92
|
-
source: randomness.source,
|
|
93
|
-
feeWei: fee.toString(),
|
|
94
|
-
valueWei: value.toString(),
|
|
95
|
-
network: config.network,
|
|
96
|
-
});
|
|
97
|
-
const txHash = await this.cellClient.requestReveal({ cell, tokenId: BigInt(tokenId), value });
|
|
98
|
-
const confirmed = await this.contracts.confirm(txHash, 'Reveal request');
|
|
84
|
+
const { randomness, cell, tokenId, genesis, previousRevealCount } = input;
|
|
85
|
+
const { approveTxHash, quote, value } = await this.prepareRevealRequest(input);
|
|
86
|
+
const confirmed = await this.sendRevealRequest(cell, tokenId, value);
|
|
99
87
|
const fulfilled = await this.pollFulfillment(tokenId, previousRevealCount);
|
|
100
88
|
this.logger.info('reveal request confirmed', {
|
|
101
89
|
tokenId,
|
|
@@ -114,34 +102,22 @@ export class RevealService {
|
|
|
114
102
|
deposits: null,
|
|
115
103
|
status: confirmed.status,
|
|
116
104
|
blockNumber: confirmed.blockNumber,
|
|
117
|
-
|
|
118
|
-
|
|
105
|
+
ethPaid: ethFromWei(quote.totalRequiredWei.toString()),
|
|
106
|
+
cpuBurn: cpuFromWei(quote.cpuBurnWei.toString()),
|
|
119
107
|
approveTxHash,
|
|
120
108
|
fulfilled,
|
|
121
109
|
note: null,
|
|
122
110
|
};
|
|
123
111
|
}
|
|
124
112
|
async revealThroughSelfServiceSource(input) {
|
|
125
|
-
const { randomness,
|
|
113
|
+
const { randomness, cell, tokenId } = input;
|
|
126
114
|
if (input.pending) {
|
|
127
115
|
return this.settleOpenRequest(input, null);
|
|
128
116
|
}
|
|
129
|
-
const { approveTxHash,
|
|
130
|
-
const fee = await randomness.quoteRequestFee();
|
|
131
|
-
const value = fee + (fee * REVEAL_FEE_BUFFER_BPS) / 10000n;
|
|
132
|
-
this.logger.info('requesting on-chain reveal', {
|
|
133
|
-
tokenId,
|
|
134
|
-
cell,
|
|
135
|
-
genesis,
|
|
136
|
-
source: randomness.source,
|
|
137
|
-
feeWei: fee.toString(),
|
|
138
|
-
valueWei: value.toString(),
|
|
139
|
-
network: config.network,
|
|
140
|
-
});
|
|
117
|
+
const { approveTxHash, quote, value } = await this.prepareRevealRequest(input);
|
|
141
118
|
let confirmed;
|
|
142
119
|
try {
|
|
143
|
-
|
|
144
|
-
confirmed = await this.contracts.confirm(txHash, 'Reveal request');
|
|
120
|
+
confirmed = await this.sendRevealRequest(cell, tokenId, value);
|
|
145
121
|
}
|
|
146
122
|
catch (error) {
|
|
147
123
|
if (!isRevealAlreadyPending(error)) {
|
|
@@ -166,8 +142,8 @@ export class RevealService {
|
|
|
166
142
|
source: requested?.source ?? randomness.source,
|
|
167
143
|
requestTxHash: confirmed.txHash,
|
|
168
144
|
approveTxHash,
|
|
169
|
-
|
|
170
|
-
|
|
145
|
+
paidWei: quote.totalRequiredWei,
|
|
146
|
+
cpuBurnWei: quote.cpuBurnWei,
|
|
171
147
|
status: confirmed.status,
|
|
172
148
|
blockNumber: confirmed.blockNumber,
|
|
173
149
|
});
|
|
@@ -187,8 +163,8 @@ export class RevealService {
|
|
|
187
163
|
source: open.source,
|
|
188
164
|
requestTxHash: null,
|
|
189
165
|
approveTxHash,
|
|
190
|
-
|
|
191
|
-
|
|
166
|
+
paidWei: 0n,
|
|
167
|
+
cpuBurnWei: 0n,
|
|
192
168
|
status: null,
|
|
193
169
|
blockNumber: null,
|
|
194
170
|
});
|
|
@@ -351,7 +327,7 @@ export class RevealService {
|
|
|
351
327
|
deposits: null,
|
|
352
328
|
fulfilled: false,
|
|
353
329
|
note: `${reason} The reveal request stays open: call reveal on cell ${input.tokenId} again to settle ` +
|
|
354
|
-
`it — that
|
|
330
|
+
`it — that pays for no second reveal — or read the draw with get_cell ${input.tokenId} once anyone ` +
|
|
355
331
|
`settles it.`,
|
|
356
332
|
};
|
|
357
333
|
}
|
|
@@ -365,8 +341,8 @@ export class RevealService {
|
|
|
365
341
|
round: round === null ? null : round.toString(),
|
|
366
342
|
status: ctx.status,
|
|
367
343
|
blockNumber: ctx.blockNumber,
|
|
368
|
-
|
|
369
|
-
|
|
344
|
+
ethPaid: ethFromWei(ctx.paidWei.toString()),
|
|
345
|
+
cpuBurn: cpuFromWei(ctx.cpuBurnWei.toString()),
|
|
370
346
|
approveTxHash: ctx.approveTxHash,
|
|
371
347
|
};
|
|
372
348
|
}
|
|
@@ -388,8 +364,8 @@ export class RevealService {
|
|
|
388
364
|
source: retired.source,
|
|
389
365
|
requestTxHash: null,
|
|
390
366
|
approveTxHash,
|
|
391
|
-
|
|
392
|
-
|
|
367
|
+
paidWei: 0n,
|
|
368
|
+
cpuBurnWei: 0n,
|
|
393
369
|
status: null,
|
|
394
370
|
blockNumber: null,
|
|
395
371
|
};
|
|
@@ -401,7 +377,7 @@ export class RevealService {
|
|
|
401
377
|
note: `Cell ${input.tokenId} carries reveal request ${retired.requestId}, opened at randomness source ` +
|
|
402
378
|
`${retired.source}, while the chain config now reveals through ${input.randomness.source}. A cell ` +
|
|
403
379
|
`takes its draw only from the source its own request names, so nothing you can send closes this ` +
|
|
404
|
-
`one: this call requested nothing and paid
|
|
380
|
+
`one: this call requested nothing and paid nothing, calling reveal again will not clear the ` +
|
|
405
381
|
`cell, and fulfill_reveal refuses a request of a retired source. The cell stays locked on this ` +
|
|
406
382
|
`open request until an admin of the contracts clears it on-chain — that admin cleanup is the only ` +
|
|
407
383
|
`way out.`,
|
|
@@ -423,28 +399,53 @@ export class RevealService {
|
|
|
423
399
|
deposits: null,
|
|
424
400
|
status: null,
|
|
425
401
|
blockNumber: null,
|
|
426
|
-
|
|
427
|
-
|
|
402
|
+
ethPaid: '0',
|
|
403
|
+
cpuBurn: '0',
|
|
428
404
|
approveTxHash,
|
|
429
405
|
fulfilled: false,
|
|
430
406
|
note: `Cell ${input.tokenId} already carries a reveal request, so this call requested nothing and ` +
|
|
431
|
-
`paid
|
|
407
|
+
`paid nothing, but the game API does not list that request yet, so this call cannot tell ` +
|
|
432
408
|
`which request to settle. Two ways out: call reveal on cell ${input.tokenId} again in a few ` +
|
|
433
409
|
`seconds and it settles the request once the API lists it; or leave it — anyone holding the ` +
|
|
434
410
|
`beacon signature can settle it — and read the draw with get_cell ${input.tokenId} once it lands.`,
|
|
435
411
|
};
|
|
436
412
|
}
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
|
|
413
|
+
/**
|
|
414
|
+
* Every reveal is paid for, first one included, and only the Cell knows the price: the chain config
|
|
415
|
+
* carries the two gameplay legs but not the live randomness fee, so a value rebuilt from it underpays.
|
|
416
|
+
* Either leg may be zero — a zero burn needs no approval, and a zero contribution is not a free reveal.
|
|
417
|
+
*/
|
|
418
|
+
async fundReveal(config, cell) {
|
|
419
|
+
const quote = await this.cellClient.quoteReveal(cell);
|
|
420
|
+
if (quote.cpuBurnWei === 0n) {
|
|
421
|
+
return { approveTxHash: null, quote };
|
|
440
422
|
}
|
|
441
423
|
const cpuToken = config.contracts.cpuToken;
|
|
442
424
|
if (!isAddress(cpuToken, { strict: false })) {
|
|
443
|
-
throw new Error(`$CPU token is not configured for network ${config.network}; cannot pay for
|
|
425
|
+
throw new Error(`$CPU token is not configured for network ${config.network}; cannot pay for a reveal.`);
|
|
444
426
|
}
|
|
445
|
-
const
|
|
446
|
-
|
|
447
|
-
|
|
427
|
+
const approveTxHash = await this.allowance.ensureAllowance(cpuToken, cell, quote.cpuBurnWei);
|
|
428
|
+
return { approveTxHash, quote };
|
|
429
|
+
}
|
|
430
|
+
async prepareRevealRequest(input) {
|
|
431
|
+
const { randomness, config, cell, tokenId, genesis } = input;
|
|
432
|
+
const { approveTxHash, quote } = await this.fundReveal(config, cell);
|
|
433
|
+
const value = bufferedRevealValue(quote.totalRequiredWei);
|
|
434
|
+
this.logger.info('requesting on-chain reveal', {
|
|
435
|
+
tokenId,
|
|
436
|
+
cell,
|
|
437
|
+
genesis,
|
|
438
|
+
source: randomness.source,
|
|
439
|
+
quotedWei: quote.totalRequiredWei.toString(),
|
|
440
|
+
valueWei: value.toString(),
|
|
441
|
+
cpuBurnWei: quote.cpuBurnWei.toString(),
|
|
442
|
+
network: config.network,
|
|
443
|
+
});
|
|
444
|
+
return { approveTxHash, quote, value };
|
|
445
|
+
}
|
|
446
|
+
async sendRevealRequest(cell, tokenId, value) {
|
|
447
|
+
const txHash = await this.cellClient.requestReveal({ cell, tokenId: BigInt(tokenId), value });
|
|
448
|
+
return this.contracts.confirm(txHash, 'Reveal request');
|
|
448
449
|
}
|
|
449
450
|
async pollFulfillment(tokenId, previousRevealCount) {
|
|
450
451
|
const deadline = Date.now() + REVEAL_POLL_TIMEOUT_MS;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reveal.service.js","sourceRoot":"","sources":["../../src/services/reveal.service.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"reveal.service.js","sourceRoot":"","sources":["../../src/services/reveal.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,6 +5,14 @@ export interface RevealRequestedView {
|
|
|
5
5
|
requestId: bigint;
|
|
6
6
|
source: Address;
|
|
7
7
|
}
|
|
8
|
+
/**
|
|
9
|
+
* The ETH a reveal transaction carries: the quoted total plus headroom. The randomness leg of the quote is
|
|
10
|
+
* read in an `eth_call`, where it can price lower than the send is charged, so a transaction carrying the
|
|
11
|
+
* quote exactly can still underpay. The headroom goes on the total for that reason — a share of the fee leg
|
|
12
|
+
* alone would be zero exactly when it is needed. The excess is refunded inside the same transaction, so
|
|
13
|
+
* the reveal still costs the quoted total.
|
|
14
|
+
*/
|
|
15
|
+
export declare function bufferedRevealValue(totalRequiredWei: bigint): bigint;
|
|
8
16
|
export declare function revealRequestedOf(logs: Array<Log>, cell: Address, tokenId: string): RevealRequestedView | null;
|
|
9
17
|
export declare function revealDepositsOf(logs: Array<Log>, cell: Address, requestId: bigint, resources: ResourceNames): Array<RevealDepositView> | null;
|
|
10
18
|
//# sourceMappingURL=reveal.utils.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reveal.utils.d.ts","sourceRoot":"","sources":["../../src/services/reveal.utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkB,KAAK,OAAO,EAAE,KAAK,GAAG,EAAE,MAAM,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"reveal.utils.d.ts","sourceRoot":"","sources":["../../src/services/reveal.utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkB,KAAK,OAAO,EAAE,KAAK,GAAG,EAAE,MAAM,MAAM,CAAC;AAG9D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAIpD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAE9D,MAAM,WAAW,mBAAmB;IAChC,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,OAAO,CAAC;CACnB;AAED;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAAC,gBAAgB,EAAE,MAAM,GAAG,MAAM,CAEpE;AAED,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,GAAG,mBAAmB,GAAG,IAAI,CAM9G;AAED,wBAAgB,gBAAgB,CAC5B,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC,EAChB,IAAI,EAAE,OAAO,EACb,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,aAAa,GACzB,KAAK,CAAC,iBAAiB,CAAC,GAAG,IAAI,CAsBjC"}
|
|
@@ -1,6 +1,18 @@
|
|
|
1
1
|
import { parseEventLogs } from 'viem';
|
|
2
|
+
import { REVEAL_FEE_BUFFER_BPS } from './reveal.constants.js';
|
|
3
|
+
import { BPS_DENOMINATOR } from '../config/constants.js';
|
|
2
4
|
import { CELL_ABI } from '../contracts/cell.abi.js';
|
|
3
5
|
import { sameAddress, sameTokenId } from '../randomness/request.utils.js';
|
|
6
|
+
/**
|
|
7
|
+
* The ETH a reveal transaction carries: the quoted total plus headroom. The randomness leg of the quote is
|
|
8
|
+
* read in an `eth_call`, where it can price lower than the send is charged, so a transaction carrying the
|
|
9
|
+
* quote exactly can still underpay. The headroom goes on the total for that reason — a share of the fee leg
|
|
10
|
+
* alone would be zero exactly when it is needed. The excess is refunded inside the same transaction, so
|
|
11
|
+
* the reveal still costs the quoted total.
|
|
12
|
+
*/
|
|
13
|
+
export function bufferedRevealValue(totalRequiredWei) {
|
|
14
|
+
return totalRequiredWei + (totalRequiredWei * REVEAL_FEE_BUFFER_BPS) / BPS_DENOMINATOR;
|
|
15
|
+
}
|
|
4
16
|
export function revealRequestedOf(logs, cell, tokenId) {
|
|
5
17
|
const events = parseEventLogs({ abi: CELL_ABI, eventName: 'RevealRequested', logs });
|
|
6
18
|
const event = events.find((candidate) => sameAddress(candidate.address, cell) && sameTokenId(candidate.args.tokenId.toString(), tokenId));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reveal.utils.js","sourceRoot":"","sources":["../../src/services/reveal.utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAA0B,MAAM,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"reveal.utils.js","sourceRoot":"","sources":["../../src/services/reveal.utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAA0B,MAAM,MAAM,CAAC;AAE9D,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAE9D,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAQ1E;;;;;;GAMG;AACH,MAAM,UAAU,mBAAmB,CAAC,gBAAwB;IACxD,OAAO,gBAAgB,GAAG,CAAC,gBAAgB,GAAG,qBAAqB,CAAC,GAAG,eAAe,CAAC;AAC3F,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,IAAgB,EAAE,IAAa,EAAE,OAAe;IAC9E,MAAM,MAAM,GAAG,cAAc,CAAC,EAAE,GAAG,EAAE,QAAQ,EAAE,SAAS,EAAE,iBAAiB,EAAE,IAAI,EAAE,CAAC,CAAC;IACrF,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CACrB,CAAC,SAAS,EAAE,EAAE,CAAC,WAAW,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,WAAW,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,OAAO,CAAC,CACjH,CAAC;IACF,OAAO,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,KAAK,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;AACvG,CAAC;AAED,MAAM,UAAU,gBAAgB,CAC5B,IAAgB,EAChB,IAAa,EACb,SAAiB,EACjB,SAAwB;IAExB,MAAM,MAAM,GAAG,cAAc,CAAC,EAAE,GAAG,EAAE,QAAQ,EAAE,SAAS,EAAE,iBAAiB,EAAE,IAAI,EAAE,CAAC,CAAC;IACrF,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CACrB,CAAC,SAAS,EAAE,EAAE,CAAC,WAAW,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,SAAS,CAAC,IAAI,CAAC,SAAS,KAAK,SAAS,CAChG,CAAC;IACF,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACtB,OAAO,IAAI,CAAC;IAChB,CAAC;IACD,MAAM,KAAK,GAA6B,EAAE,CAAC;IAC3C,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,UAAU,EAAE,IAAI,EAAE,EAAE;QAC9C,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;QAC9C,IAAI,UAAU,KAAK,CAAC,IAAI,MAAM,KAAK,EAAE,EAAE,CAAC;YACpC,OAAO;QACX,CAAC;QACD,KAAK,CAAC,IAAI,CAAC;YACP,UAAU;YACV,YAAY,EAAE,SAAS,CAAC,UAAU,CAAC,IAAI,IAAI;YAC3C,MAAM,EAAE,MAAM,CAAC,QAAQ,EAAE;YACzB,QAAQ,EAAE,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC;SAC5C,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IACH,OAAO,KAAK,CAAC;AACjB,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { Abi } from 'viem';
|
|
2
|
+
export interface KnownRevert<T extends string> {
|
|
3
|
+
name: T;
|
|
4
|
+
args: ReadonlyArray<unknown>;
|
|
5
|
+
}
|
|
6
|
+
export declare function decodeKnownRevert<T extends string>(error: unknown, abi: Abi, names: ReadonlyArray<T>): KnownRevert<T> | null;
|
|
7
|
+
//# sourceMappingURL=revert-decode.utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"revert-decode.utils.d.ts","sourceRoot":"","sources":["../../src/services/revert-decode.utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,MAAM,CAAC;AAIhC,MAAM,WAAW,WAAW,CAAC,CAAC,SAAS,MAAM;IACzC,IAAI,EAAE,CAAC,CAAC;IACR,IAAI,EAAE,aAAa,CAAC,OAAO,CAAC,CAAC;CAChC;AAED,wBAAgB,iBAAiB,CAAC,CAAC,SAAS,MAAM,EAC9C,KAAK,EAAE,OAAO,EACd,GAAG,EAAE,GAAG,EACR,KAAK,EAAE,aAAa,CAAC,CAAC,CAAC,GACxB,WAAW,CAAC,CAAC,CAAC,GAAG,IAAI,CAUvB"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { decodeRevert } from '../wallet/revert.utils.js';
|
|
2
|
+
export function decodeKnownRevert(error, abi, names) {
|
|
3
|
+
const decoded = decodeRevert(error, abi);
|
|
4
|
+
if (decoded === null) {
|
|
5
|
+
return null;
|
|
6
|
+
}
|
|
7
|
+
const name = names.find((known) => known === decoded.name) ?? null;
|
|
8
|
+
if (name === null) {
|
|
9
|
+
return null;
|
|
10
|
+
}
|
|
11
|
+
return { name, args: decoded.args };
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=revert-decode.utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"revert-decode.utils.js","sourceRoot":"","sources":["../../src/services/revert-decode.utils.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAOzD,MAAM,UAAU,iBAAiB,CAC7B,KAAc,EACd,GAAQ,EACR,KAAuB;IAEvB,MAAM,OAAO,GAAG,YAAY,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IACzC,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;QACnB,OAAO,IAAI,CAAC;IAChB,CAAC;IACD,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,KAAK,OAAO,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC;IACnE,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;QAChB,OAAO,IAAI,CAAC;IAChB,CAAC;IACD,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC;AACxC,CAAC"}
|
package/dist/services/types.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { Address, Hash, Log } from 'viem';
|
|
2
2
|
import type { ApiClient } from '../api/client.js';
|
|
3
|
-
import type { BuildingType, BuildingView, CraftRecipeId, CraftStackView, IRevealRequestsReader, LotAvailability, LotSort, OpenRevealRequestView, RandomnessDescriptor, RecipeView,
|
|
3
|
+
import type { BuildingType, BuildingView, CraftRecipeId, CraftStackView, IRevealRequestsReader, LotAvailability, LotSort, OpenRevealRequestView, RandomnessDescriptor, RecipeView, RevealPaymentView, StorageConfigView, SyndicateSort, TransportRoutingView } from '../api/types.js';
|
|
4
4
|
import type { Network } from '../config/types.js';
|
|
5
5
|
import type { CellCoord } from '../geometry/types.js';
|
|
6
6
|
import type { ILogger } from '../logger/types.js';
|
|
@@ -88,8 +88,11 @@ export interface AppConfig {
|
|
|
88
88
|
recipes: Array<RecipeView>;
|
|
89
89
|
/** Per-building catalog — on-chain id, kind, costs, and mine/craft bindings. */
|
|
90
90
|
buildings: Array<CatalogBuildingView>;
|
|
91
|
-
/**
|
|
92
|
-
|
|
91
|
+
/**
|
|
92
|
+
* The two gameplay legs every reveal is charged; `null` when the game API serves no reveal payment at
|
|
93
|
+
* all. Never the total to send — a reveal is always funded from `ICellClient.quoteReveal`.
|
|
94
|
+
*/
|
|
95
|
+
reveal: RevealPaymentView | null;
|
|
93
96
|
transport: TransportRoutingView;
|
|
94
97
|
/** Trade fee params, normalized to the MCP's percent surface. */
|
|
95
98
|
trade: TradeConfigView;
|
|
@@ -125,6 +128,18 @@ export interface RequestRevealParams {
|
|
|
125
128
|
tokenId: bigint;
|
|
126
129
|
value: bigint;
|
|
127
130
|
}
|
|
131
|
+
/**
|
|
132
|
+
* What one reveal costs right now, read from the Cell itself and the only source a reveal is funded from:
|
|
133
|
+
* `totalRequiredWei` is the whole ETH the reveal is charged and `cpuBurnWei` the exact burn to approve. The
|
|
134
|
+
* transaction carries headroom over the total (see `bufferedRevealValue`); the burn is approved as quoted.
|
|
135
|
+
* Any leg may be zero.
|
|
136
|
+
*/
|
|
137
|
+
export interface RevealQuote {
|
|
138
|
+
ethContributionWei: bigint;
|
|
139
|
+
randomnessFeeWei: bigint;
|
|
140
|
+
totalRequiredWei: bigint;
|
|
141
|
+
cpuBurnWei: bigint;
|
|
142
|
+
}
|
|
128
143
|
export interface PlaceParams {
|
|
129
144
|
cell: Address;
|
|
130
145
|
tokenId: bigint;
|
|
@@ -162,6 +177,7 @@ export interface CellViewResult {
|
|
|
162
177
|
}
|
|
163
178
|
export interface ICellClient {
|
|
164
179
|
readCellView(cell: Address, tokenId: bigint): Promise<CellViewResult>;
|
|
180
|
+
quoteReveal(cell: Address): Promise<RevealQuote>;
|
|
165
181
|
requestReveal(params: RequestRevealParams): Promise<Hash>;
|
|
166
182
|
place(params: PlaceParams): Promise<Hash>;
|
|
167
183
|
demolish(params: DemolishParams): Promise<Hash>;
|
|
@@ -182,7 +198,11 @@ export interface RevealServiceOptions {
|
|
|
182
198
|
logger: ILogger;
|
|
183
199
|
}
|
|
184
200
|
export declare enum CellRevertName {
|
|
185
|
-
|
|
201
|
+
INSUFFICIENT_REVEAL_PAYMENT = "InsufficientRevealPayment",
|
|
202
|
+
REVEAL_PAYMENT_NOT_CONFIGURED = "RevealPaymentNotConfigured",
|
|
203
|
+
REVEAL_HOOK_NOT_CONFIGURED = "RevealHookNotConfigured",
|
|
204
|
+
HOOK_DELIVERY_FAILED = "HookDeliveryFailed",
|
|
205
|
+
REFUND_FAILED = "RefundFailed",
|
|
186
206
|
REVEAL_NOT_CONFIGURED = "RevealNotConfigured",
|
|
187
207
|
REVEAL_CELL_OCCUPIED = "RevealCellOccupied",
|
|
188
208
|
REVEAL_PROCESS_ACTIVE = "RevealProcessActive",
|
|
@@ -191,6 +211,18 @@ export declare enum CellRevertName {
|
|
|
191
211
|
DEPOSITS_NOT_EXHAUSTED = "DepositsNotExhausted",
|
|
192
212
|
REVEAL_REQUEST_ID_IN_USE = "RevealRequestIdInUse"
|
|
193
213
|
}
|
|
214
|
+
export declare enum UpgradeRevertName {
|
|
215
|
+
NOT_REVEALED = "NotRevealed",
|
|
216
|
+
PROCESS_ACTIVE = "ProcessActive",
|
|
217
|
+
DEMOLISH_IN_PROGRESS = "DemolishInProgress",
|
|
218
|
+
BUILDING_NOT_ENABLED = "BuildingNotEnabled",
|
|
219
|
+
NOT_A_BASE_BUILDING = "NotABaseBuilding",
|
|
220
|
+
INVALID_UPGRADE = "InvalidUpgrade",
|
|
221
|
+
BUILDING_NOT_READY = "BuildingNotReady",
|
|
222
|
+
STORAGE_EXCEEDS_CAP = "StorageExceedsCap",
|
|
223
|
+
INSUFFICIENT_LIQUID = "InsufficientLiquid",
|
|
224
|
+
NOT_CELL_OWNER = "NotCellOwner"
|
|
225
|
+
}
|
|
194
226
|
export interface PushRevealInput {
|
|
195
227
|
randomness: PushRandomness;
|
|
196
228
|
config: AppConfig;
|
|
@@ -209,13 +241,19 @@ export interface SelfServiceRevealInput {
|
|
|
209
241
|
pending: boolean;
|
|
210
242
|
owner: Address;
|
|
211
243
|
}
|
|
244
|
+
export interface FundedRevealRequest {
|
|
245
|
+
approveTxHash: Hash | null;
|
|
246
|
+
quote: RevealQuote;
|
|
247
|
+
value: bigint;
|
|
248
|
+
}
|
|
212
249
|
export interface RevealRequestContext {
|
|
213
250
|
requestId: bigint | null;
|
|
214
251
|
source: Address;
|
|
215
252
|
requestTxHash: Hash | null;
|
|
216
253
|
approveTxHash: Hash | null;
|
|
217
|
-
|
|
218
|
-
|
|
254
|
+
/** The whole ETH the reveal cost, as the Cell quoted it; the transaction carries headroom above it. */
|
|
255
|
+
paidWei: bigint;
|
|
256
|
+
cpuBurnWei: bigint;
|
|
219
257
|
status: TxStatus | null;
|
|
220
258
|
blockNumber: string | null;
|
|
221
259
|
}
|
|
@@ -252,9 +290,15 @@ export interface RevealResult {
|
|
|
252
290
|
deposits: Array<RevealDepositView> | null;
|
|
253
291
|
status: TxStatus | null;
|
|
254
292
|
blockNumber: string | null;
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
293
|
+
/**
|
|
294
|
+
* The whole ETH this reveal cost (decimal), as the cell quoted it — the liquidity contribution and the
|
|
295
|
+
* randomness fee together, not the fee alone; "0" when the call sent no request of its own. The
|
|
296
|
+
* transaction carries headroom above it and the excess comes back in the same transaction, so this is
|
|
297
|
+
* what the wallet is left down by.
|
|
298
|
+
*/
|
|
299
|
+
ethPaid: string;
|
|
300
|
+
/** $CPU burned by this reveal (decimal); "0" when the call sent no request of its own. */
|
|
301
|
+
cpuBurn: string;
|
|
258
302
|
approveTxHash: Hash | null;
|
|
259
303
|
fulfilled: boolean;
|
|
260
304
|
note: string | null;
|
|
@@ -333,6 +377,24 @@ export interface BuildPlacement {
|
|
|
333
377
|
/** Build cost in $CPU (decimal). */
|
|
334
378
|
buildCost: string;
|
|
335
379
|
}
|
|
380
|
+
export interface UpgradeInput {
|
|
381
|
+
tokenId: string;
|
|
382
|
+
targetBuildingType: string;
|
|
383
|
+
}
|
|
384
|
+
export interface UpgradeResult {
|
|
385
|
+
tokenId: string;
|
|
386
|
+
fromBuildingType: string;
|
|
387
|
+
toBuildingType: string;
|
|
388
|
+
buildCost: string;
|
|
389
|
+
buildInputs: Array<CraftStackView>;
|
|
390
|
+
noop: boolean;
|
|
391
|
+
upgrading: boolean;
|
|
392
|
+
finishAt: number | null;
|
|
393
|
+
approveTxHash: Hash | null;
|
|
394
|
+
txHash: Hash | null;
|
|
395
|
+
status: TxStatus | null;
|
|
396
|
+
blockNumber: string | null;
|
|
397
|
+
}
|
|
336
398
|
export interface DemolishInput {
|
|
337
399
|
tokenId: string;
|
|
338
400
|
}
|