@paraswap/dex-lib 5.1.14 → 5.1.15
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/build/dex/aave-gsm/aave-gsm-pool.js +3 -2
- package/build/dex/aave-gsm/aave-gsm-pool.js.map +1 -1
- package/build/dex/algebra/algebra-factory.js +2 -1
- package/build/dex/algebra/algebra-factory.js.map +1 -1
- package/build/dex/algebra/algebra-pool-v1_1.js +2 -1
- package/build/dex/algebra/algebra-pool-v1_1.js.map +1 -1
- package/build/dex/algebra/algebra-pool-v1_9.js +2 -1
- package/build/dex/algebra/algebra-pool-v1_9.js.map +1 -1
- package/build/dex/algebra-integral/algebra-integral-factory.js +2 -1
- package/build/dex/algebra-integral/algebra-integral-factory.js.map +1 -1
- package/build/dex/algebra-integral/algebra-integral-pool.js +2 -1
- package/build/dex/algebra-integral/algebra-integral-pool.js.map +1 -1
- package/build/dex/angle-staked-stable/angle-staked-stable-pool.js +2 -1
- package/build/dex/angle-staked-stable/angle-staked-stable-pool.js.map +1 -1
- package/build/dex/angle-transmuter/morphoOracle.js +2 -1
- package/build/dex/angle-transmuter/morphoOracle.js.map +1 -1
- package/build/dex/angle-transmuter/morphoVault.js +2 -1
- package/build/dex/angle-transmuter/morphoVault.js.map +1 -1
- package/build/dex/angle-transmuter/transmuter.js +2 -1
- package/build/dex/angle-transmuter/transmuter.js.map +1 -1
- package/build/dex/balancer-v1/balancer-v1-pool.js +2 -1
- package/build/dex/balancer-v1/balancer-v1-pool.js.map +1 -1
- package/build/dex/balancer-v2/balancer-v2.js +2 -1
- package/build/dex/balancer-v2/balancer-v2.js.map +1 -1
- package/build/dex/balancer-v3/balancer-v3-pool.js +5 -2
- package/build/dex/balancer-v3/balancer-v3-pool.js.map +1 -1
- package/build/dex/balancer-v3/hooks/balancer-hook-event-subscriber.js +4 -1
- package/build/dex/balancer-v3/hooks/balancer-hook-event-subscriber.js.map +1 -1
- package/build/dex/camelot/camelot.js +2 -1
- package/build/dex/camelot/camelot.js.map +1 -1
- package/build/dex/cap/cap-pools.js +2 -1
- package/build/dex/cap/cap-pools.js.map +1 -1
- package/build/dex/curve-v1/pools/curve-metapool.d.ts +1 -0
- package/build/dex/curve-v1/pools/curve-metapool.js +8 -4
- package/build/dex/curve-v1/pools/curve-metapool.js.map +1 -1
- package/build/dex/curve-v1/pools/curve-pool.d.ts +1 -0
- package/build/dex/curve-v1/pools/curve-pool.js +8 -4
- package/build/dex/curve-v1/pools/curve-pool.js.map +1 -1
- package/build/dex/ekubo/pools/pool.js +2 -1
- package/build/dex/ekubo/pools/pool.js.map +1 -1
- package/build/dex/ekubo-v3/pools/pool.js +2 -1
- package/build/dex/ekubo-v3/pools/pool.js.map +1 -1
- package/build/dex/erc4626/erc-4626-pool.js +3 -1
- package/build/dex/erc4626/erc-4626-pool.js.map +1 -1
- package/build/dex/fluid-dex/fluid-dex-factory.js +2 -1
- package/build/dex/fluid-dex/fluid-dex-factory.js.map +1 -1
- package/build/dex/fluid-dex/fluid-dex-pool.js +2 -1
- package/build/dex/fluid-dex/fluid-dex-pool.js.map +1 -1
- package/build/dex/fluid-dex-lite/fluid-dex-lite-pool.js +3 -2
- package/build/dex/fluid-dex-lite/fluid-dex-lite-pool.js.map +1 -1
- package/build/dex/lite-psm/lite-psm-event-pool.js +4 -3
- package/build/dex/lite-psm/lite-psm-event-pool.js.map +1 -1
- package/build/dex/maverick-v1/maverick-v1-pool.js +2 -1
- package/build/dex/maverick-v1/maverick-v1-pool.js.map +1 -1
- package/build/dex/maverick-v2/maverick-v2-pool.js +2 -1
- package/build/dex/maverick-v2/maverick-v2-pool.js.map +1 -1
- package/build/dex/miro-migrator/miro-migrator-pool.js +2 -1
- package/build/dex/miro-migrator/miro-migrator-pool.js.map +1 -1
- package/build/dex/nerve/nerve-pool.js +3 -2
- package/build/dex/nerve/nerve-pool.js.map +1 -1
- package/build/dex/oswap/oswap-pool.js +4 -3
- package/build/dex/oswap/oswap-pool.js.map +1 -1
- package/build/dex/pancakeswap-v3/pancakeswap-v3-factory.js +2 -1
- package/build/dex/pancakeswap-v3/pancakeswap-v3-factory.js.map +1 -1
- package/build/dex/pancakeswap-v3/pancakeswap-v3-pool.js +2 -1
- package/build/dex/pancakeswap-v3/pancakeswap-v3-pool.js.map +1 -1
- package/build/dex/sky-converter/sky-converter-pool.js +2 -1
- package/build/dex/sky-converter/sky-converter-pool.js.map +1 -1
- package/build/dex/solidly-v3/solidly-v3-factory.js +2 -1
- package/build/dex/solidly-v3/solidly-v3-factory.js.map +1 -1
- package/build/dex/solidly-v3/solidly-v3-pool.js +2 -1
- package/build/dex/solidly-v3/solidly-v3-pool.js.map +1 -1
- package/build/dex/stkgho/stkgho-pool.js +2 -1
- package/build/dex/stkgho/stkgho-pool.js.map +1 -1
- package/build/dex/swell/rsweth-pool.js +2 -1
- package/build/dex/swell/rsweth-pool.js.map +1 -1
- package/build/dex/swell/sweth-pool.js +2 -1
- package/build/dex/swell/sweth-pool.js.map +1 -1
- package/build/dex/uniswap-v2/few-wrapped-token-event-pool.js +2 -1
- package/build/dex/uniswap-v2/few-wrapped-token-event-pool.js.map +1 -1
- package/build/dex/uniswap-v2/uniswap-v2-factory.js +2 -1
- package/build/dex/uniswap-v2/uniswap-v2-factory.js.map +1 -1
- package/build/dex/uniswap-v2/uniswap-v2.js +2 -1
- package/build/dex/uniswap-v2/uniswap-v2.js.map +1 -1
- package/build/dex/uniswap-v3/uniswap-v3-factory.js +2 -1
- package/build/dex/uniswap-v3/uniswap-v3-factory.js.map +1 -1
- package/build/dex/uniswap-v3/uniswap-v3-pool.js +2 -1
- package/build/dex/uniswap-v3/uniswap-v3-pool.js.map +1 -1
- package/build/dex/uniswap-v4/hooks/arena/arena-fee-helper.js +2 -1
- package/build/dex/uniswap-v4/hooks/arena/arena-fee-helper.js.map +1 -1
- package/build/dex/uniswap-v4/uniswap-v4-pool-manager.js +2 -1
- package/build/dex/uniswap-v4/uniswap-v4-pool-manager.js.map +1 -1
- package/build/dex/uniswap-v4/uniswap-v4-pool.js +2 -1
- package/build/dex/uniswap-v4/uniswap-v4-pool.js.map +1 -1
- package/build/dex/usual-pp/pool.js +2 -1
- package/build/dex/usual-pp/pool.js.map +1 -1
- package/build/lib/benqi/staked-avax.js +2 -1
- package/build/lib/benqi/staked-avax.js.map +1 -1
- package/build/lib/generics-events-subscribers/erc20-event-subscriber.js +3 -1
- package/build/lib/generics-events-subscribers/erc20-event-subscriber.js.map +1 -1
- package/build/lib/scripts/measure-log-decoding.d.ts +1 -0
- package/build/lib/scripts/measure-log-decoding.js +147 -0
- package/build/lib/scripts/measure-log-decoding.js.map +1 -0
- package/build/lib/topic-log-decoder.d.ts +34 -0
- package/build/lib/topic-log-decoder.js +81 -0
- package/build/lib/topic-log-decoder.js.map +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.TopicLogDecoder = void 0;
|
|
4
|
+
exports.getTopicLogDecoder = getTopicLogDecoder;
|
|
5
|
+
const utils_1 = require("ethers/lib/utils");
|
|
6
|
+
/**
|
|
7
|
+
* `Interface.parseLog` resolves `topics[0]` by formatting and keccak hashing
|
|
8
|
+
* every event fragment of the ABI until one matches, then deep copies the
|
|
9
|
+
* result into a `LogDescription`. Both costs are paid on every single log, and
|
|
10
|
+
* the first one grows with the size of the ABI.
|
|
11
|
+
*
|
|
12
|
+
* This decoder builds the `topic0 -> fragment` map once and resolves a log with
|
|
13
|
+
* a single map lookup, reusing the name/signature/topic computed at build time.
|
|
14
|
+
*
|
|
15
|
+
* `args` is deep copied exactly like `parseLog` does, so consumers see the same
|
|
16
|
+
* values. The one deviation is `eventFragment`: `parseLog` hands out a deep
|
|
17
|
+
* copy of the fragment, this decoder hands out the fragment itself. Copying it
|
|
18
|
+
* per log is the most expensive part of that deep copy, and nothing reads
|
|
19
|
+
* `eventFragment` off a decoded log.
|
|
20
|
+
*/
|
|
21
|
+
class TopicLogDecoder {
|
|
22
|
+
iface;
|
|
23
|
+
byTopic = new Map();
|
|
24
|
+
constructor(iface) {
|
|
25
|
+
this.iface = iface;
|
|
26
|
+
for (const name of Object.keys(iface.events)) {
|
|
27
|
+
const eventFragment = iface.events[name];
|
|
28
|
+
// Anonymous events have no topic0 to look up: the fallback below leaves
|
|
29
|
+
// them to `parseLog`.
|
|
30
|
+
if (eventFragment.anonymous)
|
|
31
|
+
continue;
|
|
32
|
+
const topic = iface.getEventTopic(eventFragment);
|
|
33
|
+
this.byTopic.set(topic, {
|
|
34
|
+
eventFragment,
|
|
35
|
+
name: eventFragment.name,
|
|
36
|
+
signature: eventFragment.format(),
|
|
37
|
+
topic,
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
decode(log) {
|
|
42
|
+
const entry = this.getEntry(log.topics[0]);
|
|
43
|
+
if (entry === undefined) {
|
|
44
|
+
// Unknown, anonymous or malformed topic: delegate, so callers keep
|
|
45
|
+
// seeing ethers' own error (they branch on `no matching event`).
|
|
46
|
+
return this.iface.parseLog(log);
|
|
47
|
+
}
|
|
48
|
+
return {
|
|
49
|
+
eventFragment: entry.eventFragment,
|
|
50
|
+
name: entry.name,
|
|
51
|
+
signature: entry.signature,
|
|
52
|
+
topic: entry.topic,
|
|
53
|
+
args: (0, utils_1.deepCopy)(this.iface.decodeEventLog(entry.eventFragment, log.data, log.topics)),
|
|
54
|
+
};
|
|
55
|
+
}
|
|
56
|
+
getEntry(topic0) {
|
|
57
|
+
const entry = this.byTopic.get(topic0);
|
|
58
|
+
if (entry !== undefined)
|
|
59
|
+
return entry;
|
|
60
|
+
// Topics come lowercased in practice; `getEvent` accepts any case.
|
|
61
|
+
return typeof topic0 === 'string'
|
|
62
|
+
? this.byTopic.get(topic0.toLowerCase())
|
|
63
|
+
: undefined;
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
exports.TopicLogDecoder = TopicLogDecoder;
|
|
67
|
+
const decoders = new WeakMap();
|
|
68
|
+
/**
|
|
69
|
+
* Returns the shared `TopicLogDecoder` of an `Interface`, building it on first
|
|
70
|
+
* use. Interfaces shared across pools (`erc20Iface`, ...) therefore share a
|
|
71
|
+
* single topic map.
|
|
72
|
+
*/
|
|
73
|
+
function getTopicLogDecoder(iface) {
|
|
74
|
+
let decoder = decoders.get(iface);
|
|
75
|
+
if (decoder === undefined) {
|
|
76
|
+
decoder = new TopicLogDecoder(iface);
|
|
77
|
+
decoders.set(iface, decoder);
|
|
78
|
+
}
|
|
79
|
+
return decoder;
|
|
80
|
+
}
|
|
81
|
+
//# sourceMappingURL=topic-log-decoder.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"topic-log-decoder.js","sourceRoot":"","sources":["../../src/lib/topic-log-decoder.ts"],"names":[],"mappings":";;;AAsFA,gDAOC;AA5FD,4CAA4C;AAc5C;;;;;;;;;;;;;;GAcG;AACH,MAAa,eAAe;IAGG;IAFZ,OAAO,GAAG,IAAI,GAAG,EAAsB,CAAC;IAEzD,YAA6B,KAAgB;QAAhB,UAAK,GAAL,KAAK,CAAW;QAC3C,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC;YAC7C,MAAM,aAAa,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YACzC,wEAAwE;YACxE,sBAAsB;YACtB,IAAI,aAAa,CAAC,SAAS;gBAAE,SAAS;YAEtC,MAAM,KAAK,GAAG,KAAK,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC;YACjD,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE;gBACtB,aAAa;gBACb,IAAI,EAAE,aAAa,CAAC,IAAI;gBACxB,SAAS,EAAE,aAAa,CAAC,MAAM,EAAE;gBACjC,KAAK;aACN,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,MAAM,CAAC,GAAiB;QACtB,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;QAC3C,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxB,mEAAmE;YACnE,iEAAiE;YACjE,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;QAClC,CAAC;QAED,OAAO;YACL,aAAa,EAAE,KAAK,CAAC,aAAa;YAClC,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,SAAS,EAAE,KAAK,CAAC,SAAS;YAC1B,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,IAAI,EAAE,IAAA,gBAAQ,EACZ,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,aAAa,EAAE,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC,CACrE;SACF,CAAC;IACJ,CAAC;IAEO,QAAQ,CAAC,MAAc;QAC7B,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACvC,IAAI,KAAK,KAAK,SAAS;YAAE,OAAO,KAAK,CAAC;QACtC,mEAAmE;QACnE,OAAO,OAAO,MAAM,KAAK,QAAQ;YAC/B,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;YACxC,CAAC,CAAC,SAAS,CAAC;IAChB,CAAC;CACF;AA/CD,0CA+CC;AAED,MAAM,QAAQ,GAAG,IAAI,OAAO,EAA8B,CAAC;AAE3D;;;;GAIG;AACH,SAAgB,kBAAkB,CAAC,KAAgB;IACjD,IAAI,OAAO,GAAG,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAClC,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QAC1B,OAAO,GAAG,IAAI,eAAe,CAAC,KAAK,CAAC,CAAC;QACrC,QAAQ,CAAC,GAAG,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IAC/B,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC"}
|