@stacks/network 6.14.1-pr.f066584c.0 → 6.14.1-pr.fa0674c3.23

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.
@@ -0,0 +1,15 @@
1
+ export declare enum ChainId {
2
+ Mainnet = 1,
3
+ Testnet = 2147483648
4
+ }
5
+ export declare enum PeerNetworkId {
6
+ Mainnet = 385875968,
7
+ Testnet = 4278190080
8
+ }
9
+ export declare const DEFAULT_CHAIN_ID = ChainId.Mainnet;
10
+ export declare enum TransactionVersion {
11
+ Mainnet = 0,
12
+ Testnet = 128
13
+ }
14
+ export declare const DEFAULT_TRANSACTION_VERSION = TransactionVersion.Mainnet;
15
+ export declare function whenTransactionVersion(transactionVersion: TransactionVersion): <T>(map: Record<TransactionVersion, T>) => T;
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.whenTransactionVersion = exports.DEFAULT_TRANSACTION_VERSION = exports.TransactionVersion = exports.DEFAULT_CHAIN_ID = exports.PeerNetworkId = exports.ChainId = void 0;
4
+ var ChainId;
5
+ (function (ChainId) {
6
+ ChainId[ChainId["Mainnet"] = 1] = "Mainnet";
7
+ ChainId[ChainId["Testnet"] = 2147483648] = "Testnet";
8
+ })(ChainId || (exports.ChainId = ChainId = {}));
9
+ var PeerNetworkId;
10
+ (function (PeerNetworkId) {
11
+ PeerNetworkId[PeerNetworkId["Mainnet"] = 385875968] = "Mainnet";
12
+ PeerNetworkId[PeerNetworkId["Testnet"] = 4278190080] = "Testnet";
13
+ })(PeerNetworkId || (exports.PeerNetworkId = PeerNetworkId = {}));
14
+ exports.DEFAULT_CHAIN_ID = ChainId.Mainnet;
15
+ var TransactionVersion;
16
+ (function (TransactionVersion) {
17
+ TransactionVersion[TransactionVersion["Mainnet"] = 0] = "Mainnet";
18
+ TransactionVersion[TransactionVersion["Testnet"] = 128] = "Testnet";
19
+ })(TransactionVersion || (exports.TransactionVersion = TransactionVersion = {}));
20
+ exports.DEFAULT_TRANSACTION_VERSION = TransactionVersion.Mainnet;
21
+ function whenTransactionVersion(transactionVersion) {
22
+ return (map) => map[transactionVersion];
23
+ }
24
+ exports.whenTransactionVersion = whenTransactionVersion;
25
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":";;;AAIA,IAAY,OAGX;AAHD,WAAY,OAAO;IACjB,2CAAoB,CAAA;IACpB,oDAAoB,CAAA;AACtB,CAAC,EAHW,OAAO,uBAAP,OAAO,QAGlB;AAYD,IAAY,aAGX;AAHD,WAAY,aAAa;IACvB,+DAAoB,CAAA;IACpB,gEAAoB,CAAA;AACtB,CAAC,EAHW,aAAa,6BAAb,aAAa,QAGxB;AAEY,QAAA,gBAAgB,GAAG,OAAO,CAAC,OAAO,CAAC;AAOhD,IAAY,kBAGX;AAHD,WAAY,kBAAkB;IAC5B,iEAAc,CAAA;IACd,mEAAc,CAAA;AAChB,CAAC,EAHW,kBAAkB,kCAAlB,kBAAkB,QAG7B;AAEY,QAAA,2BAA2B,GAAG,kBAAkB,CAAC,OAAO,CAAC;AAGtE,SAAgB,sBAAsB,CAAC,kBAAsC;IAC3E,OAAO,CAAI,GAAkC,EAAK,EAAE,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;AAC/E,CAAC;AAFD,wDAEC"}
@@ -0,0 +1,15 @@
1
+ export declare enum ChainId {
2
+ Mainnet = 1,
3
+ Testnet = 2147483648
4
+ }
5
+ export declare enum PeerNetworkId {
6
+ Mainnet = 385875968,
7
+ Testnet = 4278190080
8
+ }
9
+ export declare const DEFAULT_CHAIN_ID = ChainId.Mainnet;
10
+ export declare enum TransactionVersion {
11
+ Mainnet = 0,
12
+ Testnet = 128
13
+ }
14
+ export declare const DEFAULT_TRANSACTION_VERSION = TransactionVersion.Mainnet;
15
+ export declare function whenTransactionVersion(transactionVersion: TransactionVersion): <T>(map: Record<TransactionVersion, T>) => T;
@@ -0,0 +1,21 @@
1
+ export var ChainId;
2
+ (function (ChainId) {
3
+ ChainId[ChainId["Mainnet"] = 1] = "Mainnet";
4
+ ChainId[ChainId["Testnet"] = 2147483648] = "Testnet";
5
+ })(ChainId || (ChainId = {}));
6
+ export var PeerNetworkId;
7
+ (function (PeerNetworkId) {
8
+ PeerNetworkId[PeerNetworkId["Mainnet"] = 385875968] = "Mainnet";
9
+ PeerNetworkId[PeerNetworkId["Testnet"] = 4278190080] = "Testnet";
10
+ })(PeerNetworkId || (PeerNetworkId = {}));
11
+ export const DEFAULT_CHAIN_ID = ChainId.Mainnet;
12
+ export var TransactionVersion;
13
+ (function (TransactionVersion) {
14
+ TransactionVersion[TransactionVersion["Mainnet"] = 0] = "Mainnet";
15
+ TransactionVersion[TransactionVersion["Testnet"] = 128] = "Testnet";
16
+ })(TransactionVersion || (TransactionVersion = {}));
17
+ export const DEFAULT_TRANSACTION_VERSION = TransactionVersion.Mainnet;
18
+ export function whenTransactionVersion(transactionVersion) {
19
+ return (map) => map[transactionVersion];
20
+ }
21
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/constants.ts"],"names":[],"mappings":"AAIA,MAAM,CAAN,IAAY,OAGX;AAHD,WAAY,OAAO;IACjB,2CAAoB,CAAA;IACpB,oDAAoB,CAAA;AACtB,CAAC,EAHW,OAAO,KAAP,OAAO,QAGlB;AAYD,MAAM,CAAN,IAAY,aAGX;AAHD,WAAY,aAAa;IACvB,+DAAoB,CAAA;IACpB,gEAAoB,CAAA;AACtB,CAAC,EAHW,aAAa,KAAb,aAAa,QAGxB;AAED,MAAM,CAAC,MAAM,gBAAgB,GAAG,OAAO,CAAC,OAAO,CAAC;AAOhD,MAAM,CAAN,IAAY,kBAGX;AAHD,WAAY,kBAAkB;IAC5B,iEAAc,CAAA;IACd,mEAAc,CAAA;AAChB,CAAC,EAHW,kBAAkB,KAAlB,kBAAkB,QAG7B;AAED,MAAM,CAAC,MAAM,2BAA2B,GAAG,kBAAkB,CAAC,OAAO,CAAC;AAGtE,MAAM,UAAU,sBAAsB,CAAC,kBAAsC;IAC3E,OAAO,CAAI,GAAkC,EAAK,EAAE,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;AAC/E,CAAC"}
@@ -1,2 +1,2 @@
1
- export * from './fetch';
1
+ export * from './constants';
2
2
  export * from './network';
package/dist/esm/index.js CHANGED
@@ -1,3 +1,3 @@
1
- export * from './fetch';
1
+ export * from './constants';
2
2
  export * from './network';
3
3
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,cAAc,WAAW,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC"}
@@ -1,61 +1,15 @@
1
- import { TransactionVersion, ChainID } from '@stacks/common';
2
- import { FetchFn } from './fetch';
3
- export declare const HIRO_MAINNET_DEFAULT = "https://api.mainnet.hiro.so";
4
- export declare const HIRO_TESTNET_DEFAULT = "https://api.testnet.hiro.so";
5
- export declare const HIRO_MOCKNET_DEFAULT = "http://localhost:3999";
6
- export interface NetworkConfig {
7
- url: string;
8
- fetchFn?: FetchFn;
9
- }
1
+ export interface StacksNetwork {
2
+ chainId: number;
3
+ transactionVersion: number;
4
+ peerNetworkId: number;
5
+ magicBytes: string;
6
+ }
7
+ export declare const STACKS_MAINNET: StacksNetwork;
8
+ export declare const STACKS_TESTNET: StacksNetwork;
9
+ export declare const STACKS_DEVNET: StacksNetwork;
10
+ export declare const STACKS_MOCKNET: StacksNetwork;
10
11
  export declare const StacksNetworks: readonly ["mainnet", "testnet", "devnet", "mocknet"];
11
12
  export type StacksNetworkName = (typeof StacksNetworks)[number];
12
- export declare class StacksNetwork {
13
- version: TransactionVersion;
14
- chainId: ChainID;
15
- bnsLookupUrl: string;
16
- broadcastEndpoint: string;
17
- transferFeeEstimateEndpoint: string;
18
- transactionFeeEstimateEndpoint: string;
19
- accountEndpoint: string;
20
- contractAbiEndpoint: string;
21
- readOnlyFunctionCallEndpoint: string;
22
- readonly coreApiUrl: string;
23
- fetchFn: FetchFn;
24
- constructor(networkConfig: NetworkConfig);
25
- static fromName: (networkName: StacksNetworkName) => StacksNetwork;
26
- static fromNameOrNetwork: (network: StacksNetworkName | StacksNetwork) => StacksNetwork;
27
- isMainnet: () => boolean;
28
- getBroadcastApiUrl: () => string;
29
- getTransferFeeEstimateApiUrl: () => string;
30
- getTransactionFeeEstimateApiUrl: () => string;
31
- getAccountApiUrl: (address: string) => string;
32
- getAccountExtendedBalancesApiUrl: (address: string) => string;
33
- getAbiApiUrl: (address: string, contract: string) => string;
34
- getReadOnlyFunctionCallApiUrl: (contractAddress: string, contractName: string, functionName: string) => string;
35
- getInfoUrl: () => string;
36
- getBlockTimeInfoUrl: () => string;
37
- getPoxInfoUrl: () => string;
38
- getRewardsUrl: (address: string, options?: any) => string;
39
- getRewardsTotalUrl: (address: string) => string;
40
- getRewardHoldersUrl: (address: string, options?: any) => string;
41
- getStackerInfoUrl: (contractAddress: string, contractName: string) => string;
42
- getDataVarUrl: (contractAddress: string, contractName: string, dataVarName: string) => string;
43
- getMapEntryUrl: (contractAddress: string, contractName: string, mapName: string) => string;
44
- getNameInfo(fullyQualifiedName: string): Promise<any>;
45
- }
46
- export declare class StacksMainnet extends StacksNetwork {
47
- version: TransactionVersion;
48
- chainId: ChainID;
49
- constructor(opts?: Partial<NetworkConfig>);
50
- }
51
- export declare class StacksTestnet extends StacksNetwork {
52
- version: TransactionVersion;
53
- chainId: ChainID;
54
- constructor(opts?: Partial<NetworkConfig>);
55
- }
56
- export declare class StacksMocknet extends StacksNetwork {
57
- version: TransactionVersion;
58
- chainId: ChainID;
59
- constructor(opts?: Partial<NetworkConfig>);
60
- }
61
- export declare const StacksDevnet: typeof StacksMocknet;
13
+ export declare function networkFromName(name: StacksNetworkName): StacksNetwork;
14
+ export declare function networkFrom(network: StacksNetworkName | StacksNetwork): StacksNetwork;
15
+ export declare function deriveDefaultUrl(network: StacksNetwork | StacksNetworkName | undefined): "https://api.mainnet.hiro.so" | "http://localhost:3999" | "https://api.testnet.hiro.so";
@@ -1,126 +1,50 @@
1
- import { TransactionVersion, ChainID } from '@stacks/common';
2
- import { createFetchFn } from './fetch';
3
- export const HIRO_MAINNET_DEFAULT = 'https://api.mainnet.hiro.so';
4
- export const HIRO_TESTNET_DEFAULT = 'https://api.testnet.hiro.so';
5
- export const HIRO_MOCKNET_DEFAULT = 'http://localhost:3999';
1
+ import { DEVNET_URL, HIRO_MAINNET_URL, HIRO_TESTNET_URL } from '@stacks/common';
2
+ import { ChainId, PeerNetworkId, TransactionVersion } from './constants';
3
+ export const STACKS_MAINNET = {
4
+ chainId: ChainId.Mainnet,
5
+ transactionVersion: TransactionVersion.Mainnet,
6
+ peerNetworkId: PeerNetworkId.Mainnet,
7
+ magicBytes: 'X2',
8
+ };
9
+ export const STACKS_TESTNET = {
10
+ chainId: ChainId.Testnet,
11
+ transactionVersion: TransactionVersion.Testnet,
12
+ peerNetworkId: PeerNetworkId.Testnet,
13
+ magicBytes: 'T2',
14
+ };
15
+ export const STACKS_DEVNET = {
16
+ ...STACKS_TESTNET,
17
+ magicBytes: 'id',
18
+ };
19
+ export const STACKS_MOCKNET = { ...STACKS_DEVNET };
6
20
  export const StacksNetworks = ['mainnet', 'testnet', 'devnet', 'mocknet'];
7
- export class StacksNetwork {
8
- constructor(networkConfig) {
9
- this.version = TransactionVersion.Mainnet;
10
- this.chainId = ChainID.Mainnet;
11
- this.bnsLookupUrl = 'https://api.mainnet.hiro.so';
12
- this.broadcastEndpoint = '/v2/transactions';
13
- this.transferFeeEstimateEndpoint = '/v2/fees/transfer';
14
- this.transactionFeeEstimateEndpoint = '/v2/fees/transaction';
15
- this.accountEndpoint = '/v2/accounts';
16
- this.contractAbiEndpoint = '/v2/contracts/interface';
17
- this.readOnlyFunctionCallEndpoint = '/v2/contracts/call-read';
18
- this.isMainnet = () => this.version === TransactionVersion.Mainnet;
19
- this.getBroadcastApiUrl = () => `${this.coreApiUrl}${this.broadcastEndpoint}`;
20
- this.getTransferFeeEstimateApiUrl = () => `${this.coreApiUrl}${this.transferFeeEstimateEndpoint}`;
21
- this.getTransactionFeeEstimateApiUrl = () => `${this.coreApiUrl}${this.transactionFeeEstimateEndpoint}`;
22
- this.getAccountApiUrl = (address) => `${this.coreApiUrl}${this.accountEndpoint}/${address}?proof=0`;
23
- this.getAccountExtendedBalancesApiUrl = (address) => `${this.coreApiUrl}/extended/v1/address/${address}/balances`;
24
- this.getAbiApiUrl = (address, contract) => `${this.coreApiUrl}${this.contractAbiEndpoint}/${address}/${contract}`;
25
- this.getReadOnlyFunctionCallApiUrl = (contractAddress, contractName, functionName) => `${this.coreApiUrl}${this.readOnlyFunctionCallEndpoint}/${contractAddress}/${contractName}/${encodeURIComponent(functionName)}`;
26
- this.getInfoUrl = () => `${this.coreApiUrl}/v2/info`;
27
- this.getBlockTimeInfoUrl = () => `${this.coreApiUrl}/extended/v1/info/network_block_times`;
28
- this.getPoxInfoUrl = () => `${this.coreApiUrl}/v2/pox`;
29
- this.getRewardsUrl = (address, options) => {
30
- let url = `${this.coreApiUrl}/extended/v1/burnchain/rewards/${address}`;
31
- if (options) {
32
- url = `${url}?limit=${options.limit}&offset=${options.offset}`;
33
- }
34
- return url;
35
- };
36
- this.getRewardsTotalUrl = (address) => `${this.coreApiUrl}/extended/v1/burnchain/rewards/${address}/total`;
37
- this.getRewardHoldersUrl = (address, options) => {
38
- let url = `${this.coreApiUrl}/extended/v1/burnchain/reward_slot_holders/${address}`;
39
- if (options) {
40
- url = `${url}?limit=${options.limit}&offset=${options.offset}`;
41
- }
42
- return url;
43
- };
44
- this.getStackerInfoUrl = (contractAddress, contractName) => `${this.coreApiUrl}${this.readOnlyFunctionCallEndpoint}
45
- ${contractAddress}/${contractName}/get-stacker-info`;
46
- this.getDataVarUrl = (contractAddress, contractName, dataVarName) => `${this.coreApiUrl}/v2/data_var/${contractAddress}/${contractName}/${dataVarName}?proof=0`;
47
- this.getMapEntryUrl = (contractAddress, contractName, mapName) => `${this.coreApiUrl}/v2/map_entry/${contractAddress}/${contractName}/${mapName}?proof=0`;
48
- this.coreApiUrl = networkConfig.url;
49
- this.fetchFn = networkConfig.fetchFn ?? createFetchFn();
50
- }
51
- getNameInfo(fullyQualifiedName) {
52
- const nameLookupURL = `${this.bnsLookupUrl}/v1/names/${fullyQualifiedName}`;
53
- return this.fetchFn(nameLookupURL)
54
- .then(resp => {
55
- if (resp.status === 404) {
56
- throw new Error('Name not found');
57
- }
58
- else if (resp.status !== 200) {
59
- throw new Error(`Bad response status: ${resp.status}`);
60
- }
61
- else {
62
- return resp.json();
63
- }
64
- })
65
- .then(nameInfo => {
66
- if (nameInfo.address) {
67
- return Object.assign({}, nameInfo, { address: nameInfo.address });
68
- }
69
- else {
70
- return nameInfo;
71
- }
72
- });
73
- }
74
- }
75
- StacksNetwork.fromName = (networkName) => {
76
- switch (networkName) {
21
+ export function networkFromName(name) {
22
+ switch (name) {
77
23
  case 'mainnet':
78
- return new StacksMainnet();
24
+ return STACKS_MAINNET;
79
25
  case 'testnet':
80
- return new StacksTestnet();
26
+ return STACKS_TESTNET;
81
27
  case 'devnet':
82
- return new StacksDevnet();
28
+ return STACKS_DEVNET;
83
29
  case 'mocknet':
84
- return new StacksMocknet();
30
+ return STACKS_MOCKNET;
85
31
  default:
86
- throw new Error(`Invalid network name provided. Must be one of the following: ${StacksNetworks.join(', ')}`);
87
- }
88
- };
89
- StacksNetwork.fromNameOrNetwork = (network) => {
90
- if (typeof network !== 'string' && 'version' in network) {
91
- return network;
92
- }
93
- return StacksNetwork.fromName(network);
94
- };
95
- export class StacksMainnet extends StacksNetwork {
96
- constructor(opts) {
97
- super({
98
- url: opts?.url ?? HIRO_MAINNET_DEFAULT,
99
- fetchFn: opts?.fetchFn,
100
- });
101
- this.version = TransactionVersion.Mainnet;
102
- this.chainId = ChainID.Mainnet;
32
+ throw new Error(`Unknown network name: ${name}`);
103
33
  }
104
34
  }
105
- export class StacksTestnet extends StacksNetwork {
106
- constructor(opts) {
107
- super({
108
- url: opts?.url ?? HIRO_TESTNET_DEFAULT,
109
- fetchFn: opts?.fetchFn,
110
- });
111
- this.version = TransactionVersion.Testnet;
112
- this.chainId = ChainID.Testnet;
113
- }
35
+ export function networkFrom(network) {
36
+ if (typeof network === 'string')
37
+ return networkFromName(network);
38
+ return network;
114
39
  }
115
- export class StacksMocknet extends StacksNetwork {
116
- constructor(opts) {
117
- super({
118
- url: opts?.url ?? HIRO_MOCKNET_DEFAULT,
119
- fetchFn: opts?.fetchFn,
120
- });
121
- this.version = TransactionVersion.Testnet;
122
- this.chainId = ChainID.Testnet;
123
- }
40
+ export function deriveDefaultUrl(network) {
41
+ if (!network)
42
+ return HIRO_MAINNET_URL;
43
+ network = networkFrom(network);
44
+ return !network || network.transactionVersion === TransactionVersion.Mainnet
45
+ ? HIRO_MAINNET_URL
46
+ : network.magicBytes === 'id'
47
+ ? DEVNET_URL
48
+ : HIRO_TESTNET_URL;
124
49
  }
125
- export const StacksDevnet = StacksMocknet;
126
50
  //# 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":"AAAA,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAChF,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAUzE,MAAM,CAAC,MAAM,cAAc,GAAkB;IAC3C,OAAO,EAAE,OAAO,CAAC,OAAO;IACxB,kBAAkB,EAAE,kBAAkB,CAAC,OAAO;IAC9C,aAAa,EAAE,aAAa,CAAC,OAAO;IACpC,UAAU,EAAE,IAAI;CACjB,CAAC;AAEF,MAAM,CAAC,MAAM,cAAc,GAAkB;IAC3C,OAAO,EAAE,OAAO,CAAC,OAAO;IACxB,kBAAkB,EAAE,kBAAkB,CAAC,OAAO;IAC9C,aAAa,EAAE,aAAa,CAAC,OAAO;IACpC,UAAU,EAAE,IAAI;CACjB,CAAC;AAEF,MAAM,CAAC,MAAM,aAAa,GAAkB;IAC1C,GAAG,cAAc;IACjB,UAAU,EAAE,IAAI;CACjB,CAAC;AACF,MAAM,CAAC,MAAM,cAAc,GAAkB,EAAE,GAAG,aAAa,EAAE,CAAC;AAGlE,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,CAAU,CAAC;AAInF,MAAM,UAAU,eAAe,CAAC,IAAuB;IACrD,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,SAAS;YACZ,OAAO,cAAc,CAAC;QACxB,KAAK,SAAS;YACZ,OAAO,cAAc,CAAC;QACxB,KAAK,QAAQ;YACX,OAAO,aAAa,CAAC;QACvB,KAAK,SAAS;YACZ,OAAO,cAAc,CAAC;QACxB;YACE,MAAM,IAAI,KAAK,CAAC,yBAAyB,IAAI,EAAE,CAAC,CAAC;IACrD,CAAC;AACH,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,OAA0C;IACpE,IAAI,OAAO,OAAO,KAAK,QAAQ;QAAE,OAAO,eAAe,CAAC,OAAO,CAAC,CAAC;IACjE,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,OAAsD;IACrF,IAAI,CAAC,OAAO;QAAE,OAAO,gBAAgB,CAAC;IAEtC,OAAO,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC;IAE/B,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,kBAAkB,KAAK,kBAAkB,CAAC,OAAO;QAC1E,CAAC,CAAC,gBAAgB;QAClB,CAAC,CAAC,OAAO,CAAC,UAAU,KAAK,IAAI;YAC3B,CAAC,CAAC,UAAU;YACZ,CAAC,CAAC,gBAAgB,CAAC;AACzB,CAAC"}
package/dist/index.d.ts CHANGED
@@ -1,2 +1,2 @@
1
- export * from './fetch';
1
+ export * from './constants';
2
2
  export * from './network';
package/dist/index.js CHANGED
@@ -14,6 +14,6 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
14
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
- __exportStar(require("./fetch"), exports);
17
+ __exportStar(require("./constants"), exports);
18
18
  __exportStar(require("./network"), exports);
19
19
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,0CAAwB;AACxB,4CAA0B"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,8CAA4B;AAC5B,4CAA0B"}
package/dist/network.d.ts CHANGED
@@ -1,61 +1,15 @@
1
- import { TransactionVersion, ChainID } from '@stacks/common';
2
- import { FetchFn } from './fetch';
3
- export declare const HIRO_MAINNET_DEFAULT = "https://api.mainnet.hiro.so";
4
- export declare const HIRO_TESTNET_DEFAULT = "https://api.testnet.hiro.so";
5
- export declare const HIRO_MOCKNET_DEFAULT = "http://localhost:3999";
6
- export interface NetworkConfig {
7
- url: string;
8
- fetchFn?: FetchFn;
9
- }
1
+ export interface StacksNetwork {
2
+ chainId: number;
3
+ transactionVersion: number;
4
+ peerNetworkId: number;
5
+ magicBytes: string;
6
+ }
7
+ export declare const STACKS_MAINNET: StacksNetwork;
8
+ export declare const STACKS_TESTNET: StacksNetwork;
9
+ export declare const STACKS_DEVNET: StacksNetwork;
10
+ export declare const STACKS_MOCKNET: StacksNetwork;
10
11
  export declare const StacksNetworks: readonly ["mainnet", "testnet", "devnet", "mocknet"];
11
12
  export type StacksNetworkName = (typeof StacksNetworks)[number];
12
- export declare class StacksNetwork {
13
- version: TransactionVersion;
14
- chainId: ChainID;
15
- bnsLookupUrl: string;
16
- broadcastEndpoint: string;
17
- transferFeeEstimateEndpoint: string;
18
- transactionFeeEstimateEndpoint: string;
19
- accountEndpoint: string;
20
- contractAbiEndpoint: string;
21
- readOnlyFunctionCallEndpoint: string;
22
- readonly coreApiUrl: string;
23
- fetchFn: FetchFn;
24
- constructor(networkConfig: NetworkConfig);
25
- static fromName: (networkName: StacksNetworkName) => StacksNetwork;
26
- static fromNameOrNetwork: (network: StacksNetworkName | StacksNetwork) => StacksNetwork;
27
- isMainnet: () => boolean;
28
- getBroadcastApiUrl: () => string;
29
- getTransferFeeEstimateApiUrl: () => string;
30
- getTransactionFeeEstimateApiUrl: () => string;
31
- getAccountApiUrl: (address: string) => string;
32
- getAccountExtendedBalancesApiUrl: (address: string) => string;
33
- getAbiApiUrl: (address: string, contract: string) => string;
34
- getReadOnlyFunctionCallApiUrl: (contractAddress: string, contractName: string, functionName: string) => string;
35
- getInfoUrl: () => string;
36
- getBlockTimeInfoUrl: () => string;
37
- getPoxInfoUrl: () => string;
38
- getRewardsUrl: (address: string, options?: any) => string;
39
- getRewardsTotalUrl: (address: string) => string;
40
- getRewardHoldersUrl: (address: string, options?: any) => string;
41
- getStackerInfoUrl: (contractAddress: string, contractName: string) => string;
42
- getDataVarUrl: (contractAddress: string, contractName: string, dataVarName: string) => string;
43
- getMapEntryUrl: (contractAddress: string, contractName: string, mapName: string) => string;
44
- getNameInfo(fullyQualifiedName: string): Promise<any>;
45
- }
46
- export declare class StacksMainnet extends StacksNetwork {
47
- version: TransactionVersion;
48
- chainId: ChainID;
49
- constructor(opts?: Partial<NetworkConfig>);
50
- }
51
- export declare class StacksTestnet extends StacksNetwork {
52
- version: TransactionVersion;
53
- chainId: ChainID;
54
- constructor(opts?: Partial<NetworkConfig>);
55
- }
56
- export declare class StacksMocknet extends StacksNetwork {
57
- version: TransactionVersion;
58
- chainId: ChainID;
59
- constructor(opts?: Partial<NetworkConfig>);
60
- }
61
- export declare const StacksDevnet: typeof StacksMocknet;
13
+ export declare function networkFromName(name: StacksNetworkName): StacksNetwork;
14
+ export declare function networkFrom(network: StacksNetworkName | StacksNetwork): StacksNetwork;
15
+ export declare function deriveDefaultUrl(network: StacksNetwork | StacksNetworkName | undefined): "https://api.mainnet.hiro.so" | "http://localhost:3999" | "https://api.testnet.hiro.so";
package/dist/network.js CHANGED
@@ -1,133 +1,56 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.StacksDevnet = exports.StacksMocknet = exports.StacksTestnet = exports.StacksMainnet = exports.StacksNetwork = exports.StacksNetworks = exports.HIRO_MOCKNET_DEFAULT = exports.HIRO_TESTNET_DEFAULT = exports.HIRO_MAINNET_DEFAULT = void 0;
3
+ exports.deriveDefaultUrl = 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
- const fetch_1 = require("./fetch");
6
- exports.HIRO_MAINNET_DEFAULT = 'https://api.mainnet.hiro.so';
7
- exports.HIRO_TESTNET_DEFAULT = 'https://api.testnet.hiro.so';
8
- exports.HIRO_MOCKNET_DEFAULT = 'http://localhost:3999';
5
+ const constants_1 = require("./constants");
6
+ exports.STACKS_MAINNET = {
7
+ chainId: constants_1.ChainId.Mainnet,
8
+ transactionVersion: constants_1.TransactionVersion.Mainnet,
9
+ peerNetworkId: constants_1.PeerNetworkId.Mainnet,
10
+ magicBytes: 'X2',
11
+ };
12
+ exports.STACKS_TESTNET = {
13
+ chainId: constants_1.ChainId.Testnet,
14
+ transactionVersion: constants_1.TransactionVersion.Testnet,
15
+ peerNetworkId: constants_1.PeerNetworkId.Testnet,
16
+ magicBytes: 'T2',
17
+ };
18
+ exports.STACKS_DEVNET = {
19
+ ...exports.STACKS_TESTNET,
20
+ magicBytes: 'id',
21
+ };
22
+ exports.STACKS_MOCKNET = { ...exports.STACKS_DEVNET };
9
23
  exports.StacksNetworks = ['mainnet', 'testnet', 'devnet', 'mocknet'];
10
- class StacksNetwork {
11
- constructor(networkConfig) {
12
- this.version = common_1.TransactionVersion.Mainnet;
13
- this.chainId = common_1.ChainID.Mainnet;
14
- this.bnsLookupUrl = 'https://api.mainnet.hiro.so';
15
- this.broadcastEndpoint = '/v2/transactions';
16
- this.transferFeeEstimateEndpoint = '/v2/fees/transfer';
17
- this.transactionFeeEstimateEndpoint = '/v2/fees/transaction';
18
- this.accountEndpoint = '/v2/accounts';
19
- this.contractAbiEndpoint = '/v2/contracts/interface';
20
- this.readOnlyFunctionCallEndpoint = '/v2/contracts/call-read';
21
- this.isMainnet = () => this.version === common_1.TransactionVersion.Mainnet;
22
- this.getBroadcastApiUrl = () => `${this.coreApiUrl}${this.broadcastEndpoint}`;
23
- this.getTransferFeeEstimateApiUrl = () => `${this.coreApiUrl}${this.transferFeeEstimateEndpoint}`;
24
- this.getTransactionFeeEstimateApiUrl = () => `${this.coreApiUrl}${this.transactionFeeEstimateEndpoint}`;
25
- this.getAccountApiUrl = (address) => `${this.coreApiUrl}${this.accountEndpoint}/${address}?proof=0`;
26
- this.getAccountExtendedBalancesApiUrl = (address) => `${this.coreApiUrl}/extended/v1/address/${address}/balances`;
27
- this.getAbiApiUrl = (address, contract) => `${this.coreApiUrl}${this.contractAbiEndpoint}/${address}/${contract}`;
28
- this.getReadOnlyFunctionCallApiUrl = (contractAddress, contractName, functionName) => `${this.coreApiUrl}${this.readOnlyFunctionCallEndpoint}/${contractAddress}/${contractName}/${encodeURIComponent(functionName)}`;
29
- this.getInfoUrl = () => `${this.coreApiUrl}/v2/info`;
30
- this.getBlockTimeInfoUrl = () => `${this.coreApiUrl}/extended/v1/info/network_block_times`;
31
- this.getPoxInfoUrl = () => `${this.coreApiUrl}/v2/pox`;
32
- this.getRewardsUrl = (address, options) => {
33
- let url = `${this.coreApiUrl}/extended/v1/burnchain/rewards/${address}`;
34
- if (options) {
35
- url = `${url}?limit=${options.limit}&offset=${options.offset}`;
36
- }
37
- return url;
38
- };
39
- this.getRewardsTotalUrl = (address) => `${this.coreApiUrl}/extended/v1/burnchain/rewards/${address}/total`;
40
- this.getRewardHoldersUrl = (address, options) => {
41
- let url = `${this.coreApiUrl}/extended/v1/burnchain/reward_slot_holders/${address}`;
42
- if (options) {
43
- url = `${url}?limit=${options.limit}&offset=${options.offset}`;
44
- }
45
- return url;
46
- };
47
- this.getStackerInfoUrl = (contractAddress, contractName) => `${this.coreApiUrl}${this.readOnlyFunctionCallEndpoint}
48
- ${contractAddress}/${contractName}/get-stacker-info`;
49
- this.getDataVarUrl = (contractAddress, contractName, dataVarName) => `${this.coreApiUrl}/v2/data_var/${contractAddress}/${contractName}/${dataVarName}?proof=0`;
50
- this.getMapEntryUrl = (contractAddress, contractName, mapName) => `${this.coreApiUrl}/v2/map_entry/${contractAddress}/${contractName}/${mapName}?proof=0`;
51
- this.coreApiUrl = networkConfig.url;
52
- this.fetchFn = networkConfig.fetchFn ?? (0, fetch_1.createFetchFn)();
53
- }
54
- getNameInfo(fullyQualifiedName) {
55
- const nameLookupURL = `${this.bnsLookupUrl}/v1/names/${fullyQualifiedName}`;
56
- return this.fetchFn(nameLookupURL)
57
- .then(resp => {
58
- if (resp.status === 404) {
59
- throw new Error('Name not found');
60
- }
61
- else if (resp.status !== 200) {
62
- throw new Error(`Bad response status: ${resp.status}`);
63
- }
64
- else {
65
- return resp.json();
66
- }
67
- })
68
- .then(nameInfo => {
69
- if (nameInfo.address) {
70
- return Object.assign({}, nameInfo, { address: nameInfo.address });
71
- }
72
- else {
73
- return nameInfo;
74
- }
75
- });
76
- }
77
- }
78
- exports.StacksNetwork = StacksNetwork;
79
- StacksNetwork.fromName = (networkName) => {
80
- switch (networkName) {
24
+ function networkFromName(name) {
25
+ switch (name) {
81
26
  case 'mainnet':
82
- return new StacksMainnet();
27
+ return exports.STACKS_MAINNET;
83
28
  case 'testnet':
84
- return new StacksTestnet();
29
+ return exports.STACKS_TESTNET;
85
30
  case 'devnet':
86
- return new exports.StacksDevnet();
31
+ return exports.STACKS_DEVNET;
87
32
  case 'mocknet':
88
- return new StacksMocknet();
33
+ return exports.STACKS_MOCKNET;
89
34
  default:
90
- throw new Error(`Invalid network name provided. Must be one of the following: ${exports.StacksNetworks.join(', ')}`);
91
- }
92
- };
93
- StacksNetwork.fromNameOrNetwork = (network) => {
94
- if (typeof network !== 'string' && 'version' in network) {
95
- return network;
96
- }
97
- return StacksNetwork.fromName(network);
98
- };
99
- class StacksMainnet extends StacksNetwork {
100
- constructor(opts) {
101
- super({
102
- url: opts?.url ?? exports.HIRO_MAINNET_DEFAULT,
103
- fetchFn: opts?.fetchFn,
104
- });
105
- this.version = common_1.TransactionVersion.Mainnet;
106
- this.chainId = common_1.ChainID.Mainnet;
35
+ throw new Error(`Unknown network name: ${name}`);
107
36
  }
108
37
  }
109
- exports.StacksMainnet = StacksMainnet;
110
- class StacksTestnet extends StacksNetwork {
111
- constructor(opts) {
112
- super({
113
- url: opts?.url ?? exports.HIRO_TESTNET_DEFAULT,
114
- fetchFn: opts?.fetchFn,
115
- });
116
- this.version = common_1.TransactionVersion.Testnet;
117
- this.chainId = common_1.ChainID.Testnet;
118
- }
38
+ exports.networkFromName = networkFromName;
39
+ function networkFrom(network) {
40
+ if (typeof network === 'string')
41
+ return networkFromName(network);
42
+ return network;
119
43
  }
120
- exports.StacksTestnet = StacksTestnet;
121
- class StacksMocknet extends StacksNetwork {
122
- constructor(opts) {
123
- super({
124
- url: opts?.url ?? exports.HIRO_MOCKNET_DEFAULT,
125
- fetchFn: opts?.fetchFn,
126
- });
127
- this.version = common_1.TransactionVersion.Testnet;
128
- this.chainId = common_1.ChainID.Testnet;
129
- }
44
+ exports.networkFrom = networkFrom;
45
+ function deriveDefaultUrl(network) {
46
+ if (!network)
47
+ return common_1.HIRO_MAINNET_URL;
48
+ network = networkFrom(network);
49
+ return !network || network.transactionVersion === constants_1.TransactionVersion.Mainnet
50
+ ? common_1.HIRO_MAINNET_URL
51
+ : network.magicBytes === 'id'
52
+ ? common_1.DEVNET_URL
53
+ : common_1.HIRO_TESTNET_URL;
130
54
  }
131
- exports.StacksMocknet = StacksMocknet;
132
- exports.StacksDevnet = StacksMocknet;
55
+ exports.deriveDefaultUrl = deriveDefaultUrl;
133
56
  //# sourceMappingURL=network.js.map