From 6028bb5cd2661574fe7edb828d6df7a94c56e747 Mon Sep 17 00:00:00 2001 From: nguyen-zung Date: Tue, 22 Jul 2025 17:17:46 +0700 Subject: [PATCH 1/3] update wasm structure --- wasmjs/craminiumlab-wasmjs-1.0.1.tgz | Bin 0 -> 6057 bytes wasmjs/dist/index.d.ts | 34 ++++++++ wasmjs/dist/{src => }/index.js | 30 +++++-- wasmjs/dist/test/tw.test.js | 121 --------------------------- wasmjs/package.json | 5 +- wasmjs/src/index.ts | 29 ++++++- wasmjs/tsconfig.json | 11 +-- 7 files changed, 94 insertions(+), 136 deletions(-) create mode 100644 wasmjs/craminiumlab-wasmjs-1.0.1.tgz create mode 100644 wasmjs/dist/index.d.ts rename wasmjs/dist/{src => }/index.js (88%) delete mode 100644 wasmjs/dist/test/tw.test.js diff --git a/wasmjs/craminiumlab-wasmjs-1.0.1.tgz b/wasmjs/craminiumlab-wasmjs-1.0.1.tgz new file mode 100644 index 0000000000000000000000000000000000000000..481cc524d7b91abc51a5efaf49d2fcfe5ecb87d3 GIT binary patch literal 6057 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 literal 0 HcmV?d00001 diff --git a/wasmjs/dist/index.d.ts b/wasmjs/dist/index.d.ts new file mode 100644 index 00000000000..2668f587d48 --- /dev/null +++ b/wasmjs/dist/index.d.ts @@ -0,0 +1,34 @@ +import * as Core from "craminiumlab-wallet-core"; +import { TW } from "craminiumlab-wallet-core"; +import { WalletCore, initWasm } from "craminiumlab-wallet-core"; +export { initWasm }; +export declare class WalletCoreWrapper { + CoinType: WalletCore["CoinType"]; + HexCoding: WalletCore["HexCoding"]; + AnySigner: WalletCore["AnySigner"]; + TransactionCompiler: WalletCore["TransactionCompiler"]; + DataVector: WalletCore["DataVector"]; + PrivateKey: WalletCore["PrivateKey"]; + TW: typeof TW; + constructor(core: WalletCore, _tw?: typeof Core.TW); + static init(): Promise; + encodeHex(data: Uint8Array): string; + createWithData(hexStr: string): Uint8Array; + anySign(input: Uint8Array, coin: InstanceType): Uint8Array; + preImageHashes(coin: InstanceType, txInput: Uint8Array): Uint8Array; + compileWithSignatures(coinType: InstanceType, txInputData: Uint8Array, signatures: string[], publicKeys: string[]): Uint8Array; + makeDataVector(items: Uint8Array[]): ReturnType; + buildAptosUnsignedTx(jsonStr: string): Uint8Array; + buildAptosUnsignedMessage(txInput: Uint8Array): Uint8Array; + buildCardanoUnsignedTx(jsonStr: string): Uint8Array; + buildCardanoUnsignedMessage(txInput: Uint8Array): Uint8Array; + buildCosmosUnsignedTx(jsonStr: string): Uint8Array; + buildCosmosUnsignedMessage(txInput: Uint8Array): Uint8Array; + buildNearUnsignedTx(jsonStr: string): Uint8Array; + buildNearUnsignedMessage(txInput: Uint8Array): Uint8Array; + buildStellarUnsignedTx(jsonStr: string): Uint8Array; + buildStellarUnsignedMessage(txInput: Uint8Array): Uint8Array; + buildEVMUnsignedTx(jsonStr: string): Uint8Array; + buildEVMUnsignedMessage(txInput: Uint8Array): Uint8Array; + marshalInput(input: protobuf.Writer): Uint8Array; +} diff --git a/wasmjs/dist/src/index.js b/wasmjs/dist/index.js similarity index 88% rename from wasmjs/dist/src/index.js rename to wasmjs/dist/index.js index d1eee748ae8..150f35be687 100644 --- a/wasmjs/dist/src/index.js +++ b/wasmjs/dist/index.js @@ -31,7 +31,6 @@ export class WalletCoreWrapper { } preImageHashes(coin, txInput) { const result = this.TransactionCompiler.preImageHashes(coin, txInput); - console.log('RESULT', result, result.length); return result; } compileWithSignatures(coinType, txInputData, signatures, publicKeys) { @@ -98,7 +97,6 @@ export class WalletCoreWrapper { } buildCosmosUnsignedTx(jsonStr) { const req = JSON.parse(jsonStr); - console.log(req); const message = this.TW.Cosmos.Proto.Message.create({ sendCoinsMessage: this.TW.Cosmos.Proto.Message.Send.create({ fromAddress: req.fromAddress, @@ -137,7 +135,6 @@ export class WalletCoreWrapper { } buildNearUnsignedTx(jsonStr) { const req = JSON.parse(jsonStr); - console.log(req); const action = this.TW.NEAR.Proto.Action.create({ transfer: this.TW.NEAR.Proto.Transfer.create({ deposit: this.HexCoding.decode(req.transferAmount) @@ -151,7 +148,6 @@ export class WalletCoreWrapper { actions: [action], publicKey: this.HexCoding.decode(req.publicKey), }; - console.log(input); return this.TW.NEAR.Proto.SigningInput.encode(input).finish(); } buildNearUnsignedMessage(txInput) { @@ -161,7 +157,6 @@ export class WalletCoreWrapper { } buildStellarUnsignedTx(jsonStr) { const req = JSON.parse(jsonStr); - console.log(req); const opPayment = TW.Stellar.Proto.OperationPayment.create({ destination: req.destination, amount: Long.fromString(String(req.amount)), @@ -177,7 +172,6 @@ export class WalletCoreWrapper { opPayment: opPayment, memoText: memoText }; - console.log(input); return this.TW.Stellar.Proto.SigningInput.encode(input).finish(); } buildStellarUnsignedMessage(txInput) { @@ -185,6 +179,30 @@ export class WalletCoreWrapper { const out = this.TW.TxCompiler.Proto.PreSigningOutput.decode(preimage); return out.dataHash; } + buildEVMUnsignedTx(jsonStr) { + const req = JSON.parse(jsonStr); + const opPayment = TW.Stellar.Proto.OperationPayment.create({ + destination: req.destination, + amount: Long.fromString(String(req.amount)), + }); + const memoText = this.TW.Stellar.Proto.MemoText.create({ + text: req.memoText + }); + const input = { + fee: req.fee, + account: req.account, + passphrase: 'Public Global Stellar Network ; September 2015', + sequence: Long.fromString(String(req.sequence)), + opPayment: opPayment, + memoText: memoText + }; + return this.TW.Stellar.Proto.SigningInput.encode(input).finish(); + } + buildEVMUnsignedMessage(txInput) { + const preimage = this.preImageHashes(this.CoinType.stellar, txInput); + const out = this.TW.TxCompiler.Proto.PreSigningOutput.decode(preimage); + return out.dataHash; + } marshalInput(input) { return input.finish(); } diff --git a/wasmjs/dist/test/tw.test.js b/wasmjs/dist/test/tw.test.js deleted file mode 100644 index cdd6d6cc794..00000000000 --- a/wasmjs/dist/test/tw.test.js +++ /dev/null @@ -1,121 +0,0 @@ -import { describe, it, expect, beforeAll } from 'vitest'; -import { WalletCoreWrapper, initWasm } from "../src"; -import Long from "long"; -let wallet; -beforeAll(async () => { - const core = await initWasm(); - wallet = await new WalletCoreWrapper(core); -}); -describe("Aptos", () => { - it("compile signature", async () => { - const jsonString = JSON.stringify({ - chainId: 33, - sender: "0x07968dab936c1bad187c60ce4082f307d030d780e91e694ae03aef16aba73f30", - sequenceNumber: 99, - ttl: 3664390082, - maxGasAmount: 3296766, - gasUnitPrice: 100, - toAddress: "0x07968dab936c1bad187c60ce4082f307d030d780e91e694ae03aef16aba73f30", - amount: 1000 - }); - const inputBytes = wallet.buildAptosUnsignedTx(jsonString); - const preimageHash = wallet.preImageHashes(wallet.CoinType.aptos, inputBytes); - expect(preimageHash.length).toBeGreaterThan(0); - let sigHash = wallet.buildAptosUnsignedMessage(inputBytes); - console.log('sigHash raw:', (sigHash)); - const sigHex = '5707246db31e2335edc4316a7a656a11691d1d1647f6e864d1ab12f43428aaaf806cf02120d0b608cdd89c5c904af7b137432aacdd60cc53f9fad7bd33578e01'; - const pubHex = 'ea526ba1710343d953461ff68641f1b7df5f23b9042ffa2d2a798d3adb3f3d6c'; - const signingOutput = wallet.compileWithSignatures(wallet.CoinType.aptos, inputBytes, [sigHex], [pubHex]); - const decoded = wallet.TW.Aptos.Proto.SigningOutput.decode(signingOutput); - expect(decoded.encoded.length).toBeGreaterThan(0); - }); - it("test sign aptos", async () => { - const txInput = wallet.TW.Aptos.Proto.SigningInput.create({ - chainId: 33, - sender: "0x07968dab936c1bad187c60ce4082f307d030d780e91e694ae03aef16aba73f30", - transfer: wallet.TW.Aptos.Proto.TransferMessage.create({ - amount: new Long(1000), - to: "0x07968dab936c1bad187c60ce4082f307d030d780e91e694ae03aef16aba73f30" - }), - sequenceNumber: new Long(99), - expirationTimestampSecs: new Long(3664390082), - gasUnitPrice: new Long(100), - maxGasAmount: new Long(3296766), - privateKey: wallet.createWithData("0x5d996aa76b3212142792d9130796cd2e11e3c445a93118c08414df4f66bc60ec") - }); - const inputBytes = wallet.TW.Aptos.Proto.SigningInput.encode(txInput).finish(); - const signed = wallet.anySign(inputBytes, wallet.CoinType.aptos); - const decoded = wallet.TW.Aptos.Proto.SigningOutput.decode(signed); - expect(wallet.encodeHex(decoded.encoded)).to.equal("0x07968dab936c1bad187c60ce4082f307d030d780e91e694ae03aef16aba73f3063000000000000000200000000000000000000000000000000000000000000000000000000000000010d6170746f735f6163636f756e74087472616e7366657200022007968dab936c1bad187c60ce4082f307d030d780e91e694ae03aef16aba73f3008e803000000000000fe4d3200000000006400000000000000c2276ada00000000210020ea526ba1710343d953461ff68641f1b7df5f23b9042ffa2d2a798d3adb3f3d6c405707246db31e2335edc4316a7a656a11691d1d1647f6e864d1ab12f43428aaaf806cf02120d0b608cdd89c5c904af7b137432aacdd60cc53f9fad7bd33578e01"); - }); -}); -describe("Cardano", () => { - it("compile signature", async () => { - const jsonString = '{\"address\":\"\",\"toAddress\":\"addr1q90uh2eawrdc9vaemftgd50l28yrh9lqxtjjh4z6dnn0u7ggasexxdyyk9f05atygnjlccsjsggtc87hhqjna32fpv5qeq96ls\",\"changeAddress\":\"addr1qx55ymlqemndq8gluv40v58pu76a2tp4mzjnyx8n6zrp2vtzrs43a0057y0edkn8lh9su8vh5lnhs4npv6l9tuvncv8swc7t08\",\"amount\":3000000,\"ttl\":190000000,\"utxos\":[{\"tx_hash\":\"gxblAH1h+5BlLKu0EUGXKji1vGCVTWAs+ENHaqP2f2M=\",\"output_index\":0,\"address\":\"Ae2tdPwUPEZ6vkqxSjJxaQYmDxHf5DTnxtZ67pFLJGTb9LTnCGkDP6ca3f8\",\"amount\":2500000},{\"tx_hash\":\"4pOSxZyQP++5BXMFh9IsrovaML2Nmu7D7KCCrndnWUY=\",\"output_index\":0,\"address\":\"Ae2tdPwUPEZ6vkqxSjJxaQYmDxHf5DTnxtZ67pFLJGTb9LTnCGkDP6ca3f8\",\"amount\":1700000}]}'; - const inputBytes = wallet.buildCardanoUnsignedTx(jsonString); - const preimageHash = wallet.preImageHashes(wallet.CoinType.cardano, inputBytes); - expect(preimageHash.length).toBeGreaterThan(0); - let sigHash = wallet.buildCardanoUnsignedMessage(inputBytes); - console.log('sigHash raw:', (sigHash)); - const sigHex = '6a23ab9267867fbf021c1cb2232bc83d2cdd663d651d22d59b6cddbca5cb106d4db99da50672f69a2309ca8a329a3f9576438afe4538b013de4591a6dfcd4d09'; - const pubHex = 'd163c8c4f0be7c22cd3a1152abb013c855ea614b92201497a568c5d93ceeb41ea7f484aa383806735c46fd769c679ee41f8952952036a6e2338ada940b8a91f40b5aaa6103dc10842894a1eeefc5447b9bcb9bcf227d77e57be195d17bc03263d46f19d0fbf75afb0b9a24e31d533f4fd74cee3b56e162568e8defe37123afc4'; - const signingOutput = wallet.compileWithSignatures(wallet.CoinType.cardano, inputBytes, [sigHex], [pubHex]); - const decoded = wallet.TW.Cardano.Proto.SigningOutput.decode(signingOutput); - expect(decoded.encoded.length).toBeGreaterThan(0); - const txencoded = wallet.encodeHex(decoded.encoded); - expect(txencoded).to.equal("0x83a400828258208316e5007d61fb90652cabb41141972a38b5bc60954d602cf843476aa3f67f6300825820e29392c59c903fefb905730587d22cae8bda30bd8d9aeec3eca082ae77675946000182825839015fcbab3d70db82b3b9da5686d1ff51c83b97e032e52bd45a6ce6fe7908ec32633484b152fa756444e5fc62128210bc1fd7b8253ec5490b281a002dc6c082583901a9426fe0cee6d01d1fe32af650e1e7b5d52c35d8a53218f3d0861531621c2b1ebdf4f11f96da67fdcb0e1d97a7e778566166be55f193c30f1a000f9ec1021a0002b0bf031a0b532b80a20081825820d163c8c4f0be7c22cd3a1152abb013c855ea614b92201497a568c5d93ceeb41e58406a23ab9267867fbf021c1cb2232bc83d2cdd663d651d22d59b6cddbca5cb106d4db99da50672f69a2309ca8a329a3f9576438afe4538b013de4591a6dfcd4d090281845820d163c8c4f0be7c22cd3a1152abb013c855ea614b92201497a568c5d93ceeb41e58406a23ab9267867fbf021c1cb2232bc83d2cdd663d651d22d59b6cddbca5cb106d4db99da50672f69a2309ca8a329a3f9576438afe4538b013de4591a6dfcd4d095820a7f484aa383806735c46fd769c679ee41f8952952036a6e2338ada940b8a91f441a0f6"); - }); -}); -describe("Cosmos", () => { - it("compile signature", async () => { - const jsonString = "{\"chainId\":\"cosmoshub-4\",\"fromAddress\":\"cosmos1mky69cn8ektwy0845vec9upsdphktxt03gkwlx\",\"toAddress\":\"cosmos18s0hdnsllgcclweu9aymw4ngktr2k0rkygdzdp\",\"amount\":\"400000\",\"denom\":\"uatom\",\"memo\":\"\",\"gas\":200000,\"gasAmount\":\"1000\",\"gasDenom\":\"uatom\",\"publicKey\":\"02ecef5ce437a302c67f95468de4b31f36e911f467d7e6a52b41c1e13e1d563649\",\"accountNumber\":546179,\"sequence\":0}"; - const inputBytes = wallet.buildCosmosUnsignedTx(jsonString); - console.log('Inputbytes:', inputBytes); - const preimageHash = wallet.preImageHashes(wallet.CoinType.cosmos, inputBytes); - expect(preimageHash.length).toBeGreaterThan(0); - let sigHash = wallet.buildCosmosUnsignedMessage(inputBytes); - console.log('sigHash raw:', wallet.encodeHex(sigHash)); - const sigHex = 'afbd513a776f4fdf470ef7f9675f21ae9d630fc4d635d8dbaa0dc0a716434cd07e02510765d4673dfa880825bae8e67cb367396ff6b976fc6b19a31fc95e8097'; - const pubHex = '02ecef5ce437a302c67f95468de4b31f36e911f467d7e6a52b41c1e13e1d563649'; - const signingOutput = wallet.compileWithSignatures(wallet.CoinType.cosmos, inputBytes, [sigHex], [pubHex]); - const decoded = wallet.TW.Cosmos.Proto.SigningOutput.decode(signingOutput); - console.log(decoded); - expect(decoded.json.length).toBeGreaterThan(0); - }); -}); -describe("NEAR", () => { - it("compile signature", async () => { - const jsonStr = "{\"signerId\":\"test.near\",\"nonce\":1,\"receiverId\":\"whatever.near\",\"blockHash\":\"0fa473fd26901df296be6adc4cc4df34d040efa2435224b6986910e630c2fef6\",\"publicKey\":\"917b3d268d4b58f7fec1b150bd68d69be3ee5d4cc39855e341538465bb77860d\",\"transferAmount\":\"01000000000000000000000000000000\"}"; - const inputBytes = wallet.buildNearUnsignedTx(jsonStr); - console.log('Inputbytes:', inputBytes.length); - console.log('Inputbytes:', wallet.encodeHex(inputBytes)); - const preimageHash = wallet.preImageHashes(wallet.CoinType.near, inputBytes); - expect(preimageHash.length).toBeGreaterThan(0); - console.log('preimageHash raw:', wallet.encodeHex(preimageHash)); - let sigHash = wallet.buildNearUnsignedMessage(inputBytes); - console.log('sigHash raw:', wallet.encodeHex(sigHash)); - const sigHex = '969a83332186ee9755e4839325525806e189a3d2d2bb4b4760e94443e97e1c4f22deeef0059a8e9713100eda6e19144da7e8a0ef7e539b20708ba1d8d021bd01'; - const pubHex = '917b3d268d4b58f7fec1b150bd68d69be3ee5d4cc39855e341538465bb77860d'; - const signingOutput = wallet.compileWithSignatures(wallet.CoinType.near, inputBytes, [sigHex], [pubHex]); - const decoded = wallet.TW.NEAR.Proto.SigningOutput.decode(signingOutput); - expect(decoded.signedTransaction.length).toBeGreaterThan(0); - }); -}); -describe("Stellar", () => { - it("compile signature", async () => { - const jsonStr = "{\"signerId\":\"test.near\",\"nonce\":1,\"receiverId\":\"whatever.near\",\"blockHash\":\"0fa473fd26901df296be6adc4cc4df34d040efa2435224b6986910e630c2fef6\",\"publicKey\":\"917b3d268d4b58f7fec1b150bd68d69be3ee5d4cc39855e341538465bb77860d\",\"transferAmount\":\"01000000000000000000000000000000\"}"; - const inputBytes = wallet.buildNearUnsignedTx(jsonStr); - console.log('Inputbytes:', inputBytes.length); - console.log('Inputbytes:', wallet.encodeHex(inputBytes)); - const preimageHash = wallet.preImageHashes(wallet.CoinType.near, inputBytes); - expect(preimageHash.length).toBeGreaterThan(0); - console.log('preimageHash raw:', wallet.encodeHex(preimageHash)); - let sigHash = wallet.buildNearUnsignedMessage(inputBytes); - console.log('sigHash raw:', wallet.encodeHex(sigHash)); - const sigHex = '969a83332186ee9755e4839325525806e189a3d2d2bb4b4760e94443e97e1c4f22deeef0059a8e9713100eda6e19144da7e8a0ef7e539b20708ba1d8d021bd01'; - const pubHex = '917b3d268d4b58f7fec1b150bd68d69be3ee5d4cc39855e341538465bb77860d'; - const signingOutput = wallet.compileWithSignatures(wallet.CoinType.near, inputBytes, [sigHex], [pubHex]); - const decoded = wallet.TW.NEAR.Proto.SigningOutput.decode(signingOutput); - expect(decoded.signedTransaction.length).toBeGreaterThan(0); - }); -}); diff --git a/wasmjs/package.json b/wasmjs/package.json index 653d969d461..eb780774577 100644 --- a/wasmjs/package.json +++ b/wasmjs/package.json @@ -1,8 +1,9 @@ { "name": "craminiumlab-wasmjs", - "version": "1.0.0", + "version": "1.0.4", "description": "", - "main": "src/index.ts", + "main": "dist/index.js", + "types": "dist/index.d.ts", "type": "module", "scripts": { "build": "tsc", diff --git a/wasmjs/src/index.ts b/wasmjs/src/index.ts index f1f5f23a091..eda60f5acfb 100644 --- a/wasmjs/src/index.ts +++ b/wasmjs/src/index.ts @@ -236,9 +236,34 @@ export class WalletCoreWrapper { return out.dataHash } - marshalInput(input: protobuf.Writer): Uint8Array { - return input.finish(); + buildEVMUnsignedTx(jsonStr: string): Uint8Array { + const req = JSON.parse(jsonStr); + + const opPayment = TW.Stellar.Proto.OperationPayment.create({ + destination: req.destination, + amount: Long.fromString(String(req.amount)), + }) + const memoText = this.TW.Stellar.Proto.MemoText.create({ + text: req.memoText + }) + const input = { + fee : req.fee, + account: req.account, + passphrase: 'Public Global Stellar Network ; September 2015', + sequence: Long.fromString(String(req.sequence)), + opPayment: opPayment, + memoText: memoText + }; + return this.TW.Stellar.Proto.SigningInput.encode(input).finish(); } + buildEVMUnsignedMessage(txInput: Uint8Array): Uint8Array { + const preimage = this.preImageHashes(this.CoinType.stellar, txInput); + const out = this.TW.TxCompiler.Proto.PreSigningOutput.decode(preimage) + return out.dataHash + } + marshalInput(input: protobuf.Writer): Uint8Array { + return input.finish(); + } } \ No newline at end of file diff --git a/wasmjs/tsconfig.json b/wasmjs/tsconfig.json index 35147c5d66c..796293cc400 100644 --- a/wasmjs/tsconfig.json +++ b/wasmjs/tsconfig.json @@ -1,12 +1,13 @@ { "compilerOptions": { - "target": "ES2020", "module": "ESNext", - "moduleResolution": "Bundler", // or "NodeNext" + "target": "ES2020", + "moduleResolution": "node", + "outDir": "dist", + "declaration": true, "esModuleInterop": true, "strict": true, - "skipLibCheck": true, - "outDir": "dist", + "skipLibCheck": true }, - "include": ["src", "test"] + "include": ["src/**/*"] } From d44b4458f97a000d86eb081936c7b1a4c70a78a1 Mon Sep 17 00:00:00 2001 From: nguyen-zung Date: Tue, 22 Jul 2025 17:20:07 +0700 Subject: [PATCH 2/3] remove unused file --- wasmjs/craminiumlab-wasmjs-1.0.1.tgz | Bin 6057 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 wasmjs/craminiumlab-wasmjs-1.0.1.tgz diff --git a/wasmjs/craminiumlab-wasmjs-1.0.1.tgz b/wasmjs/craminiumlab-wasmjs-1.0.1.tgz deleted file mode 100644 index 481cc524d7b91abc51a5efaf49d2fcfe5ecb87d3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6057 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 From b1f55840fcbda163ee5b27d8c4fcacaf0f69c24a Mon Sep 17 00:00:00 2001 From: nguyen-zung Date: Tue, 22 Jul 2025 17:24:18 +0700 Subject: [PATCH 3/3] remove unused code --- wasmjs/src/index.ts | 27 --------------------------- 1 file changed, 27 deletions(-) diff --git a/wasmjs/src/index.ts b/wasmjs/src/index.ts index eda60f5acfb..e2dc35023be 100644 --- a/wasmjs/src/index.ts +++ b/wasmjs/src/index.ts @@ -236,33 +236,6 @@ export class WalletCoreWrapper { return out.dataHash } - buildEVMUnsignedTx(jsonStr: string): Uint8Array { - const req = JSON.parse(jsonStr); - - const opPayment = TW.Stellar.Proto.OperationPayment.create({ - destination: req.destination, - amount: Long.fromString(String(req.amount)), - }) - const memoText = this.TW.Stellar.Proto.MemoText.create({ - text: req.memoText - }) - const input = { - fee : req.fee, - account: req.account, - passphrase: 'Public Global Stellar Network ; September 2015', - sequence: Long.fromString(String(req.sequence)), - opPayment: opPayment, - memoText: memoText - }; - return this.TW.Stellar.Proto.SigningInput.encode(input).finish(); - } - - buildEVMUnsignedMessage(txInput: Uint8Array): Uint8Array { - const preimage = this.preImageHashes(this.CoinType.stellar, txInput); - const out = this.TW.TxCompiler.Proto.PreSigningOutput.decode(preimage) - return out.dataHash - } - marshalInput(input: protobuf.Writer): Uint8Array { return input.finish(); }