@ledgerhq/coin-xrp 1.0.1-next.0 → 2.0.0-nightly.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 +7 -4
- package/lib/api/index.integ.test.js +2 -0
- package/lib/api/index.integ.test.js.map +1 -1
- package/lib/bridge/signOperation.js +1 -1
- package/lib/bridge/signOperation.js.map +1 -1
- package/lib/logic/craftTransaction.d.ts +17 -2
- package/lib/logic/craftTransaction.d.ts.map +1 -1
- package/lib/logic/craftTransaction.js +19 -4
- package/lib/logic/craftTransaction.js.map +1 -1
- package/lib/logic/craftTransaction.test.js +10 -1
- package/lib/logic/craftTransaction.test.js.map +1 -1
- package/lib-es/api/index.integ.test.js +2 -0
- package/lib-es/api/index.integ.test.js.map +1 -1
- package/lib-es/bridge/signOperation.js +1 -1
- package/lib-es/bridge/signOperation.js.map +1 -1
- package/lib-es/logic/craftTransaction.d.ts +17 -2
- package/lib-es/logic/craftTransaction.d.ts.map +1 -1
- package/lib-es/logic/craftTransaction.js +19 -4
- package/lib-es/logic/craftTransaction.js.map +1 -1
- package/lib-es/logic/craftTransaction.test.js +10 -1
- package/lib-es/logic/craftTransaction.test.js.map +1 -1
- package/package.json +3 -3
- package/src/api/index.integ.test.ts +2 -0
- package/src/bridge/signOperation.ts +1 -1
- package/src/logic/craftTransaction.test.ts +10 -2
- package/src/logic/craftTransaction.ts +38 -6
package/CHANGELOG.md
CHANGED
|
@@ -1,12 +1,15 @@
|
|
|
1
1
|
# @ledgerhq/coin-xrp
|
|
2
2
|
|
|
3
|
-
##
|
|
3
|
+
## 2.0.0-nightly.0
|
|
4
|
+
|
|
5
|
+
### Major Changes
|
|
6
|
+
|
|
7
|
+
- [#9076](https://github.com/LedgerHQ/ledger-live/pull/9076) [`58c1a9c`](https://github.com/LedgerHQ/ledger-live/commit/58c1a9c68b2ce2ebef9dbd7af00ae09efd7a29dc) Thanks [@jprudent](https://github.com/jprudent)! - Evolve transaction type to allow arbitrary crafting properties
|
|
4
8
|
|
|
5
9
|
### Patch Changes
|
|
6
10
|
|
|
7
|
-
- Updated dependencies [[`
|
|
8
|
-
- @ledgerhq/
|
|
9
|
-
- @ledgerhq/coin-framework@1.0.1-next.0
|
|
11
|
+
- Updated dependencies [[`58c1a9c`](https://github.com/LedgerHQ/ledger-live/commit/58c1a9c68b2ce2ebef9dbd7af00ae09efd7a29dc)]:
|
|
12
|
+
- @ledgerhq/coin-framework@2.0.0-nightly.0
|
|
10
13
|
|
|
11
14
|
## 1.0.0
|
|
12
15
|
|
|
@@ -81,6 +81,8 @@ describe("Xrp Api", () => {
|
|
|
81
81
|
recipient: "rKRtUG15iBsCQRgrkeUEg5oX4Ae2zWZ89z",
|
|
82
82
|
amount: BigInt(10),
|
|
83
83
|
fee: BigInt(1),
|
|
84
|
+
memos: [{ data: "01", format: "02", type: "03" }],
|
|
85
|
+
destinationTag: 123,
|
|
84
86
|
});
|
|
85
87
|
// Then
|
|
86
88
|
expect(result.slice(0, 34)).toEqual("12000022800000002400025899201B002D");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.integ.test.js","sourceRoot":"","sources":["../../src/api/index.integ.test.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.integ.test.js","sourceRoot":"","sources":["../../src/api/index.integ.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -27,7 +27,7 @@ const buildSignOperation = (signerContext) => ({ account, deviceId, transaction
|
|
|
27
27
|
recipient: transaction.recipient,
|
|
28
28
|
amount: BigInt(transaction.amount.toString()),
|
|
29
29
|
fee: BigInt(fee.toString()),
|
|
30
|
-
|
|
30
|
+
destinationTag: transaction.tag,
|
|
31
31
|
}, publicKey);
|
|
32
32
|
const transactionSignature = await signer.signTransaction(derivationPath, serializedTransaction);
|
|
33
33
|
return (0, ripple_binary_codec_1.encode)({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"signOperation.js","sourceRoot":"","sources":["../../src/bridge/signOperation.ts"],"names":[],"mappings":";;;AAAA,+BAAkC;AAClC,6DAA6C;AAC7C,6CAAgD;AAGhD,kEAAuE;AACvE,oCAA8F;AAGvF,MAAM,kBAAkB,GAC7B,CAAC,aAAuC,EAA+C,EAAE,CACzF,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,EAAE,EAAE,CACrC,IAAI,iBAAU,CAAC,CAAC,CAAC,EAAE;IACjB,IAAA,kCAA0B,EAAC,WAAW,CAAC,SAAS,CAAC,CAAC;IAElD,KAAK,UAAU,IAAI;QACjB,MAAM,EAAE,GAAG,EAAE,GAAG,WAAW,CAAC;QAC5B,IAAI,CAAC,GAAG;YAAE,MAAM,IAAI,qBAAY,EAAE,CAAC;QAEnC,IAAI,CAAC;YACH,CAAC,CAAC,IAAI,CAAC;gBACL,IAAI,EAAE,4BAA4B;aACnC,CAAC,CAAC;YAEH,MAAM,kBAAkB,GAAG,MAAM,IAAA,4BAAoB,EAAC,OAAO,CAAC,YAAY,CAAC,CAAC;YAE5E,MAAM,SAAS,GAAG,MAAM,aAAa,CAAC,QAAQ,EAAE,KAAK,EAAC,MAAM,EAAC,EAAE;gBAC7D,MAAM,EAAE,gBAAgB,EAAE,cAAc,EAAE,GAAG,OAAO,CAAC;gBACrD,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,MAAM,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC;gBAE9D,MAAM,EAAE,eAAe,EAAE,qBAAqB,EAAE,GAAG,MAAM,IAAA,wBAAgB,EACvE;oBACE,OAAO,EAAE,OAAO,CAAC,YAAY;oBAC7B,kBAAkB;iBACnB,EACD;oBACE,SAAS,EAAE,WAAW,CAAC,SAAS;oBAChC,MAAM,EAAE,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;oBAC7C,GAAG,EAAE,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;oBAC3B,
|
|
1
|
+
{"version":3,"file":"signOperation.js","sourceRoot":"","sources":["../../src/bridge/signOperation.ts"],"names":[],"mappings":"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"}
|
|
@@ -49,18 +49,32 @@ declare const TRANSACTION_TYPES: {
|
|
|
49
49
|
SetFee: number;
|
|
50
50
|
UNLModify: number;
|
|
51
51
|
};
|
|
52
|
+
type Memo = {
|
|
53
|
+
MemoData?: string;
|
|
54
|
+
MemoFormat?: string;
|
|
55
|
+
MemoType?: string;
|
|
56
|
+
};
|
|
57
|
+
type MemoWrapper = {
|
|
58
|
+
Memo: Memo;
|
|
59
|
+
};
|
|
52
60
|
type XrplTransaction = {
|
|
53
61
|
TransactionType: keyof typeof TRANSACTION_TYPES;
|
|
54
62
|
Flags: number;
|
|
55
63
|
Account: string;
|
|
56
64
|
Amount: string;
|
|
57
65
|
Destination: string;
|
|
58
|
-
DestinationTag
|
|
66
|
+
DestinationTag?: number;
|
|
59
67
|
Fee: string;
|
|
60
68
|
Sequence: number;
|
|
61
69
|
LastLedgerSequence: number;
|
|
62
70
|
SigningPubKey?: string;
|
|
63
71
|
TxnSignature?: string;
|
|
72
|
+
Memos?: MemoWrapper[];
|
|
73
|
+
};
|
|
74
|
+
type MemoInput = {
|
|
75
|
+
data?: string;
|
|
76
|
+
format?: string;
|
|
77
|
+
type?: string;
|
|
64
78
|
};
|
|
65
79
|
export declare function craftTransaction(account: {
|
|
66
80
|
address: string;
|
|
@@ -69,7 +83,8 @@ export declare function craftTransaction(account: {
|
|
|
69
83
|
recipient: string;
|
|
70
84
|
amount: bigint;
|
|
71
85
|
fee: bigint;
|
|
72
|
-
|
|
86
|
+
destinationTag?: number | null | undefined;
|
|
87
|
+
memos?: MemoInput[];
|
|
73
88
|
}, publicKey?: string): Promise<{
|
|
74
89
|
xrplTransaction: XrplTransaction;
|
|
75
90
|
serializedTransaction: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"craftTransaction.d.ts","sourceRoot":"","sources":["../../src/logic/craftTransaction.ts"],"names":[],"mappings":"AASA,QAAA,MAAQ,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAAoB,CAAC;AAC9C,KAAK,eAAe,GAAG;IACrB,eAAe,EAAE,MAAM,OAAO,iBAAiB,CAAC;IAChD,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"craftTransaction.d.ts","sourceRoot":"","sources":["../../src/logic/craftTransaction.ts"],"names":[],"mappings":"AASA,QAAA,MAAQ,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAAoB,CAAC;AAC9C,KAAK,IAAI,GAAG;IACV,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC;AACF,KAAK,WAAW,GAAG;IACjB,IAAI,EAAE,IAAI,CAAC;CACZ,CAAC;AACF,KAAK,eAAe,GAAG;IACrB,eAAe,EAAE,MAAM,OAAO,iBAAiB,CAAC;IAChD,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,MAAM,CAAC;IACjB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,KAAK,CAAC,EAAE,WAAW,EAAE,CAAC;CACvB,CAAC;AAEF,KAAK,SAAS,GAAG;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,CAAC;AACF,wBAAsB,gBAAgB,CACpC,OAAO,EAAE;IACP,OAAO,EAAE,MAAM,CAAC;IAChB,kBAAkB,EAAE,MAAM,CAAC;CAC5B,EACD,WAAW,EAAE;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;IACZ,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IAC3C,KAAK,CAAC,EAAE,SAAS,EAAE,CAAC;CACrB,EACD,SAAS,CAAC,EAAE,MAAM,GACjB,OAAO,CAAC;IACT,eAAe,EAAE,eAAe,CAAC;IACjC,qBAAqB,EAAE,MAAM,CAAC;CAC/B,CAAC,CAmDD"}
|
|
@@ -13,20 +13,35 @@ const utils_1 = require("./utils");
|
|
|
13
13
|
const LEDGER_OFFSET = 20;
|
|
14
14
|
const { TRANSACTION_TYPES } = definitions_json_1.default;
|
|
15
15
|
async function craftTransaction(account, transaction, publicKey) {
|
|
16
|
-
const tag = transaction.tag ? transaction.tag : undefined;
|
|
17
16
|
const xrplTransaction = {
|
|
18
17
|
TransactionType: "Payment",
|
|
19
18
|
Account: account.address,
|
|
20
19
|
Amount: transaction.amount.toString(),
|
|
21
20
|
Destination: transaction.recipient,
|
|
22
|
-
DestinationTag: tag,
|
|
23
21
|
Fee: transaction.fee.toString(),
|
|
24
22
|
Flags: 2147483648,
|
|
25
23
|
Sequence: account.nextSequenceNumber,
|
|
26
24
|
LastLedgerSequence: (await (0, network_1.getLedgerIndex)()) + LEDGER_OFFSET,
|
|
27
25
|
};
|
|
28
|
-
|
|
29
|
-
|
|
26
|
+
function memoMapper(memoInput) {
|
|
27
|
+
const memo = {};
|
|
28
|
+
if (memoInput.data) {
|
|
29
|
+
memo.MemoData = memoInput.data;
|
|
30
|
+
}
|
|
31
|
+
if (memoInput.format) {
|
|
32
|
+
memo.MemoFormat = memoInput.format;
|
|
33
|
+
}
|
|
34
|
+
if (memoInput.type) {
|
|
35
|
+
memo.MemoType = memoInput.type;
|
|
36
|
+
}
|
|
37
|
+
return { Memo: memo };
|
|
38
|
+
}
|
|
39
|
+
if (transaction.memos) {
|
|
40
|
+
xrplTransaction.Memos = transaction.memos.map(memoMapper);
|
|
41
|
+
}
|
|
42
|
+
if (transaction.destinationTag) {
|
|
43
|
+
(0, invariant_1.default)((0, utils_1.validateTag)(new bignumber_js_1.default(transaction.destinationTag)), `tag is set but is not in a valid format, should be between [0 - ${utils_1.UINT32_MAX.toString()}]`);
|
|
44
|
+
xrplTransaction.DestinationTag = transaction.destinationTag;
|
|
30
45
|
}
|
|
31
46
|
const serializedTransaction = publicKey
|
|
32
47
|
? (0, ripple_binary_codec_1.encode)({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"craftTransaction.js","sourceRoot":"","sources":["../../src/logic/craftTransaction.ts"],"names":[],"mappings":";;;;;
|
|
1
|
+
{"version":3,"file":"craftTransaction.js","sourceRoot":"","sources":["../../src/logic/craftTransaction.ts"],"names":[],"mappings":";;;;;AAsCA,4CAmEC;AAzGD,gEAAqC;AACrC,0DAAkC;AAClC,6DAA6C;AAC7C,uGAA8E;AAC9E,wCAA4C;AAC5C,mCAAkD;AAElD,MAAM,aAAa,GAAG,EAAE,CAAC;AAEzB,MAAM,EAAE,iBAAiB,EAAE,GAAG,0BAAe,CAAC;AA6BvC,KAAK,UAAU,gBAAgB,CACpC,OAGC,EACD,WAMC,EACD,SAAkB;IAKlB,MAAM,eAAe,GAAoB;QACvC,eAAe,EAAE,SAAS;QAC1B,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,MAAM,EAAE,WAAW,CAAC,MAAM,CAAC,QAAQ,EAAE;QACrC,WAAW,EAAE,WAAW,CAAC,SAAS;QAClC,GAAG,EAAE,WAAW,CAAC,GAAG,CAAC,QAAQ,EAAE;QAC/B,KAAK,EAAE,UAAU;QACjB,QAAQ,EAAE,OAAO,CAAC,kBAAkB;QACpC,kBAAkB,EAAE,CAAC,MAAM,IAAA,wBAAc,GAAE,CAAC,GAAG,aAAa;KAC7D,CAAC;IAEF,SAAS,UAAU,CAAC,SAAoB;QACtC,MAAM,IAAI,GAAS,EAAE,CAAC;QACtB,IAAI,SAAS,CAAC,IAAI,EAAE,CAAC;YACnB,IAAI,CAAC,QAAQ,GAAG,SAAS,CAAC,IAAI,CAAC;QACjC,CAAC;QACD,IAAI,SAAS,CAAC,MAAM,EAAE,CAAC;YACrB,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC,MAAM,CAAC;QACrC,CAAC;QACD,IAAI,SAAS,CAAC,IAAI,EAAE,CAAC;YACnB,IAAI,CAAC,QAAQ,GAAG,SAAS,CAAC,IAAI,CAAC;QACjC,CAAC;QACD,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;IACxB,CAAC;IAED,IAAI,WAAW,CAAC,KAAK,EAAE,CAAC;QACtB,eAAe,CAAC,KAAK,GAAG,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IAC5D,CAAC;IAED,IAAI,WAAW,CAAC,cAAc,EAAE,CAAC;QAC/B,IAAA,mBAAS,EACP,IAAA,mBAAW,EAAC,IAAI,sBAAS,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC,EACtD,mEAAmE,kBAAU,CAAC,QAAQ,EAAE,GAAG,CAC5F,CAAC;QACF,eAAe,CAAC,cAAc,GAAG,WAAW,CAAC,cAAc,CAAC;IAC9D,CAAC;IAED,MAAM,qBAAqB,GAAG,SAAS;QACrC,CAAC,CAAC,IAAA,4BAAM,EAAC;YACL,GAAG,eAAe;YAClB,aAAa,EAAE,SAAS;SACzB,CAAC;QACJ,CAAC,CAAC,IAAA,4BAAM,EAAC;YACL,GAAG,eAAe;SACnB,CAAC,CAAC;IAEP,OAAO;QACL,eAAe;QACf,qBAAqB;KACtB,CAAC;AACJ,CAAC"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
const craftTransaction_1 = require("./craftTransaction");
|
|
4
|
+
const ripple_binary_codec_1 = require("ripple-binary-codec");
|
|
4
5
|
jest.mock("../network", () => ({
|
|
5
6
|
getLedgerIndex: () => 1,
|
|
6
7
|
}));
|
|
@@ -43,6 +44,8 @@ describe("craftTransaction", () => {
|
|
|
43
44
|
recipient: "rJe1St1G6BWMFmdrrcT7NdD3XT1NxTMEWN",
|
|
44
45
|
amount: BigInt(100_000_000),
|
|
45
46
|
fee: BigInt(100),
|
|
47
|
+
memos: [{ data: "01", format: "02", type: "03" }],
|
|
48
|
+
destinationTag: 123,
|
|
46
49
|
};
|
|
47
50
|
const pubKey = "public_key";
|
|
48
51
|
// When
|
|
@@ -54,13 +57,19 @@ describe("craftTransaction", () => {
|
|
|
54
57
|
Account: "rPDf6SQStnNmw1knCu1ei7h6BcDAEUUqn5",
|
|
55
58
|
Amount: "100000000",
|
|
56
59
|
Destination: "rJe1St1G6BWMFmdrrcT7NdD3XT1NxTMEWN",
|
|
57
|
-
DestinationTag:
|
|
60
|
+
DestinationTag: 123,
|
|
58
61
|
Fee: "100",
|
|
59
62
|
Flags: 2147483648,
|
|
60
63
|
Sequence: 2,
|
|
61
64
|
LastLedgerSequence: 21,
|
|
65
|
+
Memos: [{ Memo: { MemoData: "01", MemoFormat: "02", MemoType: "03" } }],
|
|
62
66
|
});
|
|
63
67
|
expect(result.serializedTransaction).toBeDefined();
|
|
68
|
+
const binDecodedTx = (0, ripple_binary_codec_1.decode)(result.serializedTransaction);
|
|
69
|
+
expect(binDecodedTx.Memos).toEqual([
|
|
70
|
+
{ Memo: { MemoData: "01", MemoFormat: "02", MemoType: "03" } },
|
|
71
|
+
]);
|
|
72
|
+
expect(binDecodedTx.DestinationTag).toEqual(123);
|
|
64
73
|
});
|
|
65
74
|
});
|
|
66
75
|
//# sourceMappingURL=craftTransaction.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"craftTransaction.test.js","sourceRoot":"","sources":["../../src/logic/craftTransaction.test.ts"],"names":[],"mappings":";;AAAA,yDAAsD;
|
|
1
|
+
{"version":3,"file":"craftTransaction.test.js","sourceRoot":"","sources":["../../src/logic/craftTransaction.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -79,6 +79,8 @@ describe("Xrp Api", () => {
|
|
|
79
79
|
recipient: "rKRtUG15iBsCQRgrkeUEg5oX4Ae2zWZ89z",
|
|
80
80
|
amount: BigInt(10),
|
|
81
81
|
fee: BigInt(1),
|
|
82
|
+
memos: [{ data: "01", format: "02", type: "03" }],
|
|
83
|
+
destinationTag: 123,
|
|
82
84
|
});
|
|
83
85
|
// Then
|
|
84
86
|
expect(result.slice(0, 34)).toEqual("12000022800000002400025899201B002D");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.integ.test.js","sourceRoot":"","sources":["../../src/api/index.integ.test.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.integ.test.js","sourceRoot":"","sources":["../../src/api/index.integ.test.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,GAAG,CAAC;AAC9B,OAAO,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAC/D,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AAEvC,QAAQ,CAAC,SAAS,EAAE,GAAG,EAAE;IACvB,IAAI,MAAW,CAAC;IAChB,MAAM,OAAO,GAAG,oCAAoC,CAAC;IACrD,MAAM,UAAU,GAAG,oCAAoC,CAAC,CAAC,qCAAqC;IAC9F,MAAM,YAAY,GAAG,oCAAoC,CAAC,CAAC,4DAA4D;IACvH,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,SAAS,CAAE,CAAC;IAC1C,MAAM,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC,YAAY,CAAE,CAAC;IAEhD,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,GAAG,SAAS,CAAC,EAAE,IAAI,EAAE,uCAAuC,EAAE,CAAC,CAAC;IACxE,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,cAAc,EAAE,GAAG,EAAE;QAC5B,EAAE,CAAC,yBAAyB,EAAE,KAAK,IAAI,EAAE;YACvC,QAAQ;YACR,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;YAE3B,OAAO;YACP,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,YAAY,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;YAE1D,OAAO;YACP,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;QACrC,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,gBAAgB,EAAE,GAAG,EAAE;QAC9B,EAAE,CAAC,4CAA4C,EAAE,KAAK,IAAI,EAAE;YAC1D,OAAO;YACP,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,MAAM,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC,CAAC;YAEzE,OAAO;YACP,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAC5B,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE;gBACrB,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;gBAC3C,MAAM,iBAAiB,GACrB,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,SAAS,CAAC,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;gBAChF,MAAM,CAAC,iBAAiB,CAAC,CAAC,UAAU,EAAE,CAAC;YACzC,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,wBAAwB,EAAE,KAAK,IAAI,EAAE;YACtC,OAAO;YACP,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,MAAM,MAAM,CAAC,cAAc,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC,CAAC;YAC1E,OAAO;YACP,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;YAClD,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC;YACzC,oCAAoC;YACpC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;YAC7C,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,OAAO,CACpC,kEAAkE,CACnE,CAAC;YACF,8CAA8C;YAC9C,sDAAsD;YACtD,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;QACzC,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,WAAW,EAAE,GAAG,EAAE;QACzB,EAAE,CAAC,yBAAyB,EAAE,KAAK,IAAI,EAAE;YACvC,OAAO;YACP,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,SAAS,EAAE,CAAC;YAExC,OAAO;YACP,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC;YAClC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC;YACpC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;QAC3C,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,YAAY,EAAE,GAAG,EAAE;QAC1B,EAAE,CAAC,yDAAyD,EAAE,KAAK,IAAI,EAAE;YACvE,OAAO;YACP,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;YAEhD,OAAO;YACP,MAAM,CAAC,MAAM,CAAC,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;QAC5C,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,2CAA2C,EAAE,KAAK,IAAI,EAAE;YACzD,OAAO;YACP,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;YAErD,OAAO;YACP,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;QACjC,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,kBAAkB,EAAE,GAAG,EAAE;QAChC,EAAE,CAAC,2BAA2B,EAAE,KAAK,IAAI,EAAE;YACzC,OAAO;YACP,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE;gBACpD,IAAI,EAAE,MAAM;gBACZ,SAAS,EAAE,oCAAoC;gBAC/C,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC;gBAClB,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC;gBACd,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;gBACjD,cAAc,EAAE,GAAG;aACpB,CAAC,CAAC;YAEH,OAAO;YACP,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,oCAAoC,CAAC,CAAC;YAC1E,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAC9B,8HAA8H,CAC/H,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,uIAAuI;IACvI,2EAA2E;IAC3E,QAAQ,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,EAAE;QAC5B,EAAE,CAAC,kCAAkC,EAAE,KAAK,IAAI,EAAE;YAChD,QAAQ;YACR,MAAM,KAAK,GACT,oKAAoK,CAAC;YACvK,MAAM,QAAQ,GAAG,IAAI,CACnB,gBAAgB,CAAC;gBACf,GAAG,MAAM,CAAC,KAAK,CAAC;gBAChB,aAAa,EAAE,SAAS;aACzB,CAAC,EACF,YAAY,CACb,CAAC;YAEF,OAAO;YACP,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;YAErD,OAAO;YACP,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CACpB,sTAAsT,CACvT,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -24,7 +24,7 @@ export const buildSignOperation = (signerContext) => ({ account, deviceId, trans
|
|
|
24
24
|
recipient: transaction.recipient,
|
|
25
25
|
amount: BigInt(transaction.amount.toString()),
|
|
26
26
|
fee: BigInt(fee.toString()),
|
|
27
|
-
|
|
27
|
+
destinationTag: transaction.tag,
|
|
28
28
|
}, publicKey);
|
|
29
29
|
const transactionSignature = await signer.signTransaction(derivationPath, serializedTransaction);
|
|
30
30
|
return encode({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"signOperation.js","sourceRoot":"","sources":["../../src/bridge/signOperation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,MAAM,CAAC;AAClC,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAC7C,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAGhD,OAAO,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAC;AACvE,OAAO,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,0BAA0B,EAAE,MAAM,UAAU,CAAC;AAG9F,MAAM,CAAC,MAAM,kBAAkB,GAC7B,CAAC,aAAuC,EAA+C,EAAE,CACzF,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,EAAE,EAAE,CACrC,IAAI,UAAU,CAAC,CAAC,CAAC,EAAE;IACjB,0BAA0B,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;IAElD,KAAK,UAAU,IAAI;QACjB,MAAM,EAAE,GAAG,EAAE,GAAG,WAAW,CAAC;QAC5B,IAAI,CAAC,GAAG;YAAE,MAAM,IAAI,YAAY,EAAE,CAAC;QAEnC,IAAI,CAAC;YACH,CAAC,CAAC,IAAI,CAAC;gBACL,IAAI,EAAE,4BAA4B;aACnC,CAAC,CAAC;YAEH,MAAM,kBAAkB,GAAG,MAAM,oBAAoB,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;YAE5E,MAAM,SAAS,GAAG,MAAM,aAAa,CAAC,QAAQ,EAAE,KAAK,EAAC,MAAM,EAAC,EAAE;gBAC7D,MAAM,EAAE,gBAAgB,EAAE,cAAc,EAAE,GAAG,OAAO,CAAC;gBACrD,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,MAAM,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC;gBAE9D,MAAM,EAAE,eAAe,EAAE,qBAAqB,EAAE,GAAG,MAAM,gBAAgB,CACvE;oBACE,OAAO,EAAE,OAAO,CAAC,YAAY;oBAC7B,kBAAkB;iBACnB,EACD;oBACE,SAAS,EAAE,WAAW,CAAC,SAAS;oBAChC,MAAM,EAAE,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;oBAC7C,GAAG,EAAE,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;oBAC3B,
|
|
1
|
+
{"version":3,"file":"signOperation.js","sourceRoot":"","sources":["../../src/bridge/signOperation.ts"],"names":[],"mappings":"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"}
|
|
@@ -49,18 +49,32 @@ declare const TRANSACTION_TYPES: {
|
|
|
49
49
|
SetFee: number;
|
|
50
50
|
UNLModify: number;
|
|
51
51
|
};
|
|
52
|
+
type Memo = {
|
|
53
|
+
MemoData?: string;
|
|
54
|
+
MemoFormat?: string;
|
|
55
|
+
MemoType?: string;
|
|
56
|
+
};
|
|
57
|
+
type MemoWrapper = {
|
|
58
|
+
Memo: Memo;
|
|
59
|
+
};
|
|
52
60
|
type XrplTransaction = {
|
|
53
61
|
TransactionType: keyof typeof TRANSACTION_TYPES;
|
|
54
62
|
Flags: number;
|
|
55
63
|
Account: string;
|
|
56
64
|
Amount: string;
|
|
57
65
|
Destination: string;
|
|
58
|
-
DestinationTag
|
|
66
|
+
DestinationTag?: number;
|
|
59
67
|
Fee: string;
|
|
60
68
|
Sequence: number;
|
|
61
69
|
LastLedgerSequence: number;
|
|
62
70
|
SigningPubKey?: string;
|
|
63
71
|
TxnSignature?: string;
|
|
72
|
+
Memos?: MemoWrapper[];
|
|
73
|
+
};
|
|
74
|
+
type MemoInput = {
|
|
75
|
+
data?: string;
|
|
76
|
+
format?: string;
|
|
77
|
+
type?: string;
|
|
64
78
|
};
|
|
65
79
|
export declare function craftTransaction(account: {
|
|
66
80
|
address: string;
|
|
@@ -69,7 +83,8 @@ export declare function craftTransaction(account: {
|
|
|
69
83
|
recipient: string;
|
|
70
84
|
amount: bigint;
|
|
71
85
|
fee: bigint;
|
|
72
|
-
|
|
86
|
+
destinationTag?: number | null | undefined;
|
|
87
|
+
memos?: MemoInput[];
|
|
73
88
|
}, publicKey?: string): Promise<{
|
|
74
89
|
xrplTransaction: XrplTransaction;
|
|
75
90
|
serializedTransaction: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"craftTransaction.d.ts","sourceRoot":"","sources":["../../src/logic/craftTransaction.ts"],"names":[],"mappings":"AASA,QAAA,MAAQ,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAAoB,CAAC;AAC9C,KAAK,eAAe,GAAG;IACrB,eAAe,EAAE,MAAM,OAAO,iBAAiB,CAAC;IAChD,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"craftTransaction.d.ts","sourceRoot":"","sources":["../../src/logic/craftTransaction.ts"],"names":[],"mappings":"AASA,QAAA,MAAQ,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAAoB,CAAC;AAC9C,KAAK,IAAI,GAAG;IACV,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC;AACF,KAAK,WAAW,GAAG;IACjB,IAAI,EAAE,IAAI,CAAC;CACZ,CAAC;AACF,KAAK,eAAe,GAAG;IACrB,eAAe,EAAE,MAAM,OAAO,iBAAiB,CAAC;IAChD,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,MAAM,CAAC;IACjB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,KAAK,CAAC,EAAE,WAAW,EAAE,CAAC;CACvB,CAAC;AAEF,KAAK,SAAS,GAAG;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,CAAC;AACF,wBAAsB,gBAAgB,CACpC,OAAO,EAAE;IACP,OAAO,EAAE,MAAM,CAAC;IAChB,kBAAkB,EAAE,MAAM,CAAC;CAC5B,EACD,WAAW,EAAE;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;IACZ,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IAC3C,KAAK,CAAC,EAAE,SAAS,EAAE,CAAC;CACrB,EACD,SAAS,CAAC,EAAE,MAAM,GACjB,OAAO,CAAC;IACT,eAAe,EAAE,eAAe,CAAC;IACjC,qBAAqB,EAAE,MAAM,CAAC;CAC/B,CAAC,CAmDD"}
|
|
@@ -7,20 +7,35 @@ import { UINT32_MAX, validateTag } from "./utils";
|
|
|
7
7
|
const LEDGER_OFFSET = 20;
|
|
8
8
|
const { TRANSACTION_TYPES } = XrplDefinitions;
|
|
9
9
|
export async function craftTransaction(account, transaction, publicKey) {
|
|
10
|
-
const tag = transaction.tag ? transaction.tag : undefined;
|
|
11
10
|
const xrplTransaction = {
|
|
12
11
|
TransactionType: "Payment",
|
|
13
12
|
Account: account.address,
|
|
14
13
|
Amount: transaction.amount.toString(),
|
|
15
14
|
Destination: transaction.recipient,
|
|
16
|
-
DestinationTag: tag,
|
|
17
15
|
Fee: transaction.fee.toString(),
|
|
18
16
|
Flags: 2147483648,
|
|
19
17
|
Sequence: account.nextSequenceNumber,
|
|
20
18
|
LastLedgerSequence: (await getLedgerIndex()) + LEDGER_OFFSET,
|
|
21
19
|
};
|
|
22
|
-
|
|
23
|
-
|
|
20
|
+
function memoMapper(memoInput) {
|
|
21
|
+
const memo = {};
|
|
22
|
+
if (memoInput.data) {
|
|
23
|
+
memo.MemoData = memoInput.data;
|
|
24
|
+
}
|
|
25
|
+
if (memoInput.format) {
|
|
26
|
+
memo.MemoFormat = memoInput.format;
|
|
27
|
+
}
|
|
28
|
+
if (memoInput.type) {
|
|
29
|
+
memo.MemoType = memoInput.type;
|
|
30
|
+
}
|
|
31
|
+
return { Memo: memo };
|
|
32
|
+
}
|
|
33
|
+
if (transaction.memos) {
|
|
34
|
+
xrplTransaction.Memos = transaction.memos.map(memoMapper);
|
|
35
|
+
}
|
|
36
|
+
if (transaction.destinationTag) {
|
|
37
|
+
invariant(validateTag(new BigNumber(transaction.destinationTag)), `tag is set but is not in a valid format, should be between [0 - ${UINT32_MAX.toString()}]`);
|
|
38
|
+
xrplTransaction.DestinationTag = transaction.destinationTag;
|
|
24
39
|
}
|
|
25
40
|
const serializedTransaction = publicKey
|
|
26
41
|
? encode({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"craftTransaction.js","sourceRoot":"","sources":["../../src/logic/craftTransaction.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,cAAc,CAAC;AACrC,OAAO,SAAS,MAAM,WAAW,CAAC;AAClC,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAC7C,OAAO,eAAe,MAAM,iDAAiD,CAAC;AAC9E,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAElD,MAAM,aAAa,GAAG,EAAE,CAAC;AAEzB,MAAM,EAAE,iBAAiB,EAAE,GAAG,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"craftTransaction.js","sourceRoot":"","sources":["../../src/logic/craftTransaction.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,cAAc,CAAC;AACrC,OAAO,SAAS,MAAM,WAAW,CAAC;AAClC,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAC7C,OAAO,eAAe,MAAM,iDAAiD,CAAC;AAC9E,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAElD,MAAM,aAAa,GAAG,EAAE,CAAC;AAEzB,MAAM,EAAE,iBAAiB,EAAE,GAAG,eAAe,CAAC;AA6B9C,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,OAGC,EACD,WAMC,EACD,SAAkB;IAKlB,MAAM,eAAe,GAAoB;QACvC,eAAe,EAAE,SAAS;QAC1B,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,MAAM,EAAE,WAAW,CAAC,MAAM,CAAC,QAAQ,EAAE;QACrC,WAAW,EAAE,WAAW,CAAC,SAAS;QAClC,GAAG,EAAE,WAAW,CAAC,GAAG,CAAC,QAAQ,EAAE;QAC/B,KAAK,EAAE,UAAU;QACjB,QAAQ,EAAE,OAAO,CAAC,kBAAkB;QACpC,kBAAkB,EAAE,CAAC,MAAM,cAAc,EAAE,CAAC,GAAG,aAAa;KAC7D,CAAC;IAEF,SAAS,UAAU,CAAC,SAAoB;QACtC,MAAM,IAAI,GAAS,EAAE,CAAC;QACtB,IAAI,SAAS,CAAC,IAAI,EAAE,CAAC;YACnB,IAAI,CAAC,QAAQ,GAAG,SAAS,CAAC,IAAI,CAAC;QACjC,CAAC;QACD,IAAI,SAAS,CAAC,MAAM,EAAE,CAAC;YACrB,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC,MAAM,CAAC;QACrC,CAAC;QACD,IAAI,SAAS,CAAC,IAAI,EAAE,CAAC;YACnB,IAAI,CAAC,QAAQ,GAAG,SAAS,CAAC,IAAI,CAAC;QACjC,CAAC;QACD,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;IACxB,CAAC;IAED,IAAI,WAAW,CAAC,KAAK,EAAE,CAAC;QACtB,eAAe,CAAC,KAAK,GAAG,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IAC5D,CAAC;IAED,IAAI,WAAW,CAAC,cAAc,EAAE,CAAC;QAC/B,SAAS,CACP,WAAW,CAAC,IAAI,SAAS,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC,EACtD,mEAAmE,UAAU,CAAC,QAAQ,EAAE,GAAG,CAC5F,CAAC;QACF,eAAe,CAAC,cAAc,GAAG,WAAW,CAAC,cAAc,CAAC;IAC9D,CAAC;IAED,MAAM,qBAAqB,GAAG,SAAS;QACrC,CAAC,CAAC,MAAM,CAAC;YACL,GAAG,eAAe;YAClB,aAAa,EAAE,SAAS;SACzB,CAAC;QACJ,CAAC,CAAC,MAAM,CAAC;YACL,GAAG,eAAe;SACnB,CAAC,CAAC;IAEP,OAAO;QACL,eAAe;QACf,qBAAqB;KACtB,CAAC;AACJ,CAAC"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { craftTransaction } from "./craftTransaction";
|
|
2
|
+
import { decode } from "ripple-binary-codec";
|
|
2
3
|
jest.mock("../network", () => ({
|
|
3
4
|
getLedgerIndex: () => 1,
|
|
4
5
|
}));
|
|
@@ -41,6 +42,8 @@ describe("craftTransaction", () => {
|
|
|
41
42
|
recipient: "rJe1St1G6BWMFmdrrcT7NdD3XT1NxTMEWN",
|
|
42
43
|
amount: BigInt(100_000_000),
|
|
43
44
|
fee: BigInt(100),
|
|
45
|
+
memos: [{ data: "01", format: "02", type: "03" }],
|
|
46
|
+
destinationTag: 123,
|
|
44
47
|
};
|
|
45
48
|
const pubKey = "public_key";
|
|
46
49
|
// When
|
|
@@ -52,13 +55,19 @@ describe("craftTransaction", () => {
|
|
|
52
55
|
Account: "rPDf6SQStnNmw1knCu1ei7h6BcDAEUUqn5",
|
|
53
56
|
Amount: "100000000",
|
|
54
57
|
Destination: "rJe1St1G6BWMFmdrrcT7NdD3XT1NxTMEWN",
|
|
55
|
-
DestinationTag:
|
|
58
|
+
DestinationTag: 123,
|
|
56
59
|
Fee: "100",
|
|
57
60
|
Flags: 2147483648,
|
|
58
61
|
Sequence: 2,
|
|
59
62
|
LastLedgerSequence: 21,
|
|
63
|
+
Memos: [{ Memo: { MemoData: "01", MemoFormat: "02", MemoType: "03" } }],
|
|
60
64
|
});
|
|
61
65
|
expect(result.serializedTransaction).toBeDefined();
|
|
66
|
+
const binDecodedTx = decode(result.serializedTransaction);
|
|
67
|
+
expect(binDecodedTx.Memos).toEqual([
|
|
68
|
+
{ Memo: { MemoData: "01", MemoFormat: "02", MemoType: "03" } },
|
|
69
|
+
]);
|
|
70
|
+
expect(binDecodedTx.DestinationTag).toEqual(123);
|
|
62
71
|
});
|
|
63
72
|
});
|
|
64
73
|
//# sourceMappingURL=craftTransaction.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"craftTransaction.test.js","sourceRoot":"","sources":["../../src/logic/craftTransaction.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"craftTransaction.test.js","sourceRoot":"","sources":["../../src/logic/craftTransaction.test.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ledgerhq/coin-xrp",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "2.0.0-nightly.0",
|
|
4
4
|
"description": "Ledger XRP Coin integration",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"Ledger",
|
|
@@ -104,8 +104,8 @@
|
|
|
104
104
|
"ripple-address-codec": "^5.0.0",
|
|
105
105
|
"ripple-binary-codec": "^1.3.0",
|
|
106
106
|
"rxjs": "^7.8.1",
|
|
107
|
-
"@ledgerhq/coin-framework": "^
|
|
108
|
-
"@ledgerhq/cryptoassets": "^13.
|
|
107
|
+
"@ledgerhq/coin-framework": "^2.0.0-nightly.0",
|
|
108
|
+
"@ledgerhq/cryptoassets": "^13.10.1-nightly.0",
|
|
109
109
|
"@ledgerhq/devices": "8.4.4",
|
|
110
110
|
"@ledgerhq/errors": "^6.19.1",
|
|
111
111
|
"@ledgerhq/live-network": "^2.0.4",
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { craftTransaction } from "./craftTransaction";
|
|
2
|
-
|
|
2
|
+
import { decode } from "ripple-binary-codec";
|
|
3
3
|
jest.mock("../network", () => ({
|
|
4
4
|
getLedgerIndex: () => 1,
|
|
5
5
|
}));
|
|
@@ -46,6 +46,8 @@ describe("craftTransaction", () => {
|
|
|
46
46
|
recipient: "rJe1St1G6BWMFmdrrcT7NdD3XT1NxTMEWN",
|
|
47
47
|
amount: BigInt(100_000_000),
|
|
48
48
|
fee: BigInt(100),
|
|
49
|
+
memos: [{ data: "01", format: "02", type: "03" }],
|
|
50
|
+
destinationTag: 123,
|
|
49
51
|
};
|
|
50
52
|
const pubKey = "public_key";
|
|
51
53
|
|
|
@@ -59,12 +61,18 @@ describe("craftTransaction", () => {
|
|
|
59
61
|
Account: "rPDf6SQStnNmw1knCu1ei7h6BcDAEUUqn5",
|
|
60
62
|
Amount: "100000000",
|
|
61
63
|
Destination: "rJe1St1G6BWMFmdrrcT7NdD3XT1NxTMEWN",
|
|
62
|
-
DestinationTag:
|
|
64
|
+
DestinationTag: 123,
|
|
63
65
|
Fee: "100",
|
|
64
66
|
Flags: 2147483648,
|
|
65
67
|
Sequence: 2,
|
|
66
68
|
LastLedgerSequence: 21,
|
|
69
|
+
Memos: [{ Memo: { MemoData: "01", MemoFormat: "02", MemoType: "03" } }],
|
|
67
70
|
});
|
|
68
71
|
expect(result.serializedTransaction).toBeDefined();
|
|
72
|
+
const binDecodedTx = decode(result.serializedTransaction);
|
|
73
|
+
expect(binDecodedTx.Memos).toEqual([
|
|
74
|
+
{ Memo: { MemoData: "01", MemoFormat: "02", MemoType: "03" } },
|
|
75
|
+
]);
|
|
76
|
+
expect(binDecodedTx.DestinationTag).toEqual(123);
|
|
69
77
|
});
|
|
70
78
|
});
|
|
@@ -8,20 +8,34 @@ import { UINT32_MAX, validateTag } from "./utils";
|
|
|
8
8
|
const LEDGER_OFFSET = 20;
|
|
9
9
|
|
|
10
10
|
const { TRANSACTION_TYPES } = XrplDefinitions;
|
|
11
|
+
type Memo = {
|
|
12
|
+
MemoData?: string;
|
|
13
|
+
MemoFormat?: string;
|
|
14
|
+
MemoType?: string;
|
|
15
|
+
};
|
|
16
|
+
type MemoWrapper = {
|
|
17
|
+
Memo: Memo;
|
|
18
|
+
};
|
|
11
19
|
type XrplTransaction = {
|
|
12
20
|
TransactionType: keyof typeof TRANSACTION_TYPES;
|
|
13
21
|
Flags: number;
|
|
14
22
|
Account: string;
|
|
15
23
|
Amount: string;
|
|
16
24
|
Destination: string;
|
|
17
|
-
DestinationTag
|
|
25
|
+
DestinationTag?: number;
|
|
18
26
|
Fee: string;
|
|
19
27
|
Sequence: number;
|
|
20
28
|
LastLedgerSequence: number;
|
|
21
29
|
SigningPubKey?: string;
|
|
22
30
|
TxnSignature?: string;
|
|
31
|
+
Memos?: MemoWrapper[];
|
|
23
32
|
};
|
|
24
33
|
|
|
34
|
+
type MemoInput = {
|
|
35
|
+
data?: string;
|
|
36
|
+
format?: string;
|
|
37
|
+
type?: string;
|
|
38
|
+
};
|
|
25
39
|
export async function craftTransaction(
|
|
26
40
|
account: {
|
|
27
41
|
address: string;
|
|
@@ -31,31 +45,49 @@ export async function craftTransaction(
|
|
|
31
45
|
recipient: string;
|
|
32
46
|
amount: bigint;
|
|
33
47
|
fee: bigint;
|
|
34
|
-
|
|
48
|
+
destinationTag?: number | null | undefined;
|
|
49
|
+
memos?: MemoInput[];
|
|
35
50
|
},
|
|
36
51
|
publicKey?: string,
|
|
37
52
|
): Promise<{
|
|
38
53
|
xrplTransaction: XrplTransaction;
|
|
39
54
|
serializedTransaction: string;
|
|
40
55
|
}> {
|
|
41
|
-
const tag = transaction.tag ? transaction.tag : undefined;
|
|
42
56
|
const xrplTransaction: XrplTransaction = {
|
|
43
57
|
TransactionType: "Payment",
|
|
44
58
|
Account: account.address,
|
|
45
59
|
Amount: transaction.amount.toString(),
|
|
46
60
|
Destination: transaction.recipient,
|
|
47
|
-
DestinationTag: tag,
|
|
48
61
|
Fee: transaction.fee.toString(),
|
|
49
62
|
Flags: 2147483648,
|
|
50
63
|
Sequence: account.nextSequenceNumber,
|
|
51
64
|
LastLedgerSequence: (await getLedgerIndex()) + LEDGER_OFFSET,
|
|
52
65
|
};
|
|
53
66
|
|
|
54
|
-
|
|
67
|
+
function memoMapper(memoInput: MemoInput): MemoWrapper {
|
|
68
|
+
const memo: Memo = {};
|
|
69
|
+
if (memoInput.data) {
|
|
70
|
+
memo.MemoData = memoInput.data;
|
|
71
|
+
}
|
|
72
|
+
if (memoInput.format) {
|
|
73
|
+
memo.MemoFormat = memoInput.format;
|
|
74
|
+
}
|
|
75
|
+
if (memoInput.type) {
|
|
76
|
+
memo.MemoType = memoInput.type;
|
|
77
|
+
}
|
|
78
|
+
return { Memo: memo };
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
if (transaction.memos) {
|
|
82
|
+
xrplTransaction.Memos = transaction.memos.map(memoMapper);
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
if (transaction.destinationTag) {
|
|
55
86
|
invariant(
|
|
56
|
-
validateTag(new BigNumber(
|
|
87
|
+
validateTag(new BigNumber(transaction.destinationTag)),
|
|
57
88
|
`tag is set but is not in a valid format, should be between [0 - ${UINT32_MAX.toString()}]`,
|
|
58
89
|
);
|
|
90
|
+
xrplTransaction.DestinationTag = transaction.destinationTag;
|
|
59
91
|
}
|
|
60
92
|
|
|
61
93
|
const serializedTransaction = publicKey
|