@my-packages-changeit/cardano-scanner 2.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/CHANGELOG.md +138 -0
- package/README.md +38 -0
- package/dist/constants.d.ts +5 -0
- package/dist/constants.d.ts.map +1 -0
- package/dist/constants.js +5 -0
- package/dist/index.d.ts +10 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +10 -0
- package/dist/interfaces/blockFrost.d.ts +9 -0
- package/dist/interfaces/blockFrost.d.ts.map +1 -0
- package/dist/interfaces/blockFrost.js +6 -0
- package/dist/interfaces/index.d.ts +19 -0
- package/dist/interfaces/index.d.ts.map +1 -0
- package/dist/interfaces/index.js +2 -0
- package/dist/interfaces/koios.d.ts +26 -0
- package/dist/interfaces/koios.d.ts.map +1 -0
- package/dist/interfaces/koios.js +2 -0
- package/dist/network/blockfrost.d.ts +26 -0
- package/dist/network/blockfrost.d.ts.map +1 -0
- package/dist/network/blockfrost.js +76 -0
- package/dist/network/koios.d.ts +26 -0
- package/dist/network/koios.d.ts.map +1 -0
- package/dist/network/koios.js +90 -0
- package/dist/scanner/blockfrost.d.ts +7 -0
- package/dist/scanner/blockfrost.d.ts.map +1 -0
- package/dist/scanner/blockfrost.js +8 -0
- package/dist/scanner/koios.d.ts +7 -0
- package/dist/scanner/koios.d.ts.map +1 -0
- package/dist/scanner/koios.js +8 -0
- package/dist/scanner/ogmios.d.ts +51 -0
- package/dist/scanner/ogmios.d.ts.map +1 -0
- package/dist/scanner/ogmios.js +173 -0
- package/dist/tsconfig.tsbuildinfo +1 -0
- package/package.json +46 -0
package/CHANGELOG.md
ADDED
|
@@ -0,0 +1,138 @@
|
|
|
1
|
+
# @rosen-bridge/cardano-scanner
|
|
2
|
+
|
|
3
|
+
## 2.2.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- Add valid_contract field to transactions
|
|
8
|
+
|
|
9
|
+
## 2.1.3
|
|
10
|
+
|
|
11
|
+
### Patch Changes
|
|
12
|
+
|
|
13
|
+
- Update dependencies
|
|
14
|
+
- @rosen-bridge/abstract-scanner@2.0.3
|
|
15
|
+
|
|
16
|
+
## 2.1.2
|
|
17
|
+
|
|
18
|
+
### Patch Changes
|
|
19
|
+
|
|
20
|
+
- Update dependencies
|
|
21
|
+
- @rosen-bridge/abstract-scanner@2.0.2
|
|
22
|
+
- @rosen-clients/rate-limited-axios@2.0.1
|
|
23
|
+
|
|
24
|
+
## 2.1.1
|
|
25
|
+
|
|
26
|
+
### Patch Changes
|
|
27
|
+
|
|
28
|
+
- Update dependencies
|
|
29
|
+
- @rosen-bridge/abstract-scanner@2.0.1
|
|
30
|
+
|
|
31
|
+
## 2.1.0
|
|
32
|
+
|
|
33
|
+
### Minor Changes
|
|
34
|
+
|
|
35
|
+
- Add heightGap config into scanners config
|
|
36
|
+
|
|
37
|
+
### Patch Changes
|
|
38
|
+
|
|
39
|
+
- Update dependencies
|
|
40
|
+
- @rosen-bridge/abstract-scanner@2.0.0
|
|
41
|
+
- @rosen-bridge/scanner-interfaces@1.0.0
|
|
42
|
+
|
|
43
|
+
## 2.0.4
|
|
44
|
+
|
|
45
|
+
### Patch Changes
|
|
46
|
+
|
|
47
|
+
- Update dependencies
|
|
48
|
+
- @rosen-bridge/abstract-scanner@1.0.4
|
|
49
|
+
- @rosen-bridge/extended-typeorm@1.1.0
|
|
50
|
+
|
|
51
|
+
## 2.0.3
|
|
52
|
+
|
|
53
|
+
### Patch Changes
|
|
54
|
+
|
|
55
|
+
- Update dependencies
|
|
56
|
+
- @rosen-bridge/abstract-scanner@1.0.3
|
|
57
|
+
- @rosen-clients/rate-limited-axios@2.0.0
|
|
58
|
+
|
|
59
|
+
## 2.0.2
|
|
60
|
+
|
|
61
|
+
### Patch Changes
|
|
62
|
+
|
|
63
|
+
- @rosen-bridge/abstract-scanner@1.0.2
|
|
64
|
+
|
|
65
|
+
## 2.0.1
|
|
66
|
+
|
|
67
|
+
### Patch Changes
|
|
68
|
+
|
|
69
|
+
- Update dependencies
|
|
70
|
+
- @rosen-bridge/scanner-interfaces@0.2.2
|
|
71
|
+
- @rosen-bridge/abstract-scanner@1.0.1
|
|
72
|
+
|
|
73
|
+
## 2.0.0
|
|
74
|
+
|
|
75
|
+
### Major Changes
|
|
76
|
+
|
|
77
|
+
- Update AbstractExtractor interface; use `BlockInfo` in `processTransactions` and rename `initializeBoxes` to `initializeData`
|
|
78
|
+
|
|
79
|
+
### Patch Changes
|
|
80
|
+
|
|
81
|
+
- Update dependencies
|
|
82
|
+
- @rosen-bridge/abstract-logger@4.0.0
|
|
83
|
+
- @rosen-bridge/abstract-scanner@1.0.0
|
|
84
|
+
|
|
85
|
+
## 1.0.1
|
|
86
|
+
|
|
87
|
+
### Patch Changes
|
|
88
|
+
|
|
89
|
+
- Update dependencies
|
|
90
|
+
- @rosen-bridge/abstract-scanner@0.2.3
|
|
91
|
+
|
|
92
|
+
## 1.0.0
|
|
93
|
+
|
|
94
|
+
### Major Changes
|
|
95
|
+
|
|
96
|
+
- Change type of metadata for Blockfrost
|
|
97
|
+
|
|
98
|
+
### Patch Changes
|
|
99
|
+
|
|
100
|
+
- Update dependencies
|
|
101
|
+
- @rosen-bridge/abstract-scanner@0.2.2
|
|
102
|
+
|
|
103
|
+
## 0.2.1
|
|
104
|
+
|
|
105
|
+
### Patch Changes
|
|
106
|
+
|
|
107
|
+
- Fix package-lock and move typescript and types/node into root
|
|
108
|
+
- Update eslint and plugins:
|
|
109
|
+
- Apply new rules such as sort imports and file name
|
|
110
|
+
- Update dependencies
|
|
111
|
+
- @rosen-bridge/scanner-interfaces@0.2.1
|
|
112
|
+
- @rosen-bridge/abstract-scanner@0.2.1
|
|
113
|
+
- @rosen-bridge/extended-typeorm@1.0.1
|
|
114
|
+
- @rosen-clients/rate-limited-axios@1.1.0
|
|
115
|
+
- @rosen-bridge/rosen-extractor@10.1.1
|
|
116
|
+
- @rosen-bridge/tokens@4.0.1
|
|
117
|
+
- @rosen-bridge/abstract-logger@3.0.1
|
|
118
|
+
- @rosen-bridge/json-bigint@1.1.0
|
|
119
|
+
- @rosen-clients/ergo-explorer@2.1.0
|
|
120
|
+
- @rosen-clients/ergo-node@3.1.0
|
|
121
|
+
|
|
122
|
+
## 0.2.0
|
|
123
|
+
|
|
124
|
+
### Minor Changes
|
|
125
|
+
|
|
126
|
+
- Use @rosen-clients/rate-limited-axios instead of @rosen-bridge/rate-limited-axios
|
|
127
|
+
|
|
128
|
+
### Patch Changes
|
|
129
|
+
|
|
130
|
+
- Update dependencies
|
|
131
|
+
- @rosen-bridge/abstract-scanner@0.2.0
|
|
132
|
+
- @rosen-bridge/extended-typeorm@1.0.0
|
|
133
|
+
|
|
134
|
+
## 0.1.0
|
|
135
|
+
|
|
136
|
+
- Added optional suffix support for Cardano Ogmios scanner
|
|
137
|
+
- This package was **extracted** from `@rosen-bridge/scanner`.
|
|
138
|
+
You can follow the previous history in the old package’s changelog. The last changelog update is available [here](https://github.com/rosen-bridge/scanner/blob/d4a5539b01c523b101104470b03ff7023a10b70b/packages/scanner/CHANGELOG.md).
|
package/README.md
ADDED
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
# @rosen-bridge/cardano-scanner
|
|
2
|
+
|
|
3
|
+
## Table of contents
|
|
4
|
+
|
|
5
|
+
- [Introduction](#introduction)
|
|
6
|
+
- [Installation](#installation)
|
|
7
|
+
|
|
8
|
+
## Introduction
|
|
9
|
+
|
|
10
|
+
A Cardano blockchain scanner based on blackfrost , koios and ogmios API.
|
|
11
|
+
|
|
12
|
+
## Installation
|
|
13
|
+
|
|
14
|
+
npm:
|
|
15
|
+
|
|
16
|
+
```sh
|
|
17
|
+
npm i @rosen-bridge/cardano-scanner
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
yarn:
|
|
21
|
+
|
|
22
|
+
```sh
|
|
23
|
+
yarn add @rosen-bridge/cardano-scanner
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
### Usage
|
|
27
|
+
|
|
28
|
+
Cardano Scanner:
|
|
29
|
+
|
|
30
|
+
```javascript
|
|
31
|
+
const cardanoScannerConfig = {
|
|
32
|
+
koiosUrl: <koios_url>,
|
|
33
|
+
timeout: <api_timeout>,
|
|
34
|
+
initialHeight: <cardano_initial_height>,
|
|
35
|
+
dataSource: dataSource,
|
|
36
|
+
}
|
|
37
|
+
cardanoScanner = new CardanoKoiosScanner(cardanoScannerConfig)
|
|
38
|
+
```
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../lib/constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,kBAAkB,aAAa,CAAC;AAC7C,eAAO,MAAM,sBAAsB,QAAiB,CAAC;AACrD,eAAO,MAAM,0BAA0B,QAAY,CAAC;AACpD,eAAO,MAAM,yBAAyB,QAAW,CAAC"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export const SLOT_SHELLY_NUMBER = 1591566291;
|
|
2
|
+
export const RECONNECTION_MAX_DELAY = 60 * 60 * 1000; // One hour
|
|
3
|
+
export const RECONNECTION_INITIAL_DELAY = 30 * 1000; // 30 seconds
|
|
4
|
+
export const RECONNECTION_MAX_ATTEMPTS = Infinity;
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RhbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vbGliL2NvbnN0YW50cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBRyxVQUFVLENBQUM7QUFDN0MsTUFBTSxDQUFDLE1BQU0sc0JBQXNCLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUMsQ0FBQyxXQUFXO0FBQ2pFLE1BQU0sQ0FBQyxNQUFNLDBCQUEwQixHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUMsQ0FBQyxhQUFhO0FBQ2xFLE1BQU0sQ0FBQyxNQUFNLHlCQUF5QixHQUFHLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjb25zdCBTTE9UX1NIRUxMWV9OVU1CRVIgPSAxNTkxNTY2MjkxO1xuZXhwb3J0IGNvbnN0IFJFQ09OTkVDVElPTl9NQVhfREVMQVkgPSA2MCAqIDYwICogMTAwMDsgLy8gT25lIGhvdXJcbmV4cG9ydCBjb25zdCBSRUNPTk5FQ1RJT05fSU5JVElBTF9ERUxBWSA9IDMwICogMTAwMDsgLy8gMzAgc2Vjb25kc1xuZXhwb3J0IGNvbnN0IFJFQ09OTkVDVElPTl9NQVhfQVRURU1QVFMgPSBJbmZpbml0eTtcbiJdfQ==
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export * from './scanner/blockfrost';
|
|
2
|
+
export * from './interfaces/blockFrost';
|
|
3
|
+
export * from './interfaces/index';
|
|
4
|
+
export * from './interfaces/koios';
|
|
5
|
+
export * from './scanner/koios';
|
|
6
|
+
export * from './scanner/ogmios';
|
|
7
|
+
export * from './constants';
|
|
8
|
+
export * from './network/blockfrost';
|
|
9
|
+
export * from './network/koios';
|
|
10
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../lib/index.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAC;AACrC,cAAc,yBAAyB,CAAC;AACxC,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AACjC,cAAc,aAAa,CAAC;AAC5B,cAAc,sBAAsB,CAAC;AACrC,cAAc,iBAAiB,CAAC"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export * from './scanner/blockfrost';
|
|
2
|
+
export * from './interfaces/blockFrost';
|
|
3
|
+
export * from './interfaces/index';
|
|
4
|
+
export * from './interfaces/koios';
|
|
5
|
+
export * from './scanner/koios';
|
|
6
|
+
export * from './scanner/ogmios';
|
|
7
|
+
export * from './constants';
|
|
8
|
+
export * from './network/blockfrost';
|
|
9
|
+
export * from './network/koios';
|
|
10
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9saWIvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxzQkFBc0IsQ0FBQztBQUNyQyxjQUFjLHlCQUF5QixDQUFDO0FBQ3hDLGNBQWMsb0JBQW9CLENBQUM7QUFDbkMsY0FBYyxvQkFBb0IsQ0FBQztBQUNuQyxjQUFjLGlCQUFpQixDQUFDO0FBQ2hDLGNBQWMsa0JBQWtCLENBQUM7QUFDakMsY0FBYyxhQUFhLENBQUM7QUFDNUIsY0FBYyxzQkFBc0IsQ0FBQztBQUNyQyxjQUFjLGlCQUFpQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9zY2FubmVyL2Jsb2NrZnJvc3QnO1xuZXhwb3J0ICogZnJvbSAnLi9pbnRlcmZhY2VzL2Jsb2NrRnJvc3QnO1xuZXhwb3J0ICogZnJvbSAnLi9pbnRlcmZhY2VzL2luZGV4JztcbmV4cG9ydCAqIGZyb20gJy4vaW50ZXJmYWNlcy9rb2lvcyc7XG5leHBvcnQgKiBmcm9tICcuL3NjYW5uZXIva29pb3MnO1xuZXhwb3J0ICogZnJvbSAnLi9zY2FubmVyL29nbWlvcyc7XG5leHBvcnQgKiBmcm9tICcuL2NvbnN0YW50cyc7XG5leHBvcnQgKiBmcm9tICcuL25ldHdvcmsvYmxvY2tmcm9zdCc7XG5leHBvcnQgKiBmcm9tICcuL25ldHdvcmsva29pb3MnO1xuIl19
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { components } from '@blockfrost/openapi';
|
|
2
|
+
export declare class BlockFrostNullValueError extends Error {
|
|
3
|
+
constructor(msg: string);
|
|
4
|
+
}
|
|
5
|
+
export interface BlockFrostTransaction {
|
|
6
|
+
utxos: components['schemas']['tx_content_utxo'];
|
|
7
|
+
metadataCbor: components['schemas']['tx_content_metadata_cbor'];
|
|
8
|
+
}
|
|
9
|
+
//# sourceMappingURL=blockFrost.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"blockFrost.d.ts","sourceRoot":"","sources":["../../lib/interfaces/blockFrost.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAEjD,qBAAa,wBAAyB,SAAQ,KAAK;gBACrC,GAAG,EAAE,MAAM;CAGxB;AAED,MAAM,WAAW,qBAAqB;IACpC,KAAK,EAAE,UAAU,CAAC,SAAS,CAAC,CAAC,iBAAiB,CAAC,CAAC;IAChD,YAAY,EAAE,UAAU,CAAC,SAAS,CAAC,CAAC,0BAA0B,CAAC,CAAC;CACjE"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export class BlockFrostNullValueError extends Error {
|
|
2
|
+
constructor(msg) {
|
|
3
|
+
super('BlockFrostNullValueError: ' + msg);
|
|
4
|
+
}
|
|
5
|
+
}
|
|
6
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmxvY2tGcm9zdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL2xpYi9pbnRlcmZhY2VzL2Jsb2NrRnJvc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsTUFBTSxPQUFPLHdCQUF5QixTQUFRLEtBQUs7SUFDakQsWUFBWSxHQUFXO1FBQ3JCLEtBQUssQ0FBQyw0QkFBNEIsR0FBRyxHQUFHLENBQUMsQ0FBQztJQUM1QyxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjb21wb25lbnRzIH0gZnJvbSAnQGJsb2NrZnJvc3Qvb3BlbmFwaSc7XG5cbmV4cG9ydCBjbGFzcyBCbG9ja0Zyb3N0TnVsbFZhbHVlRXJyb3IgZXh0ZW5kcyBFcnJvciB7XG4gIGNvbnN0cnVjdG9yKG1zZzogc3RyaW5nKSB7XG4gICAgc3VwZXIoJ0Jsb2NrRnJvc3ROdWxsVmFsdWVFcnJvcjogJyArIG1zZyk7XG4gIH1cbn1cblxuZXhwb3J0IGludGVyZmFjZSBCbG9ja0Zyb3N0VHJhbnNhY3Rpb24ge1xuICB1dHhvczogY29tcG9uZW50c1snc2NoZW1hcyddWyd0eF9jb250ZW50X3V0eG8nXTtcbiAgbWV0YWRhdGFDYm9yOiBjb21wb25lbnRzWydzY2hlbWFzJ11bJ3R4X2NvbnRlbnRfbWV0YWRhdGFfY2JvciddO1xufVxuIl19
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { DataSource } from '@rosen-bridge/extended-typeorm';
|
|
2
|
+
interface OgmiosReconnectionConfig {
|
|
3
|
+
initialDelay?: number;
|
|
4
|
+
maxDelay?: number;
|
|
5
|
+
maxAttempts?: number;
|
|
6
|
+
}
|
|
7
|
+
interface CardanoOgmiosConfig {
|
|
8
|
+
nodeHostOrIp: string;
|
|
9
|
+
nodePort: number;
|
|
10
|
+
initialSlot: number;
|
|
11
|
+
initialHash: string;
|
|
12
|
+
maxTryBlock?: number;
|
|
13
|
+
dataSource: DataSource;
|
|
14
|
+
useTls?: boolean;
|
|
15
|
+
reconnectionConfig?: OgmiosReconnectionConfig;
|
|
16
|
+
suffix?: string;
|
|
17
|
+
}
|
|
18
|
+
export { OgmiosReconnectionConfig, CardanoOgmiosConfig };
|
|
19
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../lib/interfaces/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AAE5D,UAAU,wBAAwB;IAChC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,UAAU,mBAAmB;IAC3B,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,UAAU,CAAC;IACvB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,kBAAkB,CAAC,EAAE,wBAAwB,CAAC;IAC9C,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,OAAO,EAAE,wBAAwB,EAAE,mBAAmB,EAAE,CAAC"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9saWIvaW50ZXJmYWNlcy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGF0YVNvdXJjZSB9IGZyb20gJ0Byb3Nlbi1icmlkZ2UvZXh0ZW5kZWQtdHlwZW9ybSc7XG5cbmludGVyZmFjZSBPZ21pb3NSZWNvbm5lY3Rpb25Db25maWcge1xuICBpbml0aWFsRGVsYXk/OiBudW1iZXI7XG4gIG1heERlbGF5PzogbnVtYmVyO1xuICBtYXhBdHRlbXB0cz86IG51bWJlcjtcbn1cblxuaW50ZXJmYWNlIENhcmRhbm9PZ21pb3NDb25maWcge1xuICBub2RlSG9zdE9ySXA6IHN0cmluZztcbiAgbm9kZVBvcnQ6IG51bWJlcjtcbiAgaW5pdGlhbFNsb3Q6IG51bWJlcjtcbiAgaW5pdGlhbEhhc2g6IHN0cmluZztcbiAgbWF4VHJ5QmxvY2s/OiBudW1iZXI7XG4gIGRhdGFTb3VyY2U6IERhdGFTb3VyY2U7XG4gIHVzZVRscz86IGJvb2xlYW47XG4gIHJlY29ubmVjdGlvbkNvbmZpZz86IE9nbWlvc1JlY29ubmVjdGlvbkNvbmZpZztcbiAgc3VmZml4Pzogc3RyaW5nO1xufVxuXG5leHBvcnQgeyBPZ21pb3NSZWNvbm5lY3Rpb25Db25maWcsIENhcmRhbm9PZ21pb3NDb25maWcgfTtcbiJdfQ==
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { TransactionJSON } from '@emurgo/cardano-serialization-lib-nodejs';
|
|
2
|
+
interface KoiosBlock {
|
|
3
|
+
hash: string;
|
|
4
|
+
block_height: number;
|
|
5
|
+
block_time: number;
|
|
6
|
+
tx_count: number;
|
|
7
|
+
}
|
|
8
|
+
interface KoiosBlockInfo {
|
|
9
|
+
hash: string;
|
|
10
|
+
block_height: number;
|
|
11
|
+
parent_hash: string;
|
|
12
|
+
child_hash?: string;
|
|
13
|
+
}
|
|
14
|
+
interface KoiosCborTx {
|
|
15
|
+
tx_hash: string;
|
|
16
|
+
block_hash: string;
|
|
17
|
+
block_height: number;
|
|
18
|
+
epoch_no: number;
|
|
19
|
+
absolute_slot: number;
|
|
20
|
+
tx_timestamp: number;
|
|
21
|
+
cbor: string;
|
|
22
|
+
valid_contract: boolean;
|
|
23
|
+
}
|
|
24
|
+
type KoiosTransaction = KoiosCborTx & TransactionJSON;
|
|
25
|
+
export { KoiosBlock, KoiosBlockInfo, KoiosTransaction, KoiosCborTx };
|
|
26
|
+
//# sourceMappingURL=koios.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"koios.d.ts","sourceRoot":"","sources":["../../lib/interfaces/koios.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,0CAA0C,CAAC;AAE3E,UAAU,UAAU;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,UAAU,cAAc;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,UAAU,WAAW;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,cAAc,EAAE,OAAO,CAAC;CACzB;AAED,KAAK,gBAAgB,GAAG,WAAW,GAAG,eAAe,CAAC;AAEtD,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,gBAAgB,EAAE,WAAW,EAAE,CAAC"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia29pb3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9saWIvaW50ZXJmYWNlcy9rb2lvcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVHJhbnNhY3Rpb25KU09OIH0gZnJvbSAnQGVtdXJnby9jYXJkYW5vLXNlcmlhbGl6YXRpb24tbGliLW5vZGVqcyc7XG5cbmludGVyZmFjZSBLb2lvc0Jsb2NrIHtcbiAgaGFzaDogc3RyaW5nO1xuICBibG9ja19oZWlnaHQ6IG51bWJlcjtcbiAgYmxvY2tfdGltZTogbnVtYmVyO1xuICB0eF9jb3VudDogbnVtYmVyO1xufVxuXG5pbnRlcmZhY2UgS29pb3NCbG9ja0luZm8ge1xuICBoYXNoOiBzdHJpbmc7XG4gIGJsb2NrX2hlaWdodDogbnVtYmVyO1xuICBwYXJlbnRfaGFzaDogc3RyaW5nO1xuICBjaGlsZF9oYXNoPzogc3RyaW5nO1xufVxuXG5pbnRlcmZhY2UgS29pb3NDYm9yVHgge1xuICB0eF9oYXNoOiBzdHJpbmc7XG4gIGJsb2NrX2hhc2g6IHN0cmluZztcbiAgYmxvY2tfaGVpZ2h0OiBudW1iZXI7XG4gIGVwb2NoX25vOiBudW1iZXI7XG4gIGFic29sdXRlX3Nsb3Q6IG51bWJlcjtcbiAgdHhfdGltZXN0YW1wOiBudW1iZXI7XG4gIGNib3I6IHN0cmluZztcbiAgdmFsaWRfY29udHJhY3Q6IGJvb2xlYW47XG59XG5cbnR5cGUgS29pb3NUcmFuc2FjdGlvbiA9IEtvaW9zQ2JvclR4ICYgVHJhbnNhY3Rpb25KU09OO1xuXG5leHBvcnQgeyBLb2lvc0Jsb2NrLCBLb2lvc0Jsb2NrSW5mbywgS29pb3NUcmFuc2FjdGlvbiwgS29pb3NDYm9yVHggfTtcbiJdfQ==
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { AbstractNetworkConnector, Block } from '@rosen-bridge/scanner-interfaces';
|
|
2
|
+
import { BlockFrostTransaction } from '../interfaces/blockFrost';
|
|
3
|
+
export declare class BlockFrostNetwork extends AbstractNetworkConnector<BlockFrostTransaction> {
|
|
4
|
+
private client;
|
|
5
|
+
constructor(projectId: string, url?: string);
|
|
6
|
+
/**
|
|
7
|
+
* get block header from height
|
|
8
|
+
* @param height
|
|
9
|
+
*/
|
|
10
|
+
getBlockAtHeight: (height: number) => Promise<Block>;
|
|
11
|
+
/**
|
|
12
|
+
* get current height for blockchain
|
|
13
|
+
*/
|
|
14
|
+
getCurrentHeight: () => Promise<number>;
|
|
15
|
+
/**
|
|
16
|
+
* Try getting transactions information.
|
|
17
|
+
* @param txHashes
|
|
18
|
+
*/
|
|
19
|
+
getTxInformation: (txId: string) => Promise<BlockFrostTransaction>;
|
|
20
|
+
/**
|
|
21
|
+
* fetch list of transaction for a specific block
|
|
22
|
+
* @param blockId
|
|
23
|
+
*/
|
|
24
|
+
getBlockTxs: (blockId: string) => Promise<Array<BlockFrostTransaction>>;
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=blockfrost.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"blockfrost.d.ts","sourceRoot":"","sources":["../../lib/network/blockfrost.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,wBAAwB,EACxB,KAAK,EACN,MAAM,kCAAkC,CAAC;AAE1C,OAAO,EAEL,qBAAqB,EACtB,MAAM,0BAA0B,CAAC;AAElC,qBAAa,iBAAkB,SAAQ,wBAAwB,CAAC,qBAAqB,CAAC;IACpF,OAAO,CAAC,MAAM,CAAgB;gBAElB,SAAS,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM;IAS3C;;;OAGG;IACH,gBAAgB,GAAU,QAAQ,MAAM,KAAG,OAAO,CAAC,KAAK,CAAC,CAkBvD;IAEF;;OAEG;IACH,gBAAgB,QAAa,OAAO,CAAC,MAAM,CAAC,CAW1C;IAEF;;;OAGG;IACH,gBAAgB,GAAU,MAAM,MAAM,KAAG,OAAO,CAAC,qBAAqB,CAAC,CAQrE;IAEF;;;OAGG;IACH,WAAW,GACT,SAAS,MAAM,KACd,OAAO,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC,CAStC;CACH"}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
import { BlockFrostAPI } from '@blockfrost/blockfrost-js';
|
|
2
|
+
import { AbstractNetworkConnector, } from '@rosen-bridge/scanner-interfaces';
|
|
3
|
+
import { BlockFrostNullValueError, } from '../interfaces/blockFrost';
|
|
4
|
+
export class BlockFrostNetwork extends AbstractNetworkConnector {
|
|
5
|
+
client;
|
|
6
|
+
constructor(projectId, url) {
|
|
7
|
+
super();
|
|
8
|
+
this.client = new BlockFrostAPI({
|
|
9
|
+
projectId: projectId,
|
|
10
|
+
customBackend: url,
|
|
11
|
+
network: 'mainnet',
|
|
12
|
+
});
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* get block header from height
|
|
16
|
+
* @param height
|
|
17
|
+
*/
|
|
18
|
+
getBlockAtHeight = async (height) => {
|
|
19
|
+
return this.client
|
|
20
|
+
.blocks(height)
|
|
21
|
+
.then((res) => {
|
|
22
|
+
if (!res.height || !res.previous_block)
|
|
23
|
+
throw new BlockFrostNullValueError(`Block height or previous_block is null`);
|
|
24
|
+
return {
|
|
25
|
+
hash: res.hash,
|
|
26
|
+
height: res.height,
|
|
27
|
+
parentHash: res.previous_block,
|
|
28
|
+
timestamp: res.time,
|
|
29
|
+
};
|
|
30
|
+
})
|
|
31
|
+
.catch((exp) => {
|
|
32
|
+
throw exp;
|
|
33
|
+
});
|
|
34
|
+
};
|
|
35
|
+
/**
|
|
36
|
+
* get current height for blockchain
|
|
37
|
+
*/
|
|
38
|
+
getCurrentHeight = async () => {
|
|
39
|
+
return this.client
|
|
40
|
+
.blocksLatest()
|
|
41
|
+
.then((block) => {
|
|
42
|
+
const height = block.height;
|
|
43
|
+
if (height)
|
|
44
|
+
return height;
|
|
45
|
+
throw new BlockFrostNullValueError('Height of last block is null');
|
|
46
|
+
})
|
|
47
|
+
.catch((exp) => {
|
|
48
|
+
throw exp;
|
|
49
|
+
});
|
|
50
|
+
};
|
|
51
|
+
/**
|
|
52
|
+
* Try getting transactions information.
|
|
53
|
+
* @param txHashes
|
|
54
|
+
*/
|
|
55
|
+
getTxInformation = async (txId) => {
|
|
56
|
+
const txUtxos = await this.client.txsUtxos(txId);
|
|
57
|
+
const txMetadata = await this.client.txsMetadataCbor(txId);
|
|
58
|
+
return {
|
|
59
|
+
utxos: txUtxos,
|
|
60
|
+
metadataCbor: txMetadata,
|
|
61
|
+
};
|
|
62
|
+
};
|
|
63
|
+
/**
|
|
64
|
+
* fetch list of transaction for a specific block
|
|
65
|
+
* @param blockId
|
|
66
|
+
*/
|
|
67
|
+
getBlockTxs = async (blockId) => {
|
|
68
|
+
const blockTxIds = await this.client.blocksTxsAll(blockId);
|
|
69
|
+
const blockTxs = [];
|
|
70
|
+
for (const txId of blockTxIds) {
|
|
71
|
+
blockTxs.push(await this.getTxInformation(txId));
|
|
72
|
+
}
|
|
73
|
+
return blockTxs;
|
|
74
|
+
};
|
|
75
|
+
}
|
|
76
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmxvY2tmcm9zdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL2xpYi9uZXR3b3JrL2Jsb2NrZnJvc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBRTFELE9BQU8sRUFDTCx3QkFBd0IsR0FFekIsTUFBTSxrQ0FBa0MsQ0FBQztBQUUxQyxPQUFPLEVBQ0wsd0JBQXdCLEdBRXpCLE1BQU0sMEJBQTBCLENBQUM7QUFFbEMsTUFBTSxPQUFPLGlCQUFrQixTQUFRLHdCQUErQztJQUM1RSxNQUFNLENBQWdCO0lBRTlCLFlBQVksU0FBaUIsRUFBRSxHQUFZO1FBQ3pDLEtBQUssRUFBRSxDQUFDO1FBQ1IsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLGFBQWEsQ0FBQztZQUM5QixTQUFTLEVBQUUsU0FBUztZQUNwQixhQUFhLEVBQUUsR0FBRztZQUNsQixPQUFPLEVBQUUsU0FBUztTQUNuQixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsZ0JBQWdCLEdBQUcsS0FBSyxFQUFFLE1BQWMsRUFBa0IsRUFBRTtRQUMxRCxPQUFPLElBQUksQ0FBQyxNQUFNO2FBQ2YsTUFBTSxDQUFDLE1BQU0sQ0FBQzthQUNkLElBQUksQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFO1lBQ1osSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLElBQUksQ0FBQyxHQUFHLENBQUMsY0FBYztnQkFDcEMsTUFBTSxJQUFJLHdCQUF3QixDQUNoQyx3Q0FBd0MsQ0FDekMsQ0FBQztZQUNKLE9BQU87Z0JBQ0wsSUFBSSxFQUFFLEdBQUcsQ0FBQyxJQUFJO2dCQUNkLE1BQU0sRUFBRSxHQUFHLENBQUMsTUFBTTtnQkFDbEIsVUFBVSxFQUFFLEdBQUcsQ0FBQyxjQUFjO2dCQUM5QixTQUFTLEVBQUUsR0FBRyxDQUFDLElBQUk7YUFDcEIsQ0FBQztRQUNKLENBQUMsQ0FBQzthQUNELEtBQUssQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFO1lBQ2IsTUFBTSxHQUFHLENBQUM7UUFDWixDQUFDLENBQUMsQ0FBQztJQUNQLENBQUMsQ0FBQztJQUVGOztPQUVHO0lBQ0gsZ0JBQWdCLEdBQUcsS0FBSyxJQUFxQixFQUFFO1FBQzdDLE9BQU8sSUFBSSxDQUFDLE1BQU07YUFDZixZQUFZLEVBQUU7YUFDZCxJQUFJLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTtZQUNkLE1BQU0sTUFBTSxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUM7WUFDNUIsSUFBSSxNQUFNO2dCQUFFLE9BQU8sTUFBTSxDQUFDO1lBQzFCLE1BQU0sSUFBSSx3QkFBd0IsQ0FBQyw4QkFBOEIsQ0FBQyxDQUFDO1FBQ3JFLENBQUMsQ0FBQzthQUNELEtBQUssQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFO1lBQ2IsTUFBTSxHQUFHLENBQUM7UUFDWixDQUFDLENBQUMsQ0FBQztJQUNQLENBQUMsQ0FBQztJQUVGOzs7T0FHRztJQUNILGdCQUFnQixHQUFHLEtBQUssRUFBRSxJQUFZLEVBQWtDLEVBQUU7UUFDeEUsTUFBTSxPQUFPLEdBQUcsTUFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNqRCxNQUFNLFVBQVUsR0FBRyxNQUFNLElBQUksQ0FBQyxNQUFNLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRTNELE9BQU87WUFDTCxLQUFLLEVBQUUsT0FBTztZQUNkLFlBQVksRUFBRSxVQUFVO1NBQ3pCLENBQUM7SUFDSixDQUFDLENBQUM7SUFFRjs7O09BR0c7SUFDSCxXQUFXLEdBQUcsS0FBSyxFQUNqQixPQUFlLEVBQ3dCLEVBQUU7UUFDekMsTUFBTSxVQUFVLEdBQUcsTUFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUUzRCxNQUFNLFFBQVEsR0FBRyxFQUFFLENBQUM7UUFDcEIsS0FBSyxNQUFNLElBQUksSUFBSSxVQUFVLEVBQUUsQ0FBQztZQUM5QixRQUFRLENBQUMsSUFBSSxDQUFDLE1BQU0sSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7UUFDbkQsQ0FBQztRQUVELE9BQU8sUUFBUSxDQUFDO0lBQ2xCLENBQUMsQ0FBQztDQUNIIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQmxvY2tGcm9zdEFQSSB9IGZyb20gJ0BibG9ja2Zyb3N0L2Jsb2NrZnJvc3QtanMnO1xuXG5pbXBvcnQge1xuICBBYnN0cmFjdE5ldHdvcmtDb25uZWN0b3IsXG4gIEJsb2NrLFxufSBmcm9tICdAcm9zZW4tYnJpZGdlL3NjYW5uZXItaW50ZXJmYWNlcyc7XG5cbmltcG9ydCB7XG4gIEJsb2NrRnJvc3ROdWxsVmFsdWVFcnJvcixcbiAgQmxvY2tGcm9zdFRyYW5zYWN0aW9uLFxufSBmcm9tICcuLi9pbnRlcmZhY2VzL2Jsb2NrRnJvc3QnO1xuXG5leHBvcnQgY2xhc3MgQmxvY2tGcm9zdE5ldHdvcmsgZXh0ZW5kcyBBYnN0cmFjdE5ldHdvcmtDb25uZWN0b3I8QmxvY2tGcm9zdFRyYW5zYWN0aW9uPiB7XG4gIHByaXZhdGUgY2xpZW50OiBCbG9ja0Zyb3N0QVBJO1xuXG4gIGNvbnN0cnVjdG9yKHByb2plY3RJZDogc3RyaW5nLCB1cmw/OiBzdHJpbmcpIHtcbiAgICBzdXBlcigpO1xuICAgIHRoaXMuY2xpZW50ID0gbmV3IEJsb2NrRnJvc3RBUEkoe1xuICAgICAgcHJvamVjdElkOiBwcm9qZWN0SWQsXG4gICAgICBjdXN0b21CYWNrZW5kOiB1cmwsXG4gICAgICBuZXR3b3JrOiAnbWFpbm5ldCcsXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogZ2V0IGJsb2NrIGhlYWRlciBmcm9tIGhlaWdodFxuICAgKiBAcGFyYW0gaGVpZ2h0XG4gICAqL1xuICBnZXRCbG9ja0F0SGVpZ2h0ID0gYXN5bmMgKGhlaWdodDogbnVtYmVyKTogUHJvbWlzZTxCbG9jaz4gPT4ge1xuICAgIHJldHVybiB0aGlzLmNsaWVudFxuICAgICAgLmJsb2NrcyhoZWlnaHQpXG4gICAgICAudGhlbigocmVzKSA9PiB7XG4gICAgICAgIGlmICghcmVzLmhlaWdodCB8fCAhcmVzLnByZXZpb3VzX2Jsb2NrKVxuICAgICAgICAgIHRocm93IG5ldyBCbG9ja0Zyb3N0TnVsbFZhbHVlRXJyb3IoXG4gICAgICAgICAgICBgQmxvY2sgaGVpZ2h0IG9yIHByZXZpb3VzX2Jsb2NrIGlzIG51bGxgLFxuICAgICAgICAgICk7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgaGFzaDogcmVzLmhhc2gsXG4gICAgICAgICAgaGVpZ2h0OiByZXMuaGVpZ2h0LFxuICAgICAgICAgIHBhcmVudEhhc2g6IHJlcy5wcmV2aW91c19ibG9jayxcbiAgICAgICAgICB0aW1lc3RhbXA6IHJlcy50aW1lLFxuICAgICAgICB9O1xuICAgICAgfSlcbiAgICAgIC5jYXRjaCgoZXhwKSA9PiB7XG4gICAgICAgIHRocm93IGV4cDtcbiAgICAgIH0pO1xuICB9O1xuXG4gIC8qKlxuICAgKiBnZXQgY3VycmVudCBoZWlnaHQgZm9yIGJsb2NrY2hhaW5cbiAgICovXG4gIGdldEN1cnJlbnRIZWlnaHQgPSBhc3luYyAoKTogUHJvbWlzZTxudW1iZXI+ID0+IHtcbiAgICByZXR1cm4gdGhpcy5jbGllbnRcbiAgICAgIC5ibG9ja3NMYXRlc3QoKVxuICAgICAgLnRoZW4oKGJsb2NrKSA9PiB7XG4gICAgICAgIGNvbnN0IGhlaWdodCA9IGJsb2NrLmhlaWdodDtcbiAgICAgICAgaWYgKGhlaWdodCkgcmV0dXJuIGhlaWdodDtcbiAgICAgICAgdGhyb3cgbmV3IEJsb2NrRnJvc3ROdWxsVmFsdWVFcnJvcignSGVpZ2h0IG9mIGxhc3QgYmxvY2sgaXMgbnVsbCcpO1xuICAgICAgfSlcbiAgICAgIC5jYXRjaCgoZXhwKSA9PiB7XG4gICAgICAgIHRocm93IGV4cDtcbiAgICAgIH0pO1xuICB9O1xuXG4gIC8qKlxuICAgKiBUcnkgZ2V0dGluZyB0cmFuc2FjdGlvbnMgaW5mb3JtYXRpb24uXG4gICAqIEBwYXJhbSB0eEhhc2hlc1xuICAgKi9cbiAgZ2V0VHhJbmZvcm1hdGlvbiA9IGFzeW5jICh0eElkOiBzdHJpbmcpOiBQcm9taXNlPEJsb2NrRnJvc3RUcmFuc2FjdGlvbj4gPT4ge1xuICAgIGNvbnN0IHR4VXR4b3MgPSBhd2FpdCB0aGlzLmNsaWVudC50eHNVdHhvcyh0eElkKTtcbiAgICBjb25zdCB0eE1ldGFkYXRhID0gYXdhaXQgdGhpcy5jbGllbnQudHhzTWV0YWRhdGFDYm9yKHR4SWQpO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIHV0eG9zOiB0eFV0eG9zLFxuICAgICAgbWV0YWRhdGFDYm9yOiB0eE1ldGFkYXRhLFxuICAgIH07XG4gIH07XG5cbiAgLyoqXG4gICAqIGZldGNoIGxpc3Qgb2YgdHJhbnNhY3Rpb24gZm9yIGEgc3BlY2lmaWMgYmxvY2tcbiAgICogQHBhcmFtIGJsb2NrSWRcbiAgICovXG4gIGdldEJsb2NrVHhzID0gYXN5bmMgKFxuICAgIGJsb2NrSWQ6IHN0cmluZyxcbiAgKTogUHJvbWlzZTxBcnJheTxCbG9ja0Zyb3N0VHJhbnNhY3Rpb24+PiA9PiB7XG4gICAgY29uc3QgYmxvY2tUeElkcyA9IGF3YWl0IHRoaXMuY2xpZW50LmJsb2Nrc1R4c0FsbChibG9ja0lkKTtcblxuICAgIGNvbnN0IGJsb2NrVHhzID0gW107XG4gICAgZm9yIChjb25zdCB0eElkIG9mIGJsb2NrVHhJZHMpIHtcbiAgICAgIGJsb2NrVHhzLnB1c2goYXdhaXQgdGhpcy5nZXRUeEluZm9ybWF0aW9uKHR4SWQpKTtcbiAgICB9XG5cbiAgICByZXR1cm4gYmxvY2tUeHM7XG4gIH07XG59XG4iXX0=
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { AbstractNetworkConnector, Block } from '@rosen-bridge/scanner-interfaces';
|
|
2
|
+
import { KoiosTransaction } from '../interfaces/koios';
|
|
3
|
+
export declare class KoiosNetwork extends AbstractNetworkConnector<KoiosTransaction> {
|
|
4
|
+
private readonly url;
|
|
5
|
+
private readonly timeout;
|
|
6
|
+
private koios;
|
|
7
|
+
constructor(url: string, timeout: number, authToken?: string);
|
|
8
|
+
/**
|
|
9
|
+
* Returns block at height
|
|
10
|
+
* @param height
|
|
11
|
+
* @returns Block
|
|
12
|
+
*/
|
|
13
|
+
getBlockAtHeight: (height: number) => Promise<Block>;
|
|
14
|
+
/**
|
|
15
|
+
* Returns current network height
|
|
16
|
+
* @returns current height
|
|
17
|
+
*/
|
|
18
|
+
getCurrentHeight: () => Promise<number>;
|
|
19
|
+
/**
|
|
20
|
+
* Return transactions in a block with specified hash
|
|
21
|
+
* @param blockHash
|
|
22
|
+
* @returns array of KoiosTransaction
|
|
23
|
+
*/
|
|
24
|
+
getBlockTxs: (blockHash: string) => Promise<Array<KoiosTransaction>>;
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=koios.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"koios.d.ts","sourceRoot":"","sources":["../../lib/network/koios.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,wBAAwB,EACxB,KAAK,EACN,MAAM,kCAAkC,CAAC;AAG1C,OAAO,EAA2B,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAEhF,qBAAa,YAAa,SAAQ,wBAAwB,CAAC,gBAAgB,CAAC;IAC1E,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAS;IAC7B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,KAAK,CAAQ;gBAET,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM;IAe5D;;;;OAIG;IACH,gBAAgB,GAAI,QAAQ,MAAM,KAAG,OAAO,CAAC,KAAK,CAAC,CAuBjD;IAEF;;;OAGG;IACH,gBAAgB,QAAO,OAAO,CAAC,MAAM,CAAC,CASpC;IAEF;;;;OAIG;IACH,WAAW,GAAI,WAAW,MAAM,KAAG,OAAO,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC,CAmBjE;CACH"}
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
import { Transaction } from '@emurgo/cardano-serialization-lib-nodejs';
|
|
2
|
+
import JsonBigint from '@rosen-bridge/json-bigint';
|
|
3
|
+
import { AbstractNetworkConnector, } from '@rosen-bridge/scanner-interfaces';
|
|
4
|
+
import axios from '@rosen-clients/rate-limited-axios';
|
|
5
|
+
export class KoiosNetwork extends AbstractNetworkConnector {
|
|
6
|
+
url;
|
|
7
|
+
timeout;
|
|
8
|
+
koios;
|
|
9
|
+
constructor(url, timeout, authToken) {
|
|
10
|
+
super();
|
|
11
|
+
this.url = url;
|
|
12
|
+
this.timeout = timeout;
|
|
13
|
+
this.koios = axios.create({
|
|
14
|
+
baseURL: this.url,
|
|
15
|
+
timeout: this.timeout,
|
|
16
|
+
headers: { 'Content-Type': 'application/json' },
|
|
17
|
+
});
|
|
18
|
+
if (authToken) {
|
|
19
|
+
this.koios.defaults.headers.common['Authorization'] =
|
|
20
|
+
`Bearer ${authToken}`;
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Returns block at height
|
|
25
|
+
* @param height
|
|
26
|
+
* @returns Block
|
|
27
|
+
*/
|
|
28
|
+
getBlockAtHeight = (height) => {
|
|
29
|
+
return this.koios
|
|
30
|
+
.get('/blocks', {
|
|
31
|
+
params: {
|
|
32
|
+
block_height: `lte.${height}`,
|
|
33
|
+
limit: 2,
|
|
34
|
+
select: 'hash,block_height,block_time,tx_count',
|
|
35
|
+
},
|
|
36
|
+
})
|
|
37
|
+
.then((res) => {
|
|
38
|
+
const block = res.data[0];
|
|
39
|
+
const parentBlock = res.data[1];
|
|
40
|
+
return {
|
|
41
|
+
hash: block.hash,
|
|
42
|
+
height: block.block_height,
|
|
43
|
+
parentHash: parentBlock.hash,
|
|
44
|
+
timestamp: block.block_time,
|
|
45
|
+
txCount: block.tx_count,
|
|
46
|
+
};
|
|
47
|
+
})
|
|
48
|
+
.catch((exp) => {
|
|
49
|
+
throw exp;
|
|
50
|
+
});
|
|
51
|
+
};
|
|
52
|
+
/**
|
|
53
|
+
* Returns current network height
|
|
54
|
+
* @returns current height
|
|
55
|
+
*/
|
|
56
|
+
getCurrentHeight = () => {
|
|
57
|
+
return this.koios
|
|
58
|
+
.get('/blocks', {
|
|
59
|
+
params: { offset: 0, limit: 1, select: 'hash,block_height' },
|
|
60
|
+
})
|
|
61
|
+
.then((res) => res.data[0].block_height)
|
|
62
|
+
.catch((exp) => {
|
|
63
|
+
throw exp;
|
|
64
|
+
});
|
|
65
|
+
};
|
|
66
|
+
/**
|
|
67
|
+
* Return transactions in a block with specified hash
|
|
68
|
+
* @param blockHash
|
|
69
|
+
* @returns array of KoiosTransaction
|
|
70
|
+
*/
|
|
71
|
+
getBlockTxs = (blockHash) => {
|
|
72
|
+
return this.koios
|
|
73
|
+
.post('/block_tx_cbor', {
|
|
74
|
+
_block_hashes: [blockHash],
|
|
75
|
+
})
|
|
76
|
+
.then((res) => {
|
|
77
|
+
return res.data.map((tx) => {
|
|
78
|
+
const serializedTx = Transaction.from_bytes(new Uint8Array(Buffer.from(tx.cbor, 'hex')));
|
|
79
|
+
return {
|
|
80
|
+
...tx,
|
|
81
|
+
...JsonBigint.parse(serializedTx.to_json()),
|
|
82
|
+
};
|
|
83
|
+
});
|
|
84
|
+
})
|
|
85
|
+
.catch((exp) => {
|
|
86
|
+
throw exp;
|
|
87
|
+
});
|
|
88
|
+
};
|
|
89
|
+
}
|
|
90
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia29pb3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9saWIvbmV0d29yay9rb2lvcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFFdkUsT0FBTyxVQUFVLE1BQU0sMkJBQTJCLENBQUM7QUFDbkQsT0FBTyxFQUNMLHdCQUF3QixHQUV6QixNQUFNLGtDQUFrQyxDQUFDO0FBQzFDLE9BQU8sS0FBZ0IsTUFBTSxtQ0FBbUMsQ0FBQztBQUlqRSxNQUFNLE9BQU8sWUFBYSxTQUFRLHdCQUEwQztJQUN6RCxHQUFHLENBQVM7SUFDWixPQUFPLENBQVM7SUFDekIsS0FBSyxDQUFRO0lBRXJCLFlBQVksR0FBVyxFQUFFLE9BQWUsRUFBRSxTQUFrQjtRQUMxRCxLQUFLLEVBQUUsQ0FBQztRQUNSLElBQUksQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDO1FBQ2YsSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUM7UUFDdkIsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDO1lBQ3hCLE9BQU8sRUFBRSxJQUFJLENBQUMsR0FBRztZQUNqQixPQUFPLEVBQUUsSUFBSSxDQUFDLE9BQU87WUFDckIsT0FBTyxFQUFFLEVBQUUsY0FBYyxFQUFFLGtCQUFrQixFQUFFO1NBQ2hELENBQUMsQ0FBQztRQUNILElBQUksU0FBUyxFQUFFLENBQUM7WUFDZCxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLGVBQWUsQ0FBQztnQkFDakQsVUFBVSxTQUFTLEVBQUUsQ0FBQztRQUMxQixDQUFDO0lBQ0gsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxnQkFBZ0IsR0FBRyxDQUFDLE1BQWMsRUFBa0IsRUFBRTtRQUNwRCxPQUFPLElBQUksQ0FBQyxLQUFLO2FBQ2QsR0FBRyxDQUFvQixTQUFTLEVBQUU7WUFDakMsTUFBTSxFQUFFO2dCQUNOLFlBQVksRUFBRSxPQUFPLE1BQU0sRUFBRTtnQkFDN0IsS0FBSyxFQUFFLENBQUM7Z0JBQ1IsTUFBTSxFQUFFLHVDQUF1QzthQUNoRDtTQUNGLENBQUM7YUFDRCxJQUFJLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRTtZQUNaLE1BQU0sS0FBSyxHQUFHLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDMUIsTUFBTSxXQUFXLEdBQUcsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNoQyxPQUFPO2dCQUNMLElBQUksRUFBRSxLQUFLLENBQUMsSUFBSTtnQkFDaEIsTUFBTSxFQUFFLEtBQUssQ0FBQyxZQUFZO2dCQUMxQixVQUFVLEVBQUUsV0FBVyxDQUFDLElBQUk7Z0JBQzVCLFNBQVMsRUFBRSxLQUFLLENBQUMsVUFBVTtnQkFDM0IsT0FBTyxFQUFFLEtBQUssQ0FBQyxRQUFRO2FBQ3hCLENBQUM7UUFDSixDQUFDLENBQUM7YUFDRCxLQUFLLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRTtZQUNiLE1BQU0sR0FBRyxDQUFDO1FBQ1osQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDLENBQUM7SUFFRjs7O09BR0c7SUFDSCxnQkFBZ0IsR0FBRyxHQUFvQixFQUFFO1FBQ3ZDLE9BQU8sSUFBSSxDQUFDLEtBQUs7YUFDZCxHQUFHLENBQW9CLFNBQVMsRUFBRTtZQUNqQyxNQUFNLEVBQUUsRUFBRSxNQUFNLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUUsTUFBTSxFQUFFLG1CQUFtQixFQUFFO1NBQzdELENBQUM7YUFDRCxJQUFJLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDO2FBQ3ZDLEtBQUssQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFO1lBQ2IsTUFBTSxHQUFHLENBQUM7UUFDWixDQUFDLENBQUMsQ0FBQztJQUNQLENBQUMsQ0FBQztJQUVGOzs7O09BSUc7SUFDSCxXQUFXLEdBQUcsQ0FBQyxTQUFpQixFQUFvQyxFQUFFO1FBQ3BFLE9BQU8sSUFBSSxDQUFDLEtBQUs7YUFDZCxJQUFJLENBQXFCLGdCQUFnQixFQUFFO1lBQzFDLGFBQWEsRUFBRSxDQUFDLFNBQVMsQ0FBQztTQUMzQixDQUFDO2FBQ0QsSUFBSSxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUU7WUFDWixPQUFPLEdBQUcsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUU7Z0JBQ3pCLE1BQU0sWUFBWSxHQUFHLFdBQVcsQ0FBQyxVQUFVLENBQ3pDLElBQUksVUFBVSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUM1QyxDQUFDO2dCQUNGLE9BQU87b0JBQ0wsR0FBRyxFQUFFO29CQUNMLEdBQUcsVUFBVSxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsT0FBTyxFQUFFLENBQUM7aUJBQzVDLENBQUM7WUFDSixDQUFDLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQzthQUNELEtBQUssQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFO1lBQ2IsTUFBTSxHQUFHLENBQUM7UUFDWixDQUFDLENBQUMsQ0FBQztJQUNQLENBQUMsQ0FBQztDQUNIIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVHJhbnNhY3Rpb24gfSBmcm9tICdAZW11cmdvL2NhcmRhbm8tc2VyaWFsaXphdGlvbi1saWItbm9kZWpzJztcblxuaW1wb3J0IEpzb25CaWdpbnQgZnJvbSAnQHJvc2VuLWJyaWRnZS9qc29uLWJpZ2ludCc7XG5pbXBvcnQge1xuICBBYnN0cmFjdE5ldHdvcmtDb25uZWN0b3IsXG4gIEJsb2NrLFxufSBmcm9tICdAcm9zZW4tYnJpZGdlL3NjYW5uZXItaW50ZXJmYWNlcyc7XG5pbXBvcnQgYXhpb3MsIHsgQXhpb3MgfSBmcm9tICdAcm9zZW4tY2xpZW50cy9yYXRlLWxpbWl0ZWQtYXhpb3MnO1xuXG5pbXBvcnQgeyBLb2lvc0Jsb2NrLCBLb2lvc0Nib3JUeCwgS29pb3NUcmFuc2FjdGlvbiB9IGZyb20gJy4uL2ludGVyZmFjZXMva29pb3MnO1xuXG5leHBvcnQgY2xhc3MgS29pb3NOZXR3b3JrIGV4dGVuZHMgQWJzdHJhY3ROZXR3b3JrQ29ubmVjdG9yPEtvaW9zVHJhbnNhY3Rpb24+IHtcbiAgcHJpdmF0ZSByZWFkb25seSB1cmw6IHN0cmluZztcbiAgcHJpdmF0ZSByZWFkb25seSB0aW1lb3V0OiBudW1iZXI7XG4gIHByaXZhdGUga29pb3M6IEF4aW9zO1xuXG4gIGNvbnN0cnVjdG9yKHVybDogc3RyaW5nLCB0aW1lb3V0OiBudW1iZXIsIGF1dGhUb2tlbj86IHN0cmluZykge1xuICAgIHN1cGVyKCk7XG4gICAgdGhpcy51cmwgPSB1cmw7XG4gICAgdGhpcy50aW1lb3V0ID0gdGltZW91dDtcbiAgICB0aGlzLmtvaW9zID0gYXhpb3MuY3JlYXRlKHtcbiAgICAgIGJhc2VVUkw6IHRoaXMudXJsLFxuICAgICAgdGltZW91dDogdGhpcy50aW1lb3V0LFxuICAgICAgaGVhZGVyczogeyAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL2pzb24nIH0sXG4gICAgfSk7XG4gICAgaWYgKGF1dGhUb2tlbikge1xuICAgICAgdGhpcy5rb2lvcy5kZWZhdWx0cy5oZWFkZXJzLmNvbW1vblsnQXV0aG9yaXphdGlvbiddID1cbiAgICAgICAgYEJlYXJlciAke2F1dGhUb2tlbn1gO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGJsb2NrIGF0IGhlaWdodFxuICAgKiBAcGFyYW0gaGVpZ2h0XG4gICAqIEByZXR1cm5zIEJsb2NrXG4gICAqL1xuICBnZXRCbG9ja0F0SGVpZ2h0ID0gKGhlaWdodDogbnVtYmVyKTogUHJvbWlzZTxCbG9jaz4gPT4ge1xuICAgIHJldHVybiB0aGlzLmtvaW9zXG4gICAgICAuZ2V0PEFycmF5PEtvaW9zQmxvY2s+PignL2Jsb2NrcycsIHtcbiAgICAgICAgcGFyYW1zOiB7XG4gICAgICAgICAgYmxvY2tfaGVpZ2h0OiBgbHRlLiR7aGVpZ2h0fWAsXG4gICAgICAgICAgbGltaXQ6IDIsXG4gICAgICAgICAgc2VsZWN0OiAnaGFzaCxibG9ja19oZWlnaHQsYmxvY2tfdGltZSx0eF9jb3VudCcsXG4gICAgICAgIH0sXG4gICAgICB9KVxuICAgICAgLnRoZW4oKHJlcykgPT4ge1xuICAgICAgICBjb25zdCBibG9jayA9IHJlcy5kYXRhWzBdO1xuICAgICAgICBjb25zdCBwYXJlbnRCbG9jayA9IHJlcy5kYXRhWzFdO1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIGhhc2g6IGJsb2NrLmhhc2gsXG4gICAgICAgICAgaGVpZ2h0OiBibG9jay5ibG9ja19oZWlnaHQsXG4gICAgICAgICAgcGFyZW50SGFzaDogcGFyZW50QmxvY2suaGFzaCxcbiAgICAgICAgICB0aW1lc3RhbXA6IGJsb2NrLmJsb2NrX3RpbWUsXG4gICAgICAgICAgdHhDb3VudDogYmxvY2sudHhfY291bnQsXG4gICAgICAgIH07XG4gICAgICB9KVxuICAgICAgLmNhdGNoKChleHApID0+IHtcbiAgICAgICAgdGhyb3cgZXhwO1xuICAgICAgfSk7XG4gIH07XG5cbiAgLyoqXG4gICAqIFJldHVybnMgY3VycmVudCBuZXR3b3JrIGhlaWdodFxuICAgKiBAcmV0dXJucyBjdXJyZW50IGhlaWdodFxuICAgKi9cbiAgZ2V0Q3VycmVudEhlaWdodCA9ICgpOiBQcm9taXNlPG51bWJlcj4gPT4ge1xuICAgIHJldHVybiB0aGlzLmtvaW9zXG4gICAgICAuZ2V0PEFycmF5PEtvaW9zQmxvY2s+PignL2Jsb2NrcycsIHtcbiAgICAgICAgcGFyYW1zOiB7IG9mZnNldDogMCwgbGltaXQ6IDEsIHNlbGVjdDogJ2hhc2gsYmxvY2tfaGVpZ2h0JyB9LFxuICAgICAgfSlcbiAgICAgIC50aGVuKChyZXMpID0+IHJlcy5kYXRhWzBdLmJsb2NrX2hlaWdodClcbiAgICAgIC5jYXRjaCgoZXhwKSA9PiB7XG4gICAgICAgIHRocm93IGV4cDtcbiAgICAgIH0pO1xuICB9O1xuXG4gIC8qKlxuICAgKiBSZXR1cm4gdHJhbnNhY3Rpb25zIGluIGEgYmxvY2sgd2l0aCBzcGVjaWZpZWQgaGFzaFxuICAgKiBAcGFyYW0gYmxvY2tIYXNoXG4gICAqIEByZXR1cm5zIGFycmF5IG9mIEtvaW9zVHJhbnNhY3Rpb25cbiAgICovXG4gIGdldEJsb2NrVHhzID0gKGJsb2NrSGFzaDogc3RyaW5nKTogUHJvbWlzZTxBcnJheTxLb2lvc1RyYW5zYWN0aW9uPj4gPT4ge1xuICAgIHJldHVybiB0aGlzLmtvaW9zXG4gICAgICAucG9zdDxBcnJheTxLb2lvc0Nib3JUeD4+KCcvYmxvY2tfdHhfY2JvcicsIHtcbiAgICAgICAgX2Jsb2NrX2hhc2hlczogW2Jsb2NrSGFzaF0sXG4gICAgICB9KVxuICAgICAgLnRoZW4oKHJlcykgPT4ge1xuICAgICAgICByZXR1cm4gcmVzLmRhdGEubWFwKCh0eCkgPT4ge1xuICAgICAgICAgIGNvbnN0IHNlcmlhbGl6ZWRUeCA9IFRyYW5zYWN0aW9uLmZyb21fYnl0ZXMoXG4gICAgICAgICAgICBuZXcgVWludDhBcnJheShCdWZmZXIuZnJvbSh0eC5jYm9yLCAnaGV4JykpLFxuICAgICAgICAgICk7XG4gICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIC4uLnR4LFxuICAgICAgICAgICAgLi4uSnNvbkJpZ2ludC5wYXJzZShzZXJpYWxpemVkVHgudG9fanNvbigpKSxcbiAgICAgICAgICB9O1xuICAgICAgICB9KTtcbiAgICAgIH0pXG4gICAgICAuY2F0Y2goKGV4cCkgPT4ge1xuICAgICAgICB0aHJvdyBleHA7XG4gICAgICB9KTtcbiAgfTtcbn1cbiJdfQ==
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { GeneralScanner, ScannerConfig } from '@rosen-bridge/abstract-scanner';
|
|
2
|
+
import { BlockFrostTransaction } from '../interfaces/blockFrost';
|
|
3
|
+
declare class CardanoBlockFrostScanner extends GeneralScanner<BlockFrostTransaction> {
|
|
4
|
+
constructor(config: ScannerConfig<BlockFrostTransaction>);
|
|
5
|
+
}
|
|
6
|
+
export { CardanoBlockFrostScanner };
|
|
7
|
+
//# sourceMappingURL=blockfrost.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"blockfrost.d.ts","sourceRoot":"","sources":["../../lib/scanner/blockfrost.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAE/E,OAAO,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AAEjE,cAAM,wBAAyB,SAAQ,cAAc,CAAC,qBAAqB,CAAC;gBAC9D,MAAM,EAAE,aAAa,CAAC,qBAAqB,CAAC;CAYzD;AACD,OAAO,EAAE,wBAAwB,EAAE,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { GeneralScanner } from '@rosen-bridge/abstract-scanner';
|
|
2
|
+
class CardanoBlockFrostScanner extends GeneralScanner {
|
|
3
|
+
constructor(config) {
|
|
4
|
+
super('cardano', config.dataSource, config.initialHeight, config.network, config.blockRetrieveGap, config.logger, config.suffix, config.heightGap);
|
|
5
|
+
}
|
|
6
|
+
}
|
|
7
|
+
export { CardanoBlockFrostScanner };
|
|
8
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmxvY2tmcm9zdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL2xpYi9zY2FubmVyL2Jsb2NrZnJvc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGNBQWMsRUFBaUIsTUFBTSxnQ0FBZ0MsQ0FBQztBQUkvRSxNQUFNLHdCQUF5QixTQUFRLGNBQXFDO0lBQzFFLFlBQVksTUFBNEM7UUFDdEQsS0FBSyxDQUNILFNBQVMsRUFDVCxNQUFNLENBQUMsVUFBVSxFQUNqQixNQUFNLENBQUMsYUFBYSxFQUNwQixNQUFNLENBQUMsT0FBTyxFQUNkLE1BQU0sQ0FBQyxnQkFBZ0IsRUFDdkIsTUFBTSxDQUFDLE1BQU0sRUFDYixNQUFNLENBQUMsTUFBTSxFQUNiLE1BQU0sQ0FBQyxTQUFTLENBQ2pCLENBQUM7SUFDSixDQUFDO0NBQ0Y7QUFDRCxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEdlbmVyYWxTY2FubmVyLCBTY2FubmVyQ29uZmlnIH0gZnJvbSAnQHJvc2VuLWJyaWRnZS9hYnN0cmFjdC1zY2FubmVyJztcblxuaW1wb3J0IHsgQmxvY2tGcm9zdFRyYW5zYWN0aW9uIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9ibG9ja0Zyb3N0JztcblxuY2xhc3MgQ2FyZGFub0Jsb2NrRnJvc3RTY2FubmVyIGV4dGVuZHMgR2VuZXJhbFNjYW5uZXI8QmxvY2tGcm9zdFRyYW5zYWN0aW9uPiB7XG4gIGNvbnN0cnVjdG9yKGNvbmZpZzogU2Nhbm5lckNvbmZpZzxCbG9ja0Zyb3N0VHJhbnNhY3Rpb24+KSB7XG4gICAgc3VwZXIoXG4gICAgICAnY2FyZGFubycsXG4gICAgICBjb25maWcuZGF0YVNvdXJjZSxcbiAgICAgIGNvbmZpZy5pbml0aWFsSGVpZ2h0LFxuICAgICAgY29uZmlnLm5ldHdvcmssXG4gICAgICBjb25maWcuYmxvY2tSZXRyaWV2ZUdhcCxcbiAgICAgIGNvbmZpZy5sb2dnZXIsXG4gICAgICBjb25maWcuc3VmZml4LFxuICAgICAgY29uZmlnLmhlaWdodEdhcCxcbiAgICApO1xuICB9XG59XG5leHBvcnQgeyBDYXJkYW5vQmxvY2tGcm9zdFNjYW5uZXIgfTtcbiJdfQ==
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { GeneralScanner, ScannerConfig } from '@rosen-bridge/abstract-scanner';
|
|
2
|
+
import { KoiosTransaction } from '../interfaces/koios';
|
|
3
|
+
declare class CardanoKoiosScanner extends GeneralScanner<KoiosTransaction> {
|
|
4
|
+
constructor(config: ScannerConfig<KoiosTransaction>);
|
|
5
|
+
}
|
|
6
|
+
export { CardanoKoiosScanner };
|
|
7
|
+
//# sourceMappingURL=koios.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"koios.d.ts","sourceRoot":"","sources":["../../lib/scanner/koios.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAE/E,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAEvD,cAAM,mBAAoB,SAAQ,cAAc,CAAC,gBAAgB,CAAC;gBACpD,MAAM,EAAE,aAAa,CAAC,gBAAgB,CAAC;CAYpD;AAED,OAAO,EAAE,mBAAmB,EAAE,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { GeneralScanner } from '@rosen-bridge/abstract-scanner';
|
|
2
|
+
class CardanoKoiosScanner extends GeneralScanner {
|
|
3
|
+
constructor(config) {
|
|
4
|
+
super('cardano', config.dataSource, config.initialHeight, config.network, config.blockRetrieveGap, config.logger, config.suffix, config.heightGap);
|
|
5
|
+
}
|
|
6
|
+
}
|
|
7
|
+
export { CardanoKoiosScanner };
|
|
8
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia29pb3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9saWIvc2Nhbm5lci9rb2lvcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFpQixNQUFNLGdDQUFnQyxDQUFDO0FBSS9FLE1BQU0sbUJBQW9CLFNBQVEsY0FBZ0M7SUFDaEUsWUFBWSxNQUF1QztRQUNqRCxLQUFLLENBQ0gsU0FBUyxFQUNULE1BQU0sQ0FBQyxVQUFVLEVBQ2pCLE1BQU0sQ0FBQyxhQUFhLEVBQ3BCLE1BQU0sQ0FBQyxPQUFPLEVBQ2QsTUFBTSxDQUFDLGdCQUFnQixFQUN2QixNQUFNLENBQUMsTUFBTSxFQUNiLE1BQU0sQ0FBQyxNQUFNLEVBQ2IsTUFBTSxDQUFDLFNBQVMsQ0FDakIsQ0FBQztJQUNKLENBQUM7Q0FDRjtBQUVELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgR2VuZXJhbFNjYW5uZXIsIFNjYW5uZXJDb25maWcgfSBmcm9tICdAcm9zZW4tYnJpZGdlL2Fic3RyYWN0LXNjYW5uZXInO1xuXG5pbXBvcnQgeyBLb2lvc1RyYW5zYWN0aW9uIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9rb2lvcyc7XG5cbmNsYXNzIENhcmRhbm9Lb2lvc1NjYW5uZXIgZXh0ZW5kcyBHZW5lcmFsU2Nhbm5lcjxLb2lvc1RyYW5zYWN0aW9uPiB7XG4gIGNvbnN0cnVjdG9yKGNvbmZpZzogU2Nhbm5lckNvbmZpZzxLb2lvc1RyYW5zYWN0aW9uPikge1xuICAgIHN1cGVyKFxuICAgICAgJ2NhcmRhbm8nLFxuICAgICAgY29uZmlnLmRhdGFTb3VyY2UsXG4gICAgICBjb25maWcuaW5pdGlhbEhlaWdodCxcbiAgICAgIGNvbmZpZy5uZXR3b3JrLFxuICAgICAgY29uZmlnLmJsb2NrUmV0cmlldmVHYXAsXG4gICAgICBjb25maWcubG9nZ2VyLFxuICAgICAgY29uZmlnLnN1ZmZpeCxcbiAgICAgIGNvbmZpZy5oZWlnaHRHYXAsXG4gICAgKTtcbiAgfVxufVxuXG5leHBvcnQgeyBDYXJkYW5vS29pb3NTY2FubmVyIH07XG4iXX0=
|