@nibgate/sdk 0.2.27 → 0.2.28

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nibgate/sdk",
3
- "version": "0.2.27",
3
+ "version": "0.2.28",
4
4
  "description": "Framework-agnostic browser and server package for creator-owned gated content, unlock events, and receipts.",
5
5
  "type": "module",
6
6
  "sideEffects": [
@@ -224,21 +224,8 @@ export function renderDefaultUnlockUI(container, resource, options = {}) {
224
224
  const cleanup = () => { document.removeEventListener('mouseup', cancelHold); document.removeEventListener('touchend', cancelHold); };
225
225
  card.addEventListener('remove', cleanup);
226
226
 
227
- // ── Gateway balance + deposit icon ─────────────────────────────────────
228
- async function fetchBalance(addr) {
229
- try {
230
- const sel = '0xdd62e1c6';
231
- const pad = (a) => '000000000000000000000000' + a.slice(2).toLowerCase();
232
- const data = sel + pad('0x3600000000000000000000000000000000000000') + pad(addr);
233
- const hex = await window.ethereum.request({
234
- method: 'eth_call',
235
- params: [{ to: '0x0077777d7EBA4688BDeF3E311b846F25870A19B9', data }, 'latest'],
236
- });
237
- return hex && hex !== '0x' ? (Number(BigInt(hex)) / 1_000_000).toFixed(2) + ' USDC' : '0.00 USDC';
238
- } catch { return '\u2014'; }
239
- }
240
-
241
- let balEl = null, gwOverlay = null, balTimer = null;
227
+ // ── Gateway deposit icon ──────────────────────────────────────────────
228
+ let gwOverlay = null;
242
229
 
243
230
  function depIcon() {
244
231
  return '<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" style="display:inline;vertical-align:middle"><path d="M12 17V3"/><path d="m6 11 6 6 6-6"/><path d="M19 21H5"/></svg>';
@@ -259,33 +246,24 @@ export function renderDefaultUnlockUI(container, resource, options = {}) {
259
246
  }
260
247
  function onDepKey(e) { if (e.key === 'Escape' && gwOverlay) { gwOverlay.remove(); gwOverlay = null; document.removeEventListener('keydown', onDepKey); } }
261
248
 
249
+ let balEl = null;
262
250
  function ensureBal() {
263
251
  if (balEl && balEl.isConnected) return balEl;
264
252
  balEl = el('span', { 'data-nibgate-bal': '', style: 'margin-left:4px;cursor:pointer;white-space:nowrap;color:var(--accent,#7c9a6d)' },
265
- '\u00b7\u00a0<span data-nibgate-bal-txt></span>\u00a0|\u00a0' + depIcon());
253
+ '\u00b7\u00a0|\u00a0' + depIcon());
266
254
  balEl.addEventListener('click', showDeposit);
267
255
  if (label.parentNode) label.parentNode.insertBefore(balEl, label.nextSibling);
268
256
  return balEl;
269
257
  }
270
258
 
271
- async function refreshBal() {
272
- if (!card.isConnected || !window.ethereum) return;
273
- try {
274
- const accts = await window.ethereum.request({ method: 'eth_accounts' });
275
- const addr = Array.isArray(accts) && accts[0] ? accts[0] : null;
276
- if (!addr) return;
277
- const t = ensureBal().querySelector('[data-nibgate-bal-txt]');
278
- if (t) t.textContent = await fetchBalance(addr);
279
- } catch {}
280
- }
281
-
282
259
  if (window.ethereum) {
283
- balTimer = setInterval(refreshBal, 3000);
284
- setTimeout(refreshBal, 1000);
285
- window.ethereum.on('accountsChanged', refreshBal);
260
+ setTimeout(() => {
261
+ const accts = window.ethereum.request({ method: 'eth_accounts' }).catch(() => []);
262
+ accts.then(a => { if (Array.isArray(a) && a[0]) ensureBal(); });
263
+ }, 1000);
286
264
  }
287
265
 
288
- return { ...ctrl, element: card, destroy: () => { cleanup(); card.remove(); if (balTimer) clearInterval(balTimer); if (gwOverlay) { gwOverlay.remove(); gwOverlay = null; } } };
266
+ return { ...ctrl, element: card, destroy: () => { cleanup(); card.remove(); if (gwOverlay) { gwOverlay.remove(); gwOverlay = null; } } };
289
267
  }
290
268
 
291
269
  export function renderDefaultRatingUI(container, resource, options = {}) {