@sudobility/contracts 0.14.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 (322) hide show
  1. package/README.md +353 -0
  2. package/artifacts/contracts/Mailer.sol/Mailer.d.ts +1146 -0
  3. package/artifacts/contracts/Mailer.sol/Mailer.dbg.json +4 -0
  4. package/artifacts/contracts/Mailer.sol/Mailer.json +1096 -0
  5. package/artifacts/contracts/Mailer.sol/artifacts.d.ts +21 -0
  6. package/artifacts/contracts/MockUSDC.sol/MockUSDC.d.ts +284 -0
  7. package/artifacts/contracts/MockUSDC.sol/MockUSDC.dbg.json +4 -0
  8. package/artifacts/contracts/MockUSDC.sol/MockUSDC.json +234 -0
  9. package/artifacts/contracts/MockUSDC.sol/artifacts.d.ts +21 -0
  10. package/artifacts/contracts/interfaces/IERC20.sol/IERC20.d.ts +157 -0
  11. package/artifacts/contracts/interfaces/IERC20.sol/IERC20.dbg.json +4 -0
  12. package/artifacts/contracts/interfaces/IERC20.sol/IERC20.json +107 -0
  13. package/artifacts/contracts/interfaces/IERC20.sol/artifacts.d.ts +21 -0
  14. package/dist/evm/src/evm/index.d.ts +4 -0
  15. package/dist/evm/src/evm/index.d.ts.map +1 -0
  16. package/dist/evm/src/evm/index.js +10 -0
  17. package/dist/evm/src/evm/index.js.map +1 -0
  18. package/dist/evm/src/evm/mailer-client.d.ts +966 -0
  19. package/dist/evm/src/evm/mailer-client.d.ts.map +1 -0
  20. package/dist/evm/src/evm/mailer-client.js +619 -0
  21. package/dist/evm/src/evm/mailer-client.js.map +1 -0
  22. package/dist/evm/typechain-types/Mailer.d.ts +698 -0
  23. package/dist/evm/typechain-types/Mailer.d.ts.map +1 -0
  24. package/dist/evm/typechain-types/Mailer.js +3 -0
  25. package/dist/evm/typechain-types/Mailer.js.map +1 -0
  26. package/dist/evm/typechain-types/MockUSDC.d.ts +118 -0
  27. package/dist/evm/typechain-types/MockUSDC.d.ts.map +1 -0
  28. package/dist/evm/typechain-types/MockUSDC.js +3 -0
  29. package/dist/evm/typechain-types/MockUSDC.js.map +1 -0
  30. package/dist/evm/typechain-types/common.d.ts +51 -0
  31. package/dist/evm/typechain-types/common.d.ts.map +1 -0
  32. package/dist/evm/typechain-types/common.js +3 -0
  33. package/dist/evm/typechain-types/common.js.map +1 -0
  34. package/dist/evm/typechain-types/factories/Mailer__factory.d.ts +875 -0
  35. package/dist/evm/typechain-types/factories/Mailer__factory.d.ts.map +1 -0
  36. package/dist/evm/typechain-types/factories/Mailer__factory.js +1125 -0
  37. package/dist/evm/typechain-types/factories/Mailer__factory.js.map +1 -0
  38. package/dist/evm/typechain-types/factories/MockUSDC__factory.d.ts +193 -0
  39. package/dist/evm/typechain-types/factories/MockUSDC__factory.d.ts.map +1 -0
  40. package/dist/evm/typechain-types/factories/MockUSDC__factory.js +263 -0
  41. package/dist/evm/typechain-types/factories/MockUSDC__factory.js.map +1 -0
  42. package/dist/evm/typechain-types/factories/index.d.ts +4 -0
  43. package/dist/evm/typechain-types/factories/index.d.ts.map +1 -0
  44. package/dist/evm/typechain-types/factories/index.js +45 -0
  45. package/dist/evm/typechain-types/factories/index.js.map +1 -0
  46. package/dist/evm/typechain-types/factories/interfaces/IERC20__factory.d.ts +80 -0
  47. package/dist/evm/typechain-types/factories/interfaces/IERC20__factory.d.ts.map +1 -0
  48. package/dist/evm/typechain-types/factories/interfaces/IERC20__factory.js +116 -0
  49. package/dist/evm/typechain-types/factories/interfaces/IERC20__factory.js.map +1 -0
  50. package/dist/evm/typechain-types/factories/interfaces/index.d.ts +2 -0
  51. package/dist/evm/typechain-types/factories/interfaces/index.d.ts.map +1 -0
  52. package/dist/evm/typechain-types/factories/interfaces/index.js +9 -0
  53. package/dist/evm/typechain-types/factories/interfaces/index.js.map +1 -0
  54. package/dist/evm/typechain-types/index.d.ts +10 -0
  55. package/dist/evm/typechain-types/index.d.ts.map +1 -0
  56. package/dist/evm/typechain-types/index.js +44 -0
  57. package/dist/evm/typechain-types/index.js.map +1 -0
  58. package/dist/evm/typechain-types/interfaces/IERC20.d.ts +70 -0
  59. package/dist/evm/typechain-types/interfaces/IERC20.d.ts.map +1 -0
  60. package/dist/evm/typechain-types/interfaces/IERC20.js +3 -0
  61. package/dist/evm/typechain-types/interfaces/IERC20.js.map +1 -0
  62. package/dist/evm/typechain-types/interfaces/index.d.ts +2 -0
  63. package/dist/evm/typechain-types/interfaces/index.d.ts.map +1 -0
  64. package/dist/evm/typechain-types/interfaces/index.js +3 -0
  65. package/dist/evm/typechain-types/interfaces/index.js.map +1 -0
  66. package/dist/solana/solana/index.d.ts +3 -0
  67. package/dist/solana/solana/index.d.ts.map +1 -0
  68. package/dist/solana/solana/index.js +21 -0
  69. package/dist/solana/solana/index.js.map +1 -0
  70. package/dist/solana/solana/mailer-client.d.ts +282 -0
  71. package/dist/solana/solana/mailer-client.d.ts.map +1 -0
  72. package/dist/solana/solana/mailer-client.js +989 -0
  73. package/dist/solana/solana/mailer-client.js.map +1 -0
  74. package/dist/solana/solana/types.d.ts +28 -0
  75. package/dist/solana/solana/types.d.ts.map +1 -0
  76. package/dist/solana/solana/types.js +23 -0
  77. package/dist/solana/solana/types.js.map +1 -0
  78. package/dist/solana/utils/currency.d.ts +26 -0
  79. package/dist/solana/utils/currency.d.ts.map +1 -0
  80. package/dist/solana/utils/currency.js +36 -0
  81. package/dist/solana/utils/currency.js.map +1 -0
  82. package/dist/unified/package.json +3 -0
  83. package/dist/unified/src/evm/index.d.ts +4 -0
  84. package/dist/unified/src/evm/index.d.ts.map +1 -0
  85. package/dist/unified/src/evm/index.js +10 -0
  86. package/dist/unified/src/evm/index.js.map +1 -0
  87. package/dist/unified/src/evm/mailer-client.d.ts +966 -0
  88. package/dist/unified/src/evm/mailer-client.d.ts.map +1 -0
  89. package/dist/unified/src/evm/mailer-client.js +619 -0
  90. package/dist/unified/src/evm/mailer-client.js.map +1 -0
  91. package/dist/unified/src/react/context/MailerProvider.d.ts +102 -0
  92. package/dist/unified/src/react/context/MailerProvider.d.ts.map +1 -0
  93. package/dist/unified/src/react/context/MailerProvider.js +160 -0
  94. package/dist/unified/src/react/context/MailerProvider.js.map +1 -0
  95. package/dist/unified/src/react/hooks/useMailerMutations.d.ts +301 -0
  96. package/dist/unified/src/react/hooks/useMailerMutations.d.ts.map +1 -0
  97. package/dist/unified/src/react/hooks/useMailerMutations.js +417 -0
  98. package/dist/unified/src/react/hooks/useMailerMutations.js.map +1 -0
  99. package/dist/unified/src/react/hooks/useMailerQueries.d.ts +130 -0
  100. package/dist/unified/src/react/hooks/useMailerQueries.d.ts.map +1 -0
  101. package/dist/unified/src/react/hooks/useMailerQueries.js +197 -0
  102. package/dist/unified/src/react/hooks/useMailerQueries.js.map +1 -0
  103. package/dist/unified/src/react/index.d.ts +37 -0
  104. package/dist/unified/src/react/index.d.ts.map +1 -0
  105. package/dist/unified/src/react/index.js +70 -0
  106. package/dist/unified/src/react/index.js.map +1 -0
  107. package/dist/unified/src/solana/index.d.ts +3 -0
  108. package/dist/unified/src/solana/index.d.ts.map +1 -0
  109. package/dist/unified/src/solana/index.js +21 -0
  110. package/dist/unified/src/solana/index.js.map +1 -0
  111. package/dist/unified/src/solana/mailer-client.d.ts +282 -0
  112. package/dist/unified/src/solana/mailer-client.d.ts.map +1 -0
  113. package/dist/unified/src/solana/mailer-client.js +989 -0
  114. package/dist/unified/src/solana/mailer-client.js.map +1 -0
  115. package/dist/unified/src/solana/types.d.ts +28 -0
  116. package/dist/unified/src/solana/types.d.ts.map +1 -0
  117. package/dist/unified/src/solana/types.js +23 -0
  118. package/dist/unified/src/solana/types.js.map +1 -0
  119. package/dist/unified/src/unified/index.d.ts +4 -0
  120. package/dist/unified/src/unified/index.d.ts.map +1 -0
  121. package/dist/unified/src/unified/index.js +9 -0
  122. package/dist/unified/src/unified/index.js.map +1 -0
  123. package/dist/unified/src/unified/onchain-mailer-client.d.ts +173 -0
  124. package/dist/unified/src/unified/onchain-mailer-client.d.ts.map +1 -0
  125. package/dist/unified/src/unified/onchain-mailer-client.js +1048 -0
  126. package/dist/unified/src/unified/onchain-mailer-client.js.map +1 -0
  127. package/dist/unified/src/unified/types.d.ts +47 -0
  128. package/dist/unified/src/unified/types.d.ts.map +1 -0
  129. package/dist/unified/src/unified/types.js +3 -0
  130. package/dist/unified/src/unified/types.js.map +1 -0
  131. package/dist/unified/src/unified/wallet-detector.d.ts +28 -0
  132. package/dist/unified/src/unified/wallet-detector.d.ts.map +1 -0
  133. package/dist/unified/src/unified/wallet-detector.js +63 -0
  134. package/dist/unified/src/unified/wallet-detector.js.map +1 -0
  135. package/dist/unified/src/utils/chain-config.d.ts +75 -0
  136. package/dist/unified/src/utils/chain-config.d.ts.map +1 -0
  137. package/dist/unified/src/utils/chain-config.js +203 -0
  138. package/dist/unified/src/utils/chain-config.js.map +1 -0
  139. package/dist/unified/src/utils/currency.d.ts +26 -0
  140. package/dist/unified/src/utils/currency.d.ts.map +1 -0
  141. package/dist/unified/src/utils/currency.js +36 -0
  142. package/dist/unified/src/utils/currency.js.map +1 -0
  143. package/dist/unified/src/utils/index.d.ts +4 -0
  144. package/dist/unified/src/utils/index.d.ts.map +1 -0
  145. package/dist/unified/src/utils/index.js +20 -0
  146. package/dist/unified/src/utils/index.js.map +1 -0
  147. package/dist/unified/src/utils/validation.d.ts +10 -0
  148. package/dist/unified/src/utils/validation.d.ts.map +1 -0
  149. package/dist/unified/src/utils/validation.js +102 -0
  150. package/dist/unified/src/utils/validation.js.map +1 -0
  151. package/dist/unified/typechain-types/Mailer.d.ts +698 -0
  152. package/dist/unified/typechain-types/Mailer.d.ts.map +1 -0
  153. package/dist/unified/typechain-types/Mailer.js +3 -0
  154. package/dist/unified/typechain-types/Mailer.js.map +1 -0
  155. package/dist/unified/typechain-types/MockUSDC.d.ts +118 -0
  156. package/dist/unified/typechain-types/MockUSDC.d.ts.map +1 -0
  157. package/dist/unified/typechain-types/MockUSDC.js +3 -0
  158. package/dist/unified/typechain-types/MockUSDC.js.map +1 -0
  159. package/dist/unified/typechain-types/common.d.ts +51 -0
  160. package/dist/unified/typechain-types/common.d.ts.map +1 -0
  161. package/dist/unified/typechain-types/common.js +3 -0
  162. package/dist/unified/typechain-types/common.js.map +1 -0
  163. package/dist/unified/typechain-types/factories/Mailer__factory.d.ts +875 -0
  164. package/dist/unified/typechain-types/factories/Mailer__factory.d.ts.map +1 -0
  165. package/dist/unified/typechain-types/factories/Mailer__factory.js +1125 -0
  166. package/dist/unified/typechain-types/factories/Mailer__factory.js.map +1 -0
  167. package/dist/unified/typechain-types/factories/MockUSDC__factory.d.ts +193 -0
  168. package/dist/unified/typechain-types/factories/MockUSDC__factory.d.ts.map +1 -0
  169. package/dist/unified/typechain-types/factories/MockUSDC__factory.js +263 -0
  170. package/dist/unified/typechain-types/factories/MockUSDC__factory.js.map +1 -0
  171. package/dist/unified/typechain-types/factories/index.d.ts +4 -0
  172. package/dist/unified/typechain-types/factories/index.d.ts.map +1 -0
  173. package/dist/unified/typechain-types/factories/index.js +45 -0
  174. package/dist/unified/typechain-types/factories/index.js.map +1 -0
  175. package/dist/unified/typechain-types/factories/interfaces/IERC20__factory.d.ts +80 -0
  176. package/dist/unified/typechain-types/factories/interfaces/IERC20__factory.d.ts.map +1 -0
  177. package/dist/unified/typechain-types/factories/interfaces/IERC20__factory.js +116 -0
  178. package/dist/unified/typechain-types/factories/interfaces/IERC20__factory.js.map +1 -0
  179. package/dist/unified/typechain-types/factories/interfaces/index.d.ts +2 -0
  180. package/dist/unified/typechain-types/factories/interfaces/index.d.ts.map +1 -0
  181. package/dist/unified/typechain-types/factories/interfaces/index.js +9 -0
  182. package/dist/unified/typechain-types/factories/interfaces/index.js.map +1 -0
  183. package/dist/unified/typechain-types/index.d.ts +10 -0
  184. package/dist/unified/typechain-types/index.d.ts.map +1 -0
  185. package/dist/unified/typechain-types/index.js +44 -0
  186. package/dist/unified/typechain-types/index.js.map +1 -0
  187. package/dist/unified/typechain-types/interfaces/IERC20.d.ts +70 -0
  188. package/dist/unified/typechain-types/interfaces/IERC20.d.ts.map +1 -0
  189. package/dist/unified/typechain-types/interfaces/IERC20.js +3 -0
  190. package/dist/unified/typechain-types/interfaces/IERC20.js.map +1 -0
  191. package/dist/unified/typechain-types/interfaces/index.d.ts +2 -0
  192. package/dist/unified/typechain-types/interfaces/index.d.ts.map +1 -0
  193. package/dist/unified/typechain-types/interfaces/index.js +3 -0
  194. package/dist/unified/typechain-types/interfaces/index.js.map +1 -0
  195. package/dist/unified-esm/src/evm/index.d.ts +4 -0
  196. package/dist/unified-esm/src/evm/index.d.ts.map +1 -0
  197. package/dist/unified-esm/src/evm/index.js +5 -0
  198. package/dist/unified-esm/src/evm/index.js.map +1 -0
  199. package/dist/unified-esm/src/evm/mailer-client.d.ts +966 -0
  200. package/dist/unified-esm/src/evm/mailer-client.d.ts.map +1 -0
  201. package/dist/unified-esm/src/evm/mailer-client.js +615 -0
  202. package/dist/unified-esm/src/evm/mailer-client.js.map +1 -0
  203. package/dist/unified-esm/src/react/context/MailerProvider.d.ts +102 -0
  204. package/dist/unified-esm/src/react/context/MailerProvider.d.ts.map +1 -0
  205. package/dist/unified-esm/src/react/context/MailerProvider.js +120 -0
  206. package/dist/unified-esm/src/react/context/MailerProvider.js.map +1 -0
  207. package/dist/unified-esm/src/react/hooks/useMailerMutations.d.ts +301 -0
  208. package/dist/unified-esm/src/react/hooks/useMailerMutations.d.ts.map +1 -0
  209. package/dist/unified-esm/src/react/hooks/useMailerMutations.js +400 -0
  210. package/dist/unified-esm/src/react/hooks/useMailerMutations.js.map +1 -0
  211. package/dist/unified-esm/src/react/hooks/useMailerQueries.d.ts +130 -0
  212. package/dist/unified-esm/src/react/hooks/useMailerQueries.d.ts.map +1 -0
  213. package/dist/unified-esm/src/react/hooks/useMailerQueries.js +186 -0
  214. package/dist/unified-esm/src/react/hooks/useMailerQueries.js.map +1 -0
  215. package/dist/unified-esm/src/react/index.d.ts +37 -0
  216. package/dist/unified-esm/src/react/index.d.ts.map +1 -0
  217. package/dist/unified-esm/src/react/index.js +39 -0
  218. package/dist/unified-esm/src/react/index.js.map +1 -0
  219. package/dist/unified-esm/src/solana/index.d.ts +3 -0
  220. package/dist/unified-esm/src/solana/index.d.ts.map +1 -0
  221. package/dist/unified-esm/src/solana/index.js +3 -0
  222. package/dist/unified-esm/src/solana/index.js.map +1 -0
  223. package/dist/unified-esm/src/solana/mailer-client.d.ts +282 -0
  224. package/dist/unified-esm/src/solana/mailer-client.d.ts.map +1 -0
  225. package/dist/unified-esm/src/solana/mailer-client.js +985 -0
  226. package/dist/unified-esm/src/solana/mailer-client.js.map +1 -0
  227. package/dist/unified-esm/src/solana/types.d.ts +28 -0
  228. package/dist/unified-esm/src/solana/types.d.ts.map +1 -0
  229. package/dist/unified-esm/src/solana/types.js +16 -0
  230. package/dist/unified-esm/src/solana/types.js.map +1 -0
  231. package/dist/unified-esm/src/unified/index.d.ts +4 -0
  232. package/dist/unified-esm/src/unified/index.d.ts.map +1 -0
  233. package/dist/unified-esm/src/unified/index.js +4 -0
  234. package/dist/unified-esm/src/unified/index.js.map +1 -0
  235. package/dist/unified-esm/src/unified/onchain-mailer-client.d.ts +173 -0
  236. package/dist/unified-esm/src/unified/onchain-mailer-client.d.ts.map +1 -0
  237. package/dist/unified-esm/src/unified/onchain-mailer-client.js +1011 -0
  238. package/dist/unified-esm/src/unified/onchain-mailer-client.js.map +1 -0
  239. package/dist/unified-esm/src/unified/types.d.ts +47 -0
  240. package/dist/unified-esm/src/unified/types.d.ts.map +1 -0
  241. package/dist/unified-esm/src/unified/types.js +2 -0
  242. package/dist/unified-esm/src/unified/types.js.map +1 -0
  243. package/dist/unified-esm/src/unified/wallet-detector.d.ts +28 -0
  244. package/dist/unified-esm/src/unified/wallet-detector.d.ts.map +1 -0
  245. package/dist/unified-esm/src/unified/wallet-detector.js +59 -0
  246. package/dist/unified-esm/src/unified/wallet-detector.js.map +1 -0
  247. package/dist/unified-esm/src/utils/chain-config.d.ts +75 -0
  248. package/dist/unified-esm/src/utils/chain-config.d.ts.map +1 -0
  249. package/dist/unified-esm/src/utils/chain-config.js +199 -0
  250. package/dist/unified-esm/src/utils/chain-config.js.map +1 -0
  251. package/dist/unified-esm/src/utils/currency.d.ts +26 -0
  252. package/dist/unified-esm/src/utils/currency.d.ts.map +1 -0
  253. package/dist/unified-esm/src/utils/currency.js +31 -0
  254. package/dist/unified-esm/src/utils/currency.js.map +1 -0
  255. package/dist/unified-esm/src/utils/index.d.ts +4 -0
  256. package/dist/unified-esm/src/utils/index.d.ts.map +1 -0
  257. package/dist/unified-esm/src/utils/index.js +4 -0
  258. package/dist/unified-esm/src/utils/index.js.map +1 -0
  259. package/dist/unified-esm/src/utils/validation.d.ts +10 -0
  260. package/dist/unified-esm/src/utils/validation.d.ts.map +1 -0
  261. package/dist/unified-esm/src/utils/validation.js +96 -0
  262. package/dist/unified-esm/src/utils/validation.js.map +1 -0
  263. package/dist/unified-esm/typechain-types/Mailer.d.ts +698 -0
  264. package/dist/unified-esm/typechain-types/Mailer.d.ts.map +1 -0
  265. package/dist/unified-esm/typechain-types/Mailer.js +2 -0
  266. package/dist/unified-esm/typechain-types/Mailer.js.map +1 -0
  267. package/dist/unified-esm/typechain-types/MockUSDC.d.ts +118 -0
  268. package/dist/unified-esm/typechain-types/MockUSDC.d.ts.map +1 -0
  269. package/dist/unified-esm/typechain-types/MockUSDC.js +2 -0
  270. package/dist/unified-esm/typechain-types/MockUSDC.js.map +1 -0
  271. package/dist/unified-esm/typechain-types/common.d.ts +51 -0
  272. package/dist/unified-esm/typechain-types/common.d.ts.map +1 -0
  273. package/dist/unified-esm/typechain-types/common.js +2 -0
  274. package/dist/unified-esm/typechain-types/common.js.map +1 -0
  275. package/dist/unified-esm/typechain-types/factories/Mailer__factory.d.ts +875 -0
  276. package/dist/unified-esm/typechain-types/factories/Mailer__factory.d.ts.map +1 -0
  277. package/dist/unified-esm/typechain-types/factories/Mailer__factory.js +1121 -0
  278. package/dist/unified-esm/typechain-types/factories/Mailer__factory.js.map +1 -0
  279. package/dist/unified-esm/typechain-types/factories/MockUSDC__factory.d.ts +193 -0
  280. package/dist/unified-esm/typechain-types/factories/MockUSDC__factory.d.ts.map +1 -0
  281. package/dist/unified-esm/typechain-types/factories/MockUSDC__factory.js +259 -0
  282. package/dist/unified-esm/typechain-types/factories/MockUSDC__factory.js.map +1 -0
  283. package/dist/unified-esm/typechain-types/factories/index.d.ts +4 -0
  284. package/dist/unified-esm/typechain-types/factories/index.d.ts.map +1 -0
  285. package/dist/unified-esm/typechain-types/factories/index.js +7 -0
  286. package/dist/unified-esm/typechain-types/factories/index.js.map +1 -0
  287. package/dist/unified-esm/typechain-types/factories/interfaces/IERC20__factory.d.ts +80 -0
  288. package/dist/unified-esm/typechain-types/factories/interfaces/IERC20__factory.d.ts.map +1 -0
  289. package/dist/unified-esm/typechain-types/factories/interfaces/IERC20__factory.js +112 -0
  290. package/dist/unified-esm/typechain-types/factories/interfaces/IERC20__factory.js.map +1 -0
  291. package/dist/unified-esm/typechain-types/factories/interfaces/index.d.ts +2 -0
  292. package/dist/unified-esm/typechain-types/factories/interfaces/index.d.ts.map +1 -0
  293. package/dist/unified-esm/typechain-types/factories/interfaces/index.js +5 -0
  294. package/dist/unified-esm/typechain-types/factories/interfaces/index.js.map +1 -0
  295. package/dist/unified-esm/typechain-types/index.d.ts +10 -0
  296. package/dist/unified-esm/typechain-types/index.d.ts.map +1 -0
  297. package/dist/unified-esm/typechain-types/index.js +5 -0
  298. package/dist/unified-esm/typechain-types/index.js.map +1 -0
  299. package/dist/unified-esm/typechain-types/interfaces/IERC20.d.ts +70 -0
  300. package/dist/unified-esm/typechain-types/interfaces/IERC20.d.ts.map +1 -0
  301. package/dist/unified-esm/typechain-types/interfaces/IERC20.js +2 -0
  302. package/dist/unified-esm/typechain-types/interfaces/IERC20.js.map +1 -0
  303. package/dist/unified-esm/typechain-types/interfaces/index.d.ts +2 -0
  304. package/dist/unified-esm/typechain-types/interfaces/index.d.ts.map +1 -0
  305. package/dist/unified-esm/typechain-types/interfaces/index.js +2 -0
  306. package/dist/unified-esm/typechain-types/interfaces/index.js.map +1 -0
  307. package/package.json +250 -0
  308. package/programs/mailer/Cargo.toml +29 -0
  309. package/programs/mailer/src/lib.rs +2034 -0
  310. package/programs/mailer/tests/integration_tests.rs +1236 -0
  311. package/typechain-types/Mailer.ts +1393 -0
  312. package/typechain-types/MockUSDC.ts +236 -0
  313. package/typechain-types/common.ts +131 -0
  314. package/typechain-types/factories/Mailer__factory.ts +1157 -0
  315. package/typechain-types/factories/MockUSDC__factory.ts +284 -0
  316. package/typechain-types/factories/index.ts +6 -0
  317. package/typechain-types/factories/interfaces/IERC20__factory.ts +115 -0
  318. package/typechain-types/factories/interfaces/index.ts +4 -0
  319. package/typechain-types/hardhat.d.ts +99 -0
  320. package/typechain-types/index.ts +12 -0
  321. package/typechain-types/interfaces/IERC20.ts +148 -0
  322. package/typechain-types/interfaces/index.ts +4 -0
package/README.md ADDED
@@ -0,0 +1,353 @@
1
+ # Multi-Chain Decentralized Messaging Contracts
2
+
3
+ [![Version](https://img.shields.io/npm/v/@johnqh/mail_box_contracts)](https://www.npmjs.com/package/@johnqh/mail_box_contracts)
4
+ [![Tests](https://img.shields.io/badge/tests-116%20passing-green)](#testing)
5
+ [![TypeScript](https://img.shields.io/badge/TypeScript-Ready-blue)](#typescript-support)
6
+ [![Multi-Chain](https://img.shields.io/badge/chains-EVM%20%7C%20Solana-purple)](#supported-chains)
7
+
8
+ A comprehensive multi-chain decentralized messaging system supporting both **EVM chains** and **Solana** with USDC fee integration, delegation management, and revenue sharing capabilities.
9
+
10
+ > **๐Ÿค– AI-Optimized**: This project includes comprehensive documentation, patterns, and tooling specifically designed for AI-assisted development. See [`AI_ASSISTANT_QUICKSTART.md`](./AI_ASSISTANT_QUICKSTART.md) and [`CLAUDE.md`](./CLAUDE.md) for AI development guides.
11
+
12
+ ## ๐Ÿ—๏ธ Project Overview
13
+
14
+ This messaging system enables decentralized communication with built-in economic incentives through a two-tier fee system and revenue sharing mechanism. The system automatically detects your wallet type and routes to the appropriate blockchain implementation.
15
+
16
+ ### ๐ŸŒŸ Core Features
17
+
18
+ - **๐Ÿ”— Multi-Chain Support**: Works seamlessly on EVM chains (Ethereum, Polygon, etc.) and Solana
19
+ - **๐Ÿค– Automatic Chain Detection**: Detects wallet type and routes to appropriate implementation
20
+ - **๐Ÿ‘ฅ Delegation System**: Delegate message handling with rejection capability
21
+ - **๐Ÿ“ง Two-Tier Messaging**: Priority (revenue share) vs Standard (fee-only) tiers
22
+ - **๐Ÿ’ฐ Revenue Sharing**: 90% back to senders, 10% to platform
23
+ - **โฐ Time-based Claims**: 60-day claim period for revenue shares
24
+ - **๐Ÿ›ก๏ธ Type-Safe**: Full TypeScript support across all chains
25
+
26
+ ## ๐Ÿ“ฆ NPM Package Installation
27
+
28
+ ```bash
29
+ # Install the unified multi-chain TypeScript client library
30
+ npm install @johnqh/mail_box_contracts
31
+
32
+ # Or with yarn
33
+ yarn add @johnqh/mail_box_contracts
34
+ ```
35
+
36
+ ## ๐Ÿš€ Quick Start - Unified Multi-Chain Client
37
+
38
+ ### Option 1: Using ChainConfig with RpcHelpers (Recommended)
39
+
40
+ The simplest way to initialize clients using API keys - all chain information is automatically derived:
41
+
42
+ ```typescript
43
+ import { Chain, ChainConfig } from '@sudobility/types';
44
+ import { RpcHelpers } from '@sudobility/configs';
45
+ import { buildChainConfig } from '@johnqh/mail_box_contracts';
46
+ import { MailerClient } from '@johnqh/mail_box_contracts';
47
+
48
+ // Step 1: Create config with just chain enum and API keys
49
+ const chainConfig: ChainConfig = {
50
+ chain: Chain.ETH_MAINNET,
51
+ alchemyApiKey: process.env.ALCHEMY_API_KEY,
52
+ etherscanApiKey: process.env.ETHERSCAN_MULTICHAIN_API_KEY
53
+ };
54
+
55
+ // Step 2: All chain info is automatically derived!
56
+ const chainInfo = RpcHelpers.deriveChainInfo(chainConfig);
57
+ console.log('Using:', chainInfo.name, 'at', chainInfo.rpcUrl);
58
+ console.log('USDC:', chainInfo.usdcAddress);
59
+
60
+ // Step 3: Build unified config and initialize client
61
+ const config = buildChainConfig(chainConfig, '0x...'); // Your mailer contract
62
+ const client = new MailerClient(config.evm.contracts.mailer, publicClient);
63
+
64
+ // Works with any chain - just change the Chain enum!
65
+ // Chain.BASE_MAINNET, Chain.POLYGON_MAINNET, Chain.SOLANA_MAINNET, etc.
66
+ ```
67
+
68
+ **Benefits:**
69
+ - โœ… Single source of truth (Chain enum + API keys)
70
+ - โœ… No hardcoded RPC URLs or addresses
71
+ - โœ… Easy to switch between networks
72
+ - โœ… Type-safe with full IDE autocomplete
73
+ - โœ… Consistent across EVM and Solana
74
+
75
+ See [`examples/config-usage.ts`](./examples/config-usage.ts) for complete examples.
76
+
77
+ ### Option 2: Using Pre-configured Configs
78
+
79
+ ```typescript
80
+ import { OnchainMailerClient, TESTNET_CHAIN_CONFIG } from '@johnqh/mail_box_contracts';
81
+
82
+ // Works with ANY wallet - automatically detects chain!
83
+ const client = new OnchainMailerClient(wallet, TESTNET_CHAIN_CONFIG);
84
+
85
+ // Same API works for both EVM and Solana
86
+ await client.sendMessage("Hello Multi-Chain!", "This works on any blockchain!", true);
87
+ await client.delegateTo("delegate-address"); // Format automatically validated
88
+ await client.claimRevenue(); // Chain-agnostic revenue claiming
89
+
90
+ console.log('Running on:', client.getChainType()); // 'evm' or 'solana'
91
+ ```
92
+
93
+ ## ๐Ÿ”ง Chain-Specific Usage
94
+
95
+ ### EVM Chains (Ethereum, Polygon, Arbitrum, etc.)
96
+
97
+ ```typescript
98
+ import { OnchainMailerClient } from '@johnqh/mail_box_contracts';
99
+ import { ethers } from 'ethers';
100
+
101
+ // The unified client automatically detects EVM wallets
102
+ const wallet = {
103
+ address: "0x...",
104
+ request: async () => {},
105
+ signTransaction: async (tx: any) => tx
106
+ };
107
+
108
+ const client = new OnchainMailerClient(wallet, EVM_CHAIN_CONFIG);
109
+
110
+ // Send priority message with revenue sharing
111
+ await client.sendMessage("Hello EVM!", "Decentralized message", true);
112
+
113
+ // Delegate to another address
114
+ await client.delegateTo("0x...");
115
+
116
+ // Claim revenue share
117
+ await client.claimRevenue();
118
+ ```
119
+
120
+ ### Solana
121
+
122
+ ```typescript
123
+ import { OnchainMailerClient } from '@johnqh/mail_box_contracts';
124
+ import { Keypair } from '@solana/web3.js';
125
+ import { Wallet } from '@coral-xyz/anchor';
126
+
127
+ // The unified client automatically detects Solana wallets
128
+ const keypair = Keypair.generate();
129
+ const wallet = new Wallet(keypair);
130
+
131
+ const client = new OnchainMailerClient(wallet, SOLANA_CHAIN_CONFIG);
132
+
133
+ // Send priority message with revenue sharing
134
+ await client.sendMessage("Hello Solana!", "Decentralized message", true);
135
+
136
+ // Delegate to another address
137
+ await client.delegateTo("...");
138
+
139
+ // Claim revenue share
140
+ await client.claimRevenue();
141
+ ```
142
+
143
+ ### TypeScript Support
144
+
145
+ Full TypeScript support with auto-generated contract types:
146
+
147
+ ```typescript
148
+ import type {
149
+ Mailer,
150
+ MockUSDC
151
+ } from 'mail_box_contracts/typechain-types';
152
+
153
+ // Fully typed contract interactions
154
+ const tx: ContractTransaction = await mailer.sendPriority(to, subject, body);
155
+ const receipt: ContractReceipt = await tx.wait();
156
+ ```
157
+
158
+ ## ๐Ÿ“ Project Structure
159
+
160
+ ```
161
+ mail_box_contracts/
162
+ โ”œโ”€โ”€ contracts/ # EVM smart contracts (Solidity)
163
+ โ”‚ โ”œโ”€โ”€ MailService.sol # EVM delegation management
164
+ โ”‚ โ”œโ”€โ”€ Mailer.sol # EVM messaging with revenue sharing
165
+ โ”‚ โ””โ”€โ”€ MockUSDC.sol # Test USDC token
166
+ โ”œโ”€โ”€ programs/ # Solana programs (Rust)
167
+ โ”‚ โ””โ”€โ”€ mailer/ # Solana messaging and delegation program
168
+ โ”œโ”€โ”€ src/ # Multi-chain TypeScript clients
169
+ โ”‚ โ”œโ”€โ”€ evm/ # EVM-specific clients
170
+ โ”‚ โ”œโ”€โ”€ solana/ # Solana-specific clients
171
+ โ”‚ โ”œโ”€โ”€ unified/ # Cross-chain unified client
172
+ โ”‚ โ””โ”€โ”€ utils/ # Shared utilities & validation
173
+ โ”œโ”€โ”€ test/ # Comprehensive test suites (116 tests)
174
+ โ”‚ โ”œโ”€โ”€ evm/ # EVM contract tests (75 tests)
175
+ โ”‚ โ”œโ”€โ”€ solana/ # Solana program tests
176
+ โ”‚ โ””โ”€โ”€ unified/ # Cross-chain client tests (41 tests)
177
+ โ”œโ”€โ”€ typechain-types/ # Auto-generated TypeScript types
178
+ โ”œโ”€โ”€ examples/ # Complete usage examples
179
+ โ””โ”€โ”€ CLAUDE.md # AI assistant documentation
180
+ ```
181
+
182
+ ## ๐Ÿš€ Quick Start
183
+
184
+ ### Prerequisites
185
+ - Node.js 16+
186
+ - npm or yarn
187
+
188
+ ### Installation
189
+
190
+ ```bash
191
+ # Clone and install dependencies
192
+ npm install
193
+
194
+ # Compile contracts and generate types
195
+ npm run compile
196
+
197
+ # Run comprehensive test suite (116 tests)
198
+ npm test
199
+
200
+ # Deploy to local network
201
+ npm run deploy:local
202
+ ```
203
+
204
+ ## ๐Ÿ“‹ Smart Contracts
205
+
206
+ ### MailService Contract
207
+
208
+ **Purpose**: Domain registration and delegation management
209
+
210
+ **Key Functions**:
211
+ - `delegateTo(address)` - Delegate email handling (10 USDC fee)
212
+ - `rejectDelegation(address)` - Reject unwanted delegations
213
+ - `registerDomain(string, bool)` - Register domains (100 USDC fee)
214
+ - `setRegistrationFee(uint256)` - Owner fee management
215
+
216
+ **Fees**:
217
+ - Domain Registration: 100 USDC
218
+ - Delegation: 10 USDC
219
+
220
+ ### Mailer Contract
221
+
222
+ **Purpose**: Message sending with revenue sharing
223
+
224
+ **Message Types**:
225
+ - **Priority Messages**: Full fee (0.1 USDC) + 90% revenue share
226
+ - `sendPriority(subject, body)`
227
+ - `sendPriorityPrepared(mailId)`
228
+ - **Standard Messages**: 10% fee only (0.01 USDC)
229
+ - `send(subject, body)`
230
+ - `sendPrepared(mailId)`
231
+
232
+ **Revenue Model**:
233
+ - Senders pay fees to send messages to themselves
234
+ - Priority senders get 90% back as claimable revenue
235
+ - 60-day claim period for revenue shares
236
+ - Expired shares go to contract owner
237
+
238
+ ## ๐Ÿงช Testing
239
+
240
+ Comprehensive test coverage with 116 passing tests:
241
+
242
+ ```bash
243
+ # Run all tests
244
+ npm test
245
+
246
+ # Test categories:
247
+ # โœ… EVM Tests (75 tests) - Contract functionality, fees, revenue sharing
248
+ # โœ… Unified Tests (41 tests) - Cross-chain client, validation, wallet detection
249
+ ```
250
+
251
+ ### Test Highlights
252
+ - Fee calculation verification
253
+ - Event emission testing
254
+ - Revenue sharing mechanics
255
+ - Time-based claim expiration
256
+ - Error condition handling
257
+ - Edge cases and security
258
+
259
+ ## ๐Ÿ”ง Development Commands
260
+
261
+ ```bash
262
+ # Essential commands (run these frequently!)
263
+ npm run compile # Compile contracts + generate TypeScript types
264
+ npm test # Run all 116 tests (75 EVM + 41 Unified)
265
+ npm run build # Build TypeScript files
266
+
267
+ # AI-Optimized commands
268
+ npm run ai:dev # Show AI helper commands + status
269
+ npm run ai:status # Quick project health check
270
+ npm run ai:build # Clean build everything
271
+ npm run ai:test # Run comprehensive test suite (116 tests)
272
+ npm run ai:check # TypeScript + ESLint validation
273
+
274
+ # Development
275
+ npx hardhat node # Start local blockchain
276
+ npm run deploy:local # Deploy to local network
277
+ npm run clean # Clean artifacts
278
+ ```
279
+
280
+ ## ๐Ÿ“Š Architecture
281
+
282
+ ### Revenue Sharing Flow
283
+ 1. **Priority Message**: User pays 0.1 USDC
284
+ 2. **Revenue Split**: 90% claimable by sender, 10% to owner
285
+ 3. **Claim Period**: 60 days to claim revenue share
286
+ 4. **Expiration**: Unclaimed shares go to contract owner
287
+
288
+ ### Delegation System
289
+ 1. **Delegate**: Pay 10 USDC to delegate email handling
290
+ 2. **Reject**: Delegates can reject unwanted delegations
291
+ 3. **Clear**: Set delegate to address(0) to clear
292
+
293
+ ## ๐Ÿ› ๏ธ TypeScript Integration
294
+
295
+ Full TypeScript support with auto-generated types:
296
+
297
+ ```typescript
298
+ import { OnchainMailerClient } from "@johnqh/mail_box_contracts";
299
+
300
+ // Type-safe contract interactions using unified client
301
+ const client = new OnchainMailerClient(wallet, chainConfig);
302
+ await client.delegateTo(delegateAddress);
303
+ await client.sendMessage("Subject", "Body", true); // priority message
304
+ await client.claimRevenue();
305
+ ```
306
+
307
+ ## ๐Ÿ” Security Features
308
+
309
+ - **Owner-only functions** protected by `onlyOwner` modifier
310
+ - **USDC transfer validation** - operations only proceed if payment succeeds
311
+ - **Time-based expiration** for revenue claims
312
+ - **Address validation** for delegation rejection
313
+ - **Comprehensive error handling** with custom errors
314
+
315
+ ## ๐Ÿค– AI-Assisted Development
316
+
317
+ This project is optimized for AI-assisted development with comprehensive documentation, patterns, and tooling:
318
+
319
+ ### Quick Start for AI Assistants
320
+ 1. **Read**: [`AI_ASSISTANT_QUICKSTART.md`](./AI_ASSISTANT_QUICKSTART.md) - Essential guide for AI development
321
+ 2. **Reference**: [`CLAUDE.md`](./CLAUDE.md) - Comprehensive AI assistant documentation
322
+ 3. **Patterns**: [`docs/AI_DEVELOPMENT_PATTERNS.md`](./docs/AI_DEVELOPMENT_PATTERNS.md) - Development patterns and examples
323
+ 4. **Config**: [`.ai-config.json`](./.ai-config.json) - AI tool configuration
324
+
325
+ ### AI Development Features
326
+ - **๐Ÿ”ง AI Commands**: `npm run ai:dev` for AI-optimized development workflows
327
+ - **๐Ÿ“Š Test Coverage**: 116 tests with detailed patterns for AI reference
328
+ - **๐Ÿ“ Rich Documentation**: Comprehensive JSDoc comments and inline examples
329
+ - **๐ŸŽฏ Success Metrics**: Clear validation criteria and checklists
330
+ - **โšก Quick Validation**: `npm run ai:check` for TypeScript + ESLint
331
+ - **๐Ÿ” Project Status**: `npm run ai:status` for health check
332
+
333
+ ### Documentation Structure
334
+ - **Primary Guide**: [`CLAUDE.md`](./CLAUDE.md) - Main AI assistant documentation
335
+ - **Quick Reference**: [`AI_ASSISTANT_QUICKSTART.md`](./AI_ASSISTANT_QUICKSTART.md) - Fast setup
336
+ - **Development Patterns**: [`docs/AI_DEVELOPMENT_PATTERNS.md`](./docs/AI_DEVELOPMENT_PATTERNS.md) - Code examples
337
+ - **Examples**: [`examples/`](./examples/) - Working code samples
338
+
339
+ ## ๐Ÿค Contributing
340
+
341
+ 1. Fork the repository
342
+ 2. Create feature branch: `git checkout -b feature/new-feature`
343
+ 3. Add comprehensive tests for new functionality
344
+ 4. Ensure all 116 tests pass: `npm test`
345
+ 5. Submit pull request
346
+
347
+ ## ๐Ÿ“„ License
348
+
349
+ MIT License - see LICENSE file for details.
350
+
351
+ ---
352
+
353
+ **Built with**: Hardhat, TypeScript, Solidity ^0.8.24, Ethers v6