@paraswap/dex-lib 5.1.13 → 5.1.14-0
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/erc4626/config.js +8 -0
- package/build/dex/erc4626/config.js.map +1 -1
- package/build/dex/erc4626/erc-4626-pool.d.ts +4 -1
- package/build/dex/erc4626/erc-4626-pool.js +23 -4
- package/build/dex/erc4626/erc-4626-pool.js.map +1 -1
- package/build/dex/erc4626/erc4626.d.ts +2 -1
- package/build/dex/erc4626/erc4626.js +18 -2
- package/build/dex/erc4626/erc4626.js.map +1 -1
- package/build/dex/erc4626/types.d.ts +1 -0
- package/package.json +1 -1
|
@@ -83,6 +83,14 @@ exports.ERC4626Config = {
|
|
|
83
83
|
asset: '0xb1e25689d55734fd3fffc939c4c3eb52dff8a794', // OS
|
|
84
84
|
},
|
|
85
85
|
},
|
|
86
|
+
sftUSD: {
|
|
87
|
+
[constants_1.Network.MAINNET]: {
|
|
88
|
+
vault: '0xeb48218a4c35C814C7678cBcae88C6Ee037F7625', // sftUSD
|
|
89
|
+
asset: '0xF7D85EC4E7710f71992752eac2111312e73E9C9C', // ftUSD
|
|
90
|
+
backingToken: '0xB44a9C40EFc05Eb014EfFEac3CBed6A31F8cB87f', // ftftUSD
|
|
91
|
+
decimals: 6,
|
|
92
|
+
},
|
|
93
|
+
},
|
|
86
94
|
wsuperOETHb: {
|
|
87
95
|
[constants_1.Network.BASE]: {
|
|
88
96
|
vault: '0x7fcd174e80f264448ebee8c88a7c4476aaf58ea6', // wsuperOETHb
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/dex/erc4626/config.ts"],"names":[],"mappings":";;;AAEA,+CAA0C;AAE7B,QAAA,aAAa,GAAgC;IACxD,oCAAoC;IACpC,IAAI,EAAE;QACJ,CAAC,mBAAO,CAAC,MAAM,CAAC,EAAE;YAChB,KAAK,EAAE,4CAA4C,EAAE,OAAO;YAC5D,KAAK,EAAE,4CAA4C,EAAE,QAAQ;SAC9D;KACF;IACD,KAAK,EAAE;QACL,CAAC,mBAAO,CAAC,OAAO,CAAC,EAAE;YACjB,KAAK,EAAE,4CAA4C,EAAE,QAAQ;YAC7D,KAAK,EAAE,4CAA4C,EAAE,OAAO;SAC7D;KACF;IACD,KAAK,EAAE;QACL,CAAC,mBAAO,CAAC,OAAO,CAAC,EAAE;YACjB,KAAK,EAAE,4CAA4C,EAAE,QAAQ;YAC7D,KAAK,EAAE,4CAA4C,EAAE,OAAO;YAC5D,eAAe,EAAE,IAAI;SACtB;KACF;IACD,KAAK,EAAE;QACL,CAAC,mBAAO,CAAC,IAAI,CAAC,EAAE;YACd,KAAK,EAAE,4CAA4C,EAAE,QAAQ;YAC7D,KAAK,EAAE,4CAA4C,EAAE,OAAO;YAC5D,gBAAgB,EAAE,IAAI;SACvB;KACF;IACD,KAAK,EAAE;QACL,CAAC,mBAAO,CAAC,IAAI,CAAC,EAAE;YACd,KAAK,EAAE,4CAA4C,EAAE,QAAQ;YAC7D,KAAK,EAAE,4CAA4C,EAAE,OAAO;YAC5D,QAAQ,EAAE,CAAC;YACX,gBAAgB,EAAE,IAAI;SACvB;KACF;IACD,MAAM,EAAE;QACN,CAAC,mBAAO,CAAC,OAAO,CAAC,EAAE;YACjB,KAAK,EAAE,4CAA4C,EAAE,SAAS;YAC9D,KAAK,EAAE,4CAA4C,EAAE,OAAO;SAC7D;KACF;IACD,MAAM,EAAE;QACN,CAAC,mBAAO,CAAC,MAAM,CAAC,EAAE;YAChB,KAAK,EAAE,4CAA4C,EAAE,SAAS;YAC9D,KAAK,EAAE,4CAA4C,EAAE,QAAQ;YAC7D,QAAQ,EAAE,CAAC;SACZ;KACF;IACD,MAAM,EAAE;QACN,CAAC,mBAAO,CAAC,MAAM,CAAC,EAAE;YAChB,KAAK,EAAE,4CAA4C,EAAE,SAAS;YAC9D,KAAK,EAAE,4CAA4C,EAAE,QAAQ;YAC7D,QAAQ,EAAE,CAAC;SACZ;KACF;IACD,UAAU,EAAE;QACV,CAAC,mBAAO,CAAC,MAAM,CAAC,EAAE;YAChB,KAAK,EAAE,4CAA4C,EAAE,aAAa;YAClE,KAAK,EAAE,4CAA4C,EAAE,QAAQ;YAC7D,QAAQ,EAAE,CAAC;SACZ;KACF;IACD,KAAK,EAAE;QACL,CAAC,mBAAO,CAAC,OAAO,CAAC,EAAE;YACjB,KAAK,EAAE,4CAA4C,EAAE,QAAQ;YAC7D,KAAK,EAAE,4CAA4C,EAAE,OAAO;SAC7D;KACF;IACD,KAAK,EAAE;QACL,CAAC,mBAAO,CAAC,OAAO,CAAC,EAAE;YACjB,KAAK,EAAE,4CAA4C,EAAE,QAAQ;YAC7D,KAAK,EAAE,4CAA4C,EAAE,OAAO;SAC7D;KACF;IACD,GAAG,EAAE;QACH,CAAC,mBAAO,CAAC,KAAK,CAAC,EAAE;YACf,KAAK,EAAE,4CAA4C,EAAE,MAAM;YAC3D,KAAK,EAAE,4CAA4C,EAAE,KAAK;SAC3D;KACF;IACD,WAAW,EAAE;QACX,CAAC,mBAAO,CAAC,IAAI,CAAC,EAAE;YACd,KAAK,EAAE,4CAA4C,EAAE,cAAc;YACnE,KAAK,EAAE,4CAA4C,EAAE,aAAa;SACnE;KACF;CACF,CAAC"}
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/dex/erc4626/config.ts"],"names":[],"mappings":"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"}
|
|
@@ -14,12 +14,15 @@ export declare class ERC4626EventPool extends StatefulEventSubscriber<ERC4626Poo
|
|
|
14
14
|
private withdrawTopic;
|
|
15
15
|
private transferTopic;
|
|
16
16
|
private cooldownEnabled;
|
|
17
|
+
private backingToken?;
|
|
17
18
|
logDecoder: (log: Log) => any;
|
|
18
|
-
|
|
19
|
+
private assetsToken;
|
|
20
|
+
constructor(parentName: string, network: Network, poolName: string, dexHelper: IDexHelper, vault: Address, asset: Address, wrapperInterface: Interface, logger: Logger, depositTopic: string, withdrawTopic: string, transferTopic: string, cooldownEnabled?: boolean, backingToken?: Address | undefined);
|
|
19
21
|
protected processLog(state: DeepReadonly<ERC4626PoolState>, log: Readonly<Log>, blockHeader: Readonly<BlockHeader>): Promise<DeepReadonly<ERC4626PoolState> | null>;
|
|
20
22
|
generateState(blockNumber?: number | 'latest'): Promise<DeepReadonly<ERC4626PoolState>>;
|
|
21
23
|
getOrGenerateState(blockNumber: number): Promise<ERC4626PoolState>;
|
|
22
24
|
handleDeposit(event: any, state: DeepReadonly<ERC4626PoolState>, _: Readonly<Log>): Promise<DeepReadonly<ERC4626PoolState>>;
|
|
23
25
|
handleAssetTransferToVault(event: any, state: DeepReadonly<ERC4626PoolState>, _: Readonly<Log>): Promise<DeepReadonly<ERC4626PoolState>>;
|
|
26
|
+
handleAssetTransferFromVault(event: any, state: DeepReadonly<ERC4626PoolState>, _: Readonly<Log>): Promise<DeepReadonly<ERC4626PoolState>>;
|
|
24
27
|
handleWithdraw(event: any, state: DeepReadonly<ERC4626PoolState>, _: Readonly<Log>): Promise<DeepReadonly<ERC4626PoolState>>;
|
|
25
28
|
}
|
|
@@ -12,8 +12,12 @@ class ERC4626EventPool extends stateful_event_subscriber_1.StatefulEventSubscrib
|
|
|
12
12
|
withdrawTopic;
|
|
13
13
|
transferTopic;
|
|
14
14
|
cooldownEnabled;
|
|
15
|
+
backingToken;
|
|
15
16
|
logDecoder;
|
|
16
|
-
|
|
17
|
+
// token whose vault balance backs `totalAssets`: `asset` for vaults holding it
|
|
18
|
+
// directly, `backingToken` for vaults that immediately convert deposits
|
|
19
|
+
assetsToken;
|
|
20
|
+
constructor(parentName, network, poolName, dexHelper, vault, asset, wrapperInterface, logger, depositTopic, withdrawTopic, transferTopic, cooldownEnabled = false, backingToken) {
|
|
17
21
|
super(parentName, poolName, dexHelper, logger);
|
|
18
22
|
this.dexHelper = dexHelper;
|
|
19
23
|
this.vault = vault;
|
|
@@ -23,7 +27,9 @@ class ERC4626EventPool extends stateful_event_subscriber_1.StatefulEventSubscrib
|
|
|
23
27
|
this.withdrawTopic = withdrawTopic;
|
|
24
28
|
this.transferTopic = transferTopic;
|
|
25
29
|
this.cooldownEnabled = cooldownEnabled;
|
|
26
|
-
this.
|
|
30
|
+
this.backingToken = backingToken;
|
|
31
|
+
this.addressesSubscribed = [vault, backingToken ?? asset];
|
|
32
|
+
this.assetsToken = (backingToken ?? asset).toLowerCase();
|
|
27
33
|
this.vault = vault.toLowerCase();
|
|
28
34
|
this.asset = asset.toLowerCase();
|
|
29
35
|
this.logDecoder = (log) => this.wrapperInterface.parseLog(log);
|
|
@@ -32,13 +38,16 @@ class ERC4626EventPool extends stateful_event_subscriber_1.StatefulEventSubscrib
|
|
|
32
38
|
const topic0 = log.topics[0];
|
|
33
39
|
try {
|
|
34
40
|
if (topic0 === this.transferTopic) {
|
|
35
|
-
if (log.address.toLowerCase() !== this.
|
|
41
|
+
if (log.address.toLowerCase() !== this.assetsToken) {
|
|
36
42
|
return null;
|
|
37
43
|
}
|
|
38
44
|
const event = this.logDecoder(log);
|
|
39
45
|
if (event.args.to.toLowerCase() === this.vault) {
|
|
40
46
|
return this.handleAssetTransferToVault(event, state, log);
|
|
41
47
|
}
|
|
48
|
+
if (this.backingToken && event.args.from.toLowerCase() === this.vault) {
|
|
49
|
+
return this.handleAssetTransferFromVault(event, state, log);
|
|
50
|
+
}
|
|
42
51
|
return null;
|
|
43
52
|
}
|
|
44
53
|
if (topic0 === this.depositTopic) {
|
|
@@ -105,10 +114,20 @@ class ERC4626EventPool extends stateful_event_subscriber_1.StatefulEventSubscrib
|
|
|
105
114
|
totalAssets: state.totalAssets + BigInt(event.args.value),
|
|
106
115
|
};
|
|
107
116
|
}
|
|
117
|
+
async handleAssetTransferFromVault(event, state, _) {
|
|
118
|
+
return {
|
|
119
|
+
...state,
|
|
120
|
+
totalAssets: state.totalAssets - BigInt(event.args.value),
|
|
121
|
+
};
|
|
122
|
+
}
|
|
108
123
|
async handleWithdraw(event, state, _) {
|
|
109
124
|
return {
|
|
110
125
|
...state,
|
|
111
|
-
|
|
126
|
+
// with a backing token, `totalAssets` follows its balance, and `Withdraw.assets`
|
|
127
|
+
// can be net of fees taken from the redeemed amount
|
|
128
|
+
totalAssets: this.backingToken
|
|
129
|
+
? state.totalAssets
|
|
130
|
+
: BigInt(state.totalAssets) - BigInt(event.args.assets),
|
|
112
131
|
totalShares: BigInt(state.totalShares) - BigInt(event.args.shares),
|
|
113
132
|
};
|
|
114
133
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"erc-4626-pool.js","sourceRoot":"","sources":["../../../src/dex/erc4626/erc-4626-pool.ts"],"names":[],"mappings":";;;AAAA,+EAA0E;AAO1E,iDAAqE;AAGrE,MAAa,gBAAiB,SAAQ,mDAAyC;
|
|
1
|
+
{"version":3,"file":"erc-4626-pool.js","sourceRoot":"","sources":["../../../src/dex/erc4626/erc-4626-pool.ts"],"names":[],"mappings":";;;AAAA,+EAA0E;AAO1E,iDAAqE;AAGrE,MAAa,gBAAiB,SAAQ,mDAAyC;IAWjE;IACF;IACA;IACA;IAEA;IACA;IACA;IACA;IACA;IAnBV,UAAU,CAAoB;IAE9B,+EAA+E;IAC/E,wEAAwE;IAChE,WAAW,CAAU;IAE7B,YACE,UAAkB,EAClB,OAAgB,EAChB,QAAgB,EACN,SAAqB,EACvB,KAAc,EACd,KAAc,EACd,gBAA2B,EACnC,MAAc,EACN,YAAoB,EACpB,aAAqB,EACrB,aAAqB,EACrB,kBAA2B,KAAK,EAChC,YAAsB;QAE9B,KAAK,CAAC,UAAU,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;QAXrC,cAAS,GAAT,SAAS,CAAY;QACvB,UAAK,GAAL,KAAK,CAAS;QACd,UAAK,GAAL,KAAK,CAAS;QACd,qBAAgB,GAAhB,gBAAgB,CAAW;QAE3B,iBAAY,GAAZ,YAAY,CAAQ;QACpB,kBAAa,GAAb,aAAa,CAAQ;QACrB,kBAAa,GAAb,aAAa,CAAQ;QACrB,oBAAe,GAAf,eAAe,CAAiB;QAChC,iBAAY,GAAZ,YAAY,CAAU;QAG9B,IAAI,CAAC,mBAAmB,GAAG,CAAC,KAAK,EAAE,YAAY,IAAI,KAAK,CAAC,CAAC;QAC1D,IAAI,CAAC,WAAW,GAAG,CAAC,YAAY,IAAI,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC;QACzD,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;QACjC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;QACjC,IAAI,CAAC,UAAU,GAAG,CAAC,GAAQ,EAAE,EAAE,CAAC,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;IACtE,CAAC;IAES,KAAK,CAAC,UAAU,CACxB,KAAqC,EACrC,GAAkB,EAClB,WAAkC;QAElC,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QAE7B,IAAI,CAAC;YACH,IAAI,MAAM,KAAK,IAAI,CAAC,aAAa,EAAE,CAAC;gBAClC,IAAI,GAAG,CAAC,OAAO,CAAC,WAAW,EAAE,KAAK,IAAI,CAAC,WAAW,EAAE,CAAC;oBACnD,OAAO,IAAI,CAAC;gBACd,CAAC;gBAED,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;gBACnC,IAAI,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,WAAW,EAAE,KAAK,IAAI,CAAC,KAAK,EAAE,CAAC;oBAC/C,OAAO,IAAI,CAAC,0BAA0B,CAAC,KAAK,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC;gBAC5D,CAAC;gBAED,IAAI,IAAI,CAAC,YAAY,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,IAAI,CAAC,KAAK,EAAE,CAAC;oBACtE,OAAO,IAAI,CAAC,4BAA4B,CAAC,KAAK,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC;gBAC9D,CAAC;gBAED,OAAO,IAAI,CAAC;YACd,CAAC;YAED,IAAI,MAAM,KAAK,IAAI,CAAC,YAAY,EAAE,CAAC;gBACjC,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;gBACnC,OAAO,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC;YAC/C,CAAC;YAED,IAAI,MAAM,KAAK,IAAI,CAAC,aAAa,EAAE,CAAC;gBAClC,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;gBACnC,OAAO,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC;YAChD,CAAC;YAED,OAAO,IAAI,CAAC;QACd,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,MAAM,CAAC,KAAK,CACf,yBAAyB,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,YAAY,KAAK,EAAE,CAChE,CAAC;YACF,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAED,KAAK,CAAC,aAAa,CACjB,cAAiC,QAAQ;QAEzC,MAAM,KAAK,GAAG;YACZ;gBACE,MAAM,EAAE,IAAI,CAAC,KAAK;gBAClB,QAAQ,EAAE,IAAI,CAAC,gBAAgB,CAAC,kBAAkB,CAAC,aAAa,EAAE,EAAE,CAAC;gBACrE,cAAc,EAAE,0BAAe;aAChC;YACD;gBACE,MAAM,EAAE,IAAI,CAAC,KAAK;gBAClB,QAAQ,EAAE,IAAI,CAAC,gBAAgB,CAAC,kBAAkB,CAAC,aAAa,EAAE,EAAE,CAAC;gBACrE,cAAc,EAAE,0BAAe;aAChC;YACD,GAAG,CAAC,IAAI,CAAC,eAAe;gBACtB,CAAC,CAAC;oBACE;wBACE,MAAM,EAAE,IAAI,CAAC,KAAK;wBAClB,QAAQ,EAAE,IAAI,CAAC,gBAAgB,CAAC,kBAAkB,CAChD,kBAAkB,EAClB,EAAE,CACH;wBACD,cAAc,EAAE,yBAAc;qBAC/B;iBACF;gBACH,CAAC,CAAC,EAAE,CAAC;SACR,CAAC;QAEF,MAAM,CAAC,WAAW,EAAE,WAAW,EAAE,gBAAgB,CAAC,GAChD,MAAM,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,YAAY,CAC5C,IAAI,EACJ,KAAK,EACL,WAAW,CACZ,CAAC;QAEJ,OAAO;YACL,WAAW,EAAE,WAAW,CAAC,UAAU;YACnC,WAAW,EAAE,WAAW,CAAC,UAAU;YACnC,gBAAgB,EAAE,gBAAgB,EAAE,UAAU;SAC/C,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,kBAAkB,CAAC,WAAmB;QAC1C,IAAI,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;QACvC,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,KAAK,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;YAC9C,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;QACpC,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,KAAK,CAAC,aAAa,CACjB,KAAU,EACV,KAAqC,EACrC,CAAgB;QAEhB,OAAO;YACL,GAAG,KAAK;YACR,WAAW,EAAE,KAAK,CAAC,WAAW,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC;SAC3D,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,0BAA0B,CAC9B,KAAU,EACV,KAAqC,EACrC,CAAgB;QAEhB,OAAO;YACL,GAAG,KAAK;YACR,WAAW,EAAE,KAAK,CAAC,WAAW,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC;SAC1D,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,4BAA4B,CAChC,KAAU,EACV,KAAqC,EACrC,CAAgB;QAEhB,OAAO;YACL,GAAG,KAAK;YACR,WAAW,EAAE,KAAK,CAAC,WAAW,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC;SAC1D,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,cAAc,CAClB,KAAU,EACV,KAAqC,EACrC,CAAgB;QAEhB,OAAO;YACL,GAAG,KAAK;YACR,iFAAiF;YACjF,oDAAoD;YACpD,WAAW,EAAE,IAAI,CAAC,YAAY;gBAC5B,CAAC,CAAC,KAAK,CAAC,WAAW;gBACnB,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC;YACzD,WAAW,EAAE,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC;SACnE,CAAC;IACJ,CAAC;CACF;AA7KD,4CA6KC"}
|
|
@@ -15,6 +15,7 @@ export declare class ERC4626 extends SimpleExchange implements IDex<ERC4626Data,
|
|
|
15
15
|
readonly cooldownEnabled: boolean;
|
|
16
16
|
readonly decimals: number;
|
|
17
17
|
readonly withdrawDisabled: boolean;
|
|
18
|
+
readonly backingToken: string | undefined;
|
|
18
19
|
readonly erc4626Interface: Interface;
|
|
19
20
|
readonly hasConstantPriceLargeAmounts = true;
|
|
20
21
|
readonly isFeeOnTransferSupported = false;
|
|
@@ -25,7 +26,7 @@ export declare class ERC4626 extends SimpleExchange implements IDex<ERC4626Data,
|
|
|
25
26
|
}[];
|
|
26
27
|
readonly eventPool: ERC4626EventPool;
|
|
27
28
|
logger: Logger;
|
|
28
|
-
constructor(network: Network, dexKey: string, dexHelper: IDexHelper, vault?: string, asset?: string, cooldownEnabled?: boolean, decimals?: number, withdrawDisabled?: boolean, erc4626Interface?: Interface);
|
|
29
|
+
constructor(network: Network, dexKey: string, dexHelper: IDexHelper, vault?: string, asset?: string, cooldownEnabled?: boolean, decimals?: number, withdrawDisabled?: boolean, backingToken?: string | undefined, erc4626Interface?: Interface);
|
|
29
30
|
getAdapters(side: SwapSide): {
|
|
30
31
|
name: string;
|
|
31
32
|
index: number;
|
|
@@ -49,6 +49,7 @@ const abi_1 = require("@ethersproject/abi");
|
|
|
49
49
|
const ERC4626_json_1 = __importDefault(require("../../abi/ERC4626.json"));
|
|
50
50
|
const constants_2 = require("./constants");
|
|
51
51
|
const utils_2 = require("../../executor/utils");
|
|
52
|
+
const bytes_1 = require("@ethersproject/bytes");
|
|
52
53
|
class ERC4626 extends simple_exchange_1.SimpleExchange {
|
|
53
54
|
network;
|
|
54
55
|
dexKey;
|
|
@@ -58,6 +59,7 @@ class ERC4626 extends simple_exchange_1.SimpleExchange {
|
|
|
58
59
|
cooldownEnabled;
|
|
59
60
|
decimals;
|
|
60
61
|
withdrawDisabled;
|
|
62
|
+
backingToken;
|
|
61
63
|
erc4626Interface;
|
|
62
64
|
hasConstantPriceLargeAmounts = true;
|
|
63
65
|
isFeeOnTransferSupported = false;
|
|
@@ -67,7 +69,8 @@ class ERC4626 extends simple_exchange_1.SimpleExchange {
|
|
|
67
69
|
logger;
|
|
68
70
|
constructor(network, dexKey, dexHelper, vault = config_1.ERC4626Config[dexKey][network].vault, asset = config_1.ERC4626Config[dexKey][network].asset, cooldownEnabled = config_1.ERC4626Config[dexKey][network]
|
|
69
71
|
.cooldownEnabled || false, decimals = config_1.ERC4626Config[dexKey][network].decimals || 18, withdrawDisabled = config_1.ERC4626Config[dexKey][network]
|
|
70
|
-
.withdrawDisabled || false,
|
|
72
|
+
.withdrawDisabled || false, backingToken = config_1.ERC4626Config[dexKey][network]
|
|
73
|
+
.backingToken, erc4626Interface = new abi_1.Interface(ERC4626_json_1.default)) {
|
|
71
74
|
super(dexHelper, dexKey);
|
|
72
75
|
this.network = network;
|
|
73
76
|
this.dexKey = dexKey;
|
|
@@ -77,9 +80,10 @@ class ERC4626 extends simple_exchange_1.SimpleExchange {
|
|
|
77
80
|
this.cooldownEnabled = cooldownEnabled;
|
|
78
81
|
this.decimals = decimals;
|
|
79
82
|
this.withdrawDisabled = withdrawDisabled;
|
|
83
|
+
this.backingToken = backingToken;
|
|
80
84
|
this.erc4626Interface = erc4626Interface;
|
|
81
85
|
this.logger = dexHelper.getLogger(dexKey);
|
|
82
|
-
this.eventPool = new erc_4626_pool_1.ERC4626EventPool(this.dexKey, this.network, `${this.vault}_${this.asset}`, dexHelper, this.vault, this.asset, this.erc4626Interface, this.logger, constants_2.DEPOSIT_TOPIC, constants_2.WITHDRAW_TOPIC, constants_2.TRANSFER_TOPIC, cooldownEnabled);
|
|
86
|
+
this.eventPool = new erc_4626_pool_1.ERC4626EventPool(this.dexKey, this.network, `${this.vault}_${this.asset}`, dexHelper, this.vault, this.asset, this.erc4626Interface, this.logger, constants_2.DEPOSIT_TOPIC, constants_2.WITHDRAW_TOPIC, constants_2.TRANSFER_TOPIC, cooldownEnabled, backingToken);
|
|
83
87
|
}
|
|
84
88
|
getAdapters(side) {
|
|
85
89
|
return null;
|
|
@@ -239,11 +243,23 @@ class ERC4626 extends simple_exchange_1.SimpleExchange {
|
|
|
239
243
|
else {
|
|
240
244
|
swapData = this.erc4626Interface.encodeFunctionData(isSell ? types_1.ERC4626Functions.redeem : types_1.ERC4626Functions.withdraw, [isSell ? srcAmount : destAmount, recipient, executorAddress]);
|
|
241
245
|
}
|
|
246
|
+
// The executor overwrites the word it locates by searching the calldata for the quoted
|
|
247
|
+
// srcAmount with the amount it actually holds. On BUY the only amount encoded is the
|
|
248
|
+
// exact output one, so for a vault trading at 1:1 the search lands on it and the swap
|
|
249
|
+
// mints/withdraws the whole slippage-buffered input instead of what was quoted. Append
|
|
250
|
+
// a scratch word (trailing calldata is ignored when the call is decoded) and point the
|
|
251
|
+
// executor at that instead.
|
|
252
|
+
let insertFromAmountPos;
|
|
253
|
+
if (!isSell && BigInt(srcAmount) === BigInt(destAmount)) {
|
|
254
|
+
insertFromAmountPos = (0, bytes_1.hexDataLength)(swapData);
|
|
255
|
+
swapData = (0, bytes_1.hexConcat)([swapData, (0, bytes_1.hexZeroPad)('0x', 32)]);
|
|
256
|
+
}
|
|
242
257
|
return {
|
|
243
258
|
needWrapNative: this.needWrapNative,
|
|
244
259
|
dexFuncHasRecipient: true,
|
|
245
260
|
exchangeData: swapData,
|
|
246
261
|
targetExchange: exchange,
|
|
262
|
+
insertFromAmountPos,
|
|
247
263
|
returnAmountPos: isSell
|
|
248
264
|
? (0, utils_2.extractReturnAmountPosition)(this.erc4626Interface, this.isAsset(srcToken)
|
|
249
265
|
? types_1.ERC4626Functions.deposit
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"erc4626.js","sourceRoot":"","sources":["../../../src/dex/erc4626/erc4626.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAYA,+CAKyB;AACzB,2EAA6D;AAC7D,uCAAoD;AAGpD,mCAKiB;AACjB,wDAAoD;AACpD,qCAAyC;AACzC,6DAAiD;AACjD,mDAAmD;AACnD,4CAA+C;AAC/C,0EAAiD;AACjD,2CAA4E;AAC5E,gDAAmE;
|
|
1
|
+
{"version":3,"file":"erc4626.js","sourceRoot":"","sources":["../../../src/dex/erc4626/erc4626.ts"],"names":[],"mappings":"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"}
|