@suilend/sui-fe 2.0.11 → 2.0.13

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.
@@ -8,4 +8,4 @@ export declare const getAllOwnedObjects: (suiClient: SuiJsonRpcClient, address:
8
8
  export declare const getAllCoins: (suiClient: SuiJsonRpcClient, address: string, coinType: string) => Promise<CoinStruct[]>;
9
9
  export declare const getMostRecentAddressTransaction: (suiClient: SuiJsonRpcClient, address: string, direction: "from" | "to") => Promise<SuiTransactionBlockResponse | undefined>;
10
10
  export declare const mergeAllCoins: (coinType: string, transaction: Transaction, allCoins: CoinStruct[]) => CoinStruct;
11
- export declare const getSpendableCoin: (suiClient: SuiJsonRpcClient, address: string, coinType: string, value: string, transaction: Transaction) => Promise<TransactionObjectArgument>;
11
+ export declare const getSpendableCoin: (suiClient: SuiJsonRpcClient, address: string, coinType: string, value: string, transaction: Transaction, mergeCoins?: boolean) => Promise<TransactionObjectArgument>;
@@ -84,7 +84,7 @@ export const mergeAllCoins = (coinType, transaction, allCoins) => {
84
84
  return mergeCoin;
85
85
  };
86
86
  // Build a spendable coin using owned coin objects, address balance, or both.
87
- export const getSpendableCoin = (suiClient, address, coinType, value, transaction) => __awaiter(void 0, void 0, void 0, function* () {
87
+ export const getSpendableCoin = (suiClient_1, address_1, coinType_1, value_1, transaction_1, ...args_1) => __awaiter(void 0, [suiClient_1, address_1, coinType_1, value_1, transaction_1, ...args_1], void 0, function* (suiClient, address, coinType, value, transaction, mergeCoins = true) {
88
88
  var _a;
89
89
  const spendValue = BigInt(value);
90
90
  if (spendValue <= BigInt(0)) {
@@ -105,19 +105,27 @@ export const getSpendableCoin = (suiClient, address, coinType, value, transactio
105
105
  }
106
106
  const objectCoinSpend = objectCoinBalance >= spendValue ? spendValue : objectCoinBalance;
107
107
  const addressBalanceSpend = spendValue - objectCoinSpend;
108
- console.log(`[getSpendableCoin] ${coinType} requested=${value} coinObjects=${objectCoinSpend.toString()} addressBalance=${addressBalanceSpend.toString()}`);
109
108
  // Address balance only.
110
109
  if (objectCoinSpend === BigInt(0)) {
111
- return transaction.moveCall({
110
+ const [coin] = transaction.moveCall({
112
111
  target: "0x2::coin::redeem_funds",
113
112
  typeArguments: [coinType],
114
113
  arguments: [transaction.withdrawal({ amount: value, type: coinType })],
115
114
  });
115
+ return coin;
116
+ }
117
+ let coinSource;
118
+ if (mergeCoins) {
119
+ const mergedCoin = mergeAllCoins(coinType, transaction, nonZeroCoins);
120
+ coinSource = isSui(coinType)
121
+ ? transaction.gas
122
+ : transaction.object(mergedCoin.coinObjectId);
123
+ }
124
+ else {
125
+ coinSource = isSui(coinType)
126
+ ? transaction.gas
127
+ : transaction.object(nonZeroCoins[0].coinObjectId);
116
128
  }
117
- const mergedCoin = mergeAllCoins(coinType, transaction, nonZeroCoins);
118
- const coinSource = isSui(coinType)
119
- ? transaction.gas
120
- : transaction.object(mergedCoin.coinObjectId);
121
129
  // Coin objects only.
122
130
  if (addressBalanceSpend === BigInt(0)) {
123
131
  const [sendCoin] = transaction.splitCoins(coinSource, [value]);
@@ -127,7 +135,7 @@ export const getSpendableCoin = (suiClient, address, coinType, value, transactio
127
135
  const [objectCoin] = transaction.splitCoins(coinSource, [
128
136
  objectCoinSpend.toString(),
129
137
  ]);
130
- const addressCoin = transaction.moveCall({
138
+ const [addressCoin] = transaction.moveCall({
131
139
  target: "0x2::coin::redeem_funds",
132
140
  typeArguments: [coinType],
133
141
  arguments: [
package/package.json CHANGED
@@ -1 +1 @@
1
- {"name":"@suilend/sui-fe","version":"2.0.11","private":false,"description":"A collection of TypeScript frontend libraries","author":"Suilend","license":"MIT","main":"./index.js","exports":{".":"./index.js","./lib/constants":"./lib/constants.js","./lib/transactions":"./lib/transactions.js","./lib/format":"./lib/format.js","./lib/ledger":"./lib/ledger.js","./lib/coinMetadata":"./lib/coinMetadata.js","./lib":"./lib/index.js","./lib/indexedDB":"./lib/indexedDB.js","./lib/coinType":"./lib/coinType.js","./lib/coin":"./lib/coin.js","./lib/msafe":"./lib/msafe.js","./lib/keypair":"./lib/keypair.js","./lib/api":"./lib/api.js"},"types":"./index.js","scripts":{"build":"rm -rf ./dist && bun tsc","eslint":"eslint --fix src/","prettier":"prettier --write src/","lint":"bun eslint && bun prettier && bun tsc --noEmit","release":"bun run build && bun ./release.js && 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.20.0","bignumber.js":"^9.1.2","blake2b":"^2.1.4","lodash":"^4.17.21","p-limit":"3.1.0"},"devDependencies":{"@tsconfig/recommended":"^1.0.8","@types/blake2b":"^2.1.3","@types/lodash":"^4.17.13","@types/node":"^22.9.0","@typescript-eslint/eslint-plugin":"^8.14.0","@typescript-eslint/parser":"^8.14.0","eslint":"^9.14.0","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":"2.3.1"}}
1
+ {"name":"@suilend/sui-fe","version":"2.0.13","private":false,"description":"A collection of TypeScript frontend libraries","author":"Suilend","license":"MIT","main":"./index.js","exports":{".":"./index.js","./lib/constants":"./lib/constants.js","./lib/transactions":"./lib/transactions.js","./lib/format":"./lib/format.js","./lib/ledger":"./lib/ledger.js","./lib/coinMetadata":"./lib/coinMetadata.js","./lib":"./lib/index.js","./lib/indexedDB":"./lib/indexedDB.js","./lib/coinType":"./lib/coinType.js","./lib/coin":"./lib/coin.js","./lib/msafe":"./lib/msafe.js","./lib/keypair":"./lib/keypair.js","./lib/api":"./lib/api.js"},"types":"./index.js","scripts":{"build":"rm -rf ./dist && bun tsc","eslint":"eslint --fix src/","prettier":"prettier --write src/","lint":"bun eslint && bun prettier && bun tsc --noEmit","release":"bun run build && bun ./release.js && 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.20.0","bignumber.js":"^9.1.2","blake2b":"^2.1.4","lodash":"^4.17.21","p-limit":"3.1.0"},"devDependencies":{"@tsconfig/recommended":"^1.0.8","@types/blake2b":"^2.1.3","@types/lodash":"^4.17.13","@types/node":"^22.9.0","@typescript-eslint/eslint-plugin":"^8.14.0","@typescript-eslint/parser":"^8.14.0","eslint":"^9.14.0","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":"2.3.1"}}