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