@paraswap/dex-lib 3.5.2 → 3.5.3-v6.2-params

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.
Files changed (164) hide show
  1. package/build/abi/Redstone.json +739 -0
  2. package/build/abi/angle-transmuter/MorphoOracle.json +193 -0
  3. package/build/abi/angle-transmuter/MorphoVault.json +2506 -0
  4. package/build/abi/angle-transmuter/Pyth.json +1534 -0
  5. package/build/abi/angle-transmuter/Transmuter.json +1711 -0
  6. package/build/abi/angle-transmuter/TransmuterSidechain.json +1798 -0
  7. package/build/abi/idle-dao/idle-cdo-factory.json +38 -0
  8. package/build/abi/idle-dao/idle-cdo.json +1245 -0
  9. package/build/abi/pharaoh/PharaohPool.abi.json +1582 -0
  10. package/build/abi/smardex/smardex-factory.json +185 -0
  11. package/build/abi/smardex/smardex-pool.json +578 -0
  12. package/build/abi/smardex/smardex-router.json +648 -0
  13. package/build/abi/trader-joe-v2_1/FactoryABI.json +1208 -0
  14. package/build/abi/trader-joe-v2_1/PairABI.json +1493 -0
  15. package/build/abi/trader-joe-v2_1/RouterABI.json +1489 -0
  16. package/build/abi/trader-joe-v2_1/StateMulticall.json +193 -0
  17. package/build/constants.d.ts +2 -0
  18. package/build/constants.js +3 -1
  19. package/build/constants.js.map +1 -1
  20. package/build/dex/aave-v1/aave-v1.js +0 -1
  21. package/build/dex/aave-v1/aave-v1.js.map +1 -1
  22. package/build/dex/angle-transmuter/angle-transmuter-pool.d.ts +61 -0
  23. package/build/dex/angle-transmuter/angle-transmuter-pool.js +424 -0
  24. package/build/dex/angle-transmuter/angle-transmuter-pool.js.map +1 -0
  25. package/build/dex/angle-transmuter/angle-transmuter.d.ts +60 -0
  26. package/build/dex/angle-transmuter/angle-transmuter.js +281 -0
  27. package/build/dex/angle-transmuter/angle-transmuter.js.map +1 -0
  28. package/build/dex/angle-transmuter/backedOracle.d.ts +19 -0
  29. package/build/dex/angle-transmuter/backedOracle.js +56 -0
  30. package/build/dex/angle-transmuter/backedOracle.js.map +1 -0
  31. package/build/dex/angle-transmuter/config.d.ts +4 -0
  32. package/build/dex/angle-transmuter/config.js +50 -0
  33. package/build/dex/angle-transmuter/config.js.map +1 -0
  34. package/build/dex/angle-transmuter/constants.d.ts +10 -0
  35. package/build/dex/angle-transmuter/constants.js +137 -0
  36. package/build/dex/angle-transmuter/constants.js.map +1 -0
  37. package/build/dex/angle-transmuter/morphoOracle.d.ts +42 -0
  38. package/build/dex/angle-transmuter/morphoOracle.js +179 -0
  39. package/build/dex/angle-transmuter/morphoOracle.js.map +1 -0
  40. package/build/dex/angle-transmuter/morphoVault.d.ts +20 -0
  41. package/build/dex/angle-transmuter/morphoVault.js +84 -0
  42. package/build/dex/angle-transmuter/morphoVault.js.map +1 -0
  43. package/build/dex/angle-transmuter/pyth.d.ts +19 -0
  44. package/build/dex/angle-transmuter/pyth.js +70 -0
  45. package/build/dex/angle-transmuter/pyth.js.map +1 -0
  46. package/build/dex/angle-transmuter/redstone.d.ts +20 -0
  47. package/build/dex/angle-transmuter/redstone.js +73 -0
  48. package/build/dex/angle-transmuter/redstone.js.map +1 -0
  49. package/build/dex/angle-transmuter/transmuter.d.ts +55 -0
  50. package/build/dex/angle-transmuter/transmuter.js +412 -0
  51. package/build/dex/angle-transmuter/transmuter.js.map +1 -0
  52. package/build/dex/angle-transmuter/types.d.ts +189 -0
  53. package/build/dex/angle-transmuter/types.js +33 -0
  54. package/build/dex/angle-transmuter/types.js.map +1 -0
  55. package/build/dex/angle-transmuter/utils.d.ts +9 -0
  56. package/build/dex/angle-transmuter/utils.js +257 -0
  57. package/build/dex/angle-transmuter/utils.js.map +1 -0
  58. package/build/dex/idle-dao/config.d.ts +7 -0
  59. package/build/dex/idle-dao/config.js +571 -0
  60. package/build/dex/idle-dao/config.js.map +1 -0
  61. package/build/dex/idle-dao/idle-dao-pool.d.ts +56 -0
  62. package/build/dex/idle-dao/idle-dao-pool.js +176 -0
  63. package/build/dex/idle-dao/idle-dao-pool.js.map +1 -0
  64. package/build/dex/idle-dao/idle-dao-pooling-pool.d.ts +16 -0
  65. package/build/dex/idle-dao/idle-dao-pooling-pool.js +57 -0
  66. package/build/dex/idle-dao/idle-dao-pooling-pool.js.map +1 -0
  67. package/build/dex/idle-dao/idle-dao.d.ts +52 -0
  68. package/build/dex/idle-dao/idle-dao.js +321 -0
  69. package/build/dex/idle-dao/idle-dao.js.map +1 -0
  70. package/build/dex/idle-dao/tokens.d.ts +16 -0
  71. package/build/dex/idle-dao/tokens.js +87 -0
  72. package/build/dex/idle-dao/tokens.js.map +1 -0
  73. package/build/dex/idle-dao/types.d.ts +37 -0
  74. package/build/dex/idle-dao/types.js +11 -0
  75. package/build/dex/idle-dao/types.js.map +1 -0
  76. package/build/dex/idle-dao/utils.d.ts +8 -0
  77. package/build/dex/idle-dao/utils.js +147 -0
  78. package/build/dex/idle-dao/utils.js.map +1 -0
  79. package/build/dex/platypus/platypus.js +3 -17
  80. package/build/dex/platypus/platypus.js.map +1 -1
  81. package/build/dex/smardex/subgraph-queries.d.ts +1 -0
  82. package/build/dex/smardex/subgraph-queries.js +17 -0
  83. package/build/dex/smardex/subgraph-queries.js.map +1 -0
  84. package/build/dex/smardex/usd-reserves.d.ts +23 -0
  85. package/build/dex/smardex/usd-reserves.js +86 -0
  86. package/build/dex/smardex/usd-reserves.js.map +1 -0
  87. package/build/dex/stable-pool.js +8 -1
  88. package/build/dex/stable-pool.js.map +1 -1
  89. package/build/dex/swaap-v1/swaap-v1.js +0 -4
  90. package/build/dex/swaap-v1/swaap-v1.js.map +1 -1
  91. package/build/dex/trader-joe-v2-1-2/config.d.ts +4 -0
  92. package/build/dex/trader-joe-v2-1-2/config.js +47 -0
  93. package/build/dex/trader-joe-v2-1-2/config.js.map +1 -0
  94. package/build/dex/trader-joe-v2-1-2/constants.d.ts +20 -0
  95. package/build/dex/trader-joe-v2-1-2/constants.js +22 -0
  96. package/build/dex/trader-joe-v2-1-2/constants.js.map +1 -0
  97. package/build/dex/trader-joe-v2-1-2/math/index.d.ts +37 -0
  98. package/build/dex/trader-joe-v2-1-2/math/index.js +291 -0
  99. package/build/dex/trader-joe-v2-1-2/math/index.js.map +1 -0
  100. package/build/dex/trader-joe-v2-1-2/trader-joe-v2-1-2-pool.d.ts +60 -0
  101. package/build/dex/trader-joe-v2-1-2/trader-joe-v2-1-2-pool.js +248 -0
  102. package/build/dex/trader-joe-v2-1-2/trader-joe-v2-1-2-pool.js.map +1 -0
  103. package/build/dex/trader-joe-v2-1-2/trader-joe-v2-1-2.d.ts +53 -0
  104. package/build/dex/trader-joe-v2-1-2/trader-joe-v2-1-2.js +307 -0
  105. package/build/dex/trader-joe-v2-1-2/trader-joe-v2-1-2.js.map +1 -0
  106. package/build/dex/trader-joe-v2-1-2/types.d.ts +82 -0
  107. package/build/dex/trader-joe-v2-1-2/types.js +9 -0
  108. package/build/dex/trader-joe-v2-1-2/types.js.map +1 -0
  109. package/build/dex/trader-joe-v2_1/config.d.ts +4 -0
  110. package/build/dex/trader-joe-v2_1/config.js +47 -0
  111. package/build/dex/trader-joe-v2_1/config.js.map +1 -0
  112. package/build/dex/trader-joe-v2_1/constants.d.ts +20 -0
  113. package/build/dex/trader-joe-v2_1/constants.js +22 -0
  114. package/build/dex/trader-joe-v2_1/constants.js.map +1 -0
  115. package/build/dex/trader-joe-v2_1/math/index.d.ts +37 -0
  116. package/build/dex/trader-joe-v2_1/math/index.js +291 -0
  117. package/build/dex/trader-joe-v2_1/math/index.js.map +1 -0
  118. package/build/dex/trader-joe-v2_1/trader-joe-v2.1.d.ts +0 -0
  119. package/build/dex/trader-joe-v2_1/trader-joe-v2.1.js +384 -0
  120. package/build/dex/trader-joe-v2_1/trader-joe-v2.1.js.map +1 -0
  121. package/build/dex/trader-joe-v2_1/trader-joe-v2_1-pool.d.ts +60 -0
  122. package/build/dex/trader-joe-v2_1/trader-joe-v2_1-pool.js +247 -0
  123. package/build/dex/trader-joe-v2_1/trader-joe-v2_1-pool.js.map +1 -0
  124. package/build/dex/trader-joe-v2_1/trader-joe-v2_1.d.ts +53 -0
  125. package/build/dex/trader-joe-v2_1/trader-joe-v2_1.js +307 -0
  126. package/build/dex/trader-joe-v2_1/trader-joe-v2_1.js.map +1 -0
  127. package/build/dex/trader-joe-v2_1/types.d.ts +82 -0
  128. package/build/dex/trader-joe-v2_1/types.js +9 -0
  129. package/build/dex/trader-joe-v2_1/types.js.map +1 -0
  130. package/build/dex/uniswap-v2/config.js +4 -3
  131. package/build/dex/uniswap-v2/config.js.map +1 -1
  132. package/build/dex/wombat/wombat-pool-poller.d.ts +22 -0
  133. package/build/dex/wombat/wombat-pool-poller.js +164 -0
  134. package/build/dex/wombat/wombat-pool-poller.js.map +1 -0
  135. package/build/dex-helper/Cache.d.ts +31 -0
  136. package/build/dex-helper/Cache.js +106 -0
  137. package/build/dex-helper/Cache.js.map +1 -0
  138. package/build/dex-helper/RedisBatcher.d.ts +20 -0
  139. package/build/dex-helper/RedisBatcher.js +75 -0
  140. package/build/dex-helper/RedisBatcher.js.map +1 -0
  141. package/build/dex-helper/RedisWrapper.d.ts +37 -0
  142. package/build/dex-helper/RedisWrapper.js +165 -0
  143. package/build/dex-helper/RedisWrapper.js.map +1 -0
  144. package/build/generic-swap-transaction-builder.d.ts +5 -3
  145. package/build/generic-swap-transaction-builder.js +22 -7
  146. package/build/generic-swap-transaction-builder.js.map +1 -1
  147. package/build/utils.d.ts +1 -1
  148. package/package.json +1 -1
  149. package/src/constants.ts +2 -0
  150. package/src/dex/uniswap-v2/config.ts +4 -4
  151. package/src/generic-swap-transaction-builder.ts +40 -0
  152. package/.vscode/launch.json +0 -53
  153. package/.vscode/settings.json +0 -2
  154. package/.vscode/tasks.json +0 -15
  155. package/build/abi/uniswap-v3/AlienBaseV3Router.abi.json +0 -52
  156. package/build/dex/solidly-v3/scripts/check-event-pool-event.d.ts +0 -1
  157. package/build/dex/solidly-v3/scripts/check-event-pool-event.js +0 -53
  158. package/build/dex/solidly-v3/scripts/check-event-pool-event.js.map +0 -1
  159. package/build/dex/uniswap-v3/forks/alien-base-v3/alien-base-v3.d.ts +0 -17
  160. package/build/dex/uniswap-v3/forks/alien-base-v3/alien-base-v3.js +0 -64
  161. package/build/dex/uniswap-v3/forks/alien-base-v3/alien-base-v3.js.map +0 -1
  162. package/build/dex/uniswap-v3/forks/alien-v3/alien-v3.d.ts +0 -17
  163. package/build/dex/uniswap-v3/forks/alien-v3/alien-v3.js +0 -79
  164. package/build/dex/uniswap-v3/forks/alien-v3/alien-v3.js.map +0 -1
@@ -0,0 +1,37 @@
1
+ import { Redis } from 'ioredis';
2
+ interface Pool<T> extends Array<T> {
3
+ next: () => T;
4
+ }
5
+ export declare class DexlibRedisWrapper {
6
+ static MAX_SCORE_VALUE: number;
7
+ private redisMasterUrl;
8
+ private redisSlavesUrl;
9
+ masterPool: Pool<Redis>;
10
+ slavesPool: Pool<Redis>;
11
+ connect(redisMasterUrl?: string, redisSlavesUrl?: string, connectionPerPool?: number): Promise<void>;
12
+ private _checkConnected;
13
+ checkConnected(): void;
14
+ close(): Promise<void>;
15
+ get(key: string): Promise<string | null>;
16
+ set(key: string, value: string): Promise<"OK">;
17
+ setex(key: string, seconds: number, value: string): Promise<"OK">;
18
+ incrWithTTLSec(key: string, ttlSec: number): Promise<number>;
19
+ sismember(set: string, key: string): Promise<number>;
20
+ publish(channel: string, value: string): Promise<number>;
21
+ subscribe(channel: string, cb: (channel: string, message: string) => void): Promise<unknown>;
22
+ del(key: string): Promise<number>;
23
+ zremrangebyscore(key: string, min: number, max: number): Promise<number>;
24
+ zadd(key: string, bulkItemsToAdd: (number | string)[], option?: 'NX'): Promise<number>;
25
+ zrem(key: string, membersKeys: string[]): Promise<number>;
26
+ zscore(key: string, member: string): Promise<string | null>;
27
+ hset(mapKey: string, mappings: Record<string, string>): Promise<number | undefined>;
28
+ hdel(mapKey: string, keys: string[]): Promise<number>;
29
+ hget(keyMap: string, key: string): Promise<string | null>;
30
+ hmget(keyMap: string, keys: string[]): Promise<(string | null)[]>;
31
+ hgetAll(keyMap: string): Promise<Record<string, string>>;
32
+ zrangebyscore(key: string, min: number, max: number, isWithScores?: boolean): Promise<string[]>;
33
+ zcount(key: string, min: number, max: number): Promise<number>;
34
+ sadd(set: string, keys: string[], ttl?: number): Promise<number | [error: Error | null, result: unknown][] | null>;
35
+ }
36
+ declare const _default: DexlibRedisWrapper;
37
+ export default _default;
@@ -0,0 +1,165 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.DexlibRedisWrapper = void 0;
7
+ const ioredis_1 = __importDefault(require("ioredis"));
8
+ const logger = console;
9
+ const IOREDIS_OPTION = {
10
+ enableAutoPipelining: true,
11
+ lazyConnect: true,
12
+ stringNumbers: true,
13
+ };
14
+ function makePool(url, connectionPerPool) {
15
+ const pool = Array.apply(null, new Array(connectionPerPool)).map(() => new ioredis_1.default(url, IOREDIS_OPTION));
16
+ const lastIdx = pool.length - 1;
17
+ pool.idx = 0;
18
+ pool.next = () => {
19
+ const n = pool[pool.idx];
20
+ pool.idx = pool.idx === lastIdx ? 0 : pool.idx + 1;
21
+ return n;
22
+ };
23
+ return pool;
24
+ }
25
+ class DexlibRedisWrapper {
26
+ constructor() {
27
+ this.redisMasterUrl = '';
28
+ this.redisSlavesUrl = '';
29
+ }
30
+ async connect(redisMasterUrl = 'redis://localhost:32768', redisSlavesUrl = 'redis://localhost:32768', connectionPerPool = 5) {
31
+ this.redisMasterUrl = redisMasterUrl;
32
+ this.redisSlavesUrl = redisSlavesUrl;
33
+ this.masterPool = makePool(redisMasterUrl, connectionPerPool);
34
+ this.slavesPool = makePool(redisSlavesUrl, connectionPerPool);
35
+ try {
36
+ logger.info(`Connecting to REDIS... ${this.redisMasterUrl}`);
37
+ await Promise.all([...this.masterPool, ...this.slavesPool].map(redis => redis.connect()));
38
+ logger.info('Connected to REDIS');
39
+ }
40
+ catch (e) {
41
+ logger.error(`Connecting to REDIS ${e}`);
42
+ throw e;
43
+ }
44
+ }
45
+ _checkConnected(redis) {
46
+ if (redis.status !== 'ready') {
47
+ throw new Error('Redis connection down!');
48
+ }
49
+ }
50
+ checkConnected() {
51
+ this.masterPool.forEach(this._checkConnected);
52
+ this.slavesPool.forEach(this._checkConnected);
53
+ }
54
+ async close() {
55
+ try {
56
+ logger.info('Closing REDIS...');
57
+ await Promise.all([...this.masterPool, ...this.slavesPool].map(redis => redis.quit()));
58
+ logger.info('Closed REDIS');
59
+ }
60
+ catch (e) {
61
+ logger.error(`Closing REDIS ${e}`);
62
+ throw e;
63
+ }
64
+ }
65
+ async get(key) {
66
+ return this.slavesPool.next().get(key);
67
+ }
68
+ set(key, value) {
69
+ return this.masterPool.next().set(key, value);
70
+ }
71
+ setex(key, seconds, value) {
72
+ return this.masterPool.next().setex(key, seconds, value);
73
+ }
74
+ async incrWithTTLSec(key, ttlSec) {
75
+ const results = await this.masterPool
76
+ .next()
77
+ .multi()
78
+ .incr(key)
79
+ .expire(key, ttlSec)
80
+ .exec();
81
+ if (!results || results[0] === null) {
82
+ throw new Error(`incrWithTTLSec failed`);
83
+ }
84
+ return parseInt(results[0][1], 10);
85
+ }
86
+ async sismember(set, key) {
87
+ const res = await this.masterPool.next().sismember(set, key);
88
+ return typeof res === 'number' ? res : parseInt(res, 10);
89
+ }
90
+ publish(channel, value) {
91
+ return this.masterPool.next().publish(channel, value);
92
+ }
93
+ subscribe(channel, cb) {
94
+ const redis = new ioredis_1.default(this.redisSlavesUrl, IOREDIS_OPTION);
95
+ redis.on('error', (error) => {
96
+ logger.error(`redis_subscribe_error(${channel}): ${error}`);
97
+ });
98
+ redis.on('connect', () => logger.info(`Redis_subscriber_connected(${channel})`));
99
+ redis.on('message', cb);
100
+ return redis.subscribe(channel);
101
+ }
102
+ async del(key) {
103
+ return this.masterPool.next().del(key);
104
+ }
105
+ async zremrangebyscore(key, min, max) {
106
+ return this.masterPool.next().zremrangebyscore(key, min, max);
107
+ }
108
+ async zadd(key, bulkItemsToAdd, option) {
109
+ return option === undefined
110
+ ? this.masterPool.next().zadd(key, ...bulkItemsToAdd)
111
+ : this.masterPool.next().zadd(key, option, ...bulkItemsToAdd);
112
+ }
113
+ async zrem(key, membersKeys) {
114
+ return this.masterPool.next().zrem(key, membersKeys);
115
+ }
116
+ async zscore(key, member) {
117
+ return this.slavesPool.next().zscore(key, member);
118
+ }
119
+ async hset(mapKey, mappings) {
120
+ if (!Object.keys(mappings).length) {
121
+ return;
122
+ }
123
+ return this.masterPool.next().hset(mapKey, mappings);
124
+ }
125
+ async hdel(mapKey, keys) {
126
+ if (keys.length === 0) {
127
+ return 0;
128
+ }
129
+ return this.masterPool.next().hdel(mapKey, ...keys);
130
+ }
131
+ async hget(keyMap, key) {
132
+ return this.slavesPool.next().hget(keyMap, key);
133
+ }
134
+ async hmget(keyMap, keys) {
135
+ return this.slavesPool.next().hmget(keyMap, ...keys);
136
+ }
137
+ async hgetAll(keyMap) {
138
+ return this.slavesPool.next().hgetall(keyMap);
139
+ }
140
+ async zrangebyscore(key, min, max, isWithScores = false) {
141
+ return isWithScores
142
+ ? this.slavesPool.next().zrangebyscore(key, min, max, 'WITHSCORES')
143
+ : this.slavesPool.next().zrangebyscore(key, min, max);
144
+ }
145
+ async zcount(key, min, max) {
146
+ return this.slavesPool.next().zcount(key, min, max);
147
+ }
148
+ async sadd(set, keys, ttl) {
149
+ if (ttl) {
150
+ return this.masterPool
151
+ .next()
152
+ .multi()
153
+ .sadd(set, keys)
154
+ .expire(set, ttl)
155
+ .exec();
156
+ }
157
+ else {
158
+ return this.masterPool.next().sadd(set, keys);
159
+ }
160
+ }
161
+ }
162
+ exports.DexlibRedisWrapper = DexlibRedisWrapper;
163
+ DexlibRedisWrapper.MAX_SCORE_VALUE = 9007199254740991;
164
+ exports.default = new DexlibRedisWrapper();
165
+ //# sourceMappingURL=RedisWrapper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RedisWrapper.js","sourceRoot":"","sources":["../../src/dex-helper/RedisWrapper.ts"],"names":[],"mappings":"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"}
@@ -17,13 +17,13 @@ export declare class GenericSwapTransactionBuilder {
17
17
  constructor(dexAdapterService: DexAdapterService, wExchangeNetworkToKey?: Record<number, string>);
18
18
  protected getDepositWithdrawWethCallData(srcAmountWeth: bigint, destAmountWeth: bigint, side: SwapSide): DepositWithdrawReturn | undefined;
19
19
  protected buildCalls(priceRoute: OptimalRate, minMaxAmount: string, bytecodeBuilder: ExecutorBytecodeBuilder, userAddress: string): Promise<string>;
20
- protected _build(priceRoute: OptimalRate, minMaxAmount: string, userAddress: Address, referrerAddress: Address | undefined, partnerAddress: Address, partnerFeePercent: string, takeSurplus: boolean, isCapSurplus: boolean, beneficiary: Address, permit: string, deadline: string, uuid: string): Promise<{
20
+ protected _build(priceRoute: OptimalRate, minMaxAmount: string, userAddress: Address, referrerAddress: Address | undefined, partnerAddress: Address, partnerFeePercent: string, takeSurplus: boolean, isCapSurplus: boolean, isSurplusToUser: boolean, isDirectFeeTransfer: boolean, beneficiary: Address, permit: string, deadline: string, uuid: string): Promise<{
21
21
  encoder: (...params: any[]) => string;
22
22
  params: (string | string[])[];
23
23
  }>;
24
- protected _buildDirect(priceRoute: OptimalRate, minMaxAmount: string, referrerAddress: Address | undefined, partnerAddress: Address, partnerFeePercent: string, takeSurplus: boolean, isCapSurplus: boolean, permit: string, uuid: string, beneficiary: Address): Promise<import("./types").TxInfo<any>>;
24
+ protected _buildDirect(priceRoute: OptimalRate, minMaxAmount: string, referrerAddress: Address | undefined, partnerAddress: Address, partnerFeePercent: string, takeSurplus: boolean, isCapSurplus: boolean, isSurplusToUser: boolean, isDirectFeeTransfer: boolean, permit: string, uuid: string, beneficiary: Address): Promise<import("./types").TxInfo<any>>;
25
25
  private buildFeesV6;
26
- build({ priceRoute, minMaxAmount, userAddress, referrerAddress, partnerAddress, partnerFeePercent, takeSurplus, isCapSurplus, gasPrice, maxFeePerGas, maxPriorityFeePerGas, permit, deadline, uuid, beneficiary, onlyParams, }: {
26
+ build({ priceRoute, minMaxAmount, userAddress, referrerAddress, partnerAddress, partnerFeePercent, takeSurplus, isCapSurplus, isSurplusToUser, isDirectFeeTransfer, gasPrice, maxFeePerGas, maxPriorityFeePerGas, permit, deadline, uuid, beneficiary, onlyParams, }: {
27
27
  priceRoute: OptimalRate;
28
28
  minMaxAmount: string;
29
29
  userAddress: Address;
@@ -32,6 +32,8 @@ export declare class GenericSwapTransactionBuilder {
32
32
  partnerFeePercent: string;
33
33
  takeSurplus?: boolean;
34
34
  isCapSurplus?: boolean;
35
+ isSurplusToUser?: boolean;
36
+ isDirectFeeTransfer?: boolean;
35
37
  gasPrice?: string;
36
38
  maxFeePerGas?: string;
37
39
  maxPriorityFeePerGas?: string;
@@ -67,7 +67,7 @@ class GenericSwapTransactionBuilder {
67
67
  const buildExchangeParams = await this.addDexExchangeApproveParams(bytecodeBuilder, priceRoute, exchangeParams, maybeWethCallData);
68
68
  return bytecodeBuilder.buildByteCode(priceRoute, buildExchangeParams, userAddress, maybeWethCallData);
69
69
  }
70
- async _build(priceRoute, minMaxAmount, userAddress, referrerAddress, partnerAddress, partnerFeePercent, takeSurplus, isCapSurplus, beneficiary, permit, deadline, uuid) {
70
+ async _build(priceRoute, minMaxAmount, userAddress, referrerAddress, partnerAddress, partnerFeePercent, takeSurplus, isCapSurplus, isSurplusToUser, isDirectFeeTransfer, beneficiary, permit, deadline, uuid) {
71
71
  const executorName = this.executorDetector.getExecutorByPriceRoute(priceRoute);
72
72
  const executionContractAddress = this.getExecutionContractAddress(priceRoute);
73
73
  const bytecodeBuilder = this.executorDetector.getBytecodeBuilder(executorName);
@@ -80,6 +80,8 @@ class GenericSwapTransactionBuilder {
80
80
  partnerFeePercent,
81
81
  takeSurplus,
82
82
  isCapSurplus,
83
+ isSurplusToUser,
84
+ isDirectFeeTransfer,
83
85
  priceRoute,
84
86
  });
85
87
  const swapParams = [
@@ -107,7 +109,7 @@ class GenericSwapTransactionBuilder {
107
109
  };
108
110
  }
109
111
  // TODO: Improve
110
- async _buildDirect(priceRoute, minMaxAmount, referrerAddress, partnerAddress, partnerFeePercent, takeSurplus, isCapSurplus, permit, uuid, beneficiary) {
112
+ async _buildDirect(priceRoute, minMaxAmount, referrerAddress, partnerAddress, partnerFeePercent, takeSurplus, isCapSurplus, isSurplusToUser, isDirectFeeTransfer, permit, uuid, beneficiary) {
111
113
  if (priceRoute.bestRoute.length !== 1 ||
112
114
  priceRoute.bestRoute[0].percent !== 100 ||
113
115
  priceRoute.bestRoute[0].swaps.length !== 1 ||
@@ -136,17 +138,21 @@ class GenericSwapTransactionBuilder {
136
138
  partnerFeePercent,
137
139
  takeSurplus,
138
140
  isCapSurplus,
141
+ isSurplusToUser,
142
+ isDirectFeeTransfer,
139
143
  priceRoute,
140
144
  });
141
145
  return dex.getDirectParamV6(priceRoute.srcToken, priceRoute.destToken, srcAmount, destAmount, expectedAmount, swapExchange.data, priceRoute.side, permit, uuid, partnerAndFee, beneficiary, priceRoute.blockNumber, priceRoute.contractMethod);
142
146
  }
143
- buildFeesV6({ referrerAddress, priceRoute, takeSurplus, isCapSurplus, partnerAddress, partnerFeePercent, skipBlacklist = false, }) {
147
+ buildFeesV6({ referrerAddress, priceRoute, takeSurplus, isCapSurplus, isSurplusToUser, isDirectFeeTransfer, partnerAddress, partnerFeePercent, skipBlacklist = false, }) {
144
148
  const partnerAndFee = referrerAddress
145
149
  ? this.packPartnerAndFeeData({
146
150
  partner: referrerAddress,
147
151
  feePercent: '0',
148
152
  isTakeSurplus: takeSurplus,
149
153
  isCapSurplus,
154
+ isSurplusToUser,
155
+ isDirectFeeTransfer,
150
156
  isReferral: true,
151
157
  isSkipBlacklist: skipBlacklist,
152
158
  })
@@ -155,12 +161,14 @@ class GenericSwapTransactionBuilder {
155
161
  feePercent: partnerFeePercent,
156
162
  isTakeSurplus: takeSurplus,
157
163
  isCapSurplus,
164
+ isSurplusToUser,
165
+ isDirectFeeTransfer,
158
166
  isSkipBlacklist: skipBlacklist,
159
167
  isReferral: false,
160
168
  });
161
169
  return partnerAndFee;
162
170
  }
163
- async build({ priceRoute, minMaxAmount, userAddress, referrerAddress, partnerAddress, partnerFeePercent, takeSurplus, isCapSurplus, gasPrice, maxFeePerGas, maxPriorityFeePerGas, permit, deadline, uuid, beneficiary = constants_1.NULL_ADDRESS, onlyParams = false, }) {
171
+ async build({ priceRoute, minMaxAmount, userAddress, referrerAddress, partnerAddress, partnerFeePercent, takeSurplus, isCapSurplus, isSurplusToUser, isDirectFeeTransfer, gasPrice, maxFeePerGas, maxPriorityFeePerGas, permit, deadline, uuid, beneficiary = constants_1.NULL_ADDRESS, onlyParams = false, }) {
164
172
  // if beneficiary is not defined, then in smart contract it will be replaced to msg.sender
165
173
  const _beneficiary = beneficiary !== constants_1.NULL_ADDRESS &&
166
174
  beneficiary.toLowerCase() !== userAddress.toLowerCase()
@@ -169,10 +177,10 @@ class GenericSwapTransactionBuilder {
169
177
  let encoder;
170
178
  let params;
171
179
  if (this.dexAdapterService.isDirectFunctionNameV6(priceRoute.contractMethod)) {
172
- ({ encoder, params } = await this._buildDirect(priceRoute, minMaxAmount, referrerAddress, partnerAddress, partnerFeePercent, takeSurplus ?? false, isCapSurplus ?? true, permit || '0x', uuid, _beneficiary));
180
+ ({ encoder, params } = await this._buildDirect(priceRoute, minMaxAmount, referrerAddress, partnerAddress, partnerFeePercent, takeSurplus ?? false, isCapSurplus ?? true, isSurplusToUser ?? false, isDirectFeeTransfer ?? false, permit || '0x', uuid, _beneficiary));
173
181
  }
174
182
  else {
175
- ({ encoder, params } = await this._build(priceRoute, minMaxAmount, userAddress, referrerAddress, partnerAddress, partnerFeePercent, takeSurplus ?? false, isCapSurplus ?? true, _beneficiary, permit || '0x', deadline, uuid));
183
+ ({ encoder, params } = await this._build(priceRoute, minMaxAmount, userAddress, referrerAddress, partnerAddress, partnerFeePercent, takeSurplus ?? false, isCapSurplus ?? true, isSurplusToUser ?? false, isDirectFeeTransfer ?? false, _beneficiary, permit || '0x', deadline, uuid));
176
184
  }
177
185
  const value = (priceRoute.srcToken.toLowerCase() === constants_1.ETHER_ADDRESS.toLowerCase()
178
186
  ? BigInt(priceRoute.side === constants_1.SwapSide.SELL
@@ -189,7 +197,7 @@ class GenericSwapTransactionBuilder {
189
197
  maxPriorityFeePerGas,
190
198
  };
191
199
  }
192
- packPartnerAndFeeData({ partner, feePercent, isTakeSurplus, isCapSurplus, isReferral, isSkipBlacklist, }) {
200
+ packPartnerAndFeeData({ partner, feePercent, isTakeSurplus, isCapSurplus, isSurplusToUser, isDirectFeeTransfer, isReferral, isSkipBlacklist, }) {
193
201
  // Partner address shifted left to make room for flags and fee percent
194
202
  const partialFeeCodeWithPartnerAddress = ethers_1.BigNumber.from(partner).shl(96);
195
203
  let partialFeeCodeWithBitFlags = ethers_1.BigNumber.from(0); // default 0 is safe if none the conditions pass
@@ -216,6 +224,13 @@ class GenericSwapTransactionBuilder {
216
224
  partialFeeCodeWithBitFlags =
217
225
  partialFeeCodeWithBitFlags.or(constants_1.IS_CAP_SURPLUS_MASK);
218
226
  }
227
+ if (isSurplusToUser) {
228
+ partialFeeCodeWithBitFlags =
229
+ partialFeeCodeWithBitFlags.or(constants_1.IS_USER_SURPLUS_MASK);
230
+ }
231
+ if (isDirectFeeTransfer) {
232
+ partialFeeCodeWithBitFlags = partialFeeCodeWithBitFlags.or(constants_1.IS_DIRECT_TRANSFER_MASK);
233
+ }
219
234
  // Combine partnerBigInt and feePercentBigInt
220
235
  const feeCode = partialFeeCodeWithPartnerAddress.or(partialFeeCodeWithBitFlags);
221
236
  return feeCode.toString();
@@ -1 +1 @@
1
- {"version":3,"file":"generic-swap-transaction-builder.js","sourceRoot":"","sources":["../src/generic-swap-transaction-builder.ts"],"names":[],"mappings":";;;;;;AASA,mCAAmC;AACnC,2CASqB;AACrB,4CAAyD;AACzD,mCAAgC;AAChC,0EAAuD;AACvD,mCAAsD;AAMtD,0CAAuC;AACvC,kEAAwC;AACxC,kEAA+D;AAG/D,yCAAiD;AAEjD,MAAM,EACJ,KAAK,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,GAC1C,GAAG,eAAM,CAAC;AAWX,MAAa,6BAA6B;IAUxC,YACY,iBAAoC,EACpC,wBAAwB,WAAI,CAAC,kBAAkB,CAAC,MAAM,CAE9D,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE;QAClB,KAAK,MAAM,OAAO,IAAI,OAAO,CAAC,QAAQ,EAAE;YACtC,IAAI,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC;SAC7B;QACD,OAAO,IAAI,CAAC;IACd,CAAC,EAAE,EAAE,CAAC;QARI,sBAAiB,GAAjB,iBAAiB,CAAmB;QACpC,0BAAqB,GAArB,qBAAqB,CAOzB;QAEN,IAAI,CAAC,QAAQ,GAAG,IAAI,cAAQ,EAAE,CAAC;QAC/B,IAAI,CAAC,cAAc,GAAG,IAAI,eAAS,CAAC,oBAAQ,CAAC,CAAC;QAC9C,IAAI,CAAC,mBAAmB,GAAG,IAAI,eAAS,CAAC,kBAAa,CAAC,CAAC;QACxD,IAAI,CAAC,iBAAiB;YACpB,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,iBAAkB,CAAC;QAClE,IAAI,CAAC,gBAAgB,GAAG,IAAI,mCAAgB,CAC1C,IAAI,CAAC,iBAAiB,CAAC,SAAS,CACjC,CAAC;IACJ,CAAC;IAES,8BAA8B,CACtC,aAAqB,EACrB,cAAsB,EACtB,IAAc;QAEd,IAAI,aAAa,KAAK,EAAE,IAAI,cAAc,KAAK,EAAE;YAAE,OAAO;QAE1D,OACE,IAAI,CAAC,iBAAiB,CAAC,oBAAoB,CACzC,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAE7D,CAAC,uBAAuB,CACvB,aAAa,CAAC,QAAQ,EAAE,EACxB,cAAc,CAAC,QAAQ,EAAE,EACzB,IAAI,EACJ,sBAAe,CAAC,EAAE,CACnB,CAAC;IACJ,CAAC;IAES,KAAK,CAAC,UAAU,CACxB,UAAuB,EACvB,YAAoB,EACpB,eAAwC,EACxC,WAAmB;QAEnB,MAAM,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC;QAC7B,MAAM,YAAY,GAAG,MAAM,OAAO,CAAC,GAAG,CACpC,UAAU,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,UAAU,EAAE,EAAE,CACjD,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,SAAS,EAAE,EAAE,CACtC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,KAAK,EAAC,EAAE,EAAC,EAAE;YAChC,MAAM,GAAG,GAAG,IAAI,CAAC,iBAAiB,CAAC,oBAAoB,CACrD,EAAE,CAAC,QAAQ,CACZ,CAAC;YAEF,MAAM,eAAe,GAAG,eAAe,CAAC,UAAU,EAAE,CAAC;YACrD,MAAM,EACJ,QAAQ,EACR,SAAS,EACT,SAAS,EACT,UAAU,EACV,SAAS,EACT,WAAW,EACX,YAAY,GACb,GAAG,IAAI,CAAC,iBAAiB,CACxB,UAAU,EACV,UAAU,EACV,IAAI,EACJ,SAAS,EACT,EAAE,EACF,YAAY,EACZ,GAAG,EACH,eAAe,CAChB,CAAC;YAEF,MAAM,SAAS,GAAG,MAAM,GAAG,CAAC,WAAY,CACtC,QAAQ,EACR,SAAS,EACT,SAAS,EACT,UAAU,EACV,SAAS,EACT,EAAE,CAAC,IAAI,EACP,IAAI,EACJ;gBACE,gBAAgB,EACd,UAAU,CAAC,QAAQ,CAAC,WAAW,EAAE,KAAK,QAAQ,CAAC,WAAW,EAAE;gBAC9D,iBAAiB,EACf,UAAU,CAAC,SAAS,CAAC,WAAW,EAAE;oBAClC,SAAS,CAAC,WAAW,EAAE;aAC1B,EACD,eAAe,CAChB,CAAC;YAEF,OAAO;gBACL,SAAS;gBACT,WAAW;gBACX,YAAY;aACb,CAAC;QACJ,CAAC,CAAC,CACH,CACF,CACF,CAAC;QAEF,MAAM,EAAE,cAAc,EAAE,sBAAsB,EAAE,wBAAwB,EAAE,GACxE,MAAM,YAAY,CAAC,MAAM,CAKvB,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE;YACV,GAAG,CAAC,sBAAsB,IAAI,MAAM,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC;YACrD,GAAG,CAAC,wBAAwB,IAAI,MAAM,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC;YACxD,GAAG,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC;YACtC,OAAO,GAAG,CAAC;QACb,CAAC,EACD;YACE,cAAc,EAAE,EAAE;YAClB,sBAAsB,EAAE,EAAE;YAC1B,wBAAwB,EAAE,EAAE;SAC7B,CACF,CAAC;QAEJ,MAAM,iBAAiB,GAAG,IAAI,CAAC,8BAA8B,CAC3D,sBAAsB,EACtB,wBAAwB,EACxB,IAAI,CACL,CAAC;QAEF,MAAM,mBAAmB,GAAG,MAAM,IAAI,CAAC,2BAA2B,CAChE,eAAe,EACf,UAAU,EACV,cAAc,EACd,iBAAiB,CAClB,CAAC;QAEF,OAAO,eAAe,CAAC,aAAa,CAClC,UAAU,EACV,mBAAmB,EACnB,WAAW,EACX,iBAAiB,CAClB,CAAC;IACJ,CAAC;IAES,KAAK,CAAC,MAAM,CACpB,UAAuB,EACvB,YAAoB,EACpB,WAAoB,EACpB,eAAoC,EACpC,cAAuB,EACvB,iBAAyB,EACzB,WAAoB,EACpB,YAAqB,EACrB,WAAoB,EACpB,MAAc,EACd,QAAgB,EAChB,IAAY;QAEZ,MAAM,YAAY,GAChB,IAAI,CAAC,gBAAgB,CAAC,uBAAuB,CAAC,UAAU,CAAC,CAAC;QAC5D,MAAM,wBAAwB,GAC5B,IAAI,CAAC,2BAA2B,CAAC,UAAU,CAAC,CAAC;QAE/C,MAAM,eAAe,GACnB,IAAI,CAAC,gBAAgB,CAAC,kBAAkB,CAAC,YAAY,CAAC,CAAC;QACzD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,UAAU,CACpC,UAAU,EACV,YAAY,EACZ,eAAe,EACf,WAAW,CACZ,CAAC;QAEF,MAAM,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC;QAC7B,MAAM,MAAM,GAAG,IAAI,KAAK,oBAAQ,CAAC,IAAI,CAAC;QAEtC,MAAM,aAAa,GAAG,IAAI,CAAC,WAAW,CAAC;YACrC,eAAe;YACf,cAAc;YACd,iBAAiB;YACjB,WAAW;YACX,YAAY;YACZ,UAAU;SACX,CAAC,CAAC;QAEH,MAAM,UAAU,GAAG;YACjB,wBAAwB;YACxB;gBACE,UAAU,CAAC,QAAQ;gBACnB,UAAU,CAAC,SAAS;gBACpB,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,YAAY;gBAC5C,MAAM,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,UAAU,CAAC,UAAU;gBAC7C,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,SAAS;gBACrD,SAAS,CAAC;oBACR,UAAU,CAAC,IAAA,qBAAa,EAAC,IAAI,CAAC,EAAE,EAAE,CAAC;oBACnC,UAAU,CAAC,OAAO,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,EAAE,CAAC;iBAChD,CAAC;gBACF,WAAW;aACZ;YACD,aAAa;YACb,MAAM;YACN,QAAQ;SACT,CAAC;QAEF,MAAM,OAAO,GAAG,CAAC,GAAG,MAAa,EAAE,EAAE,CACnC,IAAI,CAAC,mBAAmB,CAAC,kBAAkB,CACzC,MAAM,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,oBAAoB,EACnD,MAAM,CACP,CAAC;QAEJ,OAAO;YACL,OAAO;YACP,MAAM,EAAE,UAAU;SACnB,CAAC;IACJ,CAAC;IAED,gBAAgB;IACN,KAAK,CAAC,YAAY,CAC1B,UAAuB,EACvB,YAAoB,EACpB,eAAoC,EACpC,cAAuB,EACvB,iBAAyB,EACzB,WAAoB,EACpB,YAAqB,EACrB,MAAc,EACd,IAAY,EACZ,WAAoB;QAEpB,IACE,UAAU,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC;YACjC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,OAAO,KAAK,GAAG;YACvC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC;YAC1C,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,MAAM,KAAK,CAAC;YAC3D,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,OAAO,KAAK,GAAG;YAEjE,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;QAElD,MAAM,OAAO,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;QAC3E,IAAI,CAAC,OAAO;YAAE,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAC;QAElD,MAAM,GAAG,GAAG,IAAI,CAAC,iBAAiB,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC;QACjE,IAAI,CAAC,GAAG;YAAE,MAAM,IAAI,KAAK,CAAC,wBAAwB,OAAO,EAAE,CAAC,CAAC;QAE7D,IAAI,CAAC,GAAG,CAAC,gBAAgB;YACvB,MAAM,IAAI,KAAK,CACb,kDAAkD,OAAO,EAAE,CAC5D,CAAC;QAEJ,MAAM,YAAY,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;QAEvE,MAAM,SAAS,GACb,UAAU,CAAC,IAAI,KAAK,oBAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,CAAC,YAAY,CAAC;QAC5E,MAAM,UAAU,GACd,UAAU,CAAC,IAAI,KAAK,oBAAQ,CAAC,IAAI;YAC/B,CAAC,CAAC,YAAY;YACd,CAAC,CAAC,YAAY,CAAC,UAAU,CAAC;QAE9B,MAAM,cAAc,GAClB,UAAU,CAAC,IAAI,KAAK,oBAAQ,CAAC,IAAI;YAC/B,CAAC,CAAC,UAAU,CAAC,UAAU;YACvB,CAAC,CAAC,UAAU,CAAC,SAAS,CAAC;QAE3B,MAAM,aAAa,GAAG,IAAI,CAAC,WAAW,CAAC;YACrC,eAAe;YACf,cAAc;YACd,iBAAiB;YACjB,WAAW;YACX,YAAY;YACZ,UAAU;SACX,CAAC,CAAC;QAEH,OAAO,GAAG,CAAC,gBAAiB,CAC1B,UAAU,CAAC,QAAQ,EACnB,UAAU,CAAC,SAAS,EACpB,SAAS,EACT,UAAU,EACV,cAAc,EACd,YAAY,CAAC,IAAI,EACjB,UAAU,CAAC,IAAI,EACf,MAAM,EACN,IAAI,EACJ,aAAa,EACb,WAAW,EACX,UAAU,CAAC,WAAW,EACtB,UAAU,CAAC,cAAc,CAC1B,CAAC;IACJ,CAAC;IAEO,WAAW,CAAC,EAClB,eAAe,EACf,UAAU,EACV,WAAW,EACX,YAAY,EACZ,cAAc,EACd,iBAAiB,EACjB,aAAa,GAAG,KAAK,GAStB;QACC,MAAM,aAAa,GAAG,eAAe;YACnC,CAAC,CAAC,IAAI,CAAC,qBAAqB,CAAC;gBACzB,OAAO,EAAE,eAAe;gBACxB,UAAU,EAAE,GAAG;gBACf,aAAa,EAAE,WAAW;gBAC1B,YAAY;gBACZ,UAAU,EAAE,IAAI;gBAChB,eAAe,EAAE,aAAa;aAC/B,CAAC;YACJ,CAAC,CAAC,IAAI,CAAC,qBAAqB,CAAC;gBACzB,OAAO,EAAE,cAAc;gBACvB,UAAU,EAAE,iBAAiB;gBAC7B,aAAa,EAAE,WAAW;gBAC1B,YAAY;gBACZ,eAAe,EAAE,aAAa;gBAC9B,UAAU,EAAE,KAAK;aAClB,CAAC,CAAC;QAEP,OAAO,aAAa,CAAC;IACvB,CAAC;IAEM,KAAK,CAAC,KAAK,CAAC,EACjB,UAAU,EACV,YAAY,EACZ,WAAW,EACX,eAAe,EACf,cAAc,EACd,iBAAiB,EACjB,WAAW,EACX,YAAY,EACZ,QAAQ,EACR,YAAY,EACZ,oBAAoB,EACpB,MAAM,EACN,QAAQ,EACR,IAAI,EACJ,WAAW,GAAG,wBAAY,EAC1B,UAAU,GAAG,KAAK,GAkBnB;QACC,0FAA0F;QAC1F,MAAM,YAAY,GAChB,WAAW,KAAK,wBAAY;YAC5B,WAAW,CAAC,WAAW,EAAE,KAAK,WAAW,CAAC,WAAW,EAAE;YACrD,CAAC,CAAC,WAAW;YACb,CAAC,CAAC,wBAAY,CAAC;QAEnB,IAAI,OAAqC,CAAC;QAC1C,IAAI,MAA6B,CAAC;QAElC,IACE,IAAI,CAAC,iBAAiB,CAAC,sBAAsB,CAAC,UAAU,CAAC,cAAc,CAAC,EACxE;YACA,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,YAAY,CAC5C,UAAU,EACV,YAAY,EACZ,eAAe,EACf,cAAc,EACd,iBAAiB,EACjB,WAAW,IAAI,KAAK,EACpB,YAAY,IAAI,IAAI,EACpB,MAAM,IAAI,IAAI,EACd,IAAI,EACJ,YAAY,CACb,CAAC,CAAC;SACJ;aAAM;YACL,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,MAAM,CACtC,UAAU,EACV,YAAY,EACZ,WAAW,EACX,eAAe,EACf,cAAc,EACd,iBAAiB,EACjB,WAAW,IAAI,KAAK,EACpB,YAAY,IAAI,IAAI,EACpB,YAAY,EACZ,MAAM,IAAI,IAAI,EACd,QAAQ,EACR,IAAI,CACL,CAAC,CAAC;SACJ;QAED,MAAM,KAAK,GAAG,CACZ,UAAU,CAAC,QAAQ,CAAC,WAAW,EAAE,KAAK,yBAAa,CAAC,WAAW,EAAE;YAC/D,CAAC,CAAC,MAAM,CACJ,UAAU,CAAC,IAAI,KAAK,oBAAQ,CAAC,IAAI;gBAC/B,CAAC,CAAC,UAAU,CAAC,SAAS;gBACtB,CAAC,CAAC,YAAY,CACjB;YACH,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CACd,CAAC,QAAQ,EAAE,CAAC;QAEb,OAAO;YACL,IAAI,EAAE,WAAW;YACjB,EAAE,EAAE,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,iBAAiB;YAClE,KAAK;YACL,IAAI,EAAE,OAAO,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC;YACjC,QAAQ;YACR,YAAY;YACZ,oBAAoB;SACrB,CAAC;IACJ,CAAC;IAEO,qBAAqB,CAAC,EAC5B,OAAO,EACP,UAAU,EACV,aAAa,EACb,YAAY,EACZ,UAAU,EACV,eAAe,GACL;QACV,sEAAsE;QACtE,MAAM,gCAAgC,GAAG,kBAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACzE,IAAI,0BAA0B,GAAG,kBAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,gDAAgD;QAEpG,MAAM,WAAW,GAAG,CAAC,kBAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,MAAM,EAAE,CAAC;QAEzD,IAAI,WAAW,EAAE;YACf,2EAA2E;YAC3E,0BAA0B,GAAG,kBAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,GAAG,CACzD,4CAAgC,CACjC,CAAC;YAEF,0DAA0D;SAC3D;aAAM;YACL,IAAI,aAAa,EAAE;gBACjB,0BAA0B;oBACxB,0BAA0B,CAAC,EAAE,CAAC,gCAAoB,CAAC,CAAC;aACvD;iBAAM,IAAI,UAAU,EAAE;gBACrB,0BAA0B;oBACxB,0BAA0B,CAAC,EAAE,CAAC,4BAAgB,CAAC,CAAC;aACnD;SACF;QAED,IAAI,eAAe,EAAE;YACnB,0BAA0B,GAAG,0BAA0B,CAAC,EAAE,CACxD,kCAAsB,CACvB,CAAC;SACH;QAED,IAAI,YAAY,EAAE;YAChB,0BAA0B;gBACxB,0BAA0B,CAAC,EAAE,CAAC,+BAAmB,CAAC,CAAC;SACtD;QAED,6CAA6C;QAC7C,MAAM,OAAO,GAAG,gCAAgC,CAAC,EAAE,CACjD,0BAA0B,CAC3B,CAAC;QAEF,OAAO,OAAO,CAAC,QAAQ,EAAE,CAAC;IAC5B,CAAC;IAEM,2BAA2B,CAAC,UAAuB;QACxD,MAAM,cAAc,GAAG,IAAI,CAAC,iBAAiB,CAAC,sBAAsB,CAClE,UAAU,CAAC,cAAc,CAC1B,CAAC;QACF,IAAI,cAAc;YAAE,OAAO,IAAI,CAAC,iBAAiB,CAAC;QAElD,MAAM,YAAY,GAChB,IAAI,CAAC,gBAAgB,CAAC,uBAAuB,CAAC,UAAU,CAAC,CAAC;QAC5D,MAAM,eAAe,GACnB,IAAI,CAAC,gBAAgB,CAAC,kBAAkB,CAAC,YAAY,CAAC,CAAC;QAEzD,OAAO,eAAe,CAAC,UAAU,EAAE,CAAC;IACtC,CAAC;IAEM,iBAAiB,CACtB,UAAuB,EACvB,UAAkB,EAClB,IAAiB,EACjB,SAAiB,EACjB,EAA4B,EAC5B,YAAoB,EACpB,GAA4B,EAC5B,wBAAgC;QAUhC,MAAM,WAAW,GACf,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,yBAAyB,CAAC;QAEzE,MAAM,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC;QAE7B,MAAM,UAAU,GAAG,UAAU,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC;QACnD,MAAM,WAAW,GAAG,CAAC,UAAU,IAAI,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;QAE5E,MAAM,UAAU,GACd,SAAS,KAAK,UAAU,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;QAElE,IAAI,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC;QACzB,IAAI,WAAW,GAAG,EAAE,CAAC;QACrB,IAAI,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC;QAE3B,IAAI,YAAY,GAAG,EAAE,CAAC;QAEtB,kGAAkG;QAClG,qFAAqF;QACrF,iCAAiC;QACjC,MAAM,UAAU,GACd,SAAS,GAAG,CAAC;YACb,IAAI,KAAK,oBAAQ,CAAC,IAAI;YACtB,IAAI,CAAC,iBAAiB,CAAC,gBAAgB,CAAC,EAAE,CAAC,QAAQ,CAAC,KAAK,OAAO;YAC9D,CAAC,CAAC,EAAE,CAAC,SAAS;YACd,CAAC,CAAC,CACE,CAAC,MAAM,CAAC,EAAE,CAAC,SAAS,CAAC,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC;gBAC7C,MAAM,CAAC,UAAU,CAAC,SAAS,CAAC,CAC7B,CAAC,QAAQ,EAAE,CAAC;QAEnB,0DAA0D;QAC1D,0DAA0D;QAC1D,kDAAkD;QAClD,MAAM,WAAW,GAAG,IAAI,KAAK,oBAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC;QAEjE,IAAI,IAAA,oBAAY,EAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,GAAG,CAAC,cAAc,EAAE;YACrD,IAAI,GAAG,WAAW,CAAC;YACnB,WAAW,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC;SAClC;QAED,MAAM,WAAW,GACf,IAAA,oBAAY,EAAC,IAAI,CAAC,SAAS,CAAC;YAC5B,CAAC,WAAW,IAAI,UAAU,CAAC;YAC3B,CAAC,GAAG,CAAC,cAAc;YACnB,CAAC,UAAU,CAAC;QAEd,IAAI,CAAC,IAAA,oBAAY,EAAC,IAAI,CAAC,SAAS,CAAC,IAAI,GAAG,CAAC,cAAc,CAAC,IAAI,WAAW,EAAE;YACvE,KAAK,GAAG,WAAW,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,WAAW,CAAC;YACjE,YAAY,GAAG,MAAM,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC;SACtC;QAED,MAAM,uBAAuB,GAAG,KAAK,KAAK,WAAW,IAAI,YAAY,CAAC;QAEtE,OAAO;YACL,QAAQ,EAAE,IAAI;YACd,SAAS,EAAE,KAAK;YAChB,SAAS,EACP,uBAAuB,IAAI,CAAC,UAAU;gBACpC,CAAC,CAAC,wBAAwB;gBAC1B,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,iBAAkB;YACrE,SAAS,EAAE,UAAU;YACrB,UAAU,EAAE,WAAW;YACvB,WAAW;YACX,YAAY;SACb,CAAC;IACJ,CAAC;IAEO,KAAK,CAAC,2BAA2B,CACvC,eAAwC,EACxC,UAAuB,EACvB,iBAAqC,EACrC,iBAAyC;QAEzC,MAAM,OAAO,GAAG,eAAe,CAAC,UAAU,EAAE,CAAC;QAC7C,MAAM,kBAAkB,GAGlB,EAAE,CAAC;QAET,IAAI,yBAAyB,GAAG,CAAC,CAAC;QAElC,UAAU,CAAC,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CACnC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CACzB,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,KAAK,EAAC,EAAE,EAAC,EAAE;YAChC,MAAM,gBAAgB,GAAG,iBAAiB,CAAC,yBAAyB,CAAC,CAAC;YACtE,MAAM,aAAa,GAAG,eAAe,CAAC,yBAAyB,CAC7D,IAAI,EACJ,gBAAgB,CACjB,CAAC;YAEF,IAAI,aAAa,EAAE;gBACjB,kBAAkB,CAAC,IAAI,CAAC;oBACtB,MAAM,EAAE,CAAC,aAAa,CAAC,KAAK,EAAE,aAAa,EAAE,MAAM,CAAC;oBACpD,kBAAkB,EAAE,yBAAyB;iBAC9C,CAAC,CAAC;aACJ;YAED,yBAAyB,EAAE,CAAC;QAC9B,CAAC,CAAC,CACH,CACF,CAAC;QAEF,MAAM,SAAS,GACb,MAAM,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC,iBAAiB,CAAC,YAAY,CACnE,OAAO,EACP,kBAAkB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CACtC,CAAC;QAEJ,MAAM,sBAAsB,GAA4B;YACtD,GAAG,iBAAiB;SACrB,CAAC;QAEF,SAAS,CAAC,OAAO,CAAC,CAAC,eAAe,EAAE,KAAK,EAAE,EAAE;YAC3C,IAAI,CAAC,eAAe,EAAE;gBACpB,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,GAAG,kBAAkB,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC;gBACzD,MAAM,kBAAkB,GAAG,kBAAkB,CAAC,KAAK,CAAC,CAAC,kBAAkB,CAAC;gBACxE,MAAM,gBAAgB,GAAG,iBAAiB,CAAC,kBAAkB,CAAC,CAAC;gBAC/D,sBAAsB,CAAC,kBAAkB,CAAC,GAAG;oBAC3C,GAAG,gBAAgB;oBACnB,WAAW,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE;iBAC/B,CAAC;aACH;QACH,CAAC,CAAC,CAAC;QAEH,OAAO,sBAAsB,CAAC;IAChC,CAAC;CACF;AAjoBD,sEAioBC"}
1
+ {"version":3,"file":"generic-swap-transaction-builder.js","sourceRoot":"","sources":["../src/generic-swap-transaction-builder.ts"],"names":[],"mappings":"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"}
package/build/utils.d.ts CHANGED
@@ -6,7 +6,7 @@ import { MultiResult } from './lib/multi-wrapper';
6
6
  import { Contract } from 'web3-eth-contract';
7
7
  import Web3 from 'web3';
8
8
  import { AxiosError } from 'axios';
9
- export declare const isAxiosError: (e: any) => e is AxiosError<unknown, any>;
9
+ export declare const isAxiosError: (e: any) => e is AxiosError<any, any>;
10
10
  export declare const isETHAddress: (address: string) => boolean;
11
11
  export declare const prependWithOx: (str: string) => string;
12
12
  export declare const uuidToBytes16: (uuid: string) => string;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@paraswap/dex-lib",
3
- "version": "3.5.2",
3
+ "version": "3.5.3-v6.2-params",
4
4
  "main": "build/index.js",
5
5
  "types": "build/index.d.ts",
6
6
  "repository": "https://github.com/paraswap/paraswap-dex-lib",
package/src/constants.ts CHANGED
@@ -61,6 +61,8 @@ export const DEST_TOKEN_DEX_TRANSFERS = 1;
61
61
  export const BPS_MAX_VALUE = 10000n;
62
62
 
63
63
  export const FEE_PERCENT_IN_BASIS_POINTS_MASK = BigNumber.from('0x3FFF');
64
+ export const IS_USER_SURPLUS_MASK = BigNumber.from('1').shl(90);
65
+ export const IS_DIRECT_TRANSFER_MASK = BigNumber.from('1').shl(91);
64
66
  export const IS_CAP_SURPLUS_MASK = BigNumber.from('1').shl(92);
65
67
  export const IS_SKIP_BLACKLIST_MASK = BigNumber.from('1').shl(93);
66
68
  export const IS_REFERRAL_MASK = BigNumber.from('1').shl(94);
@@ -348,7 +348,7 @@ export const UniswapV2Config: DexConfigMap<DexParams> = {
348
348
  },
349
349
  PancakeSwapV2: {
350
350
  [Network.BSC]: {
351
- subgraphURL: 'AD7yfts4Uzeav8eXQ6yxZ64VXjzDrJ1b76Gvka2VSnhd',
351
+ // subgraphURL: 'AD7yfts4Uzeav8eXQ6yxZ64VXjzDrJ1b76Gvka2VSnhd',
352
352
  factoryAddress: '0xca143ce32fe78f1f7019d7d551a6402fc5350c73',
353
353
  initCode:
354
354
  '0xa0e5696e64d8512d41c1887d32c208c1f427abd6a077148d760fc07ccbe12470',
@@ -374,8 +374,8 @@ export const UniswapV2Config: DexConfigMap<DexParams> = {
374
374
  },
375
375
  PaintSwap: {
376
376
  [Network.FANTOM]: {
377
- subgraphURL:
378
- 'https://api.thegraph.com/subgraphs/name/paint-swap-finance/exchange',
377
+ // subgraphURL:
378
+ // 'https://api.thegraph.com/subgraphs/name/paint-swap-finance/exchange',
379
379
  factoryAddress: '0x733a9d1585f2d14c77b49d39bc7d7dd14cda4aa5',
380
380
  initCode:
381
381
  '0x52178a9131f5551c2e56bf7cbf02aed8be8130e6493915a6b0c7602ac2125e54',
@@ -465,7 +465,7 @@ export const UniswapV2Config: DexConfigMap<DexParams> = {
465
465
  },
466
466
  ShibaSwap: {
467
467
  [Network.MAINNET]: {
468
- subgraphURL: 'FvP7tK71rX51wsb663j5GRx2YTtDRa1Adq8QSCi5akLS',
468
+ // subgraphURL: 'FvP7tK71rX51wsb663j5GRx2YTtDRa1Adq8QSCi5akLS',
469
469
  factoryAddress: '0x115934131916C8b277DD010Ee02de363c09d037c',
470
470
  initCode:
471
471
  '0x65d1a3b1e46c6e4f1be1ad5f99ef14dc488ae0549dc97db9b30afe2241ce1c7a',
@@ -12,9 +12,11 @@ import {
12
12
  ETHER_ADDRESS,
13
13
  FEE_PERCENT_IN_BASIS_POINTS_MASK,
14
14
  IS_CAP_SURPLUS_MASK,
15
+ IS_DIRECT_TRANSFER_MASK,
15
16
  IS_REFERRAL_MASK,
16
17
  IS_SKIP_BLACKLIST_MASK,
17
18
  IS_TAKE_SURPLUS_MASK,
19
+ IS_USER_SURPLUS_MASK,
18
20
  NULL_ADDRESS,
19
21
  SwapSide,
20
22
  } from './constants';
@@ -43,6 +45,8 @@ interface FeeParams {
43
45
  feePercent: string;
44
46
  isTakeSurplus: boolean;
45
47
  isCapSurplus: boolean;
48
+ isSurplusToUser: boolean;
49
+ isDirectFeeTransfer: boolean;
46
50
  isReferral: boolean;
47
51
  isSkipBlacklist: boolean;
48
52
  }
@@ -209,6 +213,8 @@ export class GenericSwapTransactionBuilder {
209
213
  partnerFeePercent: string,
210
214
  takeSurplus: boolean,
211
215
  isCapSurplus: boolean,
216
+ isSurplusToUser: boolean,
217
+ isDirectFeeTransfer: boolean,
212
218
  beneficiary: Address,
213
219
  permit: string,
214
220
  deadline: string,
@@ -237,6 +243,8 @@ export class GenericSwapTransactionBuilder {
237
243
  partnerFeePercent,
238
244
  takeSurplus,
239
245
  isCapSurplus,
246
+ isSurplusToUser,
247
+ isDirectFeeTransfer,
240
248
  priceRoute,
241
249
  });
242
250
 
@@ -280,6 +288,8 @@ export class GenericSwapTransactionBuilder {
280
288
  partnerFeePercent: string,
281
289
  takeSurplus: boolean,
282
290
  isCapSurplus: boolean,
291
+ isSurplusToUser: boolean,
292
+ isDirectFeeTransfer: boolean,
283
293
  permit: string,
284
294
  uuid: string,
285
295
  beneficiary: Address,
@@ -324,6 +334,8 @@ export class GenericSwapTransactionBuilder {
324
334
  partnerFeePercent,
325
335
  takeSurplus,
326
336
  isCapSurplus,
337
+ isSurplusToUser,
338
+ isDirectFeeTransfer,
327
339
  priceRoute,
328
340
  });
329
341
 
@@ -349,6 +361,8 @@ export class GenericSwapTransactionBuilder {
349
361
  priceRoute,
350
362
  takeSurplus,
351
363
  isCapSurplus,
364
+ isSurplusToUser,
365
+ isDirectFeeTransfer,
352
366
  partnerAddress,
353
367
  partnerFeePercent,
354
368
  skipBlacklist = false,
@@ -358,6 +372,8 @@ export class GenericSwapTransactionBuilder {
358
372
  partnerFeePercent: string;
359
373
  takeSurplus: boolean;
360
374
  isCapSurplus: boolean;
375
+ isSurplusToUser: boolean;
376
+ isDirectFeeTransfer: boolean;
361
377
  priceRoute: OptimalRate;
362
378
  skipBlacklist?: boolean;
363
379
  }) {
@@ -367,6 +383,8 @@ export class GenericSwapTransactionBuilder {
367
383
  feePercent: '0',
368
384
  isTakeSurplus: takeSurplus,
369
385
  isCapSurplus,
386
+ isSurplusToUser,
387
+ isDirectFeeTransfer,
370
388
  isReferral: true,
371
389
  isSkipBlacklist: skipBlacklist,
372
390
  })
@@ -375,6 +393,8 @@ export class GenericSwapTransactionBuilder {
375
393
  feePercent: partnerFeePercent,
376
394
  isTakeSurplus: takeSurplus,
377
395
  isCapSurplus,
396
+ isSurplusToUser,
397
+ isDirectFeeTransfer,
378
398
  isSkipBlacklist: skipBlacklist,
379
399
  isReferral: false,
380
400
  });
@@ -391,6 +411,8 @@ export class GenericSwapTransactionBuilder {
391
411
  partnerFeePercent,
392
412
  takeSurplus,
393
413
  isCapSurplus,
414
+ isSurplusToUser,
415
+ isDirectFeeTransfer,
394
416
  gasPrice,
395
417
  maxFeePerGas,
396
418
  maxPriorityFeePerGas,
@@ -408,6 +430,8 @@ export class GenericSwapTransactionBuilder {
408
430
  partnerFeePercent: string;
409
431
  takeSurplus?: boolean;
410
432
  isCapSurplus?: boolean;
433
+ isSurplusToUser?: boolean;
434
+ isDirectFeeTransfer?: boolean;
411
435
  gasPrice?: string;
412
436
  maxFeePerGas?: string;
413
437
  maxPriorityFeePerGas?: string;
@@ -438,6 +462,8 @@ export class GenericSwapTransactionBuilder {
438
462
  partnerFeePercent,
439
463
  takeSurplus ?? false,
440
464
  isCapSurplus ?? true,
465
+ isSurplusToUser ?? false,
466
+ isDirectFeeTransfer ?? false,
441
467
  permit || '0x',
442
468
  uuid,
443
469
  _beneficiary,
@@ -452,6 +478,8 @@ export class GenericSwapTransactionBuilder {
452
478
  partnerFeePercent,
453
479
  takeSurplus ?? false,
454
480
  isCapSurplus ?? true,
481
+ isSurplusToUser ?? false,
482
+ isDirectFeeTransfer ?? false,
455
483
  _beneficiary,
456
484
  permit || '0x',
457
485
  deadline,
@@ -485,6 +513,8 @@ export class GenericSwapTransactionBuilder {
485
513
  feePercent,
486
514
  isTakeSurplus,
487
515
  isCapSurplus,
516
+ isSurplusToUser,
517
+ isDirectFeeTransfer,
488
518
  isReferral,
489
519
  isSkipBlacklist,
490
520
  }: FeeParams): string {
@@ -522,6 +552,16 @@ export class GenericSwapTransactionBuilder {
522
552
  partialFeeCodeWithBitFlags.or(IS_CAP_SURPLUS_MASK);
523
553
  }
524
554
 
555
+ if (isSurplusToUser) {
556
+ partialFeeCodeWithBitFlags =
557
+ partialFeeCodeWithBitFlags.or(IS_USER_SURPLUS_MASK);
558
+ }
559
+
560
+ if (isDirectFeeTransfer) {
561
+ partialFeeCodeWithBitFlags = partialFeeCodeWithBitFlags.or(
562
+ IS_DIRECT_TRANSFER_MASK,
563
+ );
564
+ }
525
565
  // Combine partnerBigInt and feePercentBigInt
526
566
  const feeCode = partialFeeCodeWithPartnerAddress.or(
527
567
  partialFeeCodeWithBitFlags,