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.
Files changed (113) hide show
  1. package/dist/api/types.d.ts +17 -6
  2. package/dist/api/types.d.ts.map +1 -1
  3. package/dist/api/types.js.map +1 -1
  4. package/dist/config/constants.d.ts +1 -0
  5. package/dist/config/constants.d.ts.map +1 -1
  6. package/dist/config/constants.js +1 -0
  7. package/dist/config/constants.js.map +1 -1
  8. package/dist/contracts/cell.abi.d.ts +91 -1
  9. package/dist/contracts/cell.abi.d.ts.map +1 -1
  10. package/dist/contracts/cell.abi.js +86 -1
  11. package/dist/contracts/cell.abi.js.map +1 -1
  12. package/dist/index.js +0 -1
  13. package/dist/index.js.map +1 -1
  14. package/dist/randomness/drand.strategy.d.ts +0 -2
  15. package/dist/randomness/drand.strategy.d.ts.map +1 -1
  16. package/dist/randomness/drand.strategy.js +0 -18
  17. package/dist/randomness/drand.strategy.js.map +1 -1
  18. package/dist/randomness/factory.d.ts +0 -1
  19. package/dist/randomness/factory.d.ts.map +1 -1
  20. package/dist/randomness/factory.js +1 -5
  21. package/dist/randomness/factory.js.map +1 -1
  22. package/dist/randomness/types.d.ts +5 -9
  23. package/dist/randomness/types.d.ts.map +1 -1
  24. package/dist/randomness/types.js.map +1 -1
  25. package/dist/server.d.ts.map +1 -1
  26. package/dist/server.js +2 -0
  27. package/dist/server.js.map +1 -1
  28. package/dist/services/app-config.service.d.ts.map +1 -1
  29. package/dist/services/app-config.service.js +7 -2
  30. package/dist/services/app-config.service.js.map +1 -1
  31. package/dist/services/app-config.utils.d.ts +8 -1
  32. package/dist/services/app-config.utils.d.ts.map +1 -1
  33. package/dist/services/app-config.utils.js +20 -1
  34. package/dist/services/app-config.utils.js.map +1 -1
  35. package/dist/services/build.service.d.ts +7 -2
  36. package/dist/services/build.service.d.ts.map +1 -1
  37. package/dist/services/build.service.js +112 -4
  38. package/dist/services/build.service.js.map +1 -1
  39. package/dist/services/cell.client.d.ts +2 -1
  40. package/dist/services/cell.client.d.ts.map +1 -1
  41. package/dist/services/cell.client.js +14 -0
  42. package/dist/services/cell.client.js.map +1 -1
  43. package/dist/services/reveal-revert.utils.d.ts.map +1 -1
  44. package/dist/services/reveal-revert.utils.js +25 -18
  45. package/dist/services/reveal-revert.utils.js.map +1 -1
  46. package/dist/services/reveal.service.d.ts +8 -1
  47. package/dist/services/reveal.service.d.ts.map +1 -1
  48. package/dist/services/reveal.service.js +57 -56
  49. package/dist/services/reveal.service.js.map +1 -1
  50. package/dist/services/reveal.utils.d.ts +8 -0
  51. package/dist/services/reveal.utils.d.ts.map +1 -1
  52. package/dist/services/reveal.utils.js +12 -0
  53. package/dist/services/reveal.utils.js.map +1 -1
  54. package/dist/services/revert-decode.utils.d.ts +7 -0
  55. package/dist/services/revert-decode.utils.d.ts.map +1 -0
  56. package/dist/services/revert-decode.utils.js +13 -0
  57. package/dist/services/revert-decode.utils.js.map +1 -0
  58. package/dist/services/types.d.ts +71 -9
  59. package/dist/services/types.d.ts.map +1 -1
  60. package/dist/services/types.js +18 -1
  61. package/dist/services/types.js.map +1 -1
  62. package/dist/services/upgrade-revert.utils.d.ts +8 -0
  63. package/dist/services/upgrade-revert.utils.d.ts.map +1 -0
  64. package/dist/services/upgrade-revert.utils.js +46 -0
  65. package/dist/services/upgrade-revert.utils.js.map +1 -0
  66. package/dist/tools/build/constants.d.ts +1 -0
  67. package/dist/tools/build/constants.d.ts.map +1 -1
  68. package/dist/tools/build/constants.js +12 -0
  69. package/dist/tools/build/constants.js.map +1 -1
  70. package/dist/tools/build/types.d.ts +4 -0
  71. package/dist/tools/build/types.d.ts.map +1 -1
  72. package/dist/tools/build/types.js +11 -0
  73. package/dist/tools/build/types.js.map +1 -1
  74. package/dist/tools/build/upgrade.d.ts +4 -0
  75. package/dist/tools/build/upgrade.d.ts.map +1 -0
  76. package/dist/tools/build/upgrade.js +38 -0
  77. package/dist/tools/build/upgrade.js.map +1 -0
  78. package/dist/tools/config/get-game-config/constants.d.ts +9 -0
  79. package/dist/tools/config/get-game-config/constants.d.ts.map +1 -1
  80. package/dist/tools/config/get-game-config/constants.js +17 -3
  81. package/dist/tools/config/get-game-config/constants.js.map +1 -1
  82. package/dist/tools/config/get-game-config/get-game-config.d.ts.map +1 -1
  83. package/dist/tools/config/get-game-config/get-game-config.js +10 -5
  84. package/dist/tools/config/get-game-config/get-game-config.js.map +1 -1
  85. package/dist/tools/config/get-game-config/get-game-config.utils.d.ts +6 -1
  86. package/dist/tools/config/get-game-config/get-game-config.utils.d.ts.map +1 -1
  87. package/dist/tools/config/get-game-config/get-game-config.utils.js +96 -2
  88. package/dist/tools/config/get-game-config/get-game-config.utils.js.map +1 -1
  89. package/dist/tools/reveal/constants.d.ts.map +1 -1
  90. package/dist/tools/reveal/constants.js +5 -4
  91. package/dist/tools/reveal/constants.js.map +1 -1
  92. package/dist/tools/reveal/reveal.js +4 -4
  93. package/dist/tools/reveal/reveal.js.map +1 -1
  94. package/dist/utils/format.utils.d.ts +2 -0
  95. package/dist/utils/format.utils.d.ts.map +1 -1
  96. package/dist/utils/format.utils.js +4 -0
  97. package/dist/utils/format.utils.js.map +1 -1
  98. package/dist/wallet/constants.d.ts +0 -1
  99. package/dist/wallet/constants.d.ts.map +1 -1
  100. package/dist/wallet/constants.js +0 -1
  101. package/dist/wallet/constants.js.map +1 -1
  102. package/dist/wallet/gas.utils.d.ts.map +1 -1
  103. package/dist/wallet/gas.utils.js +2 -1
  104. package/dist/wallet/gas.utils.js.map +1 -1
  105. package/package.json +1 -1
  106. package/dist/contracts/randomness-source.abi.d.ts +0 -12
  107. package/dist/contracts/randomness-source.abi.d.ts.map +0 -1
  108. package/dist/contracts/randomness-source.abi.js +0 -10
  109. package/dist/contracts/randomness-source.abi.js.map +0 -1
  110. package/dist/randomness/push.strategy.d.ts +0 -12
  111. package/dist/randomness/push.strategy.d.ts.map +0 -1
  112. package/dist/randomness/push.strategy.js +0 -24
  113. 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.INSUFFICIENT_REVEAL_FEE:
12
- return (`The reveal fee moved between the quote and the send: the cell asks the randomness source for ` +
13
- `its fee inside the request, and this transaction carried less than it quoted. The quote ` +
14
- `follows the gas price, so quote again and retry.`);
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 = decodeRevert(error, CELL_ABI);
48
- return decoded !== null && toCellRevertName(decoded.name) === CellRevertName.REVEAL_ALREADY_PENDING;
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 = decodeRevert(error, CELL_ABI);
52
- if (decoded === null || toCellRevertName(decoded.name) !== CellRevertName.REVEAL_IN_FLIGHT) {
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 = decodeRevert(error, CELL_ABI);
69
+ const decoded = decodeKnownRevert(error, CELL_ABI, CELL_REVERT_NAMES);
59
70
  if (decoded === null) {
60
71
  return withAdapterPhrase(error);
61
72
  }
62
- const name = toCellRevertName(decoded.name);
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":"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"}
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
- private settleReRevealCost;
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":"AAWA,OAAO,EAQH,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;YAgDvB,8BAA8B;YA0D9B,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;YA6BZ,kBAAkB;YAkBlB,eAAe;CAYhC"}
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, parseEther } from 'viem';
1
+ import { isAddress } from 'viem';
2
2
  import { isRevealAlreadyPending } from './reveal-revert.utils.js';
3
- import { REVEAL_FEE_BUFFER_BPS, REVEAL_POLL_INTERVAL_MS, REVEAL_POLL_TIMEOUT_MS, REVEAL_PRIME_ATTEMPTS, REVEAL_PRIME_INTERVAL_MS, } from './reveal.constants.js';
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, config, cell, tokenId, genesis, previousRevealCount } = input;
85
- const { approveTxHash, reRevealCostWei } = await this.settleReRevealCost(config, cell, genesis);
86
- const fee = await randomness.quoteFee();
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
- fee: cpuFromWei(fee.toString()),
118
- reRevealCost: cpuFromWei(reRevealCostWei.toString()),
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, config, cell, tokenId, genesis } = input;
113
+ const { randomness, cell, tokenId } = input;
126
114
  if (input.pending) {
127
115
  return this.settleOpenRequest(input, null);
128
116
  }
129
- const { approveTxHash, reRevealCostWei } = await this.settleReRevealCost(config, cell, genesis);
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
- const txHash = await this.cellClient.requestReveal({ cell, tokenId: BigInt(tokenId), value });
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
- feeWei: fee,
170
- reRevealCostWei,
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
- feeWei: 0n,
191
- reRevealCostWei: 0n,
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 charges no new fee — or read the draw with get_cell ${input.tokenId} once anyone ` +
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
- fee: cpuFromWei(ctx.feeWei.toString()),
369
- reRevealCost: cpuFromWei(ctx.reRevealCostWei.toString()),
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
- feeWei: 0n,
392
- reRevealCostWei: 0n,
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 no reveal fee, calling reveal again will not clear the ` +
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
- fee: '0',
427
- reRevealCost: '0',
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 no reveal fee, but the game API does not list that request yet, so this call cannot tell ` +
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
- async settleReRevealCost(config, cell, genesis) {
438
- if (genesis) {
439
- return { approveTxHash: null, reRevealCostWei: 0n };
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 re-reveal.`);
425
+ throw new Error(`$CPU token is not configured for network ${config.network}; cannot pay for a reveal.`);
444
426
  }
445
- const reRevealCostWei = parseEther(config.reveal.reRevealCost);
446
- const approveTxHash = reRevealCostWei > 0n ? await this.allowance.ensureAllowance(cpuToken, cell, reRevealCostWei) : null;
447
- return { approveTxHash, reRevealCostWei };
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;AAE9D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAGpD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAE9D,MAAM,WAAW,mBAAmB;IAChC,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,OAAO,CAAC;CACnB;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
+ {"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;AAG9D,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAQ1E,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"}
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"}
@@ -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, RevealCostView, StorageConfigView, SyndicateSort, TransportRoutingView } from '../api/types.js';
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
- /** First-reveal-free + re-reveal cost params. */
92
- reveal: RevealCostView;
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
- INSUFFICIENT_REVEAL_FEE = "InsufficientRevealFee",
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
- feeWei: bigint;
218
- reRevealCostWei: bigint;
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
- fee: string;
256
- /** Re-reveal cost in $CPU (decimal); "0" for a first reveal. */
257
- reRevealCost: string;
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
  }