@sudobility/contracts 1.17.28 → 1.17.31

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 (321) hide show
  1. package/dist/react-native/src/evm/evm-mailer-client.d.ts +1277 -0
  2. package/dist/react-native/src/evm/evm-mailer-client.d.ts.map +1 -0
  3. package/dist/react-native/src/evm/evm-mailer-client.js +968 -0
  4. package/dist/react-native/src/evm/evm-mailer-client.js.map +1 -0
  5. package/dist/react-native/src/evm/index.d.ts +4 -0
  6. package/dist/react-native/src/evm/index.d.ts.map +1 -0
  7. package/dist/react-native/src/evm/index.js +5 -0
  8. package/dist/react-native/src/evm/index.js.map +1 -0
  9. package/dist/react-native/src/react-native/index.d.ts +23 -0
  10. package/dist/react-native/src/react-native/index.d.ts.map +1 -0
  11. package/dist/react-native/src/react-native/index.js +23 -0
  12. package/dist/react-native/src/react-native/index.js.map +1 -0
  13. package/dist/react-native/src/react-native/polyfills.d.ts +39 -0
  14. package/dist/react-native/src/react-native/polyfills.d.ts.map +1 -0
  15. package/dist/react-native/src/react-native/polyfills.js +75 -0
  16. package/dist/react-native/src/react-native/polyfills.js.map +1 -0
  17. package/dist/react-native/src/solana/index.d.ts +3 -0
  18. package/dist/react-native/src/solana/index.d.ts.map +1 -0
  19. package/dist/react-native/src/solana/index.js +4 -0
  20. package/dist/react-native/src/solana/index.js.map +1 -0
  21. package/dist/react-native/src/solana/solana-mailer-client.d.ts +213 -0
  22. package/dist/react-native/src/solana/solana-mailer-client.d.ts.map +1 -0
  23. package/dist/react-native/src/solana/solana-mailer-client.js +1055 -0
  24. package/dist/react-native/src/solana/solana-mailer-client.js.map +1 -0
  25. package/dist/react-native/src/solana/types.d.ts +29 -0
  26. package/dist/react-native/src/solana/types.d.ts.map +1 -0
  27. package/dist/react-native/src/solana/types.js +16 -0
  28. package/dist/react-native/src/solana/types.js.map +1 -0
  29. package/dist/react-native/src/unified/index.d.ts +4 -0
  30. package/dist/react-native/src/unified/index.d.ts.map +1 -0
  31. package/dist/react-native/src/unified/index.js +4 -0
  32. package/dist/react-native/src/unified/index.js.map +1 -0
  33. package/dist/react-native/src/unified/onchain-mailer-client.d.ts +280 -0
  34. package/dist/react-native/src/unified/onchain-mailer-client.d.ts.map +1 -0
  35. package/dist/react-native/src/unified/onchain-mailer-client.js +837 -0
  36. package/dist/react-native/src/unified/onchain-mailer-client.js.map +1 -0
  37. package/dist/react-native/src/unified/types.d.ts +54 -0
  38. package/dist/react-native/src/unified/types.d.ts.map +1 -0
  39. package/dist/react-native/src/unified/types.js +2 -0
  40. package/dist/react-native/src/unified/types.js.map +1 -0
  41. package/dist/react-native/src/unified/wallet-detector.d.ts +28 -0
  42. package/dist/react-native/src/unified/wallet-detector.d.ts.map +1 -0
  43. package/dist/react-native/src/unified/wallet-detector.js +59 -0
  44. package/dist/react-native/src/unified/wallet-detector.js.map +1 -0
  45. package/dist/react-native/src/utils/chain-config.d.ts +75 -0
  46. package/dist/react-native/src/utils/chain-config.d.ts.map +1 -0
  47. package/dist/react-native/src/utils/chain-config.js +199 -0
  48. package/dist/react-native/src/utils/chain-config.js.map +1 -0
  49. package/dist/react-native/src/utils/currency.d.ts +26 -0
  50. package/dist/react-native/src/utils/currency.d.ts.map +1 -0
  51. package/dist/react-native/src/utils/currency.js +31 -0
  52. package/dist/react-native/src/utils/currency.js.map +1 -0
  53. package/dist/react-native/src/utils/index.d.ts +4 -0
  54. package/dist/react-native/src/utils/index.d.ts.map +1 -0
  55. package/dist/react-native/src/utils/index.js +4 -0
  56. package/dist/react-native/src/utils/index.js.map +1 -0
  57. package/dist/react-native/src/utils/validation.d.ts +10 -0
  58. package/dist/react-native/src/utils/validation.d.ts.map +1 -0
  59. package/dist/react-native/src/utils/validation.js +96 -0
  60. package/dist/react-native/src/utils/validation.js.map +1 -0
  61. package/dist/react-native/typechain-types/@openzeppelin/contracts/index.d.ts +7 -0
  62. package/dist/react-native/typechain-types/@openzeppelin/contracts/index.d.ts.map +1 -0
  63. package/dist/react-native/typechain-types/@openzeppelin/contracts/index.js +2 -0
  64. package/dist/react-native/typechain-types/@openzeppelin/contracts/index.js.map +1 -0
  65. package/dist/react-native/typechain-types/@openzeppelin/contracts/interfaces/IERC1967.d.ts +66 -0
  66. package/dist/react-native/typechain-types/@openzeppelin/contracts/interfaces/IERC1967.d.ts.map +1 -0
  67. package/dist/react-native/typechain-types/@openzeppelin/contracts/interfaces/IERC1967.js +2 -0
  68. package/dist/react-native/typechain-types/@openzeppelin/contracts/interfaces/IERC1967.js.map +1 -0
  69. package/dist/react-native/typechain-types/@openzeppelin/contracts/interfaces/draft-IERC1822.sol/IERC1822Proxiable.d.ts +26 -0
  70. package/dist/react-native/typechain-types/@openzeppelin/contracts/interfaces/draft-IERC1822.sol/IERC1822Proxiable.d.ts.map +1 -0
  71. package/dist/react-native/typechain-types/@openzeppelin/contracts/interfaces/draft-IERC1822.sol/IERC1822Proxiable.js +2 -0
  72. package/dist/react-native/typechain-types/@openzeppelin/contracts/interfaces/draft-IERC1822.sol/IERC1822Proxiable.js.map +1 -0
  73. package/dist/react-native/typechain-types/@openzeppelin/contracts/interfaces/draft-IERC1822.sol/index.d.ts +2 -0
  74. package/dist/react-native/typechain-types/@openzeppelin/contracts/interfaces/draft-IERC1822.sol/index.d.ts.map +1 -0
  75. package/dist/react-native/typechain-types/@openzeppelin/contracts/interfaces/draft-IERC1822.sol/index.js +2 -0
  76. package/dist/react-native/typechain-types/@openzeppelin/contracts/interfaces/draft-IERC1822.sol/index.js.map +1 -0
  77. package/dist/react-native/typechain-types/@openzeppelin/contracts/interfaces/index.d.ts +4 -0
  78. package/dist/react-native/typechain-types/@openzeppelin/contracts/interfaces/index.d.ts.map +1 -0
  79. package/dist/react-native/typechain-types/@openzeppelin/contracts/interfaces/index.js +2 -0
  80. package/dist/react-native/typechain-types/@openzeppelin/contracts/interfaces/index.js.map +1 -0
  81. package/dist/react-native/typechain-types/@openzeppelin/contracts/proxy/ERC1967/ERC1967Utils.d.ts +21 -0
  82. package/dist/react-native/typechain-types/@openzeppelin/contracts/proxy/ERC1967/ERC1967Utils.d.ts.map +1 -0
  83. package/dist/react-native/typechain-types/@openzeppelin/contracts/proxy/ERC1967/ERC1967Utils.js +2 -0
  84. package/dist/react-native/typechain-types/@openzeppelin/contracts/proxy/ERC1967/ERC1967Utils.js.map +1 -0
  85. package/dist/react-native/typechain-types/@openzeppelin/contracts/proxy/ERC1967/index.d.ts +2 -0
  86. package/dist/react-native/typechain-types/@openzeppelin/contracts/proxy/ERC1967/index.d.ts.map +1 -0
  87. package/dist/react-native/typechain-types/@openzeppelin/contracts/proxy/ERC1967/index.js +2 -0
  88. package/dist/react-native/typechain-types/@openzeppelin/contracts/proxy/ERC1967/index.js.map +1 -0
  89. package/dist/react-native/typechain-types/@openzeppelin/contracts/proxy/beacon/IBeacon.d.ts +26 -0
  90. package/dist/react-native/typechain-types/@openzeppelin/contracts/proxy/beacon/IBeacon.d.ts.map +1 -0
  91. package/dist/react-native/typechain-types/@openzeppelin/contracts/proxy/beacon/IBeacon.js +2 -0
  92. package/dist/react-native/typechain-types/@openzeppelin/contracts/proxy/beacon/IBeacon.js.map +1 -0
  93. package/dist/react-native/typechain-types/@openzeppelin/contracts/proxy/beacon/index.d.ts +2 -0
  94. package/dist/react-native/typechain-types/@openzeppelin/contracts/proxy/beacon/index.d.ts.map +1 -0
  95. package/dist/react-native/typechain-types/@openzeppelin/contracts/proxy/beacon/index.js +2 -0
  96. package/dist/react-native/typechain-types/@openzeppelin/contracts/proxy/beacon/index.js.map +1 -0
  97. package/dist/react-native/typechain-types/@openzeppelin/contracts/proxy/index.d.ts +5 -0
  98. package/dist/react-native/typechain-types/@openzeppelin/contracts/proxy/index.d.ts.map +1 -0
  99. package/dist/react-native/typechain-types/@openzeppelin/contracts/proxy/index.js +2 -0
  100. package/dist/react-native/typechain-types/@openzeppelin/contracts/proxy/index.js.map +1 -0
  101. package/dist/react-native/typechain-types/@openzeppelin/contracts/utils/Address.d.ts +21 -0
  102. package/dist/react-native/typechain-types/@openzeppelin/contracts/utils/Address.d.ts.map +1 -0
  103. package/dist/react-native/typechain-types/@openzeppelin/contracts/utils/Address.js +2 -0
  104. package/dist/react-native/typechain-types/@openzeppelin/contracts/utils/Address.js.map +1 -0
  105. package/dist/react-native/typechain-types/@openzeppelin/contracts/utils/Errors.d.ts +21 -0
  106. package/dist/react-native/typechain-types/@openzeppelin/contracts/utils/Errors.d.ts.map +1 -0
  107. package/dist/react-native/typechain-types/@openzeppelin/contracts/utils/Errors.js +2 -0
  108. package/dist/react-native/typechain-types/@openzeppelin/contracts/utils/Errors.js.map +1 -0
  109. package/dist/react-native/typechain-types/@openzeppelin/contracts/utils/index.d.ts +3 -0
  110. package/dist/react-native/typechain-types/@openzeppelin/contracts/utils/index.d.ts.map +1 -0
  111. package/dist/react-native/typechain-types/@openzeppelin/contracts/utils/index.js +2 -0
  112. package/dist/react-native/typechain-types/@openzeppelin/contracts/utils/index.js.map +1 -0
  113. package/dist/react-native/typechain-types/@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.d.ts +69 -0
  114. package/dist/react-native/typechain-types/@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.d.ts.map +1 -0
  115. package/dist/react-native/typechain-types/@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.js +2 -0
  116. package/dist/react-native/typechain-types/@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.js.map +1 -0
  117. package/dist/react-native/typechain-types/@openzeppelin/contracts-upgradeable/access/index.d.ts +2 -0
  118. package/dist/react-native/typechain-types/@openzeppelin/contracts-upgradeable/access/index.d.ts.map +1 -0
  119. package/dist/react-native/typechain-types/@openzeppelin/contracts-upgradeable/access/index.js +2 -0
  120. package/dist/react-native/typechain-types/@openzeppelin/contracts-upgradeable/access/index.js.map +1 -0
  121. package/dist/react-native/typechain-types/@openzeppelin/contracts-upgradeable/index.d.ts +7 -0
  122. package/dist/react-native/typechain-types/@openzeppelin/contracts-upgradeable/index.d.ts.map +1 -0
  123. package/dist/react-native/typechain-types/@openzeppelin/contracts-upgradeable/index.js +2 -0
  124. package/dist/react-native/typechain-types/@openzeppelin/contracts-upgradeable/index.js.map +1 -0
  125. package/dist/react-native/typechain-types/@openzeppelin/contracts-upgradeable/proxy/index.d.ts +3 -0
  126. package/dist/react-native/typechain-types/@openzeppelin/contracts-upgradeable/proxy/index.d.ts.map +1 -0
  127. package/dist/react-native/typechain-types/@openzeppelin/contracts-upgradeable/proxy/index.js +2 -0
  128. package/dist/react-native/typechain-types/@openzeppelin/contracts-upgradeable/proxy/index.js.map +1 -0
  129. package/dist/react-native/typechain-types/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.d.ts +37 -0
  130. package/dist/react-native/typechain-types/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.d.ts.map +1 -0
  131. package/dist/react-native/typechain-types/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.js +2 -0
  132. package/dist/react-native/typechain-types/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.js.map +1 -0
  133. package/dist/react-native/typechain-types/@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.d.ts +74 -0
  134. package/dist/react-native/typechain-types/@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.d.ts.map +1 -0
  135. package/dist/react-native/typechain-types/@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.js +2 -0
  136. package/dist/react-native/typechain-types/@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.js.map +1 -0
  137. package/dist/react-native/typechain-types/@openzeppelin/contracts-upgradeable/proxy/utils/index.d.ts +3 -0
  138. package/dist/react-native/typechain-types/@openzeppelin/contracts-upgradeable/proxy/utils/index.d.ts.map +1 -0
  139. package/dist/react-native/typechain-types/@openzeppelin/contracts-upgradeable/proxy/utils/index.js +2 -0
  140. package/dist/react-native/typechain-types/@openzeppelin/contracts-upgradeable/proxy/utils/index.js.map +1 -0
  141. package/dist/react-native/typechain-types/@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.d.ts +37 -0
  142. package/dist/react-native/typechain-types/@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.d.ts.map +1 -0
  143. package/dist/react-native/typechain-types/@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.js +2 -0
  144. package/dist/react-native/typechain-types/@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.js.map +1 -0
  145. package/dist/react-native/typechain-types/@openzeppelin/contracts-upgradeable/utils/index.d.ts +2 -0
  146. package/dist/react-native/typechain-types/@openzeppelin/contracts-upgradeable/utils/index.d.ts.map +1 -0
  147. package/dist/react-native/typechain-types/@openzeppelin/contracts-upgradeable/utils/index.js +2 -0
  148. package/dist/react-native/typechain-types/@openzeppelin/contracts-upgradeable/utils/index.js.map +1 -0
  149. package/dist/react-native/typechain-types/@openzeppelin/index.d.ts +5 -0
  150. package/dist/react-native/typechain-types/@openzeppelin/index.d.ts.map +1 -0
  151. package/dist/react-native/typechain-types/@openzeppelin/index.js +2 -0
  152. package/dist/react-native/typechain-types/@openzeppelin/index.js.map +1 -0
  153. package/dist/react-native/typechain-types/common.d.ts +51 -0
  154. package/dist/react-native/typechain-types/common.d.ts.map +1 -0
  155. package/dist/react-native/typechain-types/common.js +2 -0
  156. package/dist/react-native/typechain-types/common.js.map +1 -0
  157. package/dist/react-native/typechain-types/contracts/Mailer.d.ts +845 -0
  158. package/dist/react-native/typechain-types/contracts/Mailer.d.ts.map +1 -0
  159. package/dist/react-native/typechain-types/contracts/Mailer.js +2 -0
  160. package/dist/react-native/typechain-types/contracts/Mailer.js.map +1 -0
  161. package/dist/react-native/typechain-types/contracts/MockUSDC.d.ts +118 -0
  162. package/dist/react-native/typechain-types/contracts/MockUSDC.d.ts.map +1 -0
  163. package/dist/react-native/typechain-types/contracts/MockUSDC.js +2 -0
  164. package/dist/react-native/typechain-types/contracts/MockUSDC.js.map +1 -0
  165. package/dist/react-native/typechain-types/contracts/examples/MailerIntegrationExample.d.ts +170 -0
  166. package/dist/react-native/typechain-types/contracts/examples/MailerIntegrationExample.d.ts.map +1 -0
  167. package/dist/react-native/typechain-types/contracts/examples/MailerIntegrationExample.js +2 -0
  168. package/dist/react-native/typechain-types/contracts/examples/MailerIntegrationExample.js.map +1 -0
  169. package/dist/react-native/typechain-types/contracts/examples/index.d.ts +2 -0
  170. package/dist/react-native/typechain-types/contracts/examples/index.d.ts.map +1 -0
  171. package/dist/react-native/typechain-types/contracts/examples/index.js +2 -0
  172. package/dist/react-native/typechain-types/contracts/examples/index.js.map +1 -0
  173. package/dist/react-native/typechain-types/contracts/index.d.ts +7 -0
  174. package/dist/react-native/typechain-types/contracts/index.d.ts.map +1 -0
  175. package/dist/react-native/typechain-types/contracts/index.js +2 -0
  176. package/dist/react-native/typechain-types/contracts/index.js.map +1 -0
  177. package/dist/react-native/typechain-types/contracts/interfaces/IERC20.d.ts +70 -0
  178. package/dist/react-native/typechain-types/contracts/interfaces/IERC20.d.ts.map +1 -0
  179. package/dist/react-native/typechain-types/contracts/interfaces/IERC20.js +2 -0
  180. package/dist/react-native/typechain-types/contracts/interfaces/IERC20.js.map +1 -0
  181. package/dist/react-native/typechain-types/contracts/interfaces/IMailer.d.ts +118 -0
  182. package/dist/react-native/typechain-types/contracts/interfaces/IMailer.d.ts.map +1 -0
  183. package/dist/react-native/typechain-types/contracts/interfaces/IMailer.js +2 -0
  184. package/dist/react-native/typechain-types/contracts/interfaces/IMailer.js.map +1 -0
  185. package/dist/react-native/typechain-types/contracts/interfaces/index.d.ts +3 -0
  186. package/dist/react-native/typechain-types/contracts/interfaces/index.d.ts.map +1 -0
  187. package/dist/react-native/typechain-types/contracts/interfaces/index.js +2 -0
  188. package/dist/react-native/typechain-types/contracts/interfaces/index.js.map +1 -0
  189. package/dist/react-native/typechain-types/factories/@openzeppelin/contracts/index.d.ts +4 -0
  190. package/dist/react-native/typechain-types/factories/@openzeppelin/contracts/index.d.ts.map +1 -0
  191. package/dist/react-native/typechain-types/factories/@openzeppelin/contracts/index.js +7 -0
  192. package/dist/react-native/typechain-types/factories/@openzeppelin/contracts/index.js.map +1 -0
  193. package/dist/react-native/typechain-types/factories/@openzeppelin/contracts/interfaces/IERC1967__factory.d.ts +43 -0
  194. package/dist/react-native/typechain-types/factories/@openzeppelin/contracts/interfaces/IERC1967__factory.d.ts.map +1 -0
  195. package/dist/react-native/typechain-types/factories/@openzeppelin/contracts/interfaces/IERC1967__factory.js +61 -0
  196. package/dist/react-native/typechain-types/factories/@openzeppelin/contracts/interfaces/IERC1967__factory.js.map +1 -0
  197. package/dist/react-native/typechain-types/factories/@openzeppelin/contracts/interfaces/draft-IERC1822.sol/IERC1822Proxiable__factory.d.ts +18 -0
  198. package/dist/react-native/typechain-types/factories/@openzeppelin/contracts/interfaces/draft-IERC1822.sol/IERC1822Proxiable__factory.d.ts.map +1 -0
  199. package/dist/react-native/typechain-types/factories/@openzeppelin/contracts/interfaces/draft-IERC1822.sol/IERC1822Proxiable__factory.js +29 -0
  200. package/dist/react-native/typechain-types/factories/@openzeppelin/contracts/interfaces/draft-IERC1822.sol/IERC1822Proxiable__factory.js.map +1 -0
  201. package/dist/react-native/typechain-types/factories/@openzeppelin/contracts/interfaces/draft-IERC1822.sol/index.d.ts +2 -0
  202. package/dist/react-native/typechain-types/factories/@openzeppelin/contracts/interfaces/draft-IERC1822.sol/index.d.ts.map +1 -0
  203. package/dist/react-native/typechain-types/factories/@openzeppelin/contracts/interfaces/draft-IERC1822.sol/index.js +5 -0
  204. package/dist/react-native/typechain-types/factories/@openzeppelin/contracts/interfaces/draft-IERC1822.sol/index.js.map +1 -0
  205. package/dist/react-native/typechain-types/factories/@openzeppelin/contracts/interfaces/index.d.ts +3 -0
  206. package/dist/react-native/typechain-types/factories/@openzeppelin/contracts/interfaces/index.d.ts.map +1 -0
  207. package/dist/react-native/typechain-types/factories/@openzeppelin/contracts/interfaces/index.js +6 -0
  208. package/dist/react-native/typechain-types/factories/@openzeppelin/contracts/interfaces/index.js.map +1 -0
  209. package/dist/react-native/typechain-types/factories/@openzeppelin/contracts/proxy/ERC1967/ERC1967Utils__factory.d.ts +51 -0
  210. package/dist/react-native/typechain-types/factories/@openzeppelin/contracts/proxy/ERC1967/ERC1967Utils__factory.d.ts.map +1 -0
  211. package/dist/react-native/typechain-types/factories/@openzeppelin/contracts/proxy/ERC1967/ERC1967Utils__factory.js +74 -0
  212. package/dist/react-native/typechain-types/factories/@openzeppelin/contracts/proxy/ERC1967/ERC1967Utils__factory.js.map +1 -0
  213. package/dist/react-native/typechain-types/factories/@openzeppelin/contracts/proxy/ERC1967/index.d.ts +2 -0
  214. package/dist/react-native/typechain-types/factories/@openzeppelin/contracts/proxy/ERC1967/index.d.ts.map +1 -0
  215. package/dist/react-native/typechain-types/factories/@openzeppelin/contracts/proxy/ERC1967/index.js +5 -0
  216. package/dist/react-native/typechain-types/factories/@openzeppelin/contracts/proxy/ERC1967/index.js.map +1 -0
  217. package/dist/react-native/typechain-types/factories/@openzeppelin/contracts/proxy/beacon/IBeacon__factory.d.ts +18 -0
  218. package/dist/react-native/typechain-types/factories/@openzeppelin/contracts/proxy/beacon/IBeacon__factory.d.ts.map +1 -0
  219. package/dist/react-native/typechain-types/factories/@openzeppelin/contracts/proxy/beacon/IBeacon__factory.js +29 -0
  220. package/dist/react-native/typechain-types/factories/@openzeppelin/contracts/proxy/beacon/IBeacon__factory.js.map +1 -0
  221. package/dist/react-native/typechain-types/factories/@openzeppelin/contracts/proxy/beacon/index.d.ts +2 -0
  222. package/dist/react-native/typechain-types/factories/@openzeppelin/contracts/proxy/beacon/index.d.ts.map +1 -0
  223. package/dist/react-native/typechain-types/factories/@openzeppelin/contracts/proxy/beacon/index.js +5 -0
  224. package/dist/react-native/typechain-types/factories/@openzeppelin/contracts/proxy/beacon/index.js.map +1 -0
  225. package/dist/react-native/typechain-types/factories/@openzeppelin/contracts/proxy/index.d.ts +3 -0
  226. package/dist/react-native/typechain-types/factories/@openzeppelin/contracts/proxy/index.d.ts.map +1 -0
  227. package/dist/react-native/typechain-types/factories/@openzeppelin/contracts/proxy/index.js +6 -0
  228. package/dist/react-native/typechain-types/factories/@openzeppelin/contracts/proxy/index.js.map +1 -0
  229. package/dist/react-native/typechain-types/factories/@openzeppelin/contracts/utils/Address__factory.d.ts +31 -0
  230. package/dist/react-native/typechain-types/factories/@openzeppelin/contracts/utils/Address__factory.d.ts.map +1 -0
  231. package/dist/react-native/typechain-types/factories/@openzeppelin/contracts/utils/Address__factory.js +47 -0
  232. package/dist/react-native/typechain-types/factories/@openzeppelin/contracts/utils/Address__factory.js.map +1 -0
  233. package/dist/react-native/typechain-types/factories/@openzeppelin/contracts/utils/Errors__factory.d.ts +51 -0
  234. package/dist/react-native/typechain-types/factories/@openzeppelin/contracts/utils/Errors__factory.d.ts.map +1 -0
  235. package/dist/react-native/typechain-types/factories/@openzeppelin/contracts/utils/Errors__factory.js +73 -0
  236. package/dist/react-native/typechain-types/factories/@openzeppelin/contracts/utils/Errors__factory.js.map +1 -0
  237. package/dist/react-native/typechain-types/factories/@openzeppelin/contracts/utils/index.d.ts +3 -0
  238. package/dist/react-native/typechain-types/factories/@openzeppelin/contracts/utils/index.d.ts.map +1 -0
  239. package/dist/react-native/typechain-types/factories/@openzeppelin/contracts/utils/index.js +6 -0
  240. package/dist/react-native/typechain-types/factories/@openzeppelin/contracts/utils/index.js.map +1 -0
  241. package/dist/react-native/typechain-types/factories/@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable__factory.d.ts +83 -0
  242. package/dist/react-native/typechain-types/factories/@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable__factory.d.ts.map +1 -0
  243. package/dist/react-native/typechain-types/factories/@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable__factory.js +113 -0
  244. package/dist/react-native/typechain-types/factories/@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable__factory.js.map +1 -0
  245. package/dist/react-native/typechain-types/factories/@openzeppelin/contracts-upgradeable/access/index.d.ts +2 -0
  246. package/dist/react-native/typechain-types/factories/@openzeppelin/contracts-upgradeable/access/index.d.ts.map +1 -0
  247. package/dist/react-native/typechain-types/factories/@openzeppelin/contracts-upgradeable/access/index.js +5 -0
  248. package/dist/react-native/typechain-types/factories/@openzeppelin/contracts-upgradeable/access/index.js.map +1 -0
  249. package/dist/react-native/typechain-types/factories/@openzeppelin/contracts-upgradeable/index.d.ts +4 -0
  250. package/dist/react-native/typechain-types/factories/@openzeppelin/contracts-upgradeable/index.d.ts.map +1 -0
  251. package/dist/react-native/typechain-types/factories/@openzeppelin/contracts-upgradeable/index.js +7 -0
  252. package/dist/react-native/typechain-types/factories/@openzeppelin/contracts-upgradeable/index.js.map +1 -0
  253. package/dist/react-native/typechain-types/factories/@openzeppelin/contracts-upgradeable/proxy/index.d.ts +2 -0
  254. package/dist/react-native/typechain-types/factories/@openzeppelin/contracts-upgradeable/proxy/index.d.ts.map +1 -0
  255. package/dist/react-native/typechain-types/factories/@openzeppelin/contracts-upgradeable/proxy/index.js +5 -0
  256. package/dist/react-native/typechain-types/factories/@openzeppelin/contracts-upgradeable/proxy/index.js.map +1 -0
  257. package/dist/react-native/typechain-types/factories/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable__factory.d.ts +26 -0
  258. package/dist/react-native/typechain-types/factories/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable__factory.d.ts.map +1 -0
  259. package/dist/react-native/typechain-types/factories/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable__factory.js +39 -0
  260. package/dist/react-native/typechain-types/factories/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable__factory.js.map +1 -0
  261. package/dist/react-native/typechain-types/factories/@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable__factory.d.ts +106 -0
  262. package/dist/react-native/typechain-types/factories/@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable__factory.d.ts.map +1 -0
  263. package/dist/react-native/typechain-types/factories/@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable__factory.js +144 -0
  264. package/dist/react-native/typechain-types/factories/@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable__factory.js.map +1 -0
  265. package/dist/react-native/typechain-types/factories/@openzeppelin/contracts-upgradeable/proxy/utils/index.d.ts +3 -0
  266. package/dist/react-native/typechain-types/factories/@openzeppelin/contracts-upgradeable/proxy/utils/index.d.ts.map +1 -0
  267. package/dist/react-native/typechain-types/factories/@openzeppelin/contracts-upgradeable/proxy/utils/index.js +6 -0
  268. package/dist/react-native/typechain-types/factories/@openzeppelin/contracts-upgradeable/proxy/utils/index.js.map +1 -0
  269. package/dist/react-native/typechain-types/factories/@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable__factory.d.ts +26 -0
  270. package/dist/react-native/typechain-types/factories/@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable__factory.d.ts.map +1 -0
  271. package/dist/react-native/typechain-types/factories/@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable__factory.js +39 -0
  272. package/dist/react-native/typechain-types/factories/@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable__factory.js.map +1 -0
  273. package/dist/react-native/typechain-types/factories/@openzeppelin/contracts-upgradeable/utils/index.d.ts +2 -0
  274. package/dist/react-native/typechain-types/factories/@openzeppelin/contracts-upgradeable/utils/index.d.ts.map +1 -0
  275. package/dist/react-native/typechain-types/factories/@openzeppelin/contracts-upgradeable/utils/index.js +5 -0
  276. package/dist/react-native/typechain-types/factories/@openzeppelin/contracts-upgradeable/utils/index.js.map +1 -0
  277. package/dist/react-native/typechain-types/factories/@openzeppelin/index.d.ts +3 -0
  278. package/dist/react-native/typechain-types/factories/@openzeppelin/index.d.ts.map +1 -0
  279. package/dist/react-native/typechain-types/factories/@openzeppelin/index.js +6 -0
  280. package/dist/react-native/typechain-types/factories/@openzeppelin/index.js.map +1 -0
  281. package/dist/react-native/typechain-types/factories/contracts/Mailer__factory.d.ts +1086 -0
  282. package/dist/react-native/typechain-types/factories/contracts/Mailer__factory.d.ts.map +1 -0
  283. package/dist/react-native/typechain-types/factories/contracts/Mailer__factory.js +1390 -0
  284. package/dist/react-native/typechain-types/factories/contracts/Mailer__factory.js.map +1 -0
  285. package/dist/react-native/typechain-types/factories/contracts/MockUSDC__factory.d.ts +193 -0
  286. package/dist/react-native/typechain-types/factories/contracts/MockUSDC__factory.d.ts.map +1 -0
  287. package/dist/react-native/typechain-types/factories/contracts/MockUSDC__factory.js +259 -0
  288. package/dist/react-native/typechain-types/factories/contracts/MockUSDC__factory.js.map +1 -0
  289. package/dist/react-native/typechain-types/factories/contracts/examples/MailerIntegrationExample__factory.d.ts +209 -0
  290. package/dist/react-native/typechain-types/factories/contracts/examples/MailerIntegrationExample__factory.d.ts.map +1 -0
  291. package/dist/react-native/typechain-types/factories/contracts/examples/MailerIntegrationExample__factory.js +274 -0
  292. package/dist/react-native/typechain-types/factories/contracts/examples/MailerIntegrationExample__factory.js.map +1 -0
  293. package/dist/react-native/typechain-types/factories/contracts/examples/index.d.ts +2 -0
  294. package/dist/react-native/typechain-types/factories/contracts/examples/index.d.ts.map +1 -0
  295. package/dist/react-native/typechain-types/factories/contracts/examples/index.js +5 -0
  296. package/dist/react-native/typechain-types/factories/contracts/examples/index.js.map +1 -0
  297. package/dist/react-native/typechain-types/factories/contracts/index.d.ts +5 -0
  298. package/dist/react-native/typechain-types/factories/contracts/index.d.ts.map +1 -0
  299. package/dist/react-native/typechain-types/factories/contracts/index.js +8 -0
  300. package/dist/react-native/typechain-types/factories/contracts/index.js.map +1 -0
  301. package/dist/react-native/typechain-types/factories/contracts/interfaces/IERC20__factory.d.ts +80 -0
  302. package/dist/react-native/typechain-types/factories/contracts/interfaces/IERC20__factory.d.ts.map +1 -0
  303. package/dist/react-native/typechain-types/factories/contracts/interfaces/IERC20__factory.js +112 -0
  304. package/dist/react-native/typechain-types/factories/contracts/interfaces/IERC20__factory.js.map +1 -0
  305. package/dist/react-native/typechain-types/factories/contracts/interfaces/IMailer__factory.d.ts +130 -0
  306. package/dist/react-native/typechain-types/factories/contracts/interfaces/IMailer__factory.d.ts.map +1 -0
  307. package/dist/react-native/typechain-types/factories/contracts/interfaces/IMailer__factory.js +171 -0
  308. package/dist/react-native/typechain-types/factories/contracts/interfaces/IMailer__factory.js.map +1 -0
  309. package/dist/react-native/typechain-types/factories/contracts/interfaces/index.d.ts +3 -0
  310. package/dist/react-native/typechain-types/factories/contracts/interfaces/index.d.ts.map +1 -0
  311. package/dist/react-native/typechain-types/factories/contracts/interfaces/index.js +6 -0
  312. package/dist/react-native/typechain-types/factories/contracts/interfaces/index.js.map +1 -0
  313. package/dist/react-native/typechain-types/factories/index.d.ts +3 -0
  314. package/dist/react-native/typechain-types/factories/index.d.ts.map +1 -0
  315. package/dist/react-native/typechain-types/factories/index.js +6 -0
  316. package/dist/react-native/typechain-types/factories/index.js.map +1 -0
  317. package/dist/react-native/typechain-types/index.d.ts +36 -0
  318. package/dist/react-native/typechain-types/index.d.ts.map +1 -0
  319. package/dist/react-native/typechain-types/index.js +17 -0
  320. package/dist/react-native/typechain-types/index.js.map +1 -0
  321. package/package.json +43 -5
@@ -0,0 +1,837 @@
1
+ /* eslint-disable @typescript-eslint/ban-ts-comment */
2
+ // @ts-nocheck - Suppress false TypeScript errors with ESNext modules accessing class properties
3
+ import { ChainType } from '@sudobility/types';
4
+ /**
5
+ * OnchainMailerClient - Stateless multi-chain messaging client
6
+ *
7
+ * This version uses stateless EVM and Solana clients underneath.
8
+ * All wallet connections and chain information are passed as parameters to each method.
9
+ *
10
+ * @example EVM Usage
11
+ * ```typescript
12
+ * import { createWalletClient, createPublicClient, http } from 'viem';
13
+ * import { RpcHelpers } from '@sudobility/configs';
14
+ * import { Chain } from '@sudobility/types';
15
+ *
16
+ * const chainInfo = RpcHelpers.getChainInfo(Chain.ETH_MAINNET);
17
+ * const walletClient = createWalletClient({
18
+ * chain: mainnet,
19
+ * transport: http()
20
+ * });
21
+ *
22
+ * const client = new OnchainMailerClient();
23
+ * await client.sendMessage(
24
+ * 'Subject',
25
+ * 'Body',
26
+ * { walletClient },
27
+ * chainInfo,
28
+ * { priority: true }
29
+ * );
30
+ * ```
31
+ *
32
+ * @example Solana Usage
33
+ * ```typescript
34
+ * import { useWallet } from '@solana/wallet-adapter-react';
35
+ * import { Connection } from '@solana/web3.js';
36
+ * import { RpcHelpers } from '@sudobility/configs';
37
+ * import { Chain } from '@sudobility/types';
38
+ *
39
+ * const chainInfo = RpcHelpers.getChainInfo(Chain.SOLANA_MAINNET);
40
+ * const wallet = useWallet();
41
+ *
42
+ * const client = new OnchainMailerClient();
43
+ * await client.sendMessage(
44
+ * 'Subject',
45
+ * 'Body',
46
+ * { wallet },
47
+ * chainInfo,
48
+ * { priority: true }
49
+ * );
50
+ * ```
51
+ */
52
+ export class OnchainMailerClient {
53
+ /**
54
+ * Create a new stateless OnchainMailerClient
55
+ * No configuration needed in constructor
56
+ */
57
+ constructor() {
58
+ // Stateless - no initialization needed
59
+ }
60
+ // Performance optimization: cache client imports
61
+ async getEVMClient() {
62
+ if (!OnchainMailerClient.evmClient) {
63
+ const { EVMMailerClient } = await import('../evm/evm-mailer-client.js');
64
+ OnchainMailerClient.evmClient = new EVMMailerClient();
65
+ }
66
+ return OnchainMailerClient.evmClient;
67
+ }
68
+ async getSolanaClient() {
69
+ if (!OnchainMailerClient.solanaClient) {
70
+ const { SolanaMailerClient } = await import('../solana/solana-mailer-client.js');
71
+ OnchainMailerClient.solanaClient = new SolanaMailerClient();
72
+ }
73
+ return OnchainMailerClient.solanaClient;
74
+ }
75
+ /**
76
+ * Send a message on the blockchain
77
+ * @param subject - Message subject (1-200 characters)
78
+ * @param body - Message body (1-10000 characters)
79
+ * @param wallet - Wallet connection (EVM or Solana)
80
+ * @param chainInfo - Chain information including RPC endpoints and contract addresses
81
+ * @param options - Optional parameters
82
+ * @returns Transaction result
83
+ */
84
+ async sendMessage(connectedWallet, chainInfo, subject, body, options) {
85
+ // Validate message
86
+ if (!subject || subject.length > 200) {
87
+ throw new Error('Subject must be 1-200 characters');
88
+ }
89
+ if (!body || body.length > 10000) {
90
+ throw new Error('Body must be 1-10000 characters');
91
+ }
92
+ // Route to appropriate implementation based on chain type
93
+ if (chainInfo.chainType === ChainType.EVM) {
94
+ const evmClient = await this.getEVMClient();
95
+ const evmWallet = connectedWallet;
96
+ const [account] = await evmWallet.walletClient.getAddresses();
97
+ const to = options?.to || account;
98
+ const priority = options?.priority ?? false;
99
+ const resolveSenderToName = options?.resolveSenderToName ?? false;
100
+ const result = await evmClient.send(evmWallet, chainInfo, to, subject, body, account, // payer
101
+ priority, // revenueShareToReceiver
102
+ resolveSenderToName, options?.gasOptions);
103
+ return {
104
+ transactionHash: result.hash,
105
+ chainType: ChainType.EVM,
106
+ fee: BigInt(priority ? '100000' : '10000'),
107
+ gasUsed: result.gasUsed,
108
+ isPriority: priority,
109
+ success: true
110
+ };
111
+ }
112
+ else if (chainInfo.chainType === ChainType.SOLANA) {
113
+ const solanaClient = await this.getSolanaClient();
114
+ const solanaWallet = connectedWallet;
115
+ const to = options?.to || solanaWallet.wallet.publicKey.toBase58();
116
+ const priority = options?.priority ?? false;
117
+ const resolveSenderToName = options?.resolveSenderToName ?? false;
118
+ const result = await solanaClient.send(solanaWallet, chainInfo, to, subject, body, priority, // revenueShareToReceiver
119
+ resolveSenderToName, options?.computeOptions);
120
+ return {
121
+ transactionHash: result.transactionHash,
122
+ chainType: ChainType.SOLANA,
123
+ fee: BigInt(priority ? '100000' : '10000'),
124
+ isPriority: priority,
125
+ success: true
126
+ };
127
+ }
128
+ else {
129
+ throw new Error(`Unsupported chain type: ${chainInfo.chainType}`);
130
+ }
131
+ }
132
+ /**
133
+ * Send a prepared message
134
+ */
135
+ async sendPrepared(connectedWallet, chainInfo, to, mailId, options) {
136
+ if (chainInfo.chainType === ChainType.EVM) {
137
+ const evmClient = await this.getEVMClient();
138
+ const evmWallet = connectedWallet;
139
+ const [account] = await evmWallet.walletClient.getAddresses();
140
+ const priority = options?.priority ?? false;
141
+ const resolveSenderToName = options?.resolveSenderToName ?? false;
142
+ const result = await evmClient.sendPrepared(evmWallet, chainInfo, to, mailId, account, // payer
143
+ priority, // revenueShareToReceiver
144
+ resolveSenderToName, options?.gasOptions);
145
+ return {
146
+ transactionHash: result.hash,
147
+ chainType: ChainType.EVM,
148
+ fee: BigInt(priority ? '100000' : '10000'),
149
+ gasUsed: result.gasUsed,
150
+ isPriority: priority,
151
+ success: true
152
+ };
153
+ }
154
+ else if (chainInfo.chainType === ChainType.SOLANA) {
155
+ const solanaClient = await this.getSolanaClient();
156
+ const solanaWallet = connectedWallet;
157
+ const priority = options?.priority ?? false;
158
+ const resolveSenderToName = options?.resolveSenderToName ?? false;
159
+ const result = await solanaClient.sendPrepared(solanaWallet, chainInfo, to, mailId, priority, resolveSenderToName, options?.computeOptions);
160
+ return {
161
+ transactionHash: result.transactionHash,
162
+ chainType: ChainType.SOLANA,
163
+ fee: BigInt(priority ? '100000' : '10000'),
164
+ isPriority: priority,
165
+ success: true
166
+ };
167
+ }
168
+ else {
169
+ throw new Error(`Unsupported chain type: ${chainInfo.chainType}`);
170
+ }
171
+ }
172
+ /**
173
+ * Send through webhook
174
+ */
175
+ async sendThroughWebhook(connectedWallet, chainInfo, to, webhookId, options) {
176
+ if (chainInfo.chainType === ChainType.EVM) {
177
+ const evmClient = await this.getEVMClient();
178
+ const evmWallet = connectedWallet;
179
+ const [account] = await evmWallet.walletClient.getAddresses();
180
+ const priority = options?.priority ?? false;
181
+ const result = await evmClient.sendThroughWebhook(evmWallet, chainInfo, to, webhookId, account, // payer
182
+ priority, options?.resolveSenderToName ?? false, options?.gasOptions);
183
+ return {
184
+ transactionHash: result.hash,
185
+ chainType: ChainType.EVM,
186
+ fee: BigInt(priority ? '100000' : '10000'),
187
+ gasUsed: result.gasUsed,
188
+ isPriority: priority,
189
+ success: true
190
+ };
191
+ }
192
+ else if (chainInfo.chainType === ChainType.SOLANA) {
193
+ const solanaClient = await this.getSolanaClient();
194
+ const solanaWallet = connectedWallet;
195
+ const priority = options?.priority ?? false;
196
+ const result = await solanaClient.sendThroughWebhook(solanaWallet, chainInfo, to, webhookId, priority, options?.resolveSenderToName ?? false, options?.computeOptions);
197
+ return {
198
+ transactionHash: result.transactionHash,
199
+ chainType: ChainType.SOLANA,
200
+ fee: BigInt(priority ? '100000' : '10000'),
201
+ isPriority: priority,
202
+ success: true
203
+ };
204
+ }
205
+ else {
206
+ throw new Error(`Unsupported chain type: ${chainInfo.chainType}`);
207
+ }
208
+ }
209
+ /**
210
+ * Send to email address
211
+ */
212
+ async sendToEmailAddress(connectedWallet, chainInfo, toEmail, subject, body, options) {
213
+ // Validate message
214
+ if (!subject || subject.length > 200) {
215
+ throw new Error('Subject must be 1-200 characters');
216
+ }
217
+ if (!body || body.length > 10000) {
218
+ throw new Error('Body must be 1-10000 characters');
219
+ }
220
+ if (chainInfo.chainType === ChainType.EVM) {
221
+ const evmClient = await this.getEVMClient();
222
+ const evmWallet = connectedWallet;
223
+ const [account] = await evmWallet.walletClient.getAddresses();
224
+ const result = await evmClient.sendToEmailAddress(evmWallet, chainInfo, toEmail, subject, body, account, // payer
225
+ options?.gasOptions);
226
+ return {
227
+ transactionHash: result.hash,
228
+ chainType: ChainType.EVM,
229
+ fee: BigInt('10000'), // Email sends use standard fee
230
+ gasUsed: result.gasUsed,
231
+ isPriority: false,
232
+ success: true
233
+ };
234
+ }
235
+ else if (chainInfo.chainType === ChainType.SOLANA) {
236
+ const solanaClient = await this.getSolanaClient();
237
+ const solanaWallet = connectedWallet;
238
+ const result = await solanaClient.sendToEmail(toEmail, subject, body, solanaWallet.wallet.publicKey.toBase58(), // payer
239
+ false, // revenueShareToReceiver - email sends don't share revenue
240
+ solanaWallet, chainInfo, options?.computeOptions);
241
+ return {
242
+ transactionHash: result.transactionHash,
243
+ chainType: ChainType.SOLANA,
244
+ fee: BigInt('10000'),
245
+ isPriority: false,
246
+ success: true
247
+ };
248
+ }
249
+ else {
250
+ throw new Error(`Unsupported chain type: ${chainInfo.chainType}`);
251
+ }
252
+ }
253
+ /**
254
+ * Send prepared to email address
255
+ */
256
+ async sendPreparedToEmailAddress(connectedWallet, chainInfo, toEmail, mailId, options) {
257
+ if (chainInfo.chainType === ChainType.EVM) {
258
+ const evmClient = await this.getEVMClient();
259
+ const evmWallet = connectedWallet;
260
+ const [account] = await evmWallet.walletClient.getAddresses();
261
+ const result = await evmClient.sendPreparedToEmailAddress(evmWallet, chainInfo, toEmail, mailId, account, // payer
262
+ options?.gasOptions);
263
+ return {
264
+ transactionHash: result.hash,
265
+ chainType: ChainType.EVM,
266
+ fee: BigInt('10000'),
267
+ gasUsed: result.gasUsed,
268
+ isPriority: false,
269
+ success: true
270
+ };
271
+ }
272
+ else if (chainInfo.chainType === ChainType.SOLANA) {
273
+ const solanaClient = await this.getSolanaClient();
274
+ const solanaWallet = connectedWallet;
275
+ const result = await solanaClient.sendPreparedToEmail(toEmail, mailId, solanaWallet.wallet.publicKey.toBase58(), // payer
276
+ false, // revenueShareToReceiver
277
+ solanaWallet, chainInfo, options?.computeOptions);
278
+ return {
279
+ transactionHash: result.transactionHash,
280
+ chainType: ChainType.SOLANA,
281
+ fee: BigInt('10000'),
282
+ isPriority: false,
283
+ success: true
284
+ };
285
+ }
286
+ else {
287
+ throw new Error(`Unsupported chain type: ${chainInfo.chainType}`);
288
+ }
289
+ }
290
+ /**
291
+ * Delegate to another address
292
+ * @param delegate - Address to delegate to
293
+ * @param wallet - Wallet connection
294
+ * @param chainInfo - Chain information
295
+ * @returns Transaction result
296
+ */
297
+ async delegateTo(connectedWallet, chainInfo, delegate, options) {
298
+ if (chainInfo.chainType === ChainType.EVM) {
299
+ const evmClient = await this.getEVMClient();
300
+ const result = await evmClient.delegateTo(connectedWallet, chainInfo, delegate, options?.gasOptions);
301
+ return {
302
+ transactionHash: result.hash,
303
+ chainType: ChainType.EVM,
304
+ delegate,
305
+ success: true
306
+ };
307
+ }
308
+ else if (chainInfo.chainType === ChainType.SOLANA) {
309
+ const solanaClient = await this.getSolanaClient();
310
+ const result = await solanaClient.delegateTo(connectedWallet, chainInfo, delegate, options?.computeOptions);
311
+ return {
312
+ transactionHash: result.transactionHash,
313
+ chainType: ChainType.SOLANA,
314
+ delegate,
315
+ success: true
316
+ };
317
+ }
318
+ else {
319
+ throw new Error(`Unsupported chain type: ${chainInfo.chainType}`);
320
+ }
321
+ }
322
+ /**
323
+ * Reject delegation
324
+ */
325
+ async rejectDelegation(connectedWallet, chainInfo, delegatingAddress, options) {
326
+ if (chainInfo.chainType === ChainType.EVM) {
327
+ const evmClient = await this.getEVMClient();
328
+ const result = await evmClient.rejectDelegation(connectedWallet, chainInfo, delegatingAddress, options?.gasOptions);
329
+ return {
330
+ hash: result.hash,
331
+ chainType: ChainType.EVM
332
+ };
333
+ }
334
+ else if (chainInfo.chainType === ChainType.SOLANA) {
335
+ const solanaClient = await this.getSolanaClient();
336
+ const result = await solanaClient.rejectDelegation(connectedWallet, chainInfo, delegatingAddress, options?.computeOptions);
337
+ return {
338
+ hash: result.transactionHash,
339
+ chainType: ChainType.SOLANA
340
+ };
341
+ }
342
+ else {
343
+ throw new Error(`Unsupported chain type: ${chainInfo.chainType}`);
344
+ }
345
+ }
346
+ /**
347
+ * Claim revenue share
348
+ * @param wallet - Wallet connection
349
+ * @param chainInfo - Chain information
350
+ * @returns Transaction result
351
+ */
352
+ async claimRevenue(connectedWallet, chainInfo, options) {
353
+ if (chainInfo.chainType === ChainType.EVM) {
354
+ const evmClient = await this.getEVMClient();
355
+ const result = await evmClient.claimRecipientShare(connectedWallet, chainInfo, options?.gasOptions);
356
+ return {
357
+ hash: result.hash,
358
+ chainType: ChainType.EVM
359
+ };
360
+ }
361
+ else if (chainInfo.chainType === ChainType.SOLANA) {
362
+ const solanaClient = await this.getSolanaClient();
363
+ const result = await solanaClient.claimRecipientShare(connectedWallet, chainInfo, options?.computeOptions);
364
+ return {
365
+ hash: result.transactionHash,
366
+ chainType: ChainType.SOLANA
367
+ };
368
+ }
369
+ else {
370
+ throw new Error(`Unsupported chain type: ${chainInfo.chainType}`);
371
+ }
372
+ }
373
+ /**
374
+ * Claim owner share (owner only)
375
+ */
376
+ async claimOwnerShare(connectedWallet, chainInfo, options) {
377
+ if (chainInfo.chainType === ChainType.EVM) {
378
+ const evmClient = await this.getEVMClient();
379
+ const result = await evmClient.claimOwnerShare(connectedWallet, chainInfo, options?.gasOptions);
380
+ return {
381
+ hash: result.hash,
382
+ chainType: ChainType.EVM
383
+ };
384
+ }
385
+ else if (chainInfo.chainType === ChainType.SOLANA) {
386
+ const solanaClient = await this.getSolanaClient();
387
+ const result = await solanaClient.claimOwnerShare(connectedWallet, chainInfo, options?.computeOptions);
388
+ return {
389
+ hash: result.transactionHash,
390
+ chainType: ChainType.SOLANA
391
+ };
392
+ }
393
+ else {
394
+ throw new Error(`Unsupported chain type: ${chainInfo.chainType}`);
395
+ }
396
+ }
397
+ /**
398
+ * Claim expired shares (owner only)
399
+ */
400
+ async claimExpiredShares(connectedWallet, chainInfo, recipient, options) {
401
+ if (chainInfo.chainType === ChainType.EVM) {
402
+ const evmClient = await this.getEVMClient();
403
+ const result = await evmClient.claimExpiredShares(connectedWallet, chainInfo, recipient, options?.gasOptions);
404
+ return {
405
+ hash: result.hash,
406
+ chainType: ChainType.EVM
407
+ };
408
+ }
409
+ else if (chainInfo.chainType === ChainType.SOLANA) {
410
+ const solanaClient = await this.getSolanaClient();
411
+ const result = await solanaClient.claimExpiredShares(connectedWallet, chainInfo, recipient, options?.computeOptions);
412
+ return {
413
+ hash: result.transactionHash,
414
+ chainType: ChainType.SOLANA
415
+ };
416
+ }
417
+ else {
418
+ throw new Error(`Unsupported chain type: ${chainInfo.chainType}`);
419
+ }
420
+ }
421
+ /**
422
+ * Set fees (owner only)
423
+ */
424
+ async setFees(connectedWallet, chainInfo, sendFee, delegationFee, options) {
425
+ if (chainInfo.chainType === ChainType.EVM) {
426
+ const evmClient = await this.getEVMClient();
427
+ // EVM client uses separate methods
428
+ await evmClient.setFee(connectedWallet, chainInfo, sendFee, options?.gasOptions);
429
+ const result2 = await evmClient.setDelegationFee(connectedWallet, chainInfo, delegationFee, options?.gasOptions);
430
+ return {
431
+ hash: result2.hash, // Return last transaction
432
+ chainType: ChainType.EVM
433
+ };
434
+ }
435
+ else if (chainInfo.chainType === ChainType.SOLANA) {
436
+ const solanaClient = await this.getSolanaClient();
437
+ const result = await solanaClient.setFees(connectedWallet, chainInfo, sendFee, delegationFee, options?.computeOptions);
438
+ return {
439
+ hash: result.transactionHash,
440
+ chainType: ChainType.SOLANA
441
+ };
442
+ }
443
+ else {
444
+ throw new Error(`Unsupported chain type: ${chainInfo.chainType}`);
445
+ }
446
+ }
447
+ /**
448
+ * Set fee paused state (owner only)
449
+ */
450
+ async setFeePaused(connectedWallet, chainInfo, feePaused, options) {
451
+ if (chainInfo.chainType === ChainType.EVM) {
452
+ const evmClient = await this.getEVMClient();
453
+ const result = await evmClient.setFeePaused(connectedWallet, chainInfo, feePaused, options?.gasOptions);
454
+ return {
455
+ hash: result.hash,
456
+ chainType: ChainType.EVM
457
+ };
458
+ }
459
+ else if (chainInfo.chainType === ChainType.SOLANA) {
460
+ const solanaClient = await this.getSolanaClient();
461
+ const result = await solanaClient.setFeePaused(feePaused, connectedWallet, chainInfo, options?.computeOptions);
462
+ return {
463
+ hash: result.transactionHash,
464
+ chainType: ChainType.SOLANA
465
+ };
466
+ }
467
+ else {
468
+ throw new Error(`Unsupported chain type: ${chainInfo.chainType}`);
469
+ }
470
+ }
471
+ /**
472
+ * Set custom fee percentage
473
+ */
474
+ async setCustomFeePercentage(connectedWallet, chainInfo, target, percentage, options) {
475
+ if (chainInfo.chainType === ChainType.EVM) {
476
+ const evmClient = await this.getEVMClient();
477
+ const result = await evmClient.setCustomFeePercentage(connectedWallet, chainInfo, target, percentage, options?.gasOptions);
478
+ return {
479
+ hash: result.hash,
480
+ chainType: ChainType.EVM
481
+ };
482
+ }
483
+ else if (chainInfo.chainType === ChainType.SOLANA) {
484
+ const solanaClient = await this.getSolanaClient();
485
+ const result = await solanaClient.setCustomFeePercentage(target, percentage, connectedWallet, chainInfo, options?.computeOptions);
486
+ return {
487
+ hash: result.transactionHash,
488
+ chainType: ChainType.SOLANA
489
+ };
490
+ }
491
+ else {
492
+ throw new Error(`Unsupported chain type: ${chainInfo.chainType}`);
493
+ }
494
+ }
495
+ /**
496
+ * Clear custom fee percentage
497
+ */
498
+ async clearCustomFeePercentage(connectedWallet, chainInfo, target, options) {
499
+ if (chainInfo.chainType === ChainType.EVM) {
500
+ const evmClient = await this.getEVMClient();
501
+ const result = await evmClient.clearCustomFeePercentage(connectedWallet, chainInfo, target, options?.gasOptions);
502
+ return {
503
+ hash: result.hash,
504
+ chainType: ChainType.EVM
505
+ };
506
+ }
507
+ else if (chainInfo.chainType === ChainType.SOLANA) {
508
+ const solanaClient = await this.getSolanaClient();
509
+ const result = await solanaClient.clearCustomFeePercentage(target, connectedWallet, chainInfo, options?.computeOptions);
510
+ return {
511
+ hash: result.transactionHash,
512
+ chainType: ChainType.SOLANA
513
+ };
514
+ }
515
+ else {
516
+ throw new Error(`Unsupported chain type: ${chainInfo.chainType}`);
517
+ }
518
+ }
519
+ /**
520
+ * Pause the contract/program (owner only)
521
+ */
522
+ async pause(connectedWallet, chainInfo, options) {
523
+ if (chainInfo.chainType === ChainType.EVM) {
524
+ const evmClient = await this.getEVMClient();
525
+ const result = await evmClient.pause(connectedWallet, chainInfo, options?.gasOptions);
526
+ return {
527
+ hash: result.hash,
528
+ chainType: ChainType.EVM
529
+ };
530
+ }
531
+ else if (chainInfo.chainType === ChainType.SOLANA) {
532
+ const solanaClient = await this.getSolanaClient();
533
+ const result = await solanaClient.pause(connectedWallet, chainInfo, options?.computeOptions);
534
+ return {
535
+ hash: result.transactionHash,
536
+ chainType: ChainType.SOLANA
537
+ };
538
+ }
539
+ else {
540
+ throw new Error(`Unsupported chain type: ${chainInfo.chainType}`);
541
+ }
542
+ }
543
+ /**
544
+ * Unpause the contract/program (owner only)
545
+ */
546
+ async unpause(connectedWallet, chainInfo, options) {
547
+ if (chainInfo.chainType === ChainType.EVM) {
548
+ const evmClient = await this.getEVMClient();
549
+ const result = await evmClient.unpause(connectedWallet, chainInfo, options?.gasOptions);
550
+ return {
551
+ hash: result.hash,
552
+ chainType: ChainType.EVM
553
+ };
554
+ }
555
+ else if (chainInfo.chainType === ChainType.SOLANA) {
556
+ const solanaClient = await this.getSolanaClient();
557
+ const result = await solanaClient.unpause(connectedWallet, chainInfo, options?.computeOptions);
558
+ return {
559
+ hash: result.transactionHash,
560
+ chainType: ChainType.SOLANA
561
+ };
562
+ }
563
+ else {
564
+ throw new Error(`Unsupported chain type: ${chainInfo.chainType}`);
565
+ }
566
+ }
567
+ /**
568
+ * Emergency unpause (owner only)
569
+ */
570
+ async emergencyUnpause(connectedWallet, chainInfo, options) {
571
+ if (chainInfo.chainType === ChainType.EVM) {
572
+ const evmClient = await this.getEVMClient();
573
+ const result = await evmClient.emergencyUnpause(connectedWallet, chainInfo, options?.gasOptions);
574
+ return {
575
+ hash: result.hash,
576
+ chainType: ChainType.EVM
577
+ };
578
+ }
579
+ else if (chainInfo.chainType === ChainType.SOLANA) {
580
+ const solanaClient = await this.getSolanaClient();
581
+ const result = await solanaClient.emergencyUnpause(connectedWallet, chainInfo, options?.computeOptions);
582
+ return {
583
+ hash: result.transactionHash,
584
+ chainType: ChainType.SOLANA
585
+ };
586
+ }
587
+ else {
588
+ throw new Error(`Unsupported chain type: ${chainInfo.chainType}`);
589
+ }
590
+ }
591
+ /**
592
+ * Distribute claimable funds when paused
593
+ * Note: EVM supports single recipient, Solana supports multiple
594
+ */
595
+ async distributeClaimableFunds(connectedWallet, chainInfo, recipient, options) {
596
+ if (chainInfo.chainType === ChainType.EVM) {
597
+ const evmClient = await this.getEVMClient();
598
+ // EVM only supports single recipient
599
+ const singleRecipient = Array.isArray(recipient) ? recipient[0] : recipient;
600
+ const result = await evmClient.distributeClaimableFunds(connectedWallet, chainInfo, singleRecipient, options?.gasOptions);
601
+ return {
602
+ hash: result.hash,
603
+ chainType: ChainType.EVM
604
+ };
605
+ }
606
+ else if (chainInfo.chainType === ChainType.SOLANA) {
607
+ const solanaClient = await this.getSolanaClient();
608
+ // Solana supports multiple recipients
609
+ const recipients = Array.isArray(recipient) ? recipient : [recipient];
610
+ const result = await solanaClient.distributeClaimableFunds(connectedWallet, chainInfo, recipients, options?.computeOptions);
611
+ return {
612
+ hash: result.transactionHash,
613
+ chainType: ChainType.SOLANA
614
+ };
615
+ }
616
+ else {
617
+ throw new Error(`Unsupported chain type: ${chainInfo.chainType}`);
618
+ }
619
+ }
620
+ /**
621
+ * Set permission for a contract to use caller's USDC for sending messages
622
+ * Note: Only supported on EVM chains
623
+ */
624
+ async setPermission(connectedWallet, chainInfo, contractAddress, options) {
625
+ if (chainInfo.chainType === ChainType.EVM) {
626
+ const evmClient = await this.getEVMClient();
627
+ const result = await evmClient.setPermission(connectedWallet, chainInfo, contractAddress, options?.gasOptions);
628
+ return {
629
+ hash: result.hash,
630
+ chainType: ChainType.EVM
631
+ };
632
+ }
633
+ else if (chainInfo.chainType === ChainType.SOLANA) {
634
+ throw new Error('Permission system is not supported on Solana');
635
+ }
636
+ else {
637
+ throw new Error(`Unsupported chain type: ${chainInfo.chainType}`);
638
+ }
639
+ }
640
+ /**
641
+ * Remove permission from a contract
642
+ * Note: Only supported on EVM chains
643
+ */
644
+ async removePermission(connectedWallet, chainInfo, contractAddress, options) {
645
+ if (chainInfo.chainType === ChainType.EVM) {
646
+ const evmClient = await this.getEVMClient();
647
+ const result = await evmClient.removePermission(connectedWallet, chainInfo, contractAddress, options?.gasOptions);
648
+ return {
649
+ hash: result.hash,
650
+ chainType: ChainType.EVM
651
+ };
652
+ }
653
+ else if (chainInfo.chainType === ChainType.SOLANA) {
654
+ throw new Error('Permission system is not supported on Solana');
655
+ }
656
+ else {
657
+ throw new Error(`Unsupported chain type: ${chainInfo.chainType}`);
658
+ }
659
+ }
660
+ /**
661
+ * Check if permission exists for a contract/wallet pair
662
+ * Note: Only supported on EVM chains
663
+ */
664
+ async hasPermission(chainInfo, contractAddress, walletAddress, publicClient) {
665
+ if (chainInfo.chainType === ChainType.EVM) {
666
+ const evmClient = await this.getEVMClient();
667
+ return await evmClient.hasPermission(chainInfo, contractAddress, walletAddress, publicClient);
668
+ }
669
+ else if (chainInfo.chainType === ChainType.SOLANA) {
670
+ // Solana doesn't have permission system, always return false
671
+ return false;
672
+ }
673
+ else {
674
+ throw new Error(`Unsupported chain type: ${chainInfo.chainType}`);
675
+ }
676
+ }
677
+ // ============= Read Methods =============
678
+ /**
679
+ * Get the send fee for messages
680
+ * @param chainInfo - Chain information with RPC endpoint
681
+ * @param publicClient - Optional public client for EVM (will create if not provided)
682
+ * @param connection - Optional connection for Solana (will create if not provided)
683
+ * @returns Fee amount in USDC micro-units
684
+ */
685
+ async getSendFee(chainInfo, publicClient, connection) {
686
+ if (chainInfo.chainType === ChainType.EVM) {
687
+ const evmClient = await this.getEVMClient();
688
+ return await evmClient.getSendFee(chainInfo, publicClient);
689
+ }
690
+ else if (chainInfo.chainType === ChainType.SOLANA) {
691
+ const solanaClient = await this.getSolanaClient();
692
+ return await solanaClient.getSendFee(chainInfo, connection);
693
+ }
694
+ else {
695
+ throw new Error(`Unsupported chain type: ${chainInfo.chainType}`);
696
+ }
697
+ }
698
+ /**
699
+ * Get delegation fee
700
+ */
701
+ async getDelegationFee(chainInfo, publicClient, connection) {
702
+ if (chainInfo.chainType === ChainType.EVM) {
703
+ const evmClient = await this.getEVMClient();
704
+ return await evmClient.getDelegationFee(chainInfo, publicClient);
705
+ }
706
+ else if (chainInfo.chainType === ChainType.SOLANA) {
707
+ const solanaClient = await this.getSolanaClient();
708
+ return await solanaClient.getDelegationFee(chainInfo, connection);
709
+ }
710
+ else {
711
+ throw new Error(`Unsupported chain type: ${chainInfo.chainType}`);
712
+ }
713
+ }
714
+ /**
715
+ * Get delegation for an address
716
+ * @param address - Address to check
717
+ * @param chainInfo - Chain information with RPC endpoint
718
+ * @param publicClient - Optional public client for EVM
719
+ * @param connection - Optional connection for Solana
720
+ * @returns Delegated address or null
721
+ */
722
+ async getDelegation(address, chainInfo, publicClient, connection) {
723
+ if (chainInfo.chainType === ChainType.EVM) {
724
+ // Delegation lookup is not supported on the EVM contract
725
+ return null;
726
+ }
727
+ else if (chainInfo.chainType === ChainType.SOLANA) {
728
+ const solanaClient = await this.getSolanaClient();
729
+ const delegation = await solanaClient.getDelegation(address, chainInfo, connection);
730
+ return delegation ? delegation.toBase58() : null;
731
+ }
732
+ else {
733
+ throw new Error(`Unsupported chain type: ${chainInfo.chainType}`);
734
+ }
735
+ }
736
+ /**
737
+ * Get recipient claimable info
738
+ */
739
+ async getRecipientClaimable(recipient, chainInfo, publicClient, connection) {
740
+ if (chainInfo.chainType === ChainType.EVM) {
741
+ const evmClient = await this.getEVMClient();
742
+ return await evmClient.getRecipientClaimable(recipient, chainInfo, publicClient);
743
+ }
744
+ else if (chainInfo.chainType === ChainType.SOLANA) {
745
+ const solanaClient = await this.getSolanaClient();
746
+ const info = await solanaClient.getRecipientClaimable(recipient, chainInfo, connection);
747
+ if (!info)
748
+ return null;
749
+ return {
750
+ amount: BigInt(info.amount),
751
+ expiresAt: BigInt(info.expiresAt),
752
+ isExpired: info.isExpired
753
+ };
754
+ }
755
+ else {
756
+ throw new Error(`Unsupported chain type: ${chainInfo.chainType}`);
757
+ }
758
+ }
759
+ /**
760
+ * Get owner claimable amount
761
+ */
762
+ async getOwnerClaimable(chainInfo, publicClient, connection) {
763
+ if (chainInfo.chainType === ChainType.EVM) {
764
+ const evmClient = await this.getEVMClient();
765
+ return await evmClient.getOwnerClaimable(chainInfo, publicClient);
766
+ }
767
+ else if (chainInfo.chainType === ChainType.SOLANA) {
768
+ const solanaClient = await this.getSolanaClient();
769
+ const amount = await solanaClient.getOwnerClaimable(chainInfo, connection);
770
+ return BigInt(amount);
771
+ }
772
+ else {
773
+ throw new Error(`Unsupported chain type: ${chainInfo.chainType}`);
774
+ }
775
+ }
776
+ /**
777
+ * Get custom fee percentage
778
+ */
779
+ async getCustomFeePercentage(target, chainInfo, publicClient, connection) {
780
+ if (chainInfo.chainType === ChainType.EVM) {
781
+ const evmClient = await this.getEVMClient();
782
+ return await evmClient.getCustomFeePercentage(target, chainInfo, publicClient);
783
+ }
784
+ else if (chainInfo.chainType === ChainType.SOLANA) {
785
+ const solanaClient = await this.getSolanaClient();
786
+ return await solanaClient.getCustomFeePercentage(target, chainInfo, connection);
787
+ }
788
+ else {
789
+ throw new Error(`Unsupported chain type: ${chainInfo.chainType}`);
790
+ }
791
+ }
792
+ /**
793
+ * Check if contract/program is paused
794
+ */
795
+ async isPaused(chainInfo, publicClient, connection) {
796
+ if (chainInfo.chainType === ChainType.EVM) {
797
+ const evmClient = await this.getEVMClient();
798
+ return await evmClient.isPaused(chainInfo, publicClient);
799
+ }
800
+ else if (chainInfo.chainType === ChainType.SOLANA) {
801
+ const solanaClient = await this.getSolanaClient();
802
+ return await solanaClient.isPaused(chainInfo, connection);
803
+ }
804
+ else {
805
+ throw new Error(`Unsupported chain type: ${chainInfo.chainType}`);
806
+ }
807
+ }
808
+ /**
809
+ * Get contract/program owner
810
+ */
811
+ async getOwner(chainInfo, publicClient, connection) {
812
+ if (chainInfo.chainType === ChainType.EVM) {
813
+ const evmClient = await this.getEVMClient();
814
+ return await evmClient.getOwner(chainInfo, publicClient);
815
+ }
816
+ else if (chainInfo.chainType === ChainType.SOLANA) {
817
+ const solanaClient = await this.getSolanaClient();
818
+ const owner = await solanaClient.getOwner(chainInfo, connection);
819
+ return owner.toBase58();
820
+ }
821
+ else {
822
+ throw new Error(`Unsupported chain type: ${chainInfo.chainType}`);
823
+ }
824
+ }
825
+ /**
826
+ * Register a domain (not implemented - for backward compatibility)
827
+ */
828
+ async registerDomain(_domain) {
829
+ throw new Error('Domain registration not yet implemented');
830
+ }
831
+ }
832
+ // Cache for dynamic imports
833
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
834
+ OnchainMailerClient.evmClient = null;
835
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
836
+ OnchainMailerClient.solanaClient = null;
837
+ //# sourceMappingURL=onchain-mailer-client.js.map