Skip to content

Commit 695ab05

Browse files
author
Gunwoo Kim
committed
Make the engine sign transactions with secret key
1 parent ebd1074 commit 695ab05

File tree

2 files changed

+27
-25
lines changed

2 files changed

+27
-25
lines changed

server/engine/matching.ts

Lines changed: 12 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -20,9 +20,10 @@ const rpcServer: string = require("../config/dex.json").node[env].rpc;
2020
const sdk = new SDK({ server: rpcServer });
2121
const DEX_PLATFORM_ADDRESS = Config["dex-platform-address"];
2222
const DEX_ASSET_ADDRESS = Config["dex-asset-address"];
23-
const passpharase = Config["dex-passphrase"];
23+
// const passpharase = Config["dex-passphrase"];
2424
const FEE_RATE = Config["fee-rate"];
2525
const FEE_ASSET_TYPE = Config["fee-asset-type"];
26+
const DEX_SECRET = Config["dex-secret"];
2627

2728
interface MarketIndexSig {
2829
[key: string]: { id: number; asset1: string; asset2: string };
@@ -458,8 +459,8 @@ async function matchSame(
458459
const relayedRemainedAsset = isFeePayingOrder
459460
? relayedAmount - relayedOrder.assetQuantityFrom.value.toNumber()
460461
: relayedAmount -
461-
relayedOrder.assetQuantityFrom.value.toNumber() -
462-
relayedOrder.assetQuantityFee.value.toNumber();
462+
relayedOrder.assetQuantityFrom.value.toNumber() -
463+
relayedOrder.assetQuantityFee.value.toNumber();
463464
if (relayedRemainedAsset > 0) {
464465
transferTx.addOutputs({
465466
recipient: relayedOrderAddress,
@@ -548,10 +549,14 @@ async function matchSame(
548549
}
549550

550551
// Confirm the order transaction
551-
await sdk.rpc.chain.sendTransaction(transferTx, {
552-
account: DEX_PLATFORM_ADDRESS,
553-
passphrase: passpharase
554-
});
552+
const seq = await sdk.rpc.chain.getSeq(DEX_PLATFORM_ADDRESS);
553+
await sdk.rpc.chain.sendSignedTransaction(
554+
transferTx.sign({
555+
secret: DEX_SECRET,
556+
fee: 10,
557+
seq
558+
})
559+
);
555560
const transferTxResults = await sdk.rpc.chain.getTransactionResultsByTracker(
556561
transferTx.tracker(),
557562
{

server/engine/test/engine.test.ts

Lines changed: 15 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -2,25 +2,25 @@ import * as chai from "chai";
22
import { AssetAddress, H160 } from "codechain-primitives";
33
import { SDK } from "codechain-sdk";
44
import { Asset } from "codechain-sdk/lib/core/Asset";
5-
import { rpcServer } from "../../../app";
65
import * as Config from "../../config/dex.json";
76
import { controllers } from "../../controllers";
87
import db from "../../models";
98
import { submit } from "../matching";
109

1110
const expect = chai.expect;
12-
const DEX_ASSET_ADDRESS = Config["dex-asset-address"];
13-
const DEX_PLATFORM_ADDRESS = Config["dex-platform-address"];
14-
const DEX_PASSPHRASE = Config["dex-passphrase"];
11+
const ASSET_ADDRESS = Config["test-asset-address"];
12+
const PLATFORM_ADDRESS = Config["test-platform-address"];
13+
const PASSPHRASE = Config["test-passphrase"];
1514
const FEE_ASSET_TYPE = Config["fee-asset-type"];
1615

1716
describe("Order matching basic test", () => {
1817
let sdk: SDK;
1918
const shardId = 0;
2019

21-
before(async () => {
20+
before(async function () {
21+
this.timeout(50000);
2222
sdk = new SDK({
23-
server: rpcServer,
23+
server: "http://127.0.0.1:8080",
2424
networkId: "tc"
2525
});
2626

@@ -29,10 +29,7 @@ describe("Order matching basic test", () => {
2929
"ede1d4ccb4ec9a8bbbae9a13db3f4a7b56ea04189be86ac3a6a439d9a0a1addd";
3030
const ACCOUNT_PASSPHRASE = process.env.ACCOUNT_PASSPHRASE || "satoshi";
3131
try {
32-
await sdk.rpc.account.importRaw(
33-
ACCOUNT_SECRET,
34-
ACCOUNT_PASSPHRASE
35-
);
32+
await sdk.rpc.account.importRaw(ACCOUNT_SECRET, ACCOUNT_PASSPHRASE);
3633
} catch (error) {
3734
if (error.message !== "Already Exists") {
3835
console.error(error);
@@ -68,8 +65,8 @@ describe("Order matching basic test", () => {
6865
recipient: aliceAddress
6966
});
7067
await sdk.rpc.chain.sendTransaction(goldMintTx, {
71-
account: DEX_PLATFORM_ADDRESS,
72-
passphrase: DEX_PASSPHRASE
68+
account: PLATFORM_ADDRESS,
69+
passphrase: PASSPHRASE
7370
});
7471
const goldMintTxResults = await sdk.rpc.chain.getTransactionResultsByTracker(
7572
goldMintTx.tracker(),
@@ -100,8 +97,8 @@ describe("Order matching basic test", () => {
10097
recipient: bobAddress
10198
});
10299
await sdk.rpc.chain.sendTransaction(silverMintTx, {
103-
account: DEX_PLATFORM_ADDRESS,
104-
passphrase: DEX_PASSPHRASE
100+
account: PLATFORM_ADDRESS,
101+
passphrase: PASSPHRASE
105102
});
106103
const silverMintTxResults = await sdk.rpc.chain.getTransactionResultsByTracker(
107104
silverMintTx.tracker(),
@@ -121,11 +118,11 @@ describe("Order matching basic test", () => {
121118
shardId: 0,
122119
recipient: bobAddress,
123120
quantity: 1000,
124-
payer: DEX_PLATFORM_ADDRESS
121+
payer: PLATFORM_ADDRESS
125122
});
126123
const hash = await sdk.rpc.chain.sendTransaction(wrapCCC, {
127-
account: DEX_PLATFORM_ADDRESS,
128-
passphrase: DEX_PASSPHRASE
124+
account: PLATFORM_ADDRESS,
125+
passphrase: PASSPHRASE
129126
});
130127
const result = await sdk.rpc.chain.containsTransaction(hash);
131128
expect(result).to.equal(true);
@@ -167,7 +164,7 @@ describe("Order matching basic test", () => {
167164
expiration,
168165
originOutputs: [silverInput.prevOut, wcccInput.prevOut],
169166
recipientFrom: bobAddress,
170-
recipientFee: DEX_ASSET_ADDRESS
167+
recipientFee: ASSET_ADDRESS
171168
});
172169
await sdk.key.signTransactionInputWithOrder(silverInput, orderB);
173170
await sdk.key.signTransactionInputWithOrder(wcccInput, orderB);

0 commit comments

Comments
 (0)