@render-foundation/utils 0.0.258 → 0.0.260

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.
@@ -1,7 +1,9 @@
1
1
  import { CoinGeckoClient } from 'coingecko-api-v3';
2
2
  import ccxt from 'ccxt';
3
3
  export const priceClient = () => {
4
- const bin = new ccxt.binanceus({});
4
+ // binanceus removed 2026-08: api.binance.us is decommissioned (DNS gone) — and its uncaught fetch
5
+ // failure threw BEFORE the coinbase fallback could run, breaking buy-and-burn pricing entirely.
6
+ // coinbase (RENDER/USD) is the primary source now.
5
7
  const cb = new ccxt.coinbase({});
6
8
  const client = new CoinGeckoClient({
7
9
  timeout: 10000,
@@ -27,32 +29,23 @@ export const priceClient = () => {
27
29
  },
28
30
  async getRenderPriceAtDate(p) {
29
31
  const symbol = p.symbol ?? 'RENDER/USDT';
30
- // coinbase lists RENDER as RENDER/USD, not RENDER/USDT — map for the coinbase fallbacks.
32
+ // coinbase lists RENDER as RENDER/USD, not RENDER/USDT — callers still pass the USDT form.
31
33
  const cbSymbol = symbol.replace('/USDT', '/USD');
32
34
  const since = p.ts.getTime();
33
- // 1) Historical: the 1m candle at/after ts — binanceus first, then coinbase (correct symbol).
34
- let ticks = await bin.fetchOHLCV(symbol, '1m', since, 1);
35
- if (ticks.length == 0)
36
- ticks = await cb.fetchOHLCV(cbSymbol, '1m', since, 1);
35
+ // 1) Historical: the 1m candle at/after ts.
36
+ const ticks = await cb.fetchOHLCV(cbSymbol, '1m', since, 1);
37
37
  if (ticks.length > 0)
38
38
  return Number(ticks[0][4]);
39
- // 2) OHLCV empty — typically ts ≈ now (the current minute has no closed candle yet). The previous
40
- // code fell back to a coinbase OHLCV with the WRONG symbol (RENDER/USDT) and threw. Use the live
41
- // ticker instead (all sources return it): binanceus RENDER/USDT, then coinbase RENDER/USD.
42
- for (const [ex, sym] of [
43
- [bin, symbol],
44
- [cb, cbSymbol],
45
- ]) {
46
- try {
47
- const t = await ex.fetchTicker(sym);
48
- if (t.last)
49
- return Number(t.last);
50
- }
51
- catch {
52
- /* try next source */
53
- }
39
+ // 2) OHLCV empty — typically ts ≈ now (the current minute has no closed candle yet): live ticker.
40
+ try {
41
+ const t = await cb.fetchTicker(cbSymbol);
42
+ if (t.last)
43
+ return Number(t.last);
44
+ }
45
+ catch {
46
+ /* fall through to the error below */
54
47
  }
55
- throw new Error(`failed fetching RENDER price for ${symbol} at ${p.ts.toISOString()}`);
48
+ throw new Error(`failed fetching RENDER price for ${cbSymbol} at ${p.ts.toISOString()}`);
56
49
  },
57
50
  async getCurrPrice() {
58
51
  const res = await client.coinId({ id: 'render-token' });
@@ -1 +1 @@
1
- {"version":3,"file":"price.js","sourceRoot":"","sources":["../../../../src/client/price.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"price.js","sourceRoot":"","sources":["../../../../src/client/price.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAA;AAClD,OAAO,IAAI,MAAM,MAAM,CAAA;AAgBvB,MAAM,CAAC,MAAM,WAAW,GAAG,GAAgB,EAAE;IAC3C,kGAAkG;IAClG,gGAAgG;IAChG,mDAAmD;IACnD,MAAM,EAAE,GAAG,IAAI,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAA;IAEhC,MAAM,MAAM,GAAG,IAAI,eAAe,CAAC;QACjC,OAAO,EAAE,KAAK;QACd,SAAS,EAAE,IAAI;KAChB,CAAC,CAAA;IAEF,OAAO;QACL,KAAK,CAAC,SAAS,CAAC,EAAQ;YACtB,oEAAoE;YACpE,IAAI,UAA8B,CAAA;YAClC,MAAM,KAAK,GAAG,MAAM,EAAE,CAAC,UAAU,CAAC,UAAU,EAAE,IAAI,EAAE,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAA;YACpE,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;gBAAE,UAAU,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;iBACjD;gBACH,uFAAuF;gBACvF,MAAM,CAAC,GAAG,MAAM,EAAE,CAAC,WAAW,CAAC,UAAU,CAAC,CAAA;gBAC1C,IAAI,CAAC,CAAC,IAAI;oBAAE,UAAU,GAAG,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAA;aACxC;YACD,IAAI,CAAC,UAAU,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE;gBACxC,MAAM,IAAI,KAAK,CAAC,+DAA+D,CAAC,CAAA;aACjF;YACD,OAAO,CAAC,GAAG,UAAU,CAAA;QACvB,CAAC;QACD,KAAK,CAAC,oBAAoB,CAAC,CAI1B;YACC,MAAM,MAAM,GAAG,CAAC,CAAC,MAAM,IAAI,aAAa,CAAA;YACxC,2FAA2F;YAC3F,MAAM,QAAQ,GAAG,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,MAAM,CAAC,CAAA;YAChD,MAAM,KAAK,GAAG,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE,CAAA;YAE5B,4CAA4C;YAC5C,MAAM,KAAK,GAAG,MAAM,EAAE,CAAC,UAAU,CAAC,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,CAAA;YAC3D,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;gBAAE,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;YAEhD,kGAAkG;YAClG,IAAI;gBACF,MAAM,CAAC,GAAG,MAAM,EAAE,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAA;gBACxC,IAAI,CAAC,CAAC,IAAI;oBAAE,OAAO,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAA;aAClC;YAAC,MAAM;gBACN,qCAAqC;aACtC;YACD,MAAM,IAAI,KAAK,CACb,oCAAoC,QAAQ,OAAO,CAAC,CAAC,EAAE,CAAC,WAAW,EAAE,EAAE,CACxE,CAAA;QACH,CAAC;QACD,KAAK,CAAC,YAAY;YAChB,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,cAAc,EAAE,CAAC,CAAA;YACvD,OAAO,GAAG,CAAC,WAAW,EAAE,aAAc,CAAC,KAAK,CAAE,CAAA;QAChD,CAAC;KACF,CAAA;AACH,CAAC,CAAA"}