@win-trader/config 0.1.0 → 0.2.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/addresses.json CHANGED
@@ -52,36 +52,40 @@
52
52
  ],
53
53
  "contracts": {
54
54
  "vault": {
55
- "address": "CAX5JF7U7WFQDSX7CNEV6DDAQ5J5Q655NLATEUPU5D5GWIWT7T6SGYVO",
56
- "startLedger": 2627197
55
+ "address": "CD5NG2BM4X44DS7XN24DDJ73C23WSCJUIFG55JB3EAWOIUYHARAPWN2K",
56
+ "startLedger": 3202932
57
57
  },
58
58
  "positionManager": {
59
- "address": "CBKWIM7PG2RYZAURKIJIIDN33U4HJ5AK5FTUMPVVWSM5AHVUKZS47TTJ",
60
- "startLedger": 2627199
59
+ "address": "CALAG3KKOP7QA4XTIUHPU3DJ5GGJE2HRWK5MAVD326XHEGEE5EVHFF7L",
60
+ "startLedger": 3202930
61
61
  },
62
62
  "configManager": {
63
- "address": "CDDOA6JJWVH4Q7SXTL7P6S56VFCVSIUKNPTBBXQYVD27V3P3PWSKBNBP",
64
- "startLedger": 2627189
63
+ "address": "CBZZENU4QRE7DXRW3M3OH6SFDSREIKQGDJGCW5ZQ5UWDTKNCO4PGR5NI",
64
+ "startLedger": 3202921
65
65
  },
66
66
  "oracleRouter": {
67
- "address": "CCA6SWSBBNDVQRWYGYP7T6644K5OR3L35O7YGYLODDT2R2ZV7HG4GKBX",
68
- "startLedger": 2627191
67
+ "address": "CAK5NAXHH5PSBQ63LDMZ3FHYKFV76TJRPKKCLYOI7VIUKLS6OH63ZDP2",
68
+ "startLedger": 3202923
69
69
  },
70
70
  "oracle": {
71
- "address": "CAACOFUFNVWOMBQU7MDKUKB3IGDW4EJGUZTTHN2Q4IDIA7WVDYXE54DG",
72
- "startLedger": 2627193
71
+ "address": "CAQLDGZP6ADGOHDUHOFNWC7L24JQ2A2MQBAULYWUAHCHY3KGHG5466F7",
72
+ "startLedger": 3202924
73
73
  },
74
74
  "binanceOracle": {
75
- "address": "CBTVRC6X5Q6KJGAC7SOQHAKBQS4RS5MTOERWKPH5M5OF6FLGVCO6OOHC",
76
- "startLedger": 2627236
75
+ "address": "CDLZH2XWR46NF6EGV2JBEARYBOJQ5II2RZLNFBP63LCXBL524Y7ZNMOC",
76
+ "startLedger": 3202949
77
77
  },
78
78
  "kucoinOracle": {
79
- "address": "CCNNEIHURTEROE7T34V2E5BDEPOLRBGZEB3V3A5F6A563IQR2E6VA5RV",
80
- "startLedger": 2627237
79
+ "address": "CBPTENMW52BBQUZE4EJ73XO3PJKPOL3F5XPGYMV26OCEVL64WEDL5TZQ",
80
+ "startLedger": 3202951
81
81
  },
82
82
  "mockToken": {
83
- "address": "CBI2GEK27L4OCKBSKUF3XW3EZYO5WAI4NKYOWO5ZXSIBRUY5ELTDVLQA",
84
- "startLedger": 2627195
83
+ "address": "CDQEF3UM6PCJ4I3IYI47YJNBJUUUXBXZT2AYQENOIXAY6I3MPVLETXEN",
84
+ "startLedger": 3202928
85
+ },
86
+ "oracle2": {
87
+ "address": "CDPBMUYEBA6HPL3SPG4XWYF4Y7R35UGE46J62QN4L7YWXVML75CFD3KQ",
88
+ "startLedger": 3202926
85
89
  }
86
90
  }
87
91
  },
package/dist/index.d.ts CHANGED
@@ -11,6 +11,8 @@ export interface NetworkContracts {
11
11
  configManager: ContractInfo;
12
12
  oracleRouter: ContractInfo;
13
13
  oracle: ContractInfo;
14
+ /** Secondary admin-published oracle used before live CEX sources are wired. */
15
+ oracle2?: ContractInfo;
14
16
  /** Per-source oracle instances populated by scripts/deploy-cex-oracles.sh. */
15
17
  binanceOracle: ContractInfo;
16
18
  kucoinOracle: ContractInfo;
@@ -28,5 +30,29 @@ export interface NetworkConfig {
28
30
  export type Addresses = Record<Network, NetworkConfig>;
29
31
  export declare const config: Addresses;
30
32
  export declare function getNetworkConfig(network: Network): NetworkConfig;
33
+ /** The network env a binding client needs (`@win-trader/protocol-clients`). */
34
+ export interface NetworkEnv {
35
+ rpcUrl: string;
36
+ networkPassphrase: string;
37
+ }
38
+ export interface ResolvedNetwork {
39
+ network: Network;
40
+ config: NetworkConfig;
41
+ env: NetworkEnv;
42
+ }
43
+ export interface ResolveNetworkOptions {
44
+ /** Override the network instead of reading `process.env.NETWORK`. */
45
+ network?: Network;
46
+ /** Contract keys whose address must be non-empty; throws if any is missing. */
47
+ require?: (keyof NetworkContracts)[];
48
+ }
49
+ /**
50
+ * One-stop network bootstrap for backend services: resolve the network (from
51
+ * `process.env.NETWORK`, defaulting to `local`), load its config, validate that
52
+ * the required contract addresses are populated, and hand back a ready
53
+ * `NetworkEnv`. Replaces the resolve→validate→build dance each service used to
54
+ * hand-roll with its own (inconsistent) `NETWORK` default.
55
+ */
56
+ export declare function resolveNetwork(opts?: ResolveNetworkOptions): ResolvedNetwork;
31
57
  export * from "./constants.js";
32
58
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAIA,MAAM,MAAM,OAAO,GAAG,OAAO,GAAG,SAAS,GAAG,SAAS,CAAC;AAEtD,MAAM,WAAW,YAAY;IAC3B,0EAA0E;IAC1E,OAAO,EAAE,MAAM,CAAC;IAChB,kFAAkF;IAClF,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,YAAY,CAAC;IACpB,eAAe,EAAE,YAAY,CAAC;IAC9B,aAAa,EAAE,YAAY,CAAC;IAC5B,YAAY,EAAE,YAAY,CAAC;IAC3B,MAAM,EAAE,YAAY,CAAC;IACrB,8EAA8E;IAC9E,aAAa,EAAE,YAAY,CAAC;IAC5B,YAAY,EAAE,YAAY,CAAC;IAC3B,2DAA2D;IAC3D,SAAS,EAAE,YAAY,CAAC;CACzB;AAED,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,iBAAiB,EAAE,MAAM,CAAC;IAC1B;kFAC8E;IAC9E,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;IAC3B,SAAS,EAAE,gBAAgB,CAAC;CAC7B;AAED,MAAM,MAAM,SAAS,GAAG,MAAM,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;AAiDvD,eAAO,MAAM,MAAM,EAAE,SAA2B,CAAC;AAEjD,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,OAAO,GAAG,aAAa,CAIhE;AAED,cAAc,gBAAgB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAIA,MAAM,MAAM,OAAO,GAAG,OAAO,GAAG,SAAS,GAAG,SAAS,CAAC;AAEtD,MAAM,WAAW,YAAY;IAC3B,0EAA0E;IAC1E,OAAO,EAAE,MAAM,CAAC;IAChB,kFAAkF;IAClF,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,YAAY,CAAC;IACpB,eAAe,EAAE,YAAY,CAAC;IAC9B,aAAa,EAAE,YAAY,CAAC;IAC5B,YAAY,EAAE,YAAY,CAAC;IAC3B,MAAM,EAAE,YAAY,CAAC;IACrB,+EAA+E;IAC/E,OAAO,CAAC,EAAE,YAAY,CAAC;IACvB,8EAA8E;IAC9E,aAAa,EAAE,YAAY,CAAC;IAC5B,YAAY,EAAE,YAAY,CAAC;IAC3B,2DAA2D;IAC3D,SAAS,EAAE,YAAY,CAAC;CACzB;AAED,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,iBAAiB,EAAE,MAAM,CAAC;IAC1B;kFAC8E;IAC9E,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;IAC3B,SAAS,EAAE,gBAAgB,CAAC;CAC7B;AAED,MAAM,MAAM,SAAS,GAAG,MAAM,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;AAiDvD,eAAO,MAAM,MAAM,EAAE,SAA2B,CAAC;AAEjD,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,OAAO,GAAG,aAAa,CAIhE;AAED,+EAA+E;AAC/E,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,iBAAiB,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,aAAa,CAAC;IACtB,GAAG,EAAE,UAAU,CAAC;CACjB;AAED,MAAM,WAAW,qBAAqB;IACpC,qEAAqE;IACrE,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,+EAA+E;IAC/E,OAAO,CAAC,EAAE,CAAC,MAAM,gBAAgB,CAAC,EAAE,CAAC;CACtC;AAED;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,IAAI,GAAE,qBAA0B,GAAG,eAAe,CAkBhF;AAED,cAAc,gBAAgB,CAAC"}
package/dist/index.js CHANGED
@@ -46,5 +46,27 @@ export function getNetworkConfig(network) {
46
46
  // selected network — return it regardless of the requested key.
47
47
  return injected ?? config[network];
48
48
  }
49
+ /**
50
+ * One-stop network bootstrap for backend services: resolve the network (from
51
+ * `process.env.NETWORK`, defaulting to `local`), load its config, validate that
52
+ * the required contract addresses are populated, and hand back a ready
53
+ * `NetworkEnv`. Replaces the resolve→validate→build dance each service used to
54
+ * hand-roll with its own (inconsistent) `NETWORK` default.
55
+ */
56
+ export function resolveNetwork(opts = {}) {
57
+ const network = opts.network ?? (process.env.NETWORK || "local");
58
+ const networkConfig = getNetworkConfig(network);
59
+ for (const key of opts.require ?? []) {
60
+ if (!networkConfig.contracts[key]?.address) {
61
+ throw new Error(`@win-trader/config: contract "${String(key)}" has no address for network "${network}". ` +
62
+ `Run a deploy to populate addresses.json (or ADDRESSES_JSON).`);
63
+ }
64
+ }
65
+ return {
66
+ network,
67
+ config: networkConfig,
68
+ env: { rpcUrl: networkConfig.rpcUrl, networkPassphrase: networkConfig.networkPassphrase },
69
+ };
70
+ }
49
71
  export * from "./constants.js";
50
72
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAmCzC,yBAAyB;AACzB,+EAA+E;AAC/E,8EAA8E;AAC9E,MAAM,IAAI,GAAG,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAErD,iFAAiF;AACjF,MAAM,OAAO,GAAa,OAAO,CAAC,GAAG,CAAC,OAAmB,IAAI,OAAO,CAAC;AAErE,SAAS,eAAe,CAAC,CAAU;IACjC,OAAO,CACL,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,IAAI,IAAI,WAAW,IAAI,CAAC,IAAI,QAAQ,IAAI,CAAC,CACzE,CAAC;AACJ,CAAC;AAED,8EAA8E;AAC9E,uEAAuE;AACvE,IAAI,QAAQ,GAAyB,IAAI,CAAC;AAE1C,qDAAqD;AACrD,8EAA8E;AAC9E,iEAAiE;AACjE,+EAA+E;AAC/E,+EAA+E;AAC/E,SAAS,aAAa;IACpB,MAAM,UAAU,GAAG;QACjB,OAAO,CAAC,GAAG,CAAC,cAAc;QAC1B,OAAO,CAAC,IAAI,EAAE,IAAI,EAAE,gBAAgB,CAAC;QACrC,OAAO,CAAC,IAAI,EAAE,gBAAgB,CAAC;KAChC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAe,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;IACzC,KAAK,MAAM,IAAI,IAAI,UAAU,EAAE,CAAC;QAC9B,IAAI,IAAa,CAAC;QAClB,IAAI,CAAC;YACH,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;QAChD,CAAC;QAAC,MAAM,CAAC;YACP,SAAS;QACX,CAAC;QACD,IAAI,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC;YAC1B,QAAQ,GAAG,IAAI,CAAC;YAChB,OAAO,EAAE,CAAC,OAAO,CAAC,EAAE,IAAI,EAAe,CAAC;QAC1C,CAAC;QACD,OAAO,IAAiB,CAAC;IAC3B,CAAC;IACD,MAAM,IAAI,KAAK,CACb,iEAAiE,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAC3F,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,MAAM,MAAM,GAAc,aAAa,EAAE,CAAC;AAEjD,MAAM,UAAU,gBAAgB,CAAC,OAAgB;IAC/C,uEAAuE;IACvE,gEAAgE;IAChE,OAAO,QAAQ,IAAI,MAAM,CAAC,OAAO,CAAC,CAAC;AACrC,CAAC;AAED,cAAc,gBAAgB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@win-trader/config",
3
- "version": "0.1.0",
3
+ "version": "0.2.0",
4
4
  "type": "module",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",