@metamask/bridge-controller 52.0.0 → 53.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (96) hide show
  1. package/CHANGELOG.md +29 -1
  2. package/dist/bridge-controller.cjs +5 -4
  3. package/dist/bridge-controller.cjs.map +1 -1
  4. package/dist/bridge-controller.d.cts +1 -1
  5. package/dist/bridge-controller.d.cts.map +1 -1
  6. package/dist/bridge-controller.d.mts +1 -1
  7. package/dist/bridge-controller.d.mts.map +1 -1
  8. package/dist/bridge-controller.mjs +6 -5
  9. package/dist/bridge-controller.mjs.map +1 -1
  10. package/dist/constants/bridge.cjs +1 -0
  11. package/dist/constants/bridge.cjs.map +1 -1
  12. package/dist/constants/bridge.d.cts +1 -1
  13. package/dist/constants/bridge.d.cts.map +1 -1
  14. package/dist/constants/bridge.d.mts +1 -1
  15. package/dist/constants/bridge.d.mts.map +1 -1
  16. package/dist/constants/bridge.mjs +1 -0
  17. package/dist/constants/bridge.mjs.map +1 -1
  18. package/dist/constants/chains.cjs +4 -1
  19. package/dist/constants/chains.cjs.map +1 -1
  20. package/dist/constants/chains.d.cts +3 -0
  21. package/dist/constants/chains.d.cts.map +1 -1
  22. package/dist/constants/chains.d.mts +3 -0
  23. package/dist/constants/chains.d.mts.map +1 -1
  24. package/dist/constants/chains.mjs +3 -0
  25. package/dist/constants/chains.mjs.map +1 -1
  26. package/dist/constants/tokens.cjs +10 -0
  27. package/dist/constants/tokens.cjs.map +1 -1
  28. package/dist/constants/tokens.d.cts +7 -0
  29. package/dist/constants/tokens.d.cts.map +1 -1
  30. package/dist/constants/tokens.d.mts +7 -0
  31. package/dist/constants/tokens.d.mts.map +1 -1
  32. package/dist/constants/tokens.mjs +10 -0
  33. package/dist/constants/tokens.mjs.map +1 -1
  34. package/dist/selectors.cjs +1 -1
  35. package/dist/selectors.cjs.map +1 -1
  36. package/dist/selectors.d.cts +346 -244
  37. package/dist/selectors.d.cts.map +1 -1
  38. package/dist/selectors.d.mts +346 -244
  39. package/dist/selectors.d.mts.map +1 -1
  40. package/dist/selectors.mjs +2 -2
  41. package/dist/selectors.mjs.map +1 -1
  42. package/dist/types.cjs.map +1 -1
  43. package/dist/types.d.cts +3 -2
  44. package/dist/types.d.cts.map +1 -1
  45. package/dist/types.d.mts +3 -2
  46. package/dist/types.d.mts.map +1 -1
  47. package/dist/types.mjs.map +1 -1
  48. package/dist/utils/bridge.cjs +5 -1
  49. package/dist/utils/bridge.cjs.map +1 -1
  50. package/dist/utils/bridge.d.cts +10 -1
  51. package/dist/utils/bridge.d.cts.map +1 -1
  52. package/dist/utils/bridge.d.mts +10 -1
  53. package/dist/utils/bridge.d.mts.map +1 -1
  54. package/dist/utils/bridge.mjs +3 -0
  55. package/dist/utils/bridge.mjs.map +1 -1
  56. package/dist/utils/feature-flags.cjs +24 -1
  57. package/dist/utils/feature-flags.cjs.map +1 -1
  58. package/dist/utils/feature-flags.d.cts +12 -1
  59. package/dist/utils/feature-flags.d.cts.map +1 -1
  60. package/dist/utils/feature-flags.d.mts +12 -1
  61. package/dist/utils/feature-flags.d.mts.map +1 -1
  62. package/dist/utils/feature-flags.mjs +22 -0
  63. package/dist/utils/feature-flags.mjs.map +1 -1
  64. package/dist/utils/fetch-server-events.cjs +61 -0
  65. package/dist/utils/fetch-server-events.cjs.map +1 -0
  66. package/dist/utils/fetch-server-events.d.cts +17 -0
  67. package/dist/utils/fetch-server-events.d.cts.map +1 -0
  68. package/dist/utils/fetch-server-events.d.mts +17 -0
  69. package/dist/utils/fetch-server-events.d.mts.map +1 -0
  70. package/dist/utils/fetch-server-events.mjs +57 -0
  71. package/dist/utils/fetch-server-events.mjs.map +1 -0
  72. package/dist/utils/fetch.cjs +14 -24
  73. package/dist/utils/fetch.cjs.map +1 -1
  74. package/dist/utils/fetch.d.cts.map +1 -1
  75. package/dist/utils/fetch.d.mts.map +1 -1
  76. package/dist/utils/fetch.mjs +15 -25
  77. package/dist/utils/fetch.mjs.map +1 -1
  78. package/dist/utils/quote-fees.cjs.map +1 -1
  79. package/dist/utils/quote-fees.mjs.map +1 -1
  80. package/dist/utils/quote.cjs +2 -1
  81. package/dist/utils/quote.cjs.map +1 -1
  82. package/dist/utils/quote.d.cts +3 -3
  83. package/dist/utils/quote.d.cts.map +1 -1
  84. package/dist/utils/quote.d.mts +3 -3
  85. package/dist/utils/quote.d.mts.map +1 -1
  86. package/dist/utils/quote.mjs +2 -1
  87. package/dist/utils/quote.mjs.map +1 -1
  88. package/dist/utils/validators.cjs +11 -13
  89. package/dist/utils/validators.cjs.map +1 -1
  90. package/dist/utils/validators.d.cts +20 -977
  91. package/dist/utils/validators.d.cts.map +1 -1
  92. package/dist/utils/validators.d.mts +20 -977
  93. package/dist/utils/validators.d.mts.map +1 -1
  94. package/dist/utils/validators.mjs +10 -11
  95. package/dist/utils/validators.mjs.map +1 -1
  96. package/package.json +5 -6
@@ -1 +1 @@
1
- {"version":3,"file":"bridge-controller.mjs","sourceRoot":"","sources":["../src/bridge-controller.ts"],"names":[],"mappings":";;;;;;;;;;;;AACA,OAAO,EAAE,QAAQ,EAAE,iCAAiC;AACpD,OAAO,EAAE,YAAY,EAAE,iCAAiC;AAIxD,OAAO,EAAE,QAAQ,EAAE,oCAAoC;AAEvD,OAAO,EAAE,+BAA+B,EAAE,qCAAqC;AAK/E,OAAO,EACL,sBAAsB,EACtB,wBAAwB,EACxB,+BAA+B,EAC/B,+BAA+B,EAC/B,mBAAmB,EACpB,+BAA2B;AAC5B,OAAO,EAAE,SAAS,EAAE,+BAA2B;AAC/C,OAAO,EAAE,gCAAgC,EAAE,wBAAoB;AAE/D,OAAO,EAQL,aAAa,EACd,oBAAgB;AACjB,OAAO,EAAE,mBAAmB,EAAE,eAAe,EAAE,2BAAuB;AACtE,OAAO,EAAE,oBAAoB,EAAE,4BAAwB;AACvD,OAAO,EACL,+BAA+B,EAC/B,YAAY,EACZ,eAAe,EACf,eAAe,EAChB,2BAAuB;AACxB,OAAO,EACL,4BAA4B,EAC5B,mBAAmB,EACnB,kBAAkB,EACnB,oCAAgC;AACjC,OAAO,EAAE,qBAAqB,EAAE,kCAA8B;AAC9D,OAAO,EACL,gBAAgB,EAChB,iBAAiB,EACjB,sBAAsB,EACvB,0BAAsB;AACvB,OAAO,EACL,WAAW,EACX,iBAAiB,EACjB,0BAA0B,EAC3B,sCAAkC;AACnC,OAAO,EACL,mBAAmB,EACnB,gBAAgB,EAChB,oBAAoB,EACpB,gBAAgB,EAChB,gBAAgB,EAChB,yBAAyB,EACzB,2BAA2B,EAC5B,uCAAmC;AAQpC,OAAO,EAAE,mBAAmB,EAAE,UAAU,EAAE,0BAAsB;AAChE,OAAO,EAAE,kBAAkB,EAAE,+BAA2B;AACxD,OAAO,EAAE,2CAA2C,EAAE,0BAAsB;AAG5E,MAAM,QAAQ,GAAyC;IACrD,YAAY,EAAE;QACZ,kBAAkB,EAAE,IAAI;QACxB,OAAO,EAAE,KAAK;QACd,SAAS,EAAE,KAAK;QAChB,QAAQ,EAAE,IAAI;KACf;IACD,MAAM,EAAE;QACN,kBAAkB,EAAE,IAAI;QACxB,OAAO,EAAE,KAAK;QACd,SAAS,EAAE,KAAK;QAChB,QAAQ,EAAE,IAAI;KACf;IACD,qBAAqB,EAAE;QACrB,kBAAkB,EAAE,IAAI;QACxB,OAAO,EAAE,KAAK;QACd,SAAS,EAAE,KAAK;QAChB,QAAQ,EAAE,IAAI;KACf;IACD,iBAAiB,EAAE;QACjB,kBAAkB,EAAE,IAAI;QACxB,OAAO,EAAE,KAAK;QACd,SAAS,EAAE,KAAK;QAChB,QAAQ,EAAE,IAAI;KACf;IACD,mBAAmB,EAAE;QACnB,kBAAkB,EAAE,IAAI;QACxB,OAAO,EAAE,KAAK;QACd,SAAS,EAAE,KAAK;QAChB,QAAQ,EAAE,IAAI;KACf;IACD,eAAe,EAAE;QACf,kBAAkB,EAAE,IAAI;QACxB,OAAO,EAAE,KAAK;QACd,SAAS,EAAE,KAAK;QAChB,QAAQ,EAAE,IAAI;KACf;IACD,kBAAkB,EAAE;QAClB,kBAAkB,EAAE,IAAI;QACxB,OAAO,EAAE,KAAK;QACd,SAAS,EAAE,KAAK;QAChB,QAAQ,EAAE,IAAI;KACf;IACD,kBAAkB,EAAE;QAClB,kBAAkB,EAAE,IAAI;QACxB,OAAO,EAAE,KAAK;QACd,SAAS,EAAE,KAAK;QAChB,QAAQ,EAAE,IAAI;KACf;IACD,wCAAwC,EAAE;QACxC,kBAAkB,EAAE,IAAI;QACxB,OAAO,EAAE,KAAK;QACd,SAAS,EAAE,KAAK;QAChB,QAAQ,EAAE,IAAI;KACf;CACF,CAAC;AAuBF,MAAM,OAAO,gBAAiB,SAAQ,+BAA+B,EAIpE;IA2BC,YAAY,EACV,SAAS,EACT,KAAK,EACL,QAAQ,EACR,aAAa,EACb,eAAe,EACf,OAAO,EACP,MAAM,EACN,kBAAkB,EAClB,OAAO,GAmBR;QACC,KAAK,CAAC;YACJ,IAAI,EAAE,sBAAsB;YAC5B,QAAQ;YACR,SAAS;YACT,KAAK,EAAE;gBACL,GAAG,+BAA+B,EAAE;gBACpC,GAAG,KAAK;aACT;SACF,CAAC,CAAC;;QA/DL,oDAA8C;QAE9C,uDAAwC;QAE/B,6CAA0B;QAE1B,kDAAmC;QAEnC,oDAAyE;QAEzE,4CAAwB;QAExB,uDAMC;QAED,0CAAsB;QAEtB,2CAEP;QAmFF,iBAAY,GAAG,KAAK,EAAE,YAAgC,EAAE,EAAE;YACxD,MAAM,uBAAA,IAAI,2CAAmB,MAAvB,IAAI,EAAoB,YAAY,CAAC,CAAC;QAC9C,CAAC,CAAC;QAEF,mCAA8B,GAAG,KAAK,EACpC,cAEC,EACD,OAAsC,EACtC,EAAE;YACF,uBAAA,IAAI,iDAAyB,MAA7B,IAAI,EAA0B,cAAc,CAAC,CAAC;YAC9C,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,mBAAmB,CAAC,CAAC;YACjD,MAAM,mBAAmB,GAAG;gBAC1B,GAAG,+BAA+B,CAAC,YAAY;gBAC/C,GAAG,cAAc;aAClB,CAAC;YACF,IAAI,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE;gBACpB,KAAK,CAAC,YAAY,GAAG,mBAAmB,CAAC;YAC3C,CAAC,CAAC,CAAC;YAEH,MAAM,uBAAA,IAAI,iDAAyB,MAA7B,IAAI,EAA0B,mBAAmB,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE,CACvE,OAAO,CAAC,IAAI,CAAC,sCAAsC,EAAE,KAAK,CAAC,CAC5D,CAAC;YAEF,IAAI,mBAAmB,CAAC,mBAAmB,CAAC,EAAE;gBAC5C,uBAAA,IAAI,wCAAuB,IAAI,CAAC,GAAG,EAAE,MAAA,CAAC;gBACtC,MAAM,cAAc,GAAG,uBAAA,IAAI,+EAA0B,MAA9B,IAAI,CAA4B,EAAE,aAAa,CAAC;gBAEvE,IAAI,eAAoC,CAAC;gBACzC,IAAI,eAAe,CAAC,mBAAmB,CAAC,UAAU,CAAC,EAAE;oBACnD,mEAAmE;oBACnE,eAAe,GAAG,cAAc,CAAC,eAAe,CAAC;iBAClD;qBAAM,IAAI,cAAc,EAAE,MAAM,EAAE,QAAQ,CAAC,UAAU,CAAC,EAAE;oBACvD,yEAAyE;oBACzE,mIAAmI;oBACnI,eAAe,GAAG,IAAI,CAAC;iBACxB;qBAAM;oBACL,IAAI;wBACF,8DAA8D;wBAC9D,eAAe;4BACb,cAAc,CAAC,eAAe;gCAC9B,CAAC,CAAC,MAAM,uBAAA,IAAI,8CAAsB,MAA1B,IAAI,EAAuB,mBAAmB,CAAC,CAAC,CAAC;qBAC5D;oBAAC,OAAO,KAAK,EAAE;wBACd,OAAO,CAAC,IAAI,CAAC,yBAAyB,EAAE,KAAK,CAAC,CAAC;wBAC/C,eAAe,GAAG,IAAI,CAAC;qBACxB;iBACF;gBAED,MAAM,eAAe,GAAG,uBAAA,IAAI,iFAA4B,MAAhC,IAAI,CAA8B,CAAC;gBAC3D,qEAAqE;gBACrE,IAAI,CAAC,sBAAsB,EAAE,CAAC;gBAC9B,IAAI,CAAC,YAAY,CAAC;oBAChB,eAAe;oBACf,mBAAmB,EAAE;wBACnB,GAAG,mBAAmB;wBACtB,eAAe;qBAChB;oBACD,OAAO;iBACR,CAAC,CAAC;aACJ;QACH,CAAC,CAAC;QAEF;;;;;;;;WAQG;QACH,gBAAW,GAAG,KAAK,EACjB,YAAiC,EACjC,cAAkC,IAAI,EACtC,YAA8B,IAAI,EACmB,EAAE;YACvD,MAAM,kBAAkB,GAAG,qBAAqB,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;YACvE,mFAAmF;YACnF,MAAM,qBAAqB,GAAG,SAAS;gBACrC,CAAC,CAAC,kBAAkB,CAAC,qBAAqB,EAAE,CAAC,SAAS,CAAC;gBACvD,CAAC,CAAC,SAAS,CAAC;YAEd,wEAAwE;YACxE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,kBAAkB,EAAE,GAAG,MAAM,iBAAiB,CACxE,qBAAqB;gBACnB,CAAC,CAAC,EAAE,GAAG,YAAY,EAAE,GAAG,qBAAqB,EAAE;gBAC/C,CAAC,CAAC,YAAY,EAChB,WAAW,EACX,uBAAA,IAAI,kCAAU,EACd,uBAAA,IAAI,iCAAS,EACb,uBAAA,IAAI,gCAAQ,CAAC,sBAAsB,IAAI,wBAAwB,EAC/D,SAAS,EACT,uBAAA,IAAI,uCAAe,CACpB,CAAC;YAEF,uBAAA,IAAI,yDAAiC,MAArC,IAAI,EAAkC,kBAAkB,CAAC,CAAC;YAE1D,MAAM,cAAc,GAAG,MAAM,kBAAkB,CAC7C,UAAU,EACV,IAAI,CAAC,eAAe,EACpB,uBAAA,IAAI,yCAAiB,EACrB,uBAAA,IAAI,mFAA8B,MAAlC,IAAI,EAA+B,YAAY,CAAC,aAAa,CAAC,CAC/D,CAAC;YAEF,OAAO,UAAU,CAAC,cAAc,EAAE,SAAS,CAAC,CAAC;QAC/C,CAAC,CAAC;QAEO,4DAAmC,CAC1C,kBAA4B,EAC5B,EAAE;YACF,IAAI,kBAAkB,CAAC,MAAM,KAAK,CAAC,EAAE;gBACnC,OAAO;aACR;YACD,IAAI,CAAC,2BAA2B,CAC9B,0BAA0B,CAAC,sBAAsB,EACjD;gBACE,QAAQ,EAAE,kBAAkB;aAC7B,CACF,CAAC;QACJ,CAAC,EAAC;QAEO,mDAA0B,GAAG,EAAE;YACtC,OAAO;gBACL,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,0CAA0C,CAAC;gBACxE,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,iCAAiC,CAAC;gBAC/D,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,+BAA+B,CAAC;gBAC7D,GAAG,IAAI,CAAC,KAAK;aACd,CAAC;QACJ,CAAC,EAAC;QAEF;;;;;;;;;WASG;QACM,oDAA2B,KAAK,EAAE,EACzC,UAAU,EACV,eAAe,EACf,WAAW,EACX,gBAAgB,GACa,EAAE,EAAE;YACjC,MAAM,QAAQ,GAAuB,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC;YACjD,MAAM,mBAAmB,GAAG,uBAAA,IAAI,gDAAwB,MAA5B,IAAI,CAA0B,CAAC;YAC3D,IACE,eAAe;gBACf,UAAU;gBACV,CAAC,gCAAgC,CAC/B,mBAAmB,EACnB,UAAU,EACV,eAAe,CAChB,EACD;gBACA,mBAAmB,CAAC,eAAe,EAAE,UAAU,CAAC,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CACnE,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,CACtB,CAAC;aACH;YACD,IACE,gBAAgB;gBAChB,WAAW;gBACX,CAAC,gCAAgC,CAC/B,mBAAmB,EACnB,WAAW,EACX,gBAAgB,CACjB,EACD;gBACA,mBAAmB,CAAC,gBAAgB,EAAE,WAAW,CAAC,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CACrE,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,CACtB,CAAC;aACH;YAED,MAAM,QAAQ,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CACxC,iCAAiC,CAClC,CAAC,eAAe,CAAC;YAElB,IAAI,QAAQ,CAAC,IAAI,KAAK,CAAC,EAAE;gBACvB,OAAO;aACR;YAED,MAAM,eAAe,GAAG,MAAM,gBAAgB,CAAC;gBAC7C,QAAQ;gBACR,UAAU,EAAE,IAAI,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC;gBAC/B,QAAQ,EAAE,uBAAA,IAAI,kCAAU;gBACxB,aAAa,EAAE,uBAAA,IAAI,uCAAe;gBAClC,OAAO,EAAE,uBAAA,IAAI,iCAAS;gBACtB,MAAM,EAAE,uBAAA,IAAI,yCAAiB,EAAE,MAAM;aACtC,CAAC,CAAC;YACH,MAAM,aAAa,GAAG,eAAe,CAAC,QAAQ,EAAE,eAAe,CAAC,CAAC;YACjE,IAAI,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE;gBACpB,KAAK,CAAC,kBAAkB,GAAG;oBACzB,GAAG,KAAK,CAAC,kBAAkB;oBAC3B,GAAG,aAAa;iBACjB,CAAC;YACJ,CAAC,CAAC,CAAC;QACL,CAAC,EAAC;QAEO,iDAAwB,KAAK,EACpC,YAAiC,EACjC,EAAE;YACF,MAAM,eAAe,GAAG,kBAAkB,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC;YACpE,MAAM,QAAQ,GAAG,uBAAA,IAAI,+EAA0B,MAA9B,IAAI,CAA4B,EAAE,QAAQ,CAAC;YAC5D,MAAM,yBAAyB,GAAG,4BAA4B,CAC5D,YAAY,CAAC,eAAe,CAC7B,CAAC;YAEF,OAAO,CACL,QAAQ;gBACR,yBAAyB;gBACzB,YAAY,CAAC,cAAc;gBAC3B,eAAe;gBACf,CAAC,MAAM,oBAAoB,CACzB,QAAQ,EACR,YAAY,CAAC,aAAa,EAC1B,yBAAyB,EACzB,YAAY,CAAC,cAAc,EAC3B,eAAe,CAChB,CAAC,CACH,CAAC;QACJ,CAAC,EAAC;QAEF,yBAAoB,GAAG,CAAC,MAAoB,EAAE,EAAE;YAC9C,IAAI,CAAC,cAAc,EAAE,CAAC;YACtB,uBAAA,IAAI,yCAAiB,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;QACvC,CAAC,CAAC;QAEF,eAAU,GAAG,CAAC,MAAM,GAAG,WAAW,CAAC,UAAU,EAAE,EAAE;YAC/C,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC;YAClC,IAAI,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE;gBACpB,gGAAgG;gBAChG,KAAK,CAAC,YAAY,GAAG,+BAA+B,CAAC,YAAY,CAAC;gBAClE,KAAK,CAAC,qBAAqB;oBACzB,+BAA+B,CAAC,qBAAqB,CAAC;gBACxD,KAAK,CAAC,MAAM,GAAG,+BAA+B,CAAC,MAAM,CAAC;gBACtD,KAAK,CAAC,iBAAiB;oBACrB,+BAA+B,CAAC,iBAAiB,CAAC;gBACpD,KAAK,CAAC,mBAAmB;oBACvB,+BAA+B,CAAC,mBAAmB,CAAC;gBACtD,KAAK,CAAC,eAAe,GAAG,+BAA+B,CAAC,eAAe,CAAC;gBACxE,KAAK,CAAC,kBAAkB;oBACtB,+BAA+B,CAAC,kBAAkB,CAAC;gBACrD,KAAK,CAAC,kBAAkB;oBACtB,+BAA+B,CAAC,kBAAkB,CAAC;gBACrD,KAAK,CAAC,wCAAwC;oBAC5C,+BAA+B,CAAC,wCAAwC,CAAC;YAC7E,CAAC,CAAC,CAAC;QACL,CAAC,CAAC;QAEF;;WAEG;QACH,2BAAsB,GAAG,GAAG,EAAE;YAC5B,MAAM,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC;YACvB,MAAM,EAAE,UAAU,EAAE,GAAG,KAAK,CAAC,YAAY,CAAC;YAC1C,MAAM,kBAAkB,GAAG,qBAAqB,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;YAEvE,MAAM,mBAAmB,GAAG,UAAU;gBACpC,CAAC,CAAC,kBAAkB,CAAC,MAAM,CAAC,mBAAmB,CAAC,UAAU,CAAC,CAAC,EAAE,WAAW;gBACzE,CAAC,CAAC,SAAS,CAAC;YACd,MAAM,kBAAkB,GAAG,kBAAkB,CAAC,WAAW,CAAC;YAC1D,IAAI,CAAC,iBAAiB,CAAC,mBAAmB,IAAI,kBAAkB,CAAC,CAAC;QACpE,CAAC,CAAC;QAEO,8CAAqB,KAAK,EAAE,EACnC,eAAe,EAAE,gBAAgB,EACjC,mBAAmB,EACnB,OAAO,GACY,EAAE,EAAE;YACvB,uBAAA,IAAI,yCAAiB,EAAE,KAAK,CAAC,mBAAmB,CAAC,CAAC;YAClD,uBAAA,IAAI,qCAAoB,IAAI,eAAe,EAAE,MAAA,CAAC;YAE9C,IAAI,CAAC,2BAA2B,CAC9B,0BAA0B,CAAC,eAAe,EAC1C,OAAO,CACR,CAAC;YAEF,MAAM,EAAE,UAAU,EAAE,eAAe,EAAE,GAAG,qBAAqB,CAC3D,IAAI,CAAC,eAAe,CACrB,CAAC;YACF,MAAM,YAAY,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;YAEzC,IAAI,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE;gBACpB,KAAK,CAAC,YAAY,GAAG,mBAAmB,CAAC;gBACzC,KAAK,CAAC,eAAe,GAAG,+BAA+B,CAAC,eAAe,CAAC;gBACxE,KAAK,CAAC,iBAAiB,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;gBACrC,KAAK,CAAC,mBAAmB,GAAG,aAAa,CAAC,OAAO,CAAC;YACpD,CAAC,CAAC,CAAC;YAEH,IAAI;gBACF,MAAM,uBAAA,IAAI,+BAAO,MAAX,IAAI,EACR;oBACE,IAAI,EAAE,YAAY,CAChB,mBAAmB,CAAC,UAAU,EAC9B,mBAAmB,CAAC,WAAW,CAChC;wBACC,CAAC,CAAC,SAAS,CAAC,mBAAmB;wBAC/B,CAAC,CAAC,SAAS,CAAC,iBAAiB;oBAC/B,IAAI,EAAE;wBACJ,UAAU,EAAE,mBAAmB,CAAC,mBAAmB,CAAC,UAAU,CAAC;wBAC/D,WAAW,EAAE,mBAAmB,CAAC,mBAAmB,CAAC,WAAW,CAAC;qBAClE;iBACF,EACD,KAAK,IAAI,EAAE;oBACT,MAAM,eAAe,GAAG,uBAAA,IAAI,mFAA8B,MAAlC,IAAI,EAC1B,mBAAmB,CAAC,aAAa,CAClC,CAAC;oBACF,oGAAoG;oBACpG,mEAAmE;oBACnE,uBAAA,IAAI,qEAA6C,MAAjD,IAAI,EACF,mBAAmB,CAAC,UAAU,EAC9B,eAAe,CAAC,QAAQ,EAAE,IAAI,EAAE,EAAE,CACnC,CAAC;oBACF,sCAAsC;oBACtC,IAAI,YAAY,EAAE;wBAChB,MAAM,uBAAA,IAAI,8CAAsB,MAA1B,IAAI,EACR,mBAAmB,EACnB,eAAe,CAChB,CAAC;wBACF,OAAO;qBACR;oBACD,8BAA8B;oBAC9B,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,WAAW,CACnC,mBAAmB,EACnB,uBAAA,IAAI,yCAAiB,EAAE,MAAM,CAC9B,CAAC;oBACF,IAAI,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE;wBACpB,uDAAuD;wBACvD,IACE,KAAK,CAAC,kBAAkB;4BACtB,+BAA+B,CAAC,kBAAkB;4BACpD,uBAAA,IAAI,4CAAoB,EACxB;4BACA,KAAK,CAAC,qBAAqB;gCACzB,IAAI,CAAC,GAAG,EAAE,GAAG,uBAAA,IAAI,4CAAoB,CAAC;yBACzC;wBACD,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC;wBACtB,KAAK,CAAC,mBAAmB,GAAG,aAAa,CAAC,OAAO,CAAC;oBACpD,CAAC,CAAC,CAAC;gBACL,CAAC,CACF,CAAC;aACH;YAAC,OAAO,KAAK,EAAE;gBACd,yEAAyE;gBACzE,IAAI,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE;oBACpB,KAAK,CAAC,MAAM,GAAG,+BAA+B,CAAC,MAAM,CAAC;gBACxD,CAAC,CAAC,CAAC;gBACH,sBAAsB;gBACtB,MAAM,YAAY,GAAI,KAAe,CAAC,IAAI,KAAK,YAAY,CAAC;gBAC5D,IACE,YAAY;oBACZ;wBACE,WAAW,CAAC,UAAU;wBACtB,WAAW,CAAC,eAAe;wBAC3B,WAAW,CAAC,mBAAmB;qBAChC,CAAC,QAAQ,CAAC,KAAoB,CAAC,EAChC;oBACA,yDAAyD;oBACzD,OAAO;iBACR;gBAED,0CAA0C;gBAC1C,IAAI,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE;oBACpB,6EAA6E;oBAC7E,6CAA6C;oBAC7C,IAAI,YAAY,CAAC;oBACjB,IAAI;wBACF,YAAY;4BACT,KAAe,EAAE,OAAO,IAAK,KAAe,CAAC,QAAQ,EAAE,CAAC;qBAC5D;oBAAC,MAAM;wBACN,sBAAsB;qBACvB;4BAAS;wBACR,KAAK,CAAC,eAAe,GAAG,YAAY,IAAI,eAAe,CAAC;qBACzD;oBACD,KAAK,CAAC,mBAAmB,GAAG,aAAa,CAAC,KAAK,CAAC;gBAClD,CAAC,CAAC,CAAC;gBACH,4BAA4B;gBAC5B,IAAI,CAAC,2BAA2B,CAC9B,0BAA0B,CAAC,WAAW,EACtC,OAAO,CACR,CAAC;gBACF,OAAO,CAAC,GAAG,CACT,aAAa,YAAY,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,gBAAgB,EAC9D,KAAK,CACN,CAAC;aACH;YAED,qFAAqF;YACrF,IAAI,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE;gBACpB,KAAK,CAAC,kBAAkB,IAAI,CAAC,CAAC;YAChC,CAAC,CAAC,CAAC;YACH,mEAAmE;YACnE,IACE,mBAAmB,CAAC,eAAe;gBACnC,CAAC,CAAC,mBAAmB,CAAC,eAAe;oBACnC,IAAI,CAAC,KAAK,CAAC,kBAAkB,IAAI,eAAe,CAAC,EACnD;gBACA,IAAI,CAAC,cAAc,EAAE,CAAC;aACvB;QACH,CAAC,EAAC;QAEO,iDAAwB,KAAK,EACpC,mBAAwC,EACxC,eAAgC,EAChC,EAAE;YACF;;;eAGG;YACH,IAAI,kBAAkB,GAAG,CAAC,CAAC;YAE3B,MAAM,sBAAsB,CAC1B,uBAAA,IAAI,iCAAS,EACb,mBAAmB,EACnB,uBAAA,IAAI,yCAAiB,EAAE,MAAM,EAC7B,uBAAA,IAAI,kCAAU,EACd,uBAAA,IAAI,gCAAQ,CAAC,sBAAsB,IAAI,wBAAwB,EAC/D;gBACE,mBAAmB,EAAE,uBAAA,IAAI,yDAAiC;gBAC1D,oBAAoB,EAAE,KAAK,EAAE,KAAoB,EAAE,EAAE;oBACnD,MAAM,cAAc,GAAG,MAAM,kBAAkB,CAC7C,CAAC,KAAK,CAAC,EACP,IAAI,CAAC,eAAe,EACpB,uBAAA,IAAI,yCAAiB,EACrB,eAAe,CAChB,CAAC;oBACF,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE;wBAC7B,kBAAkB,IAAI,CAAC,CAAC;qBACzB;oBACD,IAAI,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE;wBACpB,6EAA6E;wBAC7E,2BAA2B;wBAC3B,yEAAyE;wBACzE,qBAAqB;wBACrB,sGAAsG;wBACtG,IAAI,kBAAkB,KAAK,CAAC,EAAE;4BAC5B,KAAK,CAAC,MAAM,GAAG,+BAA+B,CAAC,MAAM,CAAC;4BACtD,IAAI,CAAC,KAAK,CAAC,qBAAqB,IAAI,uBAAA,IAAI,4CAAoB,EAAE;gCAC5D,8DAA8D;gCAC9D,KAAK,CAAC,qBAAqB;oCACzB,IAAI,CAAC,GAAG,EAAE,GAAG,uBAAA,IAAI,4CAAoB,CAAC;6BACzC;yBACF;wBACD,KAAK,CAAC,MAAM,GAAG,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,GAAG,cAAc,CAAC,CAAC;oBACtD,CAAC,CAAC,CAAC;gBACL,CAAC;gBACD,OAAO,EAAE,GAAG,EAAE;oBACZ,IAAI,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE;wBACpB,4EAA4E;wBAC5E,4CAA4C;wBAC5C,IAAI,kBAAkB,KAAK,CAAC,EAAE;4BAC5B,KAAK,CAAC,MAAM,GAAG,+BAA+B,CAAC,MAAM,CAAC;yBACvD;wBACD,KAAK,CAAC,mBAAmB,GAAG,aAAa,CAAC,OAAO,CAAC;oBACpD,CAAC,CAAC,CAAC;gBACL,CAAC;aACF,EACD,uBAAA,IAAI,uCAAe,CACpB,CAAC;QACJ,CAAC,EAAC;QAEO,wEAA+C,KAAK,EAC3D,UAA6C,EAC7C,MAAe,EACf,EAAE;YACF,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,EAAE;gBAC3C,OAAO;aACR;YACD,MAAM,wCAAwC,GAC5C,MAAM,2CAA2C,CAC/C,MAAM,EACN,IAAI,CAAC,eAAe,CACrB,CAAC;YACJ,IAAI,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE;gBACpB,KAAK,CAAC,wCAAwC;oBAC5C,wCAAwC,CAAC;YAC7C,CAAC,CAAC,CAAC;QACL,CAAC,EAAC;QAmCO,6CAAoB,GAG3B,EAAE;YACF,MAAM,cAAc,GAAG,mBAAmB,CACxC,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,UAAU;gBAChC,uBAAA,IAAI,+EAA0B,MAA9B,IAAI,CAA4B,CAAC,aAAa,CAAC,OAAO,CACzD,CAAC;YACF,OAAO,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,cAAc,CAAC,CAAC;QACnE,CAAC,EAAC;QAEO,+CAAsB,GAM7B,EAAE;YACF,OAAO;gBACL,cAAc,EAAE,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,QAAQ;gBAChD,SAAS,EAAE,oBAAoB,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC;gBACxD,eAAe,EAAE,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,QAAQ,CAAC;aACpE,CAAC;QACJ,CAAC,EAAC;QAEO,8CAAqB,GAG5B,EAAE;YACF,OAAO;gBACL,YAAY,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM;gBACtC,WAAW,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAC/C,mBAAmB,CAAC,KAAK,CAAC,CAC3B;gBACD,4BAA4B,EAAE,IAAI,CAAC,KAAK,CAAC,qBAAqB,IAAI,CAAC;aACpE,CAAC;QACJ,CAAC,EAAC;QAEO,+CAAsB,CAI7B,SAAY,EACZ,oBAAgE,EAC7B,EAAE;YACrC,MAAM,cAAc,GAAG;gBACrB,GAAG,oBAAoB;gBACvB,WAAW,EAAE,iBAAiB,CAAC,aAAa;aAC7C,CAAC;YACF,QAAQ,SAAS,EAAE;gBACjB,KAAK,0BAA0B,CAAC,aAAa,CAAC;gBAC9C,KAAK,0BAA0B,CAAC,UAAU;oBACxC,OAAO;wBACL,GAAG,uBAAA,IAAI,0CAAkB,MAAtB,IAAI,CAAoB;wBAC3B,GAAG,cAAc;qBAClB,CAAC;gBACJ,KAAK,0BAA0B,CAAC,sBAAsB;oBACpD,OAAO;wBACL,GAAG,uBAAA,IAAI,0CAAkB,MAAtB,IAAI,CAAoB;wBAC3B,aAAa,EAAE,IAAI,CAAC,KAAK,CAAC,kBAAkB;wBAC5C,GAAG,cAAc;qBAClB,CAAC;gBACJ,KAAK,0BAA0B,CAAC,cAAc;oBAC5C,OAAO;wBACL,GAAG,uBAAA,IAAI,0CAAkB,MAAtB,IAAI,CAAoB;wBAC3B,GAAG,uBAAA,IAAI,4CAAoB,MAAxB,IAAI,CAAsB;wBAC7B,GAAG,uBAAA,IAAI,2CAAmB,MAAvB,IAAI,CAAqB;wBAC5B,kBAAkB,EAAE,gBAAgB,CAClC,uBAAA,IAAI,mFAA8B,MAAlC,IAAI,CAAgC,CACrC;wBACD,aAAa,EAAE,IAAI,CAAC,KAAK,CAAC,kBAAkB;wBAC5C,GAAG,cAAc;qBAClB,CAAC;gBACJ,KAAK,0BAA0B,CAAC,eAAe;oBAC7C,OAAO;wBACL,GAAG,uBAAA,IAAI,0CAAkB,MAAtB,IAAI,CAAoB;wBAC3B,GAAG,uBAAA,IAAI,4CAAoB,MAAxB,IAAI,CAAsB;wBAC7B,kBAAkB,EAAE,gBAAgB,CAClC,uBAAA,IAAI,mFAA8B,MAAlC,IAAI,CAAgC,CACrC;wBACD,oBAAoB,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,eAAe;wBAC9D,GAAG,cAAc;qBAClB,CAAC;gBACJ,KAAK,0BAA0B,CAAC,WAAW;oBACzC,OAAO;wBACL,GAAG,uBAAA,IAAI,0CAAkB,MAAtB,IAAI,CAAoB;wBAC3B,GAAG,uBAAA,IAAI,4CAAoB,MAAxB,IAAI,CAAsB;wBAC7B,kBAAkB,EAAE,gBAAgB,CAClC,uBAAA,IAAI,mFAA8B,MAAlC,IAAI,CAAgC,CACrC;wBACD,aAAa,EAAE,IAAI,CAAC,KAAK,CAAC,eAAe;wBACzC,oBAAoB,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,eAAe;wBAC9D,GAAG,cAAc;qBAClB,CAAC;gBACJ,KAAK,0BAA0B,CAAC,eAAe,CAAC;gBAChD,KAAK,0BAA0B,CAAC,eAAe,CAAC;gBAChD,KAAK,0BAA0B,CAAC,aAAa;oBAC3C,OAAO;wBACL,GAAG,uBAAA,IAAI,0CAAkB,MAAtB,IAAI,CAAoB;wBAC3B,GAAG,uBAAA,IAAI,4CAAoB,MAAxB,IAAI,CAAsB;wBAC7B,GAAG,uBAAA,IAAI,2CAAmB,MAAvB,IAAI,CAAqB;wBAC5B,kBAAkB,EAAE,gBAAgB,CAClC,uBAAA,IAAI,mFAA8B,MAAlC,IAAI,CAAgC,CACrC;wBACD,GAAG,cAAc;qBAClB,CAAC;gBACJ,KAAK,0BAA0B,CAAC,MAAM,CAAC,CAAC;oBACtC,8EAA8E;oBAC9E,OAAO;wBACL,GAAG,cAAc;wBACjB,GAAG,uBAAA,IAAI,0CAAkB,MAAtB,IAAI,CAAoB;wBAC3B,GAAG,uBAAA,IAAI,4CAAoB,MAAxB,IAAI,CAAsB;wBAC7B,GAAG,uBAAA,IAAI,2CAAmB,MAAvB,IAAI,CAAqB;wBAC5B,GAAG,oBAAoB;qBACxB,CAAC;iBACH;gBACD,KAAK,0BAA0B,CAAC,yBAAyB;oBACvD,OAAO,cAAc,CAAC;gBACxB,2EAA2E;gBAC3E,6DAA6D;gBAC7D,KAAK,0BAA0B,CAAC,SAAS,CAAC;gBAC1C,KAAK,0BAA0B,CAAC,SAAS;oBACvC,OAAO,oBAAoB,CAAC;gBAC9B,KAAK,0BAA0B,CAAC,YAAY,CAAC;gBAC7C;oBACE,OAAO,cAAc,CAAC;aACzB;QACH,CAAC,EAAC;QAEO,oDAA2B,CAClC,cAA4C,EAC5C,EAAE;YACF,MAAM,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE;gBACtD,MAAM,QAAQ,GAAG,yBAAyB,CAAC,GAAyB,CAAC,CAAC;gBACtE,MAAM,UAAU,GACd,2BAA2B,CAAC,GAAyB,CAAC,EAAE,CACtD,cAAc,CACf,CAAC;gBACJ,IACE,QAAQ;oBACR,UAAU,KAAK,SAAS;oBACxB,KAAK,KAAK,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,GAAgC,CAAC,EACnE;oBACA,IAAI,CAAC,2BAA2B,CAC9B,0BAA0B,CAAC,YAAY,EACvC;wBACE,KAAK,EAAE,QAAQ;wBACf,WAAW,EAAE,UAAU;qBACxB,CACF,CAAC;iBACH;YACH,CAAC,CAAC,CAAC;QACL,CAAC,EAAC;QAEF;;;;;;;;;WASG;QACH,gCAA2B,GAAG,CAI5B,SAAY,EACZ,oBAAgE,EAChE,EAAE;YACF,IAAI;gBACF,MAAM,0BAA0B,GAAG,uBAAA,IAAI,4CAAoB,MAAxB,IAAI,EACrC,SAAS,EACT,oBAAoB,CACrB,CAAC;gBAEF,uBAAA,IAAI,4CAAoB,MAAxB,IAAI,EAAqB,SAAS,EAAE,0BAA0B,CAAC,CAAC;aACjE;YAAC,OAAO,KAAK,EAAE;gBACd,OAAO,CAAC,KAAK,CACX,oDAAoD,EACpD,KAAK,CACN,CAAC;aACH;QACH,CAAC,CAAC;QAEF;;;;;WAKG;QACH,4BAAuB,GAAG,KAAK,EAC7B,eAAuB,EACvB,OAAY,EACK,EAAE;YACnB,MAAM,QAAQ,GAAG,uBAAA,IAAI,+EAA0B,MAA9B,IAAI,CAA4B,EAAE,QAAQ,CAAC;YAC5D,IAAI,CAAC,QAAQ,EAAE;gBACb,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;aACtC;YAED,MAAM,cAAc,GAAG,IAAI,YAAY,CAAC,QAAQ,CAAC,CAAC;YAClD,MAAM,QAAQ,GAAG,IAAI,QAAQ,CAAC,eAAe,EAAE,QAAQ,EAAE,cAAc,CAAC,CAAC;YACzE,MAAM,SAAS,GAAc,MAAM,QAAQ,CAAC,SAAS,CACnD,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,aAAa,EACrC,+BAA+B,CAAC,OAAO,CAAC,CACzC,CAAC;YACF,OAAO,SAAS,CAAC,QAAQ,EAAE,CAAC;QAC9B,CAAC,CAAC;QA3vBA,IAAI,CAAC,iBAAiB,CAAC,mBAAmB,CAAC,CAAC;QAE5C,uBAAA,IAAI,qCAAoB,IAAI,eAAe,EAAE,MAAA,CAAC;QAC9C,uBAAA,IAAI,qCAAoB,eAAe,MAAA,CAAC;QACxC,uBAAA,IAAI,8BAAa,QAAQ,MAAA,CAAC;QAC1B,uBAAA,IAAI,mCAAkB,aAAa,MAAA,CAAC;QACpC,uBAAA,IAAI,6BAAY,OAAO,MAAA,CAAC;QACxB,uBAAA,IAAI,wCAAuB,kBAAkB,MAAA,CAAC;QAC9C,uBAAA,IAAI,4BAAW,MAAM,IAAI,EAAE,MAAA,CAAC;QAC5B,uBAAA,IAAI,2BAAU,OAAO,IAAK,CAAC,CAAC,QAAQ,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAmB,MAAA,CAAC;QAEvE,2BAA2B;QAC3B,IAAI,CAAC,eAAe,CAAC,qBAAqB,CACxC,GAAG,sBAAsB,yBAAyB,EAClD,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,IAAI,CAAC,CACvC,CAAC;QACF,IAAI,CAAC,eAAe,CAAC,qBAAqB,CACxC,GAAG,sBAAsB,iCAAiC,EAC1D,IAAI,CAAC,8BAA8B,CAAC,IAAI,CAAC,IAAI,CAAC,CAC/C,CAAC;QACF,IAAI,CAAC,eAAe,CAAC,qBAAqB,CACxC,GAAG,sBAAsB,aAAa,EACtC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAC3B,CAAC;QACF,IAAI,CAAC,eAAe,CAAC,qBAAqB,CACxC,GAAG,sBAAsB,0BAA0B,EACnD,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,IAAI,CAAC,CACxC,CAAC;QACF,IAAI,CAAC,eAAe,CAAC,qBAAqB,CACxC,GAAG,sBAAsB,8BAA8B,EACvD,IAAI,CAAC,2BAA2B,CAAC,IAAI,CAAC,IAAI,CAAC,CAC5C,CAAC;QACF,IAAI,CAAC,eAAe,CAAC,qBAAqB,CACxC,GAAG,sBAAsB,uBAAuB,EAChD,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,CACrC,CAAC;QACF,IAAI,CAAC,eAAe,CAAC,qBAAqB,CACxC,GAAG,sBAAsB,cAAc,EACvC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAC5B,CAAC;IACJ,CAAC;CAotBF;+vCAjPG,aAAoD;IAEpD,MAAM,YAAY,GAAG,aAAa,IAAI,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,aAAa,CAAC;IAC5E,IAAI,CAAC,YAAY,EAAE;QACjB,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;KAChD;IACD,MAAM,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CAC/C,wCAAwC,EACxC,YAAY,CACb,CAAC;IACF,IAAI,CAAC,eAAe,EAAE;QACpB,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;KACtC;IACD,OAAO,eAAe,CAAC;AACzB,CAAC;IAGC,MAAM,EAAE,uBAAuB,EAAE,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CAC3D,4BAA4B,CAC7B,CAAC;IACF,OAAO,uBAAuB,CAAC;AACjC,CAAC;IAGC,MAAM,uBAAuB,GAAG,uBAAA,IAAI,iFAA4B,MAAhC,IAAI,CAA8B,CAAC;IACnE,MAAM,aAAa,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CAC7C,wCAAwC,EACxC,uBAAuB,CACxB,CAAC;IACF,OAAO,aAAa,CAAC;AACvB,CAAC","sourcesContent":["import type { BigNumber } from '@ethersproject/bignumber';\nimport { Contract } from '@ethersproject/contracts';\nimport { Web3Provider } from '@ethersproject/providers';\nimport type { StateMetadata } from '@metamask/base-controller';\nimport type { TraceCallback } from '@metamask/controller-utils';\nimport type { InternalAccount } from '@metamask/keyring-internal-api';\nimport { abiERC20 } from '@metamask/metamask-eth-abis';\nimport type { NetworkClientId } from '@metamask/network-controller';\nimport { StaticIntervalPollingController } from '@metamask/polling-controller';\nimport type { TransactionController } from '@metamask/transaction-controller';\nimport type { CaipAssetType, Hex } from '@metamask/utils';\n\nimport type { BridgeClientId } from './constants/bridge';\nimport {\n BRIDGE_CONTROLLER_NAME,\n BRIDGE_PROD_API_BASE_URL,\n DEFAULT_BRIDGE_CONTROLLER_STATE,\n METABRIDGE_CHAIN_TO_ADDRESS_MAP,\n REFRESH_INTERVAL_MS,\n} from './constants/bridge';\nimport { TraceName } from './constants/traces';\nimport { selectIsAssetExchangeRateInState } from './selectors';\nimport type { QuoteRequest } from './types';\nimport {\n type L1GasFees,\n type GenericQuoteRequest,\n type NonEvmFees,\n type QuoteResponse,\n type BridgeControllerState,\n type BridgeControllerMessenger,\n type FetchFunction,\n RequestStatus,\n} from './types';\nimport { getAssetIdsForToken, toExchangeRates } from './utils/assets';\nimport { hasSufficientBalance } from './utils/balance';\nimport {\n getDefaultBridgeControllerState,\n isCrossChain,\n isNonEvmChainId,\n isSolanaChainId,\n} from './utils/bridge';\nimport {\n formatAddressToCaipReference,\n formatChainIdToCaip,\n formatChainIdToHex,\n} from './utils/caip-formatters';\nimport { getBridgeFeatureFlags } from './utils/feature-flags';\nimport {\n fetchAssetPrices,\n fetchBridgeQuotes,\n fetchBridgeQuoteStream,\n} from './utils/fetch';\nimport {\n AbortReason,\n MetricsActionType,\n UnifiedSwapBridgeEventName,\n} from './utils/metrics/constants';\nimport {\n formatProviderLabel,\n getRequestParams,\n getSwapTypeFromQuote,\n isCustomSlippage,\n isHardwareWallet,\n toInputChangedPropertyKey,\n toInputChangedPropertyValue,\n} from './utils/metrics/properties';\nimport type {\n QuoteFetchData,\n RequestMetadata,\n RequestParams,\n RequiredEventContextFromClient,\n} from './utils/metrics/types';\nimport { type CrossChainSwapsEventProperties } from './utils/metrics/types';\nimport { isValidQuoteRequest, sortQuotes } from './utils/quote';\nimport { appendFeesToQuotes } from './utils/quote-fees';\nimport { getMinimumBalanceForRentExemptionInLamports } from './utils/snaps';\nimport type { FeatureId } from './utils/validators';\n\nconst metadata: StateMetadata<BridgeControllerState> = {\n quoteRequest: {\n includeInStateLogs: true,\n persist: false,\n anonymous: false,\n usedInUi: true,\n },\n quotes: {\n includeInStateLogs: true,\n persist: false,\n anonymous: false,\n usedInUi: true,\n },\n quotesInitialLoadTime: {\n includeInStateLogs: true,\n persist: false,\n anonymous: false,\n usedInUi: true,\n },\n quotesLastFetched: {\n includeInStateLogs: true,\n persist: false,\n anonymous: false,\n usedInUi: true,\n },\n quotesLoadingStatus: {\n includeInStateLogs: true,\n persist: false,\n anonymous: false,\n usedInUi: true,\n },\n quoteFetchError: {\n includeInStateLogs: true,\n persist: false,\n anonymous: false,\n usedInUi: true,\n },\n quotesRefreshCount: {\n includeInStateLogs: true,\n persist: false,\n anonymous: false,\n usedInUi: true,\n },\n assetExchangeRates: {\n includeInStateLogs: true,\n persist: false,\n anonymous: false,\n usedInUi: true,\n },\n minimumBalanceForRentExemptionInLamports: {\n includeInStateLogs: true,\n persist: false,\n anonymous: false,\n usedInUi: true,\n },\n};\n\n/**\n * The input to start polling for the {@link BridgeController}\n *\n * @param networkClientId - The network client ID of the selected network\n * @param updatedQuoteRequest - The updated quote request\n * @param context - The context contains properties that can't be populated by the\n * controller and need to be provided by the client for analytics\n */\ntype BridgePollingInput = {\n networkClientId: NetworkClientId;\n updatedQuoteRequest: GenericQuoteRequest;\n context: Pick<\n RequiredEventContextFromClient,\n UnifiedSwapBridgeEventName.QuotesError\n >[UnifiedSwapBridgeEventName.QuotesError] &\n Pick<\n RequiredEventContextFromClient,\n UnifiedSwapBridgeEventName.QuotesRequested\n >[UnifiedSwapBridgeEventName.QuotesRequested];\n};\n\nexport class BridgeController extends StaticIntervalPollingController<BridgePollingInput>()<\n typeof BRIDGE_CONTROLLER_NAME,\n BridgeControllerState,\n BridgeControllerMessenger\n> {\n #abortController: AbortController | undefined;\n\n #quotesFirstFetched: number | undefined;\n\n readonly #clientId: BridgeClientId;\n\n readonly #clientVersion: string | undefined;\n\n readonly #getLayer1GasFee: typeof TransactionController.prototype.getLayer1GasFee;\n\n readonly #fetchFn: FetchFunction;\n\n readonly #trackMetaMetricsFn: <\n T extends\n (typeof UnifiedSwapBridgeEventName)[keyof typeof UnifiedSwapBridgeEventName],\n >(\n eventName: T,\n properties: CrossChainSwapsEventProperties<T>,\n ) => void;\n\n readonly #trace: TraceCallback;\n\n readonly #config: {\n customBridgeApiBaseUrl?: string;\n };\n\n constructor({\n messenger,\n state,\n clientId,\n clientVersion,\n getLayer1GasFee,\n fetchFn,\n config,\n trackMetaMetricsFn,\n traceFn,\n }: {\n messenger: BridgeControllerMessenger;\n state?: Partial<BridgeControllerState>;\n clientId: BridgeClientId;\n clientVersion?: string;\n getLayer1GasFee: typeof TransactionController.prototype.getLayer1GasFee;\n fetchFn: FetchFunction;\n config?: {\n customBridgeApiBaseUrl?: string;\n };\n trackMetaMetricsFn: <\n T extends\n (typeof UnifiedSwapBridgeEventName)[keyof typeof UnifiedSwapBridgeEventName],\n >(\n eventName: T,\n properties: CrossChainSwapsEventProperties<T>,\n ) => void;\n traceFn?: TraceCallback;\n }) {\n super({\n name: BRIDGE_CONTROLLER_NAME,\n metadata,\n messenger,\n state: {\n ...getDefaultBridgeControllerState(),\n ...state,\n },\n });\n\n this.setIntervalLength(REFRESH_INTERVAL_MS);\n\n this.#abortController = new AbortController();\n this.#getLayer1GasFee = getLayer1GasFee;\n this.#clientId = clientId;\n this.#clientVersion = clientVersion;\n this.#fetchFn = fetchFn;\n this.#trackMetaMetricsFn = trackMetaMetricsFn;\n this.#config = config ?? {};\n this.#trace = traceFn ?? (((_request, fn) => fn?.()) as TraceCallback);\n\n // Register action handlers\n this.messagingSystem.registerActionHandler(\n `${BRIDGE_CONTROLLER_NAME}:setChainIntervalLength`,\n this.setChainIntervalLength.bind(this),\n );\n this.messagingSystem.registerActionHandler(\n `${BRIDGE_CONTROLLER_NAME}:updateBridgeQuoteRequestParams`,\n this.updateBridgeQuoteRequestParams.bind(this),\n );\n this.messagingSystem.registerActionHandler(\n `${BRIDGE_CONTROLLER_NAME}:resetState`,\n this.resetState.bind(this),\n );\n this.messagingSystem.registerActionHandler(\n `${BRIDGE_CONTROLLER_NAME}:getBridgeERC20Allowance`,\n this.getBridgeERC20Allowance.bind(this),\n );\n this.messagingSystem.registerActionHandler(\n `${BRIDGE_CONTROLLER_NAME}:trackUnifiedSwapBridgeEvent`,\n this.trackUnifiedSwapBridgeEvent.bind(this),\n );\n this.messagingSystem.registerActionHandler(\n `${BRIDGE_CONTROLLER_NAME}:stopPollingForQuotes`,\n this.stopPollingForQuotes.bind(this),\n );\n this.messagingSystem.registerActionHandler(\n `${BRIDGE_CONTROLLER_NAME}:fetchQuotes`,\n this.fetchQuotes.bind(this),\n );\n }\n\n _executePoll = async (pollingInput: BridgePollingInput) => {\n await this.#fetchBridgeQuotes(pollingInput);\n };\n\n updateBridgeQuoteRequestParams = async (\n paramsToUpdate: Partial<GenericQuoteRequest> & {\n walletAddress: GenericQuoteRequest['walletAddress'];\n },\n context: BridgePollingInput['context'],\n ) => {\n this.#trackInputChangedEvents(paramsToUpdate);\n this.resetState(AbortReason.QuoteRequestUpdated);\n const updatedQuoteRequest = {\n ...DEFAULT_BRIDGE_CONTROLLER_STATE.quoteRequest,\n ...paramsToUpdate,\n };\n this.update((state) => {\n state.quoteRequest = updatedQuoteRequest;\n });\n\n await this.#fetchAssetExchangeRates(updatedQuoteRequest).catch((error) =>\n console.warn('Failed to fetch asset exchange rates', error),\n );\n\n if (isValidQuoteRequest(updatedQuoteRequest)) {\n this.#quotesFirstFetched = Date.now();\n const providerConfig = this.#getSelectedNetworkClient()?.configuration;\n\n let insufficientBal: boolean | undefined;\n if (isNonEvmChainId(updatedQuoteRequest.srcChainId)) {\n // If the source chain is not an EVM network, use value from params\n insufficientBal = paramsToUpdate.insufficientBal;\n } else if (providerConfig?.rpcUrl?.includes('tenderly')) {\n // If the rpcUrl is a tenderly fork (e2e tests), set insufficientBal=true\n // The bridge-api filters out quotes if the balance on mainnet is insufficient so this override allows quotes to always be returned\n insufficientBal = true;\n } else {\n try {\n // Otherwise query the src token balance from the RPC provider\n insufficientBal =\n paramsToUpdate.insufficientBal ??\n !(await this.#hasSufficientBalance(updatedQuoteRequest));\n } catch (error) {\n console.warn('Failed to fetch balance', error);\n insufficientBal = true;\n }\n }\n\n const networkClientId = this.#getSelectedNetworkClientId();\n // Set refresh rate based on the source chain before starting polling\n this.setChainIntervalLength();\n this.startPolling({\n networkClientId,\n updatedQuoteRequest: {\n ...updatedQuoteRequest,\n insufficientBal,\n },\n context,\n });\n }\n };\n\n /**\n * Fetches quotes for specified request without updating the controller state\n * This method does not start polling for quotes and does not emit UnifiedSwapBridge events\n *\n * @param quoteRequest - The parameters for quote requests to fetch\n * @param abortSignal - The abort signal to cancel all the requests\n * @param featureId - The feature ID that maps to quoteParam overrides from LD\n * @returns A list of validated quotes\n */\n fetchQuotes = async (\n quoteRequest: GenericQuoteRequest,\n abortSignal: AbortSignal | null = null,\n featureId: FeatureId | null = null,\n ): Promise<(QuoteResponse & L1GasFees & NonEvmFees)[]> => {\n const bridgeFeatureFlags = getBridgeFeatureFlags(this.messagingSystem);\n // If featureId is specified, retrieve the quoteRequestOverrides for that featureId\n const quoteRequestOverrides = featureId\n ? bridgeFeatureFlags.quoteRequestOverrides?.[featureId]\n : undefined;\n\n // If quoteRequestOverrides is specified, merge it with the quoteRequest\n const { quotes: baseQuotes, validationFailures } = await fetchBridgeQuotes(\n quoteRequestOverrides\n ? { ...quoteRequest, ...quoteRequestOverrides }\n : quoteRequest,\n abortSignal,\n this.#clientId,\n this.#fetchFn,\n this.#config.customBridgeApiBaseUrl ?? BRIDGE_PROD_API_BASE_URL,\n featureId,\n this.#clientVersion,\n );\n\n this.#trackResponseValidationFailures(validationFailures);\n\n const quotesWithFees = await appendFeesToQuotes(\n baseQuotes,\n this.messagingSystem,\n this.#getLayer1GasFee,\n this.#getMultichainSelectedAccount(quoteRequest.walletAddress),\n );\n\n return sortQuotes(quotesWithFees, featureId);\n };\n\n readonly #trackResponseValidationFailures = (\n validationFailures: string[],\n ) => {\n if (validationFailures.length === 0) {\n return;\n }\n this.trackUnifiedSwapBridgeEvent(\n UnifiedSwapBridgeEventName.QuotesValidationFailed,\n {\n failures: validationFailures,\n },\n );\n };\n\n readonly #getExchangeRateSources = () => {\n return {\n ...this.messagingSystem.call('MultichainAssetsRatesController:getState'),\n ...this.messagingSystem.call('CurrencyRateController:getState'),\n ...this.messagingSystem.call('TokenRatesController:getState'),\n ...this.state,\n };\n };\n\n /**\n * Fetches the exchange rates for the assets in the quote request if they are not already in the state\n * In addition to the selected tokens, this also fetches the native asset for the source and destination chains\n *\n * @param quoteRequest - The quote request\n * @param quoteRequest.srcChainId - The source chain ID\n * @param quoteRequest.srcTokenAddress - The source token address\n * @param quoteRequest.destChainId - The destination chain ID\n * @param quoteRequest.destTokenAddress - The destination token address\n */\n readonly #fetchAssetExchangeRates = async ({\n srcChainId,\n srcTokenAddress,\n destChainId,\n destTokenAddress,\n }: Partial<GenericQuoteRequest>) => {\n const assetIds: Set<CaipAssetType> = new Set([]);\n const exchangeRateSources = this.#getExchangeRateSources();\n if (\n srcTokenAddress &&\n srcChainId &&\n !selectIsAssetExchangeRateInState(\n exchangeRateSources,\n srcChainId,\n srcTokenAddress,\n )\n ) {\n getAssetIdsForToken(srcTokenAddress, srcChainId).forEach((assetId) =>\n assetIds.add(assetId),\n );\n }\n if (\n destTokenAddress &&\n destChainId &&\n !selectIsAssetExchangeRateInState(\n exchangeRateSources,\n destChainId,\n destTokenAddress,\n )\n ) {\n getAssetIdsForToken(destTokenAddress, destChainId).forEach((assetId) =>\n assetIds.add(assetId),\n );\n }\n\n const currency = this.messagingSystem.call(\n 'CurrencyRateController:getState',\n ).currentCurrency;\n\n if (assetIds.size === 0) {\n return;\n }\n\n const pricesByAssetId = await fetchAssetPrices({\n assetIds,\n currencies: new Set([currency]),\n clientId: this.#clientId,\n clientVersion: this.#clientVersion,\n fetchFn: this.#fetchFn,\n signal: this.#abortController?.signal,\n });\n const exchangeRates = toExchangeRates(currency, pricesByAssetId);\n this.update((state) => {\n state.assetExchangeRates = {\n ...state.assetExchangeRates,\n ...exchangeRates,\n };\n });\n };\n\n readonly #hasSufficientBalance = async (\n quoteRequest: GenericQuoteRequest,\n ) => {\n const srcChainIdInHex = formatChainIdToHex(quoteRequest.srcChainId);\n const provider = this.#getSelectedNetworkClient()?.provider;\n const normalizedSrcTokenAddress = formatAddressToCaipReference(\n quoteRequest.srcTokenAddress,\n );\n\n return (\n provider &&\n normalizedSrcTokenAddress &&\n quoteRequest.srcTokenAmount &&\n srcChainIdInHex &&\n (await hasSufficientBalance(\n provider,\n quoteRequest.walletAddress,\n normalizedSrcTokenAddress,\n quoteRequest.srcTokenAmount,\n srcChainIdInHex,\n ))\n );\n };\n\n stopPollingForQuotes = (reason?: AbortReason) => {\n this.stopAllPolling();\n this.#abortController?.abort(reason);\n };\n\n resetState = (reason = AbortReason.ResetState) => {\n this.stopPollingForQuotes(reason);\n this.update((state) => {\n // Cannot do direct assignment to state, i.e. state = {... }, need to manually assign each field\n state.quoteRequest = DEFAULT_BRIDGE_CONTROLLER_STATE.quoteRequest;\n state.quotesInitialLoadTime =\n DEFAULT_BRIDGE_CONTROLLER_STATE.quotesInitialLoadTime;\n state.quotes = DEFAULT_BRIDGE_CONTROLLER_STATE.quotes;\n state.quotesLastFetched =\n DEFAULT_BRIDGE_CONTROLLER_STATE.quotesLastFetched;\n state.quotesLoadingStatus =\n DEFAULT_BRIDGE_CONTROLLER_STATE.quotesLoadingStatus;\n state.quoteFetchError = DEFAULT_BRIDGE_CONTROLLER_STATE.quoteFetchError;\n state.quotesRefreshCount =\n DEFAULT_BRIDGE_CONTROLLER_STATE.quotesRefreshCount;\n state.assetExchangeRates =\n DEFAULT_BRIDGE_CONTROLLER_STATE.assetExchangeRates;\n state.minimumBalanceForRentExemptionInLamports =\n DEFAULT_BRIDGE_CONTROLLER_STATE.minimumBalanceForRentExemptionInLamports;\n });\n };\n\n /**\n * Sets the interval length based on the source chain\n */\n setChainIntervalLength = () => {\n const { state } = this;\n const { srcChainId } = state.quoteRequest;\n const bridgeFeatureFlags = getBridgeFeatureFlags(this.messagingSystem);\n\n const refreshRateOverride = srcChainId\n ? bridgeFeatureFlags.chains[formatChainIdToCaip(srcChainId)]?.refreshRate\n : undefined;\n const defaultRefreshRate = bridgeFeatureFlags.refreshRate;\n this.setIntervalLength(refreshRateOverride ?? defaultRefreshRate);\n };\n\n readonly #fetchBridgeQuotes = async ({\n networkClientId: _networkClientId,\n updatedQuoteRequest,\n context,\n }: BridgePollingInput) => {\n this.#abortController?.abort('New quote request');\n this.#abortController = new AbortController();\n\n this.trackUnifiedSwapBridgeEvent(\n UnifiedSwapBridgeEventName.QuotesRequested,\n context,\n );\n\n const { sseEnabled, maxRefreshCount } = getBridgeFeatureFlags(\n this.messagingSystem,\n );\n const shouldStream = Boolean(sseEnabled);\n\n this.update((state) => {\n state.quoteRequest = updatedQuoteRequest;\n state.quoteFetchError = DEFAULT_BRIDGE_CONTROLLER_STATE.quoteFetchError;\n state.quotesLastFetched = Date.now();\n state.quotesLoadingStatus = RequestStatus.LOADING;\n });\n\n try {\n await this.#trace(\n {\n name: isCrossChain(\n updatedQuoteRequest.srcChainId,\n updatedQuoteRequest.destChainId,\n )\n ? TraceName.BridgeQuotesFetched\n : TraceName.SwapQuotesFetched,\n data: {\n srcChainId: formatChainIdToCaip(updatedQuoteRequest.srcChainId),\n destChainId: formatChainIdToCaip(updatedQuoteRequest.destChainId),\n },\n },\n async () => {\n const selectedAccount = this.#getMultichainSelectedAccount(\n updatedQuoteRequest.walletAddress,\n );\n // This call is not awaited to prevent blocking quote fetching if the snap takes too long to respond\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n this.#setMinimumBalanceForRentExemptionInLamports(\n updatedQuoteRequest.srcChainId,\n selectedAccount.metadata?.snap?.id,\n );\n // Use SSE if enabled and return early\n if (shouldStream) {\n await this.#handleQuoteStreaming(\n updatedQuoteRequest,\n selectedAccount,\n );\n return;\n }\n // Otherwise use regular fetch\n const quotes = await this.fetchQuotes(\n updatedQuoteRequest,\n this.#abortController?.signal,\n );\n this.update((state) => {\n // Set the initial load time if this is the first fetch\n if (\n state.quotesRefreshCount ===\n DEFAULT_BRIDGE_CONTROLLER_STATE.quotesRefreshCount &&\n this.#quotesFirstFetched\n ) {\n state.quotesInitialLoadTime =\n Date.now() - this.#quotesFirstFetched;\n }\n state.quotes = quotes;\n state.quotesLoadingStatus = RequestStatus.FETCHED;\n });\n },\n );\n } catch (error) {\n // Reset the quotes list if the fetch fails to avoid showing stale quotes\n this.update((state) => {\n state.quotes = DEFAULT_BRIDGE_CONTROLLER_STATE.quotes;\n });\n // Ignore abort errors\n const isAbortError = (error as Error).name === 'AbortError';\n if (\n isAbortError ||\n [\n AbortReason.ResetState,\n AbortReason.NewQuoteRequest,\n AbortReason.QuoteRequestUpdated,\n ].includes(error as AbortReason)\n ) {\n // Exit the function early to prevent other state updates\n return;\n }\n\n // Update loading status and error message\n this.update((state) => {\n // The error object reference is not guaranteed to exist on mobile so reading\n // the message directly could cause an error.\n let errorMessage;\n try {\n errorMessage =\n (error as Error)?.message ?? (error as Error).toString();\n } catch {\n // Intentionally empty\n } finally {\n state.quoteFetchError = errorMessage ?? 'Unknown error';\n }\n state.quotesLoadingStatus = RequestStatus.ERROR;\n });\n // Track event and log error\n this.trackUnifiedSwapBridgeEvent(\n UnifiedSwapBridgeEventName.QuotesError,\n context,\n );\n console.log(\n `Failed to ${shouldStream ? 'stream' : 'fetch'} bridge quotes`,\n error,\n );\n }\n\n // Update refresh count after fetching, validation and fee calculation have completed\n this.update((state) => {\n state.quotesRefreshCount += 1;\n });\n // Stop polling if the maximum number of refreshes has been reached\n if (\n updatedQuoteRequest.insufficientBal ||\n (!updatedQuoteRequest.insufficientBal &&\n this.state.quotesRefreshCount >= maxRefreshCount)\n ) {\n this.stopAllPolling();\n }\n };\n\n readonly #handleQuoteStreaming = async (\n updatedQuoteRequest: GenericQuoteRequest,\n selectedAccount: InternalAccount,\n ) => {\n /**\n * Tracks the number of valid quotes received from the current stream, which is used\n * to determine when to clear the quotes list and set the initial load time\n */\n let validQuotesCounter = 0;\n\n await fetchBridgeQuoteStream(\n this.#fetchFn,\n updatedQuoteRequest,\n this.#abortController?.signal,\n this.#clientId,\n this.#config.customBridgeApiBaseUrl ?? BRIDGE_PROD_API_BASE_URL,\n {\n onValidationFailure: this.#trackResponseValidationFailures,\n onValidQuoteReceived: async (quote: QuoteResponse) => {\n const quotesWithFees = await appendFeesToQuotes(\n [quote],\n this.messagingSystem,\n this.#getLayer1GasFee,\n selectedAccount,\n );\n if (quotesWithFees.length > 0) {\n validQuotesCounter += 1;\n }\n this.update((state) => {\n // Clear previous quotes and quotes load time when first quote in the current\n // polling loop is received\n // This enables clients to continue showing the previous quotes while new\n // quotes are loading\n // Note: If there are no valid quotes until the 2nd fetch, quotesInitialLoadTime will be > refreshRate\n if (validQuotesCounter === 1) {\n state.quotes = DEFAULT_BRIDGE_CONTROLLER_STATE.quotes;\n if (!state.quotesInitialLoadTime && this.#quotesFirstFetched) {\n // Set the initial load time after the first quote is received\n state.quotesInitialLoadTime =\n Date.now() - this.#quotesFirstFetched;\n }\n }\n state.quotes = [...state.quotes, ...quotesWithFees];\n });\n },\n onClose: () => {\n this.update((state) => {\n // If there are no valid quotes in the current stream, clear the quotes list\n // to remove quotes from the previous stream\n if (validQuotesCounter === 0) {\n state.quotes = DEFAULT_BRIDGE_CONTROLLER_STATE.quotes;\n }\n state.quotesLoadingStatus = RequestStatus.FETCHED;\n });\n },\n },\n this.#clientVersion,\n );\n };\n\n readonly #setMinimumBalanceForRentExemptionInLamports = async (\n srcChainId: GenericQuoteRequest['srcChainId'],\n snapId?: string,\n ) => {\n if (!isSolanaChainId(srcChainId) || !snapId) {\n return;\n }\n const minimumBalanceForRentExemptionInLamports =\n await getMinimumBalanceForRentExemptionInLamports(\n snapId,\n this.messagingSystem,\n );\n this.update((state) => {\n state.minimumBalanceForRentExemptionInLamports =\n minimumBalanceForRentExemptionInLamports;\n });\n };\n\n #getMultichainSelectedAccount(\n walletAddress?: GenericQuoteRequest['walletAddress'],\n ) {\n const addressToUse = walletAddress ?? this.state.quoteRequest.walletAddress;\n if (!addressToUse) {\n throw new Error('Account address is required');\n }\n const selectedAccount = this.messagingSystem.call(\n 'AccountsController:getAccountByAddress',\n addressToUse,\n );\n if (!selectedAccount) {\n throw new Error('Account not found');\n }\n return selectedAccount;\n }\n\n #getSelectedNetworkClientId() {\n const { selectedNetworkClientId } = this.messagingSystem.call(\n 'NetworkController:getState',\n );\n return selectedNetworkClientId;\n }\n\n #getSelectedNetworkClient() {\n const selectedNetworkClientId = this.#getSelectedNetworkClientId();\n const networkClient = this.messagingSystem.call(\n 'NetworkController:getNetworkClientById',\n selectedNetworkClientId,\n );\n return networkClient;\n }\n\n readonly #getRequestParams = (): Omit<\n RequestParams,\n 'token_symbol_source' | 'token_symbol_destination'\n > => {\n const srcChainIdCaip = formatChainIdToCaip(\n this.state.quoteRequest.srcChainId ||\n this.#getSelectedNetworkClient().configuration.chainId,\n );\n return getRequestParams(this.state.quoteRequest, srcChainIdCaip);\n };\n\n readonly #getRequestMetadata = (): Omit<\n RequestMetadata,\n | 'stx_enabled'\n | 'usd_amount_source'\n | 'security_warnings'\n | 'is_hardware_wallet'\n > => {\n return {\n slippage_limit: this.state.quoteRequest.slippage,\n swap_type: getSwapTypeFromQuote(this.state.quoteRequest),\n custom_slippage: isCustomSlippage(this.state.quoteRequest.slippage),\n };\n };\n\n readonly #getQuoteFetchData = (): Omit<\n QuoteFetchData,\n 'best_quote_provider' | 'price_impact' | 'can_submit'\n > => {\n return {\n quotes_count: this.state.quotes.length,\n quotes_list: this.state.quotes.map(({ quote }) =>\n formatProviderLabel(quote),\n ),\n initial_load_time_all_quotes: this.state.quotesInitialLoadTime ?? 0,\n };\n };\n\n readonly #getEventProperties = <\n T extends\n (typeof UnifiedSwapBridgeEventName)[keyof typeof UnifiedSwapBridgeEventName],\n >(\n eventName: T,\n propertiesFromClient: Pick<RequiredEventContextFromClient, T>[T],\n ): CrossChainSwapsEventProperties<T> => {\n const baseProperties = {\n ...propertiesFromClient,\n action_type: MetricsActionType.SWAPBRIDGE_V1,\n };\n switch (eventName) {\n case UnifiedSwapBridgeEventName.ButtonClicked:\n case UnifiedSwapBridgeEventName.PageViewed:\n return {\n ...this.#getRequestParams(),\n ...baseProperties,\n };\n case UnifiedSwapBridgeEventName.QuotesValidationFailed:\n return {\n ...this.#getRequestParams(),\n refresh_count: this.state.quotesRefreshCount,\n ...baseProperties,\n };\n case UnifiedSwapBridgeEventName.QuotesReceived:\n return {\n ...this.#getRequestParams(),\n ...this.#getRequestMetadata(),\n ...this.#getQuoteFetchData(),\n is_hardware_wallet: isHardwareWallet(\n this.#getMultichainSelectedAccount(),\n ),\n refresh_count: this.state.quotesRefreshCount,\n ...baseProperties,\n };\n case UnifiedSwapBridgeEventName.QuotesRequested:\n return {\n ...this.#getRequestParams(),\n ...this.#getRequestMetadata(),\n is_hardware_wallet: isHardwareWallet(\n this.#getMultichainSelectedAccount(),\n ),\n has_sufficient_funds: !this.state.quoteRequest.insufficientBal,\n ...baseProperties,\n };\n case UnifiedSwapBridgeEventName.QuotesError:\n return {\n ...this.#getRequestParams(),\n ...this.#getRequestMetadata(),\n is_hardware_wallet: isHardwareWallet(\n this.#getMultichainSelectedAccount(),\n ),\n error_message: this.state.quoteFetchError,\n has_sufficient_funds: !this.state.quoteRequest.insufficientBal,\n ...baseProperties,\n };\n case UnifiedSwapBridgeEventName.AllQuotesOpened:\n case UnifiedSwapBridgeEventName.AllQuotesSorted:\n case UnifiedSwapBridgeEventName.QuoteSelected:\n return {\n ...this.#getRequestParams(),\n ...this.#getRequestMetadata(),\n ...this.#getQuoteFetchData(),\n is_hardware_wallet: isHardwareWallet(\n this.#getMultichainSelectedAccount(),\n ),\n ...baseProperties,\n };\n case UnifiedSwapBridgeEventName.Failed: {\n // Populate the properties that the error occurred before the tx was submitted\n return {\n ...baseProperties,\n ...this.#getRequestParams(),\n ...this.#getRequestMetadata(),\n ...this.#getQuoteFetchData(),\n ...propertiesFromClient,\n };\n }\n case UnifiedSwapBridgeEventName.AssetDetailTooltipClicked:\n return baseProperties;\n // These events may be published after the bridge-controller state is reset\n // So the BridgeStatusController populates all the properties\n case UnifiedSwapBridgeEventName.Submitted:\n case UnifiedSwapBridgeEventName.Completed:\n return propertiesFromClient;\n case UnifiedSwapBridgeEventName.InputChanged:\n default:\n return baseProperties;\n }\n };\n\n readonly #trackInputChangedEvents = (\n paramsToUpdate: Partial<GenericQuoteRequest>,\n ) => {\n Object.entries(paramsToUpdate).forEach(([key, value]) => {\n const inputKey = toInputChangedPropertyKey[key as keyof QuoteRequest];\n const inputValue =\n toInputChangedPropertyValue[key as keyof QuoteRequest]?.(\n paramsToUpdate,\n );\n if (\n inputKey &&\n inputValue !== undefined &&\n value !== this.state.quoteRequest[key as keyof GenericQuoteRequest]\n ) {\n this.trackUnifiedSwapBridgeEvent(\n UnifiedSwapBridgeEventName.InputChanged,\n {\n input: inputKey,\n input_value: inputValue,\n },\n );\n }\n });\n };\n\n /**\n * This method tracks cross-chain swaps events\n *\n * @param eventName - The name of the event to track\n * @param propertiesFromClient - Properties that can't be calculated from the event name and need to be provided by the client\n * @example\n * this.trackUnifiedSwapBridgeEvent(UnifiedSwapBridgeEventName.ActionOpened, {\n * location: MetaMetricsSwapsEventSource.MainView,\n * });\n */\n trackUnifiedSwapBridgeEvent = <\n T extends\n (typeof UnifiedSwapBridgeEventName)[keyof typeof UnifiedSwapBridgeEventName],\n >(\n eventName: T,\n propertiesFromClient: Pick<RequiredEventContextFromClient, T>[T],\n ) => {\n try {\n const combinedPropertiesForEvent = this.#getEventProperties<T>(\n eventName,\n propertiesFromClient,\n );\n\n this.#trackMetaMetricsFn(eventName, combinedPropertiesForEvent);\n } catch (error) {\n console.error(\n 'Error tracking cross-chain swaps MetaMetrics event',\n error,\n );\n }\n };\n\n /**\n *\n * @param contractAddress - The address of the ERC20 token contract\n * @param chainId - The hex chain ID of the bridge network\n * @returns The atomic allowance of the ERC20 token contract\n */\n getBridgeERC20Allowance = async (\n contractAddress: string,\n chainId: Hex,\n ): Promise<string> => {\n const provider = this.#getSelectedNetworkClient()?.provider;\n if (!provider) {\n throw new Error('No provider found');\n }\n\n const ethersProvider = new Web3Provider(provider);\n const contract = new Contract(contractAddress, abiERC20, ethersProvider);\n const allowance: BigNumber = await contract.allowance(\n this.state.quoteRequest.walletAddress,\n METABRIDGE_CHAIN_TO_ADDRESS_MAP[chainId],\n );\n return allowance.toString();\n };\n}\n"]}
1
+ {"version":3,"file":"bridge-controller.mjs","sourceRoot":"","sources":["../src/bridge-controller.ts"],"names":[],"mappings":"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","sourcesContent":["import type { BigNumber } from '@ethersproject/bignumber';\nimport { Contract } from '@ethersproject/contracts';\nimport { Web3Provider } from '@ethersproject/providers';\nimport type { StateMetadata } from '@metamask/base-controller';\nimport type { TraceCallback } from '@metamask/controller-utils';\nimport type { InternalAccount } from '@metamask/keyring-internal-api';\nimport { abiERC20 } from '@metamask/metamask-eth-abis';\nimport type { NetworkClientId } from '@metamask/network-controller';\nimport { StaticIntervalPollingController } from '@metamask/polling-controller';\nimport type { TransactionController } from '@metamask/transaction-controller';\nimport type { CaipAssetType, Hex } from '@metamask/utils';\n\nimport type { BridgeClientId } from './constants/bridge';\nimport {\n BRIDGE_CONTROLLER_NAME,\n BRIDGE_PROD_API_BASE_URL,\n DEFAULT_BRIDGE_CONTROLLER_STATE,\n METABRIDGE_CHAIN_TO_ADDRESS_MAP,\n REFRESH_INTERVAL_MS,\n} from './constants/bridge';\nimport { TraceName } from './constants/traces';\nimport { selectIsAssetExchangeRateInState } from './selectors';\nimport type { QuoteRequest } from './types';\nimport {\n type L1GasFees,\n type GenericQuoteRequest,\n type NonEvmFees,\n type QuoteResponse,\n type BridgeControllerState,\n type BridgeControllerMessenger,\n type FetchFunction,\n RequestStatus,\n} from './types';\nimport { getAssetIdsForToken, toExchangeRates } from './utils/assets';\nimport { hasSufficientBalance } from './utils/balance';\nimport {\n getDefaultBridgeControllerState,\n isCrossChain,\n isNonEvmChainId,\n isSolanaChainId,\n} from './utils/bridge';\nimport {\n formatAddressToCaipReference,\n formatChainIdToCaip,\n formatChainIdToHex,\n} from './utils/caip-formatters';\nimport {\n getBridgeFeatureFlags,\n hasMinimumRequiredVersion,\n} from './utils/feature-flags';\nimport {\n fetchAssetPrices,\n fetchBridgeQuotes,\n fetchBridgeQuoteStream,\n} from './utils/fetch';\nimport {\n AbortReason,\n MetricsActionType,\n UnifiedSwapBridgeEventName,\n} from './utils/metrics/constants';\nimport {\n formatProviderLabel,\n getRequestParams,\n getSwapTypeFromQuote,\n isCustomSlippage,\n isHardwareWallet,\n toInputChangedPropertyKey,\n toInputChangedPropertyValue,\n} from './utils/metrics/properties';\nimport type {\n QuoteFetchData,\n RequestMetadata,\n RequestParams,\n RequiredEventContextFromClient,\n} from './utils/metrics/types';\nimport { type CrossChainSwapsEventProperties } from './utils/metrics/types';\nimport { isValidQuoteRequest, sortQuotes } from './utils/quote';\nimport { appendFeesToQuotes } from './utils/quote-fees';\nimport { getMinimumBalanceForRentExemptionInLamports } from './utils/snaps';\nimport type { FeatureId } from './utils/validators';\n\nconst metadata: StateMetadata<BridgeControllerState> = {\n quoteRequest: {\n includeInStateLogs: true,\n persist: false,\n anonymous: false,\n usedInUi: true,\n },\n quotes: {\n includeInStateLogs: true,\n persist: false,\n anonymous: false,\n usedInUi: true,\n },\n quotesInitialLoadTime: {\n includeInStateLogs: true,\n persist: false,\n anonymous: false,\n usedInUi: true,\n },\n quotesLastFetched: {\n includeInStateLogs: true,\n persist: false,\n anonymous: false,\n usedInUi: true,\n },\n quotesLoadingStatus: {\n includeInStateLogs: true,\n persist: false,\n anonymous: false,\n usedInUi: true,\n },\n quoteFetchError: {\n includeInStateLogs: true,\n persist: false,\n anonymous: false,\n usedInUi: true,\n },\n quotesRefreshCount: {\n includeInStateLogs: true,\n persist: false,\n anonymous: false,\n usedInUi: true,\n },\n assetExchangeRates: {\n includeInStateLogs: true,\n persist: false,\n anonymous: false,\n usedInUi: true,\n },\n minimumBalanceForRentExemptionInLamports: {\n includeInStateLogs: true,\n persist: false,\n anonymous: false,\n usedInUi: true,\n },\n};\n\n/**\n * The input to start polling for the {@link BridgeController}\n *\n * @param networkClientId - The network client ID of the selected network\n * @param updatedQuoteRequest - The updated quote request\n * @param context - The context contains properties that can't be populated by the\n * controller and need to be provided by the client for analytics\n */\ntype BridgePollingInput = {\n networkClientId: NetworkClientId;\n updatedQuoteRequest: GenericQuoteRequest;\n context: Pick<\n RequiredEventContextFromClient,\n UnifiedSwapBridgeEventName.QuotesError\n >[UnifiedSwapBridgeEventName.QuotesError] &\n Pick<\n RequiredEventContextFromClient,\n UnifiedSwapBridgeEventName.QuotesRequested\n >[UnifiedSwapBridgeEventName.QuotesRequested];\n};\n\nexport class BridgeController extends StaticIntervalPollingController<BridgePollingInput>()<\n typeof BRIDGE_CONTROLLER_NAME,\n BridgeControllerState,\n BridgeControllerMessenger\n> {\n #abortController: AbortController | undefined;\n\n #quotesFirstFetched: number | undefined;\n\n readonly #clientId: BridgeClientId;\n\n readonly #clientVersion: string;\n\n readonly #getLayer1GasFee: typeof TransactionController.prototype.getLayer1GasFee;\n\n readonly #fetchFn: FetchFunction;\n\n readonly #trackMetaMetricsFn: <\n T extends\n (typeof UnifiedSwapBridgeEventName)[keyof typeof UnifiedSwapBridgeEventName],\n >(\n eventName: T,\n properties: CrossChainSwapsEventProperties<T>,\n ) => void;\n\n readonly #trace: TraceCallback;\n\n readonly #config: {\n customBridgeApiBaseUrl?: string;\n };\n\n constructor({\n messenger,\n state,\n clientId,\n clientVersion,\n getLayer1GasFee,\n fetchFn,\n config,\n trackMetaMetricsFn,\n traceFn,\n }: {\n messenger: BridgeControllerMessenger;\n state?: Partial<BridgeControllerState>;\n clientId: BridgeClientId;\n clientVersion: string;\n getLayer1GasFee: typeof TransactionController.prototype.getLayer1GasFee;\n fetchFn: FetchFunction;\n config?: {\n customBridgeApiBaseUrl?: string;\n };\n trackMetaMetricsFn: <\n T extends\n (typeof UnifiedSwapBridgeEventName)[keyof typeof UnifiedSwapBridgeEventName],\n >(\n eventName: T,\n properties: CrossChainSwapsEventProperties<T>,\n ) => void;\n traceFn?: TraceCallback;\n }) {\n super({\n name: BRIDGE_CONTROLLER_NAME,\n metadata,\n messenger,\n state: {\n ...getDefaultBridgeControllerState(),\n ...state,\n },\n });\n\n this.setIntervalLength(REFRESH_INTERVAL_MS);\n\n this.#abortController = new AbortController();\n this.#getLayer1GasFee = getLayer1GasFee;\n this.#clientId = clientId;\n this.#clientVersion = clientVersion;\n this.#fetchFn = fetchFn;\n this.#trackMetaMetricsFn = trackMetaMetricsFn;\n this.#config = config ?? {};\n this.#trace = traceFn ?? (((_request, fn) => fn?.()) as TraceCallback);\n\n // Register action handlers\n this.messagingSystem.registerActionHandler(\n `${BRIDGE_CONTROLLER_NAME}:setChainIntervalLength`,\n this.setChainIntervalLength.bind(this),\n );\n this.messagingSystem.registerActionHandler(\n `${BRIDGE_CONTROLLER_NAME}:updateBridgeQuoteRequestParams`,\n this.updateBridgeQuoteRequestParams.bind(this),\n );\n this.messagingSystem.registerActionHandler(\n `${BRIDGE_CONTROLLER_NAME}:resetState`,\n this.resetState.bind(this),\n );\n this.messagingSystem.registerActionHandler(\n `${BRIDGE_CONTROLLER_NAME}:getBridgeERC20Allowance`,\n this.getBridgeERC20Allowance.bind(this),\n );\n this.messagingSystem.registerActionHandler(\n `${BRIDGE_CONTROLLER_NAME}:trackUnifiedSwapBridgeEvent`,\n this.trackUnifiedSwapBridgeEvent.bind(this),\n );\n this.messagingSystem.registerActionHandler(\n `${BRIDGE_CONTROLLER_NAME}:stopPollingForQuotes`,\n this.stopPollingForQuotes.bind(this),\n );\n this.messagingSystem.registerActionHandler(\n `${BRIDGE_CONTROLLER_NAME}:fetchQuotes`,\n this.fetchQuotes.bind(this),\n );\n }\n\n _executePoll = async (pollingInput: BridgePollingInput) => {\n await this.#fetchBridgeQuotes(pollingInput);\n };\n\n updateBridgeQuoteRequestParams = async (\n paramsToUpdate: Partial<GenericQuoteRequest> & {\n walletAddress: GenericQuoteRequest['walletAddress'];\n },\n context: BridgePollingInput['context'],\n ) => {\n this.#trackInputChangedEvents(paramsToUpdate);\n this.resetState(AbortReason.QuoteRequestUpdated);\n const updatedQuoteRequest = {\n ...DEFAULT_BRIDGE_CONTROLLER_STATE.quoteRequest,\n ...paramsToUpdate,\n };\n this.update((state) => {\n state.quoteRequest = updatedQuoteRequest;\n });\n\n await this.#fetchAssetExchangeRates(updatedQuoteRequest).catch((error) =>\n console.warn('Failed to fetch asset exchange rates', error),\n );\n\n if (isValidQuoteRequest(updatedQuoteRequest)) {\n this.#quotesFirstFetched = Date.now();\n const providerConfig = this.#getSelectedNetworkClient()?.configuration;\n\n let insufficientBal: boolean | undefined;\n if (isNonEvmChainId(updatedQuoteRequest.srcChainId)) {\n // If the source chain is not an EVM network, use value from params\n insufficientBal = paramsToUpdate.insufficientBal;\n } else if (providerConfig?.rpcUrl?.includes('tenderly')) {\n // If the rpcUrl is a tenderly fork (e2e tests), set insufficientBal=true\n // The bridge-api filters out quotes if the balance on mainnet is insufficient so this override allows quotes to always be returned\n insufficientBal = true;\n } else {\n try {\n // Otherwise query the src token balance from the RPC provider\n insufficientBal =\n paramsToUpdate.insufficientBal ??\n !(await this.#hasSufficientBalance(updatedQuoteRequest));\n } catch (error) {\n console.warn('Failed to fetch balance', error);\n insufficientBal = true;\n }\n }\n\n const networkClientId = this.#getSelectedNetworkClientId();\n // Set refresh rate based on the source chain before starting polling\n this.setChainIntervalLength();\n this.startPolling({\n networkClientId,\n updatedQuoteRequest: {\n ...updatedQuoteRequest,\n insufficientBal,\n },\n context,\n });\n }\n };\n\n /**\n * Fetches quotes for specified request without updating the controller state\n * This method does not start polling for quotes and does not emit UnifiedSwapBridge events\n *\n * @param quoteRequest - The parameters for quote requests to fetch\n * @param abortSignal - The abort signal to cancel all the requests\n * @param featureId - The feature ID that maps to quoteParam overrides from LD\n * @returns A list of validated quotes\n */\n fetchQuotes = async (\n quoteRequest: GenericQuoteRequest,\n abortSignal: AbortSignal | null = null,\n featureId: FeatureId | null = null,\n ): Promise<(QuoteResponse & L1GasFees & NonEvmFees)[]> => {\n const bridgeFeatureFlags = getBridgeFeatureFlags(this.messagingSystem);\n // If featureId is specified, retrieve the quoteRequestOverrides for that featureId\n const quoteRequestOverrides = featureId\n ? bridgeFeatureFlags.quoteRequestOverrides?.[featureId]\n : undefined;\n\n // If quoteRequestOverrides is specified, merge it with the quoteRequest\n const { quotes: baseQuotes, validationFailures } = await fetchBridgeQuotes(\n quoteRequestOverrides\n ? { ...quoteRequest, ...quoteRequestOverrides }\n : quoteRequest,\n abortSignal,\n this.#clientId,\n this.#fetchFn,\n this.#config.customBridgeApiBaseUrl ?? BRIDGE_PROD_API_BASE_URL,\n featureId,\n this.#clientVersion,\n );\n\n this.#trackResponseValidationFailures(validationFailures);\n\n const quotesWithFees = await appendFeesToQuotes(\n baseQuotes,\n this.messagingSystem,\n this.#getLayer1GasFee,\n this.#getMultichainSelectedAccount(quoteRequest.walletAddress),\n );\n\n return sortQuotes(quotesWithFees, featureId);\n };\n\n readonly #trackResponseValidationFailures = (\n validationFailures: string[],\n ) => {\n if (validationFailures.length === 0) {\n return;\n }\n this.trackUnifiedSwapBridgeEvent(\n UnifiedSwapBridgeEventName.QuotesValidationFailed,\n {\n failures: validationFailures,\n },\n );\n };\n\n readonly #getExchangeRateSources = () => {\n return {\n ...this.messagingSystem.call('MultichainAssetsRatesController:getState'),\n ...this.messagingSystem.call('CurrencyRateController:getState'),\n ...this.messagingSystem.call('TokenRatesController:getState'),\n ...this.state,\n };\n };\n\n /**\n * Fetches the exchange rates for the assets in the quote request if they are not already in the state\n * In addition to the selected tokens, this also fetches the native asset for the source and destination chains\n *\n * @param quoteRequest - The quote request\n * @param quoteRequest.srcChainId - The source chain ID\n * @param quoteRequest.srcTokenAddress - The source token address\n * @param quoteRequest.destChainId - The destination chain ID\n * @param quoteRequest.destTokenAddress - The destination token address\n */\n readonly #fetchAssetExchangeRates = async ({\n srcChainId,\n srcTokenAddress,\n destChainId,\n destTokenAddress,\n }: Partial<GenericQuoteRequest>) => {\n const assetIds: Set<CaipAssetType> = new Set([]);\n const exchangeRateSources = this.#getExchangeRateSources();\n if (\n srcTokenAddress &&\n srcChainId &&\n !selectIsAssetExchangeRateInState(\n exchangeRateSources,\n srcChainId,\n srcTokenAddress,\n )\n ) {\n getAssetIdsForToken(srcTokenAddress, srcChainId).forEach((assetId) =>\n assetIds.add(assetId),\n );\n }\n if (\n destTokenAddress &&\n destChainId &&\n !selectIsAssetExchangeRateInState(\n exchangeRateSources,\n destChainId,\n destTokenAddress,\n )\n ) {\n getAssetIdsForToken(destTokenAddress, destChainId).forEach((assetId) =>\n assetIds.add(assetId),\n );\n }\n\n const currency = this.messagingSystem.call(\n 'CurrencyRateController:getState',\n ).currentCurrency;\n\n if (assetIds.size === 0) {\n return;\n }\n\n const pricesByAssetId = await fetchAssetPrices({\n assetIds,\n currencies: new Set([currency]),\n clientId: this.#clientId,\n clientVersion: this.#clientVersion,\n fetchFn: this.#fetchFn,\n signal: this.#abortController?.signal,\n });\n const exchangeRates = toExchangeRates(currency, pricesByAssetId);\n this.update((state) => {\n state.assetExchangeRates = {\n ...state.assetExchangeRates,\n ...exchangeRates,\n };\n });\n };\n\n readonly #hasSufficientBalance = async (\n quoteRequest: GenericQuoteRequest,\n ) => {\n const srcChainIdInHex = formatChainIdToHex(quoteRequest.srcChainId);\n const provider = this.#getSelectedNetworkClient()?.provider;\n const normalizedSrcTokenAddress = formatAddressToCaipReference(\n quoteRequest.srcTokenAddress,\n );\n\n return (\n provider &&\n normalizedSrcTokenAddress &&\n quoteRequest.srcTokenAmount &&\n srcChainIdInHex &&\n (await hasSufficientBalance(\n provider,\n quoteRequest.walletAddress,\n normalizedSrcTokenAddress,\n quoteRequest.srcTokenAmount,\n srcChainIdInHex,\n ))\n );\n };\n\n stopPollingForQuotes = (reason?: AbortReason) => {\n this.stopAllPolling();\n this.#abortController?.abort(reason);\n };\n\n resetState = (reason = AbortReason.ResetState) => {\n this.stopPollingForQuotes(reason);\n this.update((state) => {\n // Cannot do direct assignment to state, i.e. state = {... }, need to manually assign each field\n state.quoteRequest = DEFAULT_BRIDGE_CONTROLLER_STATE.quoteRequest;\n state.quotesInitialLoadTime =\n DEFAULT_BRIDGE_CONTROLLER_STATE.quotesInitialLoadTime;\n state.quotes = DEFAULT_BRIDGE_CONTROLLER_STATE.quotes;\n state.quotesLastFetched =\n DEFAULT_BRIDGE_CONTROLLER_STATE.quotesLastFetched;\n state.quotesLoadingStatus =\n DEFAULT_BRIDGE_CONTROLLER_STATE.quotesLoadingStatus;\n state.quoteFetchError = DEFAULT_BRIDGE_CONTROLLER_STATE.quoteFetchError;\n state.quotesRefreshCount =\n DEFAULT_BRIDGE_CONTROLLER_STATE.quotesRefreshCount;\n state.assetExchangeRates =\n DEFAULT_BRIDGE_CONTROLLER_STATE.assetExchangeRates;\n state.minimumBalanceForRentExemptionInLamports =\n DEFAULT_BRIDGE_CONTROLLER_STATE.minimumBalanceForRentExemptionInLamports;\n });\n };\n\n /**\n * Sets the interval length based on the source chain\n */\n setChainIntervalLength = () => {\n const { state } = this;\n const { srcChainId } = state.quoteRequest;\n const bridgeFeatureFlags = getBridgeFeatureFlags(this.messagingSystem);\n\n const refreshRateOverride = srcChainId\n ? bridgeFeatureFlags.chains[formatChainIdToCaip(srcChainId)]?.refreshRate\n : undefined;\n const defaultRefreshRate = bridgeFeatureFlags.refreshRate;\n this.setIntervalLength(refreshRateOverride ?? defaultRefreshRate);\n };\n\n readonly #fetchBridgeQuotes = async ({\n networkClientId: _networkClientId,\n updatedQuoteRequest,\n context,\n }: BridgePollingInput) => {\n this.#abortController?.abort('New quote request');\n this.#abortController = new AbortController();\n\n this.trackUnifiedSwapBridgeEvent(\n UnifiedSwapBridgeEventName.QuotesRequested,\n context,\n );\n\n const { sse, maxRefreshCount } = getBridgeFeatureFlags(\n this.messagingSystem,\n );\n const shouldStream =\n sse?.enabled &&\n hasMinimumRequiredVersion(this.#clientVersion, sse.minimumVersion);\n\n this.update((state) => {\n state.quoteRequest = updatedQuoteRequest;\n state.quoteFetchError = DEFAULT_BRIDGE_CONTROLLER_STATE.quoteFetchError;\n state.quotesLastFetched = Date.now();\n state.quotesLoadingStatus = RequestStatus.LOADING;\n });\n\n try {\n await this.#trace(\n {\n name: isCrossChain(\n updatedQuoteRequest.srcChainId,\n updatedQuoteRequest.destChainId,\n )\n ? TraceName.BridgeQuotesFetched\n : TraceName.SwapQuotesFetched,\n data: {\n srcChainId: formatChainIdToCaip(updatedQuoteRequest.srcChainId),\n destChainId: formatChainIdToCaip(updatedQuoteRequest.destChainId),\n },\n },\n async () => {\n const selectedAccount = this.#getMultichainSelectedAccount(\n updatedQuoteRequest.walletAddress,\n );\n // This call is not awaited to prevent blocking quote fetching if the snap takes too long to respond\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n this.#setMinimumBalanceForRentExemptionInLamports(\n updatedQuoteRequest.srcChainId,\n selectedAccount.metadata?.snap?.id,\n );\n // Use SSE if enabled and return early\n if (shouldStream) {\n await this.#handleQuoteStreaming(\n updatedQuoteRequest,\n selectedAccount,\n );\n return;\n }\n // Otherwise use regular fetch\n const quotes = await this.fetchQuotes(\n updatedQuoteRequest,\n this.#abortController?.signal,\n );\n this.update((state) => {\n // Set the initial load time if this is the first fetch\n if (\n state.quotesRefreshCount ===\n DEFAULT_BRIDGE_CONTROLLER_STATE.quotesRefreshCount &&\n this.#quotesFirstFetched\n ) {\n state.quotesInitialLoadTime =\n Date.now() - this.#quotesFirstFetched;\n }\n state.quotes = quotes;\n state.quotesLoadingStatus = RequestStatus.FETCHED;\n });\n },\n );\n } catch (error) {\n // Reset the quotes list if the fetch fails to avoid showing stale quotes\n this.update((state) => {\n state.quotes = DEFAULT_BRIDGE_CONTROLLER_STATE.quotes;\n });\n // Ignore abort errors\n if (\n (error as Error).toString().includes('AbortError') ||\n (error as Error).toString().includes('FetchRequestCanceledException') ||\n [\n AbortReason.ResetState,\n AbortReason.NewQuoteRequest,\n AbortReason.QuoteRequestUpdated,\n ].includes(error as AbortReason)\n ) {\n // Exit the function early to prevent other state updates\n return;\n }\n\n // Update loading status and error message\n this.update((state) => {\n // The error object reference is not guaranteed to exist on mobile so reading\n // the message directly could cause an error.\n let errorMessage;\n try {\n errorMessage =\n (error as Error)?.message ?? (error as Error).toString();\n } catch {\n // Intentionally empty\n } finally {\n state.quoteFetchError = errorMessage ?? 'Unknown error';\n }\n state.quotesLoadingStatus = RequestStatus.ERROR;\n });\n // Track event and log error\n this.trackUnifiedSwapBridgeEvent(\n UnifiedSwapBridgeEventName.QuotesError,\n context,\n );\n console.log(\n `Failed to ${shouldStream ? 'stream' : 'fetch'} bridge quotes`,\n error,\n );\n }\n\n // Update refresh count after fetching, validation and fee calculation have completed\n this.update((state) => {\n state.quotesRefreshCount += 1;\n });\n // Stop polling if the maximum number of refreshes has been reached\n if (\n updatedQuoteRequest.insufficientBal ||\n (!updatedQuoteRequest.insufficientBal &&\n this.state.quotesRefreshCount >= maxRefreshCount)\n ) {\n this.stopAllPolling();\n }\n };\n\n readonly #handleQuoteStreaming = async (\n updatedQuoteRequest: GenericQuoteRequest,\n selectedAccount: InternalAccount,\n ) => {\n /**\n * Tracks the number of valid quotes received from the current stream, which is used\n * to determine when to clear the quotes list and set the initial load time\n */\n let validQuotesCounter = 0;\n\n await fetchBridgeQuoteStream(\n this.#fetchFn,\n updatedQuoteRequest,\n this.#abortController?.signal,\n this.#clientId,\n this.#config.customBridgeApiBaseUrl ?? BRIDGE_PROD_API_BASE_URL,\n {\n onValidationFailure: this.#trackResponseValidationFailures,\n onValidQuoteReceived: async (quote: QuoteResponse) => {\n const quotesWithFees = await appendFeesToQuotes(\n [quote],\n this.messagingSystem,\n this.#getLayer1GasFee,\n selectedAccount,\n );\n if (quotesWithFees.length > 0) {\n validQuotesCounter += 1;\n }\n this.update((state) => {\n // Clear previous quotes and quotes load time when first quote in the current\n // polling loop is received\n // This enables clients to continue showing the previous quotes while new\n // quotes are loading\n // Note: If there are no valid quotes until the 2nd fetch, quotesInitialLoadTime will be > refreshRate\n if (validQuotesCounter === 1) {\n state.quotes = DEFAULT_BRIDGE_CONTROLLER_STATE.quotes;\n if (!state.quotesInitialLoadTime && this.#quotesFirstFetched) {\n // Set the initial load time after the first quote is received\n state.quotesInitialLoadTime =\n Date.now() - this.#quotesFirstFetched;\n }\n }\n state.quotes = [...state.quotes, ...quotesWithFees];\n });\n },\n onClose: () => {\n this.update((state) => {\n // If there are no valid quotes in the current stream, clear the quotes list\n // to remove quotes from the previous stream\n if (validQuotesCounter === 0) {\n state.quotes = DEFAULT_BRIDGE_CONTROLLER_STATE.quotes;\n }\n state.quotesLoadingStatus = RequestStatus.FETCHED;\n });\n },\n },\n this.#clientVersion,\n );\n };\n\n readonly #setMinimumBalanceForRentExemptionInLamports = async (\n srcChainId: GenericQuoteRequest['srcChainId'],\n snapId?: string,\n ) => {\n if (!isSolanaChainId(srcChainId) || !snapId) {\n return;\n }\n const minimumBalanceForRentExemptionInLamports =\n await getMinimumBalanceForRentExemptionInLamports(\n snapId,\n this.messagingSystem,\n );\n this.update((state) => {\n state.minimumBalanceForRentExemptionInLamports =\n minimumBalanceForRentExemptionInLamports;\n });\n };\n\n #getMultichainSelectedAccount(\n walletAddress?: GenericQuoteRequest['walletAddress'],\n ) {\n const addressToUse = walletAddress ?? this.state.quoteRequest.walletAddress;\n if (!addressToUse) {\n throw new Error('Account address is required');\n }\n const selectedAccount = this.messagingSystem.call(\n 'AccountsController:getAccountByAddress',\n addressToUse,\n );\n if (!selectedAccount) {\n throw new Error('Account not found');\n }\n return selectedAccount;\n }\n\n #getSelectedNetworkClientId() {\n const { selectedNetworkClientId } = this.messagingSystem.call(\n 'NetworkController:getState',\n );\n return selectedNetworkClientId;\n }\n\n #getSelectedNetworkClient() {\n const selectedNetworkClientId = this.#getSelectedNetworkClientId();\n const networkClient = this.messagingSystem.call(\n 'NetworkController:getNetworkClientById',\n selectedNetworkClientId,\n );\n return networkClient;\n }\n\n readonly #getRequestParams = (): Omit<\n RequestParams,\n 'token_symbol_source' | 'token_symbol_destination'\n > => {\n const srcChainIdCaip = formatChainIdToCaip(\n this.state.quoteRequest.srcChainId ||\n this.#getSelectedNetworkClient().configuration.chainId,\n );\n return getRequestParams(this.state.quoteRequest, srcChainIdCaip);\n };\n\n readonly #getRequestMetadata = (): Omit<\n RequestMetadata,\n | 'stx_enabled'\n | 'usd_amount_source'\n | 'security_warnings'\n | 'is_hardware_wallet'\n > => {\n return {\n slippage_limit: this.state.quoteRequest.slippage,\n swap_type: getSwapTypeFromQuote(this.state.quoteRequest),\n custom_slippage: isCustomSlippage(this.state.quoteRequest.slippage),\n };\n };\n\n readonly #getQuoteFetchData = (): Omit<\n QuoteFetchData,\n 'best_quote_provider' | 'price_impact' | 'can_submit'\n > => {\n return {\n quotes_count: this.state.quotes.length,\n quotes_list: this.state.quotes.map(({ quote }) =>\n formatProviderLabel(quote),\n ),\n initial_load_time_all_quotes: this.state.quotesInitialLoadTime ?? 0,\n };\n };\n\n readonly #getEventProperties = <\n T extends\n (typeof UnifiedSwapBridgeEventName)[keyof typeof UnifiedSwapBridgeEventName],\n >(\n eventName: T,\n propertiesFromClient: Pick<RequiredEventContextFromClient, T>[T],\n ): CrossChainSwapsEventProperties<T> => {\n const baseProperties = {\n ...propertiesFromClient,\n action_type: MetricsActionType.SWAPBRIDGE_V1,\n };\n switch (eventName) {\n case UnifiedSwapBridgeEventName.ButtonClicked:\n case UnifiedSwapBridgeEventName.PageViewed:\n return {\n ...this.#getRequestParams(),\n ...baseProperties,\n };\n case UnifiedSwapBridgeEventName.QuotesValidationFailed:\n return {\n ...this.#getRequestParams(),\n refresh_count: this.state.quotesRefreshCount,\n ...baseProperties,\n };\n case UnifiedSwapBridgeEventName.QuotesReceived:\n return {\n ...this.#getRequestParams(),\n ...this.#getRequestMetadata(),\n ...this.#getQuoteFetchData(),\n is_hardware_wallet: isHardwareWallet(\n this.#getMultichainSelectedAccount(),\n ),\n refresh_count: this.state.quotesRefreshCount,\n ...baseProperties,\n };\n case UnifiedSwapBridgeEventName.QuotesRequested:\n return {\n ...this.#getRequestParams(),\n ...this.#getRequestMetadata(),\n is_hardware_wallet: isHardwareWallet(\n this.#getMultichainSelectedAccount(),\n ),\n has_sufficient_funds: !this.state.quoteRequest.insufficientBal,\n ...baseProperties,\n };\n case UnifiedSwapBridgeEventName.QuotesError:\n return {\n ...this.#getRequestParams(),\n ...this.#getRequestMetadata(),\n is_hardware_wallet: isHardwareWallet(\n this.#getMultichainSelectedAccount(),\n ),\n error_message: this.state.quoteFetchError,\n has_sufficient_funds: !this.state.quoteRequest.insufficientBal,\n ...baseProperties,\n };\n case UnifiedSwapBridgeEventName.AllQuotesOpened:\n case UnifiedSwapBridgeEventName.AllQuotesSorted:\n case UnifiedSwapBridgeEventName.QuoteSelected:\n return {\n ...this.#getRequestParams(),\n ...this.#getRequestMetadata(),\n ...this.#getQuoteFetchData(),\n is_hardware_wallet: isHardwareWallet(\n this.#getMultichainSelectedAccount(),\n ),\n ...baseProperties,\n };\n case UnifiedSwapBridgeEventName.Failed: {\n // Populate the properties that the error occurred before the tx was submitted\n return {\n ...baseProperties,\n ...this.#getRequestParams(),\n ...this.#getRequestMetadata(),\n ...this.#getQuoteFetchData(),\n ...propertiesFromClient,\n };\n }\n case UnifiedSwapBridgeEventName.AssetDetailTooltipClicked:\n return baseProperties;\n // These events may be published after the bridge-controller state is reset\n // So the BridgeStatusController populates all the properties\n case UnifiedSwapBridgeEventName.Submitted:\n case UnifiedSwapBridgeEventName.Completed:\n return propertiesFromClient;\n case UnifiedSwapBridgeEventName.InputChanged:\n default:\n return baseProperties;\n }\n };\n\n readonly #trackInputChangedEvents = (\n paramsToUpdate: Partial<GenericQuoteRequest>,\n ) => {\n Object.entries(paramsToUpdate).forEach(([key, value]) => {\n const inputKey = toInputChangedPropertyKey[key as keyof QuoteRequest];\n const inputValue =\n toInputChangedPropertyValue[key as keyof QuoteRequest]?.(\n paramsToUpdate,\n );\n if (\n inputKey &&\n inputValue !== undefined &&\n value !== this.state.quoteRequest[key as keyof GenericQuoteRequest]\n ) {\n this.trackUnifiedSwapBridgeEvent(\n UnifiedSwapBridgeEventName.InputChanged,\n {\n input: inputKey,\n input_value: inputValue,\n },\n );\n }\n });\n };\n\n /**\n * This method tracks cross-chain swaps events\n *\n * @param eventName - The name of the event to track\n * @param propertiesFromClient - Properties that can't be calculated from the event name and need to be provided by the client\n * @example\n * this.trackUnifiedSwapBridgeEvent(UnifiedSwapBridgeEventName.ActionOpened, {\n * location: MetaMetricsSwapsEventSource.MainView,\n * });\n */\n trackUnifiedSwapBridgeEvent = <\n T extends\n (typeof UnifiedSwapBridgeEventName)[keyof typeof UnifiedSwapBridgeEventName],\n >(\n eventName: T,\n propertiesFromClient: Pick<RequiredEventContextFromClient, T>[T],\n ) => {\n try {\n const combinedPropertiesForEvent = this.#getEventProperties<T>(\n eventName,\n propertiesFromClient,\n );\n\n this.#trackMetaMetricsFn(eventName, combinedPropertiesForEvent);\n } catch (error) {\n console.error(\n 'Error tracking cross-chain swaps MetaMetrics event',\n error,\n );\n }\n };\n\n /**\n *\n * @param contractAddress - The address of the ERC20 token contract\n * @param chainId - The hex chain ID of the bridge network\n * @returns The atomic allowance of the ERC20 token contract\n */\n getBridgeERC20Allowance = async (\n contractAddress: string,\n chainId: Hex,\n ): Promise<string> => {\n const provider = this.#getSelectedNetworkClient()?.provider;\n if (!provider) {\n throw new Error('No provider found');\n }\n\n const ethersProvider = new Web3Provider(provider);\n const contract = new Contract(contractAddress, abiERC20, ethersProvider);\n const allowance: BigNumber = await contract.allowance(\n this.state.quoteRequest.walletAddress,\n METABRIDGE_CHAIN_TO_ADDRESS_MAP[chainId],\n );\n return allowance.toString();\n };\n}\n"]}
@@ -15,6 +15,7 @@ exports.ALLOWED_BRIDGE_CHAIN_IDS = [
15
15
  chains_1.CHAIN_IDS.LINEA_MAINNET,
16
16
  chains_1.CHAIN_IDS.BASE,
17
17
  chains_1.CHAIN_IDS.SEI,
18
+ chains_1.CHAIN_IDS.MONAD,
18
19
  keyring_api_1.SolScope.Mainnet,
19
20
  keyring_api_1.BtcScope.Mainnet,
20
21
  ];
@@ -1 +1 @@
1
- {"version":3,"file":"bridge.cjs","sourceRoot":"","sources":["../../src/constants/bridge.ts"],"names":[],"mappings":";;;AAAA,wDAAuD;AACvD,uDAA2D;AAG3D,yCAAqC;AAMxB,QAAA,wBAAwB,GAAG;IACtC,kBAAS,CAAC,OAAO;IACjB,kBAAS,CAAC,GAAG;IACb,kBAAS,CAAC,OAAO;IACjB,kBAAS,CAAC,UAAU;IACpB,kBAAS,CAAC,SAAS;IACnB,kBAAS,CAAC,QAAQ;IAClB,kBAAS,CAAC,QAAQ;IAClB,kBAAS,CAAC,aAAa;IACvB,kBAAS,CAAC,IAAI;IACd,kBAAS,CAAC,GAAG;IACb,sBAAQ,CAAC,OAAO;IAChB,sBAAQ,CAAC,OAAO;CACR,CAAC;AAIE,QAAA,uBAAuB,GAAG,uCAAuC,CAAC;AAClE,QAAA,wBAAwB,GAAG,mCAAmC,CAAC;AAE5E,IAAY,cAGX;AAHD,WAAY,cAAc;IACxB,yCAAuB,CAAA;IACvB,mCAAiB,CAAA;AACnB,CAAC,EAHW,cAAc,8BAAd,cAAc,QAGzB;AAEY,QAAA,gBAAgB,GAAG,4CAA4C,CAAC;AAChE,QAAA,2BAA2B,GACtC,4CAA4C,CAAC;AAClC,QAAA,4BAA4B,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,SAAS;AACjD,QAAA,6CAA6C,GAAG,GAAG,CAAC,CAAC,2EAA2E;AAEhI,QAAA,6BAA6B,GAAG,QAAQ,CAAC;AACzC,QAAA,kBAAkB,GAAG,KAAK,CAAC;AAC3B,QAAA,mBAAmB,GAAG,EAAE,GAAG,IAAI,CAAC;AAChC,QAAA,yBAAyB,GAAG,CAAC,CAAC;AAE9B,QAAA,sBAAsB,GAAG,kBAAkB,CAAC;AAE5C,QAAA,2BAA2B,GAA+B;IACrE,cAAc,EAAE,OAAO;IACvB,WAAW,EAAE,2BAAmB;IAChC,eAAe,EAAE,iCAAyB;IAC1C,OAAO,EAAE,KAAK;IACd,MAAM,EAAE,EAAE;CACX,CAAC;AAEW,QAAA,+BAA+B,GAA0B;IACpE,YAAY,EAAE;QACZ,eAAe,EAAE,uBAAW;KAC7B;IACD,qBAAqB,EAAE,IAAI;IAC3B,MAAM,EAAE,EAAE;IACV,iBAAiB,EAAE,IAAI;IACvB,mBAAmB,EAAE,IAAI;IACzB,eAAe,EAAE,IAAI;IACrB,kBAAkB,EAAE,CAAC;IACrB,kBAAkB,EAAE,EAAE;IACtB,wCAAwC,EAAE,GAAG;CAC9C,CAAC;AAEW,QAAA,+BAA+B,GAAwB;IAClE,CAAC,kBAAS,CAAC,OAAO,CAAC,EAAE,mCAA2B;CACjD,CAAC","sourcesContent":["import { AddressZero } from '@ethersproject/constants';\nimport { BtcScope, SolScope } from '@metamask/keyring-api';\nimport type { Hex } from '@metamask/utils';\n\nimport { CHAIN_IDS } from './chains';\nimport type {\n BridgeControllerState,\n FeatureFlagsPlatformConfig,\n} from '../types';\n\nexport const ALLOWED_BRIDGE_CHAIN_IDS = [\n CHAIN_IDS.MAINNET,\n CHAIN_IDS.BSC,\n CHAIN_IDS.POLYGON,\n CHAIN_IDS.ZKSYNC_ERA,\n CHAIN_IDS.AVALANCHE,\n CHAIN_IDS.OPTIMISM,\n CHAIN_IDS.ARBITRUM,\n CHAIN_IDS.LINEA_MAINNET,\n CHAIN_IDS.BASE,\n CHAIN_IDS.SEI,\n SolScope.Mainnet,\n BtcScope.Mainnet,\n] as const;\n\nexport type AllowedBridgeChainIds = (typeof ALLOWED_BRIDGE_CHAIN_IDS)[number];\n\nexport const BRIDGE_DEV_API_BASE_URL = 'https://bridge.dev-api.cx.metamask.io';\nexport const BRIDGE_PROD_API_BASE_URL = 'https://bridge.api.cx.metamask.io';\n\nexport enum BridgeClientId {\n EXTENSION = 'extension',\n MOBILE = 'mobile',\n}\n\nexport const ETH_USDT_ADDRESS = '0xdac17f958d2ee523a2206206994597c13d831ec7';\nexport const METABRIDGE_ETHEREUM_ADDRESS =\n '0x0439e60F02a8900a951603950d8D4527f400C3f1';\nexport const BRIDGE_QUOTE_MAX_ETA_SECONDS = 60 * 60; // 1 hour\nexport const BRIDGE_QUOTE_MAX_RETURN_DIFFERENCE_PERCENTAGE = 0.5; // if a quote returns in x times less return than the best quote, ignore it\n\nexport const BRIDGE_PREFERRED_GAS_ESTIMATE = 'medium';\nexport const BRIDGE_MM_FEE_RATE = 0.875;\nexport const REFRESH_INTERVAL_MS = 30 * 1000;\nexport const DEFAULT_MAX_REFRESH_COUNT = 5;\n\nexport const BRIDGE_CONTROLLER_NAME = 'BridgeController';\n\nexport const DEFAULT_FEATURE_FLAG_CONFIG: FeatureFlagsPlatformConfig = {\n minimumVersion: '0.0.0',\n refreshRate: REFRESH_INTERVAL_MS,\n maxRefreshCount: DEFAULT_MAX_REFRESH_COUNT,\n support: false,\n chains: {},\n};\n\nexport const DEFAULT_BRIDGE_CONTROLLER_STATE: BridgeControllerState = {\n quoteRequest: {\n srcTokenAddress: AddressZero,\n },\n quotesInitialLoadTime: null,\n quotes: [],\n quotesLastFetched: null,\n quotesLoadingStatus: null,\n quoteFetchError: null,\n quotesRefreshCount: 0,\n assetExchangeRates: {},\n minimumBalanceForRentExemptionInLamports: '0',\n};\n\nexport const METABRIDGE_CHAIN_TO_ADDRESS_MAP: Record<Hex, string> = {\n [CHAIN_IDS.MAINNET]: METABRIDGE_ETHEREUM_ADDRESS,\n};\n"]}
1
+ {"version":3,"file":"bridge.cjs","sourceRoot":"","sources":["../../src/constants/bridge.ts"],"names":[],"mappings":";;;AAAA,wDAAuD;AACvD,uDAA2D;AAG3D,yCAAqC;AAMxB,QAAA,wBAAwB,GAAG;IACtC,kBAAS,CAAC,OAAO;IACjB,kBAAS,CAAC,GAAG;IACb,kBAAS,CAAC,OAAO;IACjB,kBAAS,CAAC,UAAU;IACpB,kBAAS,CAAC,SAAS;IACnB,kBAAS,CAAC,QAAQ;IAClB,kBAAS,CAAC,QAAQ;IAClB,kBAAS,CAAC,aAAa;IACvB,kBAAS,CAAC,IAAI;IACd,kBAAS,CAAC,GAAG;IACb,kBAAS,CAAC,KAAK;IACf,sBAAQ,CAAC,OAAO;IAChB,sBAAQ,CAAC,OAAO;CACR,CAAC;AAIE,QAAA,uBAAuB,GAAG,uCAAuC,CAAC;AAClE,QAAA,wBAAwB,GAAG,mCAAmC,CAAC;AAE5E,IAAY,cAGX;AAHD,WAAY,cAAc;IACxB,yCAAuB,CAAA;IACvB,mCAAiB,CAAA;AACnB,CAAC,EAHW,cAAc,8BAAd,cAAc,QAGzB;AAEY,QAAA,gBAAgB,GAAG,4CAA4C,CAAC;AAChE,QAAA,2BAA2B,GACtC,4CAA4C,CAAC;AAClC,QAAA,4BAA4B,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,SAAS;AACjD,QAAA,6CAA6C,GAAG,GAAG,CAAC,CAAC,2EAA2E;AAEhI,QAAA,6BAA6B,GAAG,QAAQ,CAAC;AACzC,QAAA,kBAAkB,GAAG,KAAK,CAAC;AAC3B,QAAA,mBAAmB,GAAG,EAAE,GAAG,IAAI,CAAC;AAChC,QAAA,yBAAyB,GAAG,CAAC,CAAC;AAE9B,QAAA,sBAAsB,GAAG,kBAAkB,CAAC;AAE5C,QAAA,2BAA2B,GAA+B;IACrE,cAAc,EAAE,OAAO;IACvB,WAAW,EAAE,2BAAmB;IAChC,eAAe,EAAE,iCAAyB;IAC1C,OAAO,EAAE,KAAK;IACd,MAAM,EAAE,EAAE;CACX,CAAC;AAEW,QAAA,+BAA+B,GAA0B;IACpE,YAAY,EAAE;QACZ,eAAe,EAAE,uBAAW;KAC7B;IACD,qBAAqB,EAAE,IAAI;IAC3B,MAAM,EAAE,EAAE;IACV,iBAAiB,EAAE,IAAI;IACvB,mBAAmB,EAAE,IAAI;IACzB,eAAe,EAAE,IAAI;IACrB,kBAAkB,EAAE,CAAC;IACrB,kBAAkB,EAAE,EAAE;IACtB,wCAAwC,EAAE,GAAG;CAC9C,CAAC;AAEW,QAAA,+BAA+B,GAAwB;IAClE,CAAC,kBAAS,CAAC,OAAO,CAAC,EAAE,mCAA2B;CACjD,CAAC","sourcesContent":["import { AddressZero } from '@ethersproject/constants';\nimport { BtcScope, SolScope } from '@metamask/keyring-api';\nimport type { Hex } from '@metamask/utils';\n\nimport { CHAIN_IDS } from './chains';\nimport type {\n BridgeControllerState,\n FeatureFlagsPlatformConfig,\n} from '../types';\n\nexport const ALLOWED_BRIDGE_CHAIN_IDS = [\n CHAIN_IDS.MAINNET,\n CHAIN_IDS.BSC,\n CHAIN_IDS.POLYGON,\n CHAIN_IDS.ZKSYNC_ERA,\n CHAIN_IDS.AVALANCHE,\n CHAIN_IDS.OPTIMISM,\n CHAIN_IDS.ARBITRUM,\n CHAIN_IDS.LINEA_MAINNET,\n CHAIN_IDS.BASE,\n CHAIN_IDS.SEI,\n CHAIN_IDS.MONAD,\n SolScope.Mainnet,\n BtcScope.Mainnet,\n] as const;\n\nexport type AllowedBridgeChainIds = (typeof ALLOWED_BRIDGE_CHAIN_IDS)[number];\n\nexport const BRIDGE_DEV_API_BASE_URL = 'https://bridge.dev-api.cx.metamask.io';\nexport const BRIDGE_PROD_API_BASE_URL = 'https://bridge.api.cx.metamask.io';\n\nexport enum BridgeClientId {\n EXTENSION = 'extension',\n MOBILE = 'mobile',\n}\n\nexport const ETH_USDT_ADDRESS = '0xdac17f958d2ee523a2206206994597c13d831ec7';\nexport const METABRIDGE_ETHEREUM_ADDRESS =\n '0x0439e60F02a8900a951603950d8D4527f400C3f1';\nexport const BRIDGE_QUOTE_MAX_ETA_SECONDS = 60 * 60; // 1 hour\nexport const BRIDGE_QUOTE_MAX_RETURN_DIFFERENCE_PERCENTAGE = 0.5; // if a quote returns in x times less return than the best quote, ignore it\n\nexport const BRIDGE_PREFERRED_GAS_ESTIMATE = 'medium';\nexport const BRIDGE_MM_FEE_RATE = 0.875;\nexport const REFRESH_INTERVAL_MS = 30 * 1000;\nexport const DEFAULT_MAX_REFRESH_COUNT = 5;\n\nexport const BRIDGE_CONTROLLER_NAME = 'BridgeController';\n\nexport const DEFAULT_FEATURE_FLAG_CONFIG: FeatureFlagsPlatformConfig = {\n minimumVersion: '0.0.0',\n refreshRate: REFRESH_INTERVAL_MS,\n maxRefreshCount: DEFAULT_MAX_REFRESH_COUNT,\n support: false,\n chains: {},\n};\n\nexport const DEFAULT_BRIDGE_CONTROLLER_STATE: BridgeControllerState = {\n quoteRequest: {\n srcTokenAddress: AddressZero,\n },\n quotesInitialLoadTime: null,\n quotes: [],\n quotesLastFetched: null,\n quotesLoadingStatus: null,\n quoteFetchError: null,\n quotesRefreshCount: 0,\n assetExchangeRates: {},\n minimumBalanceForRentExemptionInLamports: '0',\n};\n\nexport const METABRIDGE_CHAIN_TO_ADDRESS_MAP: Record<Hex, string> = {\n [CHAIN_IDS.MAINNET]: METABRIDGE_ETHEREUM_ADDRESS,\n};\n"]}
@@ -1,7 +1,7 @@
1
1
  import { BtcScope, SolScope } from "@metamask/keyring-api";
2
2
  import type { Hex } from "@metamask/utils";
3
3
  import type { BridgeControllerState, FeatureFlagsPlatformConfig } from "../types.cjs";
4
- export declare const ALLOWED_BRIDGE_CHAIN_IDS: readonly ["0x1", "0x38", "0x89", "0x144", "0xa86a", "0xa", "0xa4b1", "0xe708", "0x2105", "0x531", SolScope.Mainnet, BtcScope.Mainnet];
4
+ export declare const ALLOWED_BRIDGE_CHAIN_IDS: readonly ["0x1", "0x38", "0x89", "0x144", "0xa86a", "0xa", "0xa4b1", "0xe708", "0x2105", "0x531", "0x8f", SolScope.Mainnet, BtcScope.Mainnet];
5
5
  export type AllowedBridgeChainIds = (typeof ALLOWED_BRIDGE_CHAIN_IDS)[number];
6
6
  export declare const BRIDGE_DEV_API_BASE_URL = "https://bridge.dev-api.cx.metamask.io";
7
7
  export declare const BRIDGE_PROD_API_BASE_URL = "https://bridge.api.cx.metamask.io";
@@ -1 +1 @@
1
- {"version":3,"file":"bridge.d.cts","sourceRoot":"","sources":["../../src/constants/bridge.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,8BAA8B;AAC3D,OAAO,KAAK,EAAE,GAAG,EAAE,wBAAwB;AAG3C,OAAO,KAAK,EACV,qBAAqB,EACrB,0BAA0B,EAC3B,qBAAiB;AAElB,eAAO,MAAM,wBAAwB,uIAa3B,CAAC;AAEX,MAAM,MAAM,qBAAqB,GAAG,CAAC,OAAO,wBAAwB,CAAC,CAAC,MAAM,CAAC,CAAC;AAE9E,eAAO,MAAM,uBAAuB,0CAA0C,CAAC;AAC/E,eAAO,MAAM,wBAAwB,sCAAsC,CAAC;AAE5E,oBAAY,cAAc;IACxB,SAAS,cAAc;IACvB,MAAM,WAAW;CAClB;AAED,eAAO,MAAM,gBAAgB,+CAA+C,CAAC;AAC7E,eAAO,MAAM,2BAA2B,+CACM,CAAC;AAC/C,eAAO,MAAM,4BAA4B,QAAU,CAAC;AACpD,eAAO,MAAM,6CAA6C,MAAM,CAAC;AAEjE,eAAO,MAAM,6BAA6B,WAAW,CAAC;AACtD,eAAO,MAAM,kBAAkB,QAAQ,CAAC;AACxC,eAAO,MAAM,mBAAmB,QAAY,CAAC;AAC7C,eAAO,MAAM,yBAAyB,IAAI,CAAC;AAE3C,eAAO,MAAM,sBAAsB,qBAAqB,CAAC;AAEzD,eAAO,MAAM,2BAA2B,EAAE,0BAMzC,CAAC;AAEF,eAAO,MAAM,+BAA+B,EAAE,qBAY7C,CAAC;AAEF,eAAO,MAAM,+BAA+B,EAAE,MAAM,CAAC,GAAG,EAAE,MAAM,CAE/D,CAAC"}
1
+ {"version":3,"file":"bridge.d.cts","sourceRoot":"","sources":["../../src/constants/bridge.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,8BAA8B;AAC3D,OAAO,KAAK,EAAE,GAAG,EAAE,wBAAwB;AAG3C,OAAO,KAAK,EACV,qBAAqB,EACrB,0BAA0B,EAC3B,qBAAiB;AAElB,eAAO,MAAM,wBAAwB,+IAc3B,CAAC;AAEX,MAAM,MAAM,qBAAqB,GAAG,CAAC,OAAO,wBAAwB,CAAC,CAAC,MAAM,CAAC,CAAC;AAE9E,eAAO,MAAM,uBAAuB,0CAA0C,CAAC;AAC/E,eAAO,MAAM,wBAAwB,sCAAsC,CAAC;AAE5E,oBAAY,cAAc;IACxB,SAAS,cAAc;IACvB,MAAM,WAAW;CAClB;AAED,eAAO,MAAM,gBAAgB,+CAA+C,CAAC;AAC7E,eAAO,MAAM,2BAA2B,+CACM,CAAC;AAC/C,eAAO,MAAM,4BAA4B,QAAU,CAAC;AACpD,eAAO,MAAM,6CAA6C,MAAM,CAAC;AAEjE,eAAO,MAAM,6BAA6B,WAAW,CAAC;AACtD,eAAO,MAAM,kBAAkB,QAAQ,CAAC;AACxC,eAAO,MAAM,mBAAmB,QAAY,CAAC;AAC7C,eAAO,MAAM,yBAAyB,IAAI,CAAC;AAE3C,eAAO,MAAM,sBAAsB,qBAAqB,CAAC;AAEzD,eAAO,MAAM,2BAA2B,EAAE,0BAMzC,CAAC;AAEF,eAAO,MAAM,+BAA+B,EAAE,qBAY7C,CAAC;AAEF,eAAO,MAAM,+BAA+B,EAAE,MAAM,CAAC,GAAG,EAAE,MAAM,CAE/D,CAAC"}
@@ -1,7 +1,7 @@
1
1
  import { BtcScope, SolScope } from "@metamask/keyring-api";
2
2
  import type { Hex } from "@metamask/utils";
3
3
  import type { BridgeControllerState, FeatureFlagsPlatformConfig } from "../types.mjs";
4
- export declare const ALLOWED_BRIDGE_CHAIN_IDS: readonly ["0x1", "0x38", "0x89", "0x144", "0xa86a", "0xa", "0xa4b1", "0xe708", "0x2105", "0x531", SolScope.Mainnet, BtcScope.Mainnet];
4
+ export declare const ALLOWED_BRIDGE_CHAIN_IDS: readonly ["0x1", "0x38", "0x89", "0x144", "0xa86a", "0xa", "0xa4b1", "0xe708", "0x2105", "0x531", "0x8f", SolScope.Mainnet, BtcScope.Mainnet];
5
5
  export type AllowedBridgeChainIds = (typeof ALLOWED_BRIDGE_CHAIN_IDS)[number];
6
6
  export declare const BRIDGE_DEV_API_BASE_URL = "https://bridge.dev-api.cx.metamask.io";
7
7
  export declare const BRIDGE_PROD_API_BASE_URL = "https://bridge.api.cx.metamask.io";
@@ -1 +1 @@
1
- {"version":3,"file":"bridge.d.mts","sourceRoot":"","sources":["../../src/constants/bridge.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,8BAA8B;AAC3D,OAAO,KAAK,EAAE,GAAG,EAAE,wBAAwB;AAG3C,OAAO,KAAK,EACV,qBAAqB,EACrB,0BAA0B,EAC3B,qBAAiB;AAElB,eAAO,MAAM,wBAAwB,uIAa3B,CAAC;AAEX,MAAM,MAAM,qBAAqB,GAAG,CAAC,OAAO,wBAAwB,CAAC,CAAC,MAAM,CAAC,CAAC;AAE9E,eAAO,MAAM,uBAAuB,0CAA0C,CAAC;AAC/E,eAAO,MAAM,wBAAwB,sCAAsC,CAAC;AAE5E,oBAAY,cAAc;IACxB,SAAS,cAAc;IACvB,MAAM,WAAW;CAClB;AAED,eAAO,MAAM,gBAAgB,+CAA+C,CAAC;AAC7E,eAAO,MAAM,2BAA2B,+CACM,CAAC;AAC/C,eAAO,MAAM,4BAA4B,QAAU,CAAC;AACpD,eAAO,MAAM,6CAA6C,MAAM,CAAC;AAEjE,eAAO,MAAM,6BAA6B,WAAW,CAAC;AACtD,eAAO,MAAM,kBAAkB,QAAQ,CAAC;AACxC,eAAO,MAAM,mBAAmB,QAAY,CAAC;AAC7C,eAAO,MAAM,yBAAyB,IAAI,CAAC;AAE3C,eAAO,MAAM,sBAAsB,qBAAqB,CAAC;AAEzD,eAAO,MAAM,2BAA2B,EAAE,0BAMzC,CAAC;AAEF,eAAO,MAAM,+BAA+B,EAAE,qBAY7C,CAAC;AAEF,eAAO,MAAM,+BAA+B,EAAE,MAAM,CAAC,GAAG,EAAE,MAAM,CAE/D,CAAC"}
1
+ {"version":3,"file":"bridge.d.mts","sourceRoot":"","sources":["../../src/constants/bridge.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,8BAA8B;AAC3D,OAAO,KAAK,EAAE,GAAG,EAAE,wBAAwB;AAG3C,OAAO,KAAK,EACV,qBAAqB,EACrB,0BAA0B,EAC3B,qBAAiB;AAElB,eAAO,MAAM,wBAAwB,+IAc3B,CAAC;AAEX,MAAM,MAAM,qBAAqB,GAAG,CAAC,OAAO,wBAAwB,CAAC,CAAC,MAAM,CAAC,CAAC;AAE9E,eAAO,MAAM,uBAAuB,0CAA0C,CAAC;AAC/E,eAAO,MAAM,wBAAwB,sCAAsC,CAAC;AAE5E,oBAAY,cAAc;IACxB,SAAS,cAAc;IACvB,MAAM,WAAW;CAClB;AAED,eAAO,MAAM,gBAAgB,+CAA+C,CAAC;AAC7E,eAAO,MAAM,2BAA2B,+CACM,CAAC;AAC/C,eAAO,MAAM,4BAA4B,QAAU,CAAC;AACpD,eAAO,MAAM,6CAA6C,MAAM,CAAC;AAEjE,eAAO,MAAM,6BAA6B,WAAW,CAAC;AACtD,eAAO,MAAM,kBAAkB,QAAQ,CAAC;AACxC,eAAO,MAAM,mBAAmB,QAAY,CAAC;AAC7C,eAAO,MAAM,yBAAyB,IAAI,CAAC;AAE3C,eAAO,MAAM,sBAAsB,qBAAqB,CAAC;AAEzD,eAAO,MAAM,2BAA2B,EAAE,0BAMzC,CAAC;AAEF,eAAO,MAAM,+BAA+B,EAAE,qBAY7C,CAAC;AAEF,eAAO,MAAM,+BAA+B,EAAE,MAAM,CAAC,GAAG,EAAE,MAAM,CAE/D,CAAC"}
@@ -12,6 +12,7 @@ export const ALLOWED_BRIDGE_CHAIN_IDS = [
12
12
  CHAIN_IDS.LINEA_MAINNET,
13
13
  CHAIN_IDS.BASE,
14
14
  CHAIN_IDS.SEI,
15
+ CHAIN_IDS.MONAD,
15
16
  SolScope.Mainnet,
16
17
  BtcScope.Mainnet,
17
18
  ];
@@ -1 +1 @@
1
- {"version":3,"file":"bridge.mjs","sourceRoot":"","sources":["../../src/constants/bridge.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,iCAAiC;AACvD,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,8BAA8B;AAG3D,OAAO,EAAE,SAAS,EAAE,qBAAiB;AAMrC,MAAM,CAAC,MAAM,wBAAwB,GAAG;IACtC,SAAS,CAAC,OAAO;IACjB,SAAS,CAAC,GAAG;IACb,SAAS,CAAC,OAAO;IACjB,SAAS,CAAC,UAAU;IACpB,SAAS,CAAC,SAAS;IACnB,SAAS,CAAC,QAAQ;IAClB,SAAS,CAAC,QAAQ;IAClB,SAAS,CAAC,aAAa;IACvB,SAAS,CAAC,IAAI;IACd,SAAS,CAAC,GAAG;IACb,QAAQ,CAAC,OAAO;IAChB,QAAQ,CAAC,OAAO;CACR,CAAC;AAIX,MAAM,CAAC,MAAM,uBAAuB,GAAG,uCAAuC,CAAC;AAC/E,MAAM,CAAC,MAAM,wBAAwB,GAAG,mCAAmC,CAAC;AAE5E,MAAM,CAAN,IAAY,cAGX;AAHD,WAAY,cAAc;IACxB,yCAAuB,CAAA;IACvB,mCAAiB,CAAA;AACnB,CAAC,EAHW,cAAc,KAAd,cAAc,QAGzB;AAED,MAAM,CAAC,MAAM,gBAAgB,GAAG,4CAA4C,CAAC;AAC7E,MAAM,CAAC,MAAM,2BAA2B,GACtC,4CAA4C,CAAC;AAC/C,MAAM,CAAC,MAAM,4BAA4B,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,SAAS;AAC9D,MAAM,CAAC,MAAM,6CAA6C,GAAG,GAAG,CAAC,CAAC,2EAA2E;AAE7I,MAAM,CAAC,MAAM,6BAA6B,GAAG,QAAQ,CAAC;AACtD,MAAM,CAAC,MAAM,kBAAkB,GAAG,KAAK,CAAC;AACxC,MAAM,CAAC,MAAM,mBAAmB,GAAG,EAAE,GAAG,IAAI,CAAC;AAC7C,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,CAAC;AAE3C,MAAM,CAAC,MAAM,sBAAsB,GAAG,kBAAkB,CAAC;AAEzD,MAAM,CAAC,MAAM,2BAA2B,GAA+B;IACrE,cAAc,EAAE,OAAO;IACvB,WAAW,EAAE,mBAAmB;IAChC,eAAe,EAAE,yBAAyB;IAC1C,OAAO,EAAE,KAAK;IACd,MAAM,EAAE,EAAE;CACX,CAAC;AAEF,MAAM,CAAC,MAAM,+BAA+B,GAA0B;IACpE,YAAY,EAAE;QACZ,eAAe,EAAE,WAAW;KAC7B;IACD,qBAAqB,EAAE,IAAI;IAC3B,MAAM,EAAE,EAAE;IACV,iBAAiB,EAAE,IAAI;IACvB,mBAAmB,EAAE,IAAI;IACzB,eAAe,EAAE,IAAI;IACrB,kBAAkB,EAAE,CAAC;IACrB,kBAAkB,EAAE,EAAE;IACtB,wCAAwC,EAAE,GAAG;CAC9C,CAAC;AAEF,MAAM,CAAC,MAAM,+BAA+B,GAAwB;IAClE,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,2BAA2B;CACjD,CAAC","sourcesContent":["import { AddressZero } from '@ethersproject/constants';\nimport { BtcScope, SolScope } from '@metamask/keyring-api';\nimport type { Hex } from '@metamask/utils';\n\nimport { CHAIN_IDS } from './chains';\nimport type {\n BridgeControllerState,\n FeatureFlagsPlatformConfig,\n} from '../types';\n\nexport const ALLOWED_BRIDGE_CHAIN_IDS = [\n CHAIN_IDS.MAINNET,\n CHAIN_IDS.BSC,\n CHAIN_IDS.POLYGON,\n CHAIN_IDS.ZKSYNC_ERA,\n CHAIN_IDS.AVALANCHE,\n CHAIN_IDS.OPTIMISM,\n CHAIN_IDS.ARBITRUM,\n CHAIN_IDS.LINEA_MAINNET,\n CHAIN_IDS.BASE,\n CHAIN_IDS.SEI,\n SolScope.Mainnet,\n BtcScope.Mainnet,\n] as const;\n\nexport type AllowedBridgeChainIds = (typeof ALLOWED_BRIDGE_CHAIN_IDS)[number];\n\nexport const BRIDGE_DEV_API_BASE_URL = 'https://bridge.dev-api.cx.metamask.io';\nexport const BRIDGE_PROD_API_BASE_URL = 'https://bridge.api.cx.metamask.io';\n\nexport enum BridgeClientId {\n EXTENSION = 'extension',\n MOBILE = 'mobile',\n}\n\nexport const ETH_USDT_ADDRESS = '0xdac17f958d2ee523a2206206994597c13d831ec7';\nexport const METABRIDGE_ETHEREUM_ADDRESS =\n '0x0439e60F02a8900a951603950d8D4527f400C3f1';\nexport const BRIDGE_QUOTE_MAX_ETA_SECONDS = 60 * 60; // 1 hour\nexport const BRIDGE_QUOTE_MAX_RETURN_DIFFERENCE_PERCENTAGE = 0.5; // if a quote returns in x times less return than the best quote, ignore it\n\nexport const BRIDGE_PREFERRED_GAS_ESTIMATE = 'medium';\nexport const BRIDGE_MM_FEE_RATE = 0.875;\nexport const REFRESH_INTERVAL_MS = 30 * 1000;\nexport const DEFAULT_MAX_REFRESH_COUNT = 5;\n\nexport const BRIDGE_CONTROLLER_NAME = 'BridgeController';\n\nexport const DEFAULT_FEATURE_FLAG_CONFIG: FeatureFlagsPlatformConfig = {\n minimumVersion: '0.0.0',\n refreshRate: REFRESH_INTERVAL_MS,\n maxRefreshCount: DEFAULT_MAX_REFRESH_COUNT,\n support: false,\n chains: {},\n};\n\nexport const DEFAULT_BRIDGE_CONTROLLER_STATE: BridgeControllerState = {\n quoteRequest: {\n srcTokenAddress: AddressZero,\n },\n quotesInitialLoadTime: null,\n quotes: [],\n quotesLastFetched: null,\n quotesLoadingStatus: null,\n quoteFetchError: null,\n quotesRefreshCount: 0,\n assetExchangeRates: {},\n minimumBalanceForRentExemptionInLamports: '0',\n};\n\nexport const METABRIDGE_CHAIN_TO_ADDRESS_MAP: Record<Hex, string> = {\n [CHAIN_IDS.MAINNET]: METABRIDGE_ETHEREUM_ADDRESS,\n};\n"]}
1
+ {"version":3,"file":"bridge.mjs","sourceRoot":"","sources":["../../src/constants/bridge.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,iCAAiC;AACvD,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,8BAA8B;AAG3D,OAAO,EAAE,SAAS,EAAE,qBAAiB;AAMrC,MAAM,CAAC,MAAM,wBAAwB,GAAG;IACtC,SAAS,CAAC,OAAO;IACjB,SAAS,CAAC,GAAG;IACb,SAAS,CAAC,OAAO;IACjB,SAAS,CAAC,UAAU;IACpB,SAAS,CAAC,SAAS;IACnB,SAAS,CAAC,QAAQ;IAClB,SAAS,CAAC,QAAQ;IAClB,SAAS,CAAC,aAAa;IACvB,SAAS,CAAC,IAAI;IACd,SAAS,CAAC,GAAG;IACb,SAAS,CAAC,KAAK;IACf,QAAQ,CAAC,OAAO;IAChB,QAAQ,CAAC,OAAO;CACR,CAAC;AAIX,MAAM,CAAC,MAAM,uBAAuB,GAAG,uCAAuC,CAAC;AAC/E,MAAM,CAAC,MAAM,wBAAwB,GAAG,mCAAmC,CAAC;AAE5E,MAAM,CAAN,IAAY,cAGX;AAHD,WAAY,cAAc;IACxB,yCAAuB,CAAA;IACvB,mCAAiB,CAAA;AACnB,CAAC,EAHW,cAAc,KAAd,cAAc,QAGzB;AAED,MAAM,CAAC,MAAM,gBAAgB,GAAG,4CAA4C,CAAC;AAC7E,MAAM,CAAC,MAAM,2BAA2B,GACtC,4CAA4C,CAAC;AAC/C,MAAM,CAAC,MAAM,4BAA4B,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,SAAS;AAC9D,MAAM,CAAC,MAAM,6CAA6C,GAAG,GAAG,CAAC,CAAC,2EAA2E;AAE7I,MAAM,CAAC,MAAM,6BAA6B,GAAG,QAAQ,CAAC;AACtD,MAAM,CAAC,MAAM,kBAAkB,GAAG,KAAK,CAAC;AACxC,MAAM,CAAC,MAAM,mBAAmB,GAAG,EAAE,GAAG,IAAI,CAAC;AAC7C,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,CAAC;AAE3C,MAAM,CAAC,MAAM,sBAAsB,GAAG,kBAAkB,CAAC;AAEzD,MAAM,CAAC,MAAM,2BAA2B,GAA+B;IACrE,cAAc,EAAE,OAAO;IACvB,WAAW,EAAE,mBAAmB;IAChC,eAAe,EAAE,yBAAyB;IAC1C,OAAO,EAAE,KAAK;IACd,MAAM,EAAE,EAAE;CACX,CAAC;AAEF,MAAM,CAAC,MAAM,+BAA+B,GAA0B;IACpE,YAAY,EAAE;QACZ,eAAe,EAAE,WAAW;KAC7B;IACD,qBAAqB,EAAE,IAAI;IAC3B,MAAM,EAAE,EAAE;IACV,iBAAiB,EAAE,IAAI;IACvB,mBAAmB,EAAE,IAAI;IACzB,eAAe,EAAE,IAAI;IACrB,kBAAkB,EAAE,CAAC;IACrB,kBAAkB,EAAE,EAAE;IACtB,wCAAwC,EAAE,GAAG;CAC9C,CAAC;AAEF,MAAM,CAAC,MAAM,+BAA+B,GAAwB;IAClE,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,2BAA2B;CACjD,CAAC","sourcesContent":["import { AddressZero } from '@ethersproject/constants';\nimport { BtcScope, SolScope } from '@metamask/keyring-api';\nimport type { Hex } from '@metamask/utils';\n\nimport { CHAIN_IDS } from './chains';\nimport type {\n BridgeControllerState,\n FeatureFlagsPlatformConfig,\n} from '../types';\n\nexport const ALLOWED_BRIDGE_CHAIN_IDS = [\n CHAIN_IDS.MAINNET,\n CHAIN_IDS.BSC,\n CHAIN_IDS.POLYGON,\n CHAIN_IDS.ZKSYNC_ERA,\n CHAIN_IDS.AVALANCHE,\n CHAIN_IDS.OPTIMISM,\n CHAIN_IDS.ARBITRUM,\n CHAIN_IDS.LINEA_MAINNET,\n CHAIN_IDS.BASE,\n CHAIN_IDS.SEI,\n CHAIN_IDS.MONAD,\n SolScope.Mainnet,\n BtcScope.Mainnet,\n] as const;\n\nexport type AllowedBridgeChainIds = (typeof ALLOWED_BRIDGE_CHAIN_IDS)[number];\n\nexport const BRIDGE_DEV_API_BASE_URL = 'https://bridge.dev-api.cx.metamask.io';\nexport const BRIDGE_PROD_API_BASE_URL = 'https://bridge.api.cx.metamask.io';\n\nexport enum BridgeClientId {\n EXTENSION = 'extension',\n MOBILE = 'mobile',\n}\n\nexport const ETH_USDT_ADDRESS = '0xdac17f958d2ee523a2206206994597c13d831ec7';\nexport const METABRIDGE_ETHEREUM_ADDRESS =\n '0x0439e60F02a8900a951603950d8D4527f400C3f1';\nexport const BRIDGE_QUOTE_MAX_ETA_SECONDS = 60 * 60; // 1 hour\nexport const BRIDGE_QUOTE_MAX_RETURN_DIFFERENCE_PERCENTAGE = 0.5; // if a quote returns in x times less return than the best quote, ignore it\n\nexport const BRIDGE_PREFERRED_GAS_ESTIMATE = 'medium';\nexport const BRIDGE_MM_FEE_RATE = 0.875;\nexport const REFRESH_INTERVAL_MS = 30 * 1000;\nexport const DEFAULT_MAX_REFRESH_COUNT = 5;\n\nexport const BRIDGE_CONTROLLER_NAME = 'BridgeController';\n\nexport const DEFAULT_FEATURE_FLAG_CONFIG: FeatureFlagsPlatformConfig = {\n minimumVersion: '0.0.0',\n refreshRate: REFRESH_INTERVAL_MS,\n maxRefreshCount: DEFAULT_MAX_REFRESH_COUNT,\n support: false,\n chains: {},\n};\n\nexport const DEFAULT_BRIDGE_CONTROLLER_STATE: BridgeControllerState = {\n quoteRequest: {\n srcTokenAddress: AddressZero,\n },\n quotesInitialLoadTime: null,\n quotes: [],\n quotesLastFetched: null,\n quotesLoadingStatus: null,\n quoteFetchError: null,\n quotesRefreshCount: 0,\n assetExchangeRates: {},\n minimumBalanceForRentExemptionInLamports: '0',\n};\n\nexport const METABRIDGE_CHAIN_TO_ADDRESS_MAP: Record<Hex, string> = {\n [CHAIN_IDS.MAINNET]: METABRIDGE_ETHEREUM_ADDRESS,\n};\n"]}
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.NETWORK_TO_NAME_MAP = exports.SEI_DISPLAY_NAME = exports.MODE_DISPLAY_NAME = exports.MODE_SEPOLIA_DISPLAY_NAME = exports.SONEIUM_DISPLAY_NAME = exports.INK_DISPLAY_NAME = exports.INK_SEPOLIA_DISPLAY_NAME = exports.LISK_SEPOLIA_DISPLAY_NAME = exports.LISK_DISPLAY_NAME = exports.METACHAIN_ONE_DISPLAY_NAME = exports.BERACHAIN_DISPLAY_NAME = exports.OP_BNB_DISPLAY_NAME = exports.SCROLL_SEPOLIA_DISPLAY_NAME = exports.SCROLL_DISPLAY_NAME = exports.MOONRIVER_DISPLAY_NAME = exports.MOONBEAM_DISPLAY_NAME = exports.POLYGON_ZKEVM_DISPLAY_NAME = exports.CRONOS_DISPLAY_NAME = exports.AURORA_DISPLAY_NAME = exports.BASE_DISPLAY_NAME = exports.ZK_SYNC_ERA_DISPLAY_NAME = exports.GNOSIS_DISPLAY_NAME = exports.CELO_DISPLAY_NAME = exports.PALM_DISPLAY_NAME = exports.HARMONY_DISPLAY_NAME = exports.FANTOM_DISPLAY_NAME = exports.OPTIMISM_DISPLAY_NAME = exports.BNB_DISPLAY_NAME = exports.ARBITRUM_DISPLAY_NAME = exports.AVALANCHE_DISPLAY_NAME = exports.POLYGON_DISPLAY_NAME = exports.BSC_DISPLAY_NAME = exports.LOCALHOST_DISPLAY_NAME = exports.LINEA_MAINNET_DISPLAY_NAME = exports.LINEA_SEPOLIA_DISPLAY_NAME = exports.LINEA_GOERLI_DISPLAY_NAME = exports.SEPOLIA_DISPLAY_NAME = exports.GOERLI_DISPLAY_NAME = exports.MAINNET_DISPLAY_NAME = exports.NETWORK_TYPES = exports.CHAIN_IDS = void 0;
3
+ exports.NETWORK_TO_NAME_MAP = exports.MONAD_DISPLAY_NAME = exports.SEI_DISPLAY_NAME = exports.MODE_DISPLAY_NAME = exports.MODE_SEPOLIA_DISPLAY_NAME = exports.SONEIUM_DISPLAY_NAME = exports.INK_DISPLAY_NAME = exports.INK_SEPOLIA_DISPLAY_NAME = exports.LISK_SEPOLIA_DISPLAY_NAME = exports.LISK_DISPLAY_NAME = exports.METACHAIN_ONE_DISPLAY_NAME = exports.BERACHAIN_DISPLAY_NAME = exports.OP_BNB_DISPLAY_NAME = exports.SCROLL_SEPOLIA_DISPLAY_NAME = exports.SCROLL_DISPLAY_NAME = exports.MOONRIVER_DISPLAY_NAME = exports.MOONBEAM_DISPLAY_NAME = exports.POLYGON_ZKEVM_DISPLAY_NAME = exports.CRONOS_DISPLAY_NAME = exports.AURORA_DISPLAY_NAME = exports.BASE_DISPLAY_NAME = exports.ZK_SYNC_ERA_DISPLAY_NAME = exports.GNOSIS_DISPLAY_NAME = exports.CELO_DISPLAY_NAME = exports.PALM_DISPLAY_NAME = exports.HARMONY_DISPLAY_NAME = exports.FANTOM_DISPLAY_NAME = exports.OPTIMISM_DISPLAY_NAME = exports.BNB_DISPLAY_NAME = exports.ARBITRUM_DISPLAY_NAME = exports.AVALANCHE_DISPLAY_NAME = exports.POLYGON_DISPLAY_NAME = exports.BSC_DISPLAY_NAME = exports.LOCALHOST_DISPLAY_NAME = exports.LINEA_MAINNET_DISPLAY_NAME = exports.LINEA_SEPOLIA_DISPLAY_NAME = exports.LINEA_GOERLI_DISPLAY_NAME = exports.SEPOLIA_DISPLAY_NAME = exports.GOERLI_DISPLAY_NAME = exports.MAINNET_DISPLAY_NAME = exports.NETWORK_TYPES = exports.CHAIN_IDS = void 0;
4
4
  /**
5
5
  * An object containing all of the chain ids for networks both built in and
6
6
  * those that we have added custom code to support our feature set.
@@ -77,6 +77,7 @@ exports.CHAIN_IDS = {
77
77
  INK: '0xdef1',
78
78
  MODE_SEPOLIA: '0x397',
79
79
  MODE: '0x868b',
80
+ MONAD: '0x8f',
80
81
  };
81
82
  exports.NETWORK_TYPES = {
82
83
  GOERLI: 'goerli',
@@ -125,6 +126,7 @@ exports.SONEIUM_DISPLAY_NAME = 'Soneium Mainnet';
125
126
  exports.MODE_SEPOLIA_DISPLAY_NAME = 'Mode Sepolia';
126
127
  exports.MODE_DISPLAY_NAME = 'Mode Mainnet';
127
128
  exports.SEI_DISPLAY_NAME = 'Sei Network';
129
+ exports.MONAD_DISPLAY_NAME = 'Monad';
128
130
  exports.NETWORK_TO_NAME_MAP = {
129
131
  [exports.NETWORK_TYPES.GOERLI]: exports.GOERLI_DISPLAY_NAME,
130
132
  [exports.NETWORK_TYPES.MAINNET]: exports.MAINNET_DISPLAY_NAME,
@@ -155,5 +157,6 @@ exports.NETWORK_TO_NAME_MAP = {
155
157
  [exports.CHAIN_IDS.LISK]: exports.LISK_DISPLAY_NAME,
156
158
  [exports.CHAIN_IDS.LISK_SEPOLIA]: exports.LISK_SEPOLIA_DISPLAY_NAME,
157
159
  [exports.CHAIN_IDS.SEI]: exports.SEI_DISPLAY_NAME,
160
+ [exports.CHAIN_IDS.MONAD]: exports.MONAD_DISPLAY_NAME,
158
161
  };
159
162
  //# sourceMappingURL=chains.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"chains.cjs","sourceRoot":"","sources":["../../src/constants/chains.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * An object containing all of the chain ids for networks both built in and\n * those that we have added custom code to support our feature set.\n */\nexport const CHAIN_IDS = {\n MAINNET: '0x1',\n GOERLI: '0x5',\n LOCALHOST: '0x539',\n BSC: '0x38',\n BSC_TESTNET: '0x61',\n OPTIMISM: '0xa',\n OPTIMISM_TESTNET: '0xaa37dc',\n OPTIMISM_GOERLI: '0x1a4',\n BASE: '0x2105',\n BASE_TESTNET: '0x14a33',\n OPBNB: '0xcc',\n OPBNB_TESTNET: '0x15eb',\n POLYGON: '0x89',\n POLYGON_TESTNET: '0x13881',\n AVALANCHE: '0xa86a',\n AVALANCHE_TESTNET: '0xa869',\n FANTOM: '0xfa',\n FANTOM_TESTNET: '0xfa2',\n CELO: '0xa4ec',\n ARBITRUM: '0xa4b1',\n HARMONY: '0x63564c40',\n PALM: '0x2a15c308d',\n SEPOLIA: '0xaa36a7',\n HOLESKY: '0x4268',\n LINEA_GOERLI: '0xe704',\n LINEA_SEPOLIA: '0xe705',\n AMOY: '0x13882',\n BASE_SEPOLIA: '0x14a34',\n BLAST_SEPOLIA: '0xa0c71fd',\n OPTIMISM_SEPOLIA: '0xaa37dc',\n PALM_TESTNET: '0x2a15c3083',\n CELO_TESTNET: '0xaef3',\n ZK_SYNC_ERA_TESTNET: '0x12c',\n MANTA_SEPOLIA: '0x138b',\n UNICHAIN_SEPOLIA: '0x515',\n LINEA_MAINNET: '0xe708',\n AURORA: '0x4e454152',\n MOONBEAM: '0x504',\n MOONBEAM_TESTNET: '0x507',\n MOONRIVER: '0x505',\n CRONOS: '0x19',\n GNOSIS: '0x64',\n ZKSYNC_ERA: '0x144',\n TEST_ETH: '0x539',\n ARBITRUM_GOERLI: '0x66eed',\n BLAST: '0x13e31',\n FILECOIN: '0x13a',\n POLYGON_ZKEVM: '0x44d',\n SCROLL: '0x82750',\n SCROLL_SEPOLIA: '0x8274f',\n WETHIO: '0x4e',\n CHZ: '0x15b38',\n NUMBERS: '0x290b',\n SEI: '0x531',\n APE_TESTNET: '0x8157',\n APE_MAINNET: '0x8173',\n BERACHAIN: '0x138d5',\n METACHAIN_ONE: '0x1b6e6',\n ARBITRUM_SEPOLIA: '0x66eee',\n NEAR: '0x18d',\n NEAR_TESTNET: '0x18e',\n B3: '0x208d',\n B3_TESTNET: '0x7c9',\n GRAVITY_ALPHA_MAINNET: '0x659',\n GRAVITY_ALPHA_TESTNET_SEPOLIA: '0x34c1',\n LISK: '0x46f',\n LISK_SEPOLIA: '0x106a',\n INK_SEPOLIA: '0xba5eD',\n INK: '0xdef1',\n MODE_SEPOLIA: '0x397',\n MODE: '0x868b',\n} as const;\n\nexport const NETWORK_TYPES = {\n GOERLI: 'goerli',\n LOCALHOST: 'localhost',\n MAINNET: 'mainnet',\n SEPOLIA: 'sepolia',\n LINEA_GOERLI: 'linea-goerli',\n LINEA_SEPOLIA: 'linea-sepolia',\n LINEA_MAINNET: 'linea-mainnet',\n} as const;\n\nexport const MAINNET_DISPLAY_NAME = 'Ethereum Mainnet';\nexport const GOERLI_DISPLAY_NAME = 'Goerli';\nexport const SEPOLIA_DISPLAY_NAME = 'Sepolia';\nexport const LINEA_GOERLI_DISPLAY_NAME = 'Linea Goerli';\nexport const LINEA_SEPOLIA_DISPLAY_NAME = 'Linea Sepolia';\nexport const LINEA_MAINNET_DISPLAY_NAME = 'Linea Mainnet';\nexport const LOCALHOST_DISPLAY_NAME = 'Localhost 8545';\nexport const BSC_DISPLAY_NAME = 'Binance Smart Chain';\nexport const POLYGON_DISPLAY_NAME = 'Polygon';\nexport const AVALANCHE_DISPLAY_NAME = 'Avalanche Network C-Chain';\nexport const ARBITRUM_DISPLAY_NAME = 'Arbitrum One';\nexport const BNB_DISPLAY_NAME = 'BNB Chain';\nexport const OPTIMISM_DISPLAY_NAME = 'OP Mainnet';\nexport const FANTOM_DISPLAY_NAME = 'Fantom Opera';\nexport const HARMONY_DISPLAY_NAME = 'Harmony Mainnet Shard 0';\nexport const PALM_DISPLAY_NAME = 'Palm';\nexport const CELO_DISPLAY_NAME = 'Celo Mainnet';\nexport const GNOSIS_DISPLAY_NAME = 'Gnosis';\nexport const ZK_SYNC_ERA_DISPLAY_NAME = 'zkSync Era Mainnet';\nexport const BASE_DISPLAY_NAME = 'Base Mainnet';\nexport const AURORA_DISPLAY_NAME = 'Aurora Mainnet';\nexport const CRONOS_DISPLAY_NAME = 'Cronos';\nexport const POLYGON_ZKEVM_DISPLAY_NAME = 'Polygon zkEVM';\nexport const MOONBEAM_DISPLAY_NAME = 'Moonbeam';\nexport const MOONRIVER_DISPLAY_NAME = 'Moonriver';\nexport const SCROLL_DISPLAY_NAME = 'Scroll';\nexport const SCROLL_SEPOLIA_DISPLAY_NAME = 'Scroll Sepolia';\nexport const OP_BNB_DISPLAY_NAME = 'opBNB';\nexport const BERACHAIN_DISPLAY_NAME = 'Berachain Artio';\nexport const METACHAIN_ONE_DISPLAY_NAME = 'Metachain One Mainnet';\nexport const LISK_DISPLAY_NAME = 'Lisk';\nexport const LISK_SEPOLIA_DISPLAY_NAME = 'Lisk Sepolia';\nexport const INK_SEPOLIA_DISPLAY_NAME = 'Ink Sepolia';\nexport const INK_DISPLAY_NAME = 'Ink Mainnet';\nexport const SONEIUM_DISPLAY_NAME = 'Soneium Mainnet';\nexport const MODE_SEPOLIA_DISPLAY_NAME = 'Mode Sepolia';\nexport const MODE_DISPLAY_NAME = 'Mode Mainnet';\nexport const SEI_DISPLAY_NAME = 'Sei Network';\n\nexport const NETWORK_TO_NAME_MAP = {\n [NETWORK_TYPES.GOERLI]: GOERLI_DISPLAY_NAME,\n [NETWORK_TYPES.MAINNET]: MAINNET_DISPLAY_NAME,\n [NETWORK_TYPES.LINEA_GOERLI]: LINEA_GOERLI_DISPLAY_NAME,\n [NETWORK_TYPES.LINEA_SEPOLIA]: LINEA_SEPOLIA_DISPLAY_NAME,\n [NETWORK_TYPES.LINEA_MAINNET]: LINEA_MAINNET_DISPLAY_NAME,\n [NETWORK_TYPES.LOCALHOST]: LOCALHOST_DISPLAY_NAME,\n [NETWORK_TYPES.SEPOLIA]: SEPOLIA_DISPLAY_NAME,\n\n [CHAIN_IDS.ARBITRUM]: ARBITRUM_DISPLAY_NAME,\n [CHAIN_IDS.AVALANCHE]: AVALANCHE_DISPLAY_NAME,\n [CHAIN_IDS.BSC]: BSC_DISPLAY_NAME,\n [CHAIN_IDS.BASE]: BASE_DISPLAY_NAME,\n [CHAIN_IDS.GOERLI]: GOERLI_DISPLAY_NAME,\n [CHAIN_IDS.MAINNET]: MAINNET_DISPLAY_NAME,\n [CHAIN_IDS.LINEA_GOERLI]: LINEA_GOERLI_DISPLAY_NAME,\n [CHAIN_IDS.LINEA_MAINNET]: LINEA_MAINNET_DISPLAY_NAME,\n [CHAIN_IDS.LINEA_SEPOLIA]: LINEA_SEPOLIA_DISPLAY_NAME,\n [CHAIN_IDS.LOCALHOST]: LOCALHOST_DISPLAY_NAME,\n [CHAIN_IDS.OPTIMISM]: OPTIMISM_DISPLAY_NAME,\n [CHAIN_IDS.POLYGON]: POLYGON_DISPLAY_NAME,\n [CHAIN_IDS.SCROLL]: SCROLL_DISPLAY_NAME,\n [CHAIN_IDS.SCROLL_SEPOLIA]: SCROLL_SEPOLIA_DISPLAY_NAME,\n [CHAIN_IDS.SEPOLIA]: SEPOLIA_DISPLAY_NAME,\n [CHAIN_IDS.OPBNB]: OP_BNB_DISPLAY_NAME,\n [CHAIN_IDS.ZKSYNC_ERA]: ZK_SYNC_ERA_DISPLAY_NAME,\n [CHAIN_IDS.BERACHAIN]: BERACHAIN_DISPLAY_NAME,\n [CHAIN_IDS.METACHAIN_ONE]: METACHAIN_ONE_DISPLAY_NAME,\n [CHAIN_IDS.LISK]: LISK_DISPLAY_NAME,\n [CHAIN_IDS.LISK_SEPOLIA]: LISK_SEPOLIA_DISPLAY_NAME,\n [CHAIN_IDS.SEI]: SEI_DISPLAY_NAME,\n} as const;\n"]}
1
+ {"version":3,"file":"chains.cjs","sourceRoot":"","sources":["../../src/constants/chains.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * An object containing all of the chain ids for networks both built in and\n * those that we have added custom code to support our feature set.\n */\nexport const CHAIN_IDS = {\n MAINNET: '0x1',\n GOERLI: '0x5',\n LOCALHOST: '0x539',\n BSC: '0x38',\n BSC_TESTNET: '0x61',\n OPTIMISM: '0xa',\n OPTIMISM_TESTNET: '0xaa37dc',\n OPTIMISM_GOERLI: '0x1a4',\n BASE: '0x2105',\n BASE_TESTNET: '0x14a33',\n OPBNB: '0xcc',\n OPBNB_TESTNET: '0x15eb',\n POLYGON: '0x89',\n POLYGON_TESTNET: '0x13881',\n AVALANCHE: '0xa86a',\n AVALANCHE_TESTNET: '0xa869',\n FANTOM: '0xfa',\n FANTOM_TESTNET: '0xfa2',\n CELO: '0xa4ec',\n ARBITRUM: '0xa4b1',\n HARMONY: '0x63564c40',\n PALM: '0x2a15c308d',\n SEPOLIA: '0xaa36a7',\n HOLESKY: '0x4268',\n LINEA_GOERLI: '0xe704',\n LINEA_SEPOLIA: '0xe705',\n AMOY: '0x13882',\n BASE_SEPOLIA: '0x14a34',\n BLAST_SEPOLIA: '0xa0c71fd',\n OPTIMISM_SEPOLIA: '0xaa37dc',\n PALM_TESTNET: '0x2a15c3083',\n CELO_TESTNET: '0xaef3',\n ZK_SYNC_ERA_TESTNET: '0x12c',\n MANTA_SEPOLIA: '0x138b',\n UNICHAIN_SEPOLIA: '0x515',\n LINEA_MAINNET: '0xe708',\n AURORA: '0x4e454152',\n MOONBEAM: '0x504',\n MOONBEAM_TESTNET: '0x507',\n MOONRIVER: '0x505',\n CRONOS: '0x19',\n GNOSIS: '0x64',\n ZKSYNC_ERA: '0x144',\n TEST_ETH: '0x539',\n ARBITRUM_GOERLI: '0x66eed',\n BLAST: '0x13e31',\n FILECOIN: '0x13a',\n POLYGON_ZKEVM: '0x44d',\n SCROLL: '0x82750',\n SCROLL_SEPOLIA: '0x8274f',\n WETHIO: '0x4e',\n CHZ: '0x15b38',\n NUMBERS: '0x290b',\n SEI: '0x531',\n APE_TESTNET: '0x8157',\n APE_MAINNET: '0x8173',\n BERACHAIN: '0x138d5',\n METACHAIN_ONE: '0x1b6e6',\n ARBITRUM_SEPOLIA: '0x66eee',\n NEAR: '0x18d',\n NEAR_TESTNET: '0x18e',\n B3: '0x208d',\n B3_TESTNET: '0x7c9',\n GRAVITY_ALPHA_MAINNET: '0x659',\n GRAVITY_ALPHA_TESTNET_SEPOLIA: '0x34c1',\n LISK: '0x46f',\n LISK_SEPOLIA: '0x106a',\n INK_SEPOLIA: '0xba5eD',\n INK: '0xdef1',\n MODE_SEPOLIA: '0x397',\n MODE: '0x868b',\n MONAD: '0x8f',\n} as const;\n\nexport const NETWORK_TYPES = {\n GOERLI: 'goerli',\n LOCALHOST: 'localhost',\n MAINNET: 'mainnet',\n SEPOLIA: 'sepolia',\n LINEA_GOERLI: 'linea-goerli',\n LINEA_SEPOLIA: 'linea-sepolia',\n LINEA_MAINNET: 'linea-mainnet',\n} as const;\n\nexport const MAINNET_DISPLAY_NAME = 'Ethereum Mainnet';\nexport const GOERLI_DISPLAY_NAME = 'Goerli';\nexport const SEPOLIA_DISPLAY_NAME = 'Sepolia';\nexport const LINEA_GOERLI_DISPLAY_NAME = 'Linea Goerli';\nexport const LINEA_SEPOLIA_DISPLAY_NAME = 'Linea Sepolia';\nexport const LINEA_MAINNET_DISPLAY_NAME = 'Linea Mainnet';\nexport const LOCALHOST_DISPLAY_NAME = 'Localhost 8545';\nexport const BSC_DISPLAY_NAME = 'Binance Smart Chain';\nexport const POLYGON_DISPLAY_NAME = 'Polygon';\nexport const AVALANCHE_DISPLAY_NAME = 'Avalanche Network C-Chain';\nexport const ARBITRUM_DISPLAY_NAME = 'Arbitrum One';\nexport const BNB_DISPLAY_NAME = 'BNB Chain';\nexport const OPTIMISM_DISPLAY_NAME = 'OP Mainnet';\nexport const FANTOM_DISPLAY_NAME = 'Fantom Opera';\nexport const HARMONY_DISPLAY_NAME = 'Harmony Mainnet Shard 0';\nexport const PALM_DISPLAY_NAME = 'Palm';\nexport const CELO_DISPLAY_NAME = 'Celo Mainnet';\nexport const GNOSIS_DISPLAY_NAME = 'Gnosis';\nexport const ZK_SYNC_ERA_DISPLAY_NAME = 'zkSync Era Mainnet';\nexport const BASE_DISPLAY_NAME = 'Base Mainnet';\nexport const AURORA_DISPLAY_NAME = 'Aurora Mainnet';\nexport const CRONOS_DISPLAY_NAME = 'Cronos';\nexport const POLYGON_ZKEVM_DISPLAY_NAME = 'Polygon zkEVM';\nexport const MOONBEAM_DISPLAY_NAME = 'Moonbeam';\nexport const MOONRIVER_DISPLAY_NAME = 'Moonriver';\nexport const SCROLL_DISPLAY_NAME = 'Scroll';\nexport const SCROLL_SEPOLIA_DISPLAY_NAME = 'Scroll Sepolia';\nexport const OP_BNB_DISPLAY_NAME = 'opBNB';\nexport const BERACHAIN_DISPLAY_NAME = 'Berachain Artio';\nexport const METACHAIN_ONE_DISPLAY_NAME = 'Metachain One Mainnet';\nexport const LISK_DISPLAY_NAME = 'Lisk';\nexport const LISK_SEPOLIA_DISPLAY_NAME = 'Lisk Sepolia';\nexport const INK_SEPOLIA_DISPLAY_NAME = 'Ink Sepolia';\nexport const INK_DISPLAY_NAME = 'Ink Mainnet';\nexport const SONEIUM_DISPLAY_NAME = 'Soneium Mainnet';\nexport const MODE_SEPOLIA_DISPLAY_NAME = 'Mode Sepolia';\nexport const MODE_DISPLAY_NAME = 'Mode Mainnet';\nexport const SEI_DISPLAY_NAME = 'Sei Network';\nexport const MONAD_DISPLAY_NAME = 'Monad';\n\nexport const NETWORK_TO_NAME_MAP = {\n [NETWORK_TYPES.GOERLI]: GOERLI_DISPLAY_NAME,\n [NETWORK_TYPES.MAINNET]: MAINNET_DISPLAY_NAME,\n [NETWORK_TYPES.LINEA_GOERLI]: LINEA_GOERLI_DISPLAY_NAME,\n [NETWORK_TYPES.LINEA_SEPOLIA]: LINEA_SEPOLIA_DISPLAY_NAME,\n [NETWORK_TYPES.LINEA_MAINNET]: LINEA_MAINNET_DISPLAY_NAME,\n [NETWORK_TYPES.LOCALHOST]: LOCALHOST_DISPLAY_NAME,\n [NETWORK_TYPES.SEPOLIA]: SEPOLIA_DISPLAY_NAME,\n\n [CHAIN_IDS.ARBITRUM]: ARBITRUM_DISPLAY_NAME,\n [CHAIN_IDS.AVALANCHE]: AVALANCHE_DISPLAY_NAME,\n [CHAIN_IDS.BSC]: BSC_DISPLAY_NAME,\n [CHAIN_IDS.BASE]: BASE_DISPLAY_NAME,\n [CHAIN_IDS.GOERLI]: GOERLI_DISPLAY_NAME,\n [CHAIN_IDS.MAINNET]: MAINNET_DISPLAY_NAME,\n [CHAIN_IDS.LINEA_GOERLI]: LINEA_GOERLI_DISPLAY_NAME,\n [CHAIN_IDS.LINEA_MAINNET]: LINEA_MAINNET_DISPLAY_NAME,\n [CHAIN_IDS.LINEA_SEPOLIA]: LINEA_SEPOLIA_DISPLAY_NAME,\n [CHAIN_IDS.LOCALHOST]: LOCALHOST_DISPLAY_NAME,\n [CHAIN_IDS.OPTIMISM]: OPTIMISM_DISPLAY_NAME,\n [CHAIN_IDS.POLYGON]: POLYGON_DISPLAY_NAME,\n [CHAIN_IDS.SCROLL]: SCROLL_DISPLAY_NAME,\n [CHAIN_IDS.SCROLL_SEPOLIA]: SCROLL_SEPOLIA_DISPLAY_NAME,\n [CHAIN_IDS.SEPOLIA]: SEPOLIA_DISPLAY_NAME,\n [CHAIN_IDS.OPBNB]: OP_BNB_DISPLAY_NAME,\n [CHAIN_IDS.ZKSYNC_ERA]: ZK_SYNC_ERA_DISPLAY_NAME,\n [CHAIN_IDS.BERACHAIN]: BERACHAIN_DISPLAY_NAME,\n [CHAIN_IDS.METACHAIN_ONE]: METACHAIN_ONE_DISPLAY_NAME,\n [CHAIN_IDS.LISK]: LISK_DISPLAY_NAME,\n [CHAIN_IDS.LISK_SEPOLIA]: LISK_SEPOLIA_DISPLAY_NAME,\n [CHAIN_IDS.SEI]: SEI_DISPLAY_NAME,\n [CHAIN_IDS.MONAD]: MONAD_DISPLAY_NAME,\n} as const;\n"]}
@@ -74,6 +74,7 @@ export declare const CHAIN_IDS: {
74
74
  readonly INK: "0xdef1";
75
75
  readonly MODE_SEPOLIA: "0x397";
76
76
  readonly MODE: "0x868b";
77
+ readonly MONAD: "0x8f";
77
78
  };
78
79
  export declare const NETWORK_TYPES: {
79
80
  readonly GOERLI: "goerli";
@@ -122,6 +123,7 @@ export declare const SONEIUM_DISPLAY_NAME = "Soneium Mainnet";
122
123
  export declare const MODE_SEPOLIA_DISPLAY_NAME = "Mode Sepolia";
123
124
  export declare const MODE_DISPLAY_NAME = "Mode Mainnet";
124
125
  export declare const SEI_DISPLAY_NAME = "Sei Network";
126
+ export declare const MONAD_DISPLAY_NAME = "Monad";
125
127
  export declare const NETWORK_TO_NAME_MAP: {
126
128
  readonly goerli: "Goerli";
127
129
  readonly mainnet: "Ethereum Mainnet";
@@ -152,5 +154,6 @@ export declare const NETWORK_TO_NAME_MAP: {
152
154
  readonly "0x46f": "Lisk";
153
155
  readonly "0x106a": "Lisk Sepolia";
154
156
  readonly "0x531": "Sei Network";
157
+ readonly "0x8f": "Monad";
155
158
  };
156
159
  //# sourceMappingURL=chains.d.cts.map
@@ -1 +1 @@
1
- {"version":3,"file":"chains.d.cts","sourceRoot":"","sources":["../../src/constants/chains.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAwEZ,CAAC;AAEX,eAAO,MAAM,aAAa;;;;;;;;CAQhB,CAAC;AAEX,eAAO,MAAM,oBAAoB,qBAAqB,CAAC;AACvD,eAAO,MAAM,mBAAmB,WAAW,CAAC;AAC5C,eAAO,MAAM,oBAAoB,YAAY,CAAC;AAC9C,eAAO,MAAM,yBAAyB,iBAAiB,CAAC;AACxD,eAAO,MAAM,0BAA0B,kBAAkB,CAAC;AAC1D,eAAO,MAAM,0BAA0B,kBAAkB,CAAC;AAC1D,eAAO,MAAM,sBAAsB,mBAAmB,CAAC;AACvD,eAAO,MAAM,gBAAgB,wBAAwB,CAAC;AACtD,eAAO,MAAM,oBAAoB,YAAY,CAAC;AAC9C,eAAO,MAAM,sBAAsB,8BAA8B,CAAC;AAClE,eAAO,MAAM,qBAAqB,iBAAiB,CAAC;AACpD,eAAO,MAAM,gBAAgB,cAAc,CAAC;AAC5C,eAAO,MAAM,qBAAqB,eAAe,CAAC;AAClD,eAAO,MAAM,mBAAmB,iBAAiB,CAAC;AAClD,eAAO,MAAM,oBAAoB,4BAA4B,CAAC;AAC9D,eAAO,MAAM,iBAAiB,SAAS,CAAC;AACxC,eAAO,MAAM,iBAAiB,iBAAiB,CAAC;AAChD,eAAO,MAAM,mBAAmB,WAAW,CAAC;AAC5C,eAAO,MAAM,wBAAwB,uBAAuB,CAAC;AAC7D,eAAO,MAAM,iBAAiB,iBAAiB,CAAC;AAChD,eAAO,MAAM,mBAAmB,mBAAmB,CAAC;AACpD,eAAO,MAAM,mBAAmB,WAAW,CAAC;AAC5C,eAAO,MAAM,0BAA0B,kBAAkB,CAAC;AAC1D,eAAO,MAAM,qBAAqB,aAAa,CAAC;AAChD,eAAO,MAAM,sBAAsB,cAAc,CAAC;AAClD,eAAO,MAAM,mBAAmB,WAAW,CAAC;AAC5C,eAAO,MAAM,2BAA2B,mBAAmB,CAAC;AAC5D,eAAO,MAAM,mBAAmB,UAAU,CAAC;AAC3C,eAAO,MAAM,sBAAsB,oBAAoB,CAAC;AACxD,eAAO,MAAM,0BAA0B,0BAA0B,CAAC;AAClE,eAAO,MAAM,iBAAiB,SAAS,CAAC;AACxC,eAAO,MAAM,yBAAyB,iBAAiB,CAAC;AACxD,eAAO,MAAM,wBAAwB,gBAAgB,CAAC;AACtD,eAAO,MAAM,gBAAgB,gBAAgB,CAAC;AAC9C,eAAO,MAAM,oBAAoB,oBAAoB,CAAC;AACtD,eAAO,MAAM,yBAAyB,iBAAiB,CAAC;AACxD,eAAO,MAAM,iBAAiB,iBAAiB,CAAC;AAChD,eAAO,MAAM,gBAAgB,gBAAgB,CAAC;AAE9C,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA+BtB,CAAC"}
1
+ {"version":3,"file":"chains.d.cts","sourceRoot":"","sources":["../../src/constants/chains.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAyEZ,CAAC;AAEX,eAAO,MAAM,aAAa;;;;;;;;CAQhB,CAAC;AAEX,eAAO,MAAM,oBAAoB,qBAAqB,CAAC;AACvD,eAAO,MAAM,mBAAmB,WAAW,CAAC;AAC5C,eAAO,MAAM,oBAAoB,YAAY,CAAC;AAC9C,eAAO,MAAM,yBAAyB,iBAAiB,CAAC;AACxD,eAAO,MAAM,0BAA0B,kBAAkB,CAAC;AAC1D,eAAO,MAAM,0BAA0B,kBAAkB,CAAC;AAC1D,eAAO,MAAM,sBAAsB,mBAAmB,CAAC;AACvD,eAAO,MAAM,gBAAgB,wBAAwB,CAAC;AACtD,eAAO,MAAM,oBAAoB,YAAY,CAAC;AAC9C,eAAO,MAAM,sBAAsB,8BAA8B,CAAC;AAClE,eAAO,MAAM,qBAAqB,iBAAiB,CAAC;AACpD,eAAO,MAAM,gBAAgB,cAAc,CAAC;AAC5C,eAAO,MAAM,qBAAqB,eAAe,CAAC;AAClD,eAAO,MAAM,mBAAmB,iBAAiB,CAAC;AAClD,eAAO,MAAM,oBAAoB,4BAA4B,CAAC;AAC9D,eAAO,MAAM,iBAAiB,SAAS,CAAC;AACxC,eAAO,MAAM,iBAAiB,iBAAiB,CAAC;AAChD,eAAO,MAAM,mBAAmB,WAAW,CAAC;AAC5C,eAAO,MAAM,wBAAwB,uBAAuB,CAAC;AAC7D,eAAO,MAAM,iBAAiB,iBAAiB,CAAC;AAChD,eAAO,MAAM,mBAAmB,mBAAmB,CAAC;AACpD,eAAO,MAAM,mBAAmB,WAAW,CAAC;AAC5C,eAAO,MAAM,0BAA0B,kBAAkB,CAAC;AAC1D,eAAO,MAAM,qBAAqB,aAAa,CAAC;AAChD,eAAO,MAAM,sBAAsB,cAAc,CAAC;AAClD,eAAO,MAAM,mBAAmB,WAAW,CAAC;AAC5C,eAAO,MAAM,2BAA2B,mBAAmB,CAAC;AAC5D,eAAO,MAAM,mBAAmB,UAAU,CAAC;AAC3C,eAAO,MAAM,sBAAsB,oBAAoB,CAAC;AACxD,eAAO,MAAM,0BAA0B,0BAA0B,CAAC;AAClE,eAAO,MAAM,iBAAiB,SAAS,CAAC;AACxC,eAAO,MAAM,yBAAyB,iBAAiB,CAAC;AACxD,eAAO,MAAM,wBAAwB,gBAAgB,CAAC;AACtD,eAAO,MAAM,gBAAgB,gBAAgB,CAAC;AAC9C,eAAO,MAAM,oBAAoB,oBAAoB,CAAC;AACtD,eAAO,MAAM,yBAAyB,iBAAiB,CAAC;AACxD,eAAO,MAAM,iBAAiB,iBAAiB,CAAC;AAChD,eAAO,MAAM,gBAAgB,gBAAgB,CAAC;AAC9C,eAAO,MAAM,kBAAkB,UAAU,CAAC;AAE1C,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgCtB,CAAC"}
@@ -74,6 +74,7 @@ export declare const CHAIN_IDS: {
74
74
  readonly INK: "0xdef1";
75
75
  readonly MODE_SEPOLIA: "0x397";
76
76
  readonly MODE: "0x868b";
77
+ readonly MONAD: "0x8f";
77
78
  };
78
79
  export declare const NETWORK_TYPES: {
79
80
  readonly GOERLI: "goerli";
@@ -122,6 +123,7 @@ export declare const SONEIUM_DISPLAY_NAME = "Soneium Mainnet";
122
123
  export declare const MODE_SEPOLIA_DISPLAY_NAME = "Mode Sepolia";
123
124
  export declare const MODE_DISPLAY_NAME = "Mode Mainnet";
124
125
  export declare const SEI_DISPLAY_NAME = "Sei Network";
126
+ export declare const MONAD_DISPLAY_NAME = "Monad";
125
127
  export declare const NETWORK_TO_NAME_MAP: {
126
128
  readonly goerli: "Goerli";
127
129
  readonly mainnet: "Ethereum Mainnet";
@@ -152,5 +154,6 @@ export declare const NETWORK_TO_NAME_MAP: {
152
154
  readonly "0x46f": "Lisk";
153
155
  readonly "0x106a": "Lisk Sepolia";
154
156
  readonly "0x531": "Sei Network";
157
+ readonly "0x8f": "Monad";
155
158
  };
156
159
  //# sourceMappingURL=chains.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"chains.d.mts","sourceRoot":"","sources":["../../src/constants/chains.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAwEZ,CAAC;AAEX,eAAO,MAAM,aAAa;;;;;;;;CAQhB,CAAC;AAEX,eAAO,MAAM,oBAAoB,qBAAqB,CAAC;AACvD,eAAO,MAAM,mBAAmB,WAAW,CAAC;AAC5C,eAAO,MAAM,oBAAoB,YAAY,CAAC;AAC9C,eAAO,MAAM,yBAAyB,iBAAiB,CAAC;AACxD,eAAO,MAAM,0BAA0B,kBAAkB,CAAC;AAC1D,eAAO,MAAM,0BAA0B,kBAAkB,CAAC;AAC1D,eAAO,MAAM,sBAAsB,mBAAmB,CAAC;AACvD,eAAO,MAAM,gBAAgB,wBAAwB,CAAC;AACtD,eAAO,MAAM,oBAAoB,YAAY,CAAC;AAC9C,eAAO,MAAM,sBAAsB,8BAA8B,CAAC;AAClE,eAAO,MAAM,qBAAqB,iBAAiB,CAAC;AACpD,eAAO,MAAM,gBAAgB,cAAc,CAAC;AAC5C,eAAO,MAAM,qBAAqB,eAAe,CAAC;AAClD,eAAO,MAAM,mBAAmB,iBAAiB,CAAC;AAClD,eAAO,MAAM,oBAAoB,4BAA4B,CAAC;AAC9D,eAAO,MAAM,iBAAiB,SAAS,CAAC;AACxC,eAAO,MAAM,iBAAiB,iBAAiB,CAAC;AAChD,eAAO,MAAM,mBAAmB,WAAW,CAAC;AAC5C,eAAO,MAAM,wBAAwB,uBAAuB,CAAC;AAC7D,eAAO,MAAM,iBAAiB,iBAAiB,CAAC;AAChD,eAAO,MAAM,mBAAmB,mBAAmB,CAAC;AACpD,eAAO,MAAM,mBAAmB,WAAW,CAAC;AAC5C,eAAO,MAAM,0BAA0B,kBAAkB,CAAC;AAC1D,eAAO,MAAM,qBAAqB,aAAa,CAAC;AAChD,eAAO,MAAM,sBAAsB,cAAc,CAAC;AAClD,eAAO,MAAM,mBAAmB,WAAW,CAAC;AAC5C,eAAO,MAAM,2BAA2B,mBAAmB,CAAC;AAC5D,eAAO,MAAM,mBAAmB,UAAU,CAAC;AAC3C,eAAO,MAAM,sBAAsB,oBAAoB,CAAC;AACxD,eAAO,MAAM,0BAA0B,0BAA0B,CAAC;AAClE,eAAO,MAAM,iBAAiB,SAAS,CAAC;AACxC,eAAO,MAAM,yBAAyB,iBAAiB,CAAC;AACxD,eAAO,MAAM,wBAAwB,gBAAgB,CAAC;AACtD,eAAO,MAAM,gBAAgB,gBAAgB,CAAC;AAC9C,eAAO,MAAM,oBAAoB,oBAAoB,CAAC;AACtD,eAAO,MAAM,yBAAyB,iBAAiB,CAAC;AACxD,eAAO,MAAM,iBAAiB,iBAAiB,CAAC;AAChD,eAAO,MAAM,gBAAgB,gBAAgB,CAAC;AAE9C,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA+BtB,CAAC"}
1
+ {"version":3,"file":"chains.d.mts","sourceRoot":"","sources":["../../src/constants/chains.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAyEZ,CAAC;AAEX,eAAO,MAAM,aAAa;;;;;;;;CAQhB,CAAC;AAEX,eAAO,MAAM,oBAAoB,qBAAqB,CAAC;AACvD,eAAO,MAAM,mBAAmB,WAAW,CAAC;AAC5C,eAAO,MAAM,oBAAoB,YAAY,CAAC;AAC9C,eAAO,MAAM,yBAAyB,iBAAiB,CAAC;AACxD,eAAO,MAAM,0BAA0B,kBAAkB,CAAC;AAC1D,eAAO,MAAM,0BAA0B,kBAAkB,CAAC;AAC1D,eAAO,MAAM,sBAAsB,mBAAmB,CAAC;AACvD,eAAO,MAAM,gBAAgB,wBAAwB,CAAC;AACtD,eAAO,MAAM,oBAAoB,YAAY,CAAC;AAC9C,eAAO,MAAM,sBAAsB,8BAA8B,CAAC;AAClE,eAAO,MAAM,qBAAqB,iBAAiB,CAAC;AACpD,eAAO,MAAM,gBAAgB,cAAc,CAAC;AAC5C,eAAO,MAAM,qBAAqB,eAAe,CAAC;AAClD,eAAO,MAAM,mBAAmB,iBAAiB,CAAC;AAClD,eAAO,MAAM,oBAAoB,4BAA4B,CAAC;AAC9D,eAAO,MAAM,iBAAiB,SAAS,CAAC;AACxC,eAAO,MAAM,iBAAiB,iBAAiB,CAAC;AAChD,eAAO,MAAM,mBAAmB,WAAW,CAAC;AAC5C,eAAO,MAAM,wBAAwB,uBAAuB,CAAC;AAC7D,eAAO,MAAM,iBAAiB,iBAAiB,CAAC;AAChD,eAAO,MAAM,mBAAmB,mBAAmB,CAAC;AACpD,eAAO,MAAM,mBAAmB,WAAW,CAAC;AAC5C,eAAO,MAAM,0BAA0B,kBAAkB,CAAC;AAC1D,eAAO,MAAM,qBAAqB,aAAa,CAAC;AAChD,eAAO,MAAM,sBAAsB,cAAc,CAAC;AAClD,eAAO,MAAM,mBAAmB,WAAW,CAAC;AAC5C,eAAO,MAAM,2BAA2B,mBAAmB,CAAC;AAC5D,eAAO,MAAM,mBAAmB,UAAU,CAAC;AAC3C,eAAO,MAAM,sBAAsB,oBAAoB,CAAC;AACxD,eAAO,MAAM,0BAA0B,0BAA0B,CAAC;AAClE,eAAO,MAAM,iBAAiB,SAAS,CAAC;AACxC,eAAO,MAAM,yBAAyB,iBAAiB,CAAC;AACxD,eAAO,MAAM,wBAAwB,gBAAgB,CAAC;AACtD,eAAO,MAAM,gBAAgB,gBAAgB,CAAC;AAC9C,eAAO,MAAM,oBAAoB,oBAAoB,CAAC;AACtD,eAAO,MAAM,yBAAyB,iBAAiB,CAAC;AACxD,eAAO,MAAM,iBAAiB,iBAAiB,CAAC;AAChD,eAAO,MAAM,gBAAgB,gBAAgB,CAAC;AAC9C,eAAO,MAAM,kBAAkB,UAAU,CAAC;AAE1C,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgCtB,CAAC"}
@@ -74,6 +74,7 @@ export const CHAIN_IDS = {
74
74
  INK: '0xdef1',
75
75
  MODE_SEPOLIA: '0x397',
76
76
  MODE: '0x868b',
77
+ MONAD: '0x8f',
77
78
  };
78
79
  export const NETWORK_TYPES = {
79
80
  GOERLI: 'goerli',
@@ -122,6 +123,7 @@ export const SONEIUM_DISPLAY_NAME = 'Soneium Mainnet';
122
123
  export const MODE_SEPOLIA_DISPLAY_NAME = 'Mode Sepolia';
123
124
  export const MODE_DISPLAY_NAME = 'Mode Mainnet';
124
125
  export const SEI_DISPLAY_NAME = 'Sei Network';
126
+ export const MONAD_DISPLAY_NAME = 'Monad';
125
127
  export const NETWORK_TO_NAME_MAP = {
126
128
  [NETWORK_TYPES.GOERLI]: GOERLI_DISPLAY_NAME,
127
129
  [NETWORK_TYPES.MAINNET]: MAINNET_DISPLAY_NAME,
@@ -152,5 +154,6 @@ export const NETWORK_TO_NAME_MAP = {
152
154
  [CHAIN_IDS.LISK]: LISK_DISPLAY_NAME,
153
155
  [CHAIN_IDS.LISK_SEPOLIA]: LISK_SEPOLIA_DISPLAY_NAME,
154
156
  [CHAIN_IDS.SEI]: SEI_DISPLAY_NAME,
157
+ [CHAIN_IDS.MONAD]: MONAD_DISPLAY_NAME,
155
158
  };
156
159
  //# sourceMappingURL=chains.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"chains.mjs","sourceRoot":"","sources":["../../src/constants/chains.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * An object containing all of the chain ids for networks both built in and\n * those that we have added custom code to support our feature set.\n */\nexport const CHAIN_IDS = {\n MAINNET: '0x1',\n GOERLI: '0x5',\n LOCALHOST: '0x539',\n BSC: '0x38',\n BSC_TESTNET: '0x61',\n OPTIMISM: '0xa',\n OPTIMISM_TESTNET: '0xaa37dc',\n OPTIMISM_GOERLI: '0x1a4',\n BASE: '0x2105',\n BASE_TESTNET: '0x14a33',\n OPBNB: '0xcc',\n OPBNB_TESTNET: '0x15eb',\n POLYGON: '0x89',\n POLYGON_TESTNET: '0x13881',\n AVALANCHE: '0xa86a',\n AVALANCHE_TESTNET: '0xa869',\n FANTOM: '0xfa',\n FANTOM_TESTNET: '0xfa2',\n CELO: '0xa4ec',\n ARBITRUM: '0xa4b1',\n HARMONY: '0x63564c40',\n PALM: '0x2a15c308d',\n SEPOLIA: '0xaa36a7',\n HOLESKY: '0x4268',\n LINEA_GOERLI: '0xe704',\n LINEA_SEPOLIA: '0xe705',\n AMOY: '0x13882',\n BASE_SEPOLIA: '0x14a34',\n BLAST_SEPOLIA: '0xa0c71fd',\n OPTIMISM_SEPOLIA: '0xaa37dc',\n PALM_TESTNET: '0x2a15c3083',\n CELO_TESTNET: '0xaef3',\n ZK_SYNC_ERA_TESTNET: '0x12c',\n MANTA_SEPOLIA: '0x138b',\n UNICHAIN_SEPOLIA: '0x515',\n LINEA_MAINNET: '0xe708',\n AURORA: '0x4e454152',\n MOONBEAM: '0x504',\n MOONBEAM_TESTNET: '0x507',\n MOONRIVER: '0x505',\n CRONOS: '0x19',\n GNOSIS: '0x64',\n ZKSYNC_ERA: '0x144',\n TEST_ETH: '0x539',\n ARBITRUM_GOERLI: '0x66eed',\n BLAST: '0x13e31',\n FILECOIN: '0x13a',\n POLYGON_ZKEVM: '0x44d',\n SCROLL: '0x82750',\n SCROLL_SEPOLIA: '0x8274f',\n WETHIO: '0x4e',\n CHZ: '0x15b38',\n NUMBERS: '0x290b',\n SEI: '0x531',\n APE_TESTNET: '0x8157',\n APE_MAINNET: '0x8173',\n BERACHAIN: '0x138d5',\n METACHAIN_ONE: '0x1b6e6',\n ARBITRUM_SEPOLIA: '0x66eee',\n NEAR: '0x18d',\n NEAR_TESTNET: '0x18e',\n B3: '0x208d',\n B3_TESTNET: '0x7c9',\n GRAVITY_ALPHA_MAINNET: '0x659',\n GRAVITY_ALPHA_TESTNET_SEPOLIA: '0x34c1',\n LISK: '0x46f',\n LISK_SEPOLIA: '0x106a',\n INK_SEPOLIA: '0xba5eD',\n INK: '0xdef1',\n MODE_SEPOLIA: '0x397',\n MODE: '0x868b',\n} as const;\n\nexport const NETWORK_TYPES = {\n GOERLI: 'goerli',\n LOCALHOST: 'localhost',\n MAINNET: 'mainnet',\n SEPOLIA: 'sepolia',\n LINEA_GOERLI: 'linea-goerli',\n LINEA_SEPOLIA: 'linea-sepolia',\n LINEA_MAINNET: 'linea-mainnet',\n} as const;\n\nexport const MAINNET_DISPLAY_NAME = 'Ethereum Mainnet';\nexport const GOERLI_DISPLAY_NAME = 'Goerli';\nexport const SEPOLIA_DISPLAY_NAME = 'Sepolia';\nexport const LINEA_GOERLI_DISPLAY_NAME = 'Linea Goerli';\nexport const LINEA_SEPOLIA_DISPLAY_NAME = 'Linea Sepolia';\nexport const LINEA_MAINNET_DISPLAY_NAME = 'Linea Mainnet';\nexport const LOCALHOST_DISPLAY_NAME = 'Localhost 8545';\nexport const BSC_DISPLAY_NAME = 'Binance Smart Chain';\nexport const POLYGON_DISPLAY_NAME = 'Polygon';\nexport const AVALANCHE_DISPLAY_NAME = 'Avalanche Network C-Chain';\nexport const ARBITRUM_DISPLAY_NAME = 'Arbitrum One';\nexport const BNB_DISPLAY_NAME = 'BNB Chain';\nexport const OPTIMISM_DISPLAY_NAME = 'OP Mainnet';\nexport const FANTOM_DISPLAY_NAME = 'Fantom Opera';\nexport const HARMONY_DISPLAY_NAME = 'Harmony Mainnet Shard 0';\nexport const PALM_DISPLAY_NAME = 'Palm';\nexport const CELO_DISPLAY_NAME = 'Celo Mainnet';\nexport const GNOSIS_DISPLAY_NAME = 'Gnosis';\nexport const ZK_SYNC_ERA_DISPLAY_NAME = 'zkSync Era Mainnet';\nexport const BASE_DISPLAY_NAME = 'Base Mainnet';\nexport const AURORA_DISPLAY_NAME = 'Aurora Mainnet';\nexport const CRONOS_DISPLAY_NAME = 'Cronos';\nexport const POLYGON_ZKEVM_DISPLAY_NAME = 'Polygon zkEVM';\nexport const MOONBEAM_DISPLAY_NAME = 'Moonbeam';\nexport const MOONRIVER_DISPLAY_NAME = 'Moonriver';\nexport const SCROLL_DISPLAY_NAME = 'Scroll';\nexport const SCROLL_SEPOLIA_DISPLAY_NAME = 'Scroll Sepolia';\nexport const OP_BNB_DISPLAY_NAME = 'opBNB';\nexport const BERACHAIN_DISPLAY_NAME = 'Berachain Artio';\nexport const METACHAIN_ONE_DISPLAY_NAME = 'Metachain One Mainnet';\nexport const LISK_DISPLAY_NAME = 'Lisk';\nexport const LISK_SEPOLIA_DISPLAY_NAME = 'Lisk Sepolia';\nexport const INK_SEPOLIA_DISPLAY_NAME = 'Ink Sepolia';\nexport const INK_DISPLAY_NAME = 'Ink Mainnet';\nexport const SONEIUM_DISPLAY_NAME = 'Soneium Mainnet';\nexport const MODE_SEPOLIA_DISPLAY_NAME = 'Mode Sepolia';\nexport const MODE_DISPLAY_NAME = 'Mode Mainnet';\nexport const SEI_DISPLAY_NAME = 'Sei Network';\n\nexport const NETWORK_TO_NAME_MAP = {\n [NETWORK_TYPES.GOERLI]: GOERLI_DISPLAY_NAME,\n [NETWORK_TYPES.MAINNET]: MAINNET_DISPLAY_NAME,\n [NETWORK_TYPES.LINEA_GOERLI]: LINEA_GOERLI_DISPLAY_NAME,\n [NETWORK_TYPES.LINEA_SEPOLIA]: LINEA_SEPOLIA_DISPLAY_NAME,\n [NETWORK_TYPES.LINEA_MAINNET]: LINEA_MAINNET_DISPLAY_NAME,\n [NETWORK_TYPES.LOCALHOST]: LOCALHOST_DISPLAY_NAME,\n [NETWORK_TYPES.SEPOLIA]: SEPOLIA_DISPLAY_NAME,\n\n [CHAIN_IDS.ARBITRUM]: ARBITRUM_DISPLAY_NAME,\n [CHAIN_IDS.AVALANCHE]: AVALANCHE_DISPLAY_NAME,\n [CHAIN_IDS.BSC]: BSC_DISPLAY_NAME,\n [CHAIN_IDS.BASE]: BASE_DISPLAY_NAME,\n [CHAIN_IDS.GOERLI]: GOERLI_DISPLAY_NAME,\n [CHAIN_IDS.MAINNET]: MAINNET_DISPLAY_NAME,\n [CHAIN_IDS.LINEA_GOERLI]: LINEA_GOERLI_DISPLAY_NAME,\n [CHAIN_IDS.LINEA_MAINNET]: LINEA_MAINNET_DISPLAY_NAME,\n [CHAIN_IDS.LINEA_SEPOLIA]: LINEA_SEPOLIA_DISPLAY_NAME,\n [CHAIN_IDS.LOCALHOST]: LOCALHOST_DISPLAY_NAME,\n [CHAIN_IDS.OPTIMISM]: OPTIMISM_DISPLAY_NAME,\n [CHAIN_IDS.POLYGON]: POLYGON_DISPLAY_NAME,\n [CHAIN_IDS.SCROLL]: SCROLL_DISPLAY_NAME,\n [CHAIN_IDS.SCROLL_SEPOLIA]: SCROLL_SEPOLIA_DISPLAY_NAME,\n [CHAIN_IDS.SEPOLIA]: SEPOLIA_DISPLAY_NAME,\n [CHAIN_IDS.OPBNB]: OP_BNB_DISPLAY_NAME,\n [CHAIN_IDS.ZKSYNC_ERA]: ZK_SYNC_ERA_DISPLAY_NAME,\n [CHAIN_IDS.BERACHAIN]: BERACHAIN_DISPLAY_NAME,\n [CHAIN_IDS.METACHAIN_ONE]: METACHAIN_ONE_DISPLAY_NAME,\n [CHAIN_IDS.LISK]: LISK_DISPLAY_NAME,\n [CHAIN_IDS.LISK_SEPOLIA]: LISK_SEPOLIA_DISPLAY_NAME,\n [CHAIN_IDS.SEI]: SEI_DISPLAY_NAME,\n} as const;\n"]}
1
+ {"version":3,"file":"chains.mjs","sourceRoot":"","sources":["../../src/constants/chains.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * An object containing all of the chain ids for networks both built in and\n * those that we have added custom code to support our feature set.\n */\nexport const CHAIN_IDS = {\n MAINNET: '0x1',\n GOERLI: '0x5',\n LOCALHOST: '0x539',\n BSC: '0x38',\n BSC_TESTNET: '0x61',\n OPTIMISM: '0xa',\n OPTIMISM_TESTNET: '0xaa37dc',\n OPTIMISM_GOERLI: '0x1a4',\n BASE: '0x2105',\n BASE_TESTNET: '0x14a33',\n OPBNB: '0xcc',\n OPBNB_TESTNET: '0x15eb',\n POLYGON: '0x89',\n POLYGON_TESTNET: '0x13881',\n AVALANCHE: '0xa86a',\n AVALANCHE_TESTNET: '0xa869',\n FANTOM: '0xfa',\n FANTOM_TESTNET: '0xfa2',\n CELO: '0xa4ec',\n ARBITRUM: '0xa4b1',\n HARMONY: '0x63564c40',\n PALM: '0x2a15c308d',\n SEPOLIA: '0xaa36a7',\n HOLESKY: '0x4268',\n LINEA_GOERLI: '0xe704',\n LINEA_SEPOLIA: '0xe705',\n AMOY: '0x13882',\n BASE_SEPOLIA: '0x14a34',\n BLAST_SEPOLIA: '0xa0c71fd',\n OPTIMISM_SEPOLIA: '0xaa37dc',\n PALM_TESTNET: '0x2a15c3083',\n CELO_TESTNET: '0xaef3',\n ZK_SYNC_ERA_TESTNET: '0x12c',\n MANTA_SEPOLIA: '0x138b',\n UNICHAIN_SEPOLIA: '0x515',\n LINEA_MAINNET: '0xe708',\n AURORA: '0x4e454152',\n MOONBEAM: '0x504',\n MOONBEAM_TESTNET: '0x507',\n MOONRIVER: '0x505',\n CRONOS: '0x19',\n GNOSIS: '0x64',\n ZKSYNC_ERA: '0x144',\n TEST_ETH: '0x539',\n ARBITRUM_GOERLI: '0x66eed',\n BLAST: '0x13e31',\n FILECOIN: '0x13a',\n POLYGON_ZKEVM: '0x44d',\n SCROLL: '0x82750',\n SCROLL_SEPOLIA: '0x8274f',\n WETHIO: '0x4e',\n CHZ: '0x15b38',\n NUMBERS: '0x290b',\n SEI: '0x531',\n APE_TESTNET: '0x8157',\n APE_MAINNET: '0x8173',\n BERACHAIN: '0x138d5',\n METACHAIN_ONE: '0x1b6e6',\n ARBITRUM_SEPOLIA: '0x66eee',\n NEAR: '0x18d',\n NEAR_TESTNET: '0x18e',\n B3: '0x208d',\n B3_TESTNET: '0x7c9',\n GRAVITY_ALPHA_MAINNET: '0x659',\n GRAVITY_ALPHA_TESTNET_SEPOLIA: '0x34c1',\n LISK: '0x46f',\n LISK_SEPOLIA: '0x106a',\n INK_SEPOLIA: '0xba5eD',\n INK: '0xdef1',\n MODE_SEPOLIA: '0x397',\n MODE: '0x868b',\n MONAD: '0x8f',\n} as const;\n\nexport const NETWORK_TYPES = {\n GOERLI: 'goerli',\n LOCALHOST: 'localhost',\n MAINNET: 'mainnet',\n SEPOLIA: 'sepolia',\n LINEA_GOERLI: 'linea-goerli',\n LINEA_SEPOLIA: 'linea-sepolia',\n LINEA_MAINNET: 'linea-mainnet',\n} as const;\n\nexport const MAINNET_DISPLAY_NAME = 'Ethereum Mainnet';\nexport const GOERLI_DISPLAY_NAME = 'Goerli';\nexport const SEPOLIA_DISPLAY_NAME = 'Sepolia';\nexport const LINEA_GOERLI_DISPLAY_NAME = 'Linea Goerli';\nexport const LINEA_SEPOLIA_DISPLAY_NAME = 'Linea Sepolia';\nexport const LINEA_MAINNET_DISPLAY_NAME = 'Linea Mainnet';\nexport const LOCALHOST_DISPLAY_NAME = 'Localhost 8545';\nexport const BSC_DISPLAY_NAME = 'Binance Smart Chain';\nexport const POLYGON_DISPLAY_NAME = 'Polygon';\nexport const AVALANCHE_DISPLAY_NAME = 'Avalanche Network C-Chain';\nexport const ARBITRUM_DISPLAY_NAME = 'Arbitrum One';\nexport const BNB_DISPLAY_NAME = 'BNB Chain';\nexport const OPTIMISM_DISPLAY_NAME = 'OP Mainnet';\nexport const FANTOM_DISPLAY_NAME = 'Fantom Opera';\nexport const HARMONY_DISPLAY_NAME = 'Harmony Mainnet Shard 0';\nexport const PALM_DISPLAY_NAME = 'Palm';\nexport const CELO_DISPLAY_NAME = 'Celo Mainnet';\nexport const GNOSIS_DISPLAY_NAME = 'Gnosis';\nexport const ZK_SYNC_ERA_DISPLAY_NAME = 'zkSync Era Mainnet';\nexport const BASE_DISPLAY_NAME = 'Base Mainnet';\nexport const AURORA_DISPLAY_NAME = 'Aurora Mainnet';\nexport const CRONOS_DISPLAY_NAME = 'Cronos';\nexport const POLYGON_ZKEVM_DISPLAY_NAME = 'Polygon zkEVM';\nexport const MOONBEAM_DISPLAY_NAME = 'Moonbeam';\nexport const MOONRIVER_DISPLAY_NAME = 'Moonriver';\nexport const SCROLL_DISPLAY_NAME = 'Scroll';\nexport const SCROLL_SEPOLIA_DISPLAY_NAME = 'Scroll Sepolia';\nexport const OP_BNB_DISPLAY_NAME = 'opBNB';\nexport const BERACHAIN_DISPLAY_NAME = 'Berachain Artio';\nexport const METACHAIN_ONE_DISPLAY_NAME = 'Metachain One Mainnet';\nexport const LISK_DISPLAY_NAME = 'Lisk';\nexport const LISK_SEPOLIA_DISPLAY_NAME = 'Lisk Sepolia';\nexport const INK_SEPOLIA_DISPLAY_NAME = 'Ink Sepolia';\nexport const INK_DISPLAY_NAME = 'Ink Mainnet';\nexport const SONEIUM_DISPLAY_NAME = 'Soneium Mainnet';\nexport const MODE_SEPOLIA_DISPLAY_NAME = 'Mode Sepolia';\nexport const MODE_DISPLAY_NAME = 'Mode Mainnet';\nexport const SEI_DISPLAY_NAME = 'Sei Network';\nexport const MONAD_DISPLAY_NAME = 'Monad';\n\nexport const NETWORK_TO_NAME_MAP = {\n [NETWORK_TYPES.GOERLI]: GOERLI_DISPLAY_NAME,\n [NETWORK_TYPES.MAINNET]: MAINNET_DISPLAY_NAME,\n [NETWORK_TYPES.LINEA_GOERLI]: LINEA_GOERLI_DISPLAY_NAME,\n [NETWORK_TYPES.LINEA_SEPOLIA]: LINEA_SEPOLIA_DISPLAY_NAME,\n [NETWORK_TYPES.LINEA_MAINNET]: LINEA_MAINNET_DISPLAY_NAME,\n [NETWORK_TYPES.LOCALHOST]: LOCALHOST_DISPLAY_NAME,\n [NETWORK_TYPES.SEPOLIA]: SEPOLIA_DISPLAY_NAME,\n\n [CHAIN_IDS.ARBITRUM]: ARBITRUM_DISPLAY_NAME,\n [CHAIN_IDS.AVALANCHE]: AVALANCHE_DISPLAY_NAME,\n [CHAIN_IDS.BSC]: BSC_DISPLAY_NAME,\n [CHAIN_IDS.BASE]: BASE_DISPLAY_NAME,\n [CHAIN_IDS.GOERLI]: GOERLI_DISPLAY_NAME,\n [CHAIN_IDS.MAINNET]: MAINNET_DISPLAY_NAME,\n [CHAIN_IDS.LINEA_GOERLI]: LINEA_GOERLI_DISPLAY_NAME,\n [CHAIN_IDS.LINEA_MAINNET]: LINEA_MAINNET_DISPLAY_NAME,\n [CHAIN_IDS.LINEA_SEPOLIA]: LINEA_SEPOLIA_DISPLAY_NAME,\n [CHAIN_IDS.LOCALHOST]: LOCALHOST_DISPLAY_NAME,\n [CHAIN_IDS.OPTIMISM]: OPTIMISM_DISPLAY_NAME,\n [CHAIN_IDS.POLYGON]: POLYGON_DISPLAY_NAME,\n [CHAIN_IDS.SCROLL]: SCROLL_DISPLAY_NAME,\n [CHAIN_IDS.SCROLL_SEPOLIA]: SCROLL_SEPOLIA_DISPLAY_NAME,\n [CHAIN_IDS.SEPOLIA]: SEPOLIA_DISPLAY_NAME,\n [CHAIN_IDS.OPBNB]: OP_BNB_DISPLAY_NAME,\n [CHAIN_IDS.ZKSYNC_ERA]: ZK_SYNC_ERA_DISPLAY_NAME,\n [CHAIN_IDS.BERACHAIN]: BERACHAIN_DISPLAY_NAME,\n [CHAIN_IDS.METACHAIN_ONE]: METACHAIN_ONE_DISPLAY_NAME,\n [CHAIN_IDS.LISK]: LISK_DISPLAY_NAME,\n [CHAIN_IDS.LISK_SEPOLIA]: LISK_SEPOLIA_DISPLAY_NAME,\n [CHAIN_IDS.SEI]: SEI_DISPLAY_NAME,\n [CHAIN_IDS.MONAD]: MONAD_DISPLAY_NAME,\n} as const;\n"]}