@across-protocol/sdk 3.3.32 → 3.4.1

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 (140) hide show
  1. package/dist/cjs/clients/BundleDataClient/utils/SuperstructUtils.d.ts +10 -10
  2. package/dist/cjs/gasPriceOracle/adapters/arbitrum.d.ts +2 -1
  3. package/dist/cjs/gasPriceOracle/adapters/arbitrum.js +2 -2
  4. package/dist/cjs/gasPriceOracle/adapters/arbitrum.js.map +1 -1
  5. package/dist/cjs/gasPriceOracle/adapters/ethereum.d.ts +6 -4
  6. package/dist/cjs/gasPriceOracle/adapters/ethereum.js +21 -13
  7. package/dist/cjs/gasPriceOracle/adapters/ethereum.js.map +1 -1
  8. package/dist/cjs/gasPriceOracle/adapters/linea-viem.d.ts +2 -1
  9. package/dist/cjs/gasPriceOracle/adapters/linea-viem.js +16 -10
  10. package/dist/cjs/gasPriceOracle/adapters/linea-viem.js.map +1 -1
  11. package/dist/cjs/gasPriceOracle/adapters/linea.d.ts +2 -1
  12. package/dist/cjs/gasPriceOracle/adapters/linea.js +2 -2
  13. package/dist/cjs/gasPriceOracle/adapters/linea.js.map +1 -1
  14. package/dist/cjs/gasPriceOracle/adapters/polygon.d.ts +21 -1
  15. package/dist/cjs/gasPriceOracle/adapters/polygon.js +45 -5
  16. package/dist/cjs/gasPriceOracle/adapters/polygon.js.map +1 -1
  17. package/dist/cjs/gasPriceOracle/oracle.d.ts +11 -3
  18. package/dist/cjs/gasPriceOracle/oracle.js +29 -27
  19. package/dist/cjs/gasPriceOracle/oracle.js.map +1 -1
  20. package/dist/cjs/providers/types.d.ts +3 -3
  21. package/dist/cjs/relayFeeCalculator/chain-queries/alephZero.d.ts +0 -229
  22. package/dist/cjs/relayFeeCalculator/chain-queries/alephZero.js +2 -12
  23. package/dist/cjs/relayFeeCalculator/chain-queries/alephZero.js.map +1 -1
  24. package/dist/cjs/relayFeeCalculator/chain-queries/baseQuery.d.ts +10 -5
  25. package/dist/cjs/relayFeeCalculator/chain-queries/baseQuery.js +55 -11
  26. package/dist/cjs/relayFeeCalculator/chain-queries/baseQuery.js.map +1 -1
  27. package/dist/cjs/relayFeeCalculator/chain-queries/factory.d.ts +1 -1
  28. package/dist/cjs/relayFeeCalculator/chain-queries/factory.js +4 -5
  29. package/dist/cjs/relayFeeCalculator/chain-queries/factory.js.map +1 -1
  30. package/dist/cjs/relayFeeCalculator/chain-queries/polygon.d.ts +0 -229
  31. package/dist/cjs/relayFeeCalculator/chain-queries/polygon.js +2 -12
  32. package/dist/cjs/relayFeeCalculator/chain-queries/polygon.js.map +1 -1
  33. package/dist/cjs/relayFeeCalculator/relayFeeCalculator.d.ts +1 -1
  34. package/dist/cjs/relayFeeCalculator/relayFeeCalculator.js.map +1 -1
  35. package/dist/cjs/utils/common.d.ts +1 -8
  36. package/dist/cjs/utils/common.js +1 -83
  37. package/dist/cjs/utils/common.js.map +1 -1
  38. package/dist/esm/clients/BundleDataClient/utils/SuperstructUtils.d.ts +10 -10
  39. package/dist/esm/gasPriceOracle/adapters/arbitrum.d.ts +10 -1
  40. package/dist/esm/gasPriceOracle/adapters/arbitrum.js +10 -4
  41. package/dist/esm/gasPriceOracle/adapters/arbitrum.js.map +1 -1
  42. package/dist/esm/gasPriceOracle/adapters/ethereum.d.ts +19 -6
  43. package/dist/esm/gasPriceOracle/adapters/ethereum.js +38 -16
  44. package/dist/esm/gasPriceOracle/adapters/ethereum.js.map +1 -1
  45. package/dist/esm/gasPriceOracle/adapters/linea-viem.d.ts +19 -1
  46. package/dist/esm/gasPriceOracle/adapters/linea-viem.js +33 -10
  47. package/dist/esm/gasPriceOracle/adapters/linea-viem.js.map +1 -1
  48. package/dist/esm/gasPriceOracle/adapters/linea.d.ts +2 -1
  49. package/dist/esm/gasPriceOracle/adapters/linea.js +6 -2
  50. package/dist/esm/gasPriceOracle/adapters/linea.js.map +1 -1
  51. package/dist/esm/gasPriceOracle/adapters/polygon.d.ts +27 -1
  52. package/dist/esm/gasPriceOracle/adapters/polygon.js +49 -5
  53. package/dist/esm/gasPriceOracle/adapters/polygon.js.map +1 -1
  54. package/dist/esm/gasPriceOracle/oracle.d.ts +16 -8
  55. package/dist/esm/gasPriceOracle/oracle.js +35 -33
  56. package/dist/esm/gasPriceOracle/oracle.js.map +1 -1
  57. package/dist/esm/providers/types.d.ts +3 -3
  58. package/dist/esm/relayFeeCalculator/chain-queries/alephZero.d.ts +0 -229
  59. package/dist/esm/relayFeeCalculator/chain-queries/alephZero.js +3 -13
  60. package/dist/esm/relayFeeCalculator/chain-queries/alephZero.js.map +1 -1
  61. package/dist/esm/relayFeeCalculator/chain-queries/baseQuery.d.ts +21 -7
  62. package/dist/esm/relayFeeCalculator/chain-queries/baseQuery.js +68 -15
  63. package/dist/esm/relayFeeCalculator/chain-queries/baseQuery.js.map +1 -1
  64. package/dist/esm/relayFeeCalculator/chain-queries/factory.d.ts +1 -1
  65. package/dist/esm/relayFeeCalculator/chain-queries/factory.js +4 -5
  66. package/dist/esm/relayFeeCalculator/chain-queries/factory.js.map +1 -1
  67. package/dist/esm/relayFeeCalculator/chain-queries/polygon.d.ts +0 -229
  68. package/dist/esm/relayFeeCalculator/chain-queries/polygon.js +3 -13
  69. package/dist/esm/relayFeeCalculator/chain-queries/polygon.js.map +1 -1
  70. package/dist/esm/relayFeeCalculator/relayFeeCalculator.d.ts +1 -1
  71. package/dist/esm/relayFeeCalculator/relayFeeCalculator.js.map +1 -1
  72. package/dist/esm/utils/common.d.ts +1 -19
  73. package/dist/esm/utils/common.js +3 -95
  74. package/dist/esm/utils/common.js.map +1 -1
  75. package/dist/types/clients/BundleDataClient/utils/SuperstructUtils.d.ts +10 -10
  76. package/dist/types/gasPriceOracle/adapters/arbitrum.d.ts +10 -1
  77. package/dist/types/gasPriceOracle/adapters/arbitrum.d.ts.map +1 -1
  78. package/dist/types/gasPriceOracle/adapters/ethereum.d.ts +19 -6
  79. package/dist/types/gasPriceOracle/adapters/ethereum.d.ts.map +1 -1
  80. package/dist/types/gasPriceOracle/adapters/linea-viem.d.ts +19 -1
  81. package/dist/types/gasPriceOracle/adapters/linea-viem.d.ts.map +1 -1
  82. package/dist/types/gasPriceOracle/adapters/linea.d.ts +2 -1
  83. package/dist/types/gasPriceOracle/adapters/linea.d.ts.map +1 -1
  84. package/dist/types/gasPriceOracle/adapters/polygon.d.ts +27 -1
  85. package/dist/types/gasPriceOracle/adapters/polygon.d.ts.map +1 -1
  86. package/dist/types/gasPriceOracle/oracle.d.ts +16 -8
  87. package/dist/types/gasPriceOracle/oracle.d.ts.map +1 -1
  88. package/dist/types/providers/types.d.ts +3 -3
  89. package/dist/types/relayFeeCalculator/chain-queries/alephZero.d.ts +0 -229
  90. package/dist/types/relayFeeCalculator/chain-queries/alephZero.d.ts.map +1 -1
  91. package/dist/types/relayFeeCalculator/chain-queries/baseQuery.d.ts +21 -7
  92. package/dist/types/relayFeeCalculator/chain-queries/baseQuery.d.ts.map +1 -1
  93. package/dist/types/relayFeeCalculator/chain-queries/factory.d.ts +1 -1
  94. package/dist/types/relayFeeCalculator/chain-queries/factory.d.ts.map +1 -1
  95. package/dist/types/relayFeeCalculator/chain-queries/polygon.d.ts +0 -229
  96. package/dist/types/relayFeeCalculator/chain-queries/polygon.d.ts.map +1 -1
  97. package/dist/types/relayFeeCalculator/relayFeeCalculator.d.ts +1 -1
  98. package/dist/types/relayFeeCalculator/relayFeeCalculator.d.ts.map +1 -1
  99. package/dist/types/utils/common.d.ts +1 -19
  100. package/dist/types/utils/common.d.ts.map +1 -1
  101. package/package.json +1 -1
  102. package/src/gasPriceOracle/adapters/arbitrum.ts +13 -6
  103. package/src/gasPriceOracle/adapters/ethereum.ts +43 -12
  104. package/src/gasPriceOracle/adapters/linea-viem.ts +32 -6
  105. package/src/gasPriceOracle/adapters/linea.ts +7 -2
  106. package/src/gasPriceOracle/adapters/polygon.ts +46 -5
  107. package/src/gasPriceOracle/oracle.ts +53 -28
  108. package/src/relayFeeCalculator/chain-queries/alephZero.ts +1 -29
  109. package/src/relayFeeCalculator/chain-queries/baseQuery.ts +73 -20
  110. package/src/relayFeeCalculator/chain-queries/factory.ts +6 -6
  111. package/src/relayFeeCalculator/chain-queries/polygon.ts +1 -29
  112. package/src/relayFeeCalculator/relayFeeCalculator.ts +6 -1
  113. package/src/utils/common.ts +2 -92
  114. package/dist/cjs/gasPriceOracle/adapters/arbitrum-viem.d.ts +0 -3
  115. package/dist/cjs/gasPriceOracle/adapters/arbitrum-viem.js +0 -21
  116. package/dist/cjs/gasPriceOracle/adapters/arbitrum-viem.js.map +0 -1
  117. package/dist/cjs/gasPriceOracle/adapters/ethereum-viem.d.ts +0 -4
  118. package/dist/cjs/gasPriceOracle/adapters/ethereum-viem.js +0 -26
  119. package/dist/cjs/gasPriceOracle/adapters/ethereum-viem.js.map +0 -1
  120. package/dist/cjs/gasPriceOracle/adapters/polygon-viem.d.ts +0 -3
  121. package/dist/cjs/gasPriceOracle/adapters/polygon-viem.js +0 -84
  122. package/dist/cjs/gasPriceOracle/adapters/polygon-viem.js.map +0 -1
  123. package/dist/esm/gasPriceOracle/adapters/arbitrum-viem.d.ts +0 -3
  124. package/dist/esm/gasPriceOracle/adapters/arbitrum-viem.js +0 -20
  125. package/dist/esm/gasPriceOracle/adapters/arbitrum-viem.js.map +0 -1
  126. package/dist/esm/gasPriceOracle/adapters/ethereum-viem.d.ts +0 -4
  127. package/dist/esm/gasPriceOracle/adapters/ethereum-viem.js +0 -21
  128. package/dist/esm/gasPriceOracle/adapters/ethereum-viem.js.map +0 -1
  129. package/dist/esm/gasPriceOracle/adapters/polygon-viem.d.ts +0 -3
  130. package/dist/esm/gasPriceOracle/adapters/polygon-viem.js +0 -82
  131. package/dist/esm/gasPriceOracle/adapters/polygon-viem.js.map +0 -1
  132. package/dist/types/gasPriceOracle/adapters/arbitrum-viem.d.ts +0 -4
  133. package/dist/types/gasPriceOracle/adapters/arbitrum-viem.d.ts.map +0 -1
  134. package/dist/types/gasPriceOracle/adapters/ethereum-viem.d.ts +0 -5
  135. package/dist/types/gasPriceOracle/adapters/ethereum-viem.d.ts.map +0 -1
  136. package/dist/types/gasPriceOracle/adapters/polygon-viem.d.ts +0 -4
  137. package/dist/types/gasPriceOracle/adapters/polygon-viem.d.ts.map +0 -1
  138. package/src/gasPriceOracle/adapters/arbitrum-viem.ts +0 -13
  139. package/src/gasPriceOracle/adapters/ethereum-viem.ts +0 -19
  140. package/src/gasPriceOracle/adapters/polygon-viem.ts +0 -86
@@ -1,234 +1,5 @@
1
- import { Logger } from "../relayFeeCalculator";
2
- import { providers } from "ethers";
3
1
  import { QueryBase } from "./baseQuery";
4
2
  export declare class PolygonQueries extends QueryBase {
5
- constructor(provider: providers.Provider, symbolMapping?: {
6
- ACX: {
7
- name: string;
8
- symbol: string;
9
- decimals: number;
10
- addresses: {
11
- [x: number]: string;
12
- };
13
- coingeckoId: string;
14
- };
15
- ARB: {
16
- name: string;
17
- symbol: string;
18
- decimals: number;
19
- addresses: {
20
- [x: number]: string;
21
- };
22
- coingeckoId: string;
23
- };
24
- AZERO: {
25
- name: string;
26
- symbol: string;
27
- decimals: number;
28
- addresses: {
29
- [x: number]: string;
30
- };
31
- coingeckoId: string;
32
- };
33
- BAL: {
34
- name: string;
35
- symbol: string;
36
- decimals: number;
37
- addresses: {
38
- [x: number]: string;
39
- };
40
- coingeckoId: string;
41
- };
42
- BADGER: {
43
- name: string;
44
- symbol: string;
45
- decimals: number;
46
- addresses: {
47
- [x: number]: string;
48
- };
49
- coingeckoId: string;
50
- };
51
- BOBA: {
52
- name: string;
53
- symbol: string;
54
- decimals: number;
55
- addresses: {
56
- [x: number]: string;
57
- };
58
- coingeckoId: string;
59
- };
60
- DAI: {
61
- name: string;
62
- symbol: string;
63
- decimals: number;
64
- addresses: {
65
- [x: number]: string;
66
- };
67
- coingeckoId: string;
68
- };
69
- ETH: {
70
- name: string;
71
- symbol: string;
72
- decimals: number;
73
- addresses: {
74
- [x: number]: string;
75
- };
76
- coingeckoId: string;
77
- };
78
- GHO: {
79
- name: string;
80
- symbol: string;
81
- decimals: number;
82
- addresses: {
83
- [x: number]: string;
84
- };
85
- coingeckoId: string;
86
- };
87
- LSK: {
88
- name: string;
89
- symbol: string;
90
- decimals: number;
91
- addresses: {
92
- [x: number]: string;
93
- };
94
- coingeckoId: string;
95
- };
96
- MATIC: {
97
- name: string;
98
- symbol: string;
99
- decimals: number;
100
- addresses: {
101
- [x: number]: string;
102
- };
103
- coingeckoId: string;
104
- };
105
- OP: {
106
- name: string;
107
- symbol: string;
108
- decimals: number;
109
- addresses: {
110
- [x: number]: string;
111
- };
112
- coingeckoId: string;
113
- };
114
- POOL: {
115
- name: string;
116
- symbol: string;
117
- decimals: number;
118
- addresses: {
119
- [x: number]: string;
120
- };
121
- coingeckoId: string;
122
- };
123
- SNX: {
124
- name: string;
125
- symbol: string;
126
- decimals: number;
127
- addresses: {
128
- [x: number]: string;
129
- };
130
- coingeckoId: string;
131
- };
132
- UMA: {
133
- name: string;
134
- symbol: string;
135
- decimals: number;
136
- addresses: {
137
- [x: number]: string;
138
- };
139
- coingeckoId: string;
140
- };
141
- USDB: {
142
- name: string;
143
- symbol: string;
144
- decimals: number;
145
- addresses: {
146
- [x: number]: string;
147
- };
148
- coingeckoId: string;
149
- };
150
- USDC: {
151
- name: string;
152
- symbol: string;
153
- decimals: number;
154
- addresses: {
155
- [x: number]: string;
156
- };
157
- coingeckoId: string;
158
- };
159
- "USDC.e": {
160
- name: string;
161
- symbol: string;
162
- decimals: number;
163
- addresses: {
164
- [x: number]: string;
165
- };
166
- coingeckoId: string;
167
- };
168
- USDbC: {
169
- name: string;
170
- symbol: string;
171
- decimals: number;
172
- addresses: {
173
- [x: number]: string;
174
- };
175
- coingeckoId: string;
176
- };
177
- USDzC: {
178
- name: string;
179
- symbol: string;
180
- decimals: number;
181
- addresses: {
182
- [x: number]: string;
183
- };
184
- coingeckoId: string;
185
- };
186
- USDT: {
187
- name: string;
188
- symbol: string;
189
- decimals: number;
190
- addresses: {
191
- [x: number]: string;
192
- };
193
- coingeckoId: string;
194
- };
195
- WAZERO: {
196
- name: string;
197
- symbol: string;
198
- decimals: number;
199
- addresses: {
200
- [x: number]: string;
201
- };
202
- coingeckoId: string;
203
- };
204
- WBTC: {
205
- name: string;
206
- symbol: string;
207
- decimals: number;
208
- addresses: {
209
- [x: number]: string;
210
- };
211
- coingeckoId: string;
212
- };
213
- WETH: {
214
- name: string;
215
- symbol: string;
216
- decimals: number;
217
- addresses: {
218
- [x: number]: string;
219
- };
220
- coingeckoId: string;
221
- };
222
- WMATIC: {
223
- name: string;
224
- symbol: string;
225
- decimals: number;
226
- addresses: {
227
- [x: number]: string;
228
- };
229
- coingeckoId: string;
230
- };
231
- }, spokePoolAddress?: string | undefined, simulatedRelayerAddress?: string, coingeckoProApiKey?: string, logger?: Logger, gasMarkup?: number);
232
3
  getTokenPrice(tokenSymbol: string): Promise<number>;
233
4
  }
234
5
  //# sourceMappingURL=polygon.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"polygon.d.ts","sourceRoot":"","sources":["../../../../src/relayFeeCalculator/chain-queries/polygon.ts"],"names":[],"mappings":"AAEA,OAAO,EAAkB,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAC/D,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AAInC,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExC,qBAAa,cAAe,SAAQ,SAAS;gBAEzC,QAAQ,EAAE,SAAS,CAAC,QAAQ,EAC5B,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAAoB,EACjC,gBAAgB,qBAAqD,EACrE,uBAAuB,SAAoC,EAC3D,kBAAkB,CAAC,EAAE,MAAM,EAC3B,MAAM,GAAE,MAAuB,EAC/B,SAAS,SAAI;IAgBA,aAAa,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;CAcnE"}
1
+ {"version":3,"file":"polygon.d.ts","sourceRoot":"","sources":["../../../../src/relayFeeCalculator/chain-queries/polygon.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExC,qBAAa,cAAe,SAAQ,SAAS;IAC5B,aAAa,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;CAcnE"}
@@ -5,7 +5,7 @@ export interface QueryInterface {
5
5
  getGasCosts: (deposit: Deposit, relayer: string, options?: Partial<{
6
6
  gasPrice: BigNumberish;
7
7
  gasUnits: BigNumberish;
8
- omitMarkup: boolean;
8
+ baseFeeMultiplier: BigNumber;
9
9
  transport: Transport;
10
10
  }>) => Promise<TransactionCostEstimate>;
11
11
  getTokenPrice: (tokenSymbol: string) => Promise<number>;
@@ -1 +1 @@
1
- {"version":3,"file":"relayFeeCalculator.d.ts","sourceRoot":"","sources":["../../../src/relayFeeCalculator/relayFeeCalculator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"relayFeeCalculator.d.ts","sourceRoot":"","sources":["../../../src/relayFeeCalculator/relayFeeCalculator.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxC,OAAO,EACL,SAAS,EACT,YAAY,EAEZ,uBAAuB,EAWxB,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,SAAS,EAAE,MAAM,MAAM,CAAC;AAGjC,MAAM,WAAW,cAAc;IAC7B,WAAW,EAAE,CACX,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE,OAAO,CAAC;QAChB,QAAQ,EAAE,YAAY,CAAC;QACvB,QAAQ,EAAE,YAAY,CAAC;QACvB,iBAAiB,EAAE,SAAS,CAAC;QAC7B,SAAS,EAAE,SAAS,CAAC;KACtB,CAAC,KACC,OAAO,CAAC,uBAAuB,CAAC,CAAC;IACtC,aAAa,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IACxD,gBAAgB,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK,MAAM,CAAC;CACnD;AAED,eAAO,MAAM,wBAAwB,UAAqD,CAAC;AAC3F,MAAM,WAAW,iBAAiB;IAChC,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;CAClB;AACD,KAAK,eAAe,GAAG,MAAM,CAAC;AAC9B,MAAM,WAAW,yBAAyB;IACxC,OAAO,EAAE,iBAAiB,CAAC;IAC3B,cAAc,CAAC,EAAE,MAAM,CAAC,eAAe,EAAE,MAAM,CAAC,eAAe,EAAE,iBAAiB,CAAC,CAAC,CAAC;CACtF;AACD,MAAM,MAAM,sBAAsB,GAAG,yBAAyB,GAAG,iBAAiB,CAAC;AACnF,MAAM,WAAW,4BAA4B;IAC3C,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,kBAAkB,EAAE;QAClB,CAAC,KAAK,EAAE,MAAM,GAAG,iBAAiB,GAAG,yBAAyB,CAAC;KAChE,CAAC;CACH;AACD,MAAM,WAAW,mCAAoC,SAAQ,4BAA4B;IACvF,OAAO,EAAE,cAAc,CAAC;CACzB;AACD,MAAM,WAAW,+BAAgC,SAAQ,4BAA4B;IACnF,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;CAC5C;AACD,MAAM,MAAM,wBAAwB,GAAG,mCAAmC,GAAG,+BAA+B,CAAC;AAE7G,MAAM,WAAW,iBAAiB;IAChC,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,eAAe,EAAE,MAAM,CAAC;IACxB,sBAAsB,EAAE,MAAM,CAAC;IAC/B,eAAe,EAAE,MAAM,CAAC;IACxB,aAAa,EAAE,MAAM,CAAC;IACtB,eAAe,EAAE,MAAM,CAAC;IACxB,cAAc,EAAE,OAAO,CAAC;IACxB,gBAAgB,EAAE,MAAM,CAAC;IACzB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,eAAe;IAC9B,CAAC,IAAI,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;KAAE,GAAG,IAAI,CAAC;CACvE;AAED,MAAM,WAAW,MAAM;IACrB,KAAK,EAAE,eAAe,CAAC;IACvB,IAAI,EAAE,eAAe,CAAC;IACtB,IAAI,EAAE,eAAe,CAAC;IACtB,KAAK,EAAE,eAAe,CAAC;CACxB;AAED,eAAO,MAAM,cAAc,EAAE,MAK5B,CAAC;AAKF,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,OAAO,CAAiB;IAChC,OAAO,CAAC,kBAAkB,CAA2D;IACrF,OAAO,CAAC,sBAAsB,CAA+D;IAC7F,OAAO,CAAC,eAAe,CAAwD;IAC/E,OAAO,CAAC,mBAAmB,CAA4D;IACvF,OAAO,CAAC,kBAAkB,CAAiD;IAI3E,OAAO,CAAC,MAAM,CAAS;gBAEX,MAAM,EAAE,mCAAmC,EAAE,MAAM,CAAC,EAAE,MAAM;gBAC5D,MAAM,EAAE,+BAA+B,EAAE,MAAM,CAAC,EAAE,MAAM,EAAE,kBAAkB,CAAC,EAAE,MAAM;IAqCjG;;;;;;;;;OASG;IACH,OAAO,CAAC,MAAM,CAAC,2BAA2B;IAM1C;;;;OAIG;IACH,MAAM,CAAC,8CAA8C,CACnD,YAAY,EAAE,yBAAyB,GAAG,iBAAiB,GAC1D,yBAAyB;IAmB5B;;;OAGG;IACH,MAAM,CAAC,0BAA0B,CAAC,YAAY,EAAE,iBAAiB,GAAG,IAAI;IAKxE,aAAa,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAInD;;;;;;;;;;;;;;;;;;OAkBG;IACG,aAAa,CACjB,OAAO,EAAE,OAAO,EAChB,aAAa,EAAE,YAAY,EAC3B,gBAAgB,UAAQ,EACxB,cAAc,SAAoC,EAClD,WAAW,CAAC,EAAE,MAAM,EACpB,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAAoB,EAChC,QAAQ,CAAC,EAAE,YAAY,EACvB,QAAQ,CAAC,EAAE,YAAY,EACvB,SAAS,CAAC,EAAE,SAAS,GACpB,OAAO,CAAC,SAAS,CAAC;IA6CrB,iBAAiB,CACf,cAAc,EAAE,YAAY,EAC5B,YAAY,EAAE,MAAM,EACpB,YAAY,CAAC,EAAE,eAAe,EAC9B,iBAAiB,CAAC,EAAE,eAAe,GAClC,SAAS;IAmDZ;;;;;;;;;;;;;;OAcG;IACG,iBAAiB,CACrB,OAAO,EAAE,OAAO,EAChB,aAAa,CAAC,EAAE,YAAY,EAC5B,gBAAgB,UAAQ,EACxB,cAAc,SAAoC,EAClD,WAAW,CAAC,EAAE,MAAM,EACpB,QAAQ,CAAC,EAAE,YAAY,EACvB,QAAQ,CAAC,EAAE,YAAY,GACtB,OAAO,CAAC,iBAAiB,CAAC;CAkE9B"}
@@ -1,8 +1,6 @@
1
- import { L2Provider } from "@eth-optimism/sdk/dist/interfaces/l2-provider";
2
1
  import Decimal from "decimal.js";
3
- import { ethers, PopulatedTransaction, providers } from "ethers";
2
+ import { ethers } from "ethers";
4
3
  import { BigNumber, BigNumberish, BN } from "./BigNumberUtils";
5
- import { Transport } from "viem";
6
4
  export type Decimalish = string | number | Decimal;
7
5
  export declare const AddressZero = "0x0000000000000000000000000000000000000000";
8
6
  export declare const MAX_BIG_INT: ethers.BigNumber;
@@ -131,21 +129,5 @@ export type TransactionCostEstimate = {
131
129
  tokenGasCost: BigNumber;
132
130
  gasPrice: BigNumber;
133
131
  };
134
- /**
135
- * Estimates the total gas cost required to submit an unsigned (populated) transaction on-chain.
136
- * @param unsignedTx The unsigned transaction that this function will estimate.
137
- * @param senderAddress The address that the transaction will be submitted from.
138
- * @param provider A valid ethers provider - will be used to reason the gas price.
139
- * @param options
140
- * @param options.gasPrice A manually provided gas price - if set, this function will not resolve the current gas price.
141
- * @param options.gasUnits A manually provided gas units - if set, this function will not estimate the gas units.
142
- * @param options.transport A custom transport object for custom gas price retrieval.
143
- * @returns Estimated cost in units of gas and the underlying gas token (gasPrice * estimatedGasUnits).
144
- */
145
- export declare function estimateTotalGasRequiredByUnsignedTransaction(unsignedTx: PopulatedTransaction, senderAddress: string, provider: providers.Provider | L2Provider<providers.Provider>, options?: Partial<{
146
- gasPrice: BigNumberish;
147
- gasUnits: BigNumberish;
148
- transport: Transport;
149
- }>): Promise<TransactionCostEstimate>;
150
132
  export declare function randomAddress(): string;
151
133
  //# sourceMappingURL=common.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../../../src/utils/common.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../../../src/utils/common.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,YAAY,CAAC;AACjC,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,EAAE,EAAiC,MAAM,kBAAkB,CAAC;AAG9F,MAAM,MAAM,UAAU,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;AACnD,eAAO,MAAM,WAAW,+CAA+B,CAAC;AACxD,eAAO,MAAM,WAAW,kBAAqD,CAAC;AAE9E;;;;;;GAMG;AACH,eAAO,MAAM,OAAO,QAAS,YAAY,aAAa,MAAM,KAAG,EAA0C,CAAC;AAE1G;;;;;;GAMG;AACH,eAAO,MAAM,OAAO,QAAS,YAAY,aAAa,MAAM,KAAG,MAA+C,CAAC;AAE/G;;;;;;GAMG;AACH,wBAAgB,GAAG,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,YAAY,GAAG,EAAE,CAIxD;AACD;;;;;;GAMG;AACH,wBAAgB,GAAG,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,YAAY,GAAG,EAAE,CAIxD;AAED,eAAO,MAAM,oBAAoB,kBAAe,CAAC;AAEjD;;;;;;;;GAQG;AACH,wBAAgB,aAAa,CAC3B,UAAU,EAAE,YAAY,EACxB,KAAK,GAAE,MAAM,GAAG,MAAU,EAC1B,UAAU,SAAK,EACf,cAAc,SAAK,GAClB,MAAM,CAIR;AAED;;;;;;GAMG;AACH,eAAO,MAAM,OAAO,QAAS,YAAY,YAAY,YAAY,KAAG,SAEnE,CAAC;AAEF;;;;;;;;GAQG;AACH,wBAAgB,gBAAgB,CAC9B,GAAG,EAAE,MAAM,EACX,QAAQ,EAAE,YAAY,EACtB,KAAK,GAAE,MAAM,GAAG,MAAU,EAC1B,QAAQ,SAAK,GACZ,MAAM,CAGR;AAED;;;;;;GAMG;AACH,wBAAgB,OAAO,CAAC,SAAS,EAAE,YAAY,EAAE,WAAW,EAAE,YAAY,GAAG,EAAE,CAE9E;AAED;;;;;;;;GAQG;AACH,eAAO,MAAM,8BAA8B,gBAC5B,UAAU,aACZ,UAAU,kBACL,UAAU,kBACV,UAAU,KACzB,MAGF,CAAC;AACF;;;;;;;;GAQG;AACH,eAAO,MAAM,4BAA4B,gBAC1B,UAAU,aACZ,UAAU,kBACL,UAAU,kBACV,UAAU,KACzB,MAaF,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,OAAO,gBACL,UAAU,aACZ,UAAU,kBACL,UAAU,kBACV,UAAU,KACzB,MAEF,CAAC;AACF;;;;;;;GAOG;AACH,eAAO,MAAM,iBAAiB,QAAS,MAAM,OAAO,MAAM,QAAQ,MAAM,eAYvE,CAAC;AAEF;;;GAGG;AACH,wBAAgB,KAAK,CAAC,OAAO,EAAE,MAAM,oBAEpC;AAED;;;;;;GAMG;AACH,wBAAgB,KAAK,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAQ1F;AAED,MAAM,MAAM,uBAAuB,GAAG;IACpC,aAAa,EAAE,SAAS,CAAC;IACzB,YAAY,EAAE,SAAS,CAAC;IACxB,QAAQ,EAAE,SAAS,CAAC;CACrB,CAAC;AAEF,wBAAgB,aAAa,WAE5B"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@across-protocol/sdk",
3
3
  "author": "UMA Team",
4
- "version": "3.3.32",
4
+ "version": "3.4.1",
5
5
  "license": "AGPL-3.0",
6
6
  "homepage": "https://docs.across.to/reference/sdk",
7
7
  "files": [
@@ -2,14 +2,21 @@ import { providers } from "ethers";
2
2
  import { bnOne } from "../../utils";
3
3
  import { GasPriceEstimate } from "../types";
4
4
  import * as ethereum from "./ethereum";
5
+ import { GasPriceEstimateOptions } from "../oracle";
5
6
 
6
- // Arbitrum Nitro implements EIP-1559 pricing, but the priority fee is always refunded to the caller.
7
- // Reference: https://docs.arbitrum.io/how-arbitrum-works/gas-fees
8
- export async function eip1559(provider: providers.Provider, chainId: number): Promise<GasPriceEstimate> {
9
- const { maxFeePerGas: _maxFeePerGas, maxPriorityFeePerGas } = await ethereum.eip1559(provider, chainId);
7
+ /**
8
+ * @notice Return Arbitrum orbit gas fees
9
+ * @dev Arbitrum Nitro implements EIP-1559 pricing, but the priority fee is always refunded to the caller.
10
+ * Reference: https://docs.arbitrum.io/how-arbitrum-works/gas-fees so we hardcode the priority fee
11
+ * to 1 wei.
12
+ * @param provider Ethers Provider
13
+ * @returns GasPriceEstimate
14
+ */
15
+ export async function eip1559(provider: providers.Provider, opts: GasPriceEstimateOptions): Promise<GasPriceEstimate> {
16
+ const { maxFeePerGas: _maxFeePerGas, maxPriorityFeePerGas } = await ethereum.eip1559(provider, opts);
10
17
 
11
- // eip1559() sets maxFeePerGas = lastBaseFeePerGas + maxPriorityFeePerGas, so revert that.
12
- // The caller may apply scaling as they wish afterwards.
18
+ // eip1559() sets maxFeePerGas = lastBaseFeePerGas + maxPriorityFeePerGas, so back out priority fee.
19
+ // The remaining maxFeePerGas should be scaled already.
13
20
  const maxFeePerGas = _maxFeePerGas.sub(maxPriorityFeePerGas).add(bnOne);
14
21
 
15
22
  return { maxPriorityFeePerGas: bnOne, maxFeePerGas };
@@ -1,26 +1,40 @@
1
1
  import assert from "assert";
2
2
  import { providers } from "ethers";
3
- import { BigNumber, bnZero, getNetworkName } from "../../utils";
3
+ import { BigNumber, bnZero, fixedPointAdjustment, getNetworkName } from "../../utils";
4
4
  import { GasPriceEstimate } from "../types";
5
5
  import { gasPriceError } from "../util";
6
+ import { GasPriceEstimateOptions } from "../oracle";
7
+
8
+ // TODO: We intend to remove `eip1559Bad()` as an option and make eip1559Raw the only option eventually. The reason
9
+ // they both exist currently is because eip1559Raw is new and untested on production so we will slowly roll it out
10
+ // by using the convenient environment variable safety guard.
6
11
 
7
12
  /**
13
+ * @dev If GAS_PRICE_EIP1559_RAW_${chainId}=true, then constructs total fee by adding
14
+ * eth_getBlock("pending").baseFee to eth_maxPriorityFeePerGas, otherwise calls the ethers provider's
15
+ * getFeeData() method which adds eth_getBlock("latest").baseFee to a hardcoded priority fee of 1.5 gwei.
8
16
  * @param provider ethers RPC provider instance.
9
- * @param chainId Chain ID of provider instance.
10
17
  * @returns Promise of gas price estimate object.
11
18
  */
12
- export function eip1559(provider: providers.Provider, chainId: number): Promise<GasPriceEstimate> {
13
- const useRaw = process.env[`GAS_PRICE_EIP1559_RAW_${chainId}`] === "true";
14
- return useRaw ? eip1559Raw(provider, chainId) : eip1559Bad(provider, chainId);
19
+ export function eip1559(provider: providers.Provider, opts: GasPriceEstimateOptions): Promise<GasPriceEstimate> {
20
+ const useRaw = process.env[`GAS_PRICE_EIP1559_RAW_${opts.chainId}`] === "true";
21
+ return useRaw
22
+ ? eip1559Raw(provider, opts.chainId, opts.baseFeeMultiplier)
23
+ : eip1559Bad(provider, opts.chainId, opts.baseFeeMultiplier);
15
24
  }
16
25
 
17
26
  /**
18
27
  * @note Performs direct RPC calls to retrieve the RPC-suggested priority fee for the next block.
28
+ * @dev Constructs total fee by adding eth_getBlock("pending").baseFee to eth_maxPriorityFeePerGas
19
29
  * @param provider ethers RPC provider instance.
20
30
  * @param chainId Chain ID of the provider instance.
21
31
  * @returns Promise of gas price estimate object.
22
32
  */
23
- export async function eip1559Raw(provider: providers.Provider, chainId: number): Promise<GasPriceEstimate> {
33
+ export async function eip1559Raw(
34
+ provider: providers.Provider,
35
+ chainId: number,
36
+ baseFeeMultiplier: BigNumber
37
+ ): Promise<GasPriceEstimate> {
24
38
  const [{ baseFeePerGas }, _maxPriorityFeePerGas] = await Promise.all([
25
39
  provider.getBlock("pending"),
26
40
  (provider as providers.JsonRpcProvider).send("eth_maxPriorityFeePerGas", []),
@@ -28,19 +42,27 @@ export async function eip1559Raw(provider: providers.Provider, chainId: number):
28
42
  const maxPriorityFeePerGas = BigNumber.from(_maxPriorityFeePerGas);
29
43
  assert(BigNumber.isBigNumber(baseFeePerGas), `No baseFeePerGas received on ${getNetworkName(chainId)}`);
30
44
 
45
+ const scaledBaseFee = baseFeePerGas.mul(baseFeeMultiplier).div(fixedPointAdjustment);
31
46
  return {
32
- maxFeePerGas: maxPriorityFeePerGas.add(baseFeePerGas),
47
+ maxFeePerGas: maxPriorityFeePerGas.add(scaledBaseFee),
33
48
  maxPriorityFeePerGas,
34
49
  };
35
50
  }
36
51
 
37
52
  /**
38
- * @note Resolves priority gas pricing poorly, because the priority fee is hardcoded to 1.5 Gwei in ethers v5.
53
+ * @notice Returns fee data using provider's getFeeData() method.
54
+ * @note Resolves priority gas pricing poorly, because the priority fee is hardcoded to 1.5 Gwei in ethers v5's
55
+ * getFeeData() method
56
+ * @dev TODO: Remove this function soon. See note above about slowly rolling out eip1559Raw.
39
57
  * @param provider ethers RPC provider instance.
40
58
  * @param chainId Chain ID of the provider instance.
41
59
  * @returns Promise of gas price estimate object.
42
60
  */
43
- export async function eip1559Bad(provider: providers.Provider, chainId: number): Promise<GasPriceEstimate> {
61
+ export async function eip1559Bad(
62
+ provider: providers.Provider,
63
+ chainId: number,
64
+ baseFeeMultiplier: BigNumber
65
+ ): Promise<GasPriceEstimate> {
44
66
  const feeData = await provider.getFeeData();
45
67
 
46
68
  [feeData.lastBaseFeePerGas, feeData.maxPriorityFeePerGas].forEach((field: BigNumber | null) => {
@@ -48,18 +70,27 @@ export async function eip1559Bad(provider: providers.Provider, chainId: number):
48
70
  });
49
71
 
50
72
  const maxPriorityFeePerGas = feeData.maxPriorityFeePerGas as BigNumber;
51
- const maxFeePerGas = maxPriorityFeePerGas.add(feeData.lastBaseFeePerGas as BigNumber);
73
+ const scaledLastBaseFeePerGas = (feeData.lastBaseFeePerGas as BigNumber)
74
+ .mul(baseFeeMultiplier)
75
+ .div(fixedPointAdjustment);
76
+ const maxFeePerGas = maxPriorityFeePerGas.add(scaledLastBaseFeePerGas);
52
77
 
53
78
  return { maxPriorityFeePerGas, maxFeePerGas };
54
79
  }
55
80
 
56
- export async function legacy(provider: providers.Provider, chainId: number): Promise<GasPriceEstimate> {
81
+ /**
82
+ * @notice Returns result of eth_gasPrice RPC call
83
+ * @dev Its recommended to use the eip1559Raw method over this one where possible as it will be more accurate.
84
+ * @returns GasPriceEstimate
85
+ */
86
+ export async function legacy(provider: providers.Provider, opts: GasPriceEstimateOptions): Promise<GasPriceEstimate> {
87
+ const { chainId, baseFeeMultiplier } = opts;
57
88
  const gasPrice = await provider.getGasPrice();
58
89
 
59
90
  if (!BigNumber.isBigNumber(gasPrice) || gasPrice.lt(bnZero)) gasPriceError("getGasPrice()", chainId, gasPrice);
60
91
 
61
92
  return {
62
- maxFeePerGas: gasPrice,
93
+ maxFeePerGas: gasPrice.mul(baseFeeMultiplier).div(fixedPointAdjustment),
63
94
  maxPriorityFeePerGas: bnZero,
64
95
  };
65
96
  }
@@ -1,14 +1,40 @@
1
- import { PublicClient } from "viem";
1
+ import { Address, Hex, PublicClient } from "viem";
2
2
  import { estimateGas } from "viem/linea";
3
3
  import { DEFAULT_SIMULATED_RELAYER_ADDRESS as account } from "../../constants";
4
4
  import { InternalGasPriceEstimate } from "../types";
5
+ import { GasPriceEstimateOptions } from "../oracle";
6
+ import { fixedPointAdjustment } from "../../utils";
5
7
 
6
- export async function eip1559(provider: PublicClient, _chainId?: number): Promise<InternalGasPriceEstimate> {
7
- const { baseFeePerGas, priorityFeePerGas } = await estimateGas(provider, {
8
- account,
9
- to: account,
10
- value: BigInt(1),
8
+ /**
9
+ * @notice The Linea viem provider calls the linea_estimateGas RPC endpoint to estimate gas. Linea is unique
10
+ * in that the recommended fee per gas is hardcoded to 7 wei while the priority fee is dynamic based on the
11
+ * compressed transaction size, layer 1 verification costs and capacity, gas price ratio between layer 1 and layer 2,
12
+ * the transaction's gas usage, the minimum gas price on layer 2,
13
+ * and a minimum margin (for error) for gas price estimation.
14
+ * Source: https://docs.linea.build/get-started/how-to/gas-fees#how-gas-works-on-linea
15
+ * @dev Because the Linea priority fee is more volatile than the base fee, the base fee multiplier will be applied
16
+ * to the priority fee.
17
+ * @param provider Viem PublicClient
18
+ * @param _chainId Unused in this adapter
19
+ * @param baseFeeMultiplier Amount to multiply priority fee, since Linea's base fee is hardcoded while its priority
20
+ * fee is dynamic
21
+ * @param _unsignedTx Should contain any params passed to linea_estimateGas, which are listed
22
+ * here: https://docs.linea.build/api/reference/linea-estimategas#parameters
23
+ * @returns
24
+ */
25
+ export async function eip1559(
26
+ provider: PublicClient,
27
+ opts: GasPriceEstimateOptions
28
+ ): Promise<InternalGasPriceEstimate> {
29
+ const { unsignedTx, baseFeeMultiplier } = opts;
30
+ const { baseFeePerGas, priorityFeePerGas: _priorityFeePerGas } = await estimateGas(provider, {
31
+ account: (unsignedTx?.from as Address) ?? account,
32
+ to: (unsignedTx?.to as Address) ?? account,
33
+ value: BigInt(unsignedTx?.value?.toString() ?? "1"),
34
+ data: (unsignedTx?.data as Hex) ?? "0x",
11
35
  });
36
+ const priorityFeePerGas =
37
+ (_priorityFeePerGas * BigInt(baseFeeMultiplier.toString())) / BigInt(fixedPointAdjustment.toString());
12
38
 
13
39
  return {
14
40
  maxFeePerGas: baseFeePerGas + priorityFeePerGas,
@@ -5,7 +5,12 @@
5
5
  import { providers } from "ethers";
6
6
  import { GasPriceEstimate } from "../types";
7
7
  import * as ethereum from "./ethereum";
8
+ import { GasPriceEstimateOptions } from "../oracle";
8
9
 
9
- export function eip1559(provider: providers.Provider, chainId: number): Promise<GasPriceEstimate> {
10
- return ethereum.legacy(provider, chainId);
10
+ export function eip1559(provider: providers.Provider, opts: GasPriceEstimateOptions): Promise<GasPriceEstimate> {
11
+ // We use the legacy method to call `eth_gasPrice` which empirically returns a more accurate
12
+ // gas price estimate than `eth_maxPriorityFeePerGas` or ethersProvider.getFeeData in the EIP1559 "raw" or "bad"
13
+ // cases. Based on testing, `eth_gasPrice` returns the closest price to the Linea-specific `linea_estimateGas`
14
+ // endpoint which the Viem Linea adapter queries.
15
+ return ethereum.legacy(provider, opts);
11
16
  }
@@ -1,10 +1,11 @@
1
1
  import { providers } from "ethers";
2
2
  import { BaseHTTPAdapter, BaseHTTPAdapterArgs } from "../../priceClient/adapters/baseAdapter";
3
- import { BigNumber, bnZero, isDefined, parseUnits } from "../../utils";
3
+ import { BigNumber, bnZero, fixedPointAdjustment, isDefined, parseUnits } from "../../utils";
4
4
  import { CHAIN_IDs } from "../../constants";
5
5
  import { GasPriceEstimate } from "../types";
6
6
  import { gasPriceError } from "../util";
7
7
  import { eip1559 } from "./ethereum";
8
+ import { GasPriceEstimateOptions } from "../oracle";
8
9
 
9
10
  type Polygon1559GasPrice = {
10
11
  maxPriorityFee: number | string;
@@ -27,7 +28,7 @@ type GasStationArgs = BaseHTTPAdapterArgs & {
27
28
 
28
29
  const { POLYGON } = CHAIN_IDs;
29
30
 
30
- class PolygonGasStation extends BaseHTTPAdapter {
31
+ export class PolygonGasStation extends BaseHTTPAdapter {
31
32
  readonly chainId: number;
32
33
 
33
34
  constructor({ chainId = POLYGON, host, timeout = 1500, retries = 1 }: GasStationArgs = {}) {
@@ -67,15 +68,55 @@ class PolygonGasStation extends BaseHTTPAdapter {
67
68
  }
68
69
  }
69
70
 
70
- export async function gasStation(provider: providers.Provider, chainId: number): Promise<GasPriceEstimate> {
71
- const gasStation = new PolygonGasStation({ chainId: chainId, timeout: 2000, retries: 0 });
71
+ class MockRevertingPolygonGasStation extends PolygonGasStation {
72
+ getFeeData(): Promise<GasPriceEstimate> {
73
+ throw new Error();
74
+ }
75
+ }
76
+
77
+ export const MockPolygonGasStationBaseFee = () => parseUnits("12", 9);
78
+ export const MockPolygonGasStationPriorityFee = () => parseUnits("1", 9);
79
+
80
+ class MockPolygonGasStation extends PolygonGasStation {
81
+ getFeeData(): Promise<GasPriceEstimate> {
82
+ return Promise.resolve({
83
+ maxPriorityFeePerGas: MockPolygonGasStationPriorityFee(),
84
+ maxFeePerGas: MockPolygonGasStationBaseFee().add(MockPolygonGasStationPriorityFee()),
85
+ });
86
+ }
87
+ }
88
+
89
+ /**
90
+ * @notice Returns the gas price suggested by the Polygon GasStation API or reconstructs it using
91
+ * the eip1559() method as a fallback.
92
+ * @param provider Ethers Provider.
93
+ * @returns GasPriceEstimate
94
+ */
95
+ export async function gasStation(
96
+ provider: providers.Provider,
97
+ opts: GasPriceEstimateOptions
98
+ ): Promise<GasPriceEstimate> {
99
+ const { chainId, baseFeeMultiplier } = opts;
100
+ let gasStation: PolygonGasStation;
101
+ if (process.env.TEST_POLYGON_GAS_STATION === "true") {
102
+ gasStation = new MockPolygonGasStation();
103
+ } else if (process.env.TEST_REVERTING_POLYGON_GAS_STATION === "true") {
104
+ gasStation = new MockRevertingPolygonGasStation();
105
+ } else {
106
+ gasStation = new PolygonGasStation({ chainId: chainId, timeout: 2000, retries: 0 });
107
+ }
72
108
  let maxPriorityFeePerGas: BigNumber;
73
109
  let maxFeePerGas: BigNumber;
74
110
  try {
75
111
  ({ maxPriorityFeePerGas, maxFeePerGas } = await gasStation.getFeeData());
112
+ // Assume that the maxFeePerGas already includes the priority fee, so back out the priority fee before applying
113
+ // the baseFeeMultiplier.
114
+ const baseFeeMinusPriorityFee = maxFeePerGas.sub(maxPriorityFeePerGas);
115
+ const scaledBaseFee = baseFeeMinusPriorityFee.mul(baseFeeMultiplier).div(fixedPointAdjustment);
116
+ maxFeePerGas = scaledBaseFee.add(maxPriorityFeePerGas);
76
117
  } catch (err) {
77
118
  // Fall back to the RPC provider. May be less accurate.
78
- ({ maxPriorityFeePerGas, maxFeePerGas } = await eip1559(provider, chainId));
119
+ ({ maxPriorityFeePerGas, maxFeePerGas } = await eip1559(provider, opts));
79
120
 
80
121
  // Per the GasStation docs, the minimum priority fee on Polygon is 30 Gwei.
81
122
  // https://docs.polygon.technology/tools/gas/polygon-gas-station/#interpretation