@@ -85,6 +85,7 @@ describe('configUtils', () => {
8585 } ,
8686 ] ,
8787 } ,
88+ scale : { numerator : 1n , denominator : 1n } ,
8889 } ,
8990 } ,
9091 {
@@ -109,6 +110,7 @@ describe('configUtils', () => {
109110 address : ADDRESS ,
110111 } ,
111112 } ,
113+ scale : { numerator : 1n , denominator : 1n } ,
112114 } ,
113115 } ,
114116 {
@@ -131,6 +133,7 @@ describe('configUtils', () => {
131133 address : ADDRESS ,
132134 owner : ADDRESS ,
133135 } ,
136+ scale : { numerator : 1n , denominator : 1n } ,
134137 } ,
135138 } ,
136139 {
@@ -182,6 +185,7 @@ describe('configUtils', () => {
182185 owner : 'milk169dcaz397j75tjfpl6ykm23dfrv39dqd58lsag' ,
183186 type : 'native' ,
184187 } ,
188+ scale : { numerator : 1n , denominator : 1n } ,
185189 } ,
186190 input : {
187191 bsc : {
@@ -242,6 +246,44 @@ describe('configUtils', () => {
242246 } ) ;
243247 }
244248
249+ it ( 'normalizes plain number scale to {numerator, denominator} bigint' , ( ) => {
250+ const transformedObj = transformConfigToCheck ( {
251+ type : TokenType . collateral ,
252+ token : ADDRESS ,
253+ scale : 1000000000000 ,
254+ } as any ) ;
255+
256+ expect ( transformedObj . scale ) . to . eql ( {
257+ numerator : 1000000000000n ,
258+ denominator : 1n ,
259+ } ) ;
260+ } ) ;
261+
262+ it ( 'normalizes {number, number} scale to {bigint, bigint}' , ( ) => {
263+ const transformedObj = transformConfigToCheck ( {
264+ type : TokenType . collateral ,
265+ token : ADDRESS ,
266+ scale : { numerator : 1 , denominator : 1000000000000 } ,
267+ } as any ) ;
268+
269+ expect ( transformedObj . scale ) . to . eql ( {
270+ numerator : 1n ,
271+ denominator : 1000000000000n ,
272+ } ) ;
273+ } ) ;
274+
275+ it ( 'normalizes undefined scale to identity {1n, 1n}' , ( ) => {
276+ const transformedObj = transformConfigToCheck ( {
277+ type : TokenType . collateral ,
278+ token : ADDRESS ,
279+ } as any ) ;
280+
281+ expect ( transformedObj . scale ) . to . eql ( {
282+ numerator : 1n ,
283+ denominator : 1n ,
284+ } ) ;
285+ } ) ;
286+
245287 it ( 'normalizes LinearFee maxFee/halfAmount so equivalent bps configs compare equal' , ( ) => {
246288 const transformedObj = transformConfigToCheck ( {
247289 type : TokenType . collateral ,
@@ -259,6 +301,7 @@ describe('configUtils', () => {
259301 expect ( transformedObj ) . to . eql ( {
260302 type : TokenType . collateral ,
261303 token : ADDRESS ,
304+ scale : { numerator : 1n , denominator : 1n } ,
262305 tokenFee : {
263306 type : TokenFeeType . LinearFee ,
264307 owner : ADDRESS ,
@@ -286,6 +329,7 @@ describe('configUtils', () => {
286329 expect ( transformedObj ) . to . eql ( {
287330 type : TokenType . collateral ,
288331 token : ADDRESS ,
332+ scale : { numerator : 1n , denominator : 1n } ,
289333 tokenFee : {
290334 type : TokenFeeType . OffchainQuotedLinearFee ,
291335 owner : ADDRESS ,
@@ -322,6 +366,7 @@ describe('configUtils', () => {
322366 expect ( transformedObj ) . to . eql ( {
323367 type : TokenType . collateral ,
324368 token : ADDRESS ,
369+ scale : { numerator : 1n , denominator : 1n } ,
325370 tokenFee : {
326371 type : TokenFeeType . RoutingFee ,
327372 owner : ADDRESS ,
@@ -373,6 +418,7 @@ describe('configUtils', () => {
373418 expect ( transformedObj ) . to . eql ( {
374419 type : TokenType . collateral ,
375420 token : ADDRESS ,
421+ scale : { numerator : 1n , denominator : 1n } ,
376422 tokenFee : {
377423 type : TokenFeeType . CrossCollateralRoutingFee ,
378424 owner : ADDRESS ,
@@ -419,6 +465,7 @@ describe('configUtils', () => {
419465 expect ( transformedObj ) . to . eql ( {
420466 type : TokenType . collateral ,
421467 token : ADDRESS ,
468+ scale : { numerator : 1n , denominator : 1n } ,
422469 tokenFee : {
423470 type : TokenFeeType . CrossCollateralRoutingFee ,
424471 owner : ADDRESS ,
@@ -458,6 +505,7 @@ describe('configUtils', () => {
458505 expect ( transformedObj ) . to . eql ( {
459506 type : TokenType . collateral ,
460507 token : ADDRESS ,
508+ scale : { numerator : 1n , denominator : 1n } ,
461509 tokenFee : {
462510 type : TokenFeeType . RoutingFee ,
463511 owner : ADDRESS ,
0 commit comments