Skip to content

Commit 202413a

Browse files
author
Inwon Kim
committed
Pass Converting functions to request()
* pass converting function on calling request. * Convert data in BTP extension constructors.
1 parent d795642 commit 202413a

File tree

5 files changed

+38
-14
lines changed

5 files changed

+38
-14
lines changed

lib/IconService.ts

+9-3
Original file line numberDiff line numberDiff line change
@@ -499,7 +499,7 @@ export default class IconService {
499499
const requestId = Util.getCurrentTime();
500500
const request = new Request(requestId, "btp_getNetworkInfo", params);
501501

502-
return this.provider.request<BTPNetworkInfo>(request);
502+
return this.provider.request(request, (data) => new BTPNetworkInfo(data));
503503
}
504504

505505
/** *
@@ -519,7 +519,10 @@ export default class IconService {
519519
const requestId = Util.getCurrentTime();
520520
const request = new Request(requestId, "btp_getNetworkTypeInfo", params);
521521

522-
return this.provider.request<BTPNetworkTypeInfo>(request);
522+
return this.provider.request(
523+
request,
524+
(data) => new BTPNetworkTypeInfo(data)
525+
);
523526
}
524527

525528
/** *
@@ -577,7 +580,10 @@ export default class IconService {
577580
btpGetSourceInformation(): HttpCall<BTPSourceInformation> {
578581
const requestId = Util.getCurrentTime();
579582
const request = new Request(requestId, "btp_getSourceInformation", null);
580-
return this.provider.request<BTPSourceInformation>(request);
583+
return this.provider.request(
584+
request,
585+
(data) => new BTPSourceInformation(data)
586+
);
581587
}
582588

583589
/**

lib/data/Converter.ts

+8
Original file line numberDiff line numberDiff line change
@@ -158,6 +158,14 @@ export function toHex(value: Hash): string {
158158
throw error.toString();
159159
}
160160

161+
export function toBoolean(value: Hash): boolean {
162+
const n = toBigNumber(value).toNumber();
163+
if (n === 1) return true;
164+
if (n === 0) return false;
165+
const error = new DataError("Invalid value");
166+
throw error.toString();
167+
}
168+
161169
/**
162170
* Convert transaction object to raw transaction object.
163171
* @param {object} transaction - the transaction object.

lib/data/Formatter/BTPNetworkInfo.ts

+12-8
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
*/
1616

1717
import BigNumber from "bignumber.js";
18+
import { toBigNumber, toBoolean } from "../Converter";
1819

1920
export default class BTPNetworkInfo {
2021
startHeight: BigNumber;
@@ -27,25 +28,28 @@ export default class BTPNetworkInfo {
2728

2829
networkName: string;
2930

30-
open: BigNumber;
31+
open: boolean;
32+
33+
owner: string;
3134

3235
nextMessageSN: BigNumber;
3336

34-
nextProofContextChanged: BigNumber;
37+
nextProofContextChanged: boolean;
3538

3639
prevNSHash: string;
3740

3841
lastNSHash: string;
3942

4043
constructor(data) {
41-
this.startHeight = data.startHeight;
42-
this.networkTypeID = data.networkTypeID;
44+
this.startHeight = toBigNumber(data.startHeight);
45+
this.networkTypeID = toBigNumber(data.networkTypeID);
4346
this.networkTypeName = data.networkTypeName;
44-
this.networkID = data.networkID;
47+
this.networkID = toBigNumber(data.networkID);
4548
this.networkName = data.networkName;
46-
this.open = data.open;
47-
this.nextMessageSN = data.nextMessageSN;
48-
this.nextProofContextChanged = data.nextProofContextChanged;
49+
this.open = toBoolean(data.open);
50+
this.owner = data.owner;
51+
this.nextMessageSN = toBigNumber(data.nextMessageSN);
52+
this.nextProofContextChanged = toBoolean(data.nextProofContextChanged);
4953
this.prevNSHash = data.prevNSHash;
5054
this.lastNSHash = data.lastNSHash;
5155
}

lib/data/Formatter/BTPNetworkTypeInfo.ts

+5-2
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
*/
1616

1717
import BigNumber from "bignumber.js";
18+
import { toBigNumber } from "../Converter";
1819

1920
export default class BTPNetworkTypeInfo {
2021
networkTypeID: BigNumber;
@@ -26,9 +27,11 @@ export default class BTPNetworkTypeInfo {
2627
nextProofContext: string;
2728

2829
constructor(data) {
29-
this.networkTypeID = data.networkTypeID;
30+
this.networkTypeID = toBigNumber(data.networkTypeID);
3031
this.networkTypeName = data.networkTypeName;
31-
this.openNetworkIDs = data.openNetworkIDs;
32+
this.openNetworkIDs = (data.openNetworkIDs || []).map((openNetworkID) =>
33+
toBigNumber(openNetworkID)
34+
);
3235
this.nextProofContext = data.nextProofContext;
3336
}
3437
}

lib/data/Formatter/BTPSourceInformation.ts

+4-1
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
*/
1616

1717
import BigNumber from "bignumber.js";
18+
import { toBigNumber } from "../Converter";
1819

1920
export default class BTPSourceInformation {
2021
srcNetworkUID: string;
@@ -23,6 +24,8 @@ export default class BTPSourceInformation {
2324

2425
constructor(data) {
2526
this.srcNetworkUID = data.srcNetworkUID;
26-
this.networkTypeIDs = data.networkTypeIDs;
27+
this.networkTypeIDs = (data.networkTypeIDs || []).map((networkTypeID) =>
28+
toBigNumber(networkTypeID)
29+
);
2730
}
2831
}

0 commit comments

Comments
 (0)