@suilend/sui-fe 0.2.94 → 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.d.ts +3 -2
- package/lib/keypair.js +14 -11
- package/lib/transactions.d.ts +1 -1
- package/lib/transactions.js +8 -4
- package/package.json +1 -1
package/lib/keypair.d.ts
CHANGED
|
@@ -22,10 +22,11 @@ export declare const fundKeypair: (tokens: (Token & {
|
|
|
22
22
|
amount: BigNumber;
|
|
23
23
|
})[], keypair: Ed25519Keypair, signExecuteAndWaitForTransaction: (transaction: Transaction, options?: {
|
|
24
24
|
auction?: boolean;
|
|
25
|
-
}) =>
|
|
25
|
+
}, onSign?: (signedTransaction: SignatureWithBytes) => void, onExecute?: (res: SuiTransactionBlockResponse) => void) => Promise<SuiTransactionBlockResponse>, // From WalletContext
|
|
26
|
+
onSign?: (signedTransaction: SignatureWithBytes) => void, onExecute?: (res: SuiTransactionBlockResponse) => void) => Promise<{
|
|
26
27
|
res: SuiTransactionBlockResponse;
|
|
27
28
|
}>;
|
|
28
29
|
export type ReturnAllOwnedObjectsAndSuiToUserResult = {
|
|
29
30
|
res: SuiTransactionBlockResponse;
|
|
30
31
|
};
|
|
31
|
-
export declare const returnAllOwnedObjectsAndSuiToUser: (address: string, keypair: Ed25519Keypair, suiClient: SuiClient) => Promise<ReturnAllOwnedObjectsAndSuiToUserResult>;
|
|
32
|
+
export declare const returnAllOwnedObjectsAndSuiToUser: (address: string, keypair: Ed25519Keypair, suiClient: SuiClient, onSign?: (signedTransaction: SignatureWithBytes) => void, onExecute?: (res: SuiTransactionBlockResponse) => void) => Promise<ReturnAllOwnedObjectsAndSuiToUserResult>;
|
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) {
|
|
@@ -116,7 +118,8 @@ const keypairSignExecuteAndWaitForTransaction = (transaction, keypair, suiClient
|
|
|
116
118
|
return res2;
|
|
117
119
|
});
|
|
118
120
|
exports.keypairSignExecuteAndWaitForTransaction = keypairSignExecuteAndWaitForTransaction;
|
|
119
|
-
const fundKeypair = (tokens, keypair, signExecuteAndWaitForTransaction
|
|
121
|
+
const fundKeypair = (tokens, keypair, signExecuteAndWaitForTransaction, // From WalletContext
|
|
122
|
+
onSign, onExecute) => __awaiter(void 0, void 0, void 0, function* () {
|
|
120
123
|
console.log("[fundKeypair] tokens:", tokens.map((t) => ({
|
|
121
124
|
coinType: t.coinType,
|
|
122
125
|
amount: t.amount.toString(),
|
|
@@ -131,11 +134,11 @@ const fundKeypair = (tokens, keypair, signExecuteAndWaitForTransaction) => __awa
|
|
|
131
134
|
useGasCoin: (0, coinType_1.isSui)(token.coinType),
|
|
132
135
|
})(fundKeypairTransaction));
|
|
133
136
|
fundKeypairTransaction.transferObjects(coinsWithBalance, keypair.toSuiAddress());
|
|
134
|
-
const res = yield signExecuteAndWaitForTransaction(fundKeypairTransaction);
|
|
137
|
+
const res = yield signExecuteAndWaitForTransaction(fundKeypairTransaction, undefined, onSign, onExecute);
|
|
135
138
|
return { res };
|
|
136
139
|
});
|
|
137
140
|
exports.fundKeypair = fundKeypair;
|
|
138
|
-
const returnAllOwnedObjectsAndSuiToUser = (address, keypair, suiClient) => __awaiter(void 0, void 0, void 0, function* () {
|
|
141
|
+
const returnAllOwnedObjectsAndSuiToUser = (address, keypair, suiClient, onSign, onExecute) => __awaiter(void 0, void 0, void 0, function* () {
|
|
139
142
|
console.log(`[returnAllOwnedObjectsAndSuiToUser] address: ${address}`);
|
|
140
143
|
const transaction = new transactions_1.Transaction();
|
|
141
144
|
transaction.setSender(keypair.toSuiAddress());
|
|
@@ -144,7 +147,7 @@ const returnAllOwnedObjectsAndSuiToUser = (address, keypair, suiClient) => __awa
|
|
|
144
147
|
.filter((obj) => { var _a; return ((_a = obj.data) === null || _a === void 0 ? void 0 : _a.content).type !== "0x2::coin::Coin<0x2::sui::SUI>"; })
|
|
145
148
|
.map((obj) => { var _a; return (_a = obj.data) === null || _a === void 0 ? void 0 : _a.objectId; }); // Assumed to be <512 objects
|
|
146
149
|
transaction.transferObjects(ownedObjectIds, address);
|
|
147
|
-
const res = yield (0, exports.keypairSignExecuteAndWaitForTransaction)(transaction, keypair, suiClient);
|
|
150
|
+
const res = yield (0, exports.keypairSignExecuteAndWaitForTransaction)(transaction, keypair, suiClient, onSign, onExecute);
|
|
148
151
|
return { res };
|
|
149
152
|
});
|
|
150
153
|
exports.returnAllOwnedObjectsAndSuiToUser = returnAllOwnedObjectsAndSuiToUser;
|
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"}}
|