|
@@ -12,12 +12,12 @@ const PAYLOAD_SIZE = 925
|
12
|
12
|
const debug = false
|
13
|
13
|
|
14
|
14
|
const cloneApi = async (api: RippleAPI): Promise<RippleAPI> => {
|
15
|
|
- try{
|
|
15
|
+ try {
|
16
|
16
|
const subApi = new RippleAPI({ server: api.connection['_url'] })
|
17
|
17
|
await subApi.connect()
|
18
|
18
|
return subApi
|
19
|
|
- }catch(e){
|
20
|
|
- if(debug){
|
|
19
|
+ } catch (e) {
|
|
20
|
+ if (debug) {
|
21
|
21
|
console.log("CLONEAPI ERR", e)
|
22
|
22
|
}
|
23
|
23
|
return await cloneApi(api)
|
|
@@ -25,9 +25,9 @@ const cloneApi = async (api: RippleAPI): Promise<RippleAPI> => {
|
25
|
25
|
}
|
26
|
26
|
|
27
|
27
|
export const getLatestSequence = async (api: RippleAPI, accountAddress: string): Promise<number> => {
|
28
|
|
- if(debug) console.log("Getting acc info for", accountAddress)
|
|
28
|
+ if (debug) console.log("Getting acc info for", accountAddress)
|
29
|
29
|
const accountInfo = await api.getAccountInfo(accountAddress, {})
|
30
|
|
- return Number(accountInfo.sequence-1)
|
|
30
|
+ return Number(accountInfo.sequence - 1)
|
31
|
31
|
}
|
32
|
32
|
|
33
|
33
|
const compressB64 = async (data: string) => (await util.promisify(zlib.deflate)(Buffer.from(data, 'utf-8'))).toString('base64')
|
|
@@ -41,7 +41,7 @@ const sendReliably = (api: RippleAPI, signed: any, preparedPayment,): Promise<an
|
41
|
41
|
minLedgerVersion: 25235454
|
42
|
42
|
})
|
43
|
43
|
} catch (e) {
|
44
|
|
-
|
|
44
|
+
|
45
|
45
|
// Typical error when the tx hasn't been validated yet:
|
46
|
46
|
if ((e as Error).name !== 'MissingLedgerHistoryError') {
|
47
|
47
|
//console.log(e)
|
|
@@ -69,7 +69,7 @@ const sendReliably = (api: RippleAPI, signed: any, preparedPayment,): Promise<an
|
69
|
69
|
})
|
70
|
70
|
|
71
|
71
|
export const sendPayment = async (api: RippleAPI, data: Memo[], from: string, to: string, secret: string, sequence: number) => {
|
72
|
|
- if(debug) console.log("Sending payment with seq", sequence)
|
|
72
|
+ if (debug) console.log("Sending payment with seq", sequence)
|
73
|
73
|
const options: Instructions = {
|
74
|
74
|
maxLedgerVersionOffset: 5,
|
75
|
75
|
fee: MIN_XRP_FEE,
|
|
@@ -103,10 +103,10 @@ export const sendPayment = async (api: RippleAPI, data: Memo[], from: string, to
|
103
|
103
|
|
104
|
104
|
return txHash
|
105
|
105
|
} catch (error) {
|
106
|
|
- if(debug)
|
|
106
|
+ if (debug)
|
107
|
107
|
console.log("SENDPAYMENT ERROR", error)
|
108
|
108
|
throw error
|
109
|
|
- }finally{
|
|
109
|
+ } finally {
|
110
|
110
|
_api.disconnect()
|
111
|
111
|
}
|
112
|
112
|
}
|
|
@@ -132,7 +132,7 @@ export const writeRaw = async (api: RippleAPI, data: Memo, from:
|
132
|
132
|
const resp = await sendPayment(api, [data], from, to, secret, sequence)
|
133
|
133
|
return resp['tx_json'].hash
|
134
|
134
|
} catch (error) {
|
135
|
|
- if(debug){
|
|
135
|
+ if (debug) {
|
136
|
136
|
console.log("WRITERAW ERR", error);
|
137
|
137
|
}
|
138
|
138
|
throw error
|
|
@@ -141,23 +141,19 @@ export const writeRaw = async (api: RippleAPI, data: Memo, from:
|
141
|
141
|
|
142
|
142
|
|
143
|
143
|
export const readRaw = async (api: RippleAPI, hash: string): Promise<Memo> => {
|
144
|
|
- while(!api.isConnected()){
|
145
|
|
- try{
|
146
|
|
- await api.connect()
|
147
|
|
- }catch(e){
|
148
|
|
- //retry
|
149
|
|
- }
|
150
|
|
- }
|
|
144
|
+ api = await cloneApi(api)
|
151
|
145
|
let tx
|
152
|
|
- try{
|
|
146
|
+ try {
|
153
|
147
|
tx = await api.getTransaction(hash, {
|
154
|
148
|
minLedgerVersion: 25235454
|
155
|
149
|
})
|
156
|
|
- }catch(e){
|
157
|
|
-// if(debug){
|
158
|
|
- console.log("READRAW ERR", e)
|
159
|
|
-// }
|
|
150
|
+ } catch (e) {
|
|
151
|
+ // if(debug){
|
|
152
|
+ console.log("READRAW ERR", e)
|
|
153
|
+ // }
|
160
|
154
|
throw e
|
|
155
|
+ } finally {
|
|
156
|
+ await api.disconnect()
|
161
|
157
|
}
|
162
|
158
|
|
163
|
159
|
if (!tx || !tx.specification || !tx.specification['memos'] || !tx.specification['memos'][0]) {
|
|
@@ -175,7 +171,7 @@ export const subscribe = async (api: RippleAPI, address: string, callback: (tx)
|
175
|
171
|
})
|
176
|
172
|
}
|
177
|
173
|
|
178
|
|
-export const treeWrite = async (api: RippleAPI, data: string, wallet: Wallet, to: string, format: 'L'|'N' = 'L'): Promise<string> => {
|
|
174
|
+export const treeWrite = async (api: RippleAPI, data: string, wallet: Wallet, to: string, format: 'L' | 'N' = 'L'): Promise<string> => {
|
179
|
175
|
data = await compressB64(data)
|
180
|
176
|
const chunks = chunkString(data, PAYLOAD_SIZE)
|
181
|
177
|
const latestSequence = await getLatestSequence(api, wallet.address)
|