@eco-incorp/sauce 0.99.0 → 0.99.2
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/LICENSE.md +29 -0
- package/README.md +69 -249
- package/actions/dist/to-sauce.d.ts.map +1 -1
- package/actions/dist/to-sauce.js +4 -5
- package/dev-tools/README.md +11 -170
- package/docs/README.md +39 -0
- package/docs/api/README.md +71 -0
- package/docs/api/compiler.md +234 -0
- package/docs/api/coverage.md +117 -0
- package/docs/api/routes.md +110 -0
- package/docs/concepts/architecture.md +134 -0
- package/docs/concepts/saucescript.md +172 -0
- package/docs/examples/README.md +34 -0
- package/docs/examples/compile-program.ts +20 -0
- package/docs/examples/evm-execution.ts +59 -0
- package/docs/examples/first-intent.ts +56 -0
- package/docs/examples/protocol-approval.ts +33 -0
- package/docs/guides/builders-and-actions.md +108 -0
- package/docs/guides/compiling.md +264 -0
- package/docs/guides/intents.md +158 -0
- package/docs/guides/nested-intents.md +79 -0
- package/docs/guides/protocols-and-tokens.md +116 -0
- package/docs/guides/quick-start.md +64 -0
- package/docs/guides/solana.md +196 -0
- package/docs/guides/verification.md +253 -0
- package/package.json +9 -4
- package/sdk/dist/artifacts/V12Deployments.json +82 -0
- package/sdk/dist/artifacts/V12RuntimeBytecode.json +1 -1
- package/sdk/dist/artifacts/svm/engine-devnet.so +0 -0
- package/sdk/dist/artifacts/svm/engine-mainnet.so +0 -0
- package/sdk/dist/artifacts/svm/engine-wire-devnet.json +3 -3
- package/sdk/dist/artifacts/svm/engine-wire-mainnet.json +3 -3
- package/sdk/dist/deployments/index.d.ts +15 -39
- package/sdk/dist/deployments/index.d.ts.map +1 -1
- package/sdk/dist/deployments/index.js +23 -39
- package/sdk/dist/deployments/index.js.map +1 -1
- package/sdk/dist/deployments/v12-addresses.d.ts +85 -0
- package/sdk/dist/deployments/v12-addresses.d.ts.map +1 -0
- package/sdk/dist/deployments/v12-addresses.js +51 -0
- package/sdk/dist/deployments/v12-addresses.js.map +1 -0
- package/sdk/dist/deployments/v12.generated.d.ts +3 -3
- package/sdk/dist/deployments/v12.generated.d.ts.map +1 -1
- package/sdk/dist/deployments/v12.generated.js +3 -3
- package/sdk/dist/deployments/v12.generated.js.map +1 -1
- package/sdk/dist/deposit/index.d.ts +28 -102
- package/sdk/dist/deposit/index.d.ts.map +1 -1
- package/sdk/dist/deposit/index.js.map +1 -1
- package/sdk/dist/deposit/params.d.ts +1 -1
- package/sdk/dist/deposit/params.js +2 -2
- package/sdk/dist/deposit/params.js.map +1 -1
- package/sdk/dist/deposit/source.d.ts +1 -1
- package/sdk/dist/deposit/source.d.ts.map +1 -1
- package/sdk/dist/deposit/source.js +18 -33
- package/sdk/dist/deposit/source.js.map +1 -1
- package/sdk/dist/deposit/types.d.ts +5 -4
- package/sdk/dist/deposit/types.d.ts.map +1 -1
- package/sdk/dist/evm/engine.d.ts +32 -0
- package/sdk/dist/evm/engine.d.ts.map +1 -1
- package/sdk/dist/evm/engine.js +2 -0
- package/sdk/dist/evm/engine.js.map +1 -1
- package/sdk/dist/index.d.ts +1 -0
- package/sdk/dist/index.d.ts.map +1 -1
- package/sdk/dist/index.js +2 -0
- package/sdk/dist/index.js.map +1 -1
- package/sdk/dist/plugin/index.d.ts +16 -41
- package/sdk/dist/plugin/index.d.ts.map +1 -1
- package/sdk/dist/plugin/index.js +2 -6
- package/sdk/dist/plugin/index.js.map +1 -1
- package/sdk/dist/recipes/index.js +2 -2
- package/sdk/dist/recipes/settle.sauce.ts +1 -1
- package/sdk/dist/routes/index.d.ts +3 -3
- package/sdk/dist/routes/index.js +3 -3
- package/sdk/dist/routes/intent-dsl.d.ts +23 -10
- package/sdk/dist/routes/intent-dsl.d.ts.map +1 -1
- package/sdk/dist/routes/intent-dsl.js +19 -2
- package/sdk/dist/routes/intent-dsl.js.map +1 -1
- package/sdk/dist/routes/nest.d.ts +23 -0
- package/sdk/dist/routes/nest.d.ts.map +1 -1
- package/sdk/dist/routes/nest.js +2 -4
- package/sdk/dist/routes/nest.js.map +1 -1
- package/sdk/dist/routes/protocol-rewrite.d.ts +2 -2
- package/sdk/dist/routes/protocol-rewrite.d.ts.map +1 -1
- package/sdk/dist/routes/protocol-rewrite.js +19 -35
- package/sdk/dist/routes/protocol-rewrite.js.map +1 -1
- package/sdk/dist/routes/sauce-calls.d.ts +7 -13
- package/sdk/dist/routes/sauce-calls.d.ts.map +1 -1
- package/sdk/dist/routes/sauce-calls.js +6 -11
- package/sdk/dist/routes/sauce-calls.js.map +1 -1
- package/sdk/dist/routes/sauce-route.d.ts +24 -53
- package/sdk/dist/routes/sauce-route.d.ts.map +1 -1
- package/sdk/dist/routes/sauce-route.js +5 -6
- package/sdk/dist/routes/sauce-route.js.map +1 -1
- package/sdk/dist/routes/source-globals.generated.d.ts +931 -0
- package/sdk/dist/routes/source-globals.generated.d.ts.map +1 -0
- package/sdk/dist/routes/source-globals.generated.js +7 -0
- package/sdk/dist/routes/source-globals.generated.js.map +1 -0
- package/sdk/dist/std/token/token.svm.js +19 -14
- package/sdk/dist/svm/cpi-probe.d.ts +1 -1
- package/sdk/dist/svm/cpi-probe.d.ts.map +1 -1
- package/sdk/dist/svm/cpi-probe.js +5 -2
- package/sdk/dist/svm/cpi-probe.js.map +1 -1
- package/sdk/dist/svm/intent.d.ts +12 -40
- package/sdk/dist/svm/intent.d.ts.map +1 -1
- package/sdk/dist/svm/intent.js +22 -66
- package/sdk/dist/svm/intent.js.map +1 -1
- package/sdk/dist/svm/venues/byreal/index.d.ts.map +1 -1
- package/sdk/dist/svm/venues/byreal/index.js +4 -1
- package/sdk/dist/svm/venues/byreal/index.js.map +1 -1
- package/sdk/dist/svm/venues/carrot/index.d.ts.map +1 -1
- package/sdk/dist/svm/venues/carrot/index.js +4 -0
- package/sdk/dist/svm/venues/carrot/index.js.map +1 -1
- package/sdk/dist/svm/venues/cropper/index.d.ts +1 -1
- package/sdk/dist/svm/venues/cropper/index.js +1 -1
- package/sdk/dist/svm/venues/huma/index.d.ts.map +1 -1
- package/sdk/dist/svm/venues/huma/index.js +4 -1
- package/sdk/dist/svm/venues/huma/index.js.map +1 -1
- package/sdk/dist/svm/venues/index.d.ts +1 -0
- package/sdk/dist/svm/venues/index.d.ts.map +1 -1
- package/sdk/dist/svm/venues/index.js +1 -0
- package/sdk/dist/svm/venues/index.js.map +1 -1
- package/sdk/dist/svm/venues/math.d.ts +4 -1
- package/sdk/dist/svm/venues/math.d.ts.map +1 -1
- package/sdk/dist/svm/venues/math.js +4 -1
- package/sdk/dist/svm/venues/math.js.map +1 -1
- package/sdk/dist/svm/venues/meteora-damm-v1-stable/index.d.ts.map +1 -1
- package/sdk/dist/svm/venues/meteora-damm-v1-stable/index.js +4 -1
- package/sdk/dist/svm/venues/meteora-damm-v1-stable/index.js.map +1 -1
- package/sdk/dist/svm/venues/meteora-damm-v2/index.d.ts.map +1 -1
- package/sdk/dist/svm/venues/meteora-damm-v2/index.js +5 -2
- package/sdk/dist/svm/venues/meteora-damm-v2/index.js.map +1 -1
- package/sdk/dist/svm/venues/obric-v2/index.d.ts.map +1 -1
- package/sdk/dist/svm/venues/obric-v2/index.js +16 -5
- package/sdk/dist/svm/venues/obric-v2/index.js.map +1 -1
- package/sdk/dist/svm/venues/oracle-exponent.d.ts +82 -0
- package/sdk/dist/svm/venues/oracle-exponent.d.ts.map +1 -0
- package/sdk/dist/svm/venues/oracle-exponent.js +97 -0
- package/sdk/dist/svm/venues/oracle-exponent.js.map +1 -0
- package/sdk/dist/svm/venues/orca-legacy-token-swap/index.d.ts.map +1 -1
- package/sdk/dist/svm/venues/orca-legacy-token-swap/index.js +4 -1
- package/sdk/dist/svm/venues/orca-legacy-token-swap/index.js.map +1 -1
- package/sdk/dist/svm/venues/pumpswap/index.d.ts.map +1 -1
- package/sdk/dist/svm/venues/pumpswap/index.js +19 -13
- package/sdk/dist/svm/venues/pumpswap/index.js.map +1 -1
- package/sdk/dist/svm/venues/raydium-amm-v4/index.d.ts.map +1 -1
- package/sdk/dist/svm/venues/raydium-amm-v4/index.js +4 -1
- package/sdk/dist/svm/venues/raydium-amm-v4/index.js.map +1 -1
- package/sdk/dist/svm/venues/raydium-clmm/index.d.ts.map +1 -1
- package/sdk/dist/svm/venues/raydium-clmm/index.js +4 -1
- package/sdk/dist/svm/venues/raydium-clmm/index.js.map +1 -1
- package/sdk/dist/svm/venues/raydium-cp-swap/index.d.ts.map +1 -1
- package/sdk/dist/svm/venues/raydium-cp-swap/index.js +4 -1
- package/sdk/dist/svm/venues/raydium-cp-swap/index.js.map +1 -1
- package/sdk/dist/svm/venues/scorch/index.d.ts.map +1 -1
- package/sdk/dist/svm/venues/scorch/index.js +4 -1
- package/sdk/dist/svm/venues/scorch/index.js.map +1 -1
- package/sdk/dist/svm/venues/stabble-common.d.ts +1 -1
- package/sdk/dist/svm/venues/stabble-common.js +1 -1
- package/sdk/dist/svm/venues/types.d.ts +4 -1
- package/sdk/dist/svm/venues/types.d.ts.map +1 -1
- package/sdk/dist/svm/venues/woofi/index.d.ts.map +1 -1
- package/sdk/dist/svm/venues/woofi/index.js +4 -0
- package/sdk/dist/svm/venues/woofi/index.js.map +1 -1
- package/sdk/dist/svm/verify.d.ts +27 -133
- package/sdk/dist/svm/verify.d.ts.map +1 -1
- package/sdk/dist/svm/verify.js +72 -139
- package/sdk/dist/svm/verify.js.map +1 -1
- package/sdk/dist/swap/index.d.ts +16 -59
- package/sdk/dist/swap/index.d.ts.map +1 -1
- package/sdk/dist/swap/index.js +16 -59
- package/sdk/dist/swap/index.js.map +1 -1
- package/sdk/dist/token/source.d.ts.map +1 -1
- package/sdk/dist/token/source.js +4 -1
- package/sdk/dist/token/source.js.map +1 -1
- package/sdk/dist/verify/decode.d.ts +6 -6
- package/sdk/dist/verify/decode.js +7 -7
- package/sdk/dist/verify/index.js +2 -2
- package/sdk/dist/verify/intent.js +2 -2
- package/sdk/dist/verify/vectors.d.ts +1 -1
- package/sdk/dist/verify/vectors.d.ts.map +1 -1
- package/sdk/dist/verify/vectors.js +2 -2
- package/sdk/dist/verify/vectors.js.map +1 -1
- package/sdk/dist/verify/wire.d.ts +7 -4
- package/sdk/dist/verify/wire.d.ts.map +1 -1
- package/sdk/dist/verify/wire.js +7 -4
- package/sdk/dist/verify/wire.js.map +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/svm/venues/obric-v2/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/svm/venues/obric-v2/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
* plain 12-account Anchor ix with NO instructions-sysvar introspection and no
|
|
16
16
|
* maker-allowlist account (any signer with token accounts may swap); (3) the
|
|
17
17
|
* quote curve is known (the official obric-solana SDK / IDL). Obric already
|
|
18
|
-
* sits in third-party router CPI target sets. See
|
|
18
|
+
* sits in third-party router CPI target sets. See the historical venue investigation for the
|
|
19
19
|
* ranked prop-AMM ledger and the CPI-acceptance probe.
|
|
20
20
|
*
|
|
21
21
|
* The oracle-derivation caveat (honest): the on-chain program recomputes
|
|
@@ -32,9 +32,13 @@
|
|
|
32
32
|
*
|
|
33
33
|
* Byte offsets verified against the obric_solana IDL (SSTradingPair) and a
|
|
34
34
|
* real mainnet dump of pool AJ5HfGY32igLgUbDtfNRdrkjTSYkCVKdhmnFFfcZMJ1E.
|
|
35
|
+
*
|
|
36
|
+
* Original venue investigation (historical):
|
|
37
|
+
* https://github.com/eco-incorp/sauce/blob/d3686430ee308994f95309a8c9b2d5930d71cf5d/docs/svm-venues.md
|
|
35
38
|
*/
|
|
36
39
|
import { address, getAddressCodec } from "@solana/kit";
|
|
37
40
|
import { readUintLE } from "../math.js";
|
|
41
|
+
import { assertOracleExponent } from "../oracle-exponent.js";
|
|
38
42
|
import { TOKEN_2022_PROGRAM_ID, classifyMintProgram } from "../../token-program.js";
|
|
39
43
|
import { parseMintExtensions } from "../../token-extensions.js";
|
|
40
44
|
import { INSTRUCTIONS_SYSVAR } from "../../cpi-probe.js";
|
|
@@ -55,7 +59,7 @@ const POOL_DISCRIMINATOR = [0x3b, 0xde, 0x0f, 0xec, 0x62, 0x66, 0x5a, 0xe0];
|
|
|
55
59
|
/** sha256('global:swap')[0..8] (Obric's unified swap; == meteora's, both "global:swap"). */
|
|
56
60
|
export const OBRIC_SWAP_DISCRIMINATOR = [248, 198, 158, 145, 225, 117, 135, 200];
|
|
57
61
|
const POOL_ACCOUNT_SIZE = 666;
|
|
58
|
-
// SSTradingPair offsets (IDL-derived; see the field table in
|
|
62
|
+
// SSTradingPair offsets (IDL-derived; see the field table in the historical venue investigation).
|
|
59
63
|
export const OFF_INITIALIZED = 8;
|
|
60
64
|
export const OFF_X_FEED = 9;
|
|
61
65
|
export const OFF_Y_FEED = 41;
|
|
@@ -90,8 +94,15 @@ function decimalMults(xDecimals, yDecimals) {
|
|
|
90
94
|
* decimalMult: mult = floor(rawPrice / div) * mul. For expo e:
|
|
91
95
|
* e < −3 → div = 10^(−3−e), mul = decimalMult;
|
|
92
96
|
* e >= −3 → div = 1, mul = 10^(e+3) · decimalMult.
|
|
97
|
+
*
|
|
98
|
+
* `expo` is an oracle-controlled i32, and BOTH branches raise 10 to something
|
|
99
|
+
* derived from it, so the range gate sits here at the exponentiation site rather
|
|
100
|
+
* than at the caller — a future caller cannot route around it. `decimalMult` is
|
|
101
|
+
* already-computed token-decimal math and is not re-checked (see
|
|
102
|
+
* oracle-exponent.ts on why those two are not the same risk).
|
|
93
103
|
*/
|
|
94
|
-
function feedScale(expo, decimalMult) {
|
|
104
|
+
function feedScale(expo, decimalMult, context) {
|
|
105
|
+
assertOracleExponent("pyth-v2-price-account", expo, context);
|
|
95
106
|
if (expo < -3)
|
|
96
107
|
return { div: 10n ** BigInt(-3 - expo), mul: decimalMult };
|
|
97
108
|
return { div: 1n, mul: 10n ** BigInt(expo + 3) * decimalMult };
|
|
@@ -216,8 +227,8 @@ export const obricV2 = {
|
|
|
216
227
|
throw new Error(`obric-v2 pool ${pool} uses a non-Pyth-v2 relay feed (Doves/Minimox — layout not pinned; tier P-B, documented-but-not-built)`);
|
|
217
228
|
}
|
|
218
229
|
const { decMultX, decMultY } = decimalMults(xDecimals, yDecimals);
|
|
219
|
-
const sx = feedScale(feedX.expo, decMultX);
|
|
220
|
-
const sy = feedScale(feedY.expo, decMultY);
|
|
230
|
+
const sx = feedScale(feedX.expo, decMultX, `${SLUG} pool ${pool} feed X ${d.feedX}`);
|
|
231
|
+
const sy = feedScale(feedY.expo, decMultY, `${SLUG} pool ${pool} feed Y ${d.feedY}`);
|
|
221
232
|
return {
|
|
222
233
|
venue: SLUG,
|
|
223
234
|
pool,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/svm/venues/obric-v2/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/svm/venues/obric-v2/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AACH,OAAO,EAAE,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAEvD,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAE7D,OAAO,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AACpF,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAGzD,MAAM,IAAI,GAAG,UAAU,CAAC;AAExB,MAAM,CAAC,MAAM,mBAAmB,GAAG,OAAO,CAAC,6CAA6C,CAAC,CAAC;AAC1F,MAAM,aAAa,GAAG,OAAO,CAAC,6CAA6C,CAAC,CAAC;AAE7E,gFAAgF;AAChF,MAAM,CAAC,MAAM,mBAAmB,GAAG,8CAA8C,CAAC;AAClF,mDAAmD;AACnD,MAAM,aAAa,GAAG,WAAW,CAAC;AAClC,kCAAkC;AAClC,MAAM,cAAc,GAAG,CAAC,CAAC;AACzB,MAAM,aAAa,GAAG,EAAE,CAAC,CAAC,SAAS;AACnC,MAAM,cAAc,GAAG,GAAG,CAAC,CAAC,mBAAmB;AAC/C,MAAM,eAAe,GAAG,GAAG,CAAC,CAAC,mCAAmC;AAEhE,6CAA6C;AAC7C,MAAM,kBAAkB,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;AAC5E,4FAA4F;AAC5F,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;AAEjF,MAAM,iBAAiB,GAAG,GAAG,CAAC;AAE9B,kGAAkG;AAClG,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,CAAC;AACjC,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,CAAC;AAC5B,MAAM,CAAC,MAAM,UAAU,GAAG,EAAE,CAAC;AAC7B,MAAM,CAAC,MAAM,aAAa,GAAG,EAAE,CAAC;AAChC,MAAM,CAAC,MAAM,aAAa,GAAG,GAAG,CAAC;AACjC,MAAM,CAAC,MAAM,eAAe,GAAG,GAAG,CAAC;AACnC,MAAM,CAAC,MAAM,eAAe,GAAG,GAAG,CAAC;AACnC,MAAM,CAAC,MAAM,UAAU,GAAG,GAAG,CAAC;AAC9B,MAAM,CAAC,MAAM,UAAU,GAAG,GAAG,CAAC;AAC9B,MAAM,CAAC,MAAM,SAAS,GAAG,GAAG,CAAC,CAAC,OAAO;AACrC,MAAM,CAAC,MAAM,YAAY,GAAG,GAAG,CAAC,CAAC,MAAM;AACvC,MAAM,CAAC,MAAM,UAAU,GAAG,GAAG,CAAC,CAAC,wCAAwC;AACvE,MAAM,CAAC,MAAM,UAAU,GAAG,GAAG,CAAC,CAAC,MAAM;AACrC,MAAM,CAAC,MAAM,iBAAiB,GAAG,GAAG,CAAC,CAAC,MAAM;AAC5C,MAAM,CAAC,MAAM,cAAc,GAAG,GAAG,CAAC,CAAC,MAAM;AACzC,MAAM,CAAC,MAAM,mBAAmB,GAAG,GAAG,CAAC,CAAC,MAAM;AAE9C,MAAM,OAAO,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,GAAG,EAAE,CAAC;AACjC,qHAAqH;AACrH,MAAM,CAAC,MAAM,sBAAsB,GAAG,KAAK,CAAC;AAuC5C,MAAM,KAAK,GAAG,eAAe,EAAE,CAAC;AAChC,MAAM,QAAQ,GAAG,CAAC,IAAgB,EAAE,MAAc,EAAW,EAAE,CAC7D,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,EAAE,CAAC,CAAC,CAAC;AAEnD,oGAAoG;AACpG,SAAS,YAAY,CACnB,SAAiB,EACjB,SAAiB;IAEjB,IAAI,SAAS,GAAG,SAAS;QACvB,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE,GAAG,IAAI,MAAM,CAAC,SAAS,GAAG,SAAS,CAAC,EAAE,CAAC;IAC1E,IAAI,SAAS,GAAG,SAAS;QACvB,OAAO,EAAE,QAAQ,EAAE,GAAG,IAAI,MAAM,CAAC,SAAS,GAAG,SAAS,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;IAC1E,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;AACxC,CAAC;AAED;;;;;;;;;;;GAWG;AACH,SAAS,SAAS,CAChB,IAAY,EACZ,WAAmB,EACnB,OAAe;IAEf,oBAAoB,CAAC,uBAAuB,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;IAC7D,IAAI,IAAI,GAAG,CAAC,CAAC;QAAE,OAAO,EAAE,GAAG,EAAE,GAAG,IAAI,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,EAAE,GAAG,EAAE,WAAW,EAAE,CAAC;IAC1E,OAAO,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,IAAI,MAAM,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,WAAW,EAAE,CAAC;AACjE,CAAC;AAQD;;;;;GAKG;AACH,SAAS,UAAU,CAAC,IAAgB;IAClC,IAAI,IAAI,CAAC,MAAM,GAAG,eAAe,GAAG,CAAC;QAAE,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;IACxE,IAAI,UAAU,CAAC,IAAI,EAAE,cAAc,EAAE,CAAC,CAAC,KAAK,aAAa;QAAE,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;IAC5F,MAAM,GAAG,GAAG,UAAU,CAAC,IAAI,EAAE,aAAa,EAAE,CAAC,CAAC,CAAC;IAC/C,MAAM,IAAI,GAAG,GAAG,IAAI,EAAE,IAAI,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM;IAC/E,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;AAC/B,CAAC;AAkBD,oEAAoE;AACpE,SAAS,UAAU,CAAC,IAAY,EAAE,IAAgB;IAChD,IAAI,IAAI,CAAC,MAAM,KAAK,iBAAiB,EAAE,CAAC;QACtC,MAAM,IAAI,KAAK,CACb,iBAAiB,IAAI,oBAAoB,IAAI,CAAC,MAAM,oBAAoB,iBAAiB,EAAE,CAC5F,CAAC;IACJ,CAAC;IACD,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC;QAC7D,MAAM,IAAI,KAAK,CACb,iBAAiB,IAAI,2DAA2D,CACjF,CAAC;IACJ,CAAC;IACD,IAAI,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,iBAAiB,IAAI,qBAAqB,CAAC,CAAC;IAC7F,MAAM,IAAI,GAAG,UAAU,CAAC,IAAI,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC;IAC7C,IAAI,IAAI,KAAK,EAAE,EAAE,CAAC;QAChB,MAAM,IAAI,KAAK,CACb,iBAAiB,IAAI,0DAA0D,CAChF,CAAC;IACJ,CAAC;IACD,OAAO;QACL,KAAK,EAAE,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;QACjC,KAAK,EAAE,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;QACjC,aAAa,EAAE,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC;QAC5C,aAAa,EAAE,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC;QAC5C,YAAY,EAAE,QAAQ,CAAC,IAAI,EAAE,eAAe,CAAC;QAC7C,YAAY,EAAE,QAAQ,CAAC,IAAI,EAAE,eAAe,CAAC;QAC7C,KAAK,EAAE,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;QACjC,KAAK,EAAE,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;QACjC,IAAI;QACJ,OAAO,EAAE,UAAU,CAAC,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC;QAC1C,YAAY,EAAE,UAAU,CAAC,IAAI,EAAE,iBAAiB,EAAE,CAAC,CAAC;QACpD,WAAW,EAAE,UAAU,CAAC,IAAI,EAAE,UAAU,EAAE,CAAC,CAAC;QAC5C,WAAW,EAAE,UAAU,CAAC,IAAI,EAAE,UAAU,EAAE,CAAC,CAAC;KAC7C,CAAC;AACJ,CAAC;AAED,SAAS,WAAW,CAAC,GAAe;IAClC,IAAI,GAAG,CAAC,KAAK,KAAK,IAAI;QAAE,MAAM,IAAI,KAAK,CAAC,4CAA4C,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC;IAClG,MAAM,CAAC,GAAG,GAAwB,CAAC;IACnC,IAAI,CAAC,CAAC,SAAS,KAAK,MAAM,IAAI,CAAC,CAAC,SAAS,KAAK,MAAM,EAAE,CAAC;QACrD,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC;IACvF,CAAC;IACD,OAAO,CAAC,CAAC;AACX,CAAC;AAED,MAAM,CAAC,MAAM,OAAO,GAAG;IACrB,IAAI,EAAE,IAAI;IACV,IAAI,EAAE,kBAA2B;IACjC,SAAS,EAAE,mBAAmB;IAE9B;;;;;;OAMG;IACH,KAAK,CAAC,eAAe,CAAC,IAAmB,EAAE,IAAa;QACtD,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC;QAC9B,IAAI,IAAI,KAAK,IAAI;YAAE,MAAM,IAAI,KAAK,CAAC,iBAAiB,IAAI,oBAAoB,CAAC,CAAC;QAC9E,MAAM,CAAC,GAAG,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAEjC,yEAAyE;QACzE,qEAAqE;QACrE,IAAI,CAAC,CAAC,KAAK,KAAK,mBAAmB,IAAI,CAAC,CAAC,KAAK,KAAK,mBAAmB,EAAE,CAAC;YACvE,MAAM,IAAI,KAAK,CACb,iBAAiB,IAAI,+FAA+F,CACrH,CAAC;QACJ,CAAC;QAED,4EAA4E;QAC5E,MAAM,CAAC,SAAS,EAAE,SAAS,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACjF,IAAI,SAAS,KAAK,IAAI,IAAI,SAAS,KAAK,IAAI,EAAE,CAAC;YAC7C,MAAM,IAAI,KAAK,CAAC,iBAAiB,IAAI,4BAA4B,CAAC,CAAC;QACrE,CAAC;QACD,MAAM,CAAC,SAAS,EAAE,SAAS,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACjF,IAAI,SAAS,KAAK,IAAI,IAAI,SAAS,KAAK,IAAI,EAAE,CAAC;YAC7C,MAAM,IAAI,KAAK,CAAC,iBAAiB,IAAI,kCAAkC,CAAC,CAAC;QAC3E,CAAC;QACD,wEAAwE;QACxE,2EAA2E;QAC3E,MAAM,GAAG,GAAG,CAAC,IAAa,EAAE,QAAoB,EAAU,EAAE;YAC1D,IAAI,QAAQ,CAAC,MAAM,GAAG,EAAE;gBACtB,MAAM,IAAI,KAAK,CACb,iBAAiB,IAAI,SAAS,IAAI,OAAO,QAAQ,CAAC,MAAM,yBAAyB,CAClF,CAAC;YACJ,OAAO,QAAQ,CAAC,EAAE,CAAC,CAAC;QACtB,CAAC,CAAC;QACF,MAAM,SAAS,GAAG,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;QAC1C,MAAM,SAAS,GAAG,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;QAE1C,yEAAyE;QACzE,4EAA4E;QAC5E,yEAAyE;QACzE,6EAA6E;QAC7E,6EAA6E;QAC7E,qEAAqE;QACrE,KAAK,MAAM,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI;YAC7B,CAAC,CAAC,CAAC,KAAK,EAAE,SAAS,CAAC;YACpB,CAAC,CAAC,CAAC,KAAK,EAAE,SAAS,CAAC;SACZ,EAAE,CAAC;YACX,IAAI,QAAQ,KAAK,IAAI;gBAAE,SAAS;YAChC,IAAI,mBAAmB,CAAC,IAAI,EAAE,QAAQ,CAAC,KAAK,qBAAqB,EAAE,CAAC;gBAClE,MAAM,IAAI,KAAK,CACb,GAAG,IAAI,mBAAmB,IAAI,WAAW,IAAI,uDAAuD,CACrG,CAAC;YACJ,CAAC;YACD,MAAM,EAAE,QAAQ,EAAE,GAAG,mBAAmB,CAAC,QAAQ,CAAC,CAAC;YACnD,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACxB,MAAM,IAAI,KAAK,CACb,GAAG,IAAI,mBAAmB,IAAI,WAAW,IAAI,oBAAoB,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CACvF,CAAC;YACJ,CAAC;QACH,CAAC;QAED,sEAAsE;QACtE,MAAM,KAAK,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC;QACpC,MAAM,KAAK,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC;QACpC,IAAI,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;YACjC,MAAM,IAAI,KAAK,CACb,iBAAiB,IAAI,wGAAwG,CAC9H,CAAC;QACJ,CAAC;QAED,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,YAAY,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;QAClE,MAAM,EAAE,GAAG,SAAS,CAAC,KAAK,CAAC,IAAI,EAAE,QAAQ,EAAE,GAAG,IAAI,SAAS,IAAI,WAAW,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;QACrF,MAAM,EAAE,GAAG,SAAS,CAAC,KAAK,CAAC,IAAI,EAAE,QAAQ,EAAE,GAAG,IAAI,SAAS,IAAI,WAAW,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;QAErF,OAAO;YACL,KAAK,EAAE,IAAI;YACX,IAAI;YACJ,SAAS,EAAE,MAAM;YACjB,KAAK,EAAE,CAAC,CAAC,KAAK;YACd,KAAK,EAAE,CAAC,CAAC,KAAK;YACd,aAAa,EAAE,CAAC,CAAC,aAAa;YAC9B,aAAa,EAAE,CAAC,CAAC,aAAa;YAC9B,YAAY,EAAE,CAAC,CAAC,YAAY;YAC5B,YAAY,EAAE,CAAC,CAAC,YAAY;YAC5B,KAAK,EAAE,CAAC,CAAC,KAAK;YACd,KAAK,EAAE,CAAC,CAAC,KAAK;YACd,YAAY,EAAE,aAAa;YAC3B,IAAI,EAAE,CAAC,CAAC,IAAI;YACZ,OAAO,EAAE,CAAC,CAAC,OAAO;YAClB,YAAY,EAAE,CAAC,CAAC,YAAY;YAC5B,IAAI,EAAE,EAAE,CAAC,GAAG;YACZ,IAAI,EAAE,EAAE,CAAC,GAAG;YACZ,IAAI,EAAE,EAAE,CAAC,GAAG;YACZ,IAAI,EAAE,EAAE,CAAC,GAAG;YACZ,SAAS,EAAE,MAAM,CAAC,cAAc,CAAC;YACjC,SAAS,EAAE,MAAM,CAAC,cAAc,CAAC;YACjC,OAAO,EAAE,sBAAsB;YAC/B,WAAW,EAAE,CAAC,CAAC,WAAW;YAC1B,WAAW,EAAE,CAAC,CAAC,WAAW;YAC1B,OAAO,EAAE,KAAK;SACf,CAAC;IACJ,CAAC;IAED,aAAa,CAAC,GAAe;QAC3B,MAAM,CAAC,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC;QAC3B,OAAO;YACL,EAAE,GAAG,EAAE,CAAC,CAAC,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,EAAE;YAChC,EAAE,GAAG,EAAE,CAAC,CAAC,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,EAAE;YAClC,EAAE,GAAG,EAAE,CAAC,CAAC,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,EAAE;YAClC,EAAE,GAAG,EAAE,CAAC,CAAC,aAAa,EAAE,OAAO,EAAE,CAAC,CAAC,aAAa,EAAE;YAClD,EAAE,GAAG,EAAE,CAAC,CAAC,aAAa,EAAE,OAAO,EAAE,CAAC,CAAC,aAAa,EAAE;SACnD,CAAC;IACJ,CAAC;IAED,0DAA0D;IAC1D,SAAS,CAAC,GAAe,EAAE,IAAc,EAAE,QAAgB;QACzD,MAAM,CAAC,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC;QAC3B,IAAI,QAAQ,IAAI,EAAE,IAAI,QAAQ,GAAG,OAAO;YACtC,MAAM,IAAI,KAAK,CAAC,2DAA2D,QAAQ,EAAE,CAAC,CAAC;QACzF,MAAM,IAAI,GAAG,CAAC,CAAC,SAAS,KAAK,MAAM,CAAC;QACpC,MAAM,IAAI,GAAG,IAAI,UAAU,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;QAC3C,IAAI,CAAC,GAAG,CAAC,wBAAwB,EAAE,CAAC,CAAC,CAAC;QACtC,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS;QACjC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE;YAAE,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,QAAQ,IAAI,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC;QACtF,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,gEAAgE;QAC9E,OAAO;YACL,SAAS,EAAE,mBAAmB;YAC9B,IAAI;YACJ,QAAQ,EAAE,YAAY,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;SACvE,CAAC;IACJ,CAAC;CACF,CAAC;AAEF,MAAM,KAAK,GAAG,CAAC,GAAW,EAAE,IAAa,EAAE,QAAkB,EAAgB,EAAE,CAC7E,QAAQ,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;AAE7E,mGAAmG;AACnG,MAAM,UAAU,YAAY,CAC1B,CAAoB,EACpB,IAAc,EACd,IAAsE,EACtE,MAAiC;IAEjC,MAAM,IAAI,GAAG,CAAC,CAAC,SAAS,KAAK,MAAM,CAAC;IACpC,MAAM,CAAC,GAAG,MAAM,IAAI,CAAC,CAAC,IAAY,EAAU,EAAE,CAAC,IAAI,CAAC,CAAC;IACrD,MAAM,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,oBAAoB;IACnE,MAAM,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,oBAAoB;IACnE,MAAM,QAAQ,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,iCAAiC;IAC1F,OAAO;QACL,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC;QAC7B,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC;QACtB,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC;QACtB,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,aAAa,EAAE,IAAI,CAAC;QACpC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,aAAa,EAAE,IAAI,CAAC;QACpC,EAAE,GAAG,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE;QAC9B,EAAE,GAAG,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE;QAC9B,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC;QAC7B,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC;QACtB,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC;QACtB,EAAE,GAAG,EAAE,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE;QACjC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,YAAY,CAAC;KAC9B,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Oracle exponent range validation — the guard between an attacker-influenceable
|
|
3
|
+
* (or merely corrupt) oracle account and `10n ** BigInt(expo)`.
|
|
4
|
+
*
|
|
5
|
+
* WHY THIS EXISTS. Three adapters bake a power of ten derived from an oracle
|
|
6
|
+
* account's `i32` exponent field at fetch time: carrot's per-asset `scaleExp`,
|
|
7
|
+
* obric-v2's `feedScale`, and woofi's `pythQuoteDecPow`. The field is read
|
|
8
|
+
* straight out of account bytes, so its full `i32` domain is reachable by anyone
|
|
9
|
+
* who can put bytes in front of the loader.
|
|
10
|
+
*
|
|
11
|
+
* Measured on this repo's Node 22, because the shape of the hazard decides the
|
|
12
|
+
* shape of the fix: `10n ** 10_000_000n` takes ~0.5s, `10n ** 50_000_000n`
|
|
13
|
+
* ~2.2s, and `10n ** 100_000_000n` was still running when killed at 20s. Only
|
|
14
|
+
* at the very top of the range does V8 refuse on sight — `10n ** 2_147_483_647n`
|
|
15
|
+
* raises `RangeError: Maximum BigInt size exceeded` in ~27ms. So the dangerous
|
|
16
|
+
* exponent is NOT i32::MAX; it is the mid-range (~1e7..1e9) that slips under
|
|
17
|
+
* V8's size check and burns the quoting thread for minutes. That is a denial of
|
|
18
|
+
* QUOTE AVAILABILITY (the off-chain path only — nothing here runs on-chain, and
|
|
19
|
+
* this buys no compute-unit savings).
|
|
20
|
+
*
|
|
21
|
+
* A range check BEFORE the exponentiation is therefore the fix, and a try/catch
|
|
22
|
+
* around it is not: in the mid-range there is nothing to catch until the CPU is
|
|
23
|
+
* already spent, and at the extremes the RangeError that does arrive is an
|
|
24
|
+
* unhandled error class rather than a deterministic, actionable venue drop.
|
|
25
|
+
*
|
|
26
|
+
* WHY A RANGE AND NOT A CLAMP. An out-of-range exponent means the account is not
|
|
27
|
+
* what the adapter thinks it is. Folding it to the nearest valid value would
|
|
28
|
+
* return a confidently wrong price; throwing self-drops the venue (every caller
|
|
29
|
+
* here is inside `fetchPoolConfig`, whose throw `resolveSvmPoolSpec` catches as
|
|
30
|
+
* a drop). A wrong quote is worse than no quote.
|
|
31
|
+
*
|
|
32
|
+
* NOT TOKEN DECIMALS. The sibling `10n ** BigInt(decimals)` sites in these same
|
|
33
|
+
* adapters (carrot's `a.decimals`, obric-v2's `decimalMults`, woofi's
|
|
34
|
+
* `priceDec`/`quoteDec`/`baseDec`) are NOT this risk and are deliberately left
|
|
35
|
+
* alone: every one reads a single byte (`data[off]`), so it is structurally
|
|
36
|
+
* bounded to 0..=255 and `10n ** 255n` is a 107-byte integer. Only the `i32`
|
|
37
|
+
* oracle fields are unbounded. Keep the two kinds distinct.
|
|
38
|
+
*/
|
|
39
|
+
/**
|
|
40
|
+
* The oracle account FORMATS these adapters decode an exponent out of. The
|
|
41
|
+
* issuer is Pyth in both cases; the formats differ in how the bound reaches
|
|
42
|
+
* them, which is why they are separate rows rather than one global constant.
|
|
43
|
+
*/
|
|
44
|
+
export type OracleExponentProvider = "pyth-price-update-v2" | "pyth-v2-price-account";
|
|
45
|
+
/**
|
|
46
|
+
* `MAX_NUM_DECIMALS` as the Pythnet oracle program itself defines it:
|
|
47
|
+
* pyth-network/pyth-client, `program/rust/src/c_oracle_header.rs` —
|
|
48
|
+
*
|
|
49
|
+
* /// Bound on the range of the exponent in price accounts. This number is set
|
|
50
|
+
* /// such that the PD-based EMA computation does not lose too much precision.
|
|
51
|
+
* pub const MAX_NUM_DECIMALS: i32 = 12;
|
|
52
|
+
*
|
|
53
|
+
* enforced by `utils::check_exponent_range`, which asserts
|
|
54
|
+
* `(-MAX_NUM_DECIMALS..=MAX_NUM_DECIMALS).contains(&expo)`. That check runs in
|
|
55
|
+
* `processor::add_price` and `processor::init_price` — the only two instructions
|
|
56
|
+
* in the program that ever write `price_data.exponent` — so no Pyth price
|
|
57
|
+
* account can carry an exponent outside [-12, 12].
|
|
58
|
+
*/
|
|
59
|
+
export declare const PYTH_MAX_NUM_DECIMALS = 12;
|
|
60
|
+
export interface OracleExponentRange {
|
|
61
|
+
/** Inclusive lower bound. */
|
|
62
|
+
readonly min: number;
|
|
63
|
+
/** Inclusive upper bound. */
|
|
64
|
+
readonly max: number;
|
|
65
|
+
/** Where the bound comes from — cited, not assumed. */
|
|
66
|
+
readonly provenance: string;
|
|
67
|
+
}
|
|
68
|
+
export declare const ORACLE_EXPONENT_RANGES: Readonly<Record<OracleExponentProvider, OracleExponentRange>>;
|
|
69
|
+
/**
|
|
70
|
+
* Deterministic range gate: same bytes in, same throw out, before any BigInt
|
|
71
|
+
* power is constructed. Rejects the whole out-of-range `i32` domain, extremes
|
|
72
|
+
* included. Note what `Math.abs` does NOT do here: `Math.abs(i32::MIN)` is
|
|
73
|
+
* 2147483648 — a perfectly ordinary, safe JS integer that sails into `BigInt`
|
|
74
|
+
* intact. Taking an absolute value bounds the SIGN, never the MAGNITUDE, so the
|
|
75
|
+
* gate has to reject on the value itself.
|
|
76
|
+
*
|
|
77
|
+
* @param provider which account format the exponent was decoded from
|
|
78
|
+
* @param expo the decoded, sign-corrected `i32`
|
|
79
|
+
* @param context caller-supplied identity (venue, pool, account) for the error
|
|
80
|
+
*/
|
|
81
|
+
export declare function assertOracleExponent(provider: OracleExponentProvider, expo: number, context: string): void;
|
|
82
|
+
//# sourceMappingURL=oracle-exponent.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"oracle-exponent.d.ts","sourceRoot":"","sources":["../../../src/svm/venues/oracle-exponent.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AAEH;;;;GAIG;AACH,MAAM,MAAM,sBAAsB,GAAG,sBAAsB,GAAG,uBAAuB,CAAC;AAEtF;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,qBAAqB,KAAK,CAAC;AAExC,MAAM,WAAW,mBAAmB;IAClC,6BAA6B;IAC7B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,6BAA6B;IAC7B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,uDAAuD;IACvD,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAC7B;AAED,eAAO,MAAM,sBAAsB,EAAE,QAAQ,CAAC,MAAM,CAAC,sBAAsB,EAAE,mBAAmB,CAAC,CA2B7F,CAAC;AAEL;;;;;;;;;;;GAWG;AACH,wBAAgB,oBAAoB,CAClC,QAAQ,EAAE,sBAAsB,EAChC,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,GACd,IAAI,CAON"}
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Oracle exponent range validation — the guard between an attacker-influenceable
|
|
3
|
+
* (or merely corrupt) oracle account and `10n ** BigInt(expo)`.
|
|
4
|
+
*
|
|
5
|
+
* WHY THIS EXISTS. Three adapters bake a power of ten derived from an oracle
|
|
6
|
+
* account's `i32` exponent field at fetch time: carrot's per-asset `scaleExp`,
|
|
7
|
+
* obric-v2's `feedScale`, and woofi's `pythQuoteDecPow`. The field is read
|
|
8
|
+
* straight out of account bytes, so its full `i32` domain is reachable by anyone
|
|
9
|
+
* who can put bytes in front of the loader.
|
|
10
|
+
*
|
|
11
|
+
* Measured on this repo's Node 22, because the shape of the hazard decides the
|
|
12
|
+
* shape of the fix: `10n ** 10_000_000n` takes ~0.5s, `10n ** 50_000_000n`
|
|
13
|
+
* ~2.2s, and `10n ** 100_000_000n` was still running when killed at 20s. Only
|
|
14
|
+
* at the very top of the range does V8 refuse on sight — `10n ** 2_147_483_647n`
|
|
15
|
+
* raises `RangeError: Maximum BigInt size exceeded` in ~27ms. So the dangerous
|
|
16
|
+
* exponent is NOT i32::MAX; it is the mid-range (~1e7..1e9) that slips under
|
|
17
|
+
* V8's size check and burns the quoting thread for minutes. That is a denial of
|
|
18
|
+
* QUOTE AVAILABILITY (the off-chain path only — nothing here runs on-chain, and
|
|
19
|
+
* this buys no compute-unit savings).
|
|
20
|
+
*
|
|
21
|
+
* A range check BEFORE the exponentiation is therefore the fix, and a try/catch
|
|
22
|
+
* around it is not: in the mid-range there is nothing to catch until the CPU is
|
|
23
|
+
* already spent, and at the extremes the RangeError that does arrive is an
|
|
24
|
+
* unhandled error class rather than a deterministic, actionable venue drop.
|
|
25
|
+
*
|
|
26
|
+
* WHY A RANGE AND NOT A CLAMP. An out-of-range exponent means the account is not
|
|
27
|
+
* what the adapter thinks it is. Folding it to the nearest valid value would
|
|
28
|
+
* return a confidently wrong price; throwing self-drops the venue (every caller
|
|
29
|
+
* here is inside `fetchPoolConfig`, whose throw `resolveSvmPoolSpec` catches as
|
|
30
|
+
* a drop). A wrong quote is worse than no quote.
|
|
31
|
+
*
|
|
32
|
+
* NOT TOKEN DECIMALS. The sibling `10n ** BigInt(decimals)` sites in these same
|
|
33
|
+
* adapters (carrot's `a.decimals`, obric-v2's `decimalMults`, woofi's
|
|
34
|
+
* `priceDec`/`quoteDec`/`baseDec`) are NOT this risk and are deliberately left
|
|
35
|
+
* alone: every one reads a single byte (`data[off]`), so it is structurally
|
|
36
|
+
* bounded to 0..=255 and `10n ** 255n` is a 107-byte integer. Only the `i32`
|
|
37
|
+
* oracle fields are unbounded. Keep the two kinds distinct.
|
|
38
|
+
*/
|
|
39
|
+
/**
|
|
40
|
+
* `MAX_NUM_DECIMALS` as the Pythnet oracle program itself defines it:
|
|
41
|
+
* pyth-network/pyth-client, `program/rust/src/c_oracle_header.rs` —
|
|
42
|
+
*
|
|
43
|
+
* /// Bound on the range of the exponent in price accounts. This number is set
|
|
44
|
+
* /// such that the PD-based EMA computation does not lose too much precision.
|
|
45
|
+
* pub const MAX_NUM_DECIMALS: i32 = 12;
|
|
46
|
+
*
|
|
47
|
+
* enforced by `utils::check_exponent_range`, which asserts
|
|
48
|
+
* `(-MAX_NUM_DECIMALS..=MAX_NUM_DECIMALS).contains(&expo)`. That check runs in
|
|
49
|
+
* `processor::add_price` and `processor::init_price` — the only two instructions
|
|
50
|
+
* in the program that ever write `price_data.exponent` — so no Pyth price
|
|
51
|
+
* account can carry an exponent outside [-12, 12].
|
|
52
|
+
*/
|
|
53
|
+
export const PYTH_MAX_NUM_DECIMALS = 12;
|
|
54
|
+
export const ORACLE_EXPONENT_RANGES = Object.freeze({
|
|
55
|
+
/**
|
|
56
|
+
* Pyth Solana Receiver `PriceUpdateV2.price_message.exponent` (carrot, woofi).
|
|
57
|
+
* The receiver SDK does NOT re-validate: `price_update.rs` copies
|
|
58
|
+
* `self.price_message.exponent` straight through. The bound is inherited from
|
|
59
|
+
* the Pythnet price accounts the Wormhole-attested message is built from, and
|
|
60
|
+
* it is precisely because the receiver does not re-check it that this SDK must
|
|
61
|
+
* — an account handed to our loader carries no attestation we verified.
|
|
62
|
+
*/
|
|
63
|
+
"pyth-price-update-v2": Object.freeze({
|
|
64
|
+
min: -PYTH_MAX_NUM_DECIMALS,
|
|
65
|
+
max: PYTH_MAX_NUM_DECIMALS,
|
|
66
|
+
provenance: "pyth-client MAX_NUM_DECIMALS=12, inherited via the Wormhole-attested PriceFeedMessage (pyth-solana-receiver does not re-validate)",
|
|
67
|
+
}),
|
|
68
|
+
/**
|
|
69
|
+
* Legacy Pyth v2 price account, magic 0xa1b2c3d4, `expo_` at byte 20
|
|
70
|
+
* (obric-v2's relay feeds). This IS `pc_price_t`, so the bound is the oracle
|
|
71
|
+
* program's own `check_exponent_range` applied directly to this account.
|
|
72
|
+
*/
|
|
73
|
+
"pyth-v2-price-account": Object.freeze({
|
|
74
|
+
min: -PYTH_MAX_NUM_DECIMALS,
|
|
75
|
+
max: PYTH_MAX_NUM_DECIMALS,
|
|
76
|
+
provenance: "pyth-client MAX_NUM_DECIMALS=12, enforced on this exact account by check_exponent_range in add_price/init_price",
|
|
77
|
+
}),
|
|
78
|
+
});
|
|
79
|
+
/**
|
|
80
|
+
* Deterministic range gate: same bytes in, same throw out, before any BigInt
|
|
81
|
+
* power is constructed. Rejects the whole out-of-range `i32` domain, extremes
|
|
82
|
+
* included. Note what `Math.abs` does NOT do here: `Math.abs(i32::MIN)` is
|
|
83
|
+
* 2147483648 — a perfectly ordinary, safe JS integer that sails into `BigInt`
|
|
84
|
+
* intact. Taking an absolute value bounds the SIGN, never the MAGNITUDE, so the
|
|
85
|
+
* gate has to reject on the value itself.
|
|
86
|
+
*
|
|
87
|
+
* @param provider which account format the exponent was decoded from
|
|
88
|
+
* @param expo the decoded, sign-corrected `i32`
|
|
89
|
+
* @param context caller-supplied identity (venue, pool, account) for the error
|
|
90
|
+
*/
|
|
91
|
+
export function assertOracleExponent(provider, expo, context) {
|
|
92
|
+
const { min, max } = ORACLE_EXPONENT_RANGES[provider];
|
|
93
|
+
if (!Number.isInteger(expo) || expo < min || expo > max) {
|
|
94
|
+
throw new Error(`${context}: oracle exponent ${expo} is outside the supported ${provider} range [${min}, ${max}] — refusing to raise 10 to an unvalidated oracle-controlled power`);
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
//# sourceMappingURL=oracle-exponent.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"oracle-exponent.js","sourceRoot":"","sources":["../../../src/svm/venues/oracle-exponent.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AASH;;;;;;;;;;;;;GAaG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,EAAE,CAAC;AAWxC,MAAM,CAAC,MAAM,sBAAsB,GACjC,MAAM,CAAC,MAAM,CAAC;IACZ;;;;;;;OAOG;IACH,sBAAsB,EAAE,MAAM,CAAC,MAAM,CAAC;QACpC,GAAG,EAAE,CAAC,qBAAqB;QAC3B,GAAG,EAAE,qBAAqB;QAC1B,UAAU,EACR,mIAAmI;KACtI,CAAC;IACF;;;;OAIG;IACH,uBAAuB,EAAE,MAAM,CAAC,MAAM,CAAC;QACrC,GAAG,EAAE,CAAC,qBAAqB;QAC3B,GAAG,EAAE,qBAAqB;QAC1B,UAAU,EACR,iHAAiH;KACpH,CAAC;CACH,CAAC,CAAC;AAEL;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,oBAAoB,CAClC,QAAgC,EAChC,IAAY,EACZ,OAAe;IAEf,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,sBAAsB,CAAC,QAAQ,CAAC,CAAC;IACtD,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,IAAI,GAAG,GAAG,IAAI,IAAI,GAAG,GAAG,EAAE,CAAC;QACxD,MAAM,IAAI,KAAK,CACb,GAAG,OAAO,qBAAqB,IAAI,6BAA6B,QAAQ,WAAW,GAAG,KAAK,GAAG,oEAAoE,CACnK,CAAC;IACJ,CAAC;AACH,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/svm/venues/orca-legacy-token-swap/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/svm/venues/orca-legacy-token-swap/index.ts"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAE3C,OAAO,KAAK,EACV,eAAe,EACf,aAAa,EACb,UAAU,EAEV,QAAQ,EACR,YAAY,EACZ,SAAS,EACV,MAAM,aAAa,CAAC;AAErB,QAAA,MAAM,IAAI,2BAA2B,CAAC;AAStC,MAAM,WAAW,oBAAqB,SAAQ,UAAU;IACtD,KAAK,EAAE,OAAO,IAAI,CAAC;IACnB,kFAAkF;IAClF,aAAa,EAAE,OAAO,CAAC;IACvB,2BAA2B;IAC3B,YAAY,EAAE,OAAO,CAAC;IACtB,wEAAwE;IACxE,OAAO,EAAE,OAAO,CAAC;IACjB,8CAA8C;IAC9C,QAAQ,EAAE,OAAO,CAAC;IAClB,kFAAkF;IAClF,QAAQ,EAAE,OAAO,CAAC;IAClB,+EAA+E;IAC/E,cAAc,EAAE,OAAO,CAAC;IACxB,yBAAyB;IACzB,SAAS,EAAE,OAAO,CAAC;IACnB,yBAAyB;IACzB,UAAU,EAAE,OAAO,CAAC;IACpB,uFAAuF;IACvF,iBAAiB,EAAE,MAAM,CAAC;IAC1B,mBAAmB,EAAE,MAAM,CAAC;IAC5B,kGAAkG;IAClG,sBAAsB,EAAE,MAAM,CAAC;IAC/B,wBAAwB,EAAE,MAAM,CAAC;IACjC,kFAAkF;IAClF,QAAQ,EAAE,MAAM,CAAC;CAClB;AA8CD,eAAO,MAAM,mBAAmB;;;;0BAKF,aAAa,QAAQ,OAAO,GAAG,OAAO,CAAC,oBAAoB,CAAC;uBAwErE,oBAAoB,GAAG,YAAY,EAAE;mBAUzC,oBAAoB,KAAK,MAAM,YAAY,MAAM,GAAG,MAAM;mBAiB1D,oBAAoB,QAAQ,QAAQ,YAAY,MAAM,GAAG,SAAS;wBAiC1E,oBAAoB,SAClB,eAAe,YACZ,MAAM,QACV,MAAM,GACX,MAAM;CAqBgB,CAAC"}
|
|
@@ -9,6 +9,9 @@
|
|
|
9
9
|
*
|
|
10
10
|
* Quote direction is token A → token B, matching the pinned worked example
|
|
11
11
|
* (SOL in → USDC out on the EGZ7ti... fixture pool).
|
|
12
|
+
*
|
|
13
|
+
* Original venue investigation (historical):
|
|
14
|
+
* https://github.com/eco-incorp/sauce/blob/d3686430ee308994f95309a8c9b2d5930d71cf5d/docs/svm-venues.md
|
|
12
15
|
*/
|
|
13
16
|
import { createHash } from "node:crypto";
|
|
14
17
|
import { getAddressCodec } from "@solana/kit";
|
|
@@ -141,7 +144,7 @@ export const orcaLegacyTokenSwap = {
|
|
|
141
144
|
// amountOut = rsOut - ceil(rsIn * rsOut / (rsIn + netIn)), ceiled via
|
|
142
145
|
// (num + den - 1) / den. Reserves are u64, so rsIn * rsOut <= 2^128 and
|
|
143
146
|
// nothing here approaches the engine's 256-bit wrap ("All arithmetic in
|
|
144
|
-
// u128" —
|
|
147
|
+
// u128" — the historical venue investigation); no Math.mulDiv needed.
|
|
145
148
|
// Account model (RS/svm target): reads go through main()'s ordered `Account`
|
|
146
149
|
// params, not `accountUint("<address>", …)` string refs. Param `acc<k>` is
|
|
147
150
|
// `quoteAccounts()[k]` — vault-in is slot 0, vault-out slot 1 — and `accountUint`
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/svm/venues/orca-legacy-token-swap/index.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/svm/venues/orca-legacy-token-swap/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/svm/venues/pumpswap/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/svm/venues/pumpswap/index.ts"],"names":[],"mappings":"AA8BA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAI3C,OAAO,KAAK,EACV,eAAe,EACf,aAAa,EACb,UAAU,EAEV,QAAQ,EACR,YAAY,EACZ,SAAS,EACV,MAAM,aAAa,CAAC;AAErB,eAAO,MAAM,mBAAmB,wDAAyD,CAAC;AAoB1F;;;;;GAKG;AACH,eAAO,MAAM,2BAA2B,qCAAqC,CAAC;AAK9E,MAAM,WAAW,kBAAmB,SAAQ,UAAU;IACpD,KAAK,EAAE,UAAU,CAAC;IAClB,wFAAwF;IACxF,SAAS,EAAE,aAAa,GAAG,aAAa,CAAC;IACzC,QAAQ,EAAE,OAAO,CAAC;IAClB,SAAS,EAAE,OAAO,CAAC;IACnB,SAAS,EAAE,OAAO,CAAC;IACnB,UAAU,EAAE,OAAO,CAAC;IACpB,gBAAgB,EAAE,OAAO,CAAC;IAC1B,iBAAiB,EAAE,OAAO,CAAC;IAC3B,WAAW,EAAE,OAAO,CAAC;IACrB,8EAA8E;IAC9E,SAAS,EAAE,OAAO,CAAC;IACnB,qFAAqF;IACrF,QAAQ,EAAE,MAAM,CAAC;IACjB,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,EAAE,MAAM,CAAC;IACtB,wDAAwD;IACxD,YAAY,EAAE,MAAM,CAAC;IACrB,oBAAoB,EAAE,OAAO,CAAC;IAC9B,gCAAgC,EAAE,OAAO,CAAC;IAC1C,yBAAyB,EAAE,OAAO,CAAC;IACnC,mBAAmB,EAAE,OAAO,CAAC;IAC7B,0EAA0E;IAC1E,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,mBAAmB,EAAE,OAAO,CAAC;IAC7B,+BAA+B,EAAE,OAAO,CAAC;CAC1C;AA2KD,eAAO,MAAM,eAAe;;;;0BAKE,aAAa,QAAQ,OAAO,GAAG,OAAO,CAAC,kBAAkB,CAAC;uBAkJnE,UAAU,GAAG,YAAY,EAAE;mBAQ/B,UAAU,KAAK,MAAM,YAAY,MAAM,GAAG,MAAM;mBAqChD,UAAU,QAAQ,QAAQ,YAAY,MAAM,GAAG,SAAS;wBA6DnD,UAAU,SAAS,eAAe,YAAY,MAAM,QAAQ,MAAM,GAAG,MAAM;CA0CtE,CAAC"}
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* own ATAs at swap time and the LP fee stays in the vault). Layouts follow the
|
|
5
5
|
* official Anchor IDL, quote math the official SDK, both verified byte-exact
|
|
6
6
|
* against mainnet simulation events (see the pumpswap section of
|
|
7
|
-
*
|
|
7
|
+
* the historical venue investigation).
|
|
8
8
|
*
|
|
9
9
|
* Fees come from the fee program's FeeConfig PDA, re-read on every
|
|
10
10
|
* fetchPoolConfig (they are admin-mutable): non-canonical pools pay flat_fees;
|
|
@@ -19,9 +19,13 @@
|
|
|
19
19
|
* depends on compile-time constants, so the in-VM fragment reads exactly two
|
|
20
20
|
* accounts: the pool's base and quote vault amounts (u64 LE at offset 64).
|
|
21
21
|
*
|
|
22
|
-
* Overflow bound
|
|
23
|
-
* in-VM product is u64 * u64-or-bps < 2^128,
|
|
22
|
+
* Overflow bound from the historical venue investigation: all reserve/amount
|
|
23
|
+
* fields are SPL u64, so every in-VM product is u64 * u64-or-bps < 2^128,
|
|
24
|
+
* far inside the engine's 256-bit
|
|
24
25
|
* wrap-free range; Math.mulDiv is used for the invariant products anyway.
|
|
26
|
+
*
|
|
27
|
+
* Original venue investigation (historical):
|
|
28
|
+
* https://github.com/eco-incorp/sauce/blob/d3686430ee308994f95309a8c9b2d5930d71cf5d/docs/svm-venues.md
|
|
25
29
|
*/
|
|
26
30
|
import { address, getAddressDecoder, getAddressEncoder } from "@solana/kit";
|
|
27
31
|
import { ceilDiv, readUintLE } from "../math.js";
|
|
@@ -86,7 +90,7 @@ async function ata(owner, mint, tokenProgram) {
|
|
|
86
90
|
* layout is exactly 82 bytes (assumed Tokenkeg — an extensionless token-2022
|
|
87
91
|
* mint is indistinguishable, and every pump token-2022 mint carries
|
|
88
92
|
* extensions), anything longer must be token-2022 TLV. Gate (documented in
|
|
89
|
-
*
|
|
93
|
+
* the historical venue investigation): a TransferFeeConfig extension makes vault deltas
|
|
90
94
|
* diverge from user amounts, so such mints are rejected.
|
|
91
95
|
*/
|
|
92
96
|
function detectTokenProgram(mint, data) {
|
|
@@ -146,7 +150,8 @@ function parseFeeTiers(data) {
|
|
|
146
150
|
}
|
|
147
151
|
return tiers;
|
|
148
152
|
}
|
|
149
|
-
/** Tier scan
|
|
153
|
+
/** Tier scan, following fee selection in the historical venue investigation:
|
|
154
|
+
* below tiers[0] -> tiers[0]; else highest tier with mc >= threshold. */
|
|
150
155
|
function pickFeeTier(tiers, marketCap) {
|
|
151
156
|
if (marketCap < tiers[0].marketCapThreshold)
|
|
152
157
|
return tiers[0];
|
|
@@ -163,8 +168,8 @@ async function loadAccount(load, addr, what) {
|
|
|
163
168
|
return data;
|
|
164
169
|
}
|
|
165
170
|
/**
|
|
166
|
-
* buy_exact_quote_in effective quote input
|
|
167
|
-
*
|
|
171
|
+
* buy_exact_quote_in effective quote input, using the buy formula in the
|
|
172
|
+
* historical venue investigation: strip the fee share off the spendable budget,
|
|
168
173
|
* ceil-rounding each fee component separately, and hand back effQ after the
|
|
169
174
|
* over-budget correction. The on-chain invariant swap then uses effQ - 1.
|
|
170
175
|
*/
|
|
@@ -175,7 +180,7 @@ function buyEffectiveQuoteIn(spendable, lp, protocol, creator) {
|
|
|
175
180
|
const over = eff + fees - spendable;
|
|
176
181
|
if (over > 0n)
|
|
177
182
|
eff -= over;
|
|
178
|
-
// Unverified edge on-chain (
|
|
183
|
+
// Unverified edge on-chain (see caveats in the historical venue investigation): guard eff >= 2.
|
|
179
184
|
if (eff < 2n)
|
|
180
185
|
throw new Error(`pumpswap quote amountIn ${spendable} is too small (effective quote input below 2)`);
|
|
181
186
|
return eff;
|
|
@@ -202,7 +207,7 @@ export const pumpswapAdapter = {
|
|
|
202
207
|
}
|
|
203
208
|
// Core fields run through lp_supply at 203..211; pools shorter than 243
|
|
204
209
|
// predate coin_creator, which then reads as Pubkey::default (observed
|
|
205
|
-
// sizes in
|
|
210
|
+
// sizes in the historical venue investigation).
|
|
206
211
|
if (poolData.length < 211) {
|
|
207
212
|
throw new Error(`pumpswap pool ${pool} data is ${poolData.length} bytes, expected at least 211`);
|
|
208
213
|
}
|
|
@@ -244,7 +249,7 @@ export const pumpswapAdapter = {
|
|
|
244
249
|
const quoteTokenProgram = detectTokenProgram(quoteMint, quoteMintData);
|
|
245
250
|
// Canonical pump pools (creator == the bonding curve's pool-authority PDA
|
|
246
251
|
// for the base mint) pay the market-cap fee tier; everything else pays
|
|
247
|
-
// flat_fees (
|
|
252
|
+
// flat_fees (fee selection in the historical venue investigation).
|
|
248
253
|
const encoder = getAddressEncoder();
|
|
249
254
|
const poolAuthority = await pda(["pool-authority", new Uint8Array(encoder.encode(baseMint))], PUMP_BONDING_PROGRAM);
|
|
250
255
|
const canonical = creator === poolAuthority;
|
|
@@ -332,7 +337,8 @@ export const pumpswapAdapter = {
|
|
|
332
337
|
if (c.direction === "quoteToBase") {
|
|
333
338
|
// The fee arithmetic only involves compile-time constants, so it folds
|
|
334
339
|
// off-chain and the live quote is one invariant division over the
|
|
335
|
-
// reserves (with the on-chain effQ - 1
|
|
340
|
+
// reserves (with the on-chain effQ - 1; see the buy formula in the
|
|
341
|
+
// historical venue investigation).
|
|
336
342
|
const inAmount = buyEffectiveQuoteIn(amountIn, c.lpFeeBps, c.protocolFeeBps, c.creatorFeeBps) - 1n;
|
|
337
343
|
lines.push(` const q${i} = Math.mulDiv(psBase${i}, ${inAmount}, psQuote${i} + ${inAmount});`);
|
|
338
344
|
}
|
|
@@ -394,14 +400,14 @@ export const pumpswapAdapter = {
|
|
|
394
400
|
accounts.push({ ref: USER_VOLUME_ACCUMULATOR_REF, writable: true });
|
|
395
401
|
}
|
|
396
402
|
accounts.push(readonly(FEE_CONFIG), readonly(FEE_PROGRAM));
|
|
397
|
-
// Remaining accounts (order per
|
|
403
|
+
// Remaining accounts (order per the historical venue investigation): pool-v2 PDA when a coin creator
|
|
398
404
|
// is set, then ALWAYS the buyback recipient pair (error 6058 otherwise).
|
|
399
405
|
if (c.poolV2 !== undefined)
|
|
400
406
|
accounts.push(readonly(c.poolV2));
|
|
401
407
|
accounts.push(readonly(c.buybackFeeRecipient), writable(c.buybackFeeRecipientTokenAccount));
|
|
402
408
|
return { programId: PUMPSWAP_PROGRAM_ID, data, accounts };
|
|
403
409
|
},
|
|
404
|
-
// Written from the
|
|
410
|
+
// Written from the buy/sell quote formulas in the historical venue investigation,
|
|
405
411
|
// deliberately NOT sharing the emitQuote fold above so the two stay
|
|
406
412
|
// independently derived.
|
|
407
413
|
referenceQuote(cfg, state, amountIn, _now) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/svm/venues/pumpswap/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/svm/venues/pumpswap/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/svm/venues/raydium-amm-v4/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/svm/venues/raydium-amm-v4/index.ts"],"names":[],"mappings":"AAqBA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAI3C,OAAO,KAAK,EAGV,UAAU,EACV,eAAe,EAIhB,MAAM,aAAa,CAAC;AAgCrB,MAAM,WAAW,sBAAuB,SAAQ,UAAU;IACxD,qFAAqF;IACrF,MAAM,EAAE,MAAM,CAAC;IACf,mEAAmE;IACnE,YAAY,EAAE,MAAM,CAAC;IACrB,sCAAsC;IACtC,YAAY,EAAE,MAAM,CAAC;IACrB,qCAAqC;IACrC,UAAU,EAAE,MAAM,CAAC;IACnB,iDAAiD;IACjD,gBAAgB,EAAE,MAAM,CAAC;IACzB,sDAAsD;IACtD,kBAAkB,EAAE,MAAM,CAAC;IAC3B,8DAA8D;IAC9D,SAAS,EAAE,OAAO,CAAC;IACnB,+DAA+D;IAC/D,OAAO,EAAE,OAAO,CAAC;IACjB,gCAAgC;IAChC,QAAQ,EAAE,OAAO,CAAC;IAClB,iCAAiC;IACjC,MAAM,EAAE,OAAO,CAAC;IAChB;;;;;OAKG;IACH,WAAW,EAAE,OAAO,CAAC;CACtB;AA0CD,eAAO,MAAM,YAAY,EAAE,eAoN1B,CAAC"}
|
|
@@ -14,6 +14,9 @@
|
|
|
14
14
|
*
|
|
15
15
|
* AmmInfo is #[repr(C, packed)], no discriminator: all offsets absolute from
|
|
16
16
|
* byte 0, all integers little-endian.
|
|
17
|
+
*
|
|
18
|
+
* Original venue investigation (historical):
|
|
19
|
+
* https://github.com/eco-incorp/sauce/blob/d3686430ee308994f95309a8c9b2d5930d71cf5d/docs/svm-venues.md
|
|
17
20
|
*/
|
|
18
21
|
import { address, getAddressCodec } from "@solana/kit";
|
|
19
22
|
import { ceilDiv, readUintLE } from "../math.js";
|
|
@@ -25,7 +28,7 @@ const TOKEN_PROGRAM = address("TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA");
|
|
|
25
28
|
// create_program_address([b"amm authority", [nonce]], programId) — one PDA for
|
|
26
29
|
// the whole program (AUTHORITY_AMM, processor.rs:111), pinned mainnet value.
|
|
27
30
|
const AMM_AUTHORITY = address("5Q544fKrFoe6tsEbD7S8EmxGTJYAKtTVhAW5Q5pge4j1");
|
|
28
|
-
// AmmInfo field offsets (state.rs AmmInfo, layout table in
|
|
31
|
+
// AmmInfo field offsets (state.rs AmmInfo, layout table in the historical venue investigation).
|
|
29
32
|
const AMM_INFO_SIZE = 752;
|
|
30
33
|
const OFF_STATUS = 0;
|
|
31
34
|
const OFF_COIN_DECIMALS = 32;
|