@vultisig/core-chain 2.16.3 → 2.16.4
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/CHANGELOG.md +37 -0
- package/dist/chains/cosmos/account/getCosmosAccountInfo.d.ts.map +1 -1
- package/dist/chains/cosmos/account/getCosmosAccountInfo.js +5 -1
- package/dist/chains/cosmos/account/getCosmosAccountInfo.js.map +1 -1
- package/dist/chains/cosmos/cosmosGasLimitRecord.js +9 -9
- package/dist/chains/evm/noon/index.d.ts +352 -0
- package/dist/chains/evm/noon/index.d.ts.map +1 -0
- package/dist/chains/evm/noon/index.js +311 -0
- package/dist/chains/evm/noon/index.js.map +1 -0
- package/dist/coin/find/resolvers/evm/queryOneInch.js +1 -1
- package/dist/coin/find/resolvers/evm/queryOneInch.js.map +1 -1
- package/dist/publicKey/getPublicKey.d.ts.map +1 -1
- package/dist/publicKey/getPublicKey.js +24 -12
- package/dist/publicKey/getPublicKey.js.map +1 -1
- package/package.json +6 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,42 @@
|
|
|
1
1
|
# @vultisig/core-chain
|
|
2
2
|
|
|
3
|
+
## 2.16.4
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- [#756](https://github.com/vultisig/vultisig-sdk/pull/756) [`78eb626`](https://github.com/vultisig/vultisig-sdk/commit/78eb6263a0ac33f59c97fd7be81610185d0a7a90) Thanks [@gomesalexandre](https://github.com/gomesalexandre)! - fix(pubkey): fall back to bip32 derivation when chainPublicKey is 32 bytes on ecdsa chains
|
|
8
|
+
|
|
9
|
+
Older KeyImport vault backups sometimes store the raw 32-byte X coordinate
|
|
10
|
+
for secp256k1 chains instead of the standard 33-byte compressed form.
|
|
11
|
+
WalletCore's createWithData rejects these with "Invalid length: Expected 33
|
|
12
|
+
but received 32", breaking execute_swap / show_receive_request for affected
|
|
13
|
+
users (~7 events/day in prod).
|
|
14
|
+
|
|
15
|
+
The fix detects the 32-byte case at runtime for ecdsa chains and falls back
|
|
16
|
+
to BIP32 derivation from the root ECDSA key, which always produces a valid
|
|
17
|
+
33-byte compressed pubkey.
|
|
18
|
+
|
|
19
|
+
- [#758](https://github.com/vultisig/vultisig-sdk/pull/758) [`10a058b`](https://github.com/vultisig/vultisig-sdk/commit/10a058bf1a2a2c1ed9ba4ec9c4a29830ec6f1aae) Thanks [@gomesalexandre](https://github.com/gomesalexandre)! - Use a distinct provider for Kujira's LCD fallback so primary (polkachu) and fallback (rest.cosmos.directory) are independent - restoring real redundancy if polkachu degrades.
|
|
20
|
+
|
|
21
|
+
- [#756](https://github.com/vultisig/vultisig-sdk/pull/756) [`78eb626`](https://github.com/vultisig/vultisig-sdk/commit/78eb6263a0ac33f59c97fd7be81610185d0a7a90) Thanks [@gomesalexandre](https://github.com/gomesalexandre)! - fix: await assertFetchResponse in queryOneInch to prevent "Already read" body error
|
|
22
|
+
|
|
23
|
+
assertFetchResponse is an async function that reads the response body. Without
|
|
24
|
+
await, the body read started in the background while response.json() was called
|
|
25
|
+
concurrently - resulting in a "Already read" TypeError on non-2xx EVM discovery
|
|
26
|
+
responses. Fixes dashboard_sdk_discovery_failure events for Ethereum/BSC/Arbitrum.
|
|
27
|
+
|
|
28
|
+
- [#738](https://github.com/vultisig/vultisig-sdk/pull/738) [`a335ca8`](https://github.com/vultisig/vultisig-sdk/commit/a335ca80e13da83c4ed5c2922f5ae845a4aea712) Thanks [@rcoderdev](https://github.com/rcoderdev)! - Add Noon sUSN Delta Neutral USDC yield vault helpers for Ethereum, including ERC-7540 calldata builders, USDC approval planning, on-chain read helpers, and Noon/Accountable APY plus TVL API clients exposed through the SDK boundary.
|
|
29
|
+
|
|
30
|
+
- [#756](https://github.com/vultisig/vultisig-sdk/pull/756) [`78eb626`](https://github.com/vultisig/vultisig-sdk/commit/78eb6263a0ac33f59c97fd7be81610185d0a7a90) Thanks [@gomesalexandre](https://github.com/gomesalexandre)! - fix(cosmos): bump TerraClassic staking gas limit from 2M to 3M
|
|
31
|
+
|
|
32
|
+
The 2M limit was consistently failing with "out of gas in location:
|
|
33
|
+
ValuePerByte" on TerraClassic MsgDelegate / MsgUndelegate / claim-rewards
|
|
34
|
+
txs (gasUsed: 2000201-2000774). The ValuePerByte meter in the classic-terra
|
|
35
|
+
treasury/tax post-handler adds ~200-800 gas on top of the base delegate
|
|
36
|
+
cost, which the standard SDK estimate doesn't account for. 3M fits safely
|
|
37
|
+
within the 100 LUNC fee floor (3M \* 28.325 uluna/gas ≈ 84.97 LUNC < 100
|
|
38
|
+
LUNC).
|
|
39
|
+
|
|
3
40
|
## 2.16.3
|
|
4
41
|
|
|
5
42
|
### Patch Changes
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getCosmosAccountInfo.d.ts","sourceRoot":"","sources":["../../../../../../../packages/core/chain/chains/cosmos/account/getCosmosAccountInfo.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,eAAe,CAAA;AAC3C,OAAO,EAAS,WAAW,EAAE,MAAM,4BAA4B,CAAA;AAC/D,OAAO,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAA;
|
|
1
|
+
{"version":3,"file":"getCosmosAccountInfo.d.ts","sourceRoot":"","sources":["../../../../../../../packages/core/chain/chains/cosmos/account/getCosmosAccountInfo.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,eAAe,CAAA;AAC3C,OAAO,EAAS,WAAW,EAAE,MAAM,4BAA4B,CAAA;AAC/D,OAAO,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAA;AA8HhE,KAAK,iBAAiB,GAAG;IACvB,OAAO,EAAE,MAAM,CAAA;IACf,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;IACrB,aAAa,EAAE,MAAM,CAAA;IACrB,QAAQ,EAAE,MAAM,CAAA;IAChB,WAAW,EAAE,MAAM,CAAA;CACpB,CAAA;AAED,eAAO,MAAM,oBAAoB,GAAU,qBAGxC,YAAY,CAAC,WAAW,CAAC,KAAG,OAAO,CAAC,iBAAiB,CAgCvD,CAAA"}
|
|
@@ -46,7 +46,11 @@ const parseLcdAccount = (resp) => {
|
|
|
46
46
|
const COSMOS_LCD_FALLBACK_URLS = {
|
|
47
47
|
[Chain.Cosmos]: 'https://cosmos-api.polkachu.com',
|
|
48
48
|
[Chain.Osmosis]: 'https://osmosis-api.polkachu.com',
|
|
49
|
-
|
|
49
|
+
// rest.cosmos.directory/kujira proxies across multiple independent providers
|
|
50
|
+
// (confirmed live 2026-06-16 via node_info + auth endpoint returning valid cosmos SDK JSON).
|
|
51
|
+
// Distinct from the polkachu primary in cosmosRpcUrl.ts so a polkachu degradation
|
|
52
|
+
// does not take out both legs simultaneously (the failure mode flagged in #735).
|
|
53
|
+
[Chain.Kujira]: 'https://rest.cosmos.directory/kujira',
|
|
50
54
|
[Chain.Terra]: 'https://terra-api.polkachu.com',
|
|
51
55
|
[Chain.TerraClassic]: 'https://lcd.terra-classic.hexxagon.io',
|
|
52
56
|
[Chain.THORChain]: 'https://thorchain-api.polkachu.com',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getCosmosAccountInfo.js","sourceRoot":"","sources":["../../../../../../../packages/core/chain/chains/cosmos/account/getCosmosAccountInfo.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAe,MAAM,4BAA4B,CAAA;AAE/D,OAAO,EAAE,eAAe,EAAE,MAAM,2CAA2C,CAAA;AAC3E,OAAO,EAAE,eAAe,EAAE,MAAM,oDAAoD,CAAA;AACpF,OAAO,EAAE,QAAQ,EAAE,MAAM,oCAAoC,CAAA;AAwC7D,MAAM,eAAe,GAAG,CAAC,IAAwB,EAAwB,EAAE;IACzE,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAA;IACxB,IAAI,CAAC,GAAG;QAAE,OAAO,IAAI,CAAA;IACrB,MAAM,IAAI,GAAG,GAAG,CAAC,oBAAoB,EAAE,YAAY,IAAI,GAAG,CAAC,YAAY,IAAI,GAAG,CAAA;IAC9E,IAAI,CAAC;QACH,MAAM,aAAa,GAAG,MAAM,CAAC,IAAI,CAAC,cAAc,IAAI,GAAG,CAAC,CAAA;QACxD,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,GAAG,CAAC,CAAA;QAC7C,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC;YAAE,OAAO,IAAI,CAAA;QAC3C,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,CAAA;IACpC,CAAC;IAAC,MAAM,CAAC;QACP,mEAAmE;QACnE,gEAAgE;QAChE,OAAO,IAAI,CAAA;IACb,CAAC;AACH,CAAC,CAAA;AAED,oEAAoE;AACpE,6EAA6E;AAC7E,4EAA4E;AAC5E,0EAA0E;AAC1E,yEAAyE;AACzE,gEAAgE;AAChE,kDAAkD;AAClD,EAAE;AACF,qEAAqE;AACrE,4EAA4E;AAC5E,2DAA2D;AAC3D,EAAE;AACF,2EAA2E;AAC3E,wEAAwE;AACxE,0EAA0E;AAC1E,0EAA0E;AAC1E,2EAA2E;AAC3E,EAAE;AACF,4EAA4E;AAC5E,2DAA2D;AAC3D,mEAAmE;AACnE,2EAA2E;AAC3E,wBAAwB;AACxB,MAAM,wBAAwB,GAAyC;IACrE,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,iCAAiC;IACjD,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,kCAAkC;IACnD,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,
|
|
1
|
+
{"version":3,"file":"getCosmosAccountInfo.js","sourceRoot":"","sources":["../../../../../../../packages/core/chain/chains/cosmos/account/getCosmosAccountInfo.ts"],"names":[],"mappings":"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"}
|
|
@@ -31,14 +31,14 @@ export const getCosmosGasLimit = (coin) => {
|
|
|
31
31
|
* `getCosmosGasLimit` defaults, which are calibrated for `bank.MsgSend` and
|
|
32
32
|
* `ibc.MsgTransfer`.
|
|
33
33
|
*
|
|
34
|
-
* TerraClassic's classic-terra fork has a
|
|
35
|
-
*
|
|
36
|
-
*
|
|
37
|
-
*
|
|
38
|
-
*
|
|
39
|
-
*
|
|
40
|
-
*
|
|
41
|
-
*
|
|
34
|
+
* TerraClassic's classic-terra fork has a gas-accounting quirk in the
|
|
35
|
+
* treasury / tax post-handler: the `ValuePerByte` meter charges for byte
|
|
36
|
+
* writes that the standard SDK gas estimate omits. In practice this adds
|
|
37
|
+
* ~200-800 gas on top of the base delegate cost (~2M), so a 2M limit fails
|
|
38
|
+
* consistently ("out of gas in location: ValuePerByte; gasWanted: 2000000,
|
|
39
|
+
* gasUsed: 200X"). 3M sits safely under the 100 LUNC fee floor
|
|
40
|
+
* (3M * 28.325 uluna/gas = ~84.97 LUNC < 100 LUNC) while leaving plenty of
|
|
41
|
+
* headroom for the actual spend.
|
|
42
42
|
*/
|
|
43
43
|
const cosmosStakingGasLimitRecord = {
|
|
44
44
|
[Chain.Cosmos]: 350000n,
|
|
@@ -48,7 +48,7 @@ const cosmosStakingGasLimitRecord = {
|
|
|
48
48
|
[Chain.Noble]: 350000n,
|
|
49
49
|
[Chain.Akash]: 350000n,
|
|
50
50
|
[Chain.Terra]: 500000n,
|
|
51
|
-
[Chain.TerraClassic]:
|
|
51
|
+
[Chain.TerraClassic]: 3000000n,
|
|
52
52
|
};
|
|
53
53
|
/**
|
|
54
54
|
* Returns the gas limit a Cosmos staking tx should request for the given
|
|
@@ -0,0 +1,352 @@
|
|
|
1
|
+
import { type Abi, type Hex, type PublicClient } from 'viem';
|
|
2
|
+
export declare const noonUsdcVaultConfig: {
|
|
3
|
+
readonly name: "sUSN Delta Neutral Yield Vault";
|
|
4
|
+
readonly provider: "Noon";
|
|
5
|
+
readonly chain: "Ethereum";
|
|
6
|
+
readonly assetAddress: string;
|
|
7
|
+
readonly assetSymbol: "USDC";
|
|
8
|
+
readonly assetDecimals: 6;
|
|
9
|
+
readonly shareSymbol: "naccUSDC";
|
|
10
|
+
readonly shareDecimals: 6;
|
|
11
|
+
readonly loanAddress: "0xc3Edd8B28C41749Eed38c2A33a78e3E046DFB876";
|
|
12
|
+
readonly vaultAddress: "0xA73424f1Ac94b3ef0D0c9af4F2967c87D4AF25D9";
|
|
13
|
+
readonly minDepositAssets: 100000000n;
|
|
14
|
+
readonly minRedeemShares: 95000000n;
|
|
15
|
+
readonly maxCapacityAssets: 10000000000000n;
|
|
16
|
+
readonly redemptionWindow: {
|
|
17
|
+
readonly closesDayOfWeek: 3;
|
|
18
|
+
readonly closesTimeUtc: "23:00";
|
|
19
|
+
readonly settlementDays: 7;
|
|
20
|
+
};
|
|
21
|
+
};
|
|
22
|
+
export declare const noonVaultAbi: readonly [{
|
|
23
|
+
readonly name: "asset";
|
|
24
|
+
readonly type: "function";
|
|
25
|
+
readonly stateMutability: "view";
|
|
26
|
+
readonly inputs: readonly [];
|
|
27
|
+
readonly outputs: readonly [{
|
|
28
|
+
readonly type: "address";
|
|
29
|
+
}];
|
|
30
|
+
}, {
|
|
31
|
+
readonly name: "balanceOf";
|
|
32
|
+
readonly type: "function";
|
|
33
|
+
readonly stateMutability: "view";
|
|
34
|
+
readonly inputs: readonly [{
|
|
35
|
+
readonly type: "address";
|
|
36
|
+
readonly name: "account";
|
|
37
|
+
}];
|
|
38
|
+
readonly outputs: readonly [{
|
|
39
|
+
readonly type: "uint256";
|
|
40
|
+
}];
|
|
41
|
+
}, {
|
|
42
|
+
readonly name: "decimals";
|
|
43
|
+
readonly type: "function";
|
|
44
|
+
readonly stateMutability: "view";
|
|
45
|
+
readonly inputs: readonly [];
|
|
46
|
+
readonly outputs: readonly [{
|
|
47
|
+
readonly type: "uint8";
|
|
48
|
+
}];
|
|
49
|
+
}, {
|
|
50
|
+
readonly name: "deposit";
|
|
51
|
+
readonly type: "function";
|
|
52
|
+
readonly stateMutability: "nonpayable";
|
|
53
|
+
readonly inputs: readonly [{
|
|
54
|
+
readonly type: "uint256";
|
|
55
|
+
readonly name: "assets";
|
|
56
|
+
}, {
|
|
57
|
+
readonly type: "address";
|
|
58
|
+
readonly name: "receiver";
|
|
59
|
+
}];
|
|
60
|
+
readonly outputs: readonly [{
|
|
61
|
+
readonly type: "uint256";
|
|
62
|
+
readonly name: "shares";
|
|
63
|
+
}];
|
|
64
|
+
}, {
|
|
65
|
+
readonly name: "previewDeposit";
|
|
66
|
+
readonly type: "function";
|
|
67
|
+
readonly stateMutability: "view";
|
|
68
|
+
readonly inputs: readonly [{
|
|
69
|
+
readonly type: "uint256";
|
|
70
|
+
readonly name: "assets";
|
|
71
|
+
}];
|
|
72
|
+
readonly outputs: readonly [{
|
|
73
|
+
readonly type: "uint256";
|
|
74
|
+
readonly name: "shares";
|
|
75
|
+
}];
|
|
76
|
+
}, {
|
|
77
|
+
readonly name: "previewRedeem";
|
|
78
|
+
readonly type: "function";
|
|
79
|
+
readonly stateMutability: "view";
|
|
80
|
+
readonly inputs: readonly [{
|
|
81
|
+
readonly type: "uint256";
|
|
82
|
+
readonly name: "shares";
|
|
83
|
+
}];
|
|
84
|
+
readonly outputs: readonly [{
|
|
85
|
+
readonly type: "uint256";
|
|
86
|
+
readonly name: "assets";
|
|
87
|
+
}];
|
|
88
|
+
}, {
|
|
89
|
+
readonly name: "previewWithdraw";
|
|
90
|
+
readonly type: "function";
|
|
91
|
+
readonly stateMutability: "view";
|
|
92
|
+
readonly inputs: readonly [{
|
|
93
|
+
readonly type: "uint256";
|
|
94
|
+
readonly name: "assets";
|
|
95
|
+
}];
|
|
96
|
+
readonly outputs: readonly [{
|
|
97
|
+
readonly type: "uint256";
|
|
98
|
+
readonly name: "shares";
|
|
99
|
+
}];
|
|
100
|
+
}, {
|
|
101
|
+
readonly name: "requestRedeem";
|
|
102
|
+
readonly type: "function";
|
|
103
|
+
readonly stateMutability: "nonpayable";
|
|
104
|
+
readonly inputs: readonly [{
|
|
105
|
+
readonly type: "uint256";
|
|
106
|
+
readonly name: "shares";
|
|
107
|
+
}, {
|
|
108
|
+
readonly type: "address";
|
|
109
|
+
readonly name: "receiver";
|
|
110
|
+
}, {
|
|
111
|
+
readonly type: "address";
|
|
112
|
+
readonly name: "owner";
|
|
113
|
+
}];
|
|
114
|
+
readonly outputs: readonly [{
|
|
115
|
+
readonly type: "uint256";
|
|
116
|
+
readonly name: "requestId";
|
|
117
|
+
}];
|
|
118
|
+
}, {
|
|
119
|
+
readonly name: "withdraw";
|
|
120
|
+
readonly type: "function";
|
|
121
|
+
readonly stateMutability: "nonpayable";
|
|
122
|
+
readonly inputs: readonly [{
|
|
123
|
+
readonly type: "uint256";
|
|
124
|
+
readonly name: "assets";
|
|
125
|
+
}, {
|
|
126
|
+
readonly type: "address";
|
|
127
|
+
readonly name: "receiver";
|
|
128
|
+
}, {
|
|
129
|
+
readonly type: "address";
|
|
130
|
+
readonly name: "owner";
|
|
131
|
+
}];
|
|
132
|
+
readonly outputs: readonly [{
|
|
133
|
+
readonly type: "uint256";
|
|
134
|
+
readonly name: "shares";
|
|
135
|
+
}];
|
|
136
|
+
}, {
|
|
137
|
+
readonly name: "sharePrice";
|
|
138
|
+
readonly type: "function";
|
|
139
|
+
readonly stateMutability: "view";
|
|
140
|
+
readonly inputs: readonly [];
|
|
141
|
+
readonly outputs: readonly [{
|
|
142
|
+
readonly type: "uint256";
|
|
143
|
+
}];
|
|
144
|
+
}, {
|
|
145
|
+
readonly name: "convertToAssets";
|
|
146
|
+
readonly type: "function";
|
|
147
|
+
readonly stateMutability: "view";
|
|
148
|
+
readonly inputs: readonly [{
|
|
149
|
+
readonly type: "uint256";
|
|
150
|
+
readonly name: "shares";
|
|
151
|
+
}];
|
|
152
|
+
readonly outputs: readonly [{
|
|
153
|
+
readonly type: "uint256";
|
|
154
|
+
readonly name: "assets";
|
|
155
|
+
}];
|
|
156
|
+
}, {
|
|
157
|
+
readonly name: "totalAssets";
|
|
158
|
+
readonly type: "function";
|
|
159
|
+
readonly stateMutability: "view";
|
|
160
|
+
readonly inputs: readonly [];
|
|
161
|
+
readonly outputs: readonly [{
|
|
162
|
+
readonly type: "uint256";
|
|
163
|
+
}];
|
|
164
|
+
}, {
|
|
165
|
+
readonly name: "totalSupply";
|
|
166
|
+
readonly type: "function";
|
|
167
|
+
readonly stateMutability: "view";
|
|
168
|
+
readonly inputs: readonly [];
|
|
169
|
+
readonly outputs: readonly [{
|
|
170
|
+
readonly type: "uint256";
|
|
171
|
+
}];
|
|
172
|
+
}, {
|
|
173
|
+
readonly name: "totalQueuedShares";
|
|
174
|
+
readonly type: "function";
|
|
175
|
+
readonly stateMutability: "view";
|
|
176
|
+
readonly inputs: readonly [];
|
|
177
|
+
readonly outputs: readonly [{
|
|
178
|
+
readonly type: "uint256";
|
|
179
|
+
}];
|
|
180
|
+
}, {
|
|
181
|
+
readonly name: "queue";
|
|
182
|
+
readonly type: "function";
|
|
183
|
+
readonly stateMutability: "view";
|
|
184
|
+
readonly inputs: readonly [];
|
|
185
|
+
readonly outputs: readonly [{
|
|
186
|
+
readonly type: "uint256";
|
|
187
|
+
readonly name: "lastRequestId";
|
|
188
|
+
}, {
|
|
189
|
+
readonly type: "uint256";
|
|
190
|
+
readonly name: "nextRequestId";
|
|
191
|
+
}];
|
|
192
|
+
}, {
|
|
193
|
+
readonly name: "MIN_AMOUNT_WEI";
|
|
194
|
+
readonly type: "function";
|
|
195
|
+
readonly stateMutability: "view";
|
|
196
|
+
readonly inputs: readonly [];
|
|
197
|
+
readonly outputs: readonly [{
|
|
198
|
+
readonly type: "uint256";
|
|
199
|
+
}];
|
|
200
|
+
}, {
|
|
201
|
+
readonly name: "claimableRedeemRequest";
|
|
202
|
+
readonly type: "function";
|
|
203
|
+
readonly stateMutability: "view";
|
|
204
|
+
readonly inputs: readonly [{
|
|
205
|
+
readonly type: "uint256";
|
|
206
|
+
readonly name: "requestId";
|
|
207
|
+
}, {
|
|
208
|
+
readonly type: "address";
|
|
209
|
+
readonly name: "controller";
|
|
210
|
+
}];
|
|
211
|
+
readonly outputs: readonly [{
|
|
212
|
+
readonly type: "uint256";
|
|
213
|
+
readonly name: "shares";
|
|
214
|
+
}];
|
|
215
|
+
}, {
|
|
216
|
+
readonly name: "pendingRedeemRequest";
|
|
217
|
+
readonly type: "function";
|
|
218
|
+
readonly stateMutability: "view";
|
|
219
|
+
readonly inputs: readonly [{
|
|
220
|
+
readonly type: "uint256";
|
|
221
|
+
readonly name: "requestId";
|
|
222
|
+
}, {
|
|
223
|
+
readonly type: "address";
|
|
224
|
+
readonly name: "controller";
|
|
225
|
+
}];
|
|
226
|
+
readonly outputs: readonly [{
|
|
227
|
+
readonly type: "uint256";
|
|
228
|
+
readonly name: "shares";
|
|
229
|
+
}];
|
|
230
|
+
}, {
|
|
231
|
+
readonly name: "getState";
|
|
232
|
+
readonly type: "function";
|
|
233
|
+
readonly stateMutability: "view";
|
|
234
|
+
readonly inputs: readonly [{
|
|
235
|
+
readonly type: "address";
|
|
236
|
+
readonly name: "user";
|
|
237
|
+
}];
|
|
238
|
+
readonly outputs: readonly [{
|
|
239
|
+
readonly type: "tuple";
|
|
240
|
+
readonly components: readonly [{
|
|
241
|
+
readonly type: "uint256";
|
|
242
|
+
readonly name: "maxMint";
|
|
243
|
+
}, {
|
|
244
|
+
readonly type: "uint256";
|
|
245
|
+
readonly name: "maxWithdraw";
|
|
246
|
+
}, {
|
|
247
|
+
readonly type: "uint256";
|
|
248
|
+
readonly name: "depositAssets";
|
|
249
|
+
}, {
|
|
250
|
+
readonly type: "uint256";
|
|
251
|
+
readonly name: "redeemShares";
|
|
252
|
+
}, {
|
|
253
|
+
readonly type: "uint256";
|
|
254
|
+
readonly name: "depositPrice";
|
|
255
|
+
}, {
|
|
256
|
+
readonly type: "uint256";
|
|
257
|
+
readonly name: "mintPrice";
|
|
258
|
+
}, {
|
|
259
|
+
readonly type: "uint256";
|
|
260
|
+
readonly name: "redeemPrice";
|
|
261
|
+
}, {
|
|
262
|
+
readonly type: "uint256";
|
|
263
|
+
readonly name: "withdrawPrice";
|
|
264
|
+
}, {
|
|
265
|
+
readonly type: "uint256";
|
|
266
|
+
readonly name: "pendingDepositRequest";
|
|
267
|
+
}, {
|
|
268
|
+
readonly type: "uint256";
|
|
269
|
+
readonly name: "pendingRedeemRequest";
|
|
270
|
+
}];
|
|
271
|
+
}];
|
|
272
|
+
}];
|
|
273
|
+
export type NoonContractCall = {
|
|
274
|
+
chain: typeof noonUsdcVaultConfig.chain;
|
|
275
|
+
contractAddress: string;
|
|
276
|
+
abi: Abi;
|
|
277
|
+
functionName: string;
|
|
278
|
+
args: readonly unknown[];
|
|
279
|
+
value: bigint;
|
|
280
|
+
};
|
|
281
|
+
export type NoonDepositTxPlan = {
|
|
282
|
+
approval?: NoonContractCall;
|
|
283
|
+
deposit: NoonContractCall;
|
|
284
|
+
currentAllowance: bigint;
|
|
285
|
+
};
|
|
286
|
+
export type NoonVaultState = {
|
|
287
|
+
maxMint: bigint;
|
|
288
|
+
maxWithdraw: bigint;
|
|
289
|
+
depositAssets: bigint;
|
|
290
|
+
redeemShares: bigint;
|
|
291
|
+
depositPrice: bigint;
|
|
292
|
+
mintPrice: bigint;
|
|
293
|
+
redeemPrice: bigint;
|
|
294
|
+
withdrawPrice: bigint;
|
|
295
|
+
pendingDepositRequest: bigint;
|
|
296
|
+
pendingRedeemRequest: bigint;
|
|
297
|
+
};
|
|
298
|
+
export type NoonVaultPosition = NoonVaultState & {
|
|
299
|
+
shareBalance: bigint;
|
|
300
|
+
currentAssets: bigint;
|
|
301
|
+
claimableAssets: bigint;
|
|
302
|
+
claimableRedeemShares: bigint;
|
|
303
|
+
pendingRedeemShares: bigint;
|
|
304
|
+
redemptionState: 'none' | 'pending' | 'claimable';
|
|
305
|
+
queue: NoonVaultQueue;
|
|
306
|
+
};
|
|
307
|
+
export type NoonVaultQueue = {
|
|
308
|
+
lastRequestId: bigint;
|
|
309
|
+
nextRequestId: bigint;
|
|
310
|
+
totalQueuedShares: bigint;
|
|
311
|
+
};
|
|
312
|
+
export type NoonVaultMetrics = {
|
|
313
|
+
apy7dNetPercent: number;
|
|
314
|
+
tvl: number;
|
|
315
|
+
tvlInUsd: number;
|
|
316
|
+
};
|
|
317
|
+
type FetchLike = (input: string, init?: RequestInit) => Promise<Response>;
|
|
318
|
+
export declare const encodeNoonDeposit: (assets: bigint, receiver: string) => Hex;
|
|
319
|
+
export declare const encodeNoonRequestRedeem: (shares: bigint, receiver: string, owner?: string) => Hex;
|
|
320
|
+
export declare const encodeNoonWithdraw: (assets: bigint, receiver: string, owner?: string) => Hex;
|
|
321
|
+
export declare const encodeNoonUsdcApprove: (amount: bigint) => Hex;
|
|
322
|
+
export declare const getNoonDepositContractCall: (assets: bigint, receiver: string) => NoonContractCall;
|
|
323
|
+
export declare const getNoonRequestRedeemContractCall: (shares: bigint, receiver: string, owner?: string) => NoonContractCall;
|
|
324
|
+
export declare const getNoonWithdrawContractCall: (assets: bigint, receiver: string, owner?: string) => NoonContractCall;
|
|
325
|
+
export declare const getNoonUsdcApproveContractCall: (amount: bigint) => NoonContractCall;
|
|
326
|
+
export declare const getNoonUsdcAllowance: (owner: string, client?: PublicClient) => Promise<bigint>;
|
|
327
|
+
export declare const getNoonDepositTxPlan: ({ owner, assets, client, }: {
|
|
328
|
+
owner: string;
|
|
329
|
+
assets: bigint;
|
|
330
|
+
client?: PublicClient;
|
|
331
|
+
}) => Promise<NoonDepositTxPlan>;
|
|
332
|
+
export declare const readNoonVaultPreviewDeposit: (assets: bigint, client?: PublicClient) => Promise<bigint>;
|
|
333
|
+
export declare const readNoonVaultPreviewRedeem: (shares: bigint, client?: PublicClient) => Promise<bigint>;
|
|
334
|
+
export declare const readNoonVaultPreviewWithdraw: (assets: bigint, client?: PublicClient) => Promise<bigint>;
|
|
335
|
+
export declare const readNoonVaultSharePrice: (client?: PublicClient) => Promise<bigint>;
|
|
336
|
+
export declare const readNoonVaultConvertToAssets: (shares: bigint, client?: PublicClient) => Promise<bigint>;
|
|
337
|
+
export declare const readNoonVaultMinAmountWei: (client?: PublicClient) => Promise<bigint>;
|
|
338
|
+
export declare const readNoonVaultQueue: (client?: PublicClient) => Promise<NoonVaultQueue>;
|
|
339
|
+
export declare const readNoonVaultState: (user: string, client?: PublicClient) => Promise<NoonVaultState>;
|
|
340
|
+
export declare const readNoonClaimableRedeemRequest: (requestId: bigint, controller: string, client?: PublicClient) => Promise<bigint>;
|
|
341
|
+
export declare const readNoonPendingRedeemRequest: (requestId: bigint, controller: string, client?: PublicClient) => Promise<bigint>;
|
|
342
|
+
export declare const readNoonWithdrawalRequestRaw: (requestId: bigint, controller: string, client?: PublicClient) => Promise<Hex>;
|
|
343
|
+
export declare const readNoonWithdrawalRequestsRaw: (fromRequestId: bigint, toRequestId: bigint, client?: PublicClient) => Promise<Hex>;
|
|
344
|
+
export declare const readNoonVaultPosition: (user: string, client?: PublicClient) => Promise<NoonVaultPosition>;
|
|
345
|
+
export declare const fetchNoonUsdcVaultApy: (fetchImpl?: FetchLike) => Promise<number>;
|
|
346
|
+
export declare const fetchNoonUsdcVaultTvl: (fetchImpl?: FetchLike) => Promise<{
|
|
347
|
+
tvl: number;
|
|
348
|
+
tvlInUsd: number;
|
|
349
|
+
}>;
|
|
350
|
+
export declare const fetchNoonUsdcVaultMetrics: (fetchImpl?: FetchLike) => Promise<NoonVaultMetrics>;
|
|
351
|
+
export {};
|
|
352
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../packages/core/chain/chains/evm/noon/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,311 @@
|
|
|
1
|
+
import { EvmChain } from '@vultisig/core-chain/Chain';
|
|
2
|
+
import { getEvmClient } from '@vultisig/core-chain/chains/evm/client';
|
|
3
|
+
import { usdc } from '@vultisig/core-chain/coin/knownTokens';
|
|
4
|
+
import { encodeFunctionData, erc20Abi, getAddress, parseAbi } from 'viem';
|
|
5
|
+
export const noonUsdcVaultConfig = {
|
|
6
|
+
name: 'sUSN Delta Neutral Yield Vault',
|
|
7
|
+
provider: 'Noon',
|
|
8
|
+
chain: EvmChain.Ethereum,
|
|
9
|
+
assetAddress: usdc.id,
|
|
10
|
+
assetSymbol: 'USDC',
|
|
11
|
+
assetDecimals: 6,
|
|
12
|
+
shareSymbol: 'naccUSDC',
|
|
13
|
+
shareDecimals: 6,
|
|
14
|
+
// Accountable/Noon loan address used by off-chain APY and TVL APIs.
|
|
15
|
+
loanAddress: '0xc3Edd8B28C41749Eed38c2A33a78e3E046DFB876',
|
|
16
|
+
// ERC-7540/ERC-4626 vault and share-token contract used for user transactions.
|
|
17
|
+
vaultAddress: '0xA73424f1Ac94b3ef0D0c9af4F2967c87D4AF25D9',
|
|
18
|
+
minDepositAssets: 100000000n,
|
|
19
|
+
minRedeemShares: 95000000n,
|
|
20
|
+
maxCapacityAssets: 10000000000000n,
|
|
21
|
+
redemptionWindow: {
|
|
22
|
+
closesDayOfWeek: 3,
|
|
23
|
+
closesTimeUtc: '23:00',
|
|
24
|
+
settlementDays: 7,
|
|
25
|
+
},
|
|
26
|
+
};
|
|
27
|
+
export const noonVaultAbi = parseAbi([
|
|
28
|
+
'function asset() view returns (address)',
|
|
29
|
+
'function balanceOf(address account) view returns (uint256)',
|
|
30
|
+
'function decimals() view returns (uint8)',
|
|
31
|
+
'function deposit(uint256 assets, address receiver) returns (uint256 shares)',
|
|
32
|
+
'function previewDeposit(uint256 assets) view returns (uint256 shares)',
|
|
33
|
+
'function previewRedeem(uint256 shares) view returns (uint256 assets)',
|
|
34
|
+
'function previewWithdraw(uint256 assets) view returns (uint256 shares)',
|
|
35
|
+
'function requestRedeem(uint256 shares, address receiver, address owner) returns (uint256 requestId)',
|
|
36
|
+
'function withdraw(uint256 assets, address receiver, address owner) returns (uint256 shares)',
|
|
37
|
+
'function sharePrice() view returns (uint256)',
|
|
38
|
+
'function convertToAssets(uint256 shares) view returns (uint256 assets)',
|
|
39
|
+
'function totalAssets() view returns (uint256)',
|
|
40
|
+
'function totalSupply() view returns (uint256)',
|
|
41
|
+
'function totalQueuedShares() view returns (uint256)',
|
|
42
|
+
'function queue() view returns (uint256 lastRequestId, uint256 nextRequestId)',
|
|
43
|
+
'function MIN_AMOUNT_WEI() view returns (uint256)',
|
|
44
|
+
'function claimableRedeemRequest(uint256 requestId, address controller) view returns (uint256 shares)',
|
|
45
|
+
'function pendingRedeemRequest(uint256 requestId, address controller) view returns (uint256 shares)',
|
|
46
|
+
'function getState(address user) view returns ((uint256 maxMint,uint256 maxWithdraw,uint256 depositAssets,uint256 redeemShares,uint256 depositPrice,uint256 mintPrice,uint256 redeemPrice,uint256 withdrawPrice,uint256 pendingDepositRequest,uint256 pendingRedeemRequest))',
|
|
47
|
+
]);
|
|
48
|
+
const withdrawalRequestAbi = parseAbi(['function withdrawalRequest(uint256 requestId, address controller) view']);
|
|
49
|
+
const withdrawalRequestsAbi = parseAbi(['function withdrawalRequests(uint256 from, uint256 to) view']);
|
|
50
|
+
const noonVaultsApiUrl = 'https://back.noon.capital/api/v1/vaults';
|
|
51
|
+
const accountableLoanApiUrl = `https://yield.accountable.capital/api/loan/address/${noonUsdcVaultConfig.loanAddress}`;
|
|
52
|
+
const normalizeAddress = (address) => getAddress(address).toLowerCase();
|
|
53
|
+
const getClient = (client) => client ?? getEvmClient(EvmChain.Ethereum);
|
|
54
|
+
const getFetch = (fetchImpl) => {
|
|
55
|
+
const resolved = fetchImpl ?? globalThis.fetch;
|
|
56
|
+
if (!resolved) {
|
|
57
|
+
throw new Error('No fetch implementation available');
|
|
58
|
+
}
|
|
59
|
+
return resolved.bind(globalThis);
|
|
60
|
+
};
|
|
61
|
+
const readJson = async (fetchImpl, url) => {
|
|
62
|
+
const response = await fetchImpl(url);
|
|
63
|
+
if (!response.ok) {
|
|
64
|
+
throw new Error(`Noon API request failed: ${response.status} ${response.statusText}`);
|
|
65
|
+
}
|
|
66
|
+
return response.json();
|
|
67
|
+
};
|
|
68
|
+
const getObject = (value, name) => {
|
|
69
|
+
if (typeof value !== 'object' || value === null || Array.isArray(value)) {
|
|
70
|
+
throw new Error(`Noon API ${name} must be an object`);
|
|
71
|
+
}
|
|
72
|
+
return value;
|
|
73
|
+
};
|
|
74
|
+
const getNumber = (value, path) => {
|
|
75
|
+
const result = typeof value === 'number' ? value : typeof value === 'string' ? Number(value) : Number.NaN;
|
|
76
|
+
if (!Number.isFinite(result)) {
|
|
77
|
+
throw new Error(`Noon API ${path} must be a finite number`);
|
|
78
|
+
}
|
|
79
|
+
return result;
|
|
80
|
+
};
|
|
81
|
+
const assertAtLeast = (value, minimum, label) => {
|
|
82
|
+
if (value < minimum) {
|
|
83
|
+
throw new Error(`${label} must be at least ${minimum.toString()}`);
|
|
84
|
+
}
|
|
85
|
+
};
|
|
86
|
+
export const encodeNoonDeposit = (assets, receiver) => encodeFunctionData({
|
|
87
|
+
abi: noonVaultAbi,
|
|
88
|
+
functionName: 'deposit',
|
|
89
|
+
args: [assets, receiver],
|
|
90
|
+
});
|
|
91
|
+
export const encodeNoonRequestRedeem = (shares, receiver, owner = receiver) => encodeFunctionData({
|
|
92
|
+
abi: noonVaultAbi,
|
|
93
|
+
functionName: 'requestRedeem',
|
|
94
|
+
args: [shares, receiver, owner],
|
|
95
|
+
});
|
|
96
|
+
export const encodeNoonWithdraw = (assets, receiver, owner = receiver) => encodeFunctionData({
|
|
97
|
+
abi: noonVaultAbi,
|
|
98
|
+
functionName: 'withdraw',
|
|
99
|
+
args: [assets, receiver, owner],
|
|
100
|
+
});
|
|
101
|
+
export const encodeNoonUsdcApprove = (amount) => encodeFunctionData({
|
|
102
|
+
abi: erc20Abi,
|
|
103
|
+
functionName: 'approve',
|
|
104
|
+
args: [noonUsdcVaultConfig.vaultAddress, amount],
|
|
105
|
+
});
|
|
106
|
+
export const getNoonDepositContractCall = (assets, receiver) => {
|
|
107
|
+
assertAtLeast(assets, noonUsdcVaultConfig.minDepositAssets, 'Noon deposit assets');
|
|
108
|
+
return {
|
|
109
|
+
chain: EvmChain.Ethereum,
|
|
110
|
+
contractAddress: noonUsdcVaultConfig.vaultAddress,
|
|
111
|
+
abi: noonVaultAbi,
|
|
112
|
+
functionName: 'deposit',
|
|
113
|
+
args: [assets, receiver],
|
|
114
|
+
value: 0n,
|
|
115
|
+
};
|
|
116
|
+
};
|
|
117
|
+
export const getNoonRequestRedeemContractCall = (shares, receiver, owner = receiver) => {
|
|
118
|
+
assertAtLeast(shares, noonUsdcVaultConfig.minRedeemShares, 'Noon redeem shares');
|
|
119
|
+
return {
|
|
120
|
+
chain: EvmChain.Ethereum,
|
|
121
|
+
contractAddress: noonUsdcVaultConfig.vaultAddress,
|
|
122
|
+
abi: noonVaultAbi,
|
|
123
|
+
functionName: 'requestRedeem',
|
|
124
|
+
args: [shares, receiver, owner],
|
|
125
|
+
value: 0n,
|
|
126
|
+
};
|
|
127
|
+
};
|
|
128
|
+
export const getNoonWithdrawContractCall = (assets, receiver, owner = receiver) => ({
|
|
129
|
+
chain: EvmChain.Ethereum,
|
|
130
|
+
contractAddress: noonUsdcVaultConfig.vaultAddress,
|
|
131
|
+
abi: noonVaultAbi,
|
|
132
|
+
functionName: 'withdraw',
|
|
133
|
+
args: [assets, receiver, owner],
|
|
134
|
+
value: 0n,
|
|
135
|
+
});
|
|
136
|
+
export const getNoonUsdcApproveContractCall = (amount) => ({
|
|
137
|
+
chain: EvmChain.Ethereum,
|
|
138
|
+
contractAddress: noonUsdcVaultConfig.assetAddress,
|
|
139
|
+
abi: erc20Abi,
|
|
140
|
+
functionName: 'approve',
|
|
141
|
+
args: [noonUsdcVaultConfig.vaultAddress, amount],
|
|
142
|
+
value: 0n,
|
|
143
|
+
});
|
|
144
|
+
export const getNoonUsdcAllowance = (owner, client) => getClient(client).readContract({
|
|
145
|
+
address: noonUsdcVaultConfig.assetAddress,
|
|
146
|
+
abi: erc20Abi,
|
|
147
|
+
functionName: 'allowance',
|
|
148
|
+
args: [owner, noonUsdcVaultConfig.vaultAddress],
|
|
149
|
+
});
|
|
150
|
+
export const getNoonDepositTxPlan = async ({ owner, assets, client, }) => {
|
|
151
|
+
const currentAllowance = await getNoonUsdcAllowance(owner, client);
|
|
152
|
+
return {
|
|
153
|
+
currentAllowance,
|
|
154
|
+
...(currentAllowance < assets ? { approval: getNoonUsdcApproveContractCall(assets) } : {}),
|
|
155
|
+
deposit: getNoonDepositContractCall(assets, owner),
|
|
156
|
+
};
|
|
157
|
+
};
|
|
158
|
+
export const readNoonVaultPreviewDeposit = (assets, client) => getClient(client).readContract({
|
|
159
|
+
address: noonUsdcVaultConfig.vaultAddress,
|
|
160
|
+
abi: noonVaultAbi,
|
|
161
|
+
functionName: 'previewDeposit',
|
|
162
|
+
args: [assets],
|
|
163
|
+
});
|
|
164
|
+
export const readNoonVaultPreviewRedeem = (shares, client) => getClient(client).readContract({
|
|
165
|
+
address: noonUsdcVaultConfig.vaultAddress,
|
|
166
|
+
abi: noonVaultAbi,
|
|
167
|
+
functionName: 'previewRedeem',
|
|
168
|
+
args: [shares],
|
|
169
|
+
});
|
|
170
|
+
export const readNoonVaultPreviewWithdraw = (assets, client) => getClient(client).readContract({
|
|
171
|
+
address: noonUsdcVaultConfig.vaultAddress,
|
|
172
|
+
abi: noonVaultAbi,
|
|
173
|
+
functionName: 'previewWithdraw',
|
|
174
|
+
args: [assets],
|
|
175
|
+
});
|
|
176
|
+
export const readNoonVaultSharePrice = (client) => getClient(client).readContract({
|
|
177
|
+
address: noonUsdcVaultConfig.vaultAddress,
|
|
178
|
+
abi: noonVaultAbi,
|
|
179
|
+
functionName: 'sharePrice',
|
|
180
|
+
});
|
|
181
|
+
export const readNoonVaultConvertToAssets = (shares, client) => getClient(client).readContract({
|
|
182
|
+
address: noonUsdcVaultConfig.vaultAddress,
|
|
183
|
+
abi: noonVaultAbi,
|
|
184
|
+
functionName: 'convertToAssets',
|
|
185
|
+
args: [shares],
|
|
186
|
+
});
|
|
187
|
+
export const readNoonVaultMinAmountWei = (client) => getClient(client).readContract({
|
|
188
|
+
address: noonUsdcVaultConfig.vaultAddress,
|
|
189
|
+
abi: noonVaultAbi,
|
|
190
|
+
functionName: 'MIN_AMOUNT_WEI',
|
|
191
|
+
});
|
|
192
|
+
export const readNoonVaultQueue = async (client) => {
|
|
193
|
+
const publicClient = getClient(client);
|
|
194
|
+
const [queue, totalQueuedShares] = await Promise.all([
|
|
195
|
+
publicClient.readContract({
|
|
196
|
+
address: noonUsdcVaultConfig.vaultAddress,
|
|
197
|
+
abi: noonVaultAbi,
|
|
198
|
+
functionName: 'queue',
|
|
199
|
+
}),
|
|
200
|
+
publicClient.readContract({
|
|
201
|
+
address: noonUsdcVaultConfig.vaultAddress,
|
|
202
|
+
abi: noonVaultAbi,
|
|
203
|
+
functionName: 'totalQueuedShares',
|
|
204
|
+
}),
|
|
205
|
+
]);
|
|
206
|
+
return {
|
|
207
|
+
lastRequestId: queue[0],
|
|
208
|
+
nextRequestId: queue[1],
|
|
209
|
+
totalQueuedShares,
|
|
210
|
+
};
|
|
211
|
+
};
|
|
212
|
+
export const readNoonVaultState = (user, client) => getClient(client).readContract({
|
|
213
|
+
address: noonUsdcVaultConfig.vaultAddress,
|
|
214
|
+
abi: noonVaultAbi,
|
|
215
|
+
functionName: 'getState',
|
|
216
|
+
args: [user],
|
|
217
|
+
});
|
|
218
|
+
export const readNoonClaimableRedeemRequest = (requestId, controller, client) => getClient(client).readContract({
|
|
219
|
+
address: noonUsdcVaultConfig.vaultAddress,
|
|
220
|
+
abi: noonVaultAbi,
|
|
221
|
+
functionName: 'claimableRedeemRequest',
|
|
222
|
+
args: [requestId, controller],
|
|
223
|
+
});
|
|
224
|
+
export const readNoonPendingRedeemRequest = (requestId, controller, client) => getClient(client).readContract({
|
|
225
|
+
address: noonUsdcVaultConfig.vaultAddress,
|
|
226
|
+
abi: noonVaultAbi,
|
|
227
|
+
functionName: 'pendingRedeemRequest',
|
|
228
|
+
args: [requestId, controller],
|
|
229
|
+
});
|
|
230
|
+
export const readNoonWithdrawalRequestRaw = async (requestId, controller, client) => {
|
|
231
|
+
const { data } = await getClient(client).call({
|
|
232
|
+
to: noonUsdcVaultConfig.vaultAddress,
|
|
233
|
+
data: encodeFunctionData({
|
|
234
|
+
abi: withdrawalRequestAbi,
|
|
235
|
+
functionName: 'withdrawalRequest',
|
|
236
|
+
args: [requestId, controller],
|
|
237
|
+
}),
|
|
238
|
+
});
|
|
239
|
+
return data ?? '0x';
|
|
240
|
+
};
|
|
241
|
+
export const readNoonWithdrawalRequestsRaw = async (fromRequestId, toRequestId, client) => {
|
|
242
|
+
const { data } = await getClient(client).call({
|
|
243
|
+
to: noonUsdcVaultConfig.vaultAddress,
|
|
244
|
+
data: encodeFunctionData({
|
|
245
|
+
abi: withdrawalRequestsAbi,
|
|
246
|
+
functionName: 'withdrawalRequests',
|
|
247
|
+
args: [fromRequestId, toRequestId],
|
|
248
|
+
}),
|
|
249
|
+
});
|
|
250
|
+
return data ?? '0x';
|
|
251
|
+
};
|
|
252
|
+
export const readNoonVaultPosition = async (user, client) => {
|
|
253
|
+
const publicClient = getClient(client);
|
|
254
|
+
const [state, shareBalance, queue] = await Promise.all([
|
|
255
|
+
readNoonVaultState(user, publicClient),
|
|
256
|
+
publicClient.readContract({
|
|
257
|
+
address: noonUsdcVaultConfig.vaultAddress,
|
|
258
|
+
abi: noonVaultAbi,
|
|
259
|
+
functionName: 'balanceOf',
|
|
260
|
+
args: [user],
|
|
261
|
+
}),
|
|
262
|
+
readNoonVaultQueue(publicClient),
|
|
263
|
+
]);
|
|
264
|
+
const currentAssets = await readNoonVaultConvertToAssets(shareBalance, publicClient);
|
|
265
|
+
const claimableAssets = state.maxWithdraw;
|
|
266
|
+
const claimableRedeemShares = state.redeemShares;
|
|
267
|
+
const pendingRedeemShares = state.pendingRedeemRequest;
|
|
268
|
+
const redemptionState = claimableAssets > 0n || claimableRedeemShares > 0n ? 'claimable' : pendingRedeemShares > 0n ? 'pending' : 'none';
|
|
269
|
+
return {
|
|
270
|
+
...state,
|
|
271
|
+
shareBalance,
|
|
272
|
+
currentAssets,
|
|
273
|
+
claimableAssets,
|
|
274
|
+
claimableRedeemShares,
|
|
275
|
+
pendingRedeemShares,
|
|
276
|
+
redemptionState,
|
|
277
|
+
queue,
|
|
278
|
+
};
|
|
279
|
+
};
|
|
280
|
+
export const fetchNoonUsdcVaultApy = async (fetchImpl) => {
|
|
281
|
+
const data = getObject(await readJson(getFetch(fetchImpl), noonVaultsApiUrl), 'vaults response');
|
|
282
|
+
const vaults = data.vaults;
|
|
283
|
+
if (!Array.isArray(vaults)) {
|
|
284
|
+
throw new Error('Noon API vaults response must contain a vaults array');
|
|
285
|
+
}
|
|
286
|
+
const target = vaults.find(vault => {
|
|
287
|
+
const record = getObject(vault, 'vault');
|
|
288
|
+
return normalizeAddress(String(record.loan_address)) === normalizeAddress(noonUsdcVaultConfig.loanAddress);
|
|
289
|
+
});
|
|
290
|
+
if (!target) {
|
|
291
|
+
throw new Error(`Noon API did not include loan ${noonUsdcVaultConfig.loanAddress}`);
|
|
292
|
+
}
|
|
293
|
+
const sevenDay = getObject(getObject(getObject(target, 'vault')['7d'], '7d').net, '7d.net');
|
|
294
|
+
return getNumber(sevenDay.apy_pct, '7d.net.apy_pct');
|
|
295
|
+
};
|
|
296
|
+
export const fetchNoonUsdcVaultTvl = async (fetchImpl) => {
|
|
297
|
+
const data = getObject(await readJson(getFetch(fetchImpl), accountableLoanApiUrl), 'loan response');
|
|
298
|
+
const computed = getObject(data.loan_computed, 'loan_computed');
|
|
299
|
+
return {
|
|
300
|
+
tvl: getNumber(computed.tvl, 'loan_computed.tvl'),
|
|
301
|
+
tvlInUsd: getNumber(computed.tvl_in_usd, 'loan_computed.tvl_in_usd'),
|
|
302
|
+
};
|
|
303
|
+
};
|
|
304
|
+
export const fetchNoonUsdcVaultMetrics = async (fetchImpl) => {
|
|
305
|
+
const [apy7dNetPercent, tvl] = await Promise.all([fetchNoonUsdcVaultApy(fetchImpl), fetchNoonUsdcVaultTvl(fetchImpl)]);
|
|
306
|
+
return {
|
|
307
|
+
apy7dNetPercent,
|
|
308
|
+
...tvl,
|
|
309
|
+
};
|
|
310
|
+
};
|
|
311
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../packages/core/chain/chains/evm/noon/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"queryOneInch.js","sourceRoot":"","sources":["../../../../../../../../packages/core/chain/coin/find/resolvers/evm/queryOneInch.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAA;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,uCAAuC,CAAA;AACnE,OAAO,EAAE,mBAAmB,EAAE,MAAM,+CAA+C,CAAA;AACnF,OAAO,EAAE,KAAK,EAAE,MAAM,2BAA2B,CAAA;AAEjD,IAAI,aAAa,GAAkB,IAAI,CAAA;AACvC,MAAM,UAAU,GAAG,GAAG,CAAA;AAEtB,MAAM,CAAC,MAAM,YAAY,GAAG,KAAK,EAAK,SAAiB,EAAc,EAAE;IACrE,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;IAEtB,IAAI,aAAa,IAAI,aAAa,GAAG,UAAU,GAAG,GAAG,EAAE,CAAC;QACtD,MAAM,KAAK,CAAC,aAAa,GAAG,UAAU,GAAG,GAAG,CAAC,CAAA;QAC7C,OAAO,YAAY,CAAC,SAAS,CAAC,CAAA;IAChC,CAAC;IAED,aAAa,GAAG,GAAG,CAAA;IACnB,MAAM,GAAG,GAAG,GAAG,UAAU,SAAS,SAAS,EAAE,CAAA;IAC7C,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,CAAA;IAEjC,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;QAC5B,MAAM,IAAI,WAAW,EAAE,CAAA;IACzB,CAAC;IAED,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;QAC5B,MAAM,KAAK,CAAC,UAAU,CAAC,CAAA;QACvB,OAAO,YAAY,CAAC,SAAS,CAAC,CAAA;IAChC,CAAC;IAED,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACjB,mBAAmB,CAAC,QAAQ,CAAC,CAAA;
|
|
1
|
+
{"version":3,"file":"queryOneInch.js","sourceRoot":"","sources":["../../../../../../../../packages/core/chain/coin/find/resolvers/evm/queryOneInch.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAA;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,uCAAuC,CAAA;AACnE,OAAO,EAAE,mBAAmB,EAAE,MAAM,+CAA+C,CAAA;AACnF,OAAO,EAAE,KAAK,EAAE,MAAM,2BAA2B,CAAA;AAEjD,IAAI,aAAa,GAAkB,IAAI,CAAA;AACvC,MAAM,UAAU,GAAG,GAAG,CAAA;AAEtB,MAAM,CAAC,MAAM,YAAY,GAAG,KAAK,EAAK,SAAiB,EAAc,EAAE;IACrE,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;IAEtB,IAAI,aAAa,IAAI,aAAa,GAAG,UAAU,GAAG,GAAG,EAAE,CAAC;QACtD,MAAM,KAAK,CAAC,aAAa,GAAG,UAAU,GAAG,GAAG,CAAC,CAAA;QAC7C,OAAO,YAAY,CAAC,SAAS,CAAC,CAAA;IAChC,CAAC;IAED,aAAa,GAAG,GAAG,CAAA;IACnB,MAAM,GAAG,GAAG,GAAG,UAAU,SAAS,SAAS,EAAE,CAAA;IAC7C,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,CAAA;IAEjC,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;QAC5B,MAAM,IAAI,WAAW,EAAE,CAAA;IACzB,CAAC;IAED,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;QAC5B,MAAM,KAAK,CAAC,UAAU,CAAC,CAAA;QACvB,OAAO,YAAY,CAAC,SAAS,CAAC,CAAA;IAChC,CAAC;IAED,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACjB,MAAM,mBAAmB,CAAC,QAAQ,CAAC,CAAA;IACrC,CAAC;IAED,OAAO,QAAQ,CAAC,IAAI,EAAE,CAAA;AACxB,CAAC,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getPublicKey.d.ts","sourceRoot":"","sources":["../../../../../packages/core/chain/publicKey/getPublicKey.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;AACrD,OAAO,EAAE,KAAK,EAAE,MAAM,4BAA4B,CAAA;AAQlD,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AAGzC,KAAK,KAAK,GAAG;IACX,KAAK,EAAE,KAAK,CAAA;IACZ,UAAU,EAAE,UAAU,CAAA;IACtB,YAAY,EAAE,MAAM,CAAA;IACpB,UAAU,EAAE,UAAU,CAAA;IACtB,eAAe,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAA;CACjD,CAAA;AAED,eAAO,MAAM,YAAY,GAAI,kEAAkE,KAAK,
|
|
1
|
+
{"version":3,"file":"getPublicKey.d.ts","sourceRoot":"","sources":["../../../../../packages/core/chain/publicKey/getPublicKey.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;AACrD,OAAO,EAAE,KAAK,EAAE,MAAM,4BAA4B,CAAA;AAQlD,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AAGzC,KAAK,KAAK,GAAG;IACX,KAAK,EAAE,KAAK,CAAA;IACZ,UAAU,EAAE,UAAU,CAAA;IACtB,YAAY,EAAE,MAAM,CAAA;IACpB,UAAU,EAAE,UAAU,CAAA;IACtB,eAAe,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAA;CACjD,CAAA;AAED,eAAO,MAAM,YAAY,GAAI,kEAAkE,KAAK,sEAuEnG,CAAA"}
|
|
@@ -20,24 +20,36 @@ export const getPublicKey = ({ chain, walletCore, hexChainCode, publicKeys, chai
|
|
|
20
20
|
}
|
|
21
21
|
const keysignType = signatureAlgorithms[getChainKind(chain)];
|
|
22
22
|
const publicKeyType = getTwPublicKeyType({ walletCore, chain });
|
|
23
|
-
|
|
23
|
+
// Derive via ECDSA BIP32 path (shared by the ecdsa branch and the
|
|
24
|
+
// 32-byte-chainPublicKey fallback below).
|
|
25
|
+
const deriveEcdsaPublicKey = () => {
|
|
26
|
+
const path = walletCore.CoinTypeExt.derivationPath(coinType);
|
|
27
|
+
if (!path) {
|
|
28
|
+
throw new Error(`WalletCore returned empty derivation path (chain=${chain}, coinType=${coinType})`);
|
|
29
|
+
}
|
|
30
|
+
return derivePublicKey({ hexRootPubKey: publicKeys.ecdsa, hexChainCode, path });
|
|
31
|
+
};
|
|
32
|
+
let derivedPublicKey = chainPublicKey ??
|
|
24
33
|
match(keysignType, {
|
|
25
|
-
ecdsa:
|
|
26
|
-
const path = walletCore.CoinTypeExt.derivationPath(coinType);
|
|
27
|
-
if (!path) {
|
|
28
|
-
throw new Error(`WalletCore returned empty derivation path (chain=${chain}, coinType=${coinType})`);
|
|
29
|
-
}
|
|
30
|
-
return derivePublicKey({
|
|
31
|
-
hexRootPubKey: publicKeys.ecdsa,
|
|
32
|
-
hexChainCode,
|
|
33
|
-
path,
|
|
34
|
-
});
|
|
35
|
-
},
|
|
34
|
+
ecdsa: deriveEcdsaPublicKey,
|
|
36
35
|
eddsa: () => publicKeys.eddsa,
|
|
37
36
|
mldsa: () => {
|
|
38
37
|
throw new Error('MLDSA public key is not derived via ECDSA/EdDSA paths');
|
|
39
38
|
},
|
|
40
39
|
});
|
|
40
|
+
// Some vault backup formats (older KeyImport vaults) store the raw 32-byte
|
|
41
|
+
// X coordinate for secp256k1 chains instead of the standard 33-byte
|
|
42
|
+
// compressed form. WalletCore's createWithData rejects 32-byte ECDSA keys
|
|
43
|
+
// ("Invalid length: Expected 33 but received 32"). Detect this case and
|
|
44
|
+
// fall back to BIP32 derivation from the root ECDSA key, which always
|
|
45
|
+
// produces a 33-byte compressed key. EdDSA keys are legitimately 32 bytes
|
|
46
|
+
// so guard by keysignType.
|
|
47
|
+
if (chainPublicKey !== undefined &&
|
|
48
|
+
keysignType === 'ecdsa' &&
|
|
49
|
+
Buffer.from(derivedPublicKey, 'hex').length === 32 &&
|
|
50
|
+
publicKeys.ecdsa) {
|
|
51
|
+
derivedPublicKey = deriveEcdsaPublicKey();
|
|
52
|
+
}
|
|
41
53
|
const publicKeyData = chain === Chain.Cardano
|
|
42
54
|
? getCardanoPublicKeyData({
|
|
43
55
|
publicKey: derivedPublicKey,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getPublicKey.js","sourceRoot":"","sources":["../../../../../packages/core/chain/publicKey/getPublicKey.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,MAAM,4BAA4B,CAAA;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAA;AAC7D,OAAO,EAAE,WAAW,EAAE,MAAM,oCAAoC,CAAA;AAChE,OAAO,EAAE,mBAAmB,EAAE,MAAM,iDAAiD,CAAA;AACrF,OAAO,EAAE,KAAK,EAAE,MAAM,2BAA2B,CAAA;AAEjD,OAAO,EAAE,uBAAuB,EAAE,MAAM,WAAW,CAAA;AACnD,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAA;AAEzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAA;AAU5D,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,UAAU,EAAE,eAAe,EAAS,EAAE,EAAE;IACtG,IAAI,KAAK,KAAK,KAAK,CAAC,IAAI,EAAE,CAAC;QACzB,MAAM,IAAI,KAAK,CAAC,mGAAmG,CAAC,CAAA;IACtH,CAAC;IAED,MAAM,QAAQ,GAAG,WAAW,CAAC;QAC3B,UAAU;QACV,KAAK;KACN,CAAC,CAAA;IAEF,MAAM,cAAc,GAAG,eAAe,EAAE,CAAC,KAAK,CAAC,CAAA;IAE/C,IAAI,eAAe,KAAK,SAAS,IAAI,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC;QAChG,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAA;IAC/C,CAAC;IAED,MAAM,WAAW,GAAG,mBAAmB,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAA;IAE5D,MAAM,aAAa,GAAG,kBAAkB,CAAC,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC,CAAA;IAE/D,
|
|
1
|
+
{"version":3,"file":"getPublicKey.js","sourceRoot":"","sources":["../../../../../packages/core/chain/publicKey/getPublicKey.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@vultisig/core-chain",
|
|
3
|
-
"version": "2.16.
|
|
3
|
+
"version": "2.16.4",
|
|
4
4
|
"description": "Blockchain chain logic shared across Vultisig clients",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|
|
@@ -530,6 +530,11 @@
|
|
|
530
530
|
"import": "./dist/chains/evm/erc721/getErc721Balance.js",
|
|
531
531
|
"default": "./dist/chains/evm/erc721/getErc721Balance.js"
|
|
532
532
|
},
|
|
533
|
+
"./chains/evm/noon": {
|
|
534
|
+
"types": "./dist/chains/evm/noon/index.d.ts",
|
|
535
|
+
"import": "./dist/chains/evm/noon/index.js",
|
|
536
|
+
"default": "./dist/chains/evm/noon/index.js"
|
|
537
|
+
},
|
|
533
538
|
"./chains/evm/tx/fee": {
|
|
534
539
|
"types": "./dist/chains/evm/tx/fee/index.d.ts",
|
|
535
540
|
"import": "./dist/chains/evm/tx/fee/index.js",
|