@stacks/network 7.1.1-pr.0 → 7.1.2-pr.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.
@@ -1,4 +1,4 @@
1
- import { ClientOpts, FetchFn } from '@stacks/common';
1
+ import { FetchFn, ClientOpts, ApiKeyMiddlewareOpts } from '@stacks/common';
2
2
  import { ClientParam } from '@stacks/common';
3
3
  export type StacksNetwork = {
4
4
  chainId: number;
@@ -29,3 +29,9 @@ export declare function networkFromName(name: StacksNetworkName): StacksNetwork;
29
29
  export declare function networkFrom(network: StacksNetworkName | StacksNetwork): StacksNetwork;
30
30
  export declare function defaultUrlFromNetwork(network?: StacksNetworkName | StacksNetwork): "https://api.mainnet.hiro.so" | "https://api.testnet.hiro.so" | "http://localhost:3999";
31
31
  export declare function clientFromNetwork(network: StacksNetwork): Required<ClientOpts>;
32
+ export declare function createNetwork(network: StacksNetworkName | StacksNetwork): StacksNetwork;
33
+ export declare function createNetwork(network: StacksNetworkName | StacksNetwork, apiKey: string): StacksNetwork;
34
+ export declare function createNetwork(options: {
35
+ network: StacksNetworkName | StacksNetwork;
36
+ client?: ClientOpts;
37
+ } & Partial<ApiKeyMiddlewareOpts>): StacksNetwork;
@@ -1,4 +1,4 @@
1
- import { DEVNET_URL, HIRO_MAINNET_URL, HIRO_TESTNET_URL, createFetchFn, } from '@stacks/common';
1
+ import { DEVNET_URL, HIRO_MAINNET_URL, HIRO_TESTNET_URL, createFetchFn, createApiKeyMiddleware, } from '@stacks/common';
2
2
  import { AddressVersion, ChainId, PeerNetworkId, TransactionVersion } from './constants';
3
3
  export const STACKS_MAINNET = {
4
4
  chainId: ChainId.Mainnet,
@@ -73,4 +73,33 @@ export function clientFromNetwork(network) {
73
73
  fetch: createFetchFn(),
74
74
  };
75
75
  }
76
+ export function createNetwork(arg1, arg2) {
77
+ const baseNetwork = networkFrom(typeof arg1 === 'object' && 'network' in arg1 ? arg1.network : arg1);
78
+ const newNetwork = {
79
+ ...baseNetwork,
80
+ addressVersion: { ...baseNetwork.addressVersion },
81
+ client: { ...baseNetwork.client },
82
+ };
83
+ if (typeof arg1 === 'object' && 'network' in arg1) {
84
+ if (arg1.client) {
85
+ newNetwork.client.baseUrl = arg1.client.baseUrl ?? newNetwork.client.baseUrl;
86
+ newNetwork.client.fetch = arg1.client.fetch ?? newNetwork.client.fetch;
87
+ }
88
+ if (typeof arg1.apiKey === 'string') {
89
+ const middleware = createApiKeyMiddleware(arg1);
90
+ newNetwork.client.fetch = newNetwork.client.fetch
91
+ ? createFetchFn(newNetwork.client.fetch, middleware)
92
+ : createFetchFn(middleware);
93
+ }
94
+ return newNetwork;
95
+ }
96
+ if (typeof arg2 === 'string') {
97
+ const middleware = createApiKeyMiddleware({ apiKey: arg2 });
98
+ newNetwork.client.fetch = newNetwork.client.fetch
99
+ ? createFetchFn(newNetwork.client.fetch, middleware)
100
+ : createFetchFn(middleware);
101
+ return newNetwork;
102
+ }
103
+ return newNetwork;
104
+ }
76
105
  //# sourceMappingURL=network.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"network.js","sourceRoot":"","sources":["../../src/network.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"network.js","sourceRoot":"","sources":["../../src/network.ts"],"names":[],"mappings":"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"}
package/dist/network.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { ClientOpts, FetchFn } from '@stacks/common';
1
+ import { FetchFn, ClientOpts, ApiKeyMiddlewareOpts } from '@stacks/common';
2
2
  import { ClientParam } from '@stacks/common';
3
3
  export type StacksNetwork = {
4
4
  chainId: number;
@@ -29,3 +29,9 @@ export declare function networkFromName(name: StacksNetworkName): StacksNetwork;
29
29
  export declare function networkFrom(network: StacksNetworkName | StacksNetwork): StacksNetwork;
30
30
  export declare function defaultUrlFromNetwork(network?: StacksNetworkName | StacksNetwork): "https://api.mainnet.hiro.so" | "https://api.testnet.hiro.so" | "http://localhost:3999";
31
31
  export declare function clientFromNetwork(network: StacksNetwork): Required<ClientOpts>;
32
+ export declare function createNetwork(network: StacksNetworkName | StacksNetwork): StacksNetwork;
33
+ export declare function createNetwork(network: StacksNetworkName | StacksNetwork, apiKey: string): StacksNetwork;
34
+ export declare function createNetwork(options: {
35
+ network: StacksNetworkName | StacksNetwork;
36
+ client?: ClientOpts;
37
+ } & Partial<ApiKeyMiddlewareOpts>): StacksNetwork;
package/dist/network.js CHANGED
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.clientFromNetwork = exports.defaultUrlFromNetwork = exports.networkFrom = exports.networkFromName = exports.StacksNetworks = exports.STACKS_MOCKNET = exports.STACKS_DEVNET = exports.STACKS_TESTNET = exports.STACKS_MAINNET = void 0;
3
+ exports.createNetwork = exports.clientFromNetwork = exports.defaultUrlFromNetwork = exports.networkFrom = exports.networkFromName = exports.StacksNetworks = exports.STACKS_MOCKNET = exports.STACKS_DEVNET = exports.STACKS_TESTNET = exports.STACKS_MAINNET = void 0;
4
4
  const common_1 = require("@stacks/common");
5
5
  const constants_1 = require("./constants");
6
6
  exports.STACKS_MAINNET = {
@@ -80,4 +80,34 @@ function clientFromNetwork(network) {
80
80
  };
81
81
  }
82
82
  exports.clientFromNetwork = clientFromNetwork;
83
+ function createNetwork(arg1, arg2) {
84
+ const baseNetwork = networkFrom(typeof arg1 === 'object' && 'network' in arg1 ? arg1.network : arg1);
85
+ const newNetwork = {
86
+ ...baseNetwork,
87
+ addressVersion: { ...baseNetwork.addressVersion },
88
+ client: { ...baseNetwork.client },
89
+ };
90
+ if (typeof arg1 === 'object' && 'network' in arg1) {
91
+ if (arg1.client) {
92
+ newNetwork.client.baseUrl = arg1.client.baseUrl ?? newNetwork.client.baseUrl;
93
+ newNetwork.client.fetch = arg1.client.fetch ?? newNetwork.client.fetch;
94
+ }
95
+ if (typeof arg1.apiKey === 'string') {
96
+ const middleware = (0, common_1.createApiKeyMiddleware)(arg1);
97
+ newNetwork.client.fetch = newNetwork.client.fetch
98
+ ? (0, common_1.createFetchFn)(newNetwork.client.fetch, middleware)
99
+ : (0, common_1.createFetchFn)(middleware);
100
+ }
101
+ return newNetwork;
102
+ }
103
+ if (typeof arg2 === 'string') {
104
+ const middleware = (0, common_1.createApiKeyMiddleware)({ apiKey: arg2 });
105
+ newNetwork.client.fetch = newNetwork.client.fetch
106
+ ? (0, common_1.createFetchFn)(newNetwork.client.fetch, middleware)
107
+ : (0, common_1.createFetchFn)(middleware);
108
+ return newNetwork;
109
+ }
110
+ return newNetwork;
111
+ }
112
+ exports.createNetwork = createNetwork;
83
113
  //# sourceMappingURL=network.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"network.js","sourceRoot":"","sources":["../src/network.ts"],"names":[],"mappings":";;;AAAA,2CAOwB;AACxB,2CAAyF;AA0B5E,QAAA,cAAc,GAAkB;IAC3C,OAAO,EAAE,mBAAO,CAAC,OAAO;IACxB,kBAAkB,EAAE,8BAAkB,CAAC,OAAO;IAC9C,aAAa,EAAE,yBAAa,CAAC,OAAO;IACpC,UAAU,EAAE,IAAI;IAChB,WAAW,EAAE,+BAA+B;IAC5C,cAAc,EAAE;QACd,SAAS,EAAE,0BAAc,CAAC,gBAAgB;QAC1C,QAAQ,EAAE,0BAAc,CAAC,eAAe;KACzC;IACD,MAAM,EAAE,EAAE,OAAO,EAAE,yBAAgB,EAAE;CACtC,CAAC;AAEW,QAAA,cAAc,GAAkB;IAC3C,OAAO,EAAE,mBAAO,CAAC,OAAO;IACxB,kBAAkB,EAAE,8BAAkB,CAAC,OAAO;IAC9C,aAAa,EAAE,yBAAa,CAAC,OAAO;IACpC,UAAU,EAAE,IAAI;IAChB,WAAW,EAAE,+BAA+B;IAC5C,cAAc,EAAE;QACd,SAAS,EAAE,0BAAc,CAAC,gBAAgB;QAC1C,QAAQ,EAAE,0BAAc,CAAC,eAAe;KACzC;IACD,MAAM,EAAE,EAAE,OAAO,EAAE,yBAAgB,EAAE;CACtC,CAAC;AAEW,QAAA,aAAa,GAAkB;IAC1C,GAAG,sBAAc;IACjB,cAAc,EAAE,EAAE,GAAG,sBAAc,CAAC,cAAc,EAAE;IACpD,UAAU,EAAE,IAAI;IAChB,MAAM,EAAE,EAAE,OAAO,EAAE,mBAAU,EAAE;CAChC,CAAC;AAEW,QAAA,cAAc,GAAkB;IAC3C,GAAG,qBAAa;IAChB,cAAc,EAAE,EAAE,GAAG,qBAAa,CAAC,cAAc,EAAE;IACnD,MAAM,EAAE,EAAE,GAAG,qBAAa,CAAC,MAAM,EAAE;CACpC,CAAC;AAGW,QAAA,cAAc,GAAG,CAAC,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,CAAU,CAAC;AAcnF,SAAgB,eAAe,CAAC,IAAuB;IACrD,QAAQ,IAAI,EAAE;QACZ,KAAK,SAAS;YACZ,OAAO,sBAAc,CAAC;QACxB,KAAK,SAAS;YACZ,OAAO,sBAAc,CAAC;QACxB,KAAK,QAAQ;YACX,OAAO,qBAAa,CAAC;QACvB,KAAK,SAAS;YACZ,OAAO,sBAAc,CAAC;QACxB;YACE,MAAM,IAAI,KAAK,CAAC,yBAAyB,IAAI,EAAE,CAAC,CAAC;KACpD;AACH,CAAC;AAbD,0CAaC;AAGD,SAAgB,WAAW,CAAC,OAA0C;IACpE,IAAI,OAAO,OAAO,KAAK,QAAQ;QAAE,OAAO,eAAe,CAAC,OAAO,CAAC,CAAC;IACjE,OAAO,OAAO,CAAC;AACjB,CAAC;AAHD,kCAGC;AAGD,SAAgB,qBAAqB,CAAC,OAA2C;IAC/E,IAAI,CAAC,OAAO;QAAE,OAAO,yBAAgB,CAAC;IAEtC,OAAO,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC;IAE/B,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,kBAAkB,KAAK,8BAAkB,CAAC,OAAO;QAC1E,CAAC,CAAC,yBAAgB;QAClB,CAAC,CAAC,OAAO,CAAC,UAAU,KAAK,IAAI;YAC3B,CAAC,CAAC,mBAAU;YACZ,CAAC,CAAC,yBAAgB,CAAC;AACzB,CAAC;AAVD,sDAUC;AAKD,SAAgB,iBAAiB,CAAC,OAAsB;IACtD,IAAI,OAAO,CAAC,MAAM,CAAC,KAAK;QAAE,OAAO,OAAO,CAAC,MAA8B,CAAC;IACxE,OAAO;QACL,GAAG,OAAO,CAAC,MAAM;QACjB,KAAK,EAAE,IAAA,sBAAa,GAAE;KACvB,CAAC;AACJ,CAAC;AAND,8CAMC"}
1
+ {"version":3,"file":"network.js","sourceRoot":"","sources":["../src/network.ts"],"names":[],"mappings":"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"}
package/dist/umd/index.js CHANGED
@@ -1,2 +1,2 @@
1
- !function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.StacksNetwork=t():e.StacksNetwork=t()}(this,(()=>(()=>{"use strict";var e={d:(t,n)=>{for(var r in n)e.o(n,r)&&!e.o(t,r)&&Object.defineProperty(t,r,{enumerable:!0,get:n[r]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r:e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}},t={};e.r(t),e.d(t,{AddressVersion:()=>s,ChainId:()=>n,DEFAULT_CHAIN_ID:()=>i,DEFAULT_TRANSACTION_VERSION:()=>a,PeerNetworkId:()=>r,STACKS_DEVNET:()=>j,STACKS_MAINNET:()=>N,STACKS_MOCKNET:()=>V,STACKS_TESTNET:()=>O,StacksNetworks:()=>v,TransactionVersion:()=>o,clientFromNetwork:()=>E,defaultUrlFromNetwork:()=>I,networkFrom:()=>P,networkFromName:()=>A,whenTransactionVersion:()=>c});var n=(e=>(e[e.Mainnet=1]="Mainnet",e[e.Testnet=2147483648]="Testnet",e))(n||{}),r=(e=>(e[e.Mainnet=385875968]="Mainnet",e[e.Testnet=4278190080]="Testnet",e))(r||{});const i=1;var o=(e=>(e[e.Mainnet=0]="Mainnet",e[e.Testnet=128]="Testnet",e))(o||{}),s=(e=>(e[e.MainnetSingleSig=22]="MainnetSingleSig",e[e.MainnetMultiSig=20]="MainnetMultiSig",e[e.TestnetSingleSig=26]="TestnetSingleSig",e[e.TestnetMultiSig=21]="TestnetMultiSig",e))(s||{});const a=0;function c(e){return t=>t[e]}const l="https://api.mainnet.hiro.so",u="https://api.testnet.hiro.so",d="http://localhost:3999",f={referrerPolicy:"origin",headers:{"x-hiro-product":"stacksjs"}};async function p(e,t){const n={};return Object.assign(n,f,t),await fetch(e,n)}function S(...e){const{fetchLib:t,middlewares:n}=function(e){let t=p,n=[];return e.length>0&&"function"==typeof e[0]&&(t=e.shift()),e.length>0&&(n=e),{fetchLib:t,middlewares:n}}(e);return async(e,r)=>{let i={url:e,init:r??{}};for(const e of n)"function"==typeof e.pre&&(i=await Promise.resolve(e.pre({fetch:t,...i}))??i);let o=await t(i.url,i.init);for(const e of n)if("function"==typeof e.post){const n=await Promise.resolve(e.post({fetch:t,url:i.url,init:i.init,response:o?.clone()??o}));o=n??o}return o}}var g=Object.defineProperty,T=Object.defineProperties,y=Object.getOwnPropertyDescriptors,m=Object.getOwnPropertySymbols,b=Object.prototype.hasOwnProperty,h=Object.prototype.propertyIsEnumerable,w=(e,t,n)=>t in e?g(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,M=(e,t)=>{for(var n in t||(t={}))b.call(t,n)&&w(e,n,t[n]);if(m)for(var n of m(t))h.call(t,n)&&w(e,n,t[n]);return e},k=(e,t)=>T(e,y(t));const N={chainId:n.Mainnet,transactionVersion:o.Mainnet,peerNetworkId:r.Mainnet,magicBytes:"X2",bootAddress:"SP000000000000000000002Q6VF78",addressVersion:{singleSig:s.MainnetSingleSig,multiSig:s.MainnetMultiSig},client:{baseUrl:l}},O={chainId:n.Testnet,transactionVersion:o.Testnet,peerNetworkId:r.Testnet,magicBytes:"T2",bootAddress:"ST000000000000000000002AMW42H",addressVersion:{singleSig:s.TestnetSingleSig,multiSig:s.TestnetMultiSig},client:{baseUrl:u}},j=k(M({},O),{addressVersion:M({},O.addressVersion),magicBytes:"id",client:{baseUrl:d}}),V=k(M({},j),{addressVersion:M({},j.addressVersion),client:M({},j.client)}),v=["mainnet","testnet","devnet","mocknet"];function A(e){switch(e){case"mainnet":return N;case"testnet":return O;case"devnet":return j;case"mocknet":return V;default:throw new Error(`Unknown network name: ${e}`)}}function P(e){return"string"==typeof e?A(e):e}function I(e){return e&&(e=P(e))&&e.transactionVersion!==o.Mainnet?"id"===e.magicBytes?d:u:l}function E(e){return e.client.fetch?e.client:k(M({},e.client),{fetch:S()})}return t})()));
1
+ !function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.StacksNetwork=t():e.StacksNetwork=t()}(this,(()=>(()=>{"use strict";var e={d:(t,n)=>{for(var i in n)e.o(n,i)&&!e.o(t,i)&&Object.defineProperty(t,i,{enumerable:!0,get:n[i]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r:e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}},t={};e.r(t),e.d(t,{AddressVersion:()=>s,ChainId:()=>n,DEFAULT_CHAIN_ID:()=>r,DEFAULT_TRANSACTION_VERSION:()=>c,PeerNetworkId:()=>i,STACKS_DEVNET:()=>V,STACKS_MAINNET:()=>O,STACKS_MOCKNET:()=>v,STACKS_TESTNET:()=>j,StacksNetworks:()=>A,TransactionVersion:()=>o,clientFromNetwork:()=>U,createNetwork:()=>_,defaultUrlFromNetwork:()=>E,networkFrom:()=>I,networkFromName:()=>P,whenTransactionVersion:()=>a});var n=(e=>(e[e.Mainnet=1]="Mainnet",e[e.Testnet=2147483648]="Testnet",e))(n||{}),i=(e=>(e[e.Mainnet=385875968]="Mainnet",e[e.Testnet=4278190080]="Testnet",e))(i||{});const r=1;var o=(e=>(e[e.Mainnet=0]="Mainnet",e[e.Testnet=128]="Testnet",e))(o||{}),s=(e=>(e[e.MainnetSingleSig=22]="MainnetSingleSig",e[e.MainnetMultiSig=20]="MainnetMultiSig",e[e.TestnetSingleSig=26]="TestnetSingleSig",e[e.TestnetMultiSig=21]="TestnetMultiSig",e))(s||{});const c=0;function a(e){return t=>t[e]}const l="https://api.mainnet.hiro.so",f="https://api.testnet.hiro.so",u="http://localhost:3999",d={referrerPolicy:"origin",headers:{"x-hiro-product":"stacksjs"}};async function p(e,t){const n={};return Object.assign(n,d,t),await fetch(e,n)}function g({apiKey:e,host:t=/(.*)api(.*)(\.stacks\.co|\.hiro\.so)$/i,httpHeader:n="x-api-key"}){return{pre:i=>{(function(e,t){return"string"==typeof t?t===e:t.exec(e)})(new URL(i.url).host,t)&&(i.init.headers instanceof Headers?i.init.headers:i.init.headers=new Headers(i.init.headers)).set(n,e)}}}function h(...e){const{fetchLib:t,middlewares:n}=function(e){let t=p,n=[];return e.length>0&&"function"==typeof e[0]&&(t=e.shift()),e.length>0&&(n=e),{fetchLib:t,middlewares:n}}(e);return async(e,i)=>{let r={url:e,init:i??{}};for(const e of n)"function"==typeof e.pre&&(r=await Promise.resolve(e.pre({fetch:t,...r}))??r);let o=await t(r.url,r.init);for(const e of n)if("function"==typeof e.post){const n=await Promise.resolve(e.post({fetch:t,url:r.url,init:r.init,response:o?.clone()??o}));o=n??o}return o}}var S=Object.defineProperty,y=Object.defineProperties,b=Object.getOwnPropertyDescriptors,T=Object.getOwnPropertySymbols,w=Object.prototype.hasOwnProperty,m=Object.prototype.propertyIsEnumerable,M=(e,t,n)=>t in e?S(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,k=(e,t)=>{for(var n in t||(t={}))w.call(t,n)&&M(e,n,t[n]);if(T)for(var n of T(t))m.call(t,n)&&M(e,n,t[n]);return e},N=(e,t)=>y(e,b(t));const O={chainId:n.Mainnet,transactionVersion:o.Mainnet,peerNetworkId:i.Mainnet,magicBytes:"X2",bootAddress:"SP000000000000000000002Q6VF78",addressVersion:{singleSig:s.MainnetSingleSig,multiSig:s.MainnetMultiSig},client:{baseUrl:l}},j={chainId:n.Testnet,transactionVersion:o.Testnet,peerNetworkId:i.Testnet,magicBytes:"T2",bootAddress:"ST000000000000000000002AMW42H",addressVersion:{singleSig:s.TestnetSingleSig,multiSig:s.TestnetMultiSig},client:{baseUrl:f}},V=N(k({},j),{addressVersion:k({},j.addressVersion),magicBytes:"id",client:{baseUrl:u}}),v=N(k({},V),{addressVersion:k({},V.addressVersion),client:k({},V.client)}),A=["mainnet","testnet","devnet","mocknet"];function P(e){switch(e){case"mainnet":return O;case"testnet":return j;case"devnet":return V;case"mocknet":return v;default:throw new Error(`Unknown network name: ${e}`)}}function I(e){return"string"==typeof e?P(e):e}function E(e){return e&&(e=I(e))&&e.transactionVersion!==o.Mainnet?"id"===e.magicBytes?u:f:l}function U(e){return e.client.fetch?e.client:N(k({},e.client),{fetch:h()})}function _(e,t){var n,i;const r=I("object"==typeof e&&"network"in e?e.network:e),o=N(k({},r),{addressVersion:k({},r.addressVersion),client:k({},r.client)});if("object"==typeof e&&"network"in e){if(e.client&&(o.client.baseUrl=null!=(n=e.client.baseUrl)?n:o.client.baseUrl,o.client.fetch=null!=(i=e.client.fetch)?i:o.client.fetch),"string"==typeof e.apiKey){const t=g(e);o.client.fetch=o.client.fetch?h(o.client.fetch,t):h(t)}return o}if("string"==typeof t){const e=g({apiKey:t});return o.client.fetch=o.client.fetch?h(o.client.fetch,e):h(e),o}return o}return t})()));
2
2
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","mappings":"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","sources":["webpack://StacksNetwork/webpack/universalModuleDefinition","webpack://StacksNetwork/webpack/bootstrap","webpack://StacksNetwork/webpack/runtime/define property getters","webpack://StacksNetwork/webpack/runtime/hasOwnProperty shorthand","webpack://StacksNetwork/webpack/runtime/make namespace object","webpack://StacksNetwork/./src/constants.ts","webpack://StacksNetwork/../common/dist/esm/constants.js","webpack://StacksNetwork/../common/dist/esm/fetch.js","webpack://StacksNetwork/./src/network.ts"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"StacksNetwork\"] = factory();\n\telse\n\t\troot[\"StacksNetwork\"] = factory();\n})(this, () => {\nreturn ","// The require scope\nvar __webpack_require__ = {};\n\n","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","/**\n * The chain ID (unsigned 32-bit integer), used so transactions can't be replayed on other chains.\n * Similar to the {@link TransactionVersion}.\n */\nexport enum ChainId {\n Mainnet = 0x00000001,\n Testnet = 0x80000000,\n}\n\n/**\n * The **peer** network ID.\n * Typically not used in signing, but used for broadcasting to the P2P network.\n * It can also be used to determine the parent of a subnet.\n *\n * **Attention:**\n * For mainnet/testnet the v2/info response `.network_id` refers to the chain ID.\n * For subnets the v2/info response `.network_id` refers to the peer network ID and the chain ID (they are the same for subnets).\n * The `.parent_network_id` refers to the actual peer network ID (of the parent) in both cases.\n */\nexport enum PeerNetworkId {\n Mainnet = 0x17000000,\n Testnet = 0xff000000,\n}\n\nexport const DEFAULT_CHAIN_ID = ChainId.Mainnet;\n\n/**\n * The transaction version, used so transactions can't be replayed on other networks.\n * Similar to the {@link ChainId}.\n * Used internally for serializing and deserializing transactions.\n */\nexport enum TransactionVersion {\n Mainnet = 0x00,\n Testnet = 0x80,\n}\n\n/**\n * Address versions for identifying address types in an encoded Stacks address.\n * The address version is a single byte, indicating the address type.\n * Every Stacks address starts with `S` followed by a single character indicating the address version.\n * The second character is the c32-encoded AddressVersion byte.\n */\nexport enum AddressVersion {\n /** `P` — A single-sig address for mainnet (starting with `SP`) */\n MainnetSingleSig = 22,\n /** `M` — A multi-sig address for mainnet (starting with `SM`) */\n MainnetMultiSig = 20,\n /** `T` — A single-sig address for testnet (starting with `ST`) */\n TestnetSingleSig = 26,\n /** `N` — A multi-sig address for testnet (starting with `SN`) */\n TestnetMultiSig = 21,\n}\n\nexport const DEFAULT_TRANSACTION_VERSION = TransactionVersion.Mainnet;\n\n/** @ignore */\nexport function whenTransactionVersion(transactionVersion: TransactionVersion) {\n return <T>(map: Record<TransactionVersion, T>): T => map[transactionVersion];\n}\n","export const HIRO_MAINNET_URL = 'https://api.mainnet.hiro.so';\nexport const HIRO_TESTNET_URL = 'https://api.testnet.hiro.so';\nexport const DEVNET_URL = 'http://localhost:3999';\nexport const GAIA_URL = 'https://hub.blockstack.org';\nexport const PRIVATE_KEY_BYTES_COMPRESSED = 33;\nexport const PRIVATE_KEY_BYTES_UNCOMPRESSED = 32;\n//# sourceMappingURL=constants.js.map","const defaultFetchOpts = {\n referrerPolicy: 'origin',\n headers: {\n 'x-hiro-product': 'stacksjs',\n },\n};\nexport const getFetchOptions = () => {\n return defaultFetchOpts;\n};\nexport const setFetchOptions = (ops) => {\n return Object.assign(defaultFetchOpts, ops);\n};\nexport async function fetchWrapper(input, init) {\n const fetchOpts = {};\n Object.assign(fetchOpts, defaultFetchOpts, init);\n const fetchResult = await fetch(input, fetchOpts);\n return fetchResult;\n}\nexport function hostMatches(host, pattern) {\n if (typeof pattern === 'string')\n return pattern === host;\n return pattern.exec(host);\n}\nexport function createApiKeyMiddleware({ apiKey, host = /(.*)api(.*)(\\.stacks\\.co|\\.hiro\\.so)$/i, httpHeader = 'x-api-key', }) {\n return {\n pre: context => {\n const reqUrl = new URL(context.url);\n if (!hostMatches(reqUrl.host, host))\n return;\n const headers = context.init.headers instanceof Headers\n ? context.init.headers\n : (context.init.headers = new Headers(context.init.headers));\n headers.set(httpHeader, apiKey);\n },\n };\n}\nfunction argsForCreateFetchFn(args) {\n let fetchLib = fetchWrapper;\n let middlewares = [];\n if (args.length > 0 && typeof args[0] === 'function') {\n fetchLib = args.shift();\n }\n if (args.length > 0) {\n middlewares = args;\n }\n return { fetchLib, middlewares };\n}\nexport function createFetchFn(...args) {\n const { fetchLib, middlewares } = argsForCreateFetchFn(args);\n const fetchFn = async (url, init) => {\n let fetchParams = { url, init: init ?? {} };\n for (const middleware of middlewares) {\n if (typeof middleware.pre === 'function') {\n const result = await Promise.resolve(middleware.pre({\n fetch: fetchLib,\n ...fetchParams,\n }));\n fetchParams = result ?? fetchParams;\n }\n }\n let response = await fetchLib(fetchParams.url, fetchParams.init);\n for (const middleware of middlewares) {\n if (typeof middleware.post === 'function') {\n const result = await Promise.resolve(middleware.post({\n fetch: fetchLib,\n url: fetchParams.url,\n init: fetchParams.init,\n response: response?.clone() ?? response,\n }));\n response = result ?? response;\n }\n }\n return response;\n };\n return fetchFn;\n}\n//# sourceMappingURL=fetch.js.map","import {\n ClientOpts,\n DEVNET_URL,\n FetchFn,\n HIRO_MAINNET_URL,\n HIRO_TESTNET_URL,\n createFetchFn,\n} from '@stacks/common';\nimport { AddressVersion, ChainId, PeerNetworkId, TransactionVersion } from './constants';\nimport { ClientParam } from '@stacks/common';\n\nexport type StacksNetwork = {\n chainId: number;\n transactionVersion: number; // todo: txVersion better?\n peerNetworkId: number;\n magicBytes: string;\n bootAddress: string;\n addressVersion: {\n singleSig: number;\n multiSig: number;\n };\n // todo: add check32 character bytes string\n client: {\n baseUrl: string; // URL is always required\n fetch?: FetchFn; // fetch is optional and will be created by default in fetch helpers\n };\n};\n\nexport interface NetworkParam {\n network?: StacksNetworkName | StacksNetwork;\n}\n\nexport type NetworkClientParam = NetworkParam & ClientParam;\n\nexport const STACKS_MAINNET: StacksNetwork = {\n chainId: ChainId.Mainnet,\n transactionVersion: TransactionVersion.Mainnet,\n peerNetworkId: PeerNetworkId.Mainnet,\n magicBytes: 'X2', // todo: comment bytes version of magic bytes\n bootAddress: 'SP000000000000000000002Q6VF78',\n addressVersion: {\n singleSig: AddressVersion.MainnetSingleSig,\n multiSig: AddressVersion.MainnetMultiSig,\n },\n client: { baseUrl: HIRO_MAINNET_URL },\n};\n\nexport const STACKS_TESTNET: StacksNetwork = {\n chainId: ChainId.Testnet,\n transactionVersion: TransactionVersion.Testnet,\n peerNetworkId: PeerNetworkId.Testnet,\n magicBytes: 'T2', // todo: comment bytes version of magic bytes\n bootAddress: 'ST000000000000000000002AMW42H',\n addressVersion: {\n singleSig: AddressVersion.TestnetSingleSig,\n multiSig: AddressVersion.TestnetMultiSig,\n },\n client: { baseUrl: HIRO_TESTNET_URL },\n};\n\nexport const STACKS_DEVNET: StacksNetwork = {\n ...STACKS_TESTNET, // todo: ensure deep copy\n addressVersion: { ...STACKS_TESTNET.addressVersion }, // deep copy\n magicBytes: 'id', // todo: comment bytes version of magic bytes\n client: { baseUrl: DEVNET_URL },\n};\n\nexport const STACKS_MOCKNET: StacksNetwork = {\n ...STACKS_DEVNET,\n addressVersion: { ...STACKS_DEVNET.addressVersion }, // deep copy\n client: { ...STACKS_DEVNET.client }, // deep copy\n};\n\n/** @ignore internal */\nexport const StacksNetworks = ['mainnet', 'testnet', 'devnet', 'mocknet'] as const;\n/** The enum-style names of different common Stacks networks */\nexport type StacksNetworkName = (typeof StacksNetworks)[number];\n\n/**\n * Returns the default network for a given name\n * @example\n * ```ts\n * networkFromName('mainnet') // same as STACKS_MAINNET\n * networkFromName('testnet') // same as STACKS_TESTNET\n * networkFromName('devnet') // same as STACKS_DEVNET\n * networkFromName('mocknet') // same as STACKS_MOCKNET\n * ```\n */\nexport function networkFromName(name: StacksNetworkName) {\n switch (name) {\n case 'mainnet':\n return STACKS_MAINNET;\n case 'testnet':\n return STACKS_TESTNET;\n case 'devnet':\n return STACKS_DEVNET;\n case 'mocknet':\n return STACKS_MOCKNET;\n default:\n throw new Error(`Unknown network name: ${name}`);\n }\n}\n\n/** @ignore */\nexport function networkFrom(network: StacksNetworkName | StacksNetwork) {\n if (typeof network === 'string') return networkFromName(network);\n return network;\n}\n\n/** @ignore */\nexport function defaultUrlFromNetwork(network?: StacksNetworkName | StacksNetwork) {\n if (!network) return HIRO_MAINNET_URL; // default to mainnet if no network is given\n\n network = networkFrom(network);\n\n return !network || network.transactionVersion === TransactionVersion.Mainnet\n ? HIRO_MAINNET_URL // default to mainnet if txVersion is mainnet\n : network.magicBytes === 'id'\n ? DEVNET_URL // default to devnet if magicBytes are devnet\n : HIRO_TESTNET_URL;\n}\n\n/**\n * Returns the client of a network, creating a new fetch function if none is available\n */\nexport function clientFromNetwork(network: StacksNetwork): Required<ClientOpts> {\n if (network.client.fetch) return network.client as Required<ClientOpts>;\n return {\n ...network.client,\n fetch: createFetchFn(),\n };\n}\n"],"names":["root","factory","exports","module","define","amd","this","__webpack_require__","definition","key","o","Object","defineProperty","enumerable","get","obj","prop","prototype","hasOwnProperty","call","Symbol","toStringTag","value","ChainId","PeerNetworkId","DEFAULT_CHAIN_ID","TransactionVersion","AddressVersion","DEFAULT_TRANSACTION_VERSION","whenTransactionVersion","transactionVersion","map","HIRO_MAINNET_URL","HIRO_TESTNET_URL","DEVNET_URL","defaultFetchOpts","referrerPolicy","headers","async","fetchWrapper","input","init","fetchOpts","assign","fetch","createFetchFn","args","fetchLib","middlewares","length","shift","argsForCreateFetchFn","url","fetchParams","middleware","pre","Promise","resolve","response","post","result","clone","STACKS_MAINNET","chainId","Mainnet","peerNetworkId","magicBytes","bootAddress","addressVersion","singleSig","MainnetSingleSig","multiSig","MainnetMultiSig","client","baseUrl","STACKS_TESTNET","Testnet","TestnetSingleSig","TestnetMultiSig","STACKS_DEVNET","STACKS_MOCKNET","StacksNetworks","networkFromName","name","Error","networkFrom","network","defaultUrlFromNetwork","clientFromNetwork"],"sourceRoot":""}
1
+ {"version":3,"file":"index.js","mappings":"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","sources":["webpack://StacksNetwork/webpack/universalModuleDefinition","webpack://StacksNetwork/webpack/bootstrap","webpack://StacksNetwork/webpack/runtime/define property getters","webpack://StacksNetwork/webpack/runtime/hasOwnProperty shorthand","webpack://StacksNetwork/webpack/runtime/make namespace object","webpack://StacksNetwork/./src/constants.ts","webpack://StacksNetwork/../common/dist/esm/constants.js","webpack://StacksNetwork/../common/dist/esm/fetch.js","webpack://StacksNetwork/./src/network.ts"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"StacksNetwork\"] = factory();\n\telse\n\t\troot[\"StacksNetwork\"] = factory();\n})(this, () => {\nreturn ","// The require scope\nvar __webpack_require__ = {};\n\n","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","/**\n * The chain ID (unsigned 32-bit integer), used so transactions can't be replayed on other chains.\n * Similar to the {@link TransactionVersion}.\n */\nexport enum ChainId {\n Mainnet = 0x00000001,\n Testnet = 0x80000000,\n}\n\n/**\n * The **peer** network ID.\n * Typically not used in signing, but used for broadcasting to the P2P network.\n * It can also be used to determine the parent of a subnet.\n *\n * **Attention:**\n * For mainnet/testnet the v2/info response `.network_id` refers to the chain ID.\n * For subnets the v2/info response `.network_id` refers to the peer network ID and the chain ID (they are the same for subnets).\n * The `.parent_network_id` refers to the actual peer network ID (of the parent) in both cases.\n */\nexport enum PeerNetworkId {\n Mainnet = 0x17000000,\n Testnet = 0xff000000,\n}\n\nexport const DEFAULT_CHAIN_ID = ChainId.Mainnet;\n\n/**\n * The transaction version, used so transactions can't be replayed on other networks.\n * Similar to the {@link ChainId}.\n * Used internally for serializing and deserializing transactions.\n */\nexport enum TransactionVersion {\n Mainnet = 0x00,\n Testnet = 0x80,\n}\n\n/**\n * Address versions for identifying address types in an encoded Stacks address.\n * The address version is a single byte, indicating the address type.\n * Every Stacks address starts with `S` followed by a single character indicating the address version.\n * The second character is the c32-encoded AddressVersion byte.\n */\nexport enum AddressVersion {\n /** `P` — A single-sig address for mainnet (starting with `SP`) */\n MainnetSingleSig = 22,\n /** `M` — A multi-sig address for mainnet (starting with `SM`) */\n MainnetMultiSig = 20,\n /** `T` — A single-sig address for testnet (starting with `ST`) */\n TestnetSingleSig = 26,\n /** `N` — A multi-sig address for testnet (starting with `SN`) */\n TestnetMultiSig = 21,\n}\n\nexport const DEFAULT_TRANSACTION_VERSION = TransactionVersion.Mainnet;\n\n/** @ignore */\nexport function whenTransactionVersion(transactionVersion: TransactionVersion) {\n return <T>(map: Record<TransactionVersion, T>): T => map[transactionVersion];\n}\n","export const HIRO_MAINNET_URL = 'https://api.mainnet.hiro.so';\nexport const HIRO_TESTNET_URL = 'https://api.testnet.hiro.so';\nexport const DEVNET_URL = 'http://localhost:3999';\nexport const GAIA_URL = 'https://hub.blockstack.org';\nexport const PRIVATE_KEY_BYTES_COMPRESSED = 33;\nexport const PRIVATE_KEY_BYTES_UNCOMPRESSED = 32;\n//# sourceMappingURL=constants.js.map","const defaultFetchOpts = {\n referrerPolicy: 'origin',\n headers: {\n 'x-hiro-product': 'stacksjs',\n },\n};\nexport const getFetchOptions = () => {\n return defaultFetchOpts;\n};\nexport const setFetchOptions = (ops) => {\n return Object.assign(defaultFetchOpts, ops);\n};\nexport async function fetchWrapper(input, init) {\n const fetchOpts = {};\n Object.assign(fetchOpts, defaultFetchOpts, init);\n const fetchResult = await fetch(input, fetchOpts);\n return fetchResult;\n}\nexport function hostMatches(host, pattern) {\n if (typeof pattern === 'string')\n return pattern === host;\n return pattern.exec(host);\n}\nexport function createApiKeyMiddleware({ apiKey, host = /(.*)api(.*)(\\.stacks\\.co|\\.hiro\\.so)$/i, httpHeader = 'x-api-key', }) {\n return {\n pre: context => {\n const reqUrl = new URL(context.url);\n if (!hostMatches(reqUrl.host, host))\n return;\n const headers = context.init.headers instanceof Headers\n ? context.init.headers\n : (context.init.headers = new Headers(context.init.headers));\n headers.set(httpHeader, apiKey);\n },\n };\n}\nfunction argsForCreateFetchFn(args) {\n let fetchLib = fetchWrapper;\n let middlewares = [];\n if (args.length > 0 && typeof args[0] === 'function') {\n fetchLib = args.shift();\n }\n if (args.length > 0) {\n middlewares = args;\n }\n return { fetchLib, middlewares };\n}\nexport function createFetchFn(...args) {\n const { fetchLib, middlewares } = argsForCreateFetchFn(args);\n const fetchFn = async (url, init) => {\n let fetchParams = { url, init: init ?? {} };\n for (const middleware of middlewares) {\n if (typeof middleware.pre === 'function') {\n const result = await Promise.resolve(middleware.pre({\n fetch: fetchLib,\n ...fetchParams,\n }));\n fetchParams = result ?? fetchParams;\n }\n }\n let response = await fetchLib(fetchParams.url, fetchParams.init);\n for (const middleware of middlewares) {\n if (typeof middleware.post === 'function') {\n const result = await Promise.resolve(middleware.post({\n fetch: fetchLib,\n url: fetchParams.url,\n init: fetchParams.init,\n response: response?.clone() ?? response,\n }));\n response = result ?? response;\n }\n }\n return response;\n };\n return fetchFn;\n}\n//# sourceMappingURL=fetch.js.map","import {\n DEVNET_URL,\n FetchFn,\n HIRO_MAINNET_URL,\n HIRO_TESTNET_URL,\n createFetchFn,\n createApiKeyMiddleware,\n ClientOpts,\n ApiKeyMiddlewareOpts,\n} from '@stacks/common';\nimport { AddressVersion, ChainId, PeerNetworkId, TransactionVersion } from './constants';\nimport { ClientParam } from '@stacks/common';\n\nexport type StacksNetwork = {\n chainId: number;\n transactionVersion: number;\n peerNetworkId: number;\n magicBytes: string;\n bootAddress: string;\n addressVersion: {\n singleSig: number;\n multiSig: number;\n };\n // todo: add check32 character bytes string\n client: {\n baseUrl: string; // URL is always required\n fetch?: FetchFn; // fetch is optional and will be created by default in fetch helpers\n };\n};\n\nexport interface NetworkParam {\n network?: StacksNetworkName | StacksNetwork;\n}\n\nexport type NetworkClientParam = NetworkParam & ClientParam;\n\nexport const STACKS_MAINNET: StacksNetwork = {\n chainId: ChainId.Mainnet,\n transactionVersion: TransactionVersion.Mainnet,\n peerNetworkId: PeerNetworkId.Mainnet,\n magicBytes: 'X2', // todo: comment bytes version of magic bytes\n bootAddress: 'SP000000000000000000002Q6VF78',\n addressVersion: {\n singleSig: AddressVersion.MainnetSingleSig,\n multiSig: AddressVersion.MainnetMultiSig,\n },\n client: { baseUrl: HIRO_MAINNET_URL },\n};\n\nexport const STACKS_TESTNET: StacksNetwork = {\n chainId: ChainId.Testnet,\n transactionVersion: TransactionVersion.Testnet,\n peerNetworkId: PeerNetworkId.Testnet,\n magicBytes: 'T2', // todo: comment bytes version of magic bytes\n bootAddress: 'ST000000000000000000002AMW42H',\n addressVersion: {\n singleSig: AddressVersion.TestnetSingleSig,\n multiSig: AddressVersion.TestnetMultiSig,\n },\n client: { baseUrl: HIRO_TESTNET_URL },\n};\n\nexport const STACKS_DEVNET: StacksNetwork = {\n ...STACKS_TESTNET, // todo: ensure deep copy\n addressVersion: { ...STACKS_TESTNET.addressVersion }, // deep copy\n magicBytes: 'id', // todo: comment bytes version of magic bytes\n client: { baseUrl: DEVNET_URL },\n};\n\nexport const STACKS_MOCKNET: StacksNetwork = {\n ...STACKS_DEVNET,\n addressVersion: { ...STACKS_DEVNET.addressVersion }, // deep copy\n client: { ...STACKS_DEVNET.client }, // deep copy\n};\n\n/** @ignore internal */\nexport const StacksNetworks = ['mainnet', 'testnet', 'devnet', 'mocknet'] as const;\n/** The enum-style names of different common Stacks networks */\nexport type StacksNetworkName = (typeof StacksNetworks)[number];\n\n/**\n * Returns the default network for a given name\n * @example\n * ```ts\n * networkFromName('mainnet') // same as STACKS_MAINNET\n * networkFromName('testnet') // same as STACKS_TESTNET\n * networkFromName('devnet') // same as STACKS_DEVNET\n * networkFromName('mocknet') // same as STACKS_MOCKNET\n * ```\n */\nexport function networkFromName(name: StacksNetworkName) {\n switch (name) {\n case 'mainnet':\n return STACKS_MAINNET;\n case 'testnet':\n return STACKS_TESTNET;\n case 'devnet':\n return STACKS_DEVNET;\n case 'mocknet':\n return STACKS_MOCKNET;\n default:\n throw new Error(`Unknown network name: ${name}`);\n }\n}\n\n/** @ignore */\nexport function networkFrom(network: StacksNetworkName | StacksNetwork) {\n if (typeof network === 'string') return networkFromName(network);\n return network;\n}\n\n/** @ignore */\nexport function defaultUrlFromNetwork(network?: StacksNetworkName | StacksNetwork) {\n if (!network) return HIRO_MAINNET_URL; // default to mainnet if no network is given\n\n network = networkFrom(network);\n\n return !network || network.transactionVersion === TransactionVersion.Mainnet\n ? HIRO_MAINNET_URL // default to mainnet if txVersion is mainnet\n : network.magicBytes === 'id'\n ? DEVNET_URL // default to devnet if magicBytes are devnet\n : HIRO_TESTNET_URL;\n}\n\n/**\n * Returns the client of a network, creating a new fetch function if none is available\n */\nexport function clientFromNetwork(network: StacksNetwork): Required<ClientOpts> {\n if (network.client.fetch) return network.client as Required<ClientOpts>;\n return {\n ...network.client,\n fetch: createFetchFn(),\n };\n}\n\n/**\n * Creates a customized Stacks network.\n *\n * This function allows you to create a network based on a predefined network\n * (mainnet, testnet, devnet, mocknet) or a custom network object. You can also customize\n * the network with an API key or other client options.\n *\n * @example\n * ```ts\n * // Create a basic network from a network name\n * const network = createNetwork('mainnet');\n * const network = createNetwork(STACKS_MAINNET);\n * ```\n *\n * @example\n * ```ts\n * // Create a network with an API key\n * const network = createNetwork('testnet', 'my-api-key');\n * const network = createNetwork(STACKS_TESTNET, 'my-api-key');\n * ```\n *\n * @example\n * ```ts\n * // Create a network with options object\n * const network = createNetwork({\n * network: 'mainnet',\n * apiKey: 'my-api-key',\n * });\n * ```\n *\n * @example\n * ```ts\n * // Create a network with options object with custom API key options\n * const network = createNetwork({\n * network: 'mainnet',\n * apiKey: 'my-api-key',\n * host: /\\.example\\.com$/, // default is /(.*)api(.*)(\\.stacks\\.co|\\.hiro\\.so)$/i\n * httpHeader: 'x-custom-api-key', // default is 'x-api-key'\n * });\n * ```\n *\n * @example\n * ```ts\n * // Create a network with custom client options\n * const network = createNetwork({\n * network: STACKS_TESTNET,\n * client: {\n * baseUrl: 'https://custom-api.example.com',\n * fetch: customFetchFunction\n * }\n * });\n * ```\n */\nexport function createNetwork(network: StacksNetworkName | StacksNetwork): StacksNetwork;\nexport function createNetwork(\n network: StacksNetworkName | StacksNetwork,\n apiKey: string\n): StacksNetwork;\nexport function createNetwork(\n options: {\n network: StacksNetworkName | StacksNetwork;\n client?: ClientOpts;\n } & Partial<ApiKeyMiddlewareOpts>\n): StacksNetwork;\nexport function createNetwork(\n arg1:\n | StacksNetworkName\n | StacksNetwork\n | ({\n network: StacksNetworkName | StacksNetwork;\n client?: ClientOpts;\n } & Partial<ApiKeyMiddlewareOpts>),\n arg2?: string\n): StacksNetwork {\n const baseNetwork = networkFrom(\n typeof arg1 === 'object' && 'network' in arg1 ? arg1.network : arg1\n );\n\n const newNetwork: StacksNetwork = {\n ...baseNetwork,\n addressVersion: { ...baseNetwork.addressVersion }, // deep copy\n client: { ...baseNetwork.client }, // deep copy\n };\n\n // Options object argument\n if (typeof arg1 === 'object' && 'network' in arg1) {\n if (arg1.client) {\n newNetwork.client.baseUrl = arg1.client.baseUrl ?? newNetwork.client.baseUrl;\n newNetwork.client.fetch = arg1.client.fetch ?? newNetwork.client.fetch;\n }\n\n if (typeof arg1.apiKey === 'string') {\n const middleware = createApiKeyMiddleware(arg1 as ApiKeyMiddlewareOpts);\n newNetwork.client.fetch = newNetwork.client.fetch\n ? createFetchFn(newNetwork.client.fetch, middleware)\n : createFetchFn(middleware);\n }\n\n return newNetwork;\n }\n\n // Additional API key argument\n if (typeof arg2 === 'string') {\n const middleware = createApiKeyMiddleware({ apiKey: arg2 });\n newNetwork.client.fetch = newNetwork.client.fetch\n ? createFetchFn(newNetwork.client.fetch, middleware)\n : createFetchFn(middleware);\n return newNetwork;\n }\n\n // Only network argument\n return newNetwork;\n}\n"],"names":["root","factory","exports","module","define","amd","this","__webpack_require__","definition","key","o","Object","defineProperty","enumerable","get","obj","prop","prototype","hasOwnProperty","call","Symbol","toStringTag","value","ChainId","PeerNetworkId","DEFAULT_CHAIN_ID","TransactionVersion","AddressVersion","DEFAULT_TRANSACTION_VERSION","whenTransactionVersion","transactionVersion","map","HIRO_MAINNET_URL","HIRO_TESTNET_URL","DEVNET_URL","defaultFetchOpts","referrerPolicy","headers","async","fetchWrapper","input","init","fetchOpts","assign","fetch","createApiKeyMiddleware","apiKey","host","httpHeader","pre","context","pattern","exec","hostMatches","URL","url","Headers","set","createFetchFn","args","fetchLib","middlewares","length","shift","argsForCreateFetchFn","fetchParams","middleware","Promise","resolve","response","post","result","clone","STACKS_MAINNET","chainId","Mainnet","peerNetworkId","magicBytes","bootAddress","addressVersion","singleSig","MainnetSingleSig","multiSig","MainnetMultiSig","client","baseUrl","STACKS_TESTNET","Testnet","TestnetSingleSig","TestnetMultiSig","STACKS_DEVNET","STACKS_MOCKNET","StacksNetworks","networkFromName","name","Error","networkFrom","network","defaultUrlFromNetwork","clientFromNetwork","createNetwork","arg1","arg2","baseNetwork","newNetwork"],"sourceRoot":""}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@stacks/network",
3
- "version": "7.1.1-pr.0+a8df8916",
3
+ "version": "7.1.2-pr.0+d24d3278",
4
4
  "description": "Library for Stacks network operations",
5
5
  "license": "MIT",
6
6
  "author": "Hiro Systems PBC (https://hiro.so)",
@@ -20,7 +20,7 @@
20
20
  "typecheck:watch": "npm run typecheck -- --watch"
21
21
  },
22
22
  "dependencies": {
23
- "@stacks/common": "^7.1.1-pr.0+a8df8916",
23
+ "@stacks/common": "^7.1.2-pr.0+d24d3278",
24
24
  "cross-fetch": "^3.1.5"
25
25
  },
26
26
  "devDependencies": {
@@ -52,5 +52,5 @@
52
52
  "bugs": {
53
53
  "url": "https://github.com/blockstack/blockstack.js/issues"
54
54
  },
55
- "gitHead": "a8df89160405af49e4e672cd1ef0abc2869272a9"
55
+ "gitHead": "d24d32780ecff734d3d53ef42e2d2e61b98b6705"
56
56
  }
package/src/network.ts CHANGED
@@ -1,17 +1,19 @@
1
1
  import {
2
- ClientOpts,
3
2
  DEVNET_URL,
4
3
  FetchFn,
5
4
  HIRO_MAINNET_URL,
6
5
  HIRO_TESTNET_URL,
7
6
  createFetchFn,
7
+ createApiKeyMiddleware,
8
+ ClientOpts,
9
+ ApiKeyMiddlewareOpts,
8
10
  } from '@stacks/common';
9
11
  import { AddressVersion, ChainId, PeerNetworkId, TransactionVersion } from './constants';
10
12
  import { ClientParam } from '@stacks/common';
11
13
 
12
14
  export type StacksNetwork = {
13
15
  chainId: number;
14
- transactionVersion: number; // todo: txVersion better?
16
+ transactionVersion: number;
15
17
  peerNetworkId: number;
16
18
  magicBytes: string;
17
19
  bootAddress: string;
@@ -130,3 +132,117 @@ export function clientFromNetwork(network: StacksNetwork): Required<ClientOpts>
130
132
  fetch: createFetchFn(),
131
133
  };
132
134
  }
135
+
136
+ /**
137
+ * Creates a customized Stacks network.
138
+ *
139
+ * This function allows you to create a network based on a predefined network
140
+ * (mainnet, testnet, devnet, mocknet) or a custom network object. You can also customize
141
+ * the network with an API key or other client options.
142
+ *
143
+ * @example
144
+ * ```ts
145
+ * // Create a basic network from a network name
146
+ * const network = createNetwork('mainnet');
147
+ * const network = createNetwork(STACKS_MAINNET);
148
+ * ```
149
+ *
150
+ * @example
151
+ * ```ts
152
+ * // Create a network with an API key
153
+ * const network = createNetwork('testnet', 'my-api-key');
154
+ * const network = createNetwork(STACKS_TESTNET, 'my-api-key');
155
+ * ```
156
+ *
157
+ * @example
158
+ * ```ts
159
+ * // Create a network with options object
160
+ * const network = createNetwork({
161
+ * network: 'mainnet',
162
+ * apiKey: 'my-api-key',
163
+ * });
164
+ * ```
165
+ *
166
+ * @example
167
+ * ```ts
168
+ * // Create a network with options object with custom API key options
169
+ * const network = createNetwork({
170
+ * network: 'mainnet',
171
+ * apiKey: 'my-api-key',
172
+ * host: /\.example\.com$/, // default is /(.*)api(.*)(\.stacks\.co|\.hiro\.so)$/i
173
+ * httpHeader: 'x-custom-api-key', // default is 'x-api-key'
174
+ * });
175
+ * ```
176
+ *
177
+ * @example
178
+ * ```ts
179
+ * // Create a network with custom client options
180
+ * const network = createNetwork({
181
+ * network: STACKS_TESTNET,
182
+ * client: {
183
+ * baseUrl: 'https://custom-api.example.com',
184
+ * fetch: customFetchFunction
185
+ * }
186
+ * });
187
+ * ```
188
+ */
189
+ export function createNetwork(network: StacksNetworkName | StacksNetwork): StacksNetwork;
190
+ export function createNetwork(
191
+ network: StacksNetworkName | StacksNetwork,
192
+ apiKey: string
193
+ ): StacksNetwork;
194
+ export function createNetwork(
195
+ options: {
196
+ network: StacksNetworkName | StacksNetwork;
197
+ client?: ClientOpts;
198
+ } & Partial<ApiKeyMiddlewareOpts>
199
+ ): StacksNetwork;
200
+ export function createNetwork(
201
+ arg1:
202
+ | StacksNetworkName
203
+ | StacksNetwork
204
+ | ({
205
+ network: StacksNetworkName | StacksNetwork;
206
+ client?: ClientOpts;
207
+ } & Partial<ApiKeyMiddlewareOpts>),
208
+ arg2?: string
209
+ ): StacksNetwork {
210
+ const baseNetwork = networkFrom(
211
+ typeof arg1 === 'object' && 'network' in arg1 ? arg1.network : arg1
212
+ );
213
+
214
+ const newNetwork: StacksNetwork = {
215
+ ...baseNetwork,
216
+ addressVersion: { ...baseNetwork.addressVersion }, // deep copy
217
+ client: { ...baseNetwork.client }, // deep copy
218
+ };
219
+
220
+ // Options object argument
221
+ if (typeof arg1 === 'object' && 'network' in arg1) {
222
+ if (arg1.client) {
223
+ newNetwork.client.baseUrl = arg1.client.baseUrl ?? newNetwork.client.baseUrl;
224
+ newNetwork.client.fetch = arg1.client.fetch ?? newNetwork.client.fetch;
225
+ }
226
+
227
+ if (typeof arg1.apiKey === 'string') {
228
+ const middleware = createApiKeyMiddleware(arg1 as ApiKeyMiddlewareOpts);
229
+ newNetwork.client.fetch = newNetwork.client.fetch
230
+ ? createFetchFn(newNetwork.client.fetch, middleware)
231
+ : createFetchFn(middleware);
232
+ }
233
+
234
+ return newNetwork;
235
+ }
236
+
237
+ // Additional API key argument
238
+ if (typeof arg2 === 'string') {
239
+ const middleware = createApiKeyMiddleware({ apiKey: arg2 });
240
+ newNetwork.client.fetch = newNetwork.client.fetch
241
+ ? createFetchFn(newNetwork.client.fetch, middleware)
242
+ : createFetchFn(middleware);
243
+ return newNetwork;
244
+ }
245
+
246
+ // Only network argument
247
+ return newNetwork;
248
+ }