@suilend/sui-fe 3.0.3 → 3.0.5

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.
@@ -28,4 +28,4 @@ export declare const getAllOwnedObjects: (suiGrpcClient: SuiGrpcClient, address:
28
28
  export declare const getAllCoins: (suiGrpcClient: SuiGrpcClient, address: string, coinType: string) => Promise<SuiClientTypes.Coin[]>;
29
29
  export declare const getMostRecentAddressTransaction: (suiGraphQLClient: SuiGraphQLClient, address: string, direction: "from" | "to") => Promise<GraphQLTransaction | undefined>;
30
30
  export declare const mergeAllCoins: (coinType: string, transaction: Transaction, allCoins: SuiClientTypes.Coin[]) => SuiClientTypes.Coin;
31
- export declare const getSpendableCoin: (suiGrpcClient: SuiGrpcClient, address: string, coinType: string, value: string, transaction: Transaction) => Promise<TransactionObjectArgument>;
31
+ export declare const getSpendableCoin: (suiGrpcClient: SuiGrpcClient, address: string, coinType: string, value: string, transaction: Transaction, mergeCoins?: boolean) => Promise<TransactionObjectArgument>;
@@ -101,7 +101,7 @@ export const mergeAllCoins = (coinType, transaction, allCoins) => {
101
101
  return mergeCoin;
102
102
  };
103
103
  // Build a spendable coin using owned coin objects, address balance, or both.
104
- export const getSpendableCoin = (suiGrpcClient, address, coinType, value, transaction) => __awaiter(void 0, void 0, void 0, function* () {
104
+ export const getSpendableCoin = (suiGrpcClient_1, address_1, coinType_1, value_1, transaction_1, ...args_1) => __awaiter(void 0, [suiGrpcClient_1, address_1, coinType_1, value_1, transaction_1, ...args_1], void 0, function* (suiGrpcClient, address, coinType, value, transaction, mergeCoins = true) {
105
105
  var _a;
106
106
  const spendValue = BigInt(value);
107
107
  if (spendValue <= BigInt(0)) {
@@ -122,19 +122,27 @@ export const getSpendableCoin = (suiGrpcClient, address, coinType, value, transa
122
122
  }
123
123
  const objectCoinSpend = objectCoinBalance >= spendValue ? spendValue : objectCoinBalance;
124
124
  const addressBalanceSpend = spendValue - objectCoinSpend;
125
- console.log(`[getSpendableCoin] ${coinType} requested=${value} coinObjects=${objectCoinSpend.toString()} addressBalance=${addressBalanceSpend.toString()}`);
126
125
  // Address balance only.
127
126
  if (objectCoinSpend === BigInt(0)) {
128
- return transaction.moveCall({
127
+ const [coin] = transaction.moveCall({
129
128
  target: "0x2::coin::redeem_funds",
130
129
  typeArguments: [coinType],
131
130
  arguments: [transaction.withdrawal({ amount: value, type: coinType })],
132
131
  });
132
+ return coin;
133
+ }
134
+ let coinSource;
135
+ if (mergeCoins) {
136
+ const mergedCoin = mergeAllCoins(coinType, transaction, nonZeroCoins);
137
+ coinSource = isSui(coinType)
138
+ ? transaction.gas
139
+ : transaction.object(mergedCoin.objectId);
140
+ }
141
+ else {
142
+ coinSource = isSui(coinType)
143
+ ? transaction.gas
144
+ : transaction.object(nonZeroCoins[0].objectId);
133
145
  }
134
- const mergedCoin = mergeAllCoins(coinType, transaction, nonZeroCoins);
135
- const coinSource = isSui(coinType)
136
- ? transaction.gas
137
- : transaction.object(mergedCoin.objectId);
138
146
  // Coin objects only.
139
147
  if (addressBalanceSpend === BigInt(0)) {
140
148
  const [sendCoin] = transaction.splitCoins(coinSource, [value]);
@@ -144,7 +152,7 @@ export const getSpendableCoin = (suiGrpcClient, address, coinType, value, transa
144
152
  const [objectCoin] = transaction.splitCoins(coinSource, [
145
153
  objectCoinSpend.toString(),
146
154
  ]);
147
- const addressCoin = transaction.moveCall({
155
+ const [addressCoin] = transaction.moveCall({
148
156
  target: "0x2::coin::redeem_funds",
149
157
  typeArguments: [coinType],
150
158
  arguments: [
package/package.json CHANGED
@@ -1 +1 @@
1
- {"name":"@suilend/sui-fe","version":"3.0.3","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.15.0"}}
1
+ {"name":"@suilend/sui-fe","version":"3.0.5","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.15.0"}}