@xyo-network/payment-payload-plugins 2.91.5 → 2.91.6

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 (256) hide show
  1. package/dist/browser/Escrow/index.d.cts +1 -0
  2. package/dist/browser/Escrow/index.d.cts.map +1 -1
  3. package/dist/browser/Escrow/index.d.mts +1 -0
  4. package/dist/browser/Escrow/index.d.mts.map +1 -1
  5. package/dist/browser/Escrow/index.d.ts +1 -0
  6. package/dist/browser/Escrow/index.d.ts.map +1 -1
  7. package/dist/browser/Escrow/validators/common/ModuleInstanceValidators/index.d.cts +2 -0
  8. package/dist/browser/Escrow/validators/common/ModuleInstanceValidators/index.d.cts.map +1 -0
  9. package/dist/browser/Escrow/validators/common/ModuleInstanceValidators/index.d.mts +2 -0
  10. package/dist/browser/Escrow/validators/common/ModuleInstanceValidators/index.d.mts.map +1 -0
  11. package/dist/browser/Escrow/validators/common/ModuleInstanceValidators/index.d.ts +2 -0
  12. package/dist/browser/Escrow/validators/common/ModuleInstanceValidators/index.d.ts.map +1 -0
  13. package/dist/browser/Escrow/validators/common/ModuleInstanceValidators/moduleInstanceValidators.d.cts +22 -0
  14. package/dist/browser/Escrow/validators/common/ModuleInstanceValidators/moduleInstanceValidators.d.cts.map +1 -0
  15. package/dist/browser/Escrow/validators/common/ModuleInstanceValidators/moduleInstanceValidators.d.mts +22 -0
  16. package/dist/browser/Escrow/validators/common/ModuleInstanceValidators/moduleInstanceValidators.d.mts.map +1 -0
  17. package/dist/browser/Escrow/validators/common/ModuleInstanceValidators/moduleInstanceValidators.d.ts +22 -0
  18. package/dist/browser/Escrow/validators/common/ModuleInstanceValidators/moduleInstanceValidators.d.ts.map +1 -0
  19. package/dist/browser/Escrow/validators/common/TemporalValidators/index.d.cts +2 -0
  20. package/dist/browser/Escrow/validators/common/TemporalValidators/index.d.cts.map +1 -0
  21. package/dist/browser/Escrow/validators/common/TemporalValidators/index.d.mts +2 -0
  22. package/dist/browser/Escrow/validators/common/TemporalValidators/index.d.mts.map +1 -0
  23. package/dist/browser/Escrow/validators/common/TemporalValidators/index.d.ts +2 -0
  24. package/dist/browser/Escrow/validators/common/TemporalValidators/index.d.ts.map +1 -0
  25. package/dist/browser/Escrow/validators/common/TemporalValidators/validateWithinWindow.d.cts +6 -0
  26. package/dist/browser/Escrow/validators/common/TemporalValidators/validateWithinWindow.d.cts.map +1 -0
  27. package/dist/browser/Escrow/validators/common/TemporalValidators/validateWithinWindow.d.mts +6 -0
  28. package/dist/browser/Escrow/validators/common/TemporalValidators/validateWithinWindow.d.mts.map +1 -0
  29. package/dist/browser/Escrow/validators/common/TemporalValidators/validateWithinWindow.d.ts +6 -0
  30. package/dist/browser/Escrow/validators/common/TemporalValidators/validateWithinWindow.d.ts.map +1 -0
  31. package/dist/browser/Escrow/validators/common/index.d.cts +3 -0
  32. package/dist/browser/Escrow/validators/common/index.d.cts.map +1 -0
  33. package/dist/browser/Escrow/validators/common/index.d.mts +3 -0
  34. package/dist/browser/Escrow/validators/common/index.d.mts.map +1 -0
  35. package/dist/browser/Escrow/validators/common/index.d.ts +3 -0
  36. package/dist/browser/Escrow/validators/common/index.d.ts.map +1 -0
  37. package/dist/browser/Escrow/validators/escrow/agent.d.cts +4 -0
  38. package/dist/browser/Escrow/validators/escrow/agent.d.cts.map +1 -0
  39. package/dist/browser/Escrow/validators/escrow/agent.d.mts +4 -0
  40. package/dist/browser/Escrow/validators/escrow/agent.d.mts.map +1 -0
  41. package/dist/browser/Escrow/validators/escrow/agent.d.ts +4 -0
  42. package/dist/browser/Escrow/validators/escrow/agent.d.ts.map +1 -0
  43. package/dist/browser/Escrow/validators/escrow/appraisal.d.cts +29 -0
  44. package/dist/browser/Escrow/validators/escrow/appraisal.d.cts.map +1 -0
  45. package/dist/browser/Escrow/validators/escrow/appraisal.d.mts +29 -0
  46. package/dist/browser/Escrow/validators/escrow/appraisal.d.mts.map +1 -0
  47. package/dist/browser/Escrow/validators/escrow/appraisal.d.ts +29 -0
  48. package/dist/browser/Escrow/validators/escrow/appraisal.d.ts.map +1 -0
  49. package/dist/browser/Escrow/validators/escrow/appraisalAuthorities.d.cts +9 -0
  50. package/dist/browser/Escrow/validators/escrow/appraisalAuthorities.d.cts.map +1 -0
  51. package/dist/browser/Escrow/validators/escrow/appraisalAuthorities.d.mts +9 -0
  52. package/dist/browser/Escrow/validators/escrow/appraisalAuthorities.d.mts.map +1 -0
  53. package/dist/browser/Escrow/validators/escrow/appraisalAuthorities.d.ts +9 -0
  54. package/dist/browser/Escrow/validators/escrow/appraisalAuthorities.d.ts.map +1 -0
  55. package/dist/browser/Escrow/validators/escrow/assets.d.cts +7 -0
  56. package/dist/browser/Escrow/validators/escrow/assets.d.cts.map +1 -0
  57. package/dist/browser/Escrow/validators/escrow/assets.d.mts +7 -0
  58. package/dist/browser/Escrow/validators/escrow/assets.d.mts.map +1 -0
  59. package/dist/browser/Escrow/validators/escrow/assets.d.ts +7 -0
  60. package/dist/browser/Escrow/validators/escrow/assets.d.ts.map +1 -0
  61. package/dist/browser/Escrow/validators/escrow/buyer.d.cts +7 -0
  62. package/dist/browser/Escrow/validators/escrow/buyer.d.cts.map +1 -0
  63. package/dist/browser/Escrow/validators/escrow/buyer.d.mts +7 -0
  64. package/dist/browser/Escrow/validators/escrow/buyer.d.mts.map +1 -0
  65. package/dist/browser/Escrow/validators/escrow/buyer.d.ts +7 -0
  66. package/dist/browser/Escrow/validators/escrow/buyer.d.ts.map +1 -0
  67. package/dist/browser/Escrow/validators/escrow/buyerSecret.d.cts +21 -0
  68. package/dist/browser/Escrow/validators/escrow/buyerSecret.d.cts.map +1 -0
  69. package/dist/browser/Escrow/validators/escrow/buyerSecret.d.mts +21 -0
  70. package/dist/browser/Escrow/validators/escrow/buyerSecret.d.mts.map +1 -0
  71. package/dist/browser/Escrow/validators/escrow/buyerSecret.d.ts +21 -0
  72. package/dist/browser/Escrow/validators/escrow/buyerSecret.d.ts.map +1 -0
  73. package/dist/browser/Escrow/validators/escrow/index.d.cts +10 -0
  74. package/dist/browser/Escrow/validators/escrow/index.d.cts.map +1 -0
  75. package/dist/browser/Escrow/validators/escrow/index.d.mts +10 -0
  76. package/dist/browser/Escrow/validators/escrow/index.d.mts.map +1 -0
  77. package/dist/browser/Escrow/validators/escrow/index.d.ts +10 -0
  78. package/dist/browser/Escrow/validators/escrow/index.d.ts.map +1 -0
  79. package/dist/browser/Escrow/validators/escrow/nbfExp.d.cts +3 -0
  80. package/dist/browser/Escrow/validators/escrow/nbfExp.d.cts.map +1 -0
  81. package/dist/browser/Escrow/validators/escrow/nbfExp.d.mts +3 -0
  82. package/dist/browser/Escrow/validators/escrow/nbfExp.d.mts.map +1 -0
  83. package/dist/browser/Escrow/validators/escrow/nbfExp.d.ts +3 -0
  84. package/dist/browser/Escrow/validators/escrow/nbfExp.d.ts.map +1 -0
  85. package/dist/browser/Escrow/validators/escrow/paymentAuthorities.d.cts +4 -0
  86. package/dist/browser/Escrow/validators/escrow/paymentAuthorities.d.cts.map +1 -0
  87. package/dist/browser/Escrow/validators/escrow/paymentAuthorities.d.mts +4 -0
  88. package/dist/browser/Escrow/validators/escrow/paymentAuthorities.d.mts.map +1 -0
  89. package/dist/browser/Escrow/validators/escrow/paymentAuthorities.d.ts +4 -0
  90. package/dist/browser/Escrow/validators/escrow/paymentAuthorities.d.ts.map +1 -0
  91. package/dist/browser/Escrow/validators/escrow/seller.d.cts +7 -0
  92. package/dist/browser/Escrow/validators/escrow/seller.d.cts.map +1 -0
  93. package/dist/browser/Escrow/validators/escrow/seller.d.mts +7 -0
  94. package/dist/browser/Escrow/validators/escrow/seller.d.mts.map +1 -0
  95. package/dist/browser/Escrow/validators/escrow/seller.d.ts +7 -0
  96. package/dist/browser/Escrow/validators/escrow/seller.d.ts.map +1 -0
  97. package/dist/browser/Escrow/validators/index.d.cts +4 -0
  98. package/dist/browser/Escrow/validators/index.d.cts.map +1 -0
  99. package/dist/browser/Escrow/validators/index.d.mts +4 -0
  100. package/dist/browser/Escrow/validators/index.d.mts.map +1 -0
  101. package/dist/browser/Escrow/validators/index.d.ts +4 -0
  102. package/dist/browser/Escrow/validators/index.d.ts.map +1 -0
  103. package/dist/browser/Escrow/validators/types/escrowValidation.d.cts +26 -0
  104. package/dist/browser/Escrow/validators/types/escrowValidation.d.cts.map +1 -0
  105. package/dist/browser/Escrow/validators/types/escrowValidation.d.mts +26 -0
  106. package/dist/browser/Escrow/validators/types/escrowValidation.d.mts.map +1 -0
  107. package/dist/browser/Escrow/validators/types/escrowValidation.d.ts +26 -0
  108. package/dist/browser/Escrow/validators/types/escrowValidation.d.ts.map +1 -0
  109. package/dist/browser/Escrow/validators/types/index.d.cts +2 -0
  110. package/dist/browser/Escrow/validators/types/index.d.cts.map +1 -0
  111. package/dist/browser/Escrow/validators/types/index.d.mts +2 -0
  112. package/dist/browser/Escrow/validators/types/index.d.mts.map +1 -0
  113. package/dist/browser/Escrow/validators/types/index.d.ts +2 -0
  114. package/dist/browser/Escrow/validators/types/index.d.ts.map +1 -0
  115. package/dist/browser/index.cjs +292 -3
  116. package/dist/browser/index.cjs.map +1 -1
  117. package/dist/browser/index.js +290 -1
  118. package/dist/browser/index.js.map +1 -1
  119. package/dist/node/Escrow/index.d.cts +1 -0
  120. package/dist/node/Escrow/index.d.cts.map +1 -1
  121. package/dist/node/Escrow/index.d.mts +1 -0
  122. package/dist/node/Escrow/index.d.mts.map +1 -1
  123. package/dist/node/Escrow/index.d.ts +1 -0
  124. package/dist/node/Escrow/index.d.ts.map +1 -1
  125. package/dist/node/Escrow/validators/common/ModuleInstanceValidators/index.d.cts +2 -0
  126. package/dist/node/Escrow/validators/common/ModuleInstanceValidators/index.d.cts.map +1 -0
  127. package/dist/node/Escrow/validators/common/ModuleInstanceValidators/index.d.mts +2 -0
  128. package/dist/node/Escrow/validators/common/ModuleInstanceValidators/index.d.mts.map +1 -0
  129. package/dist/node/Escrow/validators/common/ModuleInstanceValidators/index.d.ts +2 -0
  130. package/dist/node/Escrow/validators/common/ModuleInstanceValidators/index.d.ts.map +1 -0
  131. package/dist/node/Escrow/validators/common/ModuleInstanceValidators/moduleInstanceValidators.d.cts +22 -0
  132. package/dist/node/Escrow/validators/common/ModuleInstanceValidators/moduleInstanceValidators.d.cts.map +1 -0
  133. package/dist/node/Escrow/validators/common/ModuleInstanceValidators/moduleInstanceValidators.d.mts +22 -0
  134. package/dist/node/Escrow/validators/common/ModuleInstanceValidators/moduleInstanceValidators.d.mts.map +1 -0
  135. package/dist/node/Escrow/validators/common/ModuleInstanceValidators/moduleInstanceValidators.d.ts +22 -0
  136. package/dist/node/Escrow/validators/common/ModuleInstanceValidators/moduleInstanceValidators.d.ts.map +1 -0
  137. package/dist/node/Escrow/validators/common/TemporalValidators/index.d.cts +2 -0
  138. package/dist/node/Escrow/validators/common/TemporalValidators/index.d.cts.map +1 -0
  139. package/dist/node/Escrow/validators/common/TemporalValidators/index.d.mts +2 -0
  140. package/dist/node/Escrow/validators/common/TemporalValidators/index.d.mts.map +1 -0
  141. package/dist/node/Escrow/validators/common/TemporalValidators/index.d.ts +2 -0
  142. package/dist/node/Escrow/validators/common/TemporalValidators/index.d.ts.map +1 -0
  143. package/dist/node/Escrow/validators/common/TemporalValidators/validateWithinWindow.d.cts +6 -0
  144. package/dist/node/Escrow/validators/common/TemporalValidators/validateWithinWindow.d.cts.map +1 -0
  145. package/dist/node/Escrow/validators/common/TemporalValidators/validateWithinWindow.d.mts +6 -0
  146. package/dist/node/Escrow/validators/common/TemporalValidators/validateWithinWindow.d.mts.map +1 -0
  147. package/dist/node/Escrow/validators/common/TemporalValidators/validateWithinWindow.d.ts +6 -0
  148. package/dist/node/Escrow/validators/common/TemporalValidators/validateWithinWindow.d.ts.map +1 -0
  149. package/dist/node/Escrow/validators/common/index.d.cts +3 -0
  150. package/dist/node/Escrow/validators/common/index.d.cts.map +1 -0
  151. package/dist/node/Escrow/validators/common/index.d.mts +3 -0
  152. package/dist/node/Escrow/validators/common/index.d.mts.map +1 -0
  153. package/dist/node/Escrow/validators/common/index.d.ts +3 -0
  154. package/dist/node/Escrow/validators/common/index.d.ts.map +1 -0
  155. package/dist/node/Escrow/validators/escrow/agent.d.cts +4 -0
  156. package/dist/node/Escrow/validators/escrow/agent.d.cts.map +1 -0
  157. package/dist/node/Escrow/validators/escrow/agent.d.mts +4 -0
  158. package/dist/node/Escrow/validators/escrow/agent.d.mts.map +1 -0
  159. package/dist/node/Escrow/validators/escrow/agent.d.ts +4 -0
  160. package/dist/node/Escrow/validators/escrow/agent.d.ts.map +1 -0
  161. package/dist/node/Escrow/validators/escrow/appraisal.d.cts +29 -0
  162. package/dist/node/Escrow/validators/escrow/appraisal.d.cts.map +1 -0
  163. package/dist/node/Escrow/validators/escrow/appraisal.d.mts +29 -0
  164. package/dist/node/Escrow/validators/escrow/appraisal.d.mts.map +1 -0
  165. package/dist/node/Escrow/validators/escrow/appraisal.d.ts +29 -0
  166. package/dist/node/Escrow/validators/escrow/appraisal.d.ts.map +1 -0
  167. package/dist/node/Escrow/validators/escrow/appraisalAuthorities.d.cts +9 -0
  168. package/dist/node/Escrow/validators/escrow/appraisalAuthorities.d.cts.map +1 -0
  169. package/dist/node/Escrow/validators/escrow/appraisalAuthorities.d.mts +9 -0
  170. package/dist/node/Escrow/validators/escrow/appraisalAuthorities.d.mts.map +1 -0
  171. package/dist/node/Escrow/validators/escrow/appraisalAuthorities.d.ts +9 -0
  172. package/dist/node/Escrow/validators/escrow/appraisalAuthorities.d.ts.map +1 -0
  173. package/dist/node/Escrow/validators/escrow/assets.d.cts +7 -0
  174. package/dist/node/Escrow/validators/escrow/assets.d.cts.map +1 -0
  175. package/dist/node/Escrow/validators/escrow/assets.d.mts +7 -0
  176. package/dist/node/Escrow/validators/escrow/assets.d.mts.map +1 -0
  177. package/dist/node/Escrow/validators/escrow/assets.d.ts +7 -0
  178. package/dist/node/Escrow/validators/escrow/assets.d.ts.map +1 -0
  179. package/dist/node/Escrow/validators/escrow/buyer.d.cts +7 -0
  180. package/dist/node/Escrow/validators/escrow/buyer.d.cts.map +1 -0
  181. package/dist/node/Escrow/validators/escrow/buyer.d.mts +7 -0
  182. package/dist/node/Escrow/validators/escrow/buyer.d.mts.map +1 -0
  183. package/dist/node/Escrow/validators/escrow/buyer.d.ts +7 -0
  184. package/dist/node/Escrow/validators/escrow/buyer.d.ts.map +1 -0
  185. package/dist/node/Escrow/validators/escrow/buyerSecret.d.cts +21 -0
  186. package/dist/node/Escrow/validators/escrow/buyerSecret.d.cts.map +1 -0
  187. package/dist/node/Escrow/validators/escrow/buyerSecret.d.mts +21 -0
  188. package/dist/node/Escrow/validators/escrow/buyerSecret.d.mts.map +1 -0
  189. package/dist/node/Escrow/validators/escrow/buyerSecret.d.ts +21 -0
  190. package/dist/node/Escrow/validators/escrow/buyerSecret.d.ts.map +1 -0
  191. package/dist/node/Escrow/validators/escrow/index.d.cts +10 -0
  192. package/dist/node/Escrow/validators/escrow/index.d.cts.map +1 -0
  193. package/dist/node/Escrow/validators/escrow/index.d.mts +10 -0
  194. package/dist/node/Escrow/validators/escrow/index.d.mts.map +1 -0
  195. package/dist/node/Escrow/validators/escrow/index.d.ts +10 -0
  196. package/dist/node/Escrow/validators/escrow/index.d.ts.map +1 -0
  197. package/dist/node/Escrow/validators/escrow/nbfExp.d.cts +3 -0
  198. package/dist/node/Escrow/validators/escrow/nbfExp.d.cts.map +1 -0
  199. package/dist/node/Escrow/validators/escrow/nbfExp.d.mts +3 -0
  200. package/dist/node/Escrow/validators/escrow/nbfExp.d.mts.map +1 -0
  201. package/dist/node/Escrow/validators/escrow/nbfExp.d.ts +3 -0
  202. package/dist/node/Escrow/validators/escrow/nbfExp.d.ts.map +1 -0
  203. package/dist/node/Escrow/validators/escrow/paymentAuthorities.d.cts +4 -0
  204. package/dist/node/Escrow/validators/escrow/paymentAuthorities.d.cts.map +1 -0
  205. package/dist/node/Escrow/validators/escrow/paymentAuthorities.d.mts +4 -0
  206. package/dist/node/Escrow/validators/escrow/paymentAuthorities.d.mts.map +1 -0
  207. package/dist/node/Escrow/validators/escrow/paymentAuthorities.d.ts +4 -0
  208. package/dist/node/Escrow/validators/escrow/paymentAuthorities.d.ts.map +1 -0
  209. package/dist/node/Escrow/validators/escrow/seller.d.cts +7 -0
  210. package/dist/node/Escrow/validators/escrow/seller.d.cts.map +1 -0
  211. package/dist/node/Escrow/validators/escrow/seller.d.mts +7 -0
  212. package/dist/node/Escrow/validators/escrow/seller.d.mts.map +1 -0
  213. package/dist/node/Escrow/validators/escrow/seller.d.ts +7 -0
  214. package/dist/node/Escrow/validators/escrow/seller.d.ts.map +1 -0
  215. package/dist/node/Escrow/validators/index.d.cts +4 -0
  216. package/dist/node/Escrow/validators/index.d.cts.map +1 -0
  217. package/dist/node/Escrow/validators/index.d.mts +4 -0
  218. package/dist/node/Escrow/validators/index.d.mts.map +1 -0
  219. package/dist/node/Escrow/validators/index.d.ts +4 -0
  220. package/dist/node/Escrow/validators/index.d.ts.map +1 -0
  221. package/dist/node/Escrow/validators/types/escrowValidation.d.cts +26 -0
  222. package/dist/node/Escrow/validators/types/escrowValidation.d.cts.map +1 -0
  223. package/dist/node/Escrow/validators/types/escrowValidation.d.mts +26 -0
  224. package/dist/node/Escrow/validators/types/escrowValidation.d.mts.map +1 -0
  225. package/dist/node/Escrow/validators/types/escrowValidation.d.ts +26 -0
  226. package/dist/node/Escrow/validators/types/escrowValidation.d.ts.map +1 -0
  227. package/dist/node/Escrow/validators/types/index.d.cts +2 -0
  228. package/dist/node/Escrow/validators/types/index.d.cts.map +1 -0
  229. package/dist/node/Escrow/validators/types/index.d.mts +2 -0
  230. package/dist/node/Escrow/validators/types/index.d.mts.map +1 -0
  231. package/dist/node/Escrow/validators/types/index.d.ts +2 -0
  232. package/dist/node/Escrow/validators/types/index.d.ts.map +1 -0
  233. package/dist/node/index.cjs +311 -4
  234. package/dist/node/index.cjs.map +1 -1
  235. package/dist/node/index.js +290 -1
  236. package/dist/node/index.js.map +1 -1
  237. package/package.json +6 -1
  238. package/src/Escrow/index.ts +1 -0
  239. package/src/Escrow/validators/common/ModuleInstanceValidators/index.ts +1 -0
  240. package/src/Escrow/validators/common/ModuleInstanceValidators/moduleInstanceValidators.ts +48 -0
  241. package/src/Escrow/validators/common/TemporalValidators/index.ts +1 -0
  242. package/src/Escrow/validators/common/TemporalValidators/validateWithinWindow.ts +7 -0
  243. package/src/Escrow/validators/common/index.ts +2 -0
  244. package/src/Escrow/validators/escrow/agent.ts +17 -0
  245. package/src/Escrow/validators/escrow/appraisal.ts +129 -0
  246. package/src/Escrow/validators/escrow/appraisalAuthorities.ts +37 -0
  247. package/src/Escrow/validators/escrow/assets.ts +18 -0
  248. package/src/Escrow/validators/escrow/buyer.ts +25 -0
  249. package/src/Escrow/validators/escrow/buyerSecret.ts +75 -0
  250. package/src/Escrow/validators/escrow/index.ts +9 -0
  251. package/src/Escrow/validators/escrow/nbfExp.ts +18 -0
  252. package/src/Escrow/validators/escrow/paymentAuthorities.ts +17 -0
  253. package/src/Escrow/validators/escrow/seller.ts +25 -0
  254. package/src/Escrow/validators/index.ts +3 -0
  255. package/src/Escrow/validators/types/escrowValidation.ts +30 -0
  256. package/src/Escrow/validators/types/index.ts +1 -0
@@ -0,0 +1,37 @@
1
+ import { asAddress } from '@xylabs/hex'
2
+ import { ModuleIdentifier } from '@xyo-network/module-model'
3
+
4
+ import { EscrowTerms } from '../../Terms'
5
+ import { moduleIdentifiersContainsAllOf } from '../common'
6
+ import { EscrowTermsValidationFunction } from '../types'
7
+
8
+ const name = 'EscrowTerms.appraisalAuthorities'
9
+
10
+ /**
11
+ * A function that validates the escrow terms for appraisalAuthorities
12
+ * @returns True if the escrow terms contain appraisalAuthorities, false otherwise
13
+ */
14
+ export const appraisalAuthoritiesExistValidator: EscrowTermsValidationFunction = (terms: EscrowTerms) => {
15
+ // Validate we have appraisalAuthorities
16
+ const appraisalAuthorities = terms.appraisalAuthorities
17
+ if (!appraisalAuthorities || appraisalAuthorities.length === 0) {
18
+ console.log(`${name}: No appraisalAuthorities: ${terms.appraisalAuthorities}`)
19
+ return false
20
+ }
21
+ // Validate the authorities are addresses
22
+ if (appraisalAuthorities.map((x) => asAddress(x)).length !== appraisalAuthorities.length) {
23
+ console.log(`${name}: Invalid address: ${terms.appraisalAuthorities}`)
24
+ return false
25
+ }
26
+ return true
27
+ }
28
+
29
+ export const getAppraisalAuthoritiesAllowedValidator = (allowed: ModuleIdentifier[]): EscrowTermsValidationFunction => {
30
+ return (terms: EscrowTerms) => {
31
+ const result = moduleIdentifiersContainsAllOf(terms, (t) => t.appraisalAuthorities, allowed, true)
32
+ if (!result) {
33
+ console.log(`${name}: Appraisal authority not allowed: ${terms.appraisalAuthorities}`)
34
+ }
35
+ return result
36
+ }
37
+ }
@@ -0,0 +1,18 @@
1
+ import { EscrowTerms } from '../../Terms'
2
+ import { EscrowTermsValidationFunction } from '../types'
3
+
4
+ const name = 'EscrowTerms.assets'
5
+
6
+ /**
7
+ * Returns a function that validates the escrow terms for assets
8
+ * @returns A function that validates the escrow terms for assets
9
+ */
10
+ export const assetsExistValidator: EscrowTermsValidationFunction = (terms: EscrowTerms) => {
11
+ // Validate we have assets
12
+ const assets = terms.assets
13
+ if (!assets || assets.length === 0) {
14
+ console.log(`${name}: No assets: ${terms.assets}`)
15
+ return false
16
+ }
17
+ return true
18
+ }
@@ -0,0 +1,25 @@
1
+ import { asAddress } from '@xylabs/hex'
2
+
3
+ import { EscrowTerms } from '../../Terms'
4
+ import { EscrowTermsValidationFunction } from '../types'
5
+
6
+ const name = 'EscrowTerms.buyer'
7
+
8
+ /**
9
+ * A function that validates the escrow terms for buyer
10
+ * @returns True if the escrow terms contain buyer, false otherwise
11
+ */
12
+ export const buyerExistsValidator: EscrowTermsValidationFunction = (terms: EscrowTerms) => {
13
+ // Validate we have buyer
14
+ const buyer = terms.buyer
15
+ if (!buyer || buyer.length === 0) {
16
+ console.log(`${name}: No buyer: ${terms.buyer}`)
17
+ return false
18
+ }
19
+ // Validate the authorities are addresses
20
+ if (buyer.map((x) => asAddress(x)).length !== buyer.length) {
21
+ console.log(`${name}: Invalid address: ${terms.buyer}`)
22
+ return false
23
+ }
24
+ return true
25
+ }
@@ -0,0 +1,75 @@
1
+ import { assertEx } from '@xylabs/assert'
2
+ import { Hash } from '@xylabs/hex'
3
+ import { isBoundWitnessWithMeta } from '@xyo-network/boundwitness-model'
4
+ import { BoundWitnessValidator } from '@xyo-network/boundwitness-validator'
5
+ import { Payload, WithMeta } from '@xyo-network/payload-model'
6
+
7
+ import { EscrowTerms } from '../../Terms'
8
+ import { EscrowTermsValidationFunction } from '../types'
9
+
10
+ const name = 'EscrowTerms.buyerSecret'
11
+
12
+ /**
13
+ * Returns a function that validates the escrow terms for buyerSecret
14
+ * @returns A function that validates the escrow terms for buyerSecret
15
+ */
16
+ export const buyerSecretExistsValidator: EscrowTermsValidationFunction = (terms: EscrowTerms) => {
17
+ // Validate we have buyerSecret
18
+ const buyerSecret = terms.buyerSecret
19
+ if (!buyerSecret || buyerSecret.length === 0) {
20
+ console.log(`${name}: No buyerSecret: ${terms.buyerSecret}`)
21
+ return false
22
+ }
23
+ return true
24
+ }
25
+
26
+ /**
27
+ * Returns a function that validates the escrow terms for the existence of the buyerSecret in the dictionary
28
+ * @param dictionary Payload dictionary of the escrow terms
29
+ * @returns A function that validates the escrow terms for the existence of the buyerSecret in the dictionary
30
+ */
31
+ export const getBuyerSecretSuppliedValidator = (dictionary: Record<Hash, WithMeta<Payload>>): EscrowTermsValidationFunction => {
32
+ return (terms: EscrowTerms) => {
33
+ const buyerSecret = assertEx(terms.buyerSecret, () => `${name}: No buyerSecret: ${terms.buyerSecret}`)
34
+ if (!dictionary[buyerSecret]) {
35
+ console.log(`${name}: Payload not supplied for buyerSecret: ${buyerSecret}`)
36
+ return false
37
+ }
38
+ return true
39
+ }
40
+ }
41
+
42
+ /**
43
+ * Returns a function that validates the escrow terms for the existence of the buyerSecret signed by the buyer
44
+ * @param dictionary Payload dictionary of the escrow terms
45
+ * @returns A function that validates the escrow terms for the existence of the buyerSecret signed by the buyer
46
+ */
47
+ export const getBuyerSecretSignedValidator = (dictionary: Record<Hash, WithMeta<Payload>>): EscrowTermsValidationFunction => {
48
+ return async (terms: EscrowTerms) => {
49
+ const buyer = assertEx(terms.buyer, () => `${name}: No buyer: ${terms.buyer}`)
50
+ const buyerSecret = assertEx(terms.buyerSecret, () => `${name}: No buyerSecret: ${terms.buyerSecret}`)
51
+ // Buyer-signed buyer secrets
52
+ const buyerSecretBWs = Object.values(dictionary)
53
+ // Find all BoundWitnesses
54
+ .filter(isBoundWitnessWithMeta)
55
+ // That contain the buyer secret
56
+ .filter((bw) => bw.payload_hashes.includes(buyerSecret))
57
+ // That are signed by all the buyers
58
+ .filter((bw) => buyer.every((buyerAddress) => bw.addresses.includes(buyerAddress)))
59
+
60
+ // If there are no buyerSecret BWs, return false
61
+ if (buyerSecretBWs.length === 0) {
62
+ console.log(`${name}: No BoundWitnesses supplied for buyerSecret: ${buyerSecret}`)
63
+ return false
64
+ }
65
+
66
+ // Ensure each BW supplied for the buyerSecret is valid
67
+ const errors = await Promise.all(buyerSecretBWs.map((bw) => new BoundWitnessValidator(bw).validate()))
68
+ const validBoundWitnesses = errors.every((errors) => errors.length === 0)
69
+ if (!validBoundWitnesses) {
70
+ console.log(`${name}: Invalid BoundWitnesses supplied for buyerSecret: ${buyerSecret}`)
71
+ return false
72
+ }
73
+ return true
74
+ }
75
+ }
@@ -0,0 +1,9 @@
1
+ export * from './agent'
2
+ export * from './appraisal'
3
+ export * from './appraisalAuthorities'
4
+ export * from './assets'
5
+ export * from './buyer'
6
+ export * from './buyerSecret'
7
+ export * from './nbfExp'
8
+ export * from './paymentAuthorities'
9
+ export * from './seller'
@@ -0,0 +1,18 @@
1
+ import { EscrowTerms } from '../../Terms'
2
+ import { EscrowTermsValidationFunction } from '../types'
3
+
4
+ export const getNbfExpValidator = (now: number, minRequiredDuration: number): EscrowTermsValidationFunction => {
5
+ const minExp = now + minRequiredDuration
6
+ return (terms: EscrowTerms) => {
7
+ const { exp, nbf } = terms
8
+ if (nbf === undefined || nbf < now) {
9
+ console.log(`EscrowTerms.nbf: invalid nbf ${terms.nbf}`)
10
+ return false
11
+ }
12
+ if (exp === undefined || exp < minExp || nbf > exp) {
13
+ console.log(`EscrowTerms.exp: invalid exp ${terms.exp}`)
14
+ return false
15
+ }
16
+ return true
17
+ }
18
+ }
@@ -0,0 +1,17 @@
1
+ import { ModuleIdentifier } from '@xyo-network/module-model'
2
+
3
+ import { EscrowTerms } from '../../Terms'
4
+ import { moduleIdentifiersContainsAllOf } from '../common'
5
+ import { EscrowTermsValidationFunction } from '../types'
6
+
7
+ const name = 'EscrowTerms.paymentAuthorities'
8
+
9
+ export const getPaymentAuthoritiesAllowedValidator = (allowed: ModuleIdentifier[]): EscrowTermsValidationFunction => {
10
+ return (terms: EscrowTerms) => {
11
+ const result = moduleIdentifiersContainsAllOf(terms, (t) => t.paymentAuthorities, allowed, true)
12
+ if (!result) {
13
+ console.log(`${name}: Payment authority not allowed: ${terms.paymentAuthorities}`)
14
+ }
15
+ return result
16
+ }
17
+ }
@@ -0,0 +1,25 @@
1
+ import { asAddress } from '@xylabs/hex'
2
+
3
+ import { EscrowTerms } from '../../Terms'
4
+ import { EscrowTermsValidationFunction } from '../types'
5
+
6
+ const name = 'EscrowTerms.seller'
7
+
8
+ /**
9
+ * A function that validates the escrow terms for seller
10
+ * @returns True if the escrow terms contain seller, false otherwise
11
+ */
12
+ export const sellerExistsValidator: EscrowTermsValidationFunction = (terms: EscrowTerms) => {
13
+ // Validate we have seller
14
+ const seller = terms.seller
15
+ if (!seller || seller.length === 0) {
16
+ console.log(`${name}: No seller: ${terms.seller}`)
17
+ return false
18
+ }
19
+ // Validate the authorities are addresses
20
+ if (seller.map((x) => asAddress(x)).length !== seller.length) {
21
+ console.log(`${name}: Invalid address: ${terms.seller}`)
22
+ return false
23
+ }
24
+ return true
25
+ }
@@ -0,0 +1,3 @@
1
+ export * from './common'
2
+ export * from './escrow'
3
+ export * from './types'
@@ -0,0 +1,30 @@
1
+ import { EscrowTerms } from '../../Terms'
2
+
3
+ /**
4
+ * Type corresponding to the escrow terms properties
5
+ */
6
+ export type EscrowTermsProperty = keyof EscrowTerms
7
+
8
+ /**
9
+ * Type corresponding to the escrow terms property value
10
+ */
11
+ export type EscrowTermsValue<K extends EscrowTermsProperty> = EscrowTerms[K]
12
+
13
+ /**
14
+ * An expressions that selects a property value from the escrow terms
15
+ */
16
+ export type EscrowTermsValueExpression<
17
+ /**
18
+ * The property of the escrow terms to select
19
+ */
20
+ K extends EscrowTermsProperty,
21
+ /**
22
+ * The type of the selected property's value
23
+ */
24
+ V = EscrowTermsValue<K>,
25
+ > = (escrowTerms: EscrowTerms) => V
26
+
27
+ /**
28
+ * A function that validates the supplied escrow terms
29
+ */
30
+ export type EscrowTermsValidationFunction = (escrowTerms: EscrowTerms) => boolean | Promise<boolean>
@@ -0,0 +1 @@
1
+ export * from './escrowValidation'