@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 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
- }) => Promise<SuiTransactionBlockResponse>) => Promise<{
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 mostRecentFromAddressTransaction = yield (0, transactions_2.getMostRecentFromAddressTransaction)(suiClient, keypair.toSuiAddress());
49
- console.log("[checkIfKeypairCanBeUsed] mostRecentFromAddressTransaction:", mostRecentFromAddressTransaction, "lastSignedTransaction:", lastSignedTransaction, "currentFlowDigests:", currentFlowDigests);
50
- if (mostRecentFromAddressTransaction === undefined) {
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 = mostRecentFromAddressTransaction.transaction) === null || _a === void 0 ? void 0 : _a.txSignatures) !== null && _b !== void 0 ? _b : []).includes(lastSignedTransaction.signature)) ||
59
- currentFlowDigests.includes(mostRecentFromAddressTransaction.digest)) {
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 { lastCurrentFlowTransaction: mostRecentFromAddressTransaction };
62
+ return {
63
+ lastCurrentFlowTransaction: mostRecentFromOrToAddressTransaction,
64
+ };
63
65
  }
64
66
  else {
65
67
  // Previous flow
66
- const timestampMs = mostRecentFromAddressTransaction.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) => __awaiter(void 0, void 0, void 0, function* () {
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;
@@ -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 getMostRecentFromAddressTransaction: (suiClient: SuiClient, address: string) => Promise<SuiTransactionBlockResponse | undefined>;
8
+ export declare const getMostRecentFromOrToAddressTransaction: (suiClient: SuiClient, address: string) => Promise<SuiTransactionBlockResponse | undefined>;
@@ -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.getMostRecentFromAddressTransaction = exports.getAllCoins = exports.getAllOwnedObjects = exports.getBalanceChange = exports.getTotalGasFee = void 0;
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 getMostRecentFromAddressTransaction = (suiClient, address) => __awaiter(void 0, void 0, void 0, function* () {
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: { FromAddress: address },
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.getMostRecentFromAddressTransaction = getMostRecentFromAddressTransaction;
102
+ exports.getMostRecentFromOrToAddressTransaction = getMostRecentFromOrToAddressTransaction;
package/package.json CHANGED
@@ -1 +1 @@
1
- {"name":"@suilend/sui-fe","version":"0.2.94","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"}}
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"}}