@win-trader/config 0.1.1 → 0.2.1

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,24 +52,24 @@
52
52
  ],
53
53
  "contracts": {
54
54
  "vault": {
55
- "address": "CD5NG2BM4X44DS7XN24DDJ73C23WSCJUIFG55JB3EAWOIUYHARAPWN2K",
56
- "startLedger": 3202932
55
+ "address": "CDTLXP6KC3DMKQ5EHWLB5YUTXF5NKPACOWFPXLPLB56MQZ2EMWRFHIZA",
56
+ "startLedger": 3467673
57
57
  },
58
58
  "positionManager": {
59
- "address": "CALAG3KKOP7QA4XTIUHPU3DJ5GGJE2HRWK5MAVD326XHEGEE5EVHFF7L",
60
- "startLedger": 3202930
59
+ "address": "CBPJA62PDZCVWZWVKZLUTWEOOCIJCQJNYVJW5HDC7VPB7UPC62CF63LP",
60
+ "startLedger": 3467672
61
61
  },
62
62
  "configManager": {
63
- "address": "CBZZENU4QRE7DXRW3M3OH6SFDSREIKQGDJGCW5ZQ5UWDTKNCO4PGR5NI",
64
- "startLedger": 3202921
63
+ "address": "CAHU4B47BA2H3TRUAFPM4LIVDIQKBWLPJKLOONULJXK73RQDTWUCJMOS",
64
+ "startLedger": 3467663
65
65
  },
66
66
  "oracleRouter": {
67
- "address": "CAK5NAXHH5PSBQ63LDMZ3FHYKFV76TJRPKKCLYOI7VIUKLS6OH63ZDP2",
68
- "startLedger": 3202923
67
+ "address": "CAO54YKI3XX2S35EML4WXQIUFETMU5RSRGR6SGYX5BXFMZC6AXM6JVZR",
68
+ "startLedger": 3467664
69
69
  },
70
70
  "oracle": {
71
- "address": "CAQLDGZP6ADGOHDUHOFNWC7L24JQ2A2MQBAULYWUAHCHY3KGHG5466F7",
72
- "startLedger": 3202924
71
+ "address": "CDLHMXUYWBNYB3YKYFCHCPQHEHBF7ZH5RNDD7MSJTA3AVUDIWPW47IBT",
72
+ "startLedger": 3467665
73
73
  },
74
74
  "binanceOracle": {
75
75
  "address": "CDLZH2XWR46NF6EGV2JBEARYBOJQ5II2RZLNFBP63LCXBL524Y7ZNMOC",
@@ -80,12 +80,12 @@
80
80
  "startLedger": 3202951
81
81
  },
82
82
  "mockToken": {
83
- "address": "CDQEF3UM6PCJ4I3IYI47YJNBJUUUXBXZT2AYQENOIXAY6I3MPVLETXEN",
84
- "startLedger": 3202928
83
+ "address": "CDY3K2D6RXL67NXYJQL7HG67P7LDQBE2DH6S3WK62WHTJ3PWSZLW5IJ4",
84
+ "startLedger": 3467668
85
85
  },
86
86
  "oracle2": {
87
- "address": "CDPBMUYEBA6HPL3SPG4XWYF4Y7R35UGE46J62QN4L7YWXVML75CFD3KQ",
88
- "startLedger": 3202926
87
+ "address": "CA26PAOXWTOSN2NIPOFMZRWFWWHWZP35IDIQN52C7GJEVN5YYQZIFTTQ",
88
+ "startLedger": 3467666
89
89
  }
90
90
  }
91
91
  },
package/dist/index.d.ts CHANGED
@@ -30,5 +30,29 @@ export interface NetworkConfig {
30
30
  export type Addresses = Record<Network, NetworkConfig>;
31
31
  export declare const config: Addresses;
32
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;
33
57
  export * from "./constants.js";
34
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,+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,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;AAqCzC,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.1",
3
+ "version": "0.2.1",
4
4
  "type": "module",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",