@antseed/payments 0.1.4 → 0.1.6
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/crypto-context.d.ts +1 -0
- package/dist/crypto-context.js.map +1 -1
- package/dist/index.js +7 -2
- package/dist/index.js.map +1 -1
- package/dist/routes.emissions.test.d.ts +1 -0
- package/dist/routes.emissions.test.js +88 -0
- package/dist/routes.emissions.test.js.map +1 -0
- package/dist/routes.js +193 -86
- package/dist/routes.js.map +1 -1
- package/dist/server.d.ts +7 -0
- package/dist/server.js +13 -1
- package/dist/server.js.map +1 -1
- package/dist/web/assets/{add-BIV5AyuA.js → add-C19VLth2.js} +1 -1
- package/dist/web/assets/{all-wallets-EBePThCL.js → all-wallets-DrbbDi_J.js} +1 -1
- package/dist/web/assets/{app-store-BjklFqDr.js → app-store-BquU1K8P.js} +1 -1
- package/dist/web/assets/{apple-D1VE8Smb.js → apple-lbwwuLeK.js} +1 -1
- package/dist/web/assets/{arrow-bottom-ZsiT1L1y.js → arrow-bottom-BtCJDY1B.js} +1 -1
- package/dist/web/assets/{arrow-bottom-circle-DKvUi0Ci.js → arrow-bottom-circle-DsqZ-XfJ.js} +1 -1
- package/dist/web/assets/{arrow-left-DqPtSsbQ.js → arrow-left-C7WFJwzj.js} +1 -1
- package/dist/web/assets/{arrow-right-C-L7Eq7n.js → arrow-right-BiQWww9h.js} +1 -1
- package/dist/web/assets/{arrow-top-BsmnE_gW.js → arrow-top-BKIU1iFr.js} +1 -1
- package/dist/web/assets/{bank-BJyS5lzc.js → bank-D6uPUMhQ.js} +1 -1
- package/dist/web/assets/{basic-GN_iqL6N.js → basic-DJOTYvb7.js} +1 -1
- package/dist/web/assets/{browser-CzG38Il3.js → browser-g6xlc4hr.js} +1 -1
- package/dist/web/assets/{card-BLn7fSRd.js → card-CNXxK8uM.js} +1 -1
- package/dist/web/assets/{ccip-DzXGS3YO.js → ccip-y_grEayF.js} +1 -1
- package/dist/web/assets/{checkmark-LJnZOJkW.js → checkmark-BZAcDR-j.js} +1 -1
- package/dist/web/assets/{checkmark-bold-DdCvfZpZ.js → checkmark-bold-D5XVtqYz.js} +1 -1
- package/dist/web/assets/{chevron-bottom-fPQSj-LV.js → chevron-bottom-Vkyj_Nzg.js} +1 -1
- package/dist/web/assets/{chevron-left-DxQSFiW8.js → chevron-left-DrmAXuU-.js} +1 -1
- package/dist/web/assets/{chevron-right-COD1o4NQ.js → chevron-right-5nScP158.js} +1 -1
- package/dist/web/assets/{chevron-top-B6E8u1u1.js → chevron-top-CTdyA8VO.js} +1 -1
- package/dist/web/assets/{chrome-store-BVadPKvh.js → chrome-store-oVCjsWzl.js} +1 -1
- package/dist/web/assets/{clock-CxMPGV40.js → clock-D4CQ4NWG.js} +1 -1
- package/dist/web/assets/{close-BoT-UoFd.js → close-1ZaJf7JR.js} +1 -1
- package/dist/web/assets/{coinPlaceholder-DTR4YLbx.js → coinPlaceholder-BWhwD718.js} +1 -1
- package/dist/web/assets/{compass-u6DewpdB.js → compass-DorGy6ut.js} +1 -1
- package/dist/web/assets/{copy-guqFsruM.js → copy-CD4GflKl.js} +1 -1
- package/dist/web/assets/core-BokkgsR-.js +908 -0
- package/dist/web/assets/{cursor-Cyzj71eZ.js → cursor-BmZ5Lzl7.js} +1 -1
- package/dist/web/assets/{cursor-transparent-b6KJIq15.js → cursor-transparent-DS0n62Va.js} +1 -1
- package/dist/web/assets/{desktop-OTJfzaeI.js → desktop-B63L9Ya5.js} +1 -1
- package/dist/web/assets/{disconnect-DJjKJNIm.js → disconnect-CXTe519G.js} +1 -1
- package/dist/web/assets/{discord-BfWJZWec.js → discord-DQi0_Z_3.js} +1 -1
- package/dist/web/assets/{etherscan-BRcaU-hR.js → etherscan-CeKoVfwO.js} +1 -1
- package/dist/web/assets/{exclamation-triangle-TqYv9OE3.js → exclamation-triangle-NIMD3-Ss.js} +1 -1
- package/dist/web/assets/{extension-Bcq1-Vc9.js → extension-CIubNQyb.js} +1 -1
- package/dist/web/assets/{external-link-Dl8906oz.js → external-link-RE45g6An.js} +1 -1
- package/dist/web/assets/{facebook-BEGagL0C.js → facebook-CRPhgK6P.js} +1 -1
- package/dist/web/assets/{farcaster-COGce0XN.js → farcaster-CymY7pC9.js} +1 -1
- package/dist/web/assets/{filters-DHDAVWM_.js → filters-DZK-7Yar.js} +1 -1
- package/dist/web/assets/{github-CHkFHIOw.js → github-JbFdJVxH.js} +1 -1
- package/dist/web/assets/{google-BVPM91iU.js → google-G-gEXxk4.js} +1 -1
- package/dist/web/assets/{help-circle-JqiWjFOK.js → help-circle-BtqIHitk.js} +1 -1
- package/dist/web/assets/{id-CsrkQOLZ.js → id-DZ25afr8.js} +1 -1
- package/dist/web/assets/{image-DVcW7iXO.js → image-CO-AjOrW.js} +1 -1
- package/dist/web/assets/{index-BF417SGJ.js → index-C9_0Fr2c.js} +1 -1
- package/dist/web/assets/index-Cag74snT.css +1 -0
- package/dist/web/assets/{index-DuvDGHB2.js → index-Cs0IyllF.js} +1 -1
- package/dist/web/assets/{index-9qmOgJOU.js → index-DMKXqTcx.js} +1 -1
- package/dist/web/assets/{index-DzJb2L5K.js → index-M-jBTbqp.js} +3 -3
- package/dist/web/assets/index-jSclbA_D.js +1775 -0
- package/dist/web/assets/{index.es-CpQtULc3.js → index.es-J3dlIVGI.js} +4 -4
- package/dist/web/assets/{info-BInhAzlq.js → info-B9XV3NxB.js} +1 -1
- package/dist/web/assets/{info-circle-BQVRr1po.js → info-circle-BRnOfVgu.js} +1 -1
- package/dist/web/assets/{lightbulb-BxxYBMhT.js → lightbulb-BCOe1dKj.js} +1 -1
- package/dist/web/assets/{mail-D_0lmFKl.js → mail-CtrLC_Vu.js} +1 -1
- package/dist/web/assets/{metamask-sdk-DWKTYpSR.js → metamask-sdk-P_iF3xrF.js} +1 -1
- package/dist/web/assets/{mobile-DWLQto9I.js → mobile-CMMuzkgd.js} +1 -1
- package/dist/web/assets/{more-KNa1lBim.js → more-Dl6Gj3Kz.js} +1 -1
- package/dist/web/assets/{network-placeholder-BootwA5c.js → network-placeholder-BEcer765.js} +1 -1
- package/dist/web/assets/{nftPlaceholder-DDZ5L7H6.js → nftPlaceholder-Bl3yNlnk.js} +1 -1
- package/dist/web/assets/{off-D0UPLkkK.js → off-B5xKeyIX.js} +1 -1
- package/dist/web/assets/{play-store-B_CaXXPp.js → play-store-C8zG_nea.js} +1 -1
- package/dist/web/assets/{plus-BcvR0JCg.js → plus-BCz51CiU.js} +1 -1
- package/dist/web/assets/{qr-code-Txj5hQxm.js → qr-code-BZMdhzub.js} +1 -1
- package/dist/web/assets/{recycle-horizontal-_rXVIasi.js → recycle-horizontal-BkrADZhQ.js} +1 -1
- package/dist/web/assets/{refresh-CHoOsJ33.js → refresh-P6kLP2QF.js} +1 -1
- package/dist/web/assets/{reown-logo-BHSUfB2F.js → reown-logo-CVlaKhY0.js} +1 -1
- package/dist/web/assets/{search-BSbqjN1T.js → search-RJpDNXww.js} +1 -1
- package/dist/web/assets/{secp256k1-KHQhI22D.js → secp256k1-BFrL8mDQ.js} +1 -1
- package/dist/web/assets/{secp256k1-bI3F5j6R.js → secp256k1-DNxbZl4R.js} +1 -1
- package/dist/web/assets/{send-CD2UnMQE.js → send-h1n6ztZH.js} +1 -1
- package/dist/web/assets/{swapHorizontal-D8K8GaAT.js → swapHorizontal-BRaMETTe.js} +1 -1
- package/dist/web/assets/{swapHorizontalBold-CQkuydSS.js → swapHorizontalBold-D2ANyhtg.js} +1 -1
- package/dist/web/assets/{swapHorizontalMedium-Di6AKYYk.js → swapHorizontalMedium-Btk43bqe.js} +1 -1
- package/dist/web/assets/{swapHorizontalRoundedBold-Cs0NEdw6.js → swapHorizontalRoundedBold-DujAsvF_.js} +1 -1
- package/dist/web/assets/{swapVertical-BnACgsHa.js → swapVertical-BbrR6UFZ.js} +1 -1
- package/dist/web/assets/{telegram-CItM_Dok.js → telegram-Dt-ATR99.js} +1 -1
- package/dist/web/assets/{three-dots-CWyCBR2N.js → three-dots-C0oOxUXr.js} +1 -1
- package/dist/web/assets/{twitch-DlpdSRKl.js → twitch-CfwqzP5e.js} +1 -1
- package/dist/web/assets/{twitterIcon-BIJMMIxn.js → twitterIcon-DfSzbix_.js} +1 -1
- package/dist/web/assets/{verify-VRzbSjrR.js → verify-DeF51qLB.js} +1 -1
- package/dist/web/assets/{verify-filled-CQITc0RR.js → verify-filled-C6cRHh2w.js} +1 -1
- package/dist/web/assets/{w3m-modal-BUECoo-v.js → w3m-modal-De_5dbtz.js} +1 -1
- package/dist/web/assets/{wallet-DzucEhgC.js → wallet-CtR1NqGs.js} +1 -1
- package/dist/web/assets/{wallet-placeholder-DDE-TuyH.js → wallet-placeholder-BeEq9gzA.js} +1 -1
- package/dist/web/assets/{walletconnect-Bz-1NlJ1.js → walletconnect-DKzdh_bY.js} +1 -1
- package/dist/web/assets/{warning-circle-BkUEJMvU.js → warning-circle-DmbwH0Pu.js} +1 -1
- package/dist/web/assets/{x-iLiJ5bOe.js → x-DrcaUCzm.js} +1 -1
- package/dist/web/index.html +2 -2
- package/package.json +5 -2
- package/dist/web/assets/core-Do4oAjfk.js +0 -908
- package/dist/web/assets/index-5w7d6cAM.js +0 -1730
- package/dist/web/assets/index-Du9ryAVy.css +0 -1
package/dist/crypto-context.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"crypto-context.js","sourceRoot":"","sources":["../src/crypto-context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,yBAAyB,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"crypto-context.js","sourceRoot":"","sources":["../src/crypto-context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,yBAAyB,EAAE,MAAM,eAAe,CAAC;AAkBhF;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,OAGvC;IACC,IAAI,QAAkB,CAAC;IAEvB,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;QACxB,QAAQ,GAAG,yBAAyB,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;IAC5D,CAAC;SAAM,CAAC;QACN,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,MAAM,CAAC,SAAS,CAAC,CAAC;QAC5C,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,GAAG,OAAO,EAAE,WAAW,CAAC;QAC3D,QAAQ,GAAG,MAAM,oBAAoB,CAAC,OAAO,CAAC,CAAC;IACjD,CAAC;IAED,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,UAAU,EAAE,QAAQ,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;AACpF,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,8 +1,13 @@
|
|
|
1
|
+
import { pathToFileURL } from 'node:url';
|
|
1
2
|
import { createServer } from './server.js';
|
|
2
3
|
export { createServer } from './server.js';
|
|
3
4
|
const DEFAULT_PORT = 3118;
|
|
4
|
-
// Only auto-start
|
|
5
|
-
|
|
5
|
+
// Only auto-start when this file is the process entry point (not when the
|
|
6
|
+
// CLI imports it as a library). Compare the module URL with argv[1] resolved
|
|
7
|
+
// as a file:// URL — the standard ESM "main module" check.
|
|
8
|
+
const isMain = process.argv[1]
|
|
9
|
+
? import.meta.url === pathToFileURL(process.argv[1]).href
|
|
10
|
+
: false;
|
|
6
11
|
if (isMain) {
|
|
7
12
|
const port = Number(process.env['ANTSEED_PAYMENTS_PORT']) || DEFAULT_PORT;
|
|
8
13
|
const dataDir = process.env['ANTSEED_DATA_DIR'] || undefined;
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE3C,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAG3C,MAAM,YAAY,GAAG,IAAI,CAAC;AAE1B,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE3C,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAG3C,MAAM,YAAY,GAAG,IAAI,CAAC;AAE1B,0EAA0E;AAC1E,6EAA6E;AAC7E,2DAA2D;AAC3D,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;IAC5B,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,KAAK,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI;IACzD,CAAC,CAAC,KAAK,CAAC;AAEV,IAAI,MAAM,EAAE,CAAC;IACX,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC,IAAI,YAAY,CAAC;IAC1E,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,IAAI,SAAS,CAAC;IAC7D,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC,sBAAsB,CAAC,IAAI,SAAS,CAAC;IAErE,YAAY,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE;QACjE,MAAM,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,CAAC;QACjD,OAAO,CAAC,GAAG,CAAC,iDAAiD,IAAI,EAAE,CAAC,CAAC;IACvE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;QACf,OAAO,CAAC,KAAK,CAAC,6BAA6B,EAAE,GAAG,CAAC,CAAC;QAClD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
import { describe, it, expect } from 'vitest';
|
|
2
|
+
import Fastify from 'fastify';
|
|
3
|
+
import { registerRoutes } from './routes.js';
|
|
4
|
+
function mockCtx(overrides = {}) {
|
|
5
|
+
return {
|
|
6
|
+
cryptoCtx: null,
|
|
7
|
+
cryptoConfig: {
|
|
8
|
+
rpcUrl: 'http://localhost:8545',
|
|
9
|
+
depositsContractAddress: '0x' + '0'.repeat(40),
|
|
10
|
+
channelsContractAddress: '0x' + '1'.repeat(40),
|
|
11
|
+
usdcContractAddress: '0x' + '2'.repeat(40),
|
|
12
|
+
},
|
|
13
|
+
chainConfig: {
|
|
14
|
+
chainId: 'base-local',
|
|
15
|
+
evmChainId: 31337,
|
|
16
|
+
emissionsContractAddress: '0x' + '3'.repeat(40),
|
|
17
|
+
},
|
|
18
|
+
proxyPort: 3000,
|
|
19
|
+
...overrides,
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
describe('GET /api/config', () => {
|
|
23
|
+
it('includes emissionsContractAddress', async () => {
|
|
24
|
+
const app = Fastify();
|
|
25
|
+
registerRoutes(app, mockCtx());
|
|
26
|
+
const res = await app.inject({ method: 'GET', url: '/api/config' });
|
|
27
|
+
const body = res.json();
|
|
28
|
+
expect(body).toHaveProperty('emissionsContractAddress');
|
|
29
|
+
expect(body.emissionsContractAddress).toBe('0x' + '3'.repeat(40));
|
|
30
|
+
await app.close();
|
|
31
|
+
});
|
|
32
|
+
it('includes networkStatsUrl when the chain config has it', async () => {
|
|
33
|
+
const app = Fastify();
|
|
34
|
+
registerRoutes(app, mockCtx({
|
|
35
|
+
chainConfig: {
|
|
36
|
+
chainId: 'base-mainnet',
|
|
37
|
+
evmChainId: 8453,
|
|
38
|
+
networkStatsUrl: 'https://network.antseed.com',
|
|
39
|
+
},
|
|
40
|
+
}));
|
|
41
|
+
const res = await app.inject({ method: 'GET', url: '/api/config' });
|
|
42
|
+
expect(res.json().networkStatsUrl).toBe('https://network.antseed.com');
|
|
43
|
+
await app.close();
|
|
44
|
+
});
|
|
45
|
+
it('returns networkStatsUrl: null when the chain config has none', async () => {
|
|
46
|
+
const app = Fastify();
|
|
47
|
+
registerRoutes(app, mockCtx({
|
|
48
|
+
chainConfig: {
|
|
49
|
+
chainId: 'base-local',
|
|
50
|
+
evmChainId: 31337,
|
|
51
|
+
},
|
|
52
|
+
}));
|
|
53
|
+
const res = await app.inject({ method: 'GET', url: '/api/config' });
|
|
54
|
+
expect(res.json().networkStatsUrl).toBeNull();
|
|
55
|
+
await app.close();
|
|
56
|
+
});
|
|
57
|
+
});
|
|
58
|
+
describe('GET /api/emissions/pending', () => {
|
|
59
|
+
it('rejects malformed addresses with 400', async () => {
|
|
60
|
+
const app = Fastify();
|
|
61
|
+
registerRoutes(app, mockCtx());
|
|
62
|
+
const res = await app.inject({ method: 'GET', url: '/api/emissions/pending?address=not-an-address' });
|
|
63
|
+
expect(res.statusCode).toBe(400);
|
|
64
|
+
await app.close();
|
|
65
|
+
});
|
|
66
|
+
it('returns 503 when emissions contract is not configured', async () => {
|
|
67
|
+
const app = Fastify();
|
|
68
|
+
registerRoutes(app, mockCtx({
|
|
69
|
+
chainConfig: { chainId: 'base-local', evmChainId: 31337 },
|
|
70
|
+
}));
|
|
71
|
+
const res = await app.inject({ method: 'GET', url: '/api/emissions/pending?address=0x' + '4'.repeat(40) });
|
|
72
|
+
expect(res.statusCode).toBe(503);
|
|
73
|
+
await app.close();
|
|
74
|
+
});
|
|
75
|
+
});
|
|
76
|
+
describe('GET /api/emissions/transfers-enabled', () => {
|
|
77
|
+
it('returns configured:false when ANTS token address is missing', async () => {
|
|
78
|
+
const app = Fastify();
|
|
79
|
+
registerRoutes(app, mockCtx());
|
|
80
|
+
const res = await app.inject({ method: 'GET', url: '/api/emissions/transfers-enabled' });
|
|
81
|
+
expect(res.statusCode).toBe(200);
|
|
82
|
+
const body = res.json();
|
|
83
|
+
expect(body.enabled).toBe(false);
|
|
84
|
+
expect(body.configured).toBe(false);
|
|
85
|
+
await app.close();
|
|
86
|
+
});
|
|
87
|
+
});
|
|
88
|
+
//# sourceMappingURL=routes.emissions.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"routes.emissions.test.js","sourceRoot":"","sources":["../src/routes.emissions.test.ts"],"names":[],"mappings":"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"}
|
package/dist/routes.js
CHANGED
|
@@ -1,12 +1,42 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { DepositsClient, EmissionsClient, ANTSTokenClient, formatUsdc, parseUsdc, signSetOperator, makeDepositsDomain, } from '@antseed/node';
|
|
2
|
+
const EMPTY_BUYER_USAGE = {
|
|
3
|
+
totalRequests: 0,
|
|
4
|
+
totalInputTokens: '0',
|
|
5
|
+
totalOutputTokens: '0',
|
|
6
|
+
totalSettlements: 0,
|
|
7
|
+
uniqueSellers: 0,
|
|
8
|
+
activeChannels: 0,
|
|
9
|
+
channels: [],
|
|
10
|
+
};
|
|
2
11
|
// Use shared utilities from @antseed/node
|
|
3
12
|
const formatUsdc6 = formatUsdc;
|
|
4
13
|
const parseUsdc6 = parseUsdc;
|
|
5
|
-
|
|
14
|
+
// Retry helper for on-chain view calls. Base RPC occasionally returns an
|
|
15
|
+
// unparseable response (ethers surfaces it as CALL_EXCEPTION with null
|
|
16
|
+
// revert data even though the call didn't actually revert); view calls are
|
|
17
|
+
// idempotent, so retrying clears these transient failures.
|
|
18
|
+
async function retryRead(fn, attempts = 3) {
|
|
19
|
+
let lastErr;
|
|
20
|
+
for (let i = 0; i < attempts; i++) {
|
|
21
|
+
try {
|
|
22
|
+
return await fn();
|
|
23
|
+
}
|
|
24
|
+
catch (err) {
|
|
25
|
+
lastErr = err;
|
|
26
|
+
if (i < attempts - 1) {
|
|
27
|
+
await new Promise((resolve) => setTimeout(resolve, 150 * (i + 1)));
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
throw lastErr;
|
|
32
|
+
}
|
|
33
|
+
function createClient(config, evmChainId) {
|
|
6
34
|
return new DepositsClient({
|
|
7
35
|
rpcUrl: config.rpcUrl,
|
|
36
|
+
...(config.fallbackRpcUrls ? { fallbackRpcUrls: config.fallbackRpcUrls } : {}),
|
|
8
37
|
contractAddress: config.depositsContractAddress,
|
|
9
38
|
usdcAddress: config.usdcContractAddress,
|
|
39
|
+
evmChainId,
|
|
10
40
|
});
|
|
11
41
|
}
|
|
12
42
|
export function registerRoutes(fastify, ctx) {
|
|
@@ -14,28 +44,49 @@ export function registerRoutes(fastify, ctx) {
|
|
|
14
44
|
let depositsClient = null;
|
|
15
45
|
function getClient() {
|
|
16
46
|
if (!depositsClient)
|
|
17
|
-
depositsClient = createClient(ctx.cryptoConfig);
|
|
47
|
+
depositsClient = createClient(ctx.cryptoConfig, ctx.chainConfig.evmChainId);
|
|
18
48
|
return depositsClient;
|
|
19
49
|
}
|
|
20
|
-
let
|
|
21
|
-
function
|
|
22
|
-
if (!
|
|
23
|
-
|
|
50
|
+
let emissionsClient = null;
|
|
51
|
+
function getEmissionsClient() {
|
|
52
|
+
if (!ctx.chainConfig.emissionsContractAddress)
|
|
53
|
+
return null;
|
|
54
|
+
if (!emissionsClient) {
|
|
55
|
+
emissionsClient = new EmissionsClient({
|
|
24
56
|
rpcUrl: ctx.cryptoConfig.rpcUrl,
|
|
25
|
-
|
|
57
|
+
...(ctx.cryptoConfig.fallbackRpcUrls ? { fallbackRpcUrls: ctx.cryptoConfig.fallbackRpcUrls } : {}),
|
|
58
|
+
contractAddress: ctx.chainConfig.emissionsContractAddress,
|
|
59
|
+
evmChainId: ctx.chainConfig.evmChainId,
|
|
26
60
|
});
|
|
27
61
|
}
|
|
28
|
-
return
|
|
62
|
+
return emissionsClient;
|
|
63
|
+
}
|
|
64
|
+
let antsTokenClient = null;
|
|
65
|
+
function getAntsTokenClient() {
|
|
66
|
+
// ANTSToken address is typically fetched via the registry, but for v1 we
|
|
67
|
+
// plumb it through the chain config. Fall back to null if unavailable.
|
|
68
|
+
const addr = ctx.chainConfig.antsTokenAddress;
|
|
69
|
+
if (!addr)
|
|
70
|
+
return null;
|
|
71
|
+
if (!antsTokenClient) {
|
|
72
|
+
antsTokenClient = new ANTSTokenClient({
|
|
73
|
+
rpcUrl: ctx.cryptoConfig.rpcUrl,
|
|
74
|
+
contractAddress: addr,
|
|
75
|
+
evmChainId: ctx.chainConfig.evmChainId,
|
|
76
|
+
});
|
|
77
|
+
}
|
|
78
|
+
return antsTokenClient;
|
|
29
79
|
}
|
|
30
80
|
fastify.get('/api/balance', async (_request, reply) => {
|
|
31
81
|
if (!ctx.cryptoCtx) {
|
|
32
|
-
return reply.status(503).send({ ok: false, error: 'Identity not configured — run antseed
|
|
82
|
+
return reply.status(503).send({ ok: false, error: 'Identity not configured — set ANTSEED_IDENTITY_HEX or run antseed seller setup' });
|
|
33
83
|
}
|
|
34
84
|
try {
|
|
35
85
|
const client = getClient();
|
|
86
|
+
const buyerAddress = ctx.cryptoCtx.evmAddress;
|
|
36
87
|
const [balance, creditLimit] = await Promise.all([
|
|
37
|
-
client.getBuyerBalance(
|
|
38
|
-
client.getBuyerCreditLimit(
|
|
88
|
+
retryRead(() => client.getBuyerBalance(buyerAddress)),
|
|
89
|
+
retryRead(() => client.getBuyerCreditLimit(buyerAddress)),
|
|
39
90
|
]);
|
|
40
91
|
return {
|
|
41
92
|
evmAddress: ctx.cryptoCtx.evmAddress,
|
|
@@ -57,6 +108,9 @@ export function registerRoutes(fastify, ctx) {
|
|
|
57
108
|
depositsContractAddress: ctx.cryptoConfig.depositsContractAddress,
|
|
58
109
|
channelsContractAddress: ctx.cryptoConfig.channelsContractAddress,
|
|
59
110
|
usdcContractAddress: ctx.cryptoConfig.usdcContractAddress,
|
|
111
|
+
emissionsContractAddress: ctx.chainConfig.emissionsContractAddress ?? null,
|
|
112
|
+
antsTokenAddress: ctx.chainConfig.antsTokenAddress ?? null,
|
|
113
|
+
networkStatsUrl: ctx.chainConfig.networkStatsUrl ?? null,
|
|
60
114
|
evmAddress: ctx.cryptoCtx?.evmAddress ?? null,
|
|
61
115
|
};
|
|
62
116
|
});
|
|
@@ -66,7 +120,7 @@ export function registerRoutes(fastify, ctx) {
|
|
|
66
120
|
});
|
|
67
121
|
fastify.post('/api/withdraw', async (request, reply) => {
|
|
68
122
|
if (!ctx.cryptoCtx) {
|
|
69
|
-
return reply.status(503).send({ ok: false, error: 'Identity not configured — run antseed
|
|
123
|
+
return reply.status(503).send({ ok: false, error: 'Identity not configured — set ANTSEED_IDENTITY_HEX or run antseed seller setup' });
|
|
70
124
|
}
|
|
71
125
|
const body = request.body;
|
|
72
126
|
const amount = body?.amount;
|
|
@@ -83,91 +137,43 @@ export function registerRoutes(fastify, ctx) {
|
|
|
83
137
|
return reply.status(500).send({ ok: false, error: err instanceof Error ? err.message : String(err) });
|
|
84
138
|
}
|
|
85
139
|
});
|
|
86
|
-
fastify.get('/api/channels', async (
|
|
87
|
-
if (!ctx.cryptoCtx)
|
|
88
|
-
return { channels: []
|
|
89
|
-
}
|
|
90
|
-
// Fetch channels from the buyer proxy's local ChannelStore via its
|
|
91
|
-
// control-plane endpoint (source of truth for the list). Avoids
|
|
92
|
-
// eth_getLogs scans which are capped on public RPCs. Then enrich each
|
|
93
|
-
// channel with a point-read against channels(bytes32) to get the
|
|
94
|
-
// authoritative on-chain status + closeRequestedAt, and split into
|
|
95
|
-
// active vs history based on on-chain state.
|
|
140
|
+
fastify.get('/api/channels', async () => {
|
|
141
|
+
if (!ctx.cryptoCtx)
|
|
142
|
+
return { channels: [] };
|
|
96
143
|
try {
|
|
97
144
|
const url = `http://127.0.0.1:${ctx.proxyPort}/_antseed/channels?all=1`;
|
|
98
145
|
const resp = await fetch(url);
|
|
99
146
|
if (!resp.ok) {
|
|
100
147
|
fastify.log.warn(`[/api/channels] buyer proxy returned ${resp.status}`);
|
|
101
|
-
return { channels: []
|
|
148
|
+
return { channels: [] };
|
|
102
149
|
}
|
|
103
150
|
const body = await resp.json();
|
|
104
|
-
|
|
105
|
-
// init failures independently — a bad RPC URL must not discard the
|
|
106
|
-
// channel list we already have from the buyer proxy.
|
|
107
|
-
let cc = null;
|
|
108
|
-
try {
|
|
109
|
-
cc = getChannelsClient();
|
|
110
|
-
}
|
|
111
|
-
catch (err) {
|
|
112
|
-
fastify.log.warn(`[/api/channels] channels client init failed: ${err instanceof Error ? err.message : String(err)}`);
|
|
113
|
-
}
|
|
114
|
-
const rawChannels = body.channels ?? [];
|
|
115
|
-
// Cap concurrent eth_call fan-out. Public RPCs rate-limit concurrent
|
|
116
|
-
// reads — the default wagmi primary (publicnode) was picked for 3/3
|
|
117
|
-
// reliability at 3 concurrent eth_calls; more than that and responses
|
|
118
|
-
// start coming back stale, which would resurrect the exact bug this
|
|
119
|
-
// PR fixes (status=1 / closeRequestedAt=0 placeholders).
|
|
120
|
-
const ON_CHAIN_READ_CONCURRENCY = 3;
|
|
121
|
-
const enriched = new Array(rawChannels.length);
|
|
122
|
-
let cursor = 0;
|
|
123
|
-
async function worker() {
|
|
124
|
-
while (true) {
|
|
125
|
-
const i = cursor++;
|
|
126
|
-
if (i >= rawChannels.length)
|
|
127
|
-
return;
|
|
128
|
-
const c = rawChannels[i];
|
|
129
|
-
let closeRequestedAt = 0;
|
|
130
|
-
let onchainStatus = 0; // 0=None, 1=Active, 2=Settled, 3=TimedOut
|
|
131
|
-
let onchainSettled = null;
|
|
132
|
-
if (cc) {
|
|
133
|
-
try {
|
|
134
|
-
const onchain = await cc.getSession(c.channelId);
|
|
135
|
-
closeRequestedAt = Number(onchain.closeRequestedAt);
|
|
136
|
-
onchainStatus = onchain.status;
|
|
137
|
-
onchainSettled = onchain.settled;
|
|
138
|
-
}
|
|
139
|
-
catch (err) {
|
|
140
|
-
fastify.log.warn(`[/api/channels] on-chain read failed for ${c.channelId.slice(0, 10)}: ${err instanceof Error ? err.message : String(err)}`);
|
|
141
|
-
}
|
|
142
|
-
}
|
|
143
|
-
enriched[i] = {
|
|
144
|
-
channelId: c.channelId,
|
|
145
|
-
seller: c.seller,
|
|
146
|
-
deposit: formatUsdc6(BigInt(c.reserveMax)),
|
|
147
|
-
settled: formatUsdc6(onchainSettled ?? BigInt(c.cumulativeSigned)),
|
|
148
|
-
deadline: c.deadline,
|
|
149
|
-
closeRequestedAt,
|
|
150
|
-
status: onchainStatus,
|
|
151
|
-
};
|
|
152
|
-
}
|
|
153
|
-
}
|
|
154
|
-
const workers = Array.from({ length: Math.min(ON_CHAIN_READ_CONCURRENCY, rawChannels.length) }, () => worker());
|
|
155
|
-
await Promise.all(workers);
|
|
156
|
-
// Active = on-chain status Active (1). Everything else is history
|
|
157
|
-
// (Settled=2, TimedOut=3, None=0 means the channel no longer exists
|
|
158
|
-
// on-chain — e.g., withdrawn and cleared).
|
|
159
|
-
const channels = enriched.filter((c) => c.status === 1);
|
|
160
|
-
const history = enriched.filter((c) => c.status !== 1);
|
|
161
|
-
return { channels, history };
|
|
151
|
+
return { channels: body.channels ?? [] };
|
|
162
152
|
}
|
|
163
153
|
catch (err) {
|
|
164
154
|
fastify.log.warn(`[/api/channels] buyer proxy unreachable: ${err instanceof Error ? err.message : String(err)}`);
|
|
165
|
-
return { channels: []
|
|
155
|
+
return { channels: [] };
|
|
156
|
+
}
|
|
157
|
+
});
|
|
158
|
+
fastify.get('/api/buyer-usage', async () => {
|
|
159
|
+
try {
|
|
160
|
+
const url = `http://127.0.0.1:${ctx.proxyPort}/_antseed/buyer-usage`;
|
|
161
|
+
const resp = await fetch(url);
|
|
162
|
+
if (!resp.ok) {
|
|
163
|
+
fastify.log.warn(`[/api/buyer-usage] buyer proxy returned ${resp.status}`);
|
|
164
|
+
return EMPTY_BUYER_USAGE;
|
|
165
|
+
}
|
|
166
|
+
const body = await resp.json();
|
|
167
|
+
return body.totals;
|
|
168
|
+
}
|
|
169
|
+
catch (err) {
|
|
170
|
+
fastify.log.warn(`[/api/buyer-usage] buyer proxy unreachable: ${err instanceof Error ? err.message : String(err)}`);
|
|
171
|
+
return EMPTY_BUYER_USAGE;
|
|
166
172
|
}
|
|
167
173
|
});
|
|
168
174
|
fastify.get('/api/operator', async (_request, reply) => {
|
|
169
175
|
if (!ctx.cryptoCtx) {
|
|
170
|
-
return reply.status(503).send({ ok: false, error: 'Identity not configured — run antseed
|
|
176
|
+
return reply.status(503).send({ ok: false, error: 'Identity not configured — set ANTSEED_IDENTITY_HEX or run antseed seller setup' });
|
|
171
177
|
}
|
|
172
178
|
try {
|
|
173
179
|
const client = getClient();
|
|
@@ -176,8 +182,8 @@ export function registerRoutes(fastify, ctx) {
|
|
|
176
182
|
}
|
|
177
183
|
const buyerAddress = ctx.cryptoCtx.evmAddress;
|
|
178
184
|
const [operator, nonce] = await Promise.all([
|
|
179
|
-
client.getOperator(buyerAddress),
|
|
180
|
-
client.getOperatorNonce(buyerAddress),
|
|
185
|
+
retryRead(() => client.getOperator(buyerAddress)),
|
|
186
|
+
retryRead(() => client.getOperatorNonce(buyerAddress)),
|
|
181
187
|
]);
|
|
182
188
|
return { operator, nonce: Number(nonce) };
|
|
183
189
|
}
|
|
@@ -211,5 +217,106 @@ export function registerRoutes(fastify, ctx) {
|
|
|
211
217
|
return reply.status(500).send({ ok: false, error: err instanceof Error ? err.message : String(err) });
|
|
212
218
|
}
|
|
213
219
|
});
|
|
220
|
+
fastify.get('/api/emissions', async (_request, reply) => {
|
|
221
|
+
const client = getEmissionsClient();
|
|
222
|
+
if (!client) {
|
|
223
|
+
return reply.status(503).send({ ok: false, error: 'Emissions contract not configured for this chain' });
|
|
224
|
+
}
|
|
225
|
+
try {
|
|
226
|
+
const [info, genesis, halving] = await Promise.all([
|
|
227
|
+
retryRead(() => client.getEpochInfo()),
|
|
228
|
+
retryRead(() => client.getGenesis()),
|
|
229
|
+
retryRead(() => client.getHalvingInterval()),
|
|
230
|
+
]);
|
|
231
|
+
const emission = await retryRead(() => client.getEpochEmission(info.epoch));
|
|
232
|
+
return {
|
|
233
|
+
currentEpoch: info.epoch,
|
|
234
|
+
epochDuration: info.epochDuration,
|
|
235
|
+
currentRate: info.emission.toString(),
|
|
236
|
+
epochEmission: emission.toString(),
|
|
237
|
+
genesis,
|
|
238
|
+
halvingInterval: halving,
|
|
239
|
+
};
|
|
240
|
+
}
|
|
241
|
+
catch (err) {
|
|
242
|
+
return reply.status(500).send({ ok: false, error: err instanceof Error ? err.message : String(err) });
|
|
243
|
+
}
|
|
244
|
+
});
|
|
245
|
+
fastify.get('/api/emissions/pending', async (request, reply) => {
|
|
246
|
+
const client = getEmissionsClient();
|
|
247
|
+
if (!client) {
|
|
248
|
+
return reply.status(503).send({ ok: false, error: 'Emissions contract not configured for this chain' });
|
|
249
|
+
}
|
|
250
|
+
const query = request.query;
|
|
251
|
+
const address = query?.address;
|
|
252
|
+
if (!address || !/^0x[0-9a-fA-F]{40}$/.test(address)) {
|
|
253
|
+
return reply.status(400).send({ ok: false, error: 'Invalid address' });
|
|
254
|
+
}
|
|
255
|
+
const scanN = Math.min(Math.max(parseInt(query?.epochs ?? '10', 10) || 10, 1), 104);
|
|
256
|
+
try {
|
|
257
|
+
const info = await retryRead(() => client.getEpochInfo());
|
|
258
|
+
const current = info.epoch;
|
|
259
|
+
const startEpoch = Math.max(0, current - (scanN - 1));
|
|
260
|
+
const epochList = Array.from({ length: current - startEpoch + 1 }, (_, i) => startEpoch + i);
|
|
261
|
+
const rows = await Promise.all(epochList.map(async (epoch) => {
|
|
262
|
+
const [pending, userSP, userBP, sellerClaimed, buyerClaimed, totalSP, totalBP] = await Promise.all([
|
|
263
|
+
retryRead(() => client.pendingEmissions(address, [epoch])),
|
|
264
|
+
retryRead(() => client.userSellerPoints(address, epoch)),
|
|
265
|
+
retryRead(() => client.userBuyerPoints(address, epoch)),
|
|
266
|
+
retryRead(() => client.sellerEpochClaimed(address, epoch)),
|
|
267
|
+
retryRead(() => client.buyerEpochClaimed(address, epoch)),
|
|
268
|
+
retryRead(() => client.epochTotalSellerPoints(epoch)),
|
|
269
|
+
retryRead(() => client.epochTotalBuyerPoints(epoch)),
|
|
270
|
+
]);
|
|
271
|
+
return {
|
|
272
|
+
epoch,
|
|
273
|
+
seller: {
|
|
274
|
+
amount: pending.seller.toString(),
|
|
275
|
+
userPoints: userSP.toString(),
|
|
276
|
+
totalPoints: totalSP.toString(),
|
|
277
|
+
claimed: sellerClaimed,
|
|
278
|
+
},
|
|
279
|
+
buyer: {
|
|
280
|
+
amount: pending.buyer.toString(),
|
|
281
|
+
userPoints: userBP.toString(),
|
|
282
|
+
totalPoints: totalBP.toString(),
|
|
283
|
+
claimed: buyerClaimed,
|
|
284
|
+
},
|
|
285
|
+
isCurrent: epoch === current,
|
|
286
|
+
};
|
|
287
|
+
}));
|
|
288
|
+
return { currentEpoch: current, rows };
|
|
289
|
+
}
|
|
290
|
+
catch (err) {
|
|
291
|
+
return reply.status(500).send({ ok: false, error: err instanceof Error ? err.message : String(err) });
|
|
292
|
+
}
|
|
293
|
+
});
|
|
294
|
+
fastify.get('/api/emissions/shares', async (_request, reply) => {
|
|
295
|
+
const client = getEmissionsClient();
|
|
296
|
+
if (!client) {
|
|
297
|
+
return reply.status(503).send({ ok: false, error: 'Emissions contract not configured for this chain' });
|
|
298
|
+
}
|
|
299
|
+
try {
|
|
300
|
+
return await retryRead(() => client.getShares());
|
|
301
|
+
}
|
|
302
|
+
catch (err) {
|
|
303
|
+
return reply.status(500).send({ ok: false, error: err instanceof Error ? err.message : String(err) });
|
|
304
|
+
}
|
|
305
|
+
});
|
|
306
|
+
fastify.get('/api/emissions/transfers-enabled', async (_request, reply) => {
|
|
307
|
+
const client = getAntsTokenClient();
|
|
308
|
+
if (!client) {
|
|
309
|
+
// When the ANTS token address isn't configured, treat as "not enabled yet"
|
|
310
|
+
// — the UI uses this to decide whether to show the locked banner.
|
|
311
|
+
return { enabled: false, configured: false };
|
|
312
|
+
}
|
|
313
|
+
try {
|
|
314
|
+
const enabled = await client.transfersEnabled();
|
|
315
|
+
return { enabled, configured: true };
|
|
316
|
+
}
|
|
317
|
+
catch (err) {
|
|
318
|
+
return reply.status(500).send({ ok: false, error: err instanceof Error ? err.message : String(err) });
|
|
319
|
+
}
|
|
320
|
+
});
|
|
214
321
|
}
|
|
215
322
|
//# sourceMappingURL=routes.js.map
|
package/dist/routes.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"routes.js","sourceRoot":"","sources":["../src/routes.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"routes.js","sourceRoot":"","sources":["../src/routes.ts"],"names":[],"mappings":"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"}
|
package/dist/server.d.ts
CHANGED
|
@@ -3,5 +3,12 @@ export interface PaymentsServerOptions {
|
|
|
3
3
|
port: number;
|
|
4
4
|
dataDir?: string;
|
|
5
5
|
identityHex?: string;
|
|
6
|
+
/**
|
|
7
|
+
* Fallback RPC URL used when the user has not set `payments.crypto.rpcUrl`
|
|
8
|
+
* in config.json. Lets the host app (e.g. desktop) override the protocol
|
|
9
|
+
* default (`mainnet.base.org`) with a more reliable endpoint, matching the
|
|
10
|
+
* RPC the rest of the app is already using for on-chain reads.
|
|
11
|
+
*/
|
|
12
|
+
defaultRpcUrl?: string;
|
|
6
13
|
}
|
|
7
14
|
export declare function createServer(options: PaymentsServerOptions): Promise<Fastify.FastifyInstance<import("http").Server<typeof import("http").IncomingMessage, typeof import("http").ServerResponse>, import("http").IncomingMessage, import("http").ServerResponse<import("http").IncomingMessage>, Fastify.FastifyBaseLogger, Fastify.FastifyTypeProviderDefault>>;
|
package/dist/server.js
CHANGED
|
@@ -73,15 +73,27 @@ export async function createServer(options) {
|
|
|
73
73
|
catch {
|
|
74
74
|
// No config file — use protocol defaults
|
|
75
75
|
}
|
|
76
|
+
const userRpcUrl = typeof userOverrides.rpcUrl === 'string' && userOverrides.rpcUrl.trim().length > 0
|
|
77
|
+
? userOverrides.rpcUrl
|
|
78
|
+
: undefined;
|
|
79
|
+
const selectedChainId = userOverrides.chainId ?? 'base-mainnet';
|
|
80
|
+
// Only fall back to the host's preferred RPC for base-mainnet — the only
|
|
81
|
+
// chain whose protocol default (mainnet.base.org) rate-limits the channels
|
|
82
|
+
// enrichment fan-out. Other chains keep their own presets.
|
|
83
|
+
const effectiveRpcUrl = userRpcUrl ?? (selectedChainId === 'base-mainnet' ? options.defaultRpcUrl : undefined);
|
|
76
84
|
const chainConfig = resolveChainConfig({
|
|
77
85
|
chainId: userOverrides.chainId,
|
|
78
|
-
rpcUrl:
|
|
86
|
+
...(effectiveRpcUrl ? { rpcUrl: effectiveRpcUrl } : {}),
|
|
87
|
+
...(Array.isArray(userOverrides.fallbackRpcUrls)
|
|
88
|
+
? { fallbackRpcUrls: userOverrides.fallbackRpcUrls }
|
|
89
|
+
: {}),
|
|
79
90
|
depositsContractAddress: userOverrides.depositsContractAddress,
|
|
80
91
|
channelsContractAddress: userOverrides.channelsContractAddress,
|
|
81
92
|
usdcContractAddress: userOverrides.usdcContractAddress,
|
|
82
93
|
});
|
|
83
94
|
const cryptoConfig = {
|
|
84
95
|
rpcUrl: chainConfig.rpcUrl,
|
|
96
|
+
...(chainConfig.fallbackRpcUrls ? { fallbackRpcUrls: chainConfig.fallbackRpcUrls } : {}),
|
|
85
97
|
depositsContractAddress: chainConfig.depositsContractAddress,
|
|
86
98
|
channelsContractAddress: chainConfig.channelsContractAddress,
|
|
87
99
|
usdcContractAddress: chainConfig.usdcContractAddress,
|
package/dist/server.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,OAAO,MAAM,SAAS,CAAC;AAC9B,OAAO,WAAW,MAAM,eAAe,CAAC;AACxC,OAAO,aAAa,MAAM,iBAAiB,CAAC;AAC5C,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,iBAAiB,EAAgD,MAAM,qBAAqB,CAAC;AAEtG,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{w as o}from"./core-
|
|
1
|
+
import{w as o}from"./core-BokkgsR-.js";import"./index-jSclbA_D.js";import"./index.es-J3dlIVGI.js";import"./events-DQ172AOg.js";const e=o`<svg
|
|
2
2
|
width="14"
|
|
3
3
|
height="14"
|
|
4
4
|
viewBox="0 0 14 14"
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{w as o}from"./core-
|
|
1
|
+
import{w as o}from"./core-BokkgsR-.js";import"./index-jSclbA_D.js";import"./index.es-J3dlIVGI.js";import"./events-DQ172AOg.js";const r=o`<svg fill="none" viewBox="0 0 24 24">
|
|
2
2
|
<path
|
|
3
3
|
style="fill: var(--wui-color-accent-100);"
|
|
4
4
|
d="M10.2 6.6a3.6 3.6 0 1 1-7.2 0 3.6 3.6 0 0 1 7.2 0ZM21 6.6a3.6 3.6 0 1 1-7.2 0 3.6 3.6 0 0 1 7.2 0ZM10.2 17.4a3.6 3.6 0 1 1-7.2 0 3.6 3.6 0 0 1 7.2 0ZM21 17.4a3.6 3.6 0 1 1-7.2 0 3.6 3.6 0 0 1 7.2 0Z"
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{w as t}from"./core-
|
|
1
|
+
import{w as t}from"./core-BokkgsR-.js";import"./index-jSclbA_D.js";import"./index.es-J3dlIVGI.js";import"./events-DQ172AOg.js";const e=t`
|
|
2
2
|
<svg width="36" height="36">
|
|
3
3
|
<path
|
|
4
4
|
d="M28.724 0H7.271A7.269 7.269 0 0 0 0 7.272v21.46A7.268 7.268 0 0 0 7.271 36H28.73A7.272 7.272 0 0 0 36 28.728V7.272A7.275 7.275 0 0 0 28.724 0Z"
|