@fedimint/core-web 0.1.0 → 0.1.2
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/README.md +20 -9
- package/index.d.ts +1 -0
- package/index.js +15 -0
- package/package.json +12 -35
- package/dist/dts/FedimintWallet.d.ts +0 -51
- package/dist/dts/FedimintWallet.d.ts.map +0 -1
- package/dist/dts/WalletDirector.d.ts +0 -78
- package/dist/dts/WalletDirector.d.ts.map +0 -1
- package/dist/dts/index.d.ts +0 -4
- package/dist/dts/index.d.ts.map +0 -1
- package/dist/dts/services/BalanceService.d.ts +0 -15
- package/dist/dts/services/BalanceService.d.ts.map +0 -1
- package/dist/dts/services/FederationService.d.ts +0 -13
- package/dist/dts/services/FederationService.d.ts.map +0 -1
- package/dist/dts/services/LightningService.d.ts +0 -48
- package/dist/dts/services/LightningService.d.ts.map +0 -1
- package/dist/dts/services/MintService.d.ts +0 -23
- package/dist/dts/services/MintService.d.ts.map +0 -1
- package/dist/dts/services/RecoveryService.d.ts +0 -13
- package/dist/dts/services/RecoveryService.d.ts.map +0 -1
- package/dist/dts/services/WalletService.d.ts +0 -13
- package/dist/dts/services/WalletService.d.ts.map +0 -1
- package/dist/dts/services/index.d.ts +0 -7
- package/dist/dts/services/index.d.ts.map +0 -1
- package/dist/dts/transport/TransportClient.d.ts +0 -55
- package/dist/dts/transport/TransportClient.d.ts.map +0 -1
- package/dist/dts/transport/index.d.ts +0 -3
- package/dist/dts/transport/index.d.ts.map +0 -1
- package/dist/dts/transport/wasmTransport/WasmWorkerTransport.d.ts +0 -12
- package/dist/dts/transport/wasmTransport/WasmWorkerTransport.d.ts.map +0 -1
- package/dist/dts/types/index.d.ts +0 -4
- package/dist/dts/types/index.d.ts.map +0 -1
- package/dist/dts/types/transport.d.ts +0 -35
- package/dist/dts/types/transport.d.ts.map +0 -1
- package/dist/dts/types/utils.d.ts +0 -23
- package/dist/dts/types/utils.d.ts.map +0 -1
- package/dist/dts/types/wallet.d.ts +0 -241
- package/dist/dts/types/wallet.d.ts.map +0 -1
- package/dist/dts/utils/logger.d.ts +0 -24
- package/dist/dts/utils/logger.d.ts.map +0 -1
- package/dist/index.d.ts +0 -609
- package/dist/index.js +0 -2
- package/dist/index.js.map +0 -1
- package/dist/worker.js +0 -2
- package/dist/worker.js.map +0 -1
- package/src/FedimintWallet.test.ts +0 -73
- package/src/FedimintWallet.ts +0 -119
- package/src/WalletDirector.ts +0 -118
- package/src/index.ts +0 -3
- package/src/services/BalanceService.test.ts +0 -26
- package/src/services/BalanceService.ts +0 -29
- package/src/services/FederationService.test.ts +0 -58
- package/src/services/FederationService.ts +0 -216
- package/src/services/LightningService.test.ts +0 -265
- package/src/services/LightningService.ts +0 -289
- package/src/services/MintService.test.ts +0 -74
- package/src/services/MintService.ts +0 -129
- package/src/services/RecoveryService.ts +0 -28
- package/src/services/WalletService.test.ts +0 -59
- package/src/services/WalletService.ts +0 -50
- package/src/services/index.ts +0 -6
- package/src/test/TestFedimintWallet.ts +0 -31
- package/src/test/TestWalletDirector.ts +0 -14
- package/src/test/TestingService.ts +0 -79
- package/src/test/crypto.ts +0 -44
- package/src/test/fixtures.test.ts +0 -18
- package/src/test/fixtures.ts +0 -88
- package/src/transport/TransportClient.test.ts +0 -6
- package/src/transport/TransportClient.ts +0 -251
- package/src/transport/index.ts +0 -2
- package/src/transport/wasmTransport/WasmWorkerTransport.ts +0 -39
- package/src/transport/wasmTransport/worker.js +0 -167
- package/src/transport/wasmTransport/worker.test.ts +0 -90
- package/src/types/index.ts +0 -3
- package/src/types/transport.ts +0 -54
- package/src/types/utils.ts +0 -29
- package/src/types/wallet.ts +0 -298
- package/src/utils/logger.ts +0 -69
|
@@ -1,90 +0,0 @@
|
|
|
1
|
-
import { expect } from 'vitest'
|
|
2
|
-
import { TESTING_INVITE } from '../../test/TestingService'
|
|
3
|
-
import { JSONObject } from '../../types'
|
|
4
|
-
import { workerTest } from '../../test/fixtures'
|
|
5
|
-
|
|
6
|
-
// Waits for a message of a given type from the worker
|
|
7
|
-
const waitForWorkerResponse = (
|
|
8
|
-
worker: Worker,
|
|
9
|
-
messageType: string,
|
|
10
|
-
): Promise<JSONObject> => {
|
|
11
|
-
return new Promise((resolve, reject) => {
|
|
12
|
-
worker.onmessage = (event) => {
|
|
13
|
-
if (event.data.type === messageType) {
|
|
14
|
-
resolve(event.data)
|
|
15
|
-
} else if (event.data.type === 'error') {
|
|
16
|
-
reject(event.data.error)
|
|
17
|
-
}
|
|
18
|
-
}
|
|
19
|
-
worker.onerror = (error) => {
|
|
20
|
-
reject(error.message)
|
|
21
|
-
}
|
|
22
|
-
})
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
workerTest(
|
|
26
|
-
'should initialize WasmClient on init message',
|
|
27
|
-
async ({ worker }) => {
|
|
28
|
-
worker.postMessage({ type: 'init', requestId: 1 })
|
|
29
|
-
const response = await waitForWorkerResponse(worker, 'initialized')
|
|
30
|
-
expect(response.data).toEqual({})
|
|
31
|
-
},
|
|
32
|
-
)
|
|
33
|
-
|
|
34
|
-
workerTest(
|
|
35
|
-
'should return false on open for a new client',
|
|
36
|
-
async ({ worker, clientName }) => {
|
|
37
|
-
worker.postMessage({ type: 'init', requestId: 1 })
|
|
38
|
-
await waitForWorkerResponse(worker, 'initialized')
|
|
39
|
-
|
|
40
|
-
worker.postMessage({
|
|
41
|
-
type: 'open',
|
|
42
|
-
requestId: 2,
|
|
43
|
-
payload: { clientName },
|
|
44
|
-
})
|
|
45
|
-
const response = await waitForWorkerResponse(worker, 'open')
|
|
46
|
-
expect(response.data).toEqual({ success: false })
|
|
47
|
-
},
|
|
48
|
-
)
|
|
49
|
-
|
|
50
|
-
workerTest(
|
|
51
|
-
'should error on fake federation invitation',
|
|
52
|
-
async ({ worker, clientName }) => {
|
|
53
|
-
worker.postMessage({ type: 'init', requestId: 1 })
|
|
54
|
-
await waitForWorkerResponse(worker, 'initialized')
|
|
55
|
-
|
|
56
|
-
worker.postMessage({
|
|
57
|
-
type: 'join',
|
|
58
|
-
requestId: 2,
|
|
59
|
-
payload: { inviteCode: 'fakefederationinvitation', clientName },
|
|
60
|
-
})
|
|
61
|
-
try {
|
|
62
|
-
await waitForWorkerResponse(worker, 'open')
|
|
63
|
-
expect.unreachable()
|
|
64
|
-
} catch (e) {
|
|
65
|
-
expect(e).toBe('parsing failed')
|
|
66
|
-
}
|
|
67
|
-
},
|
|
68
|
-
)
|
|
69
|
-
|
|
70
|
-
workerTest(
|
|
71
|
-
'should handle joining a federation',
|
|
72
|
-
async ({ worker, clientName }) => {
|
|
73
|
-
worker.postMessage({ type: 'init', requestId: 1 })
|
|
74
|
-
await waitForWorkerResponse(worker, 'initialized')
|
|
75
|
-
|
|
76
|
-
worker.postMessage({
|
|
77
|
-
type: 'join',
|
|
78
|
-
requestId: 2,
|
|
79
|
-
payload: { inviteCode: TESTING_INVITE, clientName },
|
|
80
|
-
})
|
|
81
|
-
const response = await waitForWorkerResponse(worker, 'join')
|
|
82
|
-
expect(response.data).toEqual({ success: true })
|
|
83
|
-
},
|
|
84
|
-
)
|
|
85
|
-
|
|
86
|
-
workerTest('should handle unknown message type', async ({ worker }) => {
|
|
87
|
-
worker.postMessage({ type: 'unknown', requestId: 2 })
|
|
88
|
-
const response = await waitForWorkerResponse(worker, 'error')
|
|
89
|
-
expect(response.error).toBe('Unknown message type')
|
|
90
|
-
})
|
package/src/types/index.ts
DELETED
package/src/types/transport.ts
DELETED
|
@@ -1,54 +0,0 @@
|
|
|
1
|
-
import type { JSONValue } from './utils'
|
|
2
|
-
|
|
3
|
-
const TransportMessageTypes = [
|
|
4
|
-
'init',
|
|
5
|
-
'initialized',
|
|
6
|
-
'rpc',
|
|
7
|
-
'log',
|
|
8
|
-
'open',
|
|
9
|
-
'join',
|
|
10
|
-
'error',
|
|
11
|
-
'unsubscribe',
|
|
12
|
-
'cleanup',
|
|
13
|
-
'parseInviteCode',
|
|
14
|
-
'parseBolt11Invoice',
|
|
15
|
-
'previewFederation',
|
|
16
|
-
] as const
|
|
17
|
-
|
|
18
|
-
export type TransportMessageType = (typeof TransportMessageTypes)[number]
|
|
19
|
-
|
|
20
|
-
export type TransportRequest = {
|
|
21
|
-
type: TransportMessageType
|
|
22
|
-
requestId?: number
|
|
23
|
-
payload?: JSONValue
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
export type TransportMessage = {
|
|
27
|
-
type: TransportMessageType | string
|
|
28
|
-
requestId?: number
|
|
29
|
-
} & Record<string, unknown>
|
|
30
|
-
|
|
31
|
-
export type TransportMessageHandler = (message: TransportMessage) => void
|
|
32
|
-
|
|
33
|
-
export type TransportErrorHandler = (error: unknown) => void
|
|
34
|
-
|
|
35
|
-
/**
|
|
36
|
-
* Generic Transport interface for communicating with a specific
|
|
37
|
-
* target of the FedimintClient. Can be Wasm, React Native, Node, etc.
|
|
38
|
-
*/
|
|
39
|
-
export interface Transport {
|
|
40
|
-
postMessage(message: TransportRequest): void
|
|
41
|
-
setMessageHandler(handler: TransportMessageHandler): void
|
|
42
|
-
setErrorHandler(handler: TransportErrorHandler): void
|
|
43
|
-
logger: TransportLogger
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
/**
|
|
47
|
-
* Generic logger interface based on browser console.log
|
|
48
|
-
*/
|
|
49
|
-
export type TransportLogger = {
|
|
50
|
-
debug(message: string, ...args: any[]): void
|
|
51
|
-
info(message: string, ...args: any[]): void
|
|
52
|
-
warn(message: string, ...args: any[]): void
|
|
53
|
-
error(message: string, ...args: any[]): void
|
|
54
|
-
}
|
package/src/types/utils.ts
DELETED
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
type Alias<T> = T & {}
|
|
2
|
-
type Resolve<T> = T & unknown
|
|
3
|
-
|
|
4
|
-
type Seconds = Alias<number>
|
|
5
|
-
type Nanos = Alias<number>
|
|
6
|
-
|
|
7
|
-
type Duration = {
|
|
8
|
-
nanos: Nanos
|
|
9
|
-
secs: Seconds
|
|
10
|
-
}
|
|
11
|
-
|
|
12
|
-
type MSats = Alias<number>
|
|
13
|
-
type Sats = Alias<number>
|
|
14
|
-
|
|
15
|
-
type JSONValue =
|
|
16
|
-
| string
|
|
17
|
-
| number
|
|
18
|
-
| boolean
|
|
19
|
-
| null
|
|
20
|
-
| { [key: string]: JSONValue }
|
|
21
|
-
| JSONValue[]
|
|
22
|
-
|
|
23
|
-
type JSONObject = Record<string, JSONValue>
|
|
24
|
-
|
|
25
|
-
type Result<T, U = string> =
|
|
26
|
-
| { success: true; data?: T }
|
|
27
|
-
| { success: false; error: U }
|
|
28
|
-
|
|
29
|
-
export { Alias, Resolve, Duration, MSats, Sats, JSONValue, JSONObject, Result }
|
package/src/types/wallet.ts
DELETED
|
@@ -1,298 +0,0 @@
|
|
|
1
|
-
import { MSats, Duration, JSONValue, JSONObject } from './utils'
|
|
2
|
-
|
|
3
|
-
const MODULE_KINDS = ['', 'ln', 'mint', 'wallet'] as const
|
|
4
|
-
type ModuleKind = (typeof MODULE_KINDS)[number]
|
|
5
|
-
|
|
6
|
-
// TODO: Define the structure of FederationConfig
|
|
7
|
-
type FederationConfig = JSONObject
|
|
8
|
-
|
|
9
|
-
type GatewayInfo = {
|
|
10
|
-
gateway_id: string
|
|
11
|
-
api: string
|
|
12
|
-
node_pub_key: string
|
|
13
|
-
federation_index: number
|
|
14
|
-
route_hints: RouteHint[]
|
|
15
|
-
fees: FeeToAmount
|
|
16
|
-
}
|
|
17
|
-
type LightningGateway = {
|
|
18
|
-
info: GatewayInfo
|
|
19
|
-
vetted: boolean
|
|
20
|
-
ttl: Duration
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
type RouteHint = {
|
|
24
|
-
// TODO: Define the structure of RouteHint
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
type FeeToAmount = {
|
|
28
|
-
// TODO: Define the structure of FeeToAmount
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
type OutgoingLightningPayment = {
|
|
32
|
-
payment_type: PayType
|
|
33
|
-
contract_id: string
|
|
34
|
-
fee: MSats
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
type PayType = { lightning: string } | { internal: string }
|
|
38
|
-
|
|
39
|
-
type LnPayState =
|
|
40
|
-
| 'created'
|
|
41
|
-
| 'canceled'
|
|
42
|
-
| { funded: { block_height: number } }
|
|
43
|
-
| { waiting_for_refund: { error_reason: string } }
|
|
44
|
-
| 'awaiting_change'
|
|
45
|
-
| { success: { preimage: string } }
|
|
46
|
-
| { refunded: { gateway_error: string } }
|
|
47
|
-
| { unexpected_error: { error_message: string } }
|
|
48
|
-
|
|
49
|
-
type LnReceiveState =
|
|
50
|
-
| 'created'
|
|
51
|
-
| { waiting_for_payment: { invoice: string; timeout: number } }
|
|
52
|
-
| { canceled: { reason: string } }
|
|
53
|
-
| 'funded'
|
|
54
|
-
| 'awaiting_funds'
|
|
55
|
-
| 'claimed'
|
|
56
|
-
|
|
57
|
-
type LnInternalPayState =
|
|
58
|
-
| 'funding'
|
|
59
|
-
| { preimage: string }
|
|
60
|
-
| { refund_success: { out_points: BtcOutPoint[]; error: string } }
|
|
61
|
-
| { refund_error: { error_message: string; error: string } }
|
|
62
|
-
| { funding_failed: { error: string } }
|
|
63
|
-
| { unexpected_error: string }
|
|
64
|
-
|
|
65
|
-
type CreateBolt11Response = {
|
|
66
|
-
operation_id: string
|
|
67
|
-
invoice: string
|
|
68
|
-
}
|
|
69
|
-
|
|
70
|
-
type StreamError = {
|
|
71
|
-
error: string
|
|
72
|
-
data: never
|
|
73
|
-
end: never
|
|
74
|
-
}
|
|
75
|
-
|
|
76
|
-
type StreamSuccess<T extends JSONValue> = {
|
|
77
|
-
data: T
|
|
78
|
-
error: never
|
|
79
|
-
end: never
|
|
80
|
-
}
|
|
81
|
-
|
|
82
|
-
type StreamEnd = {
|
|
83
|
-
end: string
|
|
84
|
-
data: never
|
|
85
|
-
error: never
|
|
86
|
-
}
|
|
87
|
-
|
|
88
|
-
type StreamResult<T extends JSONValue> =
|
|
89
|
-
| StreamSuccess<T>
|
|
90
|
-
| StreamError
|
|
91
|
-
| StreamEnd
|
|
92
|
-
|
|
93
|
-
type CancelFunction = () => void
|
|
94
|
-
|
|
95
|
-
type ReissueExternalNotesState = 'Created' | 'Issuing' | 'Done'
|
|
96
|
-
// | { Failed: { error: string } }
|
|
97
|
-
|
|
98
|
-
type MintSpendNotesResponse = Array<string>
|
|
99
|
-
|
|
100
|
-
type SpendNotesState =
|
|
101
|
-
| 'Created'
|
|
102
|
-
| 'UserCanceledProcessing'
|
|
103
|
-
| 'UserCanceledSuccess'
|
|
104
|
-
| 'UserCanceledFailure'
|
|
105
|
-
| 'Success'
|
|
106
|
-
| 'Refunded'
|
|
107
|
-
|
|
108
|
-
type TxOutputSummary = {
|
|
109
|
-
outpoint: {
|
|
110
|
-
txid: string
|
|
111
|
-
vout: number
|
|
112
|
-
}
|
|
113
|
-
amount: number
|
|
114
|
-
}
|
|
115
|
-
|
|
116
|
-
type BtcOutPoint = {
|
|
117
|
-
txid: string
|
|
118
|
-
vout: number
|
|
119
|
-
}
|
|
120
|
-
|
|
121
|
-
type WalletDepositState =
|
|
122
|
-
| 'WaitingForTransaction'
|
|
123
|
-
| {
|
|
124
|
-
WaitingForConfirmation: {
|
|
125
|
-
btc_deposited: number
|
|
126
|
-
btc_out_point: BtcOutPoint
|
|
127
|
-
}
|
|
128
|
-
}
|
|
129
|
-
| { Confirmed: { btc_deposited: number; btc_out_point: BtcOutPoint } }
|
|
130
|
-
| { Claimed: { btc_deposited: number; btc_out_point: BtcOutPoint } }
|
|
131
|
-
| { Failed: string }
|
|
132
|
-
|
|
133
|
-
type WalletSummary = {
|
|
134
|
-
spendable_utxos: TxOutputSummary[]
|
|
135
|
-
unsigned_peg_out_txos: TxOutputSummary[]
|
|
136
|
-
unsigned_change_utxos: TxOutputSummary[]
|
|
137
|
-
// TODO: fix typo in rust
|
|
138
|
-
unconfirmed_peg_out_txos: TxOutputSummary[]
|
|
139
|
-
unconfirmed_change_utxos: TxOutputSummary[]
|
|
140
|
-
}
|
|
141
|
-
|
|
142
|
-
type LnVariant = {
|
|
143
|
-
pay?: {
|
|
144
|
-
gateway_id: string
|
|
145
|
-
invoice: string
|
|
146
|
-
fee: number
|
|
147
|
-
is_internal_payment: boolean
|
|
148
|
-
out_point: {
|
|
149
|
-
out_idx: number
|
|
150
|
-
txid: string
|
|
151
|
-
}
|
|
152
|
-
}
|
|
153
|
-
receive?: {
|
|
154
|
-
gateway_id: string
|
|
155
|
-
invoice: string
|
|
156
|
-
out_point: {
|
|
157
|
-
out_idx: number
|
|
158
|
-
txid: string
|
|
159
|
-
}
|
|
160
|
-
}
|
|
161
|
-
}
|
|
162
|
-
|
|
163
|
-
type MintVariant = {
|
|
164
|
-
spend_o_o_b?: {
|
|
165
|
-
requested_amount: number
|
|
166
|
-
oob_notes: string
|
|
167
|
-
}
|
|
168
|
-
reissuance?: {
|
|
169
|
-
txid: string
|
|
170
|
-
}
|
|
171
|
-
}
|
|
172
|
-
|
|
173
|
-
type WalletVariant = {
|
|
174
|
-
deposit?: {
|
|
175
|
-
address: string
|
|
176
|
-
tweak_idx: number
|
|
177
|
-
}
|
|
178
|
-
withdraw?: {
|
|
179
|
-
address: string
|
|
180
|
-
amountMsats: number
|
|
181
|
-
fee: {
|
|
182
|
-
fee_rate: {
|
|
183
|
-
sats_per_kvb: number
|
|
184
|
-
}
|
|
185
|
-
total_weight: number
|
|
186
|
-
}
|
|
187
|
-
}
|
|
188
|
-
}
|
|
189
|
-
|
|
190
|
-
type OperationKey = {
|
|
191
|
-
creation_time: { nanos_since_epoch: number; secs_since_epoch: number }
|
|
192
|
-
operation_id: string
|
|
193
|
-
}
|
|
194
|
-
type OperationMeta = {
|
|
195
|
-
amount: number
|
|
196
|
-
extra_meta: JSONObject
|
|
197
|
-
variant: LnVariant | MintVariant | WalletVariant
|
|
198
|
-
}
|
|
199
|
-
|
|
200
|
-
type OperationLog = {
|
|
201
|
-
meta: OperationMeta
|
|
202
|
-
operation_module_kind: string
|
|
203
|
-
outcome: {
|
|
204
|
-
outcome: LnPayState | LnReceiveState | SpendNotesState | WalletDepositState
|
|
205
|
-
}
|
|
206
|
-
}
|
|
207
|
-
|
|
208
|
-
type BaseTransactions = {
|
|
209
|
-
timestamp: number
|
|
210
|
-
operationId: string
|
|
211
|
-
kind: 'ln' | 'mint' | 'wallet'
|
|
212
|
-
}
|
|
213
|
-
|
|
214
|
-
type LightningTransaction = BaseTransactions & {
|
|
215
|
-
type: 'send' | 'receive'
|
|
216
|
-
invoice: string
|
|
217
|
-
outcome:
|
|
218
|
-
| 'created'
|
|
219
|
-
| 'canceled'
|
|
220
|
-
| 'claimed'
|
|
221
|
-
| 'pending'
|
|
222
|
-
| 'success'
|
|
223
|
-
| 'funded'
|
|
224
|
-
| 'awaiting_funds'
|
|
225
|
-
| 'unexpected_error'
|
|
226
|
-
gateway: string
|
|
227
|
-
fee?: number
|
|
228
|
-
internalPay?: boolean
|
|
229
|
-
preimage?: string
|
|
230
|
-
txId: string
|
|
231
|
-
}
|
|
232
|
-
|
|
233
|
-
type EcashTransaction = BaseTransactions & {
|
|
234
|
-
type: 'spend_oob' | 'reissue'
|
|
235
|
-
amountMsats: number
|
|
236
|
-
outcome?: SpendNotesState | ReissueExternalNotesState
|
|
237
|
-
notes?: string
|
|
238
|
-
txId?: string
|
|
239
|
-
}
|
|
240
|
-
|
|
241
|
-
type WalletTransaction = BaseTransactions & {
|
|
242
|
-
type: 'withdraw' | 'deposit'
|
|
243
|
-
onchainAddress: string
|
|
244
|
-
amountMsats: number
|
|
245
|
-
fee: number
|
|
246
|
-
outcome?:
|
|
247
|
-
| 'WaitingForTransaction'
|
|
248
|
-
| 'WaitingForConfirmation'
|
|
249
|
-
| 'Confirmed'
|
|
250
|
-
| 'Claimed'
|
|
251
|
-
| 'Failed'
|
|
252
|
-
}
|
|
253
|
-
|
|
254
|
-
type Transactions = LightningTransaction | EcashTransaction | WalletTransaction
|
|
255
|
-
|
|
256
|
-
/** Keys are powers of 2 */
|
|
257
|
-
type NoteCountByDenomination = Record<number, number>
|
|
258
|
-
|
|
259
|
-
type GenerateAddressResponse = {
|
|
260
|
-
deposit_address: string
|
|
261
|
-
operation_id: string
|
|
262
|
-
}
|
|
263
|
-
|
|
264
|
-
export {
|
|
265
|
-
LightningGateway,
|
|
266
|
-
FederationConfig,
|
|
267
|
-
RouteHint,
|
|
268
|
-
FeeToAmount,
|
|
269
|
-
OutgoingLightningPayment,
|
|
270
|
-
PayType,
|
|
271
|
-
LnPayState,
|
|
272
|
-
LnReceiveState,
|
|
273
|
-
CreateBolt11Response,
|
|
274
|
-
GatewayInfo,
|
|
275
|
-
StreamError,
|
|
276
|
-
StreamSuccess,
|
|
277
|
-
StreamResult,
|
|
278
|
-
ModuleKind,
|
|
279
|
-
CancelFunction,
|
|
280
|
-
LnInternalPayState,
|
|
281
|
-
ReissueExternalNotesState,
|
|
282
|
-
MintSpendNotesResponse,
|
|
283
|
-
SpendNotesState,
|
|
284
|
-
WalletSummary,
|
|
285
|
-
TxOutputSummary,
|
|
286
|
-
NoteCountByDenomination,
|
|
287
|
-
GenerateAddressResponse,
|
|
288
|
-
OperationKey,
|
|
289
|
-
OperationLog,
|
|
290
|
-
LnVariant,
|
|
291
|
-
MintVariant,
|
|
292
|
-
WalletVariant,
|
|
293
|
-
LightningTransaction,
|
|
294
|
-
EcashTransaction,
|
|
295
|
-
WalletTransaction,
|
|
296
|
-
Transactions,
|
|
297
|
-
WalletDepositState,
|
|
298
|
-
}
|
package/src/utils/logger.ts
DELETED
|
@@ -1,69 +0,0 @@
|
|
|
1
|
-
import { TransportLogger } from '../types/transport'
|
|
2
|
-
|
|
3
|
-
const logLevels = ['debug', 'info', 'warn', 'error', 'none'] as const
|
|
4
|
-
export type LogLevel = (typeof logLevels)[number]
|
|
5
|
-
|
|
6
|
-
export class Logger {
|
|
7
|
-
private level: LogLevel
|
|
8
|
-
private logger: TransportLogger
|
|
9
|
-
|
|
10
|
-
/**
|
|
11
|
-
* Generic Logger for a given environment.
|
|
12
|
-
*
|
|
13
|
-
* @param _logger - The transport's logger to use. (console for web, react native, etc.)
|
|
14
|
-
* @param level - The log level to use. (debug, info, warn, error, none)
|
|
15
|
-
*/
|
|
16
|
-
constructor(_logger: TransportLogger = console, level: LogLevel = 'none') {
|
|
17
|
-
this.logger = _logger
|
|
18
|
-
this.level = level
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
setLevel(level: LogLevel) {
|
|
22
|
-
this.level = level
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
private coerceLevel(level: string): LogLevel {
|
|
26
|
-
if (logLevels.includes(level.toLocaleUpperCase() as LogLevel)) {
|
|
27
|
-
return level.toLocaleUpperCase() as LogLevel
|
|
28
|
-
}
|
|
29
|
-
return 'info'
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
log(level: string, message: string, ...args: any[]) {
|
|
33
|
-
const logLevel = this.coerceLevel(level)
|
|
34
|
-
if (!this.shouldLog(logLevel)) {
|
|
35
|
-
return
|
|
36
|
-
}
|
|
37
|
-
const consoleFn = this.logger[logLevel]
|
|
38
|
-
consoleFn(`[${logLevel.toUpperCase()}] ${message}`, ...args)
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
debug(message: string, ...args: any[]) {
|
|
42
|
-
this.log('debug', message, ...args)
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
info(message: string, ...args: any[]) {
|
|
46
|
-
this.log('info', message, ...args)
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
warn(message: string, ...args: any[]) {
|
|
50
|
-
this.log('warn', message, ...args)
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
error(message: string, ...args: any[]) {
|
|
54
|
-
this.log('error', message, ...args)
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
private shouldLog(
|
|
58
|
-
messageLevel: LogLevel,
|
|
59
|
-
): messageLevel is Exclude<LogLevel, 'none'> {
|
|
60
|
-
const levels: LogLevel[] = ['debug', 'info', 'warn', 'error', 'none']
|
|
61
|
-
const messageLevelIndex = levels.indexOf(messageLevel)
|
|
62
|
-
const currentLevelIndex = levels.indexOf(this.level)
|
|
63
|
-
return (
|
|
64
|
-
currentLevelIndex <= messageLevelIndex &&
|
|
65
|
-
this.level !== 'none' &&
|
|
66
|
-
messageLevel !== 'none'
|
|
67
|
-
)
|
|
68
|
-
}
|
|
69
|
-
}
|