Skip to content

Commit cda9c6e

Browse files
authored
Merge pull request #215 from KeystoneHQ/feat/add-data-type-for-tron
feat(tron): add data type for sign message
2 parents 1735807 + d552475 commit cda9c6e

File tree

3 files changed

+24
-5
lines changed

3 files changed

+24
-5
lines changed

packages/ur-registry-tron/__test__/TronSignRequest.test.ts

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import {
44
TronSignRequest,
55
CryptoKeypath,
66
PathComponent,
7+
DataType
78
} from "../src";
89
import * as uuid from "uuid";
910

@@ -30,6 +31,7 @@ describe("tron-sign-request", () => {
3031
const tronSignRequest = new TronSignRequest({
3132
requestId: Buffer.from(idBuffer),
3233
signData: tronData,
34+
dataType: DataType.transaction,
3335
derivationPath: signKeyPath,
3436
address: "",
3537
origin: "tron wallet",
@@ -39,7 +41,7 @@ describe("tron-sign-request", () => {
3941
const ur = tronSignRequest.toUREncoder(1000).nextPart();
4042

4143
expect(ur).toBe(
42-
"ur:tron-sign-request/oxadtpdagdndcawmgtfrkigrpmndutdnbtkgfssbjnaohdtybkaoatmhcpayvyrhuegomtihswjsfzlassmsldrkdwhtpladayctbgptadbkehjykkjoihdmiojljliojzihhsjoinjkdmiajljndljojpjljyjliajljzdmghjpinioioihjpgujnhsjpjyfxjljtjyjphsiajybgjybkbzfpstneaahygtfdpmlgplaevaoljsgtplckaebkursnbgbzfpbtdtdwmkonwpnbjzcxlpzmytmunliecntkiysofrcpfyptahnsrkaeaeaeaeaeaeaeaeaeaeaeaendrfvwcxtalrsrrhhtttbnqzvldrmomwvaeolgotaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaebsfwfzjortrpvtltrkdwmhadlamwwmuoaxaxtaaddyoeadlocsdwykcssrykaeykaeykaocybgbgbgbgahjejyjpjljtcxkthsjzjzihjymwlrhkst"
44+
"ur:tron-sign-request/onadtpdagdndcawmgtfrkigrpmndutdnbtkgfssbjnaohdtybkaoatmhcpayvyrhuegomtihswjsfzlassmsldrkdwhtpladayctbgptadbkehjykkjoihdmiojljliojzihhsjoinjkdmiajljndljojpjljyjliajljzdmghjpinioioihjpgujnhsjpjyfxjljtjyjphsiajybgjybkbzfpstneaahygtfdpmlgplaevaoljsgtplckaebkursnbgbzfpbtdtdwmkonwpnbjzcxlpzmytmunliecntkiysofrcpfyptahnsrkaeaeaeaeaeaeaeaeaeaeaeaendrfvwcxtalrsrrhhtttbnqzvldrmomwvaeolgotaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaebsfwfzjortrpvtltrkdwmhadlamwwmuoaxaxadaataaddyoeadlocsdwykcssrykaeykaeykaocybgbgbgbgamjejyjpjljtcxkthsjzjzihjyjtrnneiy"
4345
);
4446
const tronSignRequestDecoded = TronSignRequest.fromCBOR(
4547
Buffer.from(cborHex, "hex")
@@ -48,6 +50,7 @@ describe("tron-sign-request", () => {
4850
tronRequestId
4951
);
5052
expect(tronSignRequest.getOrigin()).toBe("tron wallet");
53+
expect(tronSignRequestDecoded.getDataType()).toBe(1);
5154
expect(tronSignRequestDecoded.getSignData().toString("hex")).toEqual(
5255
"0a0207902208e1b9de559665c6714080c49789bb2c5aae01081f12a9010a31747970652e676f6f676c65617069732e636f6d2f70726f746f636f6c2e54726967676572536d617274436f6e747261637412740a1541c79f045e4d48ad8dae00e6a6714dae1e000adfcd1215410d292c98a5eca06c2085fff993996423cf66c93b2244a9059cbb0000000000000000000000009bbce520d984c3b95ad10cb4e32a9294e6338da300000000000000000000000000000000000000000000000000000000000f424070c0b6e087bb2c90018094ebdc03"
5356
);
@@ -68,6 +71,7 @@ describe("tron-sign-request", () => {
6871

6972
const request = TronSignRequest.constructTronRequest(
7073
tronData,
74+
DataType.transaction,
7175
derivationHdPath,
7276
xfp,
7377
requestID,
@@ -76,7 +80,7 @@ describe("tron-sign-request", () => {
7680
);
7781
const ur = request.toUREncoder(1000).nextPart();
7882
expect(ur).toBe(
79-
"ur:tron-sign-request/oxadtpdagdndcawmgtfrkigrpmndutdnbtkgfssbjnaohdtybkaoatmhcpayvyrhuegomtihswjsfzlassmsldrkdwhtpladayctbgptadbkehjykkjoihdmiojljliojzihhsjoinjkdmiajljndljojpjljyjliajljzdmghjpinioioihjpgujnhsjpjyfxjljtjyjphsiajybgjybkbzfpstneaahygtfdpmlgplaevaoljsgtplckaebkursnbgbzfpbtdtdwmkonwpnbjzcxlpzmytmunliecntkiysofrcpfyptahnsrkaeaeaeaeaeaeaeaeaeaeaeaendrfvwcxtalrsrrhhtttbnqzvldrmomwvaeolgotaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaebsfwfzjortrpvtltrkdwmhadlamwwmuoaxaxtaaddyoeadlocsdwykcssrykaeykaeykaocybgbgbgbgahjejyjpjljtcxkthsjzjzihjymwlrhkst"
83+
"ur:tron-sign-request/onadtpdagdndcawmgtfrkigrpmndutdnbtkgfssbjnaohdtybkaoatmhcpayvyrhuegomtihswjsfzlassmsldrkdwhtpladayctbgptadbkehjykkjoihdmiojljliojzihhsjoinjkdmiajljndljojpjljyjliajljzdmghjpinioioihjpgujnhsjpjyfxjljtjyjphsiajybgjybkbzfpstneaahygtfdpmlgplaevaoljsgtplckaebkursnbgbzfpbtdtdwmkonwpnbjzcxlpzmytmunliecntkiysofrcpfyptahnsrkaeaeaeaeaeaeaeaeaeaeaeaendrfvwcxtalrsrrhhtttbnqzvldrmomwvaeolgotaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaebsfwfzjortrpvtltrkdwmhadlamwwmuoaxaxadaataaddyoeadlocsdwykcssrykaeykaeykaocybgbgbgbgamjejyjpjljtcxkthsjzjzihjyjtrnneiy"
8084
);
8185
});
8286
});

packages/ur-registry-tron/src/TronSignRequest.ts

Lines changed: 17 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,14 +14,21 @@ const { decodeToDataItem, RegistryTypes } = extend;
1414
enum Keys {
1515
requestId = 1,
1616
signData,
17+
dataType,
1718
derivationPath,
1819
address,
1920
origin,
2021
}
2122

23+
export enum DataType {
24+
transaction = 1,
25+
personalMessage = 2,
26+
}
27+
2228
type SignRequestProps = {
2329
requestId?: Buffer;
2430
signData: Buffer;
31+
dataType: DataType;
2532
derivationPath: CryptoKeypath;
2633
address?: Buffer;
2734
origin?: string;
@@ -30,6 +37,7 @@ type SignRequestProps = {
3037
export class TronSignRequest extends RegistryItem {
3138
private requestId?: Buffer;
3239
private signData: Buffer;
40+
private dataType: DataType;
3341
private derivationPath: CryptoKeypath;
3442
private address?: Buffer;
3543
private origin?: string;
@@ -40,20 +48,23 @@ export class TronSignRequest extends RegistryItem {
4048
super();
4149
this.requestId = args.requestId;
4250
this.signData = args.signData;
51+
this.dataType = args.dataType;
4352
this.derivationPath = args.derivationPath;
4453
this.address = args.address;
4554
this.origin = args.origin;
4655
}
4756

4857
public getRequestId = () => this.requestId;
4958
public getSignData = () => this.signData;
50-
public getDerivationPath= () => this.derivationPath.getPath();
59+
public getDataType = () => this.dataType;
60+
public getDerivationPath = () => this.derivationPath.getPath();
5161
public getAddress = () => this.address;
5262
public getOrigin = () => this.origin;
5363

5464
public toDataItem = () => {
5565
const map: DataItemMap = {};
5666
map[Keys.signData] = this.signData;
67+
map[Keys.dataType] = this.dataType;
5768

5869
const derivationPath = this.derivationPath.toDataItem();
5970
derivationPath.setTag(this.derivationPath.getRegistryType().getTag());
@@ -87,6 +98,7 @@ export class TronSignRequest extends RegistryItem {
8798
return new TronSignRequest({
8899
requestId,
89100
signData: map[Keys.signData],
101+
dataType: map[Keys.dataType],
90102
derivationPath: CryptoKeypath.fromDataItem(map[Keys.derivationPath]),
91103
address: map[Keys.address],
92104
origin: map[Keys.origin],
@@ -113,7 +125,8 @@ export class TronSignRequest extends RegistryItem {
113125

114126
public static constructTronRequest(
115127
signData: Buffer,
116-
derivationHDPath: string,
128+
dataType: DataType,
129+
derivationHDPath: string,
117130
xfp: string,
118131
uuidString?: string,
119132
address?: Buffer,
@@ -122,9 +135,11 @@ export class TronSignRequest extends RegistryItem {
122135
return new TronSignRequest({
123136
requestId: uuidString ? Buffer.from(uuidParse(uuidString) as Uint8Array) : undefined,
124137
signData,
138+
dataType,
125139
derivationPath: TronSignRequest.parsePath(derivationHDPath, xfp),
126140
address,
127141
origin,
128142
});
129143
}
130144
}
145+

packages/ur-registry-tron/src/index.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,5 +8,5 @@ patchTags(
88
.map(rt => rt.getTag()) as number[]
99
);
1010

11-
export { TronSignRequest } from "./TronSignRequest";
11+
export { TronSignRequest, DataType } from "./TronSignRequest";
1212
export { TronSignature } from "./TronSignature";

0 commit comments

Comments
 (0)