@catalyst-team/poly-sdk 0.3.0 → 0.4.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/README.md +125 -0
- package/dist/clients/ctf-client.d.ts +6 -4
- package/dist/clients/ctf-client.d.ts.map +1 -1
- package/dist/clients/ctf-client.js.map +1 -1
- package/dist/clients/data-api.d.ts +19 -6
- package/dist/clients/data-api.d.ts.map +1 -1
- package/dist/clients/data-api.js +79 -34
- package/dist/clients/data-api.js.map +1 -1
- package/dist/clients/gamma-api.d.ts +5 -0
- package/dist/clients/gamma-api.d.ts.map +1 -1
- package/dist/clients/gamma-api.js +2 -0
- package/dist/clients/gamma-api.js.map +1 -1
- package/dist/core/cache.d.ts +2 -0
- package/dist/core/cache.d.ts.map +1 -1
- package/dist/core/cache.js +4 -0
- package/dist/core/cache.js.map +1 -1
- package/dist/core/rate-limiter.d.ts +2 -1
- package/dist/core/rate-limiter.d.ts.map +1 -1
- package/dist/core/rate-limiter.js +7 -0
- package/dist/core/rate-limiter.js.map +1 -1
- package/dist/core/types.d.ts +105 -1
- package/dist/core/types.d.ts.map +1 -1
- package/dist/core/types.js +30 -0
- package/dist/core/types.js.map +1 -1
- package/dist/index.d.ts +11 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +16 -2
- package/dist/index.js.map +1 -1
- package/dist/scripts/dip-arb/auto-trade.d.ts +20 -0
- package/dist/scripts/dip-arb/auto-trade.d.ts.map +1 -0
- package/dist/scripts/dip-arb/auto-trade.js +373 -0
- package/dist/scripts/dip-arb/auto-trade.js.map +1 -0
- package/dist/scripts/dip-arb/example-basic.d.ts +30 -0
- package/dist/scripts/dip-arb/example-basic.d.ts.map +1 -0
- package/dist/scripts/dip-arb/example-basic.js +222 -0
- package/dist/scripts/dip-arb/example-basic.js.map +1 -0
- package/dist/scripts/dip-arb/redeem-positions.d.ts +11 -0
- package/dist/scripts/dip-arb/redeem-positions.d.ts.map +1 -0
- package/dist/scripts/dip-arb/redeem-positions.js +201 -0
- package/dist/scripts/dip-arb/redeem-positions.js.map +1 -0
- package/dist/scripts/dip-arb/scan-markets.d.ts +6 -0
- package/dist/scripts/dip-arb/scan-markets.d.ts.map +1 -0
- package/dist/scripts/dip-arb/scan-markets.js +73 -0
- package/dist/scripts/dip-arb/scan-markets.js.map +1 -0
- package/dist/services/arbitrage-service.d.ts.map +1 -1
- package/dist/services/arbitrage-service.js +14 -4
- package/dist/services/arbitrage-service.js.map +1 -1
- package/dist/services/binance-service.d.ts +154 -0
- package/dist/services/binance-service.d.ts.map +1 -0
- package/dist/services/binance-service.js +266 -0
- package/dist/services/binance-service.js.map +1 -0
- package/dist/services/dip-arb-service.d.ts +209 -0
- package/dist/services/dip-arb-service.d.ts.map +1 -0
- package/dist/services/dip-arb-service.js +1602 -0
- package/dist/services/dip-arb-service.js.map +1 -0
- package/dist/services/dip-arb-types.d.ts +553 -0
- package/dist/services/dip-arb-types.d.ts.map +1 -0
- package/dist/services/dip-arb-types.js +164 -0
- package/dist/services/dip-arb-types.js.map +1 -0
- package/dist/services/market-service.d.ts +162 -3
- package/dist/services/market-service.d.ts.map +1 -1
- package/dist/services/market-service.js +427 -14
- package/dist/services/market-service.js.map +1 -1
- package/dist/services/realtime-service-v2.d.ts +1 -0
- package/dist/services/realtime-service-v2.d.ts.map +1 -1
- package/dist/services/realtime-service-v2.js +20 -2
- package/dist/services/realtime-service-v2.js.map +1 -1
- package/dist/services/smart-money-service.d.ts +157 -1
- package/dist/services/smart-money-service.d.ts.map +1 -1
- package/dist/services/smart-money-service.js +224 -0
- package/dist/services/smart-money-service.js.map +1 -1
- package/dist/services/trading-service.d.ts +21 -0
- package/dist/services/trading-service.d.ts.map +1 -1
- package/dist/services/trading-service.js +67 -1
- package/dist/services/trading-service.js.map +1 -1
- package/dist/services/wallet-service.d.ts +43 -2
- package/dist/services/wallet-service.d.ts.map +1 -1
- package/dist/services/wallet-service.js +54 -3
- package/dist/services/wallet-service.js.map +1 -1
- package/dist/src/__tests__/integration/arbitrage-service.integration.test.d.ts +12 -0
- package/dist/src/__tests__/integration/arbitrage-service.integration.test.d.ts.map +1 -0
- package/dist/src/__tests__/integration/arbitrage-service.integration.test.js +267 -0
- package/dist/src/__tests__/integration/arbitrage-service.integration.test.js.map +1 -0
- package/dist/src/__tests__/integration/bridge-client.integration.test.d.ts +11 -0
- package/dist/src/__tests__/integration/bridge-client.integration.test.d.ts.map +1 -0
- package/dist/src/__tests__/integration/bridge-client.integration.test.js +260 -0
- package/dist/src/__tests__/integration/bridge-client.integration.test.js.map +1 -0
- package/dist/src/__tests__/integration/ctf-client.integration.test.d.ts +17 -0
- package/dist/src/__tests__/integration/ctf-client.integration.test.d.ts.map +1 -0
- package/dist/src/__tests__/integration/ctf-client.integration.test.js +234 -0
- package/dist/src/__tests__/integration/ctf-client.integration.test.js.map +1 -0
- package/dist/src/__tests__/integration/data-api.integration.test.d.ts +9 -0
- package/dist/src/__tests__/integration/data-api.integration.test.d.ts.map +1 -0
- package/dist/src/__tests__/integration/data-api.integration.test.js +164 -0
- package/dist/src/__tests__/integration/data-api.integration.test.js.map +1 -0
- package/dist/src/__tests__/integration/gamma-api.integration.test.d.ts +9 -0
- package/dist/src/__tests__/integration/gamma-api.integration.test.d.ts.map +1 -0
- package/dist/src/__tests__/integration/gamma-api.integration.test.js +170 -0
- package/dist/src/__tests__/integration/gamma-api.integration.test.js.map +1 -0
- package/dist/src/__tests__/integration/market-service.integration.test.d.ts +10 -0
- package/dist/src/__tests__/integration/market-service.integration.test.d.ts.map +1 -0
- package/dist/src/__tests__/integration/market-service.integration.test.js +180 -0
- package/dist/src/__tests__/integration/market-service.integration.test.js.map +1 -0
- package/dist/src/__tests__/integration/realtime-service-v2.integration.test.d.ts +10 -0
- package/dist/src/__tests__/integration/realtime-service-v2.integration.test.d.ts.map +1 -0
- package/dist/src/__tests__/integration/realtime-service-v2.integration.test.js +307 -0
- package/dist/src/__tests__/integration/realtime-service-v2.integration.test.js.map +1 -0
- package/dist/src/__tests__/integration/trading-service.integration.test.d.ts +10 -0
- package/dist/src/__tests__/integration/trading-service.integration.test.d.ts.map +1 -0
- package/dist/src/__tests__/integration/trading-service.integration.test.js +58 -0
- package/dist/src/__tests__/integration/trading-service.integration.test.js.map +1 -0
- package/dist/src/__tests__/test-utils.d.ts +92 -0
- package/dist/src/__tests__/test-utils.d.ts.map +1 -0
- package/dist/src/__tests__/test-utils.js +143 -0
- package/dist/src/__tests__/test-utils.js.map +1 -0
- package/dist/src/clients/bridge-client.d.ts +388 -0
- package/dist/src/clients/bridge-client.d.ts.map +1 -0
- package/dist/src/clients/bridge-client.js +587 -0
- package/dist/src/clients/bridge-client.js.map +1 -0
- package/dist/src/clients/ctf-client.d.ts +475 -0
- package/dist/src/clients/ctf-client.d.ts.map +1 -0
- package/dist/src/clients/ctf-client.js +915 -0
- package/dist/src/clients/ctf-client.js.map +1 -0
- package/dist/src/clients/data-api.d.ts +452 -0
- package/dist/src/clients/data-api.d.ts.map +1 -0
- package/dist/src/clients/data-api.js +637 -0
- package/dist/src/clients/data-api.js.map +1 -0
- package/dist/src/clients/gamma-api.d.ts +421 -0
- package/dist/src/clients/gamma-api.d.ts.map +1 -0
- package/dist/src/clients/gamma-api.js +359 -0
- package/dist/src/clients/gamma-api.js.map +1 -0
- package/dist/src/clients/subgraph.d.ts +196 -0
- package/dist/src/clients/subgraph.d.ts.map +1 -0
- package/dist/src/clients/subgraph.js +332 -0
- package/dist/src/clients/subgraph.js.map +1 -0
- package/dist/src/core/cache-adapter-bridge.d.ts +36 -0
- package/dist/src/core/cache-adapter-bridge.d.ts.map +1 -0
- package/dist/src/core/cache-adapter-bridge.js +81 -0
- package/dist/src/core/cache-adapter-bridge.js.map +1 -0
- package/dist/src/core/cache.d.ts +43 -0
- package/dist/src/core/cache.d.ts.map +1 -0
- package/dist/src/core/cache.js +76 -0
- package/dist/src/core/cache.js.map +1 -0
- package/dist/src/core/errors.d.ts +39 -0
- package/dist/src/core/errors.d.ts.map +1 -0
- package/dist/src/core/errors.js +86 -0
- package/dist/src/core/errors.js.map +1 -0
- package/dist/src/core/rate-limiter.d.ts +33 -0
- package/dist/src/core/rate-limiter.d.ts.map +1 -0
- package/dist/src/core/rate-limiter.js +82 -0
- package/dist/src/core/rate-limiter.js.map +1 -0
- package/dist/src/core/types.d.ts +506 -0
- package/dist/src/core/types.d.ts.map +1 -0
- package/dist/src/core/types.js +49 -0
- package/dist/src/core/types.js.map +1 -0
- package/dist/src/core/types.test.d.ts +7 -0
- package/dist/src/core/types.test.d.ts.map +1 -0
- package/dist/src/core/types.test.js +122 -0
- package/dist/src/core/types.test.js.map +1 -0
- package/dist/src/core/unified-cache.d.ts +63 -0
- package/dist/src/core/unified-cache.d.ts.map +1 -0
- package/dist/src/core/unified-cache.js +114 -0
- package/dist/src/core/unified-cache.js.map +1 -0
- package/dist/src/index.d.ts +159 -0
- package/dist/src/index.d.ts.map +1 -0
- package/dist/src/index.js +262 -0
- package/dist/src/index.js.map +1 -0
- package/dist/src/services/arbitrage-service.d.ts +409 -0
- package/dist/src/services/arbitrage-service.d.ts.map +1 -0
- package/dist/src/services/arbitrage-service.js +1450 -0
- package/dist/src/services/arbitrage-service.js.map +1 -0
- package/dist/src/services/authorization-service.d.ts +97 -0
- package/dist/src/services/authorization-service.d.ts.map +1 -0
- package/dist/src/services/authorization-service.js +279 -0
- package/dist/src/services/authorization-service.js.map +1 -0
- package/dist/src/services/binance-service.d.ts +154 -0
- package/dist/src/services/binance-service.d.ts.map +1 -0
- package/dist/src/services/binance-service.js +266 -0
- package/dist/src/services/binance-service.js.map +1 -0
- package/dist/src/services/dip-arb-service.d.ts +245 -0
- package/dist/src/services/dip-arb-service.d.ts.map +1 -0
- package/dist/src/services/dip-arb-service.js +1865 -0
- package/dist/src/services/dip-arb-service.js.map +1 -0
- package/dist/src/services/dip-arb-types.d.ts +553 -0
- package/dist/src/services/dip-arb-types.d.ts.map +1 -0
- package/dist/src/services/dip-arb-types.js +164 -0
- package/dist/src/services/dip-arb-types.js.map +1 -0
- package/dist/src/services/market-service.d.ts +370 -0
- package/dist/src/services/market-service.d.ts.map +1 -0
- package/dist/src/services/market-service.js +1200 -0
- package/dist/src/services/market-service.js.map +1 -0
- package/dist/src/services/onchain-service.d.ts +309 -0
- package/dist/src/services/onchain-service.d.ts.map +1 -0
- package/dist/src/services/onchain-service.js +417 -0
- package/dist/src/services/onchain-service.js.map +1 -0
- package/dist/src/services/realtime-service-v2.d.ts +367 -0
- package/dist/src/services/realtime-service-v2.d.ts.map +1 -0
- package/dist/src/services/realtime-service-v2.js +876 -0
- package/dist/src/services/realtime-service-v2.js.map +1 -0
- package/dist/src/services/smart-money-service.d.ts +352 -0
- package/dist/src/services/smart-money-service.d.ts.map +1 -0
- package/dist/src/services/smart-money-service.js +582 -0
- package/dist/src/services/smart-money-service.js.map +1 -0
- package/dist/src/services/swap-service.d.ts +217 -0
- package/dist/src/services/swap-service.d.ts.map +1 -0
- package/dist/src/services/swap-service.js +695 -0
- package/dist/src/services/swap-service.js.map +1 -0
- package/dist/src/services/trading-service.d.ts +177 -0
- package/dist/src/services/trading-service.d.ts.map +1 -0
- package/dist/src/services/trading-service.js +422 -0
- package/dist/src/services/trading-service.js.map +1 -0
- package/dist/src/services/wallet-service.d.ts +316 -0
- package/dist/src/services/wallet-service.d.ts.map +1 -0
- package/dist/src/services/wallet-service.js +681 -0
- package/dist/src/services/wallet-service.js.map +1 -0
- package/dist/src/utils/price-utils.d.ts +153 -0
- package/dist/src/utils/price-utils.d.ts.map +1 -0
- package/dist/src/utils/price-utils.js +236 -0
- package/dist/src/utils/price-utils.js.map +1 -0
- package/dist/src/utils/price-utils.test.d.ts +5 -0
- package/dist/src/utils/price-utils.test.d.ts.map +1 -0
- package/dist/src/utils/price-utils.test.js +192 -0
- package/dist/src/utils/price-utils.test.js.map +1 -0
- package/package.json +3 -3
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"binance-service.js","sourceRoot":"","sources":["../../src/services/binance-service.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAe,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAE/D,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AA4D/D,+EAA+E;AAC/E,YAAY;AACZ,+EAA+E;AAE/E,MAAM,gBAAgB,GAAG,yBAAyB,CAAC;AACnD,MAAM,uBAAuB,GAAG,gBAAgB,CAAC;AACjD,MAAM,sBAAsB,GAAG,sBAAsB,CAAC;AAEtD,MAAM,aAAa,GAAG,GAAG,CAAC;AAC1B,MAAM,SAAS,GAAG,IAAI,CAAC;AAEvB,gBAAgB;AAChB,MAAM,aAAa,GAAuB,IAAI,GAAG,CAAC,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC;AAErF,kBAAkB;AAClB,MAAM,eAAe,GAAyB,IAAI,GAAG,CAAC;IACpD,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;CAC3C,CAAC,CAAC;AAEH,+EAA+E;AAC/E,gCAAgC;AAChC,+EAA+E;AAE/E,MAAM,OAAO,cAAc;IAEf;IACA;IAFV,YACU,WAAwB,EACxB,KAAmB;QADnB,gBAAW,GAAX,WAAW,CAAa;QACxB,UAAK,GAAL,KAAK,CAAc;IAC1B,CAAC;IAEJ;;;;;;;;;;;;;OAaG;IACH,KAAK,CAAC,SAAS,CACb,MAAqB,EACrB,QAAyB,EACzB,OAA6B;QAE7B,kBAAkB;QAClB,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;QAC5B,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;QAEhC,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,IAAI,aAAa,EAAE,SAAS,CAAC,CAAC;QAEnE,kBAAkB;QAClB,MAAM,QAAQ,GAAG,IAAI,CAAC,kBAAkB,CAAC,MAAM,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;QAEpE,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,QAAQ,EAAE,SAAS,CAAC,aAAa,EAAE,KAAK,IAAI,EAAE;YACvE,OAAO,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,EAAE,KAAK,IAAI,EAAE;gBAC1D,MAAM,GAAG,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,QAAQ,EAAE;oBAChD,GAAG,OAAO;oBACV,KAAK;iBACN,CAAC,CAAC;gBAEH,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,CAAC;gBAElC,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;oBACjB,MAAM,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;gBACtC,CAAC;gBAED,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAiB,CAAC;gBAClD,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;YAChC,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;;;;;;;;;;OAWG;IACH,KAAK,CAAC,QAAQ,CAAC,MAAqB;QAClC,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;QAE5B,MAAM,QAAQ,GAAG,iBAAiB,MAAM,EAAE,CAAC;QAE3C,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,QAAQ,EAAE,SAAS,CAAC,aAAa,EAAE,KAAK,IAAI,EAAE;YACvE,OAAO,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,EAAE,KAAK,IAAI,EAAE;gBAC1D,MAAM,GAAG,GAAG,GAAG,gBAAgB,GAAG,sBAAsB,WAAW,MAAM,EAAE,CAAC;gBAE5E,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,CAAC;gBAElC,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;oBACjB,MAAM,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;gBACtC,CAAC;gBAED,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAuC,CAAC;gBACxE,OAAO,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAChC,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;;;;;;;;;;;;;;;OAgBG;IACH,KAAK,CAAC,UAAU,CAAC,MAAqB,EAAE,SAAiB;QACvD,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;QAE5B,uDAAuD;QACvD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE;YAChD,SAAS,EAAE,SAAS;YACpB,KAAK,EAAE,CAAC;SACT,CAAC,CAAC;QAEH,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACxB,MAAM,IAAI,eAAe,CACvB,SAAS,CAAC,gBAAgB,EAC1B,+BAA+B,MAAM,iBAAiB,SAAS,EAAE,CAClE,CAAC;QACJ,CAAC;QAED,OAAO,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;IACzB,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,SAAS,CAAC,OAAwB;QACtC,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,GAAG,CAC9B,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE;YAC3B,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;YAC1C,OAAO,CAAC,MAAM,EAAE,KAAK,CAAU,CAAC;QAClC,CAAC,CAAC,CACH,CAAC;QAEF,OAAO,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC;IACzB,CAAC;IAED;;;;;;;OAOG;IACH,KAAK,CAAC,cAAc,CAClB,MAAqB,EACrB,SAAiB,EACjB,OAAgB;QAEhB,MAAM,CAAC,WAAW,EAAE,SAAS,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;YACjD,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;YACrD,OAAO;gBACL,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;gBAChE,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;SACxB,CAAC,CAAC;QAEH,MAAM,UAAU,GAAG,WAAW,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC;QACzC,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,MAAM,IAAI,eAAe,CACvB,SAAS,CAAC,gBAAgB,EAC1B,qBAAqB,MAAM,OAAO,SAAS,EAAE,CAC9C,CAAC;QACJ,CAAC;QAED,MAAM,QAAQ,GAAG,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC,MAAM,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;QACtE,MAAM,aAAa,GAAG,CAAC,CAAC,QAAQ,GAAG,UAAU,CAAC,GAAG,UAAU,CAAC,GAAG,GAAG,CAAC;QAEnE,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,aAAa,EAAE,CAAC;IACjD,CAAC;IAED,+EAA+E;IAC/E,kBAAkB;IAClB,+EAA+E;IAEvE,cAAc,CAAC,MAAc;QACnC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,MAAuB,CAAC,EAAE,CAAC;YAChD,MAAM,IAAI,eAAe,CACvB,SAAS,CAAC,cAAc,EACxB,mBAAmB,MAAM,gBAAgB,CAAC,GAAG,aAAa,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CACzE,CAAC;QACJ,CAAC;IACH,CAAC;IAEO,gBAAgB,CAAC,QAAgB;QACvC,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,QAA2B,CAAC,EAAE,CAAC;YACtD,MAAM,IAAI,eAAe,CACvB,SAAS,CAAC,cAAc,EACxB,qBAAqB,QAAQ,gBAAgB,CAAC,GAAG,eAAe,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAC/E,CAAC;QACJ,CAAC;IACH,CAAC;IAEO,kBAAkB,CACxB,MAAqB,EACrB,QAAyB,EACzB,OAA6B;QAE7B,MAAM,KAAK,GAAG,CAAC,SAAS,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;QAEtD,IAAI,OAAO,EAAE,SAAS,EAAE,CAAC;YACvB,KAAK,CAAC,IAAI,CAAC,SAAS,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC;QAC3C,CAAC;QACD,IAAI,OAAO,EAAE,OAAO,EAAE,CAAC;YACrB,KAAK,CAAC,IAAI,CAAC,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;QACvC,CAAC;QACD,IAAI,OAAO,EAAE,KAAK,EAAE,CAAC;YACnB,KAAK,CAAC,IAAI,CAAC,SAAS,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC;QACvC,CAAC;QAED,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACzB,CAAC;IAEO,cAAc,CACpB,MAAqB,EACrB,QAAyB,EACzB,OAA6B;QAE7B,MAAM,MAAM,GAAG,IAAI,eAAe,CAAC;YACjC,MAAM;YACN,QAAQ;SACT,CAAC,CAAC;QAEH,IAAI,OAAO,EAAE,SAAS,EAAE,CAAC;YACvB,MAAM,CAAC,GAAG,CAAC,WAAW,EAAE,OAAO,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC,CAAC;QACxD,CAAC;QACD,IAAI,OAAO,EAAE,OAAO,EAAE,CAAC;YACrB,MAAM,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;QACpD,CAAC;QACD,IAAI,OAAO,EAAE,KAAK,EAAE,CAAC;YACnB,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;QAChD,CAAC;QAED,OAAO,GAAG,gBAAgB,GAAG,uBAAuB,IAAI,MAAM,CAAC,QAAQ,EAAE,EAAE,CAAC;IAC9E,CAAC;IAED;;;;;;;;;;;;;;;;;;;;OAoBG;IACK,WAAW,CAAC,IAAiB;QACnC,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;YAC1B,SAAS,EAAE,KAAK,CAAC,CAAC,CAAW;YAC7B,IAAI,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC,CAAW,CAAC;YACpC,IAAI,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC,CAAW,CAAC;YACpC,GAAG,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC,CAAW,CAAC;YACnC,KAAK,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC,CAAW,CAAC;YACrC,MAAM,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC,CAAW,CAAC;YACtC,SAAS,EAAE,KAAK,CAAC,CAAC,CAAW;YAC7B,WAAW,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC,CAAW,CAAC;YAC3C,MAAM,EAAE,KAAK,CAAC,CAAC,CAAW;SAC3B,CAAC,CAAC,CAAC;IACN,CAAC;IAEO,KAAK,CAAC,cAAc,CAAC,QAAkB;QAC7C,IAAI,SAAS,GAA2B,IAAI,CAAC;QAE7C,IAAI,CAAC;YACH,SAAS,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAqB,CAAC;QACvD,CAAC;QAAC,MAAM,CAAC;YACP,6BAA6B;QAC/B,CAAC;QAED,MAAM,OAAO,GAAG,SAAS,EAAE,GAAG,IAAI,2BAA2B,QAAQ,CAAC,MAAM,EAAE,CAAC;QAE/E,uBAAuB;QACvB,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,IAAI,SAAS,EAAE,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;YACzD,MAAM,IAAI,eAAe,CACvB,SAAS,CAAC,YAAY,EACtB,OAAO,EACP,IAAI,CAAC,YAAY;aAClB,CAAC;QACJ,CAAC;QAED,mCAAmC;QACnC,IAAI,SAAS,EAAE,IAAI,KAAK,CAAC,IAAI,IAAI,SAAS,EAAE,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;YAC3D,MAAM,IAAI,eAAe,CACvB,SAAS,CAAC,cAAc,EACxB,OAAO,EACP,KAAK,CACN,CAAC;QACJ,CAAC;QAED,oBAAoB;QACpB,MAAM,IAAI,eAAe,CACvB,SAAS,CAAC,SAAS,EACnB,OAAO,EACP,QAAQ,CAAC,MAAM,IAAI,GAAG,CAAC,8BAA8B;SACtD,CAAC;IACJ,CAAC;CACF"}
|
|
@@ -0,0 +1,209 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* DipArbService - Dip Arbitrage Service
|
|
3
|
+
*
|
|
4
|
+
* 暴跌套利服务 - 针对 Polymarket 15分钟/5分钟 UP/DOWN 市场
|
|
5
|
+
*
|
|
6
|
+
* 策略原理:
|
|
7
|
+
* 1. 每个市场有一个 "price to beat"(开盘时的 Chainlink 价格)
|
|
8
|
+
* 2. 结算规则:
|
|
9
|
+
* - UP 赢:结束时价格 >= price to beat
|
|
10
|
+
* - DOWN 赢:结束时价格 < price to beat
|
|
11
|
+
*
|
|
12
|
+
* 3. 套利流程:
|
|
13
|
+
* - Leg1:检测暴跌 → 买入暴跌侧
|
|
14
|
+
* - Leg2:等待对冲条件 → 买入另一侧
|
|
15
|
+
* - 利润:总成本 < $1 时获得无风险利润
|
|
16
|
+
*
|
|
17
|
+
* 使用示例:
|
|
18
|
+
* ```typescript
|
|
19
|
+
* const sdk = await PolymarketSDK.create({ privateKey: '...' });
|
|
20
|
+
*
|
|
21
|
+
* // 自动找到并启动
|
|
22
|
+
* await sdk.dipArb.findAndStart({ coin: 'BTC' });
|
|
23
|
+
*
|
|
24
|
+
* // 监听信号
|
|
25
|
+
* sdk.dipArb.on('signal', (signal) => {
|
|
26
|
+
* console.log(`Signal: ${signal.type} ${signal.side}`);
|
|
27
|
+
* });
|
|
28
|
+
* ```
|
|
29
|
+
*/
|
|
30
|
+
import { EventEmitter } from 'events';
|
|
31
|
+
import { RealtimeServiceV2 } from './realtime-service-v2.js';
|
|
32
|
+
import { TradingService } from './trading-service.js';
|
|
33
|
+
import { MarketService } from './market-service.js';
|
|
34
|
+
import { type DipArbServiceConfig, type DipArbConfigInternal, type DipArbMarketConfig, type DipArbRoundState, type DipArbStats, type DipArbLeg1Signal, type DipArbLeg2Signal, type DipArbExecutionResult, type DipArbScanOptions, type DipArbFindAndStartOptions, type DipArbAutoRotateConfig, type DipArbSettleResult, type DipArbPendingRedemption } from './dip-arb-types.js';
|
|
35
|
+
export declare class DipArbService extends EventEmitter {
|
|
36
|
+
private realtimeService;
|
|
37
|
+
private tradingService;
|
|
38
|
+
private marketService;
|
|
39
|
+
private ctf;
|
|
40
|
+
private config;
|
|
41
|
+
private autoRotateConfig;
|
|
42
|
+
private market;
|
|
43
|
+
private currentRound;
|
|
44
|
+
private isRunning;
|
|
45
|
+
private isExecuting;
|
|
46
|
+
private lastExecutionTime;
|
|
47
|
+
private stats;
|
|
48
|
+
private marketSubscription;
|
|
49
|
+
private chainlinkSubscription;
|
|
50
|
+
private rotateCheckInterval;
|
|
51
|
+
private nextMarket;
|
|
52
|
+
private pendingRedemptions;
|
|
53
|
+
private redeemCheckInterval;
|
|
54
|
+
private upAsks;
|
|
55
|
+
private downAsks;
|
|
56
|
+
private priceHistory;
|
|
57
|
+
private readonly MAX_HISTORY_LENGTH;
|
|
58
|
+
private currentUnderlyingPrice;
|
|
59
|
+
private leg1SignalEmitted;
|
|
60
|
+
constructor(realtimeService: RealtimeServiceV2, tradingService: TradingService | null, marketService: MarketService, privateKey?: string, chainId?: number);
|
|
61
|
+
/**
|
|
62
|
+
* Update configuration
|
|
63
|
+
*/
|
|
64
|
+
updateConfig(config: Partial<DipArbServiceConfig>): void;
|
|
65
|
+
/**
|
|
66
|
+
* Get current configuration
|
|
67
|
+
*/
|
|
68
|
+
getConfig(): DipArbConfigInternal;
|
|
69
|
+
/**
|
|
70
|
+
* Scan for upcoming UP/DOWN markets
|
|
71
|
+
*
|
|
72
|
+
* Uses MarketService.scanCryptoShortTermMarkets()
|
|
73
|
+
*/
|
|
74
|
+
scanUpcomingMarkets(options?: DipArbScanOptions): Promise<DipArbMarketConfig[]>;
|
|
75
|
+
/**
|
|
76
|
+
* Find the best market and start monitoring
|
|
77
|
+
*/
|
|
78
|
+
findAndStart(options?: DipArbFindAndStartOptions): Promise<DipArbMarketConfig | null>;
|
|
79
|
+
/**
|
|
80
|
+
* Start monitoring a market
|
|
81
|
+
*/
|
|
82
|
+
start(market: DipArbMarketConfig): Promise<void>;
|
|
83
|
+
/**
|
|
84
|
+
* Stop monitoring
|
|
85
|
+
*/
|
|
86
|
+
stop(): Promise<void>;
|
|
87
|
+
/**
|
|
88
|
+
* Check if service is running
|
|
89
|
+
*/
|
|
90
|
+
isActive(): boolean;
|
|
91
|
+
/**
|
|
92
|
+
* Get current market
|
|
93
|
+
*/
|
|
94
|
+
getMarket(): DipArbMarketConfig | null;
|
|
95
|
+
/**
|
|
96
|
+
* Get statistics
|
|
97
|
+
*/
|
|
98
|
+
getStats(): DipArbStats;
|
|
99
|
+
/**
|
|
100
|
+
* Get current round state
|
|
101
|
+
*/
|
|
102
|
+
getCurrentRound(): DipArbRoundState | null;
|
|
103
|
+
/**
|
|
104
|
+
* Get current price to beat
|
|
105
|
+
*/
|
|
106
|
+
getPriceToBeat(): number | null;
|
|
107
|
+
/**
|
|
108
|
+
* Execute Leg1 trade
|
|
109
|
+
*/
|
|
110
|
+
executeLeg1(signal: DipArbLeg1Signal): Promise<DipArbExecutionResult>;
|
|
111
|
+
/**
|
|
112
|
+
* Execute Leg2 trade
|
|
113
|
+
*/
|
|
114
|
+
executeLeg2(signal: DipArbLeg2Signal): Promise<DipArbExecutionResult>;
|
|
115
|
+
/**
|
|
116
|
+
* Merge YES + NO tokens to USDC
|
|
117
|
+
*/
|
|
118
|
+
merge(): Promise<DipArbExecutionResult>;
|
|
119
|
+
private handleOrderbookUpdate;
|
|
120
|
+
/**
|
|
121
|
+
* Record current prices to history buffer for sliding window detection
|
|
122
|
+
*/
|
|
123
|
+
private recordPriceHistory;
|
|
124
|
+
/**
|
|
125
|
+
* Get price from N milliseconds ago for sliding window detection
|
|
126
|
+
*
|
|
127
|
+
* @param side - 'UP' or 'DOWN'
|
|
128
|
+
* @param msAgo - Milliseconds ago (e.g., 3000 for 3 seconds)
|
|
129
|
+
* @returns Price from that time, or null if not available
|
|
130
|
+
*/
|
|
131
|
+
private getPriceFromHistory;
|
|
132
|
+
private handleChainlinkPriceUpdate;
|
|
133
|
+
private checkAndStartNewRound;
|
|
134
|
+
/**
|
|
135
|
+
* Emergency exit Leg1 position when Leg2 times out
|
|
136
|
+
* Sells the Leg1 tokens at market price to avoid unhedged exposure
|
|
137
|
+
*/
|
|
138
|
+
private emergencyExitLeg1;
|
|
139
|
+
private detectSignal;
|
|
140
|
+
private detectLeg1Signal;
|
|
141
|
+
private createLeg1Signal;
|
|
142
|
+
private detectLeg2Signal;
|
|
143
|
+
private validateSignalProfitability;
|
|
144
|
+
private handleSignal;
|
|
145
|
+
/**
|
|
146
|
+
* Configure and enable auto-rotate
|
|
147
|
+
*
|
|
148
|
+
* Auto-rotate 会自动:
|
|
149
|
+
* 1. 监控当前市场到期时间
|
|
150
|
+
* 2. 在市场结束前预加载下一个市场
|
|
151
|
+
* 3. 市场结束时自动结算(redeem 或 sell)
|
|
152
|
+
* 4. 无缝切换到下一个 15m 市场
|
|
153
|
+
*
|
|
154
|
+
* @example
|
|
155
|
+
* ```typescript
|
|
156
|
+
* sdk.dipArb.enableAutoRotate({
|
|
157
|
+
* underlyings: ['BTC', 'ETH'],
|
|
158
|
+
* duration: '15m',
|
|
159
|
+
* autoSettle: true,
|
|
160
|
+
* settleStrategy: 'redeem',
|
|
161
|
+
* });
|
|
162
|
+
* ```
|
|
163
|
+
*/
|
|
164
|
+
enableAutoRotate(config?: Partial<DipArbAutoRotateConfig>): void;
|
|
165
|
+
/**
|
|
166
|
+
* Disable auto-rotate
|
|
167
|
+
*/
|
|
168
|
+
disableAutoRotate(): void;
|
|
169
|
+
/**
|
|
170
|
+
* Get auto-rotate configuration
|
|
171
|
+
*/
|
|
172
|
+
getAutoRotateConfig(): Required<DipArbAutoRotateConfig>;
|
|
173
|
+
/**
|
|
174
|
+
* Manually settle current position
|
|
175
|
+
*
|
|
176
|
+
* 结算策略:
|
|
177
|
+
* - 'redeem': 等待市场结算后 redeem(需要等待结算完成)
|
|
178
|
+
* - 'sell': 直接卖出 token(更快但可能有滑点)
|
|
179
|
+
*/
|
|
180
|
+
settle(strategy?: 'redeem' | 'sell'): Promise<DipArbSettleResult>;
|
|
181
|
+
/**
|
|
182
|
+
* Manually rotate to next market
|
|
183
|
+
*/
|
|
184
|
+
rotateToNextMarket(): Promise<DipArbMarketConfig | null>;
|
|
185
|
+
private startRotateCheck;
|
|
186
|
+
private stopRotateCheck;
|
|
187
|
+
private startRedeemCheck;
|
|
188
|
+
private stopRedeemCheck;
|
|
189
|
+
/**
|
|
190
|
+
* Add a position to pending redemption queue
|
|
191
|
+
*/
|
|
192
|
+
private addPendingRedemption;
|
|
193
|
+
/**
|
|
194
|
+
* Process all pending redemptions
|
|
195
|
+
* Called periodically by redeemCheckInterval
|
|
196
|
+
*/
|
|
197
|
+
private processPendingRedemptions;
|
|
198
|
+
/**
|
|
199
|
+
* Get pending redemptions (for debugging/monitoring)
|
|
200
|
+
*/
|
|
201
|
+
getPendingRedemptions(): DipArbPendingRedemption[];
|
|
202
|
+
private checkRotation;
|
|
203
|
+
private findNextMarket;
|
|
204
|
+
private settleByRedeem;
|
|
205
|
+
private settleBySell;
|
|
206
|
+
private log;
|
|
207
|
+
}
|
|
208
|
+
export * from './dip-arb-types.js';
|
|
209
|
+
//# sourceMappingURL=dip-arb-service.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dip-arb-service.d.ts","sourceRoot":"","sources":["../../src/services/dip-arb-service.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,EACL,iBAAiB,EAKlB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,cAAc,EAA0B,MAAM,sBAAsB,CAAC;AAC9E,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAGpD,OAAO,EACL,KAAK,mBAAmB,EACxB,KAAK,oBAAoB,EACzB,KAAK,kBAAkB,EACvB,KAAK,gBAAgB,EACrB,KAAK,WAAW,EAEhB,KAAK,gBAAgB,EACrB,KAAK,gBAAgB,EACrB,KAAK,qBAAqB,EAI1B,KAAK,iBAAiB,EACtB,KAAK,yBAAyB,EAE9B,KAAK,sBAAsB,EAC3B,KAAK,kBAAkB,EAGvB,KAAK,uBAAuB,EAW7B,MAAM,oBAAoB,CAAC;AAI5B,qBAAa,aAAc,SAAQ,YAAY;IAE7C,OAAO,CAAC,eAAe,CAAoB;IAC3C,OAAO,CAAC,cAAc,CAA+B;IACrD,OAAO,CAAC,aAAa,CAAgB;IACrC,OAAO,CAAC,GAAG,CAA0B;IAGrC,OAAO,CAAC,MAAM,CAAuB;IACrC,OAAO,CAAC,gBAAgB,CAAmC;IAG3D,OAAO,CAAC,MAAM,CAAmC;IACjD,OAAO,CAAC,YAAY,CAAiC;IACrD,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,iBAAiB,CAAK;IAC9B,OAAO,CAAC,KAAK,CAAc;IAG3B,OAAO,CAAC,kBAAkB,CAAmC;IAC7D,OAAO,CAAC,qBAAqB,CAA6B;IAG1D,OAAO,CAAC,mBAAmB,CAA+C;IAC1E,OAAO,CAAC,UAAU,CAAmC;IAGrD,OAAO,CAAC,kBAAkB,CAAiC;IAC3D,OAAO,CAAC,mBAAmB,CAA+C;IAG1E,OAAO,CAAC,MAAM,CAA8C;IAC5D,OAAO,CAAC,QAAQ,CAA8C;IAI9D,OAAO,CAAC,YAAY,CAAoE;IACxF,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAO;IAG1C,OAAO,CAAC,sBAAsB,CAAK;IAGnC,OAAO,CAAC,iBAAiB,CAAS;gBAGhC,eAAe,EAAE,iBAAiB,EAClC,cAAc,EAAE,cAAc,GAAG,IAAI,EACrC,aAAa,EAAE,aAAa,EAC5B,UAAU,CAAC,EAAE,MAAM,EACnB,OAAO,GAAE,MAAY;IAyBvB;;OAEG;IACH,YAAY,CAAC,MAAM,EAAE,OAAO,CAAC,mBAAmB,CAAC,GAAG,IAAI;IAQxD;;OAEG;IACH,SAAS,IAAI,oBAAoB;IAMjC;;;;OAIG;IACG,mBAAmB,CAAC,OAAO,GAAE,iBAAsB,GAAG,OAAO,CAAC,kBAAkB,EAAE,CAAC;IAoEzF;;OAEG;IACG,YAAY,CAAC,OAAO,GAAE,yBAA8B,GAAG,OAAO,CAAC,kBAAkB,GAAG,IAAI,CAAC;IAiC/F;;OAEG;IACG,KAAK,CAAC,MAAM,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC;IA8FtD;;OAEG;IACG,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IA8B3B;;OAEG;IACH,QAAQ,IAAI,OAAO;IAInB;;OAEG;IACH,SAAS,IAAI,kBAAkB,GAAG,IAAI;IAMtC;;OAEG;IACH,QAAQ,IAAI,WAAW;IAgBvB;;OAEG;IACH,eAAe,IAAI,gBAAgB,GAAG,IAAI;IAI1C;;OAEG;IACH,cAAc,IAAI,MAAM,GAAG,IAAI;IAM/B;;OAEG;IACG,WAAW,CAAC,MAAM,EAAE,gBAAgB,GAAG,OAAO,CAAC,qBAAqB,CAAC;IAuH3E;;OAEG;IACG,WAAW,CAAC,MAAM,EAAE,gBAAgB,GAAG,OAAO,CAAC,qBAAqB,CAAC;IAmJ3E;;OAEG;IACG,KAAK,IAAI,OAAO,CAAC,qBAAqB,CAAC;IAwD7C,OAAO,CAAC,qBAAqB;IA8B7B;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAmB1B;;;;;;OAMG;IACH,OAAO,CAAC,mBAAmB;IAc3B,OAAO,CAAC,0BAA0B;YA6BpB,qBAAqB;IAgFnC;;;OAGG;YACW,iBAAiB;IAmE/B,OAAO,CAAC,YAAY;IAapB,OAAO,CAAC,gBAAgB;IAwHxB,OAAO,CAAC,gBAAgB;IAgDxB,OAAO,CAAC,gBAAgB;IA4CxB,OAAO,CAAC,2BAA2B;YAiCrB,YAAY;IA+D1B;;;;;;;;;;;;;;;;;;OAkBG;IACH,gBAAgB,CAAC,MAAM,GAAE,OAAO,CAAC,sBAAsB,CAAM,GAAG,IAAI;IAgBpE;;OAEG;IACH,iBAAiB,IAAI,IAAI;IAYzB;;OAEG;IACH,mBAAmB,IAAI,QAAQ,CAAC,sBAAsB,CAAC;IAIvD;;;;;;OAMG;IACG,MAAM,CAAC,QAAQ,GAAE,QAAQ,GAAG,MAAiB,GAAG,OAAO,CAAC,kBAAkB,CAAC;IA4BjF;;OAEG;IACG,kBAAkB,IAAI,OAAO,CAAC,kBAAkB,GAAG,IAAI,CAAC;IAgC9D,OAAO,CAAC,gBAAgB;IAcxB,OAAO,CAAC,eAAe;IASvB,OAAO,CAAC,gBAAgB;IAexB,OAAO,CAAC,eAAe;IAOvB;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAY5B;;;OAGG;YACW,yBAAyB;IAkGvC;;OAEG;IACH,qBAAqB,IAAI,uBAAuB,EAAE;YAIpC,aAAa;YAqGb,cAAc;YAyBd,cAAc;YAkDd,YAAY;IAiE1B,OAAO,CAAC,GAAG;CAaZ;AAGD,cAAc,oBAAoB,CAAC"}
|