lunesjs 1.7.0 → 1.7.1
Sign up to get free protection for your applications and to get access to all the features.
- package/lib/index.d.ts +1 -1
- package/lib/index.js +2 -2
- package/lib/tx/transfer/{service.transfer.d.ts → transfer.service.d.ts} +24 -2
- package/lib/tx/transfer/{service.transfer.js → transfer.service.js} +18 -3
- package/lib/tx/transfer/utils.d.ts +26 -1
- package/lib/tx/transfer/utils.js +51 -1
- package/package.json +1 -1
package/lib/index.d.ts
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
import { transferTokenFactory } from "./tx/transfer/service
|
1
|
+
import { transferTokenFactory } from "./tx/transfer/transfer.service";
|
2
2
|
import { walletFactory } from "./wallet/wallet.service";
|
3
3
|
declare const _default: {
|
4
4
|
transferTokenFactory: typeof transferTokenFactory;
|
package/lib/index.js
CHANGED
@@ -1,10 +1,10 @@
|
|
1
1
|
"use strict";
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
-
const
|
3
|
+
const transfer_service_1 = require("./tx/transfer/transfer.service");
|
4
4
|
const wallet_service_1 = require("./wallet/wallet.service");
|
5
5
|
const crypto_1 = require("./utils/crypto");
|
6
6
|
exports.default = {
|
7
|
-
transferTokenFactory:
|
7
|
+
transferTokenFactory: transfer_service_1.transferTokenFactory,
|
8
8
|
walletFactory: wallet_service_1.walletFactory,
|
9
9
|
crypto: crypto_1.crypto
|
10
10
|
};
|
@@ -20,17 +20,39 @@ export declare class TransferToken {
|
|
20
20
|
assetId: string;
|
21
21
|
amount: number;
|
22
22
|
sender: string;
|
23
|
+
type: number;
|
23
24
|
fee: number;
|
24
25
|
};
|
25
26
|
sign(privateKey: string): TransferToken;
|
27
|
+
broadcast(node?: string): Promise<{
|
28
|
+
isSuccess: boolean;
|
29
|
+
response: {
|
30
|
+
senderPublicKey: string;
|
31
|
+
timestamp: number;
|
32
|
+
signature: string;
|
33
|
+
recipient: string;
|
34
|
+
feeAsset: string;
|
35
|
+
assetId: string;
|
36
|
+
sender: string;
|
37
|
+
amount: number;
|
38
|
+
type: number;
|
39
|
+
fee: number;
|
40
|
+
id: string;
|
41
|
+
};
|
42
|
+
} | {
|
43
|
+
isSuccess: boolean;
|
44
|
+
response: {
|
45
|
+
codeError: number;
|
46
|
+
message: string;
|
47
|
+
};
|
48
|
+
}>;
|
26
49
|
}
|
27
50
|
export declare type Transfer = {
|
28
51
|
senderPublicKey: string;
|
52
|
+
receiverAddress: string;
|
29
53
|
timestamp?: number;
|
30
54
|
feeAsset?: string;
|
31
|
-
receiver: string;
|
32
55
|
assetId?: string;
|
33
|
-
sender?: string;
|
34
56
|
chain?: number;
|
35
57
|
amount: number;
|
36
58
|
fee?: number;
|
@@ -22,10 +22,19 @@ var __importStar = (this && this.__importStar) || function (mod) {
|
|
22
22
|
__setModuleDefault(result, mod);
|
23
23
|
return result;
|
24
24
|
};
|
25
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
26
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
27
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
28
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
29
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
30
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
31
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
32
|
+
});
|
33
|
+
};
|
25
34
|
Object.defineProperty(exports, "__esModule", { value: true });
|
26
35
|
exports.transferTokenFactory = exports.TransferToken = void 0;
|
27
|
-
const crypto_1 = require("../../utils/crypto");
|
28
36
|
const utils_1 = require("./utils");
|
37
|
+
const crypto_1 = require("../../utils/crypto");
|
29
38
|
const wasm = __importStar(require("lunesrs"));
|
30
39
|
class TransferToken {
|
31
40
|
constructor(senderPublicKey, timestamp, receiver, feeAsset, assetId, amount, sender, fee) {
|
@@ -51,6 +60,7 @@ class TransferToken {
|
|
51
60
|
assetId: this.assetId,
|
52
61
|
amount: this.amount,
|
53
62
|
sender: this.sender,
|
63
|
+
type: this.type,
|
54
64
|
fee: this.fee
|
55
65
|
};
|
56
66
|
}
|
@@ -58,6 +68,11 @@ class TransferToken {
|
|
58
68
|
this.signature = (0, utils_1.signTransfer)(privateKey, this);
|
59
69
|
return this;
|
60
70
|
}
|
71
|
+
broadcast(node) {
|
72
|
+
return __awaiter(this, void 0, void 0, function* () {
|
73
|
+
return yield (0, utils_1.broadcastTransfer)(node != undefined ? node : "https://lunesnode-testnet.lunes.io", this);
|
74
|
+
});
|
75
|
+
}
|
61
76
|
}
|
62
77
|
exports.TransferToken = TransferToken;
|
63
78
|
function transferTokenFactory(tx) {
|
@@ -76,9 +91,9 @@ function transferTokenFactory(tx) {
|
|
76
91
|
if (fee < 100000) {
|
77
92
|
throw new Error(`Fee should be greater than 100000, but ${fee}`);
|
78
93
|
}
|
79
|
-
if (crypto_1.crypto.sameChainAddress(tx.
|
94
|
+
if (crypto_1.crypto.sameChainAddress(tx.receiverAddress, sender) != true) {
|
80
95
|
throw new Error("Sender AND Receiver should be same chain");
|
81
96
|
}
|
82
|
-
return new TransferToken(tx.senderPublicKey, timestamp, tx.
|
97
|
+
return new TransferToken(tx.senderPublicKey, timestamp, tx.receiverAddress, feeAsset, assetId, Math.floor(tx.amount * 10e7), sender, fee);
|
83
98
|
}
|
84
99
|
exports.transferTokenFactory = transferTokenFactory;
|
@@ -1,3 +1,28 @@
|
|
1
|
-
import { TransferToken } from "./service
|
1
|
+
import { TransferToken } from "./transfer.service";
|
2
2
|
export declare function serializeTransfer(tx: TransferToken): Uint8Array;
|
3
3
|
export declare function signTransfer(senderPrivateKey: string, tx: TransferToken): string;
|
4
|
+
export declare function broadcastTransfer(node: string, tx: TransferToken): Promise<TransferSuccess | TransferFail>;
|
5
|
+
declare type TransferSuccess = {
|
6
|
+
isSuccess: boolean;
|
7
|
+
response: {
|
8
|
+
senderPublicKey: string;
|
9
|
+
timestamp: number;
|
10
|
+
signature: string;
|
11
|
+
recipient: string;
|
12
|
+
feeAsset: string;
|
13
|
+
assetId: string;
|
14
|
+
sender: string;
|
15
|
+
amount: number;
|
16
|
+
type: number;
|
17
|
+
fee: number;
|
18
|
+
id: string;
|
19
|
+
};
|
20
|
+
};
|
21
|
+
declare type TransferFail = {
|
22
|
+
isSuccess: boolean;
|
23
|
+
response: {
|
24
|
+
codeError: number;
|
25
|
+
message: string;
|
26
|
+
};
|
27
|
+
};
|
28
|
+
export {};
|
package/lib/tx/transfer/utils.js
CHANGED
@@ -22,9 +22,22 @@ var __importStar = (this && this.__importStar) || function (mod) {
|
|
22
22
|
__setModuleDefault(result, mod);
|
23
23
|
return result;
|
24
24
|
};
|
25
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
26
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
27
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
28
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
29
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
30
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
31
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
32
|
+
});
|
33
|
+
};
|
34
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
35
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
36
|
+
};
|
25
37
|
Object.defineProperty(exports, "__esModule", { value: true });
|
26
|
-
exports.signTransfer = exports.serializeTransfer = void 0;
|
38
|
+
exports.broadcastTransfer = exports.signTransfer = exports.serializeTransfer = void 0;
|
27
39
|
const wasm = __importStar(require("lunesrs"));
|
40
|
+
const axios_1 = __importDefault(require("axios"));
|
28
41
|
function serializeTransfer(tx) {
|
29
42
|
const tokenId = tx.assetId != ""
|
30
43
|
? new Uint8Array([1, ...wasm.base58ToArray(tx.assetId)])
|
@@ -49,3 +62,40 @@ function signTransfer(senderPrivateKey, tx) {
|
|
49
62
|
return wasm.arrayToBase58(wasm.fastSignature(wasm.base58ToArray(senderPrivateKey), wasm.base58ToArray(tx.message)));
|
50
63
|
}
|
51
64
|
exports.signTransfer = signTransfer;
|
65
|
+
function broadcastTransfer(node, tx) {
|
66
|
+
return __awaiter(this, void 0, void 0, function* () {
|
67
|
+
return new Promise((resolve) => __awaiter(this, void 0, void 0, function* () {
|
68
|
+
axios_1.default
|
69
|
+
.post(`${node}/transactions/broadcast`, tx.transaction())
|
70
|
+
.then((res) => {
|
71
|
+
const x = {
|
72
|
+
isSuccess: true,
|
73
|
+
response: {
|
74
|
+
senderPublicKey: res.data.senderPublicKey,
|
75
|
+
timestamp: res.data.timestamp,
|
76
|
+
signature: res.data.signature,
|
77
|
+
recipient: res.data.recipient,
|
78
|
+
feeAsset: res.data.feeAsset,
|
79
|
+
assetId: res.data.assetId,
|
80
|
+
sender: res.data.sender,
|
81
|
+
amount: res.data.amount,
|
82
|
+
type: res.data.type,
|
83
|
+
fee: res.data.fee,
|
84
|
+
id: res.data.id
|
85
|
+
}
|
86
|
+
};
|
87
|
+
resolve(x);
|
88
|
+
})
|
89
|
+
.catch(erro => {
|
90
|
+
resolve({
|
91
|
+
isSuccess: false,
|
92
|
+
response: {
|
93
|
+
codeError: erro.response.data.error,
|
94
|
+
message: erro.response.data.message
|
95
|
+
}
|
96
|
+
});
|
97
|
+
});
|
98
|
+
}));
|
99
|
+
});
|
100
|
+
}
|
101
|
+
exports.broadcastTransfer = broadcastTransfer;
|