@gvnrdao/dh-lit-actions 0.0.68 → 0.0.111
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/package.json +8 -2
- package/pkg-dist/pkg-src/constants/chunks/lit-actions-registry.d.ts +1 -9
- package/pkg-dist/pkg-src/constants/chunks/lit-actions-registry.d.ts.map +1 -1
- package/pkg-dist/pkg-src/constants/chunks/lit-actions-registry.js +140 -152
- package/pkg-dist/pkg-src/constants/chunks/lit-actions-registry.js.map +1 -1
- package/pkg-dist/pkg-src/constants/chunks/package-registry.d.ts.map +1 -1
- package/pkg-dist/pkg-src/constants/chunks/package-registry.js +0 -2
- package/pkg-dist/pkg-src/constants/chunks/package-registry.js.map +1 -1
- package/pkg-dist/pkg-src/executors/chunks/vault-snapshot-executor.d.ts.map +1 -1
- package/pkg-dist/pkg-src/executors/chunks/vault-snapshot-executor.js +1 -0
- package/pkg-dist/pkg-src/executors/chunks/vault-snapshot-executor.js.map +1 -1
- package/pkg-dist/pkg-src/interfaces/chunks/diamond-hands-lit-actions.i.d.ts +12 -0
- package/pkg-dist/pkg-src/interfaces/chunks/diamond-hands-lit-actions.i.d.ts.map +1 -1
- package/pkg-dist/pkg-src/interfaces/chunks/lit-action-registry.i.d.ts +0 -2
- package/pkg-dist/pkg-src/interfaces/chunks/lit-action-registry.i.d.ts.map +1 -1
- package/pkg-dist/pkg-src/utils/chunks/cid-utils.d.ts.map +1 -1
- package/pkg-dist/pkg-src/utils/chunks/cid-utils.js +5 -0
- package/pkg-dist/pkg-src/utils/chunks/cid-utils.js.map +1 -1
- package/pkg-dist/pkg-src/utils/chunks/lit-action-helpers.d.ts.map +1 -1
- package/pkg-dist/pkg-src/utils/chunks/lit-action-helpers.js +18 -4
- package/pkg-dist/pkg-src/utils/chunks/lit-action-helpers.js.map +1 -1
- package/pkg-dist/pkg-src/utils/chunks/pkp-setup.d.ts.map +1 -1
- package/pkg-dist/pkg-src/utils/chunks/pkp-setup.js +6 -2
- package/pkg-dist/pkg-src/utils/chunks/pkp-setup.js.map +1 -1
- package/pkg-dist/src/constants/chunks/bitcoin-network-config.js +4 -4
- package/pkg-dist/src/constants/chunks/bitcoin-network-config.js.map +1 -1
- package/pkg-dist/src/constants/chunks/quantum-time.d.ts +7 -7
- package/pkg-dist/src/constants/chunks/quantum-time.js +7 -7
- package/pkg-dist/src/interfaces/chunks/bitcoin-data-provider.i.d.ts +6 -0
- package/pkg-dist/src/interfaces/chunks/bitcoin-data-provider.i.d.ts.map +1 -1
- package/pkg-dist/src/interfaces/chunks/owner-authorization.d.ts +18 -0
- package/pkg-dist/src/interfaces/chunks/owner-authorization.d.ts.map +1 -1
- package/pkg-dist/src/interfaces/chunks/vault-balance-module.i.d.ts +2 -1
- package/pkg-dist/src/interfaces/chunks/vault-balance-module.i.d.ts.map +1 -1
- package/pkg-dist/src/interfaces/chunks/vault-balance.i.d.ts +2 -0
- package/pkg-dist/src/interfaces/chunks/vault-balance.i.d.ts.map +1 -1
- package/pkg-dist/src/interfaces/chunks/vault-snapshot.i.d.ts +2 -0
- package/pkg-dist/src/interfaces/chunks/vault-snapshot.i.d.ts.map +1 -1
- package/pkg-dist/src/modules/authorization.module.d.ts +86 -0
- package/pkg-dist/src/modules/authorization.module.d.ts.map +1 -1
- package/pkg-dist/src/modules/authorization.module.js +175 -0
- package/pkg-dist/src/modules/authorization.module.js.map +1 -1
- package/pkg-dist/src/modules/bitcoin/address.d.ts +40 -0
- package/pkg-dist/src/modules/bitcoin/address.d.ts.map +1 -0
- package/pkg-dist/src/modules/bitcoin/address.js +323 -0
- package/pkg-dist/src/modules/bitcoin/address.js.map +1 -0
- package/pkg-dist/src/modules/bitcoin/provider.d.ts +55 -0
- package/pkg-dist/src/modules/bitcoin/provider.d.ts.map +1 -0
- package/pkg-dist/src/modules/bitcoin/provider.js +67 -0
- package/pkg-dist/src/modules/bitcoin/provider.js.map +1 -0
- package/pkg-dist/src/modules/bitcoin/signature.d.ts +24 -0
- package/pkg-dist/src/modules/bitcoin/signature.d.ts.map +1 -0
- package/pkg-dist/src/modules/bitcoin/signature.js +64 -0
- package/pkg-dist/src/modules/bitcoin/signature.js.map +1 -0
- package/pkg-dist/src/modules/bitcoin/transaction.d.ts +63 -0
- package/pkg-dist/src/modules/bitcoin/transaction.d.ts.map +1 -0
- package/pkg-dist/src/modules/bitcoin/transaction.js +187 -0
- package/pkg-dist/src/modules/bitcoin/transaction.js.map +1 -0
- package/pkg-dist/src/modules/bitcoin-data-provider.module.d.ts +22 -1
- package/pkg-dist/src/modules/bitcoin-data-provider.module.d.ts.map +1 -1
- package/pkg-dist/src/modules/bitcoin-data-provider.module.js +189 -18
- package/pkg-dist/src/modules/bitcoin-data-provider.module.js.map +1 -1
- package/pkg-dist/src/modules/price-oracle.module.d.ts +12 -1
- package/pkg-dist/src/modules/price-oracle.module.d.ts.map +1 -1
- package/pkg-dist/src/modules/price-oracle.module.js +127 -45
- package/pkg-dist/src/modules/price-oracle.module.js.map +1 -1
- package/pkg-dist/src/modules/quantum-time.module.d.ts +1 -1
- package/pkg-dist/src/modules/quantum-time.module.d.ts.map +1 -1
- package/pkg-dist/src/modules/quantum-time.module.js +9 -6
- package/pkg-dist/src/modules/quantum-time.module.js.map +1 -1
- package/pkg-dist/src/modules/vault-balance.module.d.ts +3 -1
- package/pkg-dist/src/modules/vault-balance.module.d.ts.map +1 -1
- package/pkg-dist/src/modules/vault-balance.module.js +59 -2
- package/pkg-dist/src/modules/vault-balance.module.js.map +1 -1
- package/pkg-dist/src/modules/vault-snapshot.d.ts +11 -1
- package/pkg-dist/src/modules/vault-snapshot.d.ts.map +1 -1
- package/pkg-dist/src/modules/vault-snapshot.js +123 -33
- package/pkg-dist/src/modules/vault-snapshot.js.map +1 -1
|
@@ -48,7 +48,7 @@ export declare function getCurrentQuantumTimestamp(): number;
|
|
|
48
48
|
/**
|
|
49
49
|
* Check if currently in dead zone (last 8s before boundary + first 8s after boundary)
|
|
50
50
|
*
|
|
51
|
-
* Dead zone = seconds
|
|
51
|
+
* Dead zone = seconds 292-299 OR 0-7 of each quantum (with 300s window)
|
|
52
52
|
*
|
|
53
53
|
* @param now - Current Unix timestamp (defaults to Date.now()/1000)
|
|
54
54
|
* @returns True if in dead zone
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"quantum-time.module.d.ts","sourceRoot":"","sources":["../../../src/modules/quantum-time.module.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAOH;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAIzD;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAEvD;AAED;;;;;;GAMG;AACH,wBAAgB,0BAA0B,IAAI,MAAM,CAGnD;AAED;;;;;;;GAOG;AACH,wBAAgB,YAAY,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,
|
|
1
|
+
{"version":3,"file":"quantum-time.module.d.ts","sourceRoot":"","sources":["../../../src/modules/quantum-time.module.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAOH;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAIzD;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAEvD;AAED;;;;;;GAMG;AACH,wBAAgB,0BAA0B,IAAI,MAAM,CAGnD;AAED;;;;;;;GAOG;AACH,wBAAgB,YAAY,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAMlD;AAED;;;;;GAKG;AACH,wBAAgB,4BAA4B,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,CAIjE;AACD;;;;;;;;;;;GAWG;AACH,wBAAsB,wBAAwB,IAAI,OAAO,CAAC,IAAI,CAAC,CA8B9D;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,wBAAwB,CACtC,oBAAoB,EAAE,MAAM,EAC5B,GAAG,CAAC,EAAE,MAAM,GACX,IAAI,CAWN;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,gBAAgB,CAC9B,kBAAkB,EAAE,MAAM,EAC1B,GAAG,CAAC,EAAE,MAAM,GACX,OAAO,CAgBT;AAED;;;;;GAKG;AACH,wBAAgB,uBAAuB,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,CAI5D;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG;IAC5C,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,EAAE,MAAM,CAAC;IACtB,gBAAgB,EAAE,MAAM,CAAC;IACzB,YAAY,EAAE,OAAO,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;CACrB,CAcA;AAED;;;;;;;GAOG;AACH,wBAAsB,kBAAkB,IAAI,OAAO,CAAC;IAClD,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,EAAE,MAAM,CAAC;IACtB,gBAAgB,EAAE,MAAM,CAAC;IACzB,YAAY,EAAE,OAAO,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;CACrB,CAAC,CAMD;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,CAgBtD"}
|
|
@@ -70,7 +70,7 @@ function getCurrentQuantumTimestamp() {
|
|
|
70
70
|
/**
|
|
71
71
|
* Check if currently in dead zone (last 8s before boundary + first 8s after boundary)
|
|
72
72
|
*
|
|
73
|
-
* Dead zone = seconds
|
|
73
|
+
* Dead zone = seconds 292-299 OR 0-7 of each quantum (with 300s window)
|
|
74
74
|
*
|
|
75
75
|
* @param now - Current Unix timestamp (defaults to Date.now()/1000)
|
|
76
76
|
* @returns True if in dead zone
|
|
@@ -79,7 +79,8 @@ function isInDeadZone(now) {
|
|
|
79
79
|
const currentTime = now ?? Math.floor(Date.now() / 1000);
|
|
80
80
|
const timeInQuantum = currentTime % constants_1.QUANTUM_WINDOW_SECONDS;
|
|
81
81
|
// Last 8 seconds OR first 8 seconds
|
|
82
|
-
|
|
82
|
+
const deadZoneStart = constants_1.QUANTUM_WINDOW_SECONDS - constants_1.DEAD_ZONE_SECONDS / 2; // 292 for 300s window
|
|
83
|
+
return timeInQuantum >= deadZoneStart || timeInQuantum < constants_1.DEAD_ZONE_SECONDS / 2;
|
|
83
84
|
}
|
|
84
85
|
/**
|
|
85
86
|
* Get seconds remaining in current quantum
|
|
@@ -112,15 +113,17 @@ async function waitForSafeQuantumMoment() {
|
|
|
112
113
|
}
|
|
113
114
|
// Calculate wait time to reach second 8 of next quantum
|
|
114
115
|
let waitSeconds;
|
|
115
|
-
|
|
116
|
-
|
|
116
|
+
const deadZoneStart = constants_1.QUANTUM_WINDOW_SECONDS - constants_1.DEAD_ZONE_SECONDS / 2; // 292 for 300s window
|
|
117
|
+
const safeStart = constants_1.DEAD_ZONE_SECONDS / 2; // 8 seconds
|
|
118
|
+
if (timeInQuantum >= deadZoneStart) {
|
|
119
|
+
// In dead zone before boundary (e.g., seconds 292-299 for 300s window)
|
|
117
120
|
// Wait to second 8 of next quantum
|
|
118
|
-
waitSeconds =
|
|
121
|
+
waitSeconds = constants_1.QUANTUM_WINDOW_SECONDS - timeInQuantum + safeStart;
|
|
119
122
|
}
|
|
120
123
|
else {
|
|
121
124
|
// In dead zone after boundary (seconds 0-7)
|
|
122
125
|
// Wait until second 8
|
|
123
|
-
waitSeconds =
|
|
126
|
+
waitSeconds = safeStart - timeInQuantum;
|
|
124
127
|
}
|
|
125
128
|
console.log(`[Quantum] Waiting ${waitSeconds}s for safe moment (current time in quantum: ${timeInQuantum}s)`);
|
|
126
129
|
await new Promise((resolve) => setTimeout(resolve, waitSeconds * 1000));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"quantum-time.module.js","sourceRoot":"","sources":["../../../src/modules/quantum-time.module.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;;AAaH,0CAIC;AAQD,sCAEC;AASD,gEAGC;AAUD,
|
|
1
|
+
{"version":3,"file":"quantum-time.module.js","sourceRoot":"","sources":["../../../src/modules/quantum-time.module.ts"],"names":[],"mappings":"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"}
|
|
@@ -70,10 +70,11 @@ export declare class VaultBalanceModule implements IVaultBalance {
|
|
|
70
70
|
*
|
|
71
71
|
* @param positionId - The position ID to check
|
|
72
72
|
* @param vaultAddress - Bitcoin address of the vault
|
|
73
|
+
* @param skipUTXOValidation - If true, use fast balance-only path (skips UTXO validation)
|
|
73
74
|
* @returns Complete breakdown of vault balance
|
|
74
75
|
* @throws Error if authorized spends are in invalid state
|
|
75
76
|
*/
|
|
76
|
-
calculateTrustedBalance(positionId: string, vaultAddress: string): Promise<VaultBalanceResult>;
|
|
77
|
+
calculateTrustedBalance(positionId: string, vaultAddress: string, skipUTXOValidation?: boolean): Promise<VaultBalanceResult>;
|
|
77
78
|
/**
|
|
78
79
|
* Get just the trusted balance amount
|
|
79
80
|
*
|
|
@@ -112,6 +113,7 @@ export declare class VaultBalanceModule implements IVaultBalance {
|
|
|
112
113
|
* @returns True if UTXO is authorized, false otherwise
|
|
113
114
|
*/
|
|
114
115
|
private isUTXOAuthorized;
|
|
116
|
+
private computeAuthorizedSpendsHash;
|
|
115
117
|
/**
|
|
116
118
|
* Query smart contract for authorized spends
|
|
117
119
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vault-balance.module.d.ts","sourceRoot":"","sources":["../../../src/modules/vault-balance.module.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EACL,eAAe,EACf,IAAI,EAEJ,kBAAkB,EAClB,kBAAkB,EACnB,MAAM,sCAAsC,CAAC;
|
|
1
|
+
{"version":3,"file":"vault-balance.module.d.ts","sourceRoot":"","sources":["../../../src/modules/vault-balance.module.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EACL,eAAe,EACf,IAAI,EAEJ,kBAAkB,EAClB,kBAAkB,EACnB,MAAM,sCAAsC,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,6CAA6C,CAAC;AAK5E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0CG;AACH,qBAAa,kBAAmB,YAAW,aAAa;IACtD,OAAO,CAAC,MAAM,CAAqB;IACnC,OAAO,CAAC,eAAe,CAAuB;gBAElC,MAAM,EAAE,kBAAkB;IAKtC;;;;;;;;;;;;;;;OAeG;IACG,uBAAuB,CAC3B,UAAU,EAAE,MAAM,EAClB,YAAY,EAAE,MAAM,EACpB,kBAAkB,CAAC,EAAE,OAAO,GAC3B,OAAO,CAAC,kBAAkB,CAAC;IA8H9B;;;;;;;;OAQG;IACG,iBAAiB,CACrB,UAAU,EAAE,MAAM,EAClB,YAAY,EAAE,MAAM,GACnB,OAAO,CAAC,MAAM,CAAC;IAKlB;;;;;;;;OAQG;IACG,iBAAiB,CACrB,UAAU,EAAE,MAAM,EAClB,YAAY,EAAE,MAAM,GACnB,OAAO,CAAC,IAAI,EAAE,CAAC;IAKlB;;;;;;;;OAQG;IACG,eAAe,CACnB,UAAU,EAAE,MAAM,EAClB,YAAY,EAAE,MAAM,EACpB,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,GACX,OAAO,CAAC,OAAO,CAAC;IAUnB;;;;;;OAMG;IACH,OAAO,CAAC,gBAAgB;IASxB,OAAO,CAAC,2BAA2B;IA6CnC;;;;;;;;;;;;;;OAcG;cACa,+BAA+B,CAC7C,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,eAAe,EAAE,CAAC;CA8F9B;AAED;;;;;GAKG;AACH,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,kBAAkB,GACzB,kBAAkB,CAEpB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG"}
|
|
@@ -73,11 +73,42 @@ class VaultBalanceModule {
|
|
|
73
73
|
*
|
|
74
74
|
* @param positionId - The position ID to check
|
|
75
75
|
* @param vaultAddress - Bitcoin address of the vault
|
|
76
|
+
* @param skipUTXOValidation - If true, use fast balance-only path (skips UTXO validation)
|
|
76
77
|
* @returns Complete breakdown of vault balance
|
|
77
78
|
* @throws Error if authorized spends are in invalid state
|
|
78
79
|
*/
|
|
79
|
-
async calculateTrustedBalance(positionId, vaultAddress) {
|
|
80
|
+
async calculateTrustedBalance(positionId, vaultAddress, skipUTXOValidation) {
|
|
80
81
|
const minConfirmations = this.config.minConfirmations || 6;
|
|
82
|
+
// Fast path: Use balance endpoint instead of fetching all UTXOs
|
|
83
|
+
if (skipUTXOValidation) {
|
|
84
|
+
// 1. Get balance from Bitcoin network (fast, no UTXO details)
|
|
85
|
+
const totalBalance = await this.bitcoinProvider.getBalance(vaultAddress);
|
|
86
|
+
// 2. Get authorized spends from smart contract
|
|
87
|
+
const authorizedSpends = await this.getAuthorizedSpendsFromContract(positionId);
|
|
88
|
+
// 3. Calculate authorized balance (sum of all authorized spends)
|
|
89
|
+
const authorizedBalance = authorizedSpends.reduce((sum, spend) => sum + spend.satoshis, 0n);
|
|
90
|
+
// 4. Calculate available balance = Total - Authorized
|
|
91
|
+
const availableBalance = totalBalance > authorizedBalance
|
|
92
|
+
? totalBalance - authorizedBalance
|
|
93
|
+
: 0n;
|
|
94
|
+
return {
|
|
95
|
+
// Total from Bitcoin
|
|
96
|
+
totalUTXOs: [], // Empty for fast path
|
|
97
|
+
totalBalance,
|
|
98
|
+
// Authorized from Contract
|
|
99
|
+
authorizedUTXOs: authorizedSpends,
|
|
100
|
+
authorizedBalance,
|
|
101
|
+
authorizedSpendsHash: this.computeAuthorizedSpendsHash(positionId, authorizedSpends),
|
|
102
|
+
// Available = Total - Authorized (THIS IS THE TRUSTED BALANCE)
|
|
103
|
+
availableUTXOs: [], // Empty for fast path
|
|
104
|
+
availableBalance,
|
|
105
|
+
// Metadata
|
|
106
|
+
vaultAddress,
|
|
107
|
+
positionId,
|
|
108
|
+
timestamp: Date.now(),
|
|
109
|
+
};
|
|
110
|
+
}
|
|
111
|
+
// Full path: Get all UTXOs and validate authorized spends
|
|
81
112
|
// 1. Get all UTXOs from Bitcoin network
|
|
82
113
|
const utxoSet = await this.bitcoinProvider.getUTXOSet(vaultAddress, minConfirmations);
|
|
83
114
|
// 2. Get authorized spends from smart contract
|
|
@@ -115,6 +146,7 @@ class VaultBalanceModule {
|
|
|
115
146
|
// Authorized from Contract
|
|
116
147
|
authorizedUTXOs: authorizedSpends,
|
|
117
148
|
authorizedBalance,
|
|
149
|
+
authorizedSpendsHash: this.computeAuthorizedSpendsHash(positionId, authorizedSpends),
|
|
118
150
|
// Available = Total - Authorized (THIS IS THE TRUSTED BALANCE)
|
|
119
151
|
availableUTXOs,
|
|
120
152
|
availableBalance,
|
|
@@ -173,6 +205,31 @@ class VaultBalanceModule {
|
|
|
173
205
|
isUTXOAuthorized(utxo, authorizedSpends) {
|
|
174
206
|
return authorizedSpends.some((spend) => spend.txid === utxo.txid && spend.vout === utxo.vout);
|
|
175
207
|
}
|
|
208
|
+
computeAuthorizedSpendsHash(positionId, authorizedSpends) {
|
|
209
|
+
const positionIdBytes32 = positionId.startsWith("0x")
|
|
210
|
+
? positionId
|
|
211
|
+
: `0x${positionId.padStart(64, "0")}`;
|
|
212
|
+
const hashedSpends = authorizedSpends.map((spend) => {
|
|
213
|
+
return ethers.utils.keccak256(ethers.utils.defaultAbiCoder.encode([
|
|
214
|
+
"bytes32",
|
|
215
|
+
"uint32",
|
|
216
|
+
"uint256",
|
|
217
|
+
"bytes32",
|
|
218
|
+
"uint256",
|
|
219
|
+
"bytes32",
|
|
220
|
+
"uint256",
|
|
221
|
+
], [
|
|
222
|
+
ethers.utils.keccak256(ethers.utils.toUtf8Bytes(spend.txid || "")),
|
|
223
|
+
spend.vout,
|
|
224
|
+
spend.satoshis.toString(),
|
|
225
|
+
ethers.utils.keccak256(ethers.utils.toUtf8Bytes(spend.targetAddress || "")),
|
|
226
|
+
spend.targetAmount.toString(),
|
|
227
|
+
ethers.utils.keccak256(ethers.utils.toUtf8Bytes(spend.changeAddress || "")),
|
|
228
|
+
spend.timestamp,
|
|
229
|
+
]));
|
|
230
|
+
});
|
|
231
|
+
return ethers.utils.keccak256(ethers.utils.defaultAbiCoder.encode(["bytes32", "bytes32[]"], [positionIdBytes32, hashedSpends]));
|
|
232
|
+
}
|
|
176
233
|
/**
|
|
177
234
|
* Query smart contract for authorized spends
|
|
178
235
|
*
|
|
@@ -254,7 +311,7 @@ class VaultBalanceModule {
|
|
|
254
311
|
// StaticJsonRpcProvider with explicit network bypasses auto-detection (required for ngrok URLs)
|
|
255
312
|
const provider = new ethers.providers.StaticJsonRpcProvider(rpcUrl, {
|
|
256
313
|
name: "any",
|
|
257
|
-
chainId:
|
|
314
|
+
chainId: this.config.chainId,
|
|
258
315
|
});
|
|
259
316
|
// @ts-ignore - ethers is available in LIT runtime
|
|
260
317
|
const contract = new ethers.Contract(this.config.contractAddress, getAuthorizedSpendsABI, provider);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vault-balance.module.js","sourceRoot":"","sources":["../../../src/modules/vault-balance.module.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;GAUG;;;
|
|
1
|
+
{"version":3,"file":"vault-balance.module.js","sourceRoot":"","sources":["../../../src/modules/vault-balance.module.ts"],"names":[],"mappings":"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"}
|
|
@@ -31,9 +31,18 @@ export declare class VaultSnapshotModule {
|
|
|
31
31
|
* about a vault's health in a single call.
|
|
32
32
|
*
|
|
33
33
|
* @param positionId - Position to snapshot
|
|
34
|
+
* @param skipUTXOValidation - If true, use fast balance-only path (skips UTXO validation)
|
|
34
35
|
* @returns Complete VaultSnapshot with all metrics
|
|
35
36
|
*/
|
|
36
|
-
getVaultSnapshot(positionId: string): Promise<VaultSnapshot>;
|
|
37
|
+
getVaultSnapshot(positionId: string, skipUTXOValidation?: boolean): Promise<VaultSnapshot>;
|
|
38
|
+
/**
|
|
39
|
+
* Fast vault snapshot using balance method only (no UTXO validation)
|
|
40
|
+
* This is optimized for speed and should be used when UTXO details are not needed.
|
|
41
|
+
*
|
|
42
|
+
* @param positionId - Position to snapshot
|
|
43
|
+
* @returns Complete VaultSnapshot with all metrics (using balance method)
|
|
44
|
+
*/
|
|
45
|
+
getVaultSnapshotFast(positionId: string): Promise<VaultSnapshot>;
|
|
37
46
|
/**
|
|
38
47
|
* Query position state from smart contract
|
|
39
48
|
*
|
|
@@ -53,6 +62,7 @@ export declare class VaultSnapshotModule {
|
|
|
53
62
|
termStartTimestamp: number;
|
|
54
63
|
selectedTerm: number;
|
|
55
64
|
status: number;
|
|
65
|
+
expiryAt: number;
|
|
56
66
|
}>;
|
|
57
67
|
/**
|
|
58
68
|
* Parse vault address based on format and network
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vault-snapshot.d.ts","sourceRoot":"","sources":["../../../src/modules/vault-snapshot.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAIH,OAAO,EACL,aAAa,EACb,mBAAmB,EACpB,MAAM,uCAAuC,CAAC;
|
|
1
|
+
{"version":3,"file":"vault-snapshot.d.ts","sourceRoot":"","sources":["../../../src/modules/vault-snapshot.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAIH,OAAO,EACL,aAAa,EACb,mBAAmB,EACpB,MAAM,uCAAuC,CAAC;AAwB/C;;;;;GAKG;AACH,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,MAAM,CAAsB;gBAExB,MAAM,EAAE,mBAAmB;IAIvC;;;;;;;;;OASG;IACG,gBAAgB,CACpB,UAAU,EAAE,MAAM,EAClB,kBAAkB,CAAC,EAAE,OAAO,GAC3B,OAAO,CAAC,aAAa,CAAC;IA6GzB;;;;;;OAMG;IACG,oBAAoB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;IA6GtE;;;;;;;;;OASG;cACa,kBAAkB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC;QAC9D,UAAU,EAAE,MAAM,CAAC;QACnB,KAAK,EAAE,MAAM,CAAC;QACd,QAAQ,EAAE,MAAM,CAAC;QACjB,YAAY,EAAE,MAAM,CAAC;QACrB,OAAO,EAAE,MAAM,CAAC;QAChB,kBAAkB,EAAE,MAAM,CAAC;QAC3B,YAAY,EAAE,MAAM,CAAC;QACrB,MAAM,EAAE,MAAM,CAAC;QACf,QAAQ,EAAE,MAAM,CAAC;KAClB,CAAC;IAkIF;;;;;;;;;;OAUG;IACH,OAAO,CAAC,iBAAiB;IA8BzB;;;;;;;OAOG;IACG,cAAc,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAK1D;;;;;;;OAOG;IACG,kBAAkB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAK7D;;;;;;;OAOG;IACG,mBAAmB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAK9D;;;;;;;;;OASG;IACG,uBAAuB,CAC3B,UAAU,EAAE,MAAM,EAClB,cAAc,EAAE,MAAM,EACtB,gBAAgB,EAAE,MAAM,GACvB,OAAO,CAAC,OAAO,CAAC;CAWpB;AAED;;;;;GAKG;AACH,wBAAgB,yBAAyB,CACvC,MAAM,EAAE,mBAAmB,GAC1B,mBAAmB,CAErB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoDG"}
|
|
@@ -38,14 +38,15 @@ class VaultSnapshotModule {
|
|
|
38
38
|
* about a vault's health in a single call.
|
|
39
39
|
*
|
|
40
40
|
* @param positionId - Position to snapshot
|
|
41
|
+
* @param skipUTXOValidation - If true, use fast balance-only path (skips UTXO validation)
|
|
41
42
|
* @returns Complete VaultSnapshot with all metrics
|
|
42
43
|
*/
|
|
43
|
-
async getVaultSnapshot(positionId) {
|
|
44
|
+
async getVaultSnapshot(positionId, skipUTXOValidation) {
|
|
44
45
|
// 1. Query contract for position state
|
|
45
46
|
const positionState = await this.queryPositionState(positionId);
|
|
46
47
|
console.log(`[Vault Snapshot] Raw vault address from contract: "${positionState.vaultAddress}"`);
|
|
47
48
|
// 2. Get available balance (Total UTXOs - Authorized Spends)
|
|
48
|
-
const balanceResult = await this.config.vaultBalance.calculateTrustedBalance(positionId, positionState.vaultAddress);
|
|
49
|
+
const balanceResult = await this.config.vaultBalance.calculateTrustedBalance(positionId, positionState.vaultAddress, skipUTXOValidation);
|
|
49
50
|
// 3. Get BTC price from oracle
|
|
50
51
|
const btcPriceUsd = await this.config.priceOracle.getBTCPrice();
|
|
51
52
|
// 4. Fetch protocol parameters from smart contracts
|
|
@@ -81,10 +82,92 @@ class VaultSnapshotModule {
|
|
|
81
82
|
termStartTimestamp: positionState.termStartTimestamp,
|
|
82
83
|
selectedTerm: positionState.selectedTerm,
|
|
83
84
|
status: positionState.status, // Loan status enum value (0-7)
|
|
85
|
+
expiryAt: positionState.expiryAt,
|
|
84
86
|
// Bitcoin state
|
|
85
87
|
totalBTCSats: balanceResult.totalBalance,
|
|
86
88
|
totalUTXOs: balanceResult.totalUTXOs,
|
|
87
89
|
authorizedSpendsSats: balanceResult.authorizedBalance,
|
|
90
|
+
authorizedSpendsHash: balanceResult.authorizedSpendsHash,
|
|
91
|
+
availableBTCSats: balanceResult.availableBalance,
|
|
92
|
+
availableUTXOs: balanceResult.availableUTXOs,
|
|
93
|
+
// Price data
|
|
94
|
+
btcPriceUsd,
|
|
95
|
+
// Calculated metrics
|
|
96
|
+
collateralValueUsd: collateralMetrics.collateralValueUsd,
|
|
97
|
+
collateralRatioBps: collateralMetrics.collateralRatioBps,
|
|
98
|
+
// Term status
|
|
99
|
+
termDurationDays: termStatus.termDurationDays,
|
|
100
|
+
termLengthDays: termStatus.termLengthDays,
|
|
101
|
+
isExpired: termStatus.isExpired,
|
|
102
|
+
daysUntilExpiry: termStatus.daysUntilExpiry,
|
|
103
|
+
daysIntoGracePeriod: termStatus.daysIntoGracePeriod,
|
|
104
|
+
// Liquidation risk
|
|
105
|
+
currentLiquidationThreshold,
|
|
106
|
+
isLiquidatable,
|
|
107
|
+
marginToLiquidationBps,
|
|
108
|
+
// Protocol parameters (from smart contracts)
|
|
109
|
+
liquidationThresholdBps,
|
|
110
|
+
originationFeeBps: termFees.originationFeeBps,
|
|
111
|
+
extensionFeeBps: termFees.extensionFeeBps,
|
|
112
|
+
// Metadata
|
|
113
|
+
timestamp: Date.now(),
|
|
114
|
+
};
|
|
115
|
+
}
|
|
116
|
+
/**
|
|
117
|
+
* Fast vault snapshot using balance method only (no UTXO validation)
|
|
118
|
+
* This is optimized for speed and should be used when UTXO details are not needed.
|
|
119
|
+
*
|
|
120
|
+
* @param positionId - Position to snapshot
|
|
121
|
+
* @returns Complete VaultSnapshot with all metrics (using balance method)
|
|
122
|
+
*/
|
|
123
|
+
async getVaultSnapshotFast(positionId) {
|
|
124
|
+
// 1. Query contract for position state
|
|
125
|
+
const positionState = await this.queryPositionState(positionId);
|
|
126
|
+
console.log(`[Vault Snapshot] Raw vault address from contract: "${positionState.vaultAddress}"`);
|
|
127
|
+
// 2. Get available balance using fast balance method (always skip UTXO validation)
|
|
128
|
+
const balanceResult = await this.config.vaultBalance.calculateTrustedBalance(positionId, positionState.vaultAddress, true // Always skip UTXO validation for fast path
|
|
129
|
+
);
|
|
130
|
+
// 3. Get BTC price from oracle
|
|
131
|
+
const btcPriceUsd = await this.config.priceOracle.getBTCPrice();
|
|
132
|
+
// 4. Fetch protocol parameters from smart contracts
|
|
133
|
+
const protocolParams = (0, protocol_parameters_module_1.createProtocolParametersModule)({
|
|
134
|
+
termManagerAddress: this.config.termManagerAddress,
|
|
135
|
+
loanOpsManagerAddress: this.config.loanOpsManagerAddress,
|
|
136
|
+
chain: this.config.chain,
|
|
137
|
+
chainId: this.config.chainId || 1, // Default to mainnet if not provided
|
|
138
|
+
rpcUrl: this.config.rpcUrl,
|
|
139
|
+
});
|
|
140
|
+
// Fetch liquidation threshold and term fees in parallel
|
|
141
|
+
const [liquidationThresholdBps, termFees] = await Promise.all([
|
|
142
|
+
protocolParams.getLiquidationThreshold(),
|
|
143
|
+
protocolParams.getTermFees(positionState.selectedTerm),
|
|
144
|
+
]);
|
|
145
|
+
// 5. Calculate term status
|
|
146
|
+
const termStatus = (0, business_rules_math_module_1.calculateTermStatus)(positionState.termStartTimestamp, positionState.selectedTerm);
|
|
147
|
+
// 6. Calculate liquidation threshold (escalates if expired)
|
|
148
|
+
const currentLiquidationThreshold = (0, business_rules_math_module_1.calculateLiquidationThreshold)(termStatus.isExpired, termStatus.daysIntoGracePeriod);
|
|
149
|
+
// 7. Calculate collateral ratio (using BigInt for precision)
|
|
150
|
+
const collateralMetrics = (0, business_rules_math_module_1.calculateCollateralMetrics)(balanceResult.availableBalance, btcPriceUsd, positionState.ucdDebt);
|
|
151
|
+
// 8. Calculate liquidation risk
|
|
152
|
+
const isLiquidatable = collateralMetrics.collateralRatioBps < currentLiquidationThreshold;
|
|
153
|
+
const marginToLiquidationBps = collateralMetrics.collateralRatioBps - currentLiquidationThreshold;
|
|
154
|
+
// 9. Assemble complete snapshot
|
|
155
|
+
return {
|
|
156
|
+
// Raw state
|
|
157
|
+
positionId: positionState.positionId,
|
|
158
|
+
pkpId: positionState.pkpId,
|
|
159
|
+
borrower: positionState.borrower,
|
|
160
|
+
vaultAddress: positionState.vaultAddress,
|
|
161
|
+
ucdDebt: positionState.ucdDebt,
|
|
162
|
+
termStartTimestamp: positionState.termStartTimestamp,
|
|
163
|
+
selectedTerm: positionState.selectedTerm,
|
|
164
|
+
status: positionState.status, // Loan status enum value (0-7)
|
|
165
|
+
expiryAt: positionState.expiryAt,
|
|
166
|
+
// Bitcoin state
|
|
167
|
+
totalBTCSats: balanceResult.totalBalance,
|
|
168
|
+
totalUTXOs: balanceResult.totalUTXOs,
|
|
169
|
+
authorizedSpendsSats: balanceResult.authorizedBalance,
|
|
170
|
+
authorizedSpendsHash: balanceResult.authorizedSpendsHash,
|
|
88
171
|
availableBTCSats: balanceResult.availableBalance,
|
|
89
172
|
availableUTXOs: balanceResult.availableUTXOs,
|
|
90
173
|
// Price data
|
|
@@ -125,8 +208,39 @@ class VaultSnapshotModule {
|
|
|
125
208
|
const positionIdBytes32 = positionId.startsWith("0x")
|
|
126
209
|
? positionId
|
|
127
210
|
: `0x${positionId.padStart(64, "0")}`;
|
|
128
|
-
//
|
|
129
|
-
|
|
211
|
+
// Get RPC URL
|
|
212
|
+
let rpcUrl;
|
|
213
|
+
if (this.config.rpcUrl) {
|
|
214
|
+
rpcUrl = this.config.rpcUrl;
|
|
215
|
+
}
|
|
216
|
+
else {
|
|
217
|
+
// @ts-ignore - Lit.Actions available in LIT runtime
|
|
218
|
+
rpcUrl = await Lit.Actions.getRpcUrl({ chain: this.config.chain });
|
|
219
|
+
}
|
|
220
|
+
// Query contract
|
|
221
|
+
// @ts-ignore - ethers available in LIT runtime
|
|
222
|
+
// StaticJsonRpcProvider with explicit network bypasses auto-detection (required for ngrok URLs in LIT sandbox)
|
|
223
|
+
const provider = new ethers.providers.StaticJsonRpcProvider(rpcUrl, {
|
|
224
|
+
name: "any",
|
|
225
|
+
chainId: this.config.chainId,
|
|
226
|
+
});
|
|
227
|
+
// CRITICAL: Must call PositionManagerCore facet directly to get full Position struct with vaultAddress
|
|
228
|
+
// The Diamond proxy's getPositionDetails() returns simplified struct without vaultAddress
|
|
229
|
+
// Step 1: Get core facet address from Diamond proxy
|
|
230
|
+
// @ts-ignore - ethers available in LIT runtime
|
|
231
|
+
const diamondContract = new ethers.Contract(this.config.contractAddress, [
|
|
232
|
+
{
|
|
233
|
+
inputs: [],
|
|
234
|
+
name: "core",
|
|
235
|
+
outputs: [{ internalType: "address", name: "", type: "address" }],
|
|
236
|
+
stateMutability: "view",
|
|
237
|
+
type: "function",
|
|
238
|
+
},
|
|
239
|
+
], provider);
|
|
240
|
+
const coreAddress = await diamondContract.core();
|
|
241
|
+
// Step 2: Call getPositionDetails on core facet (returns full struct with vaultAddress)
|
|
242
|
+
// ABI for PositionManagerCoreModule.getPositionDetails
|
|
243
|
+
const coreGetPositionDetailsABI = [
|
|
130
244
|
{
|
|
131
245
|
inputs: [
|
|
132
246
|
{ internalType: "bytes32", name: "positionId", type: "bytes32" },
|
|
@@ -138,19 +252,11 @@ class VaultSnapshotModule {
|
|
|
138
252
|
{ internalType: "bytes32", name: "positionId", type: "bytes32" },
|
|
139
253
|
{ internalType: "bytes32", name: "pkpId", type: "bytes32" },
|
|
140
254
|
{ internalType: "uint256", name: "ucdDebt", type: "uint256" },
|
|
141
|
-
{
|
|
142
|
-
internalType: "string",
|
|
143
|
-
name: "vaultAddress",
|
|
144
|
-
type: "string",
|
|
145
|
-
},
|
|
255
|
+
{ internalType: "string", name: "vaultAddress", type: "string" },
|
|
146
256
|
{ internalType: "address", name: "borrower", type: "address" },
|
|
147
257
|
{ internalType: "uint40", name: "createdAt", type: "uint40" },
|
|
148
258
|
{ internalType: "uint40", name: "lastUpdated", type: "uint40" },
|
|
149
|
-
{
|
|
150
|
-
internalType: "uint16",
|
|
151
|
-
name: "selectedTerm",
|
|
152
|
-
type: "uint16",
|
|
153
|
-
},
|
|
259
|
+
{ internalType: "uint16", name: "selectedTerm", type: "uint16" },
|
|
154
260
|
{ internalType: "uint40", name: "expiryAt", type: "uint40" },
|
|
155
261
|
{
|
|
156
262
|
internalType: "enum LoanStatusLib.LoanStatus",
|
|
@@ -167,25 +273,8 @@ class VaultSnapshotModule {
|
|
|
167
273
|
type: "function",
|
|
168
274
|
},
|
|
169
275
|
];
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
if (this.config.rpcUrl) {
|
|
173
|
-
rpcUrl = this.config.rpcUrl;
|
|
174
|
-
}
|
|
175
|
-
else {
|
|
176
|
-
// @ts-ignore - Lit.Actions available in LIT runtime
|
|
177
|
-
rpcUrl = await Lit.Actions.getRpcUrl({ chain: this.config.chain });
|
|
178
|
-
}
|
|
179
|
-
// Query contract
|
|
180
|
-
// @ts-ignore - ethers available in LIT runtime
|
|
181
|
-
// StaticJsonRpcProvider with explicit network bypasses auto-detection (required for ngrok URLs in LIT sandbox)
|
|
182
|
-
const provider = new ethers.providers.StaticJsonRpcProvider(rpcUrl, {
|
|
183
|
-
name: "any",
|
|
184
|
-
chainId: this.config.chainId,
|
|
185
|
-
});
|
|
186
|
-
// @ts-ignore - ethers available in LIT runtime
|
|
187
|
-
const contract = new ethers.Contract(this.config.contractAddress, getPositionDetailsABI, provider);
|
|
188
|
-
const position = await contract.getPositionDetails(positionIdBytes32);
|
|
276
|
+
const coreContract = new ethers.Contract(coreAddress, coreGetPositionDetailsABI, provider);
|
|
277
|
+
const position = await coreContract.getPositionDetails(positionIdBytes32);
|
|
189
278
|
// Validate status is in valid range (0-7)
|
|
190
279
|
const statusNum = Number(position.status);
|
|
191
280
|
if (statusNum < 0 || statusNum > 7) {
|
|
@@ -211,6 +300,7 @@ class VaultSnapshotModule {
|
|
|
211
300
|
termStartTimestamp,
|
|
212
301
|
selectedTerm: selectedTermMonths,
|
|
213
302
|
status: statusNum,
|
|
303
|
+
expiryAt,
|
|
214
304
|
};
|
|
215
305
|
}
|
|
216
306
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vault-snapshot.js","sourceRoot":"","sources":["../../../src/modules/vault-snapshot.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"vault-snapshot.js","sourceRoot":"","sources":["../../../src/modules/vault-snapshot.ts"],"names":[],"mappings":"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"}
|