@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.
- package/lib/transactions.d.ts +1 -1
- package/lib/transactions.js +16 -8
- package/package.json +1 -1
package/lib/transactions.d.ts
CHANGED
|
@@ -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>;
|
package/lib/transactions.js
CHANGED
|
@@ -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 = (
|
|
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
|
-
|
|
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.
|
|
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"}}
|