@suilend/sui-fe 0.2.95 → 0.2.96
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/lib/keypair.js +9 -7
- package/lib/transactions.d.ts +1 -1
- package/lib/transactions.js +8 -4
- package/package.json +1 -1
package/lib/keypair.js
CHANGED
|
@@ -45,9 +45,9 @@ const checkIfKeypairCanBeUsed = (lastSignedTransaction, currentFlowDigests, keyp
|
|
|
45
45
|
return { lastCurrentFlowTransaction: undefined };
|
|
46
46
|
}
|
|
47
47
|
else {
|
|
48
|
-
const
|
|
49
|
-
console.log("[checkIfKeypairCanBeUsed]
|
|
50
|
-
if (
|
|
48
|
+
const mostRecentFromOrToAddressTransaction = yield (0, transactions_2.getMostRecentFromOrToAddressTransaction)(suiClient, keypair.toSuiAddress());
|
|
49
|
+
console.log("[checkIfKeypairCanBeUsed] mostRecentFromOrToAddressTransaction:", mostRecentFromOrToAddressTransaction, "lastSignedTransaction:", lastSignedTransaction, "currentFlowDigests:", currentFlowDigests);
|
|
50
|
+
if (mostRecentFromOrToAddressTransaction === undefined) {
|
|
51
51
|
// Non-empty wallet with no FROM transactions
|
|
52
52
|
// CONTINUE
|
|
53
53
|
return { lastCurrentFlowTransaction: undefined };
|
|
@@ -55,15 +55,17 @@ const checkIfKeypairCanBeUsed = (lastSignedTransaction, currentFlowDigests, keyp
|
|
|
55
55
|
else {
|
|
56
56
|
// Non-empty wallet with FROM transactions
|
|
57
57
|
if ((lastSignedTransaction !== undefined &&
|
|
58
|
-
((_b = (_a =
|
|
59
|
-
currentFlowDigests.includes(
|
|
58
|
+
((_b = (_a = mostRecentFromOrToAddressTransaction.transaction) === null || _a === void 0 ? void 0 : _a.txSignatures) !== null && _b !== void 0 ? _b : []).includes(lastSignedTransaction.signature)) ||
|
|
59
|
+
currentFlowDigests.includes(mostRecentFromOrToAddressTransaction.digest)) {
|
|
60
60
|
// Retrying current flow
|
|
61
61
|
// CONTINUE
|
|
62
|
-
return {
|
|
62
|
+
return {
|
|
63
|
+
lastCurrentFlowTransaction: mostRecentFromOrToAddressTransaction,
|
|
64
|
+
};
|
|
63
65
|
}
|
|
64
66
|
else {
|
|
65
67
|
// Previous flow
|
|
66
|
-
const timestampMs =
|
|
68
|
+
const timestampMs = mostRecentFromOrToAddressTransaction.timestampMs;
|
|
67
69
|
const isRecent = !!timestampMs && +timestampMs > Date.now() - 1000 * 60 * 2; // Less than 2 minutes ago
|
|
68
70
|
console.log("[checkIfKeypairCanBeUsed] isRecent:", isRecent, timestampMs, Date.now() - 1000 * 60 * 2);
|
|
69
71
|
if (isRecent) {
|
package/lib/transactions.d.ts
CHANGED
|
@@ -5,4 +5,4 @@ export declare const getTotalGasFee: (res: SuiTransactionBlockResponse) => BigNu
|
|
|
5
5
|
export declare const getBalanceChange: (res: SuiTransactionBlockResponse, address: string, token: Token, multiplier?: -1 | 1) => BigNumber | undefined;
|
|
6
6
|
export declare const getAllOwnedObjects: (suiClient: SuiClient, address: string, filter?: SuiObjectDataFilter) => Promise<SuiObjectResponse[]>;
|
|
7
7
|
export declare const getAllCoins: (suiClient: SuiClient, address: string, coinType: string) => Promise<import("@mysten/sui/client").CoinStruct[]>;
|
|
8
|
-
export declare const
|
|
8
|
+
export declare const getMostRecentFromOrToAddressTransaction: (suiClient: SuiClient, address: string) => Promise<SuiTransactionBlockResponse | undefined>;
|
package/lib/transactions.js
CHANGED
|
@@ -12,7 +12,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
12
12
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
13
|
};
|
|
14
14
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
-
exports.
|
|
15
|
+
exports.getMostRecentFromOrToAddressTransaction = exports.getAllCoins = exports.getAllOwnedObjects = exports.getBalanceChange = exports.getTotalGasFee = void 0;
|
|
16
16
|
const utils_1 = require("@mysten/sui/utils");
|
|
17
17
|
const bignumber_js_1 = __importDefault(require("bignumber.js"));
|
|
18
18
|
const coinType_1 = require("./coinType");
|
|
@@ -75,13 +75,17 @@ const getAllCoins = (suiClient, address, coinType) => __awaiter(void 0, void 0,
|
|
|
75
75
|
return allCoins;
|
|
76
76
|
});
|
|
77
77
|
exports.getAllCoins = getAllCoins;
|
|
78
|
-
const
|
|
78
|
+
const getMostRecentFromOrToAddressTransaction = (suiClient, address) => __awaiter(void 0, void 0, void 0, function* () {
|
|
79
79
|
const allTransactions = [];
|
|
80
80
|
let cursor = null;
|
|
81
81
|
let hasNextPage = true;
|
|
82
82
|
while (hasNextPage) {
|
|
83
83
|
const transactions = yield suiClient.queryTransactionBlocks({
|
|
84
|
-
filter: {
|
|
84
|
+
filter: {
|
|
85
|
+
FromOrToAddress: {
|
|
86
|
+
addr: address,
|
|
87
|
+
},
|
|
88
|
+
},
|
|
85
89
|
cursor,
|
|
86
90
|
limit: 1,
|
|
87
91
|
order: "descending",
|
|
@@ -95,4 +99,4 @@ const getMostRecentFromAddressTransaction = (suiClient, address) => __awaiter(vo
|
|
|
95
99
|
}
|
|
96
100
|
return allTransactions[0];
|
|
97
101
|
});
|
|
98
|
-
exports.
|
|
102
|
+
exports.getMostRecentFromOrToAddressTransaction = getMostRecentFromOrToAddressTransaction;
|
package/package.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"name":"@suilend/sui-fe","version":"0.2.
|
|
1
|
+
{"name":"@suilend/sui-fe","version":"0.2.96","private":false,"description":"A collection of TypeScript frontend libraries","author":"Suilend","license":"MIT","main":"./index.js","exports":{".":"./index.js","./lib/api":"./lib/api.js","./lib/coin":"./lib/coin.js","./lib/coinMetadata":"./lib/coinMetadata.js","./lib/coinType":"./lib/coinType.js","./lib/constants":"./lib/constants.js","./lib/format":"./lib/format.js","./lib":"./lib/index.js","./lib/indexedDB":"./lib/indexedDB.js","./lib/keypair":"./lib/keypair.js","./lib/msafe":"./lib/msafe.js","./lib/track":"./lib/track.js","./lib/transactions":"./lib/transactions.js"},"types":"./index.js","scripts":{"build":"rm -rf ./dist && bun tsc","eslint":"eslint --fix \"./src/**/*.ts\"","prettier":"prettier --write \"./src/**/*\"","lint":"bun eslint && bun prettier && bun tsc --noEmit","release":"bun run build && bun ts-node ./release.ts && cd ./dist && npm publish --access public"},"repository":{"type":"git","url":"git+https://github.com/suilend/sui-fe.git"},"bugs":{"url":"https://github.com/suilend/sui-fe/issues"},"dependencies":{"@mysten/wallet-standard":"0.14.7","@pythnetwork/pyth-sui-js":"^2.1.0","bignumber.js":"^9.1.2","lodash":"^4.17.21","mixpanel-browser":"^2.56.0","next":"^15.0.3","p-limit":"3.1.0"},"devDependencies":{"@tsconfig/recommended":"^1.0.8","@types/lodash":"^4.17.13","@types/mixpanel-browser":"^2.50.2","@types/node":"^22.9.0","@typescript-eslint/eslint-plugin":"^8.14.0","@typescript-eslint/parser":"^8.14.0","eslint":"^9.14.0","eslint-config-next":"^15.0.3","eslint-config-prettier":"^9.1.0","eslint-plugin-import":"^2.31.0","eslint-plugin-prettier":"^5.2.1","prettier":"^3.3.3","ts-node":"^10.9.2","typescript":"^5.6.3"},"peerDependencies":{"@mysten/sui":"1.28.2","date-fns":"^4.1.0"}}
|