@xswap-link/sdk 0.1.0 → 0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (41) hide show
  1. package/.github/workflows/main.yml +1 -0
  2. package/.github/workflows/publish.yml +1 -0
  3. package/CHANGELOG.md +15 -0
  4. package/dist/index.css +125 -29
  5. package/dist/index.d.mts +21 -18
  6. package/dist/index.d.ts +21 -18
  7. package/dist/index.js +1140 -32916
  8. package/dist/index.mjs +1112 -32913
  9. package/nodemon.json +5 -0
  10. package/package.json +17 -6
  11. package/src/components/TxConfigForm/BalanceComponent.tsx +51 -0
  12. package/src/components/TxConfigForm/ChainListElement.tsx +36 -0
  13. package/src/components/TxConfigForm/Description.tsx +15 -0
  14. package/src/components/TxConfigForm/ErrorField.tsx +17 -0
  15. package/src/components/TxConfigForm/FeesDetails.tsx +105 -0
  16. package/src/components/TxConfigForm/Form.tsx +130 -447
  17. package/src/components/TxConfigForm/History.tsx +28 -32
  18. package/src/components/TxConfigForm/Settings.tsx +137 -0
  19. package/src/components/TxConfigForm/Summary.tsx +57 -0
  20. package/src/components/TxConfigForm/SwapPanel.tsx +191 -0
  21. package/src/components/TxConfigForm/TokenPicker.tsx +8 -2
  22. package/src/components/TxConfigForm/TopBar.tsx +53 -0
  23. package/src/components/TxConfigForm/index.tsx +121 -0
  24. package/src/components/icons/ArrowDownIcon.tsx +16 -0
  25. package/src/components/icons/ChainlinkCCIPIcon.tsx +23 -0
  26. package/src/components/icons/ChevronDownIcon.tsx +2 -2
  27. package/src/components/icons/ChevronUpIcon.tsx +2 -2
  28. package/src/components/icons/CloseIcon.tsx +2 -2
  29. package/src/components/icons/CoinsIcon.tsx +8 -6
  30. package/src/components/icons/HistoryIcon.tsx +8 -5
  31. package/src/components/icons/InfoIcon.tsx +13 -0
  32. package/src/components/icons/SettingsIcon.tsx +16 -0
  33. package/src/components/icons/TimerIcon.tsx +15 -0
  34. package/src/components/icons/XSwapBadgeIcon.tsx +23 -0
  35. package/src/components/icons/index.ts +6 -0
  36. package/src/config/index.ts +1 -0
  37. package/src/config/wagmiConfig.ts +45 -0
  38. package/src/constants/index.ts +5 -2
  39. package/tailwind.config.js +7 -2
  40. package/src/components/TxConfigForm/index.jsx +0 -100
  41. package/src/components/global.d.ts +0 -6
@@ -0,0 +1,16 @@
1
+ export const ArrowDownIcon = () => {
2
+ return (
3
+ <svg
4
+ width="20"
5
+ height="20"
6
+ viewBox="0 0 20 20"
7
+ fill="none"
8
+ xmlns="http://www.w3.org/2000/svg"
9
+ >
10
+ <path
11
+ d="M12 2.45932L12 12.8957L15.8625 9.15023L18 11.1866L10.5 18.4593L3 11.1866L5.1375 9.15023L9 12.8957L9 2.45932L12 2.45932Z"
12
+ fill="white"
13
+ />
14
+ </svg>
15
+ );
16
+ };
@@ -0,0 +1,23 @@
1
+ export const ChainlinkCCIPIcon = () => {
2
+ return (
3
+ <svg
4
+ version="1.2"
5
+ xmlns="http://www.w3.org/2000/svg"
6
+ viewBox="0 0 67 27"
7
+ width="67"
8
+ height="27"
9
+ >
10
+ <title>chainlink-CCIP</title>
11
+ <defs>
12
+ <image
13
+ width="67"
14
+ height="27"
15
+ id="imgiVBORw0KGgoAAA"
16
+ href="data:image/png;base64,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"
17
+ />
18
+ </defs>
19
+ <style></style>
20
+ <use id="Background" href="#imgiVBORw0KGgoAAA" x="0" y="0" />
21
+ </svg>
22
+ );
23
+ };
@@ -1,8 +1,8 @@
1
1
  export const ChevronDownIcon = () => {
2
2
  return (
3
3
  <svg
4
- width={16}
5
- height={16}
4
+ width="12"
5
+ height="12"
6
6
  xmlns="http://www.w3.org/2000/svg"
7
7
  viewBox="0 0 512 512"
8
8
  >
@@ -1,8 +1,8 @@
1
1
  export const ChevronUpIcon = () => {
2
2
  return (
3
3
  <svg
4
- height={16}
5
- width={16}
4
+ height="12"
5
+ width="12"
6
6
  xmlns="http://www.w3.org/2000/svg"
7
7
  viewBox="0 0 512 512"
8
8
  >
@@ -1,8 +1,8 @@
1
1
  export const CloseIcon = () => {
2
2
  return (
3
3
  <svg
4
- height={16}
5
- width={16}
4
+ height="18"
5
+ width="18"
6
6
  xmlns="http://www.w3.org/2000/svg"
7
7
  viewBox="0 0 10.312 8.319"
8
8
  >
@@ -1,15 +1,17 @@
1
1
  export const CoinsIcon = () => {
2
2
  return (
3
3
  <svg
4
- width={16}
5
- height={16}
4
+ width="24"
5
+ height="24"
6
+ viewBox="0 0 24 24"
7
+ fill="none"
6
8
  xmlns="http://www.w3.org/2000/svg"
7
- viewBox="0 0 512 512"
8
9
  >
9
10
  <path
10
- fill="currentColor"
11
- d="M512 80c0 18-14.3 34.6-38.4 48c-29.1 16.1-72.5 27.5-122.3 30.9c-3.7-1.8-7.4-3.5-11.3-5C300.6 137.4 248.2 128 192 128c-8.3 0-16.4 .2-24.5 .6l-1.1-.6C142.3 114.6 128 98 128 80c0-44.2 86-80 192-80S512 35.8 512 80zM160.7 161.1c10.2-.7 20.7-1.1 31.3-1.1c62.2 0 117.4 12.3 152.5 31.4C369.3 204.9 384 221.7 384 240c0 4-.7 7.9-2.1 11.7c-4.6 13.2-17 25.3-35 35.5c0 0 0 0 0 0c-.1 .1-.3 .1-.4 .2l0 0 0 0c-.3 .2-.6 .3-.9 .5c-35 19.4-90.8 32-153.6 32c-59.6 0-112.9-11.3-148.2-29.1c-1.9-.9-3.7-1.9-5.5-2.9C14.3 274.6 0 258 0 240c0-34.8 53.4-64.5 128-75.4c10.5-1.5 21.4-2.7 32.7-3.5zM416 240c0-21.9-10.6-39.9-24.1-53.4c28.3-4.4 54.2-11.4 76.2-20.5c16.3-6.8 31.5-15.2 43.9-25.5V176c0 19.3-16.5 37.1-43.8 50.9c-14.6 7.4-32.4 13.7-52.4 18.5c.1-1.8 .2-3.5 .2-5.3zm-32 96c0 18-14.3 34.6-38.4 48c-1.8 1-3.6 1.9-5.5 2.9C304.9 404.7 251.6 416 192 416c-62.8 0-118.6-12.6-153.6-32C14.3 370.6 0 354 0 336V300.6c12.5 10.3 27.6 18.7 43.9 25.5C83.4 342.6 135.8 352 192 352s108.6-9.4 148.1-25.9c7.8-3.2 15.3-6.9 22.4-10.9c6.1-3.4 11.8-7.2 17.2-11.2c1.5-1.1 2.9-2.3 4.3-3.4V304v5.7V336zm32 0V304 278.1c19-4.2 36.5-9.5 52.1-16c16.3-6.8 31.5-15.2 43.9-25.5V272c0 10.5-5 21-14.9 30.9c-16.3 16.3-45 29.7-81.3 38.4c.1-1.7 .2-3.5 .2-5.3zM192 448c56.2 0 108.6-9.4 148.1-25.9c16.3-6.8 31.5-15.2 43.9-25.5V432c0 44.2-86 80-192 80S0 476.2 0 432V396.6c12.5 10.3 27.6 18.7 43.9 25.5C83.4 438.6 135.8 448 192 448z"
12
- ></path>
11
+ d="M15 20C12.7667 20 10.875 19.225 9.325 17.675C7.775 16.125 7 14.2333 7 12C7 9.76667 7.775 7.875 9.325 6.325C10.875 4.775 12.7667 4 15 4C17.2333 4 19.125 4.775 20.675 6.325C22.225 7.875 23 9.76667 23 12C23 14.2333 22.225 16.125 20.675 17.675C19.125 19.225 17.2333 20 15 20ZM7 19.75C5.23333 19.2833 3.79167 18.3333 2.675 16.9C1.55833 15.4667 1 13.8333 1 12C1 10.1667 1.55833 8.53333 2.675 7.1C3.79167 5.66667 5.23333 4.71667 7 4.25V6.35C5.8 6.76667 4.83333 7.49167 4.1 8.525C3.36667 9.55833 3 10.7167 3 12C3 13.2833 3.36667 14.4417 4.1 15.475C4.83333 16.5083 5.8 17.2333 7 17.65V19.75ZM15 18C16.6667 18 18.0833 17.4167 19.25 16.25C20.4167 15.0833 21 13.6667 21 12C21 10.3333 20.4167 8.91667 19.25 7.75C18.0833 6.58333 16.6667 6 15 6C13.3333 6 11.9167 6.58333 10.75 7.75C9.58333 8.91667 9 10.3333 9 12C9 13.6667 9.58333 15.0833 10.75 16.25C11.9167 17.4167 13.3333 18 15 18Z"
12
+ fill="white"
13
+ fillOpacity="0.6"
14
+ />
13
15
  </svg>
14
16
  );
15
17
  };
@@ -1,13 +1,16 @@
1
1
  export const HistoryIcon = () => {
2
2
  return (
3
3
  <svg
4
- width={12}
5
- height={12}
6
- fill="white"
7
- viewBox="0 0 12 12"
4
+ width="20"
5
+ height="20"
6
+ viewBox="0 0 20 20"
7
+ fill="none"
8
8
  xmlns="http://www.w3.org/2000/svg"
9
9
  >
10
- <path d="M6 12C4.46667 12 3.13056 11.4917 1.99167 10.475C0.852778 9.45833 0.2 8.18889 0.0333333 6.66667H1.4C1.55556 7.82222 2.06944 8.77778 2.94167 9.53333C3.81389 10.2889 4.83333 10.6667 6 10.6667C7.3 10.6667 8.40278 10.2139 9.30833 9.30833C10.2139 8.40278 10.6667 7.3 10.6667 6C10.6667 4.7 10.2139 3.59722 9.30833 2.69167C8.40278 1.78611 7.3 1.33333 6 1.33333C5.23333 1.33333 4.51667 1.51111 3.85 1.86667C3.18333 2.22222 2.62222 2.71111 2.16667 3.33333H4V4.66667H0V0.666667H1.33333V2.23333C1.9 1.52222 2.59167 0.972222 3.40833 0.583333C4.225 0.194444 5.08889 0 6 0C6.83333 0 7.61389 0.158333 8.34167 0.475C9.06944 0.791667 9.70278 1.21944 10.2417 1.75833C10.7806 2.29722 11.2083 2.93056 11.525 3.65833C11.8417 4.38611 12 5.16667 12 6C12 6.83333 11.8417 7.61389 11.525 8.34167C11.2083 9.06944 10.7806 9.70278 10.2417 10.2417C9.70278 10.7806 9.06944 11.2083 8.34167 11.525C7.61389 11.8417 6.83333 12 6 12ZM7.86667 8.8L5.33333 6.26667V2.66667H6.66667V5.73333L8.8 7.86667L7.86667 8.8Z" />
10
+ <path
11
+ d="M9.98413 17.5C8.1633 17.5 6.57667 16.8646 5.22424 15.5938C3.8718 14.3229 3.09663 12.7361 2.89871 10.8333H4.52163C4.70635 12.2778 5.3166 13.4722 6.35236 14.4167C7.38812 15.3611 8.59871 15.8333 9.98413 15.8333C11.5279 15.8333 12.8374 15.2674 13.9128 14.1354C14.9881 13.0035 15.5258 11.625 15.5258 10C15.5258 8.375 14.9881 6.99653 13.9128 5.86458C12.8374 4.73264 11.5279 4.16667 9.98413 4.16667C9.07371 4.16667 8.22267 4.38889 7.43101 4.83333C6.63934 5.27778 5.97302 5.88889 5.43205 6.66667H7.60913V8.33333H2.85913V3.33333H4.44246V5.29167C5.11538 4.40278 5.93673 3.71528 6.90653 3.22917C7.87632 2.74306 8.90219 2.5 9.98413 2.5C10.9737 2.5 11.9006 2.69792 12.7649 3.09375C13.6291 3.48958 14.3812 4.02431 15.0211 4.69792C15.661 5.37153 16.169 6.16319 16.5451 7.07292C16.9211 7.98264 17.1091 8.95833 17.1091 10C17.1091 11.0417 16.9211 12.0174 16.5451 12.9271C16.169 13.8368 15.661 14.6285 15.0211 15.3021C14.3812 15.9757 13.6291 16.5104 12.7649 16.9062C11.9006 17.3021 10.9737 17.5 9.98413 17.5ZM12.2008 13.5L9.19246 10.3333V5.83333H10.7758V9.66667L13.3091 12.3333L12.2008 13.5Z"
12
+ fill="white"
13
+ />
11
14
  </svg>
12
15
  );
13
16
  };
@@ -0,0 +1,13 @@
1
+ export const InfoIcon = () => {
2
+ return (
3
+ <svg
4
+ width="28"
5
+ height="28"
6
+ viewBox="0 0 28 28"
7
+ xmlns="http://www.w3.org/2000/svg"
8
+ fill="currentColor"
9
+ >
10
+ <path d="M12.6667 20.6666H15.3334V12.6666H12.6667V20.6666ZM14.0001 9.99996C14.3779 9.99996 14.6945 9.87218 14.9501 9.61663C15.2056 9.36107 15.3334 9.0444 15.3334 8.66663C15.3334 8.28885 15.2056 7.97218 14.9501 7.71663C14.6945 7.46107 14.3779 7.33329 14.0001 7.33329C13.6223 7.33329 13.3056 7.46107 13.0501 7.71663C12.7945 7.97218 12.6667 8.28885 12.6667 8.66663C12.6667 9.0444 12.7945 9.36107 13.0501 9.61663C13.3056 9.87218 13.6223 9.99996 14.0001 9.99996ZM14.0001 27.3333C12.1556 27.3333 10.4223 26.9833 8.80008 26.2833C7.17786 25.5833 5.76675 24.6333 4.56675 23.4333C3.36675 22.2333 2.41675 20.8222 1.71675 19.2C1.01675 17.5777 0.666748 15.8444 0.666748 14C0.666748 12.1555 1.01675 10.4222 1.71675 8.79996C2.41675 7.17774 3.36675 5.76663 4.56675 4.56663C5.76675 3.36663 7.17786 2.41663 8.80008 1.71663C10.4223 1.01663 12.1556 0.666626 14.0001 0.666626C15.8445 0.666626 17.5779 1.01663 19.2001 1.71663C20.8223 2.41663 22.2334 3.36663 23.4334 4.56663C24.6334 5.76663 25.5834 7.17774 26.2834 8.79996C26.9834 10.4222 27.3334 12.1555 27.3334 14C27.3334 15.8444 26.9834 17.5777 26.2834 19.2C25.5834 20.8222 24.6334 22.2333 23.4334 23.4333C22.2334 24.6333 20.8223 25.5833 19.2001 26.2833C17.5779 26.9833 15.8445 27.3333 14.0001 27.3333ZM14.0001 24.6666C16.9779 24.6666 19.5001 23.6333 21.5667 21.5666C23.6334 19.5 24.6667 16.9777 24.6667 14C24.6667 11.0222 23.6334 8.49996 21.5667 6.43329C19.5001 4.36663 16.9779 3.33329 14.0001 3.33329C11.0223 3.33329 8.50008 4.36663 6.43341 6.43329C4.36675 8.49996 3.33341 11.0222 3.33341 14C3.33341 16.9777 4.36675 19.5 6.43341 21.5666C8.50008 23.6333 11.0223 24.6666 14.0001 24.6666Z" />
11
+ </svg>
12
+ );
13
+ };
@@ -0,0 +1,16 @@
1
+ export const SettingsIcon = () => {
2
+ return (
3
+ <svg
4
+ width="18"
5
+ height="18"
6
+ viewBox="0 0 18 18"
7
+ fill="none"
8
+ xmlns="http://www.w3.org/2000/svg"
9
+ >
10
+ <path
11
+ d="M6.62325 17.5L6.26504 14.78C6.07101 14.7092 5.88818 14.6242 5.71653 14.525C5.54489 14.4258 5.37698 14.3196 5.2128 14.2063L2.54862 15.2688L0.0859375 11.2312L2.39191 9.57375C2.37698 9.47458 2.36952 9.37896 2.36952 9.28687V8.71313C2.36952 8.62104 2.37698 8.52542 2.39191 8.42625L0.0859375 6.76875L2.54862 2.73125L5.2128 3.79375C5.37698 3.68042 5.54862 3.57417 5.72773 3.475C5.90683 3.37583 6.08594 3.29083 6.26504 3.22L6.62325 0.5H11.5486L11.9068 3.22C12.1009 3.29083 12.2837 3.37583 12.4553 3.475C12.627 3.57417 12.7949 3.68042 12.9591 3.79375L15.6233 2.73125L18.0859 6.76875L15.78 8.42625C15.7949 8.52542 15.8024 8.62104 15.8024 8.71313V9.28687C15.8024 9.37896 15.7874 9.47458 15.7576 9.57375L18.0635 11.2312L15.6009 15.2688L12.9591 14.2063C12.7949 14.3196 12.6233 14.4258 12.4441 14.525C12.265 14.6242 12.0859 14.7092 11.9068 14.78L11.5486 17.5H6.62325ZM9.13071 11.975C9.99639 11.975 10.7352 11.6846 11.3471 11.1038C11.9591 10.5229 12.265 9.82167 12.265 9C12.265 8.17833 11.9591 7.47708 11.3471 6.89625C10.7352 6.31542 9.99639 6.025 9.13071 6.025C8.25012 6.025 7.50758 6.31542 6.9031 6.89625C6.29862 7.47708 5.99639 8.17833 5.99639 9C5.99639 9.82167 6.29862 10.5229 6.9031 11.1038C7.50758 11.6846 8.25012 11.975 9.13071 11.975ZM9.13071 10.275C8.75758 10.275 8.44042 10.151 8.17922 9.90312C7.91803 9.65521 7.78743 9.35417 7.78743 9C7.78743 8.64583 7.91803 8.34479 8.17922 8.09688C8.44042 7.84896 8.75758 7.725 9.13071 7.725C9.50385 7.725 9.82101 7.84896 10.0822 8.09688C10.3434 8.34479 10.474 8.64583 10.474 9C10.474 9.35417 10.3434 9.65521 10.0822 9.90312C9.82101 10.151 9.50385 10.275 9.13071 10.275ZM8.19042 15.8H9.95907L10.2725 13.5475C10.7352 13.4342 11.1643 13.2677 11.5598 13.0481C11.9553 12.8285 12.3173 12.5629 12.6456 12.2513L14.8621 13.1225L15.7352 11.6775L13.8098 10.2963C13.8844 10.0979 13.9367 9.88896 13.9665 9.66938C13.9964 9.44979 14.0113 9.22667 14.0113 9C14.0113 8.77333 13.9964 8.55021 13.9665 8.33063C13.9367 8.11104 13.8844 7.90208 13.8098 7.70375L15.7352 6.3225L14.8621 4.8775L12.6456 5.77C12.3173 5.44417 11.9553 5.17146 11.5598 4.95188C11.1643 4.73229 10.7352 4.56583 10.2725 4.4525L9.98146 2.2H8.2128L7.89937 4.4525C7.43668 4.56583 7.00758 4.73229 6.61206 4.95188C6.21653 5.17146 5.85459 5.43708 5.52624 5.74875L3.30982 4.8775L2.43668 6.3225L4.36206 7.6825C4.28743 7.895 4.23519 8.1075 4.20534 8.32C4.17549 8.5325 4.16056 8.75917 4.16056 9C4.16056 9.22667 4.17549 9.44625 4.20534 9.65875C4.23519 9.87125 4.28743 10.0837 4.36206 10.2963L2.43668 11.6775L3.30982 13.1225L5.52624 12.23C5.85459 12.5558 6.21653 12.8285 6.61206 13.0481C7.00758 13.2677 7.43668 13.4342 7.89937 13.5475L8.19042 15.8Z"
12
+ fill="white"
13
+ />
14
+ </svg>
15
+ );
16
+ };
@@ -0,0 +1,15 @@
1
+ import React from "react";
2
+
3
+ export const TimerIcon = () => {
4
+ return (
5
+ <svg
6
+ xmlns="http://www.w3.org/2000/svg"
7
+ height="16"
8
+ viewBox="0 -960 960 960"
9
+ width="16"
10
+ fill="currentColor"
11
+ >
12
+ <path d="M360-840v-80h240v80H360Zm80 440h80v-240h-80v240Zm40 320q-74 0-139.5-28.5T226-186q-49-49-77.5-114.5T120-440q0-74 28.5-139.5T226-694q49-49 114.5-77.5T480-800q62 0 119 20t107 58l56-56 56 56-56 56q38 50 58 107t20 119q0 74-28.5 139.5T734-186q-49 49-114.5 77.5T480-80Zm0-80q116 0 198-82t82-198q0-116-82-198t-198-82q-116 0-198 82t-82 198q0 116 82 198t198 82Zm0-280Z" />
13
+ </svg>
14
+ );
15
+ };
@@ -0,0 +1,23 @@
1
+ export const XSwapBadgeIcon = () => {
2
+ return (
3
+ <svg
4
+ version="1.2"
5
+ xmlns="http://www.w3.org/2000/svg"
6
+ viewBox="0 0 80 27"
7
+ width="80"
8
+ height="27"
9
+ >
10
+ <title>xswap-badge</title>
11
+ <defs>
12
+ <image
13
+ width="80"
14
+ height="26"
15
+ id="img1iVBORw0KGgoAAAANSUhEUgAAAF"
16
+ href="data:image/png;base64,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"
17
+ />
18
+ </defs>
19
+ <style></style>
20
+ <use id="Background" href="#img1iVBORw0KGgoAAAANSUhEUgAAAF" x="0" y="1" />
21
+ </svg>
22
+ );
23
+ };
@@ -1,4 +1,5 @@
1
1
  export * from "./ArrowRightIcon";
2
+ export * from "./ArrowDownIcon";
2
3
  export * from "./ArrowUpRightIcon";
3
4
  export * from "./CheckIcon";
4
5
  export * from "./ChevronDownIcon";
@@ -12,3 +13,8 @@ export * from "./HourGlassIcon";
12
13
  export * from "./SearchIcon";
13
14
  export * from "./XMarkIcon";
14
15
  export * from "./PercentageIcon";
16
+ export * from "./TimerIcon";
17
+ export * from "./InfoIcon";
18
+ export * from "./SettingsIcon";
19
+ export * from "./XSwapBadgeIcon";
20
+ export * from "./ChainlinkCCIPIcon";
@@ -0,0 +1 @@
1
+ export * from "./wagmiConfig";
@@ -0,0 +1,45 @@
1
+ import { Config, createConfig, http } from "wagmi";
2
+ import { injected, metaMask, walletConnect, safe } from "wagmi/connectors";
3
+ import { Chain } from "@src/models";
4
+ import * as WagmiChains from "viem/chains";
5
+ import { Transport } from "viem";
6
+ import { mainnet } from "viem/chains";
7
+
8
+ export const getWagmiConfig = (supportedChains: Chain[]): Config => {
9
+ const chains = mapChains(supportedChains);
10
+ const transports = mapTransports(chains);
11
+ return createConfig({
12
+ chains,
13
+ transports,
14
+ connectors: [
15
+ injected(),
16
+ metaMask(),
17
+ safe(),
18
+ walletConnect({ projectId: "c392898b45ac587a280b5eb33e92aeb0" }),
19
+ ],
20
+ });
21
+ };
22
+
23
+ const mapChains = (
24
+ supportedChains: Chain[],
25
+ ): [WagmiChains.Chain, ...WagmiChains.Chain[]] => {
26
+ const result: [WagmiChains.Chain, ...WagmiChains.Chain[]] = [mainnet];
27
+ result.push(
28
+ ...Object.values(WagmiChains).filter(
29
+ (chain) =>
30
+ chain.id !== mainnet.id &&
31
+ supportedChains.some(({ chainId }) => chainId === chain.id.toString()),
32
+ ),
33
+ );
34
+ return result;
35
+ };
36
+
37
+ const mapTransports = (
38
+ chains: WagmiChains.Chain[],
39
+ ): Record<number, Transport> => {
40
+ const transports: Record<number, Transport> = {};
41
+ chains.forEach((chain) => {
42
+ transports[chain.id] = http();
43
+ });
44
+ return transports;
45
+ };
@@ -2,7 +2,10 @@ import { Ecosystem } from "@src/models";
2
2
 
3
3
  export const DEFAULT_ECOSYSTEM = Ecosystem.EVM;
4
4
  export const NUMBER_INPUT_REGEX = /^[0-9]*[.,]?[0-9]*$/;
5
- export const SLIPPAGE_PRESETS: number[] = [0.5, 1.5, 3];
6
- export const FALLBACK_CROSSCHAIN_ESTIMATION_TIME = 30 * 60 * 1000;
5
+ export const SLIPPAGE_PRESETS: number[] = [0.5, 1.5, 3.0];
6
+ export const DELIVERY_TIME = 30 * 1000 * 60;
7
+ export const EXPRESS_DELIVERY_TIME = 30 * 1000;
7
8
  export const BALANCES_CHUNK_SIZE = 500;
8
9
  export const BALANCE_DISPLAY_MIN_LIMIT = 0.0001;
10
+ export const ROUTE_TIMEOUT_MS = 5000;
11
+ export const MINIMUM_DISPLAYED_TOKEN_AMOUNT = 0.00001;
@@ -4,9 +4,14 @@ module.exports = {
4
4
  theme: {
5
5
  extend: {
6
6
  colors: {
7
- x_alert: "rgb(255, 183, 77)",
8
- x_alert_light: "rgb(255, 226, 183)",
7
+ x_alert: "rgb(255,183,77)",
8
+ x_alert_light: "rgb(255,226,183)",
9
9
  x_blue: "#3396FF",
10
+ x_green: "#66bb6a",
11
+ x_error_background: "rgba(255,202,40,0.1)",
12
+ x_error_border: "rgba(255,111,0,1)",
13
+ x_blue_light: "rgba(54,129,198,1)",
14
+ x_blue_dark: "rgba(43,74,157,1)",
10
15
  },
11
16
  },
12
17
  },
@@ -1,100 +0,0 @@
1
- import "@src/global.css";
2
- import { Form } from "./Form";
3
- import { CloseIcon } from "@src/components/icons/CloseIcon";
4
- import React from "react";
5
- import ReactDOM from "react-dom";
6
-
7
- const TxConfigForm = ({ isOpen, onClose, content }) => {
8
- const onBackdropClick = (e) => {
9
- e.stopPropagation();
10
- e.nativeEvent.stopImmediatePropagation();
11
- if (e.target === e.currentTarget) {
12
- onClose();
13
- }
14
- };
15
-
16
- if (!isOpen) return null;
17
-
18
- return (
19
- <div
20
- className="top-0 left-0 right-0 bottom-0 bg-[rgba(0,0,0,0.8)] fixed flex items-center justify-center z-10"
21
- onClick={onBackdropClick}
22
- >
23
- <div className="relative bg-black rounded-3xl w-lg overflow-auto text-white border-2 border-solid border-[rgba(255,255,255,0.1)]">
24
- {content}
25
- <div
26
- className="absolute top-3.5 right-3 cursor-pointer text-white"
27
- onClick={onClose}
28
- >
29
- <CloseIcon />
30
- </div>
31
- </div>
32
- </div>
33
- );
34
- };
35
-
36
- class TxConfigModalWrapper extends React.Component {
37
- constructor(props) {
38
- super(props);
39
- this.state = { isOpen: false, content: "No wallet connected" };
40
- this.closeModal = this.closeModal.bind(this);
41
- }
42
-
43
- openModal(content) {
44
- this.setState({ isOpen: true, content });
45
- }
46
-
47
- closeModal() {
48
- this.setState({ isOpen: false });
49
- }
50
-
51
- render() {
52
- return this.state.isOpen ? (
53
- <TxConfigForm
54
- isOpen={this.state.isOpen}
55
- onClose={this.closeModal}
56
- content={this.state.content}
57
- />
58
- ) : null;
59
- }
60
- }
61
-
62
- // skip on server-side integrations
63
- let modalWrapperInstance;
64
- if (typeof document !== "undefined") {
65
- // Create a div element that will host the modal, and append it to the body
66
- const modalDiv = document.createElement("div");
67
- modalDiv.classList.add("xswap");
68
- document.body.appendChild(modalDiv);
69
-
70
- // // Render the ModalWrapper component into the modalDiv
71
- modalWrapperInstance = ReactDOM.render(<TxConfigModalWrapper />, modalDiv);
72
- }
73
-
74
- export const openTxConfigForm = async ({
75
- dstChainId,
76
- dstTokenAddr,
77
- customContractCalls,
78
- desc,
79
- supportedChains,
80
- }) => {
81
- try {
82
- return await new Promise((resolve) => {
83
- modalWrapperInstance.openModal(
84
- <Form
85
- dstChainId={dstChainId}
86
- dstTokenAddr={dstTokenAddr}
87
- customContractCalls={customContractCalls}
88
- desc={desc}
89
- supportedChains={supportedChains}
90
- onSubmit={(route) => {
91
- resolve(route);
92
- modalWrapperInstance.closeModal();
93
- }}
94
- />,
95
- );
96
- });
97
- } catch (err) {
98
- throw new Error(`User input failed, ${err}`);
99
- }
100
- };
@@ -1,6 +0,0 @@
1
- /// <reference types="react-scripts" />
2
-
3
- interface Window {
4
- // eslint-disable-next-line
5
- ethereum: any;
6
- }