@docknetwork/wallet-sdk-wasm 0.4.19

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 (844) hide show
  1. package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/core/crypto.d.ts +8 -0
  2. package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/core/crypto.d.ts.map +1 -0
  3. package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/core/crypto.js +24 -0
  4. package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/core/crypto.js.map +1 -0
  5. package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/core/format-utils.d.ts +31 -0
  6. package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/core/format-utils.d.ts.map +1 -0
  7. package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/core/format-utils.js +67 -0
  8. package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/core/format-utils.js.map +1 -0
  9. package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/core/logger.d.ts +3 -0
  10. package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/core/logger.d.ts.map +1 -0
  11. package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/core/logger.js +7 -0
  12. package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/core/logger.js.map +1 -0
  13. package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/core/polkadot-utils.d.ts +10 -0
  14. package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/core/polkadot-utils.d.ts.map +1 -0
  15. package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/core/polkadot-utils.js +65 -0
  16. package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/core/polkadot-utils.js.map +1 -0
  17. package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/core/storage.d.ts +8 -0
  18. package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/core/storage.d.ts.map +1 -0
  19. package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/core/storage.js +8 -0
  20. package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/core/storage.js.map +1 -0
  21. package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/core/validation.d.ts +9 -0
  22. package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/core/validation.d.ts.map +1 -0
  23. package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/core/validation.js +33 -0
  24. package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/core/validation.js.map +1 -0
  25. package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/errors.d.ts +7 -0
  26. package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/errors.d.ts.map +1 -0
  27. package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/errors.js +11 -0
  28. package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/errors.js.map +1 -0
  29. package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/logger.d.ts +5 -0
  30. package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/logger.d.ts.map +1 -0
  31. package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/logger.js +14 -0
  32. package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/logger.js.map +1 -0
  33. package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/modules/account.d.ts +60 -0
  34. package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/modules/account.d.ts.map +1 -0
  35. package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/modules/account.js +86 -0
  36. package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/modules/account.js.map +1 -0
  37. package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/modules/accounts.d.ts +49 -0
  38. package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/modules/accounts.d.ts.map +1 -0
  39. package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/modules/accounts.js +181 -0
  40. package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/modules/accounts.js.map +1 -0
  41. package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/modules/data-migration.d.ts +7 -0
  42. package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/modules/data-migration.d.ts.map +1 -0
  43. package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/modules/data-migration.js +66 -0
  44. package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/modules/data-migration.js.map +1 -0
  45. package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/modules/event-manager.d.ts +13 -0
  46. package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/modules/event-manager.d.ts.map +1 -0
  47. package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/modules/event-manager.js +35 -0
  48. package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/modules/event-manager.js.map +1 -0
  49. package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/modules/network-manager.d.ts +49 -0
  50. package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/modules/network-manager.d.ts.map +1 -0
  51. package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/modules/network-manager.js +64 -0
  52. package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/modules/network-manager.js.map +1 -0
  53. package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/modules/wallet-backup.d.ts +12 -0
  54. package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/modules/wallet-backup.d.ts.map +1 -0
  55. package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/modules/wallet-backup.js +52 -0
  56. package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/modules/wallet-backup.js.map +1 -0
  57. package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/modules/wallet.d.ts +134 -0
  58. package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/modules/wallet.d.ts.map +1 -0
  59. package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/modules/wallet.js +340 -0
  60. package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/modules/wallet.js.map +1 -0
  61. package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/rpc-client.d.ts +4 -0
  62. package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/rpc-client.d.ts.map +1 -0
  63. package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/rpc-client.js +56 -0
  64. package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/rpc-client.js.map +1 -0
  65. package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/rpc-util.d.ts +11 -0
  66. package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/rpc-util.d.ts.map +1 -0
  67. package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/rpc-util.js +70 -0
  68. package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/rpc-util.js.map +1 -0
  69. package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/credential/bbs-revocation.d.ts +10 -0
  70. package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/credential/bbs-revocation.d.ts.map +1 -0
  71. package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/credential/bbs-revocation.js +42 -0
  72. package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/credential/bbs-revocation.js.map +1 -0
  73. package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/credential/bound-check.d.ts +65 -0
  74. package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/credential/bound-check.d.ts.map +1 -0
  75. package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/credential/bound-check.js +57 -0
  76. package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/credential/bound-check.js.map +1 -0
  77. package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/credential/bound-check.test.d.ts +2 -0
  78. package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/credential/bound-check.test.d.ts.map +1 -0
  79. package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/credential/bound-check.test.js +280 -0
  80. package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/credential/bound-check.test.js.map +1 -0
  81. package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/credential/config.d.ts +10 -0
  82. package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/credential/config.d.ts.map +1 -0
  83. package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/credential/config.js +42 -0
  84. package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/credential/config.js.map +1 -0
  85. package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/credential/index.d.ts +24 -0
  86. package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/credential/index.d.ts.map +1 -0
  87. package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/credential/index.js +5 -0
  88. package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/credential/index.js.map +1 -0
  89. package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/credential/pex-helpers.d.ts +9 -0
  90. package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/credential/pex-helpers.d.ts.map +1 -0
  91. package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/credential/pex-helpers.js +138 -0
  92. package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/credential/pex-helpers.js.map +1 -0
  93. package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/credential/pex-to-bounds.d.ts +8 -0
  94. package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/credential/pex-to-bounds.d.ts.map +1 -0
  95. package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/credential/pex-to-bounds.js +106 -0
  96. package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/credential/pex-to-bounds.js.map +1 -0
  97. package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/credential/proof-request.json +37 -0
  98. package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/credential/range-proof-2.d.ts +2 -0
  99. package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/credential/range-proof-2.d.ts.map +1 -0
  100. package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/credential/range-proof-2.js +116 -0
  101. package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/credential/range-proof-2.js.map +1 -0
  102. package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/credential/range-proof-credential.json +64 -0
  103. package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/credential/range-proof.d.ts +15 -0
  104. package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/credential/range-proof.d.ts.map +1 -0
  105. package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/credential/range-proof.js +51 -0
  106. package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/credential/range-proof.js.map +1 -0
  107. package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/credential/range-proof.test.d.ts +2 -0
  108. package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/credential/range-proof.test.d.ts.map +1 -0
  109. package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/credential/range-proof.test.js +8 -0
  110. package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/credential/range-proof.test.js.map +1 -0
  111. package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/credential/range-proofs-example.d.ts +2 -0
  112. package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/credential/range-proofs-example.d.ts.map +1 -0
  113. package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/credential/range-proofs-example.js +101 -0
  114. package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/credential/range-proofs-example.js.map +1 -0
  115. package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/credential/service.d.ts +34 -0
  116. package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/credential/service.d.ts.map +1 -0
  117. package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/credential/service.js +242 -0
  118. package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/credential/service.js.map +1 -0
  119. package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/credential/utils.d.ts +2 -0
  120. package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/credential/utils.d.ts.map +1 -0
  121. package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/credential/utils.js +39 -0
  122. package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/credential/utils.js.map +1 -0
  123. package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/dids/config.d.ts +19 -0
  124. package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/dids/config.d.ts.map +1 -0
  125. package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/dids/config.js +21 -0
  126. package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/dids/config.js.map +1 -0
  127. package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/dids/service-rpc.d.ts +11 -0
  128. package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/dids/service-rpc.d.ts.map +1 -0
  129. package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/dids/service-rpc.js +23 -0
  130. package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/dids/service-rpc.js.map +1 -0
  131. package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/dids/service.d.ts +25 -0
  132. package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/dids/service.d.ts.map +1 -0
  133. package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/dids/service.js +77 -0
  134. package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/dids/service.js.map +1 -0
  135. package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/dock/configs.d.ts +7 -0
  136. package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/dock/configs.d.ts.map +1 -0
  137. package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/dock/configs.js +8 -0
  138. package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/dock/configs.js.map +1 -0
  139. package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/dock/index.d.ts +2 -0
  140. package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/dock/index.d.ts.map +1 -0
  141. package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/dock/index.js +2 -0
  142. package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/dock/index.js.map +1 -0
  143. package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/dock/service.d.ts +44 -0
  144. package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/dock/service.d.ts.map +1 -0
  145. package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/dock/service.js +123 -0
  146. package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/dock/service.js.map +1 -0
  147. package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/example/configs.d.ts +9 -0
  148. package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/example/configs.d.ts.map +1 -0
  149. package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/example/configs.js +9 -0
  150. package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/example/configs.js.map +1 -0
  151. package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/example/service.d.ts +8 -0
  152. package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/example/service.d.ts.map +1 -0
  153. package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/example/service.js +12 -0
  154. package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/example/service.js.map +1 -0
  155. package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/keyring/configs.d.ts +33 -0
  156. package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/keyring/configs.d.ts.map +1 -0
  157. package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/keyring/configs.js +45 -0
  158. package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/keyring/configs.js.map +1 -0
  159. package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/keyring/index.d.ts +2 -0
  160. package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/keyring/index.d.ts.map +1 -0
  161. package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/keyring/index.js +2 -0
  162. package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/keyring/index.js.map +1 -0
  163. package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/keyring/service.js +63 -0
  164. package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/keyring/service.js.map +1 -0
  165. package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/pex/config.d.ts +15 -0
  166. package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/pex/config.d.ts.map +1 -0
  167. package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/pex/config.js +14 -0
  168. package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/pex/config.js.map +1 -0
  169. package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/pex/service.d.ts +19 -0
  170. package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/pex/service.d.ts.map +1 -0
  171. package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/pex/service.js +44 -0
  172. package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/pex/service.js.map +1 -0
  173. package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/polkadot/configs.d.ts +8 -0
  174. package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/polkadot/configs.d.ts.map +1 -0
  175. package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/polkadot/configs.js +8 -0
  176. package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/polkadot/configs.js.map +1 -0
  177. package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/polkadot/index.d.ts +2 -0
  178. package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/polkadot/index.d.ts.map +1 -0
  179. package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/polkadot/index.js +2 -0
  180. package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/polkadot/index.js.map +1 -0
  181. package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/polkadot/service.d.ts +8 -0
  182. package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/polkadot/service.d.ts.map +1 -0
  183. package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/polkadot/service.js +17 -0
  184. package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/polkadot/service.js.map +1 -0
  185. package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/relay-service/configs.d.ts +30 -0
  186. package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/relay-service/configs.d.ts.map +1 -0
  187. package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/relay-service/configs.js +29 -0
  188. package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/relay-service/configs.js.map +1 -0
  189. package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/relay-service/service-rpc.d.ts +11 -0
  190. package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/relay-service/service-rpc.d.ts.map +1 -0
  191. package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/relay-service/service-rpc.js +28 -0
  192. package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/relay-service/service-rpc.js.map +1 -0
  193. package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/relay-service/service.d.ts +18 -0
  194. package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/relay-service/service.d.ts.map +1 -0
  195. package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/relay-service/service.js +41 -0
  196. package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/relay-service/service.js.map +1 -0
  197. package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/rpc-service-client.d.ts +7 -0
  198. package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/rpc-service-client.d.ts.map +1 -0
  199. package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/rpc-service-client.js +16 -0
  200. package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/rpc-service-client.js.map +1 -0
  201. package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/storage/configs.d.ts +2 -0
  202. package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/storage/configs.d.ts.map +1 -0
  203. package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/storage/configs.js +2 -0
  204. package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/storage/configs.js.map +1 -0
  205. package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/storage/index.d.ts +2 -0
  206. package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/storage/index.d.ts.map +1 -0
  207. package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/storage/index.js +2 -0
  208. package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/storage/index.js.map +1 -0
  209. package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/storage/service.d.ts +9 -0
  210. package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/storage/service.d.ts.map +1 -0
  211. package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/storage/service.js +22 -0
  212. package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/storage/service.js.map +1 -0
  213. package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/substrate/api-utils.d.ts +14 -0
  214. package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/substrate/api-utils.d.ts.map +1 -0
  215. package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/substrate/api-utils.js +54 -0
  216. package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/substrate/api-utils.js.map +1 -0
  217. package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/substrate/configs.d.ts +16 -0
  218. package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/substrate/configs.d.ts.map +1 -0
  219. package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/substrate/configs.js +17 -0
  220. package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/substrate/configs.js.map +1 -0
  221. package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/substrate/index.d.ts +2 -0
  222. package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/substrate/index.d.ts.map +1 -0
  223. package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/substrate/index.js +2 -0
  224. package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/substrate/index.js.map +1 -0
  225. package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/substrate/service.d.ts +13 -0
  226. package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/substrate/service.d.ts.map +1 -0
  227. package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/substrate/service.js +80 -0
  228. package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/substrate/service.js.map +1 -0
  229. package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/trust-registry/configs.d.ts +6 -0
  230. package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/trust-registry/configs.d.ts.map +1 -0
  231. package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/trust-registry/configs.js +14 -0
  232. package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/trust-registry/configs.js.map +1 -0
  233. package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/trust-registry/service.d.ts +25 -0
  234. package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/trust-registry/service.d.ts.map +1 -0
  235. package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/trust-registry/service.js +59 -0
  236. package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/trust-registry/service.js.map +1 -0
  237. package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/util-crypto/configs.d.ts +7 -0
  238. package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/util-crypto/configs.d.ts.map +1 -0
  239. package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/util-crypto/configs.js +20 -0
  240. package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/util-crypto/configs.js.map +1 -0
  241. package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/util-crypto/index.d.ts +2 -0
  242. package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/util-crypto/index.d.ts.map +1 -0
  243. package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/util-crypto/index.js +2 -0
  244. package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/util-crypto/index.js.map +1 -0
  245. package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/util-crypto/service.d.ts +14 -0
  246. package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/util-crypto/service.d.ts.map +1 -0
  247. package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/util-crypto/service.js +82 -0
  248. package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/util-crypto/service.js.map +1 -0
  249. package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/wallet/configs.js +82 -0
  250. package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/wallet/configs.js.map +1 -0
  251. package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/wallet/index.d.ts +2 -0
  252. package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/wallet/index.d.ts.map +1 -0
  253. package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/wallet/index.js +2 -0
  254. package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/wallet/index.js.map +1 -0
  255. package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/wallet/service.d.ts +56 -0
  256. package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/wallet/service.d.ts.map +1 -0
  257. package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/wallet/service.js +254 -0
  258. package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/services/wallet/service.js.map +1 -0
  259. package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/test/fixtures/legacy-wallet-schema.json +129 -0
  260. package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/types.d.ts +12 -0
  261. package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/types.d.ts.map +1 -0
  262. package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/types.js +2 -0
  263. package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/types.js.map +1 -0
  264. package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/wallet/memory-storage-interface.d.ts +31 -0
  265. package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/wallet/memory-storage-interface.d.ts.map +1 -0
  266. package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/wallet/memory-storage-interface.js +80 -0
  267. package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/wallet/memory-storage-interface.js.map +1 -0
  268. package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/wallet/memory-storage-wallet.d.ts +6 -0
  269. package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/wallet/memory-storage-wallet.d.ts.map +1 -0
  270. package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/wallet/memory-storage-wallet.js +18 -0
  271. package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/wallet/memory-storage-wallet.js.map +1 -0
  272. package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/wallet/rpc-storage-interface.d.ts +32 -0
  273. package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/wallet/rpc-storage-interface.d.ts.map +1 -0
  274. package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/wallet/rpc-storage-interface.js +100 -0
  275. package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/wallet/rpc-storage-interface.js.map +1 -0
  276. package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/wallet/rpc-storage-wallet.d.ts +6 -0
  277. package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/wallet/rpc-storage-wallet.d.ts.map +1 -0
  278. package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/wallet/rpc-storage-wallet.js +20 -0
  279. package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/src/wallet/rpc-storage-wallet.js.map +1 -0
  280. package/.rollup.cache/home/mike/dock/react-native-sdk/packages/wasm/lib/tsconfig.tsbuildinfo +1 -0
  281. package/.watchmanconfig +5 -0
  282. package/babel.config.js +12 -0
  283. package/jsdoc.conf.json +8 -0
  284. package/lib/account-22dc214b.js +774 -0
  285. package/lib/account-df68209b.js +764 -0
  286. package/lib/core/crypto.js +45 -0
  287. package/lib/core/crypto.mjs +33 -0
  288. package/lib/core/format-utils.js +79 -0
  289. package/lib/core/format-utils.mjs +65 -0
  290. package/lib/core/keychain.js +61 -0
  291. package/lib/core/keychain.mjs +37 -0
  292. package/lib/core/logger.js +13 -0
  293. package/lib/core/logger.mjs +9 -0
  294. package/lib/core/polkadot-utils.js +105 -0
  295. package/lib/core/polkadot-utils.mjs +81 -0
  296. package/lib/core/realm-schemas.js +50 -0
  297. package/lib/core/realm-schemas.mjs +44 -0
  298. package/lib/core/storage.js +14 -0
  299. package/lib/core/storage.mjs +9 -0
  300. package/lib/core/subscan.js +75 -0
  301. package/lib/core/subscan.mjs +65 -0
  302. package/lib/core/validation.js +52 -0
  303. package/lib/core/validation.mjs +35 -0
  304. package/lib/core/webview-logger.js +49 -0
  305. package/lib/core/webview-logger.mjs +41 -0
  306. package/lib/errors.js +17 -0
  307. package/lib/errors.mjs +12 -0
  308. package/lib/events.js +18 -0
  309. package/lib/events.mjs +13 -0
  310. package/lib/fixtures.js +56 -0
  311. package/lib/fixtures.mjs +52 -0
  312. package/lib/index.js +146 -0
  313. package/lib/index.mjs +144 -0
  314. package/lib/logger.js +22 -0
  315. package/lib/logger.mjs +17 -0
  316. package/lib/modules/account.js +50 -0
  317. package/lib/modules/account.mjs +42 -0
  318. package/lib/modules/accounts.js +51 -0
  319. package/lib/modules/accounts.mjs +42 -0
  320. package/lib/modules/data-migration.js +72 -0
  321. package/lib/modules/data-migration.mjs +68 -0
  322. package/lib/modules/event-manager.js +46 -0
  323. package/lib/modules/event-manager.mjs +37 -0
  324. package/lib/modules/network-manager.js +75 -0
  325. package/lib/modules/network-manager.mjs +66 -0
  326. package/lib/modules/wallet-backup.js +82 -0
  327. package/lib/modules/wallet-backup.mjs +71 -0
  328. package/lib/modules/wallet.js +51 -0
  329. package/lib/modules/wallet.mjs +42 -0
  330. package/lib/mrklt.js +2 -0
  331. package/lib/mrklt.mjs +1 -0
  332. package/lib/rpc-client.js +83 -0
  333. package/lib/rpc-client.mjs +73 -0
  334. package/lib/rpc-server.js +95 -0
  335. package/lib/rpc-server.mjs +93 -0
  336. package/lib/rpc-util.js +99 -0
  337. package/lib/rpc-util.mjs +89 -0
  338. package/lib/sandbox-rpc-server.js +28 -0
  339. package/lib/sandbox-rpc-server.mjs +26 -0
  340. package/lib/sandbox.js +102 -0
  341. package/lib/sandbox.mjs +100 -0
  342. package/lib/services/credential/bbs-revocation.js +47 -0
  343. package/lib/services/credential/bbs-revocation.mjs +38 -0
  344. package/lib/services/credential/bound-check.js +77 -0
  345. package/lib/services/credential/bound-check.mjs +60 -0
  346. package/lib/services/credential/config.js +53 -0
  347. package/lib/services/credential/config.mjs +44 -0
  348. package/lib/services/credential/index.android.js +19 -0
  349. package/lib/services/credential/index.android.mjs +15 -0
  350. package/lib/services/credential/index.ios.js +19 -0
  351. package/lib/services/credential/index.ios.mjs +15 -0
  352. package/lib/services/credential/index.js +41 -0
  353. package/lib/services/credential/index.mjs +37 -0
  354. package/lib/services/credential/pex-helpers.js +186 -0
  355. package/lib/services/credential/pex-helpers.mjs +175 -0
  356. package/lib/services/credential/range-proof-2.js +122 -0
  357. package/lib/services/credential/range-proof-2.mjs +118 -0
  358. package/lib/services/credential/range-proof.js +207 -0
  359. package/lib/services/credential/range-proof.mjs +202 -0
  360. package/lib/services/credential/range-proofs-example.js +107 -0
  361. package/lib/services/credential/range-proofs-example.mjs +103 -0
  362. package/lib/services/credential/service-rpc.js +46 -0
  363. package/lib/services/credential/service-rpc.mjs +42 -0
  364. package/lib/services/credential/service.js +271 -0
  365. package/lib/services/credential/service.mjs +259 -0
  366. package/lib/services/credential/utils.js +78 -0
  367. package/lib/services/credential/utils.mjs +51 -0
  368. package/lib/services/dids/config.js +32 -0
  369. package/lib/services/dids/config.mjs +23 -0
  370. package/lib/services/dids/index.android.js +19 -0
  371. package/lib/services/dids/index.android.mjs +15 -0
  372. package/lib/services/dids/index.ios.js +19 -0
  373. package/lib/services/dids/index.ios.mjs +15 -0
  374. package/lib/services/dids/index.js +37 -0
  375. package/lib/services/dids/index.mjs +33 -0
  376. package/lib/services/dids/service-rpc.js +37 -0
  377. package/lib/services/dids/service-rpc.mjs +33 -0
  378. package/lib/services/dids/service.js +104 -0
  379. package/lib/services/dids/service.mjs +96 -0
  380. package/lib/services/dock/configs.js +18 -0
  381. package/lib/services/dock/configs.mjs +10 -0
  382. package/lib/services/dock/index.android.js +19 -0
  383. package/lib/services/dock/index.android.mjs +15 -0
  384. package/lib/services/dock/index.ios.js +19 -0
  385. package/lib/services/dock/index.ios.mjs +15 -0
  386. package/lib/services/dock/index.js +17 -0
  387. package/lib/services/dock/index.mjs +9 -0
  388. package/lib/services/dock/service-rpc.js +58 -0
  389. package/lib/services/dock/service-rpc.mjs +54 -0
  390. package/lib/services/dock/service.js +138 -0
  391. package/lib/services/dock/service.mjs +126 -0
  392. package/lib/services/example/configs.js +21 -0
  393. package/lib/services/example/configs.mjs +13 -0
  394. package/lib/services/example/index.js +18 -0
  395. package/lib/services/example/index.mjs +14 -0
  396. package/lib/services/example/service-rpc.js +25 -0
  397. package/lib/services/example/service-rpc.mjs +21 -0
  398. package/lib/services/example/service.js +23 -0
  399. package/lib/services/example/service.mjs +18 -0
  400. package/lib/services/index.js +92 -0
  401. package/lib/services/index.mjs +90 -0
  402. package/lib/services/keyring/configs.js +58 -0
  403. package/lib/services/keyring/configs.mjs +49 -0
  404. package/lib/services/keyring/index.android.js +22 -0
  405. package/lib/services/keyring/index.android.mjs +18 -0
  406. package/lib/services/keyring/index.ios.js +22 -0
  407. package/lib/services/keyring/index.ios.mjs +18 -0
  408. package/lib/services/keyring/index.js +16 -0
  409. package/lib/services/keyring/index.mjs +8 -0
  410. package/lib/services/keyring/service-rpc.js +65 -0
  411. package/lib/services/keyring/service-rpc.mjs +61 -0
  412. package/lib/services/keyring/service.js +79 -0
  413. package/lib/services/keyring/service.mjs +69 -0
  414. package/lib/services/pex/config.js +25 -0
  415. package/lib/services/pex/config.mjs +16 -0
  416. package/lib/services/pex/index.android.js +19 -0
  417. package/lib/services/pex/index.android.mjs +15 -0
  418. package/lib/services/pex/index.ios.js +19 -0
  419. package/lib/services/pex/index.ios.mjs +15 -0
  420. package/lib/services/pex/index.js +12 -0
  421. package/lib/services/pex/index.mjs +4 -0
  422. package/lib/services/pex/service-rpc.js +31 -0
  423. package/lib/services/pex/service-rpc.mjs +27 -0
  424. package/lib/services/pex/service.js +52 -0
  425. package/lib/services/pex/service.mjs +47 -0
  426. package/lib/services/pex/tests/jest.config.js +25 -0
  427. package/lib/services/pex/tests/jest.config.mjs +23 -0
  428. package/lib/services/polkadot/configs.js +17 -0
  429. package/lib/services/polkadot/configs.mjs +13 -0
  430. package/lib/services/polkadot/index.android.js +22 -0
  431. package/lib/services/polkadot/index.android.mjs +18 -0
  432. package/lib/services/polkadot/index.ios.js +22 -0
  433. package/lib/services/polkadot/index.ios.mjs +18 -0
  434. package/lib/services/polkadot/index.js +15 -0
  435. package/lib/services/polkadot/index.mjs +7 -0
  436. package/lib/services/polkadot/service-rpc.js +30 -0
  437. package/lib/services/polkadot/service-rpc.mjs +26 -0
  438. package/lib/services/polkadot/service.js +28 -0
  439. package/lib/services/polkadot/service.mjs +23 -0
  440. package/lib/services/relay-service/configs.js +42 -0
  441. package/lib/services/relay-service/configs.mjs +33 -0
  442. package/lib/services/relay-service/index.android.js +22 -0
  443. package/lib/services/relay-service/index.android.mjs +18 -0
  444. package/lib/services/relay-service/index.ios.js +22 -0
  445. package/lib/services/relay-service/index.ios.mjs +18 -0
  446. package/lib/services/relay-service/index.js +15 -0
  447. package/lib/services/relay-service/index.mjs +7 -0
  448. package/lib/services/relay-service/service-rpc.js +45 -0
  449. package/lib/services/relay-service/service-rpc.mjs +41 -0
  450. package/lib/services/relay-service/service.js +55 -0
  451. package/lib/services/relay-service/service.mjs +47 -0
  452. package/lib/services/rpc-service-client.js +39 -0
  453. package/lib/services/rpc-service-client.mjs +31 -0
  454. package/lib/services/sandbox.js +10 -0
  455. package/lib/services/sandbox.mjs +8 -0
  456. package/lib/services/storage/configs.js +7 -0
  457. package/lib/services/storage/configs.mjs +3 -0
  458. package/lib/services/storage/index.android.js +18 -0
  459. package/lib/services/storage/index.android.mjs +14 -0
  460. package/lib/services/storage/index.ios.js +18 -0
  461. package/lib/services/storage/index.ios.mjs +14 -0
  462. package/lib/services/storage/index.js +9 -0
  463. package/lib/services/storage/index.mjs +1 -0
  464. package/lib/services/storage/service-rpc.js +33 -0
  465. package/lib/services/storage/service-rpc.mjs +29 -0
  466. package/lib/services/storage/service.js +28 -0
  467. package/lib/services/storage/service.mjs +23 -0
  468. package/lib/services/substrate/api-utils.js +72 -0
  469. package/lib/services/substrate/api-utils.mjs +61 -0
  470. package/lib/services/substrate/configs.js +30 -0
  471. package/lib/services/substrate/configs.mjs +21 -0
  472. package/lib/services/substrate/index.android.js +22 -0
  473. package/lib/services/substrate/index.android.mjs +18 -0
  474. package/lib/services/substrate/index.ios.js +22 -0
  475. package/lib/services/substrate/index.ios.mjs +18 -0
  476. package/lib/services/substrate/index.js +29 -0
  477. package/lib/services/substrate/index.mjs +21 -0
  478. package/lib/services/substrate/service-rpc.js +37 -0
  479. package/lib/services/substrate/service-rpc.mjs +33 -0
  480. package/lib/services/substrate/service.js +107 -0
  481. package/lib/services/substrate/service.mjs +94 -0
  482. package/lib/services/test-utils.js +327 -0
  483. package/lib/services/test-utils.mjs +307 -0
  484. package/lib/services/trust-registry/configs.js +25 -0
  485. package/lib/services/trust-registry/configs.mjs +16 -0
  486. package/lib/services/trust-registry/index.android.js +19 -0
  487. package/lib/services/trust-registry/index.android.mjs +15 -0
  488. package/lib/services/trust-registry/index.ios.js +19 -0
  489. package/lib/services/trust-registry/index.ios.mjs +15 -0
  490. package/lib/services/trust-registry/index.js +21 -0
  491. package/lib/services/trust-registry/index.mjs +13 -0
  492. package/lib/services/trust-registry/service-rpc.js +29 -0
  493. package/lib/services/trust-registry/service-rpc.mjs +25 -0
  494. package/lib/services/trust-registry/service.js +72 -0
  495. package/lib/services/trust-registry/service.mjs +68 -0
  496. package/lib/services/util-crypto/configs.js +32 -0
  497. package/lib/services/util-crypto/configs.mjs +24 -0
  498. package/lib/services/util-crypto/index.android.js +22 -0
  499. package/lib/services/util-crypto/index.android.mjs +18 -0
  500. package/lib/services/util-crypto/index.ios.js +22 -0
  501. package/lib/services/util-crypto/index.ios.mjs +18 -0
  502. package/lib/services/util-crypto/index.js +17 -0
  503. package/lib/services/util-crypto/index.mjs +9 -0
  504. package/lib/services/util-crypto/service-rpc.js +64 -0
  505. package/lib/services/util-crypto/service-rpc.mjs +60 -0
  506. package/lib/services/util-crypto/service.js +96 -0
  507. package/lib/services/util-crypto/service.mjs +87 -0
  508. package/lib/services/wallet/configs.js +95 -0
  509. package/lib/services/wallet/configs.mjs +86 -0
  510. package/lib/services/wallet/index.android.js +22 -0
  511. package/lib/services/wallet/index.android.mjs +18 -0
  512. package/lib/services/wallet/index.ios.js +22 -0
  513. package/lib/services/wallet/index.ios.mjs +18 -0
  514. package/lib/services/wallet/index.js +27 -0
  515. package/lib/services/wallet/index.mjs +19 -0
  516. package/lib/services/wallet/service-rpc.js +110 -0
  517. package/lib/services/wallet/service-rpc.mjs +106 -0
  518. package/lib/services/wallet/service.js +276 -0
  519. package/lib/services/wallet/service.mjs +267 -0
  520. package/lib/setup-nodejs.js +93 -0
  521. package/lib/setup-nodejs.mjs +91 -0
  522. package/lib/setup-tests.js +92 -0
  523. package/lib/setup-tests.mjs +90 -0
  524. package/lib/src/core/crypto.d.ts +8 -0
  525. package/lib/src/core/crypto.d.ts.map +1 -0
  526. package/lib/src/core/format-utils.d.ts +31 -0
  527. package/lib/src/core/format-utils.d.ts.map +1 -0
  528. package/lib/src/core/logger.d.ts +3 -0
  529. package/lib/src/core/logger.d.ts.map +1 -0
  530. package/lib/src/core/polkadot-utils.d.ts +10 -0
  531. package/lib/src/core/polkadot-utils.d.ts.map +1 -0
  532. package/lib/src/core/storage.d.ts +8 -0
  533. package/lib/src/core/storage.d.ts.map +1 -0
  534. package/lib/src/core/validation.d.ts +9 -0
  535. package/lib/src/core/validation.d.ts.map +1 -0
  536. package/lib/src/errors.d.ts +7 -0
  537. package/lib/src/errors.d.ts.map +1 -0
  538. package/lib/src/logger.d.ts +5 -0
  539. package/lib/src/logger.d.ts.map +1 -0
  540. package/lib/src/modules/account.d.ts +60 -0
  541. package/lib/src/modules/account.d.ts.map +1 -0
  542. package/lib/src/modules/accounts.d.ts +49 -0
  543. package/lib/src/modules/accounts.d.ts.map +1 -0
  544. package/lib/src/modules/data-migration.d.ts +7 -0
  545. package/lib/src/modules/data-migration.d.ts.map +1 -0
  546. package/lib/src/modules/event-manager.d.ts +13 -0
  547. package/lib/src/modules/event-manager.d.ts.map +1 -0
  548. package/lib/src/modules/network-manager.d.ts +49 -0
  549. package/lib/src/modules/network-manager.d.ts.map +1 -0
  550. package/lib/src/modules/wallet-backup.d.ts +12 -0
  551. package/lib/src/modules/wallet-backup.d.ts.map +1 -0
  552. package/lib/src/modules/wallet.d.ts +134 -0
  553. package/lib/src/modules/wallet.d.ts.map +1 -0
  554. package/lib/src/rpc-client.d.ts +4 -0
  555. package/lib/src/rpc-client.d.ts.map +1 -0
  556. package/lib/src/rpc-util.d.ts +11 -0
  557. package/lib/src/rpc-util.d.ts.map +1 -0
  558. package/lib/src/services/credential/bbs-revocation.d.ts +10 -0
  559. package/lib/src/services/credential/bbs-revocation.d.ts.map +1 -0
  560. package/lib/src/services/credential/bound-check.d.ts +65 -0
  561. package/lib/src/services/credential/bound-check.d.ts.map +1 -0
  562. package/lib/src/services/credential/bound-check.test.d.ts +2 -0
  563. package/lib/src/services/credential/bound-check.test.d.ts.map +1 -0
  564. package/lib/src/services/credential/config.d.ts +10 -0
  565. package/lib/src/services/credential/config.d.ts.map +1 -0
  566. package/lib/src/services/credential/index.d.ts +24 -0
  567. package/lib/src/services/credential/index.d.ts.map +1 -0
  568. package/lib/src/services/credential/pex-helpers.d.ts +9 -0
  569. package/lib/src/services/credential/pex-helpers.d.ts.map +1 -0
  570. package/lib/src/services/credential/range-proof-2.d.ts +2 -0
  571. package/lib/src/services/credential/range-proof-2.d.ts.map +1 -0
  572. package/lib/src/services/credential/range-proof.d.ts +15 -0
  573. package/lib/src/services/credential/range-proof.d.ts.map +1 -0
  574. package/lib/src/services/credential/range-proof.test.d.ts +2 -0
  575. package/lib/src/services/credential/range-proof.test.d.ts.map +1 -0
  576. package/lib/src/services/credential/range-proofs-example.d.ts +2 -0
  577. package/lib/src/services/credential/range-proofs-example.d.ts.map +1 -0
  578. package/lib/src/services/credential/service.d.ts +34 -0
  579. package/lib/src/services/credential/service.d.ts.map +1 -0
  580. package/lib/src/services/credential/utils.d.ts +2 -0
  581. package/lib/src/services/credential/utils.d.ts.map +1 -0
  582. package/lib/src/services/dids/config.d.ts +19 -0
  583. package/lib/src/services/dids/config.d.ts.map +1 -0
  584. package/lib/src/services/dids/service-rpc.d.ts +11 -0
  585. package/lib/src/services/dids/service-rpc.d.ts.map +1 -0
  586. package/lib/src/services/dids/service.d.ts +25 -0
  587. package/lib/src/services/dids/service.d.ts.map +1 -0
  588. package/lib/src/services/dock/configs.d.ts +7 -0
  589. package/lib/src/services/dock/configs.d.ts.map +1 -0
  590. package/lib/src/services/dock/index.d.ts +2 -0
  591. package/lib/src/services/dock/index.d.ts.map +1 -0
  592. package/lib/src/services/dock/service.d.ts +44 -0
  593. package/lib/src/services/dock/service.d.ts.map +1 -0
  594. package/lib/src/services/example/configs.d.ts +9 -0
  595. package/lib/src/services/example/configs.d.ts.map +1 -0
  596. package/lib/src/services/example/service.d.ts +8 -0
  597. package/lib/src/services/example/service.d.ts.map +1 -0
  598. package/lib/src/services/keyring/configs.d.ts +33 -0
  599. package/lib/src/services/keyring/configs.d.ts.map +1 -0
  600. package/lib/src/services/keyring/index.d.ts +2 -0
  601. package/lib/src/services/keyring/index.d.ts.map +1 -0
  602. package/lib/src/services/pex/config.d.ts +15 -0
  603. package/lib/src/services/pex/config.d.ts.map +1 -0
  604. package/lib/src/services/pex/service.d.ts +19 -0
  605. package/lib/src/services/pex/service.d.ts.map +1 -0
  606. package/lib/src/services/polkadot/configs.d.ts +8 -0
  607. package/lib/src/services/polkadot/configs.d.ts.map +1 -0
  608. package/lib/src/services/polkadot/index.d.ts +2 -0
  609. package/lib/src/services/polkadot/index.d.ts.map +1 -0
  610. package/lib/src/services/polkadot/service.d.ts +8 -0
  611. package/lib/src/services/polkadot/service.d.ts.map +1 -0
  612. package/lib/src/services/relay-service/configs.d.ts +30 -0
  613. package/lib/src/services/relay-service/configs.d.ts.map +1 -0
  614. package/lib/src/services/relay-service/service-rpc.d.ts +11 -0
  615. package/lib/src/services/relay-service/service-rpc.d.ts.map +1 -0
  616. package/lib/src/services/relay-service/service.d.ts +18 -0
  617. package/lib/src/services/relay-service/service.d.ts.map +1 -0
  618. package/lib/src/services/rpc-service-client.d.ts +7 -0
  619. package/lib/src/services/rpc-service-client.d.ts.map +1 -0
  620. package/lib/src/services/storage/configs.d.ts +2 -0
  621. package/lib/src/services/storage/configs.d.ts.map +1 -0
  622. package/lib/src/services/storage/index.d.ts +2 -0
  623. package/lib/src/services/storage/index.d.ts.map +1 -0
  624. package/lib/src/services/storage/service.d.ts +9 -0
  625. package/lib/src/services/storage/service.d.ts.map +1 -0
  626. package/lib/src/services/substrate/api-utils.d.ts +14 -0
  627. package/lib/src/services/substrate/api-utils.d.ts.map +1 -0
  628. package/lib/src/services/substrate/configs.d.ts +16 -0
  629. package/lib/src/services/substrate/configs.d.ts.map +1 -0
  630. package/lib/src/services/substrate/index.d.ts +2 -0
  631. package/lib/src/services/substrate/index.d.ts.map +1 -0
  632. package/lib/src/services/substrate/service.d.ts +13 -0
  633. package/lib/src/services/substrate/service.d.ts.map +1 -0
  634. package/lib/src/services/trust-registry/configs.d.ts +6 -0
  635. package/lib/src/services/trust-registry/configs.d.ts.map +1 -0
  636. package/lib/src/services/trust-registry/service.d.ts +25 -0
  637. package/lib/src/services/trust-registry/service.d.ts.map +1 -0
  638. package/lib/src/services/util-crypto/configs.d.ts +7 -0
  639. package/lib/src/services/util-crypto/configs.d.ts.map +1 -0
  640. package/lib/src/services/util-crypto/index.d.ts +2 -0
  641. package/lib/src/services/util-crypto/index.d.ts.map +1 -0
  642. package/lib/src/services/util-crypto/service.d.ts +14 -0
  643. package/lib/src/services/util-crypto/service.d.ts.map +1 -0
  644. package/lib/src/services/wallet/index.d.ts +2 -0
  645. package/lib/src/services/wallet/index.d.ts.map +1 -0
  646. package/lib/src/services/wallet/service.d.ts +56 -0
  647. package/lib/src/services/wallet/service.d.ts.map +1 -0
  648. package/lib/src/types.d.ts +12 -0
  649. package/lib/src/types.d.ts.map +1 -0
  650. package/lib/src/wallet/memory-storage-interface.d.ts +31 -0
  651. package/lib/src/wallet/memory-storage-interface.d.ts.map +1 -0
  652. package/lib/src/wallet/memory-storage-wallet.d.ts +6 -0
  653. package/lib/src/wallet/memory-storage-wallet.d.ts.map +1 -0
  654. package/lib/src/wallet/rpc-storage-interface.d.ts +32 -0
  655. package/lib/src/wallet/rpc-storage-interface.d.ts.map +1 -0
  656. package/lib/src/wallet/rpc-storage-wallet.d.ts +6 -0
  657. package/lib/src/wallet/rpc-storage-wallet.d.ts.map +1 -0
  658. package/lib/test/axiosMocks.js +432 -0
  659. package/lib/test/axiosMocks.mjs +421 -0
  660. package/lib/test/setup-test-state.js +88 -0
  661. package/lib/test/setup-test-state.mjs +80 -0
  662. package/lib/test-utils.js +50 -0
  663. package/lib/test-utils.mjs +41 -0
  664. package/lib/tsconfig.tsbuildinfo +1 -0
  665. package/lib/types.js +7 -0
  666. package/lib/types.mjs +3 -0
  667. package/lib/wallet/memory-storage-interface.js +101 -0
  668. package/lib/wallet/memory-storage-interface.mjs +95 -0
  669. package/lib/wallet/memory-storage-wallet.js +30 -0
  670. package/lib/wallet/memory-storage-wallet.mjs +24 -0
  671. package/lib/wallet/rpc-storage-interface.js +124 -0
  672. package/lib/wallet/rpc-storage-interface.mjs +118 -0
  673. package/lib/wallet/rpc-storage-wallet.js +36 -0
  674. package/lib/wallet/rpc-storage-wallet.mjs +30 -0
  675. package/package.json +58 -0
  676. package/readme.md +61 -0
  677. package/rollup.config.mjs +35 -0
  678. package/src/core/crypto.js +31 -0
  679. package/src/core/format-utils.test.js +44 -0
  680. package/src/core/format-utils.ts +91 -0
  681. package/src/core/keychain.js +35 -0
  682. package/src/core/logger.js +7 -0
  683. package/src/core/polkadot-utils.js +88 -0
  684. package/src/core/realm-schemas.js +42 -0
  685. package/src/core/storage.ts +16 -0
  686. package/src/core/subscan.js +63 -0
  687. package/src/core/subscan.test.js +56 -0
  688. package/src/core/validation.test.js +41 -0
  689. package/src/core/validation.ts +45 -0
  690. package/src/core/webview-logger.js +39 -0
  691. package/src/errors.ts +11 -0
  692. package/src/events.js +11 -0
  693. package/src/fixtures.js +43 -0
  694. package/src/index.js +67 -0
  695. package/src/logger.js +15 -0
  696. package/src/modules/account.test.js +56 -0
  697. package/src/modules/account.ts +128 -0
  698. package/src/modules/accounts.test.js +88 -0
  699. package/src/modules/accounts.ts +264 -0
  700. package/src/modules/data-migration.test.js +72 -0
  701. package/src/modules/data-migration.ts +86 -0
  702. package/src/modules/event-manager.ts +41 -0
  703. package/src/modules/network-manager.ts +82 -0
  704. package/src/modules/wallet-backup.test.js +24 -0
  705. package/src/modules/wallet-backup.ts +68 -0
  706. package/src/modules/wallet.test.js +227 -0
  707. package/src/modules/wallet.ts +424 -0
  708. package/src/mrklt.js +2 -0
  709. package/src/rpc-client.js +70 -0
  710. package/src/rpc-server.js +17 -0
  711. package/src/rpc-server.test.js +15 -0
  712. package/src/rpc-util.js +86 -0
  713. package/src/sandbox-rpc-server.js +17 -0
  714. package/src/sandbox.js +90 -0
  715. package/src/sandbox.testjs +19 -0
  716. package/src/services/credential/bbs-revocation.ts +83 -0
  717. package/src/services/credential/bound-check.test.ts +385 -0
  718. package/src/services/credential/bound-check.ts +143 -0
  719. package/src/services/credential/config.ts +49 -0
  720. package/src/services/credential/index.android.js +3 -0
  721. package/src/services/credential/index.ios.js +3 -0
  722. package/src/services/credential/index.test.js +408 -0
  723. package/src/services/credential/index.ts +5 -0
  724. package/src/services/credential/pex-helpers.js +173 -0
  725. package/src/services/credential/pex-helpers.test.js +80 -0
  726. package/src/services/credential/proof-request.json +37 -0
  727. package/src/services/credential/range-proof-2.ts +248 -0
  728. package/src/services/credential/range-proof-credential.json +64 -0
  729. package/src/services/credential/range-proof.test.ts +8 -0
  730. package/src/services/credential/range-proof.ts +95 -0
  731. package/src/services/credential/range-proofs-example.ts +216 -0
  732. package/src/services/credential/service-rpc.js +32 -0
  733. package/src/services/credential/service.ts +309 -0
  734. package/src/services/credential/utils.js +48 -0
  735. package/src/services/dids/config.ts +41 -0
  736. package/src/services/dids/index.android.js +3 -0
  737. package/src/services/dids/index.ios.js +3 -0
  738. package/src/services/dids/index.js +3 -0
  739. package/src/services/dids/index.test.js +163 -0
  740. package/src/services/dids/service-rpc.ts +27 -0
  741. package/src/services/dids/service.ts +97 -0
  742. package/src/services/dock/configs.ts +12 -0
  743. package/src/services/dock/index.android.js +3 -0
  744. package/src/services/dock/index.ios.js +3 -0
  745. package/src/services/dock/index.js +1 -0
  746. package/src/services/dock/index.test.js +48 -0
  747. package/src/services/dock/service-rpc.js +44 -0
  748. package/src/services/dock/service.ts +154 -0
  749. package/src/services/example/configs.js +14 -0
  750. package/src/services/example/index.js +3 -0
  751. package/src/services/example/index.test.js +28 -0
  752. package/src/services/example/service-rpc.js +11 -0
  753. package/src/services/example/service.ts +16 -0
  754. package/src/services/index.js +26 -0
  755. package/src/services/keyring/configs.ts +89 -0
  756. package/src/services/keyring/index.android.js +3 -0
  757. package/src/services/keyring/index.ios.js +3 -0
  758. package/src/services/keyring/index.js +1 -0
  759. package/src/services/keyring/index.test.js +48 -0
  760. package/src/services/keyring/service-rpc.js +56 -0
  761. package/src/services/keyring/service.ts +98 -0
  762. package/src/services/pex/config.ts +25 -0
  763. package/src/services/pex/index.android.js +2 -0
  764. package/src/services/pex/index.ios.js +2 -0
  765. package/src/services/pex/index.js +1 -0
  766. package/src/services/pex/service-rpc.js +22 -0
  767. package/src/services/pex/service.ts +68 -0
  768. package/src/services/pex/tests/jest.config.js +21 -0
  769. package/src/services/pex/tests/pex-service.test.js +444 -0
  770. package/src/services/polkadot/configs.ts +13 -0
  771. package/src/services/polkadot/index.android.js +3 -0
  772. package/src/services/polkadot/index.ios.js +3 -0
  773. package/src/services/polkadot/index.js +1 -0
  774. package/src/services/polkadot/index.test.js +52 -0
  775. package/src/services/polkadot/service-rpc.js +13 -0
  776. package/src/services/polkadot/service.ts +21 -0
  777. package/src/services/relay-service/configs.ts +61 -0
  778. package/src/services/relay-service/index.android.js +3 -0
  779. package/src/services/relay-service/index.ios.js +3 -0
  780. package/src/services/relay-service/index.js +1 -0
  781. package/src/services/relay-service/index.test.js +67 -0
  782. package/src/services/relay-service/service-rpc.ts +40 -0
  783. package/src/services/relay-service/service.ts +58 -0
  784. package/src/services/rpc-service-client.js +23 -0
  785. package/src/services/sandbox.js +3 -0
  786. package/src/services/storage/configs.ts +1 -0
  787. package/src/services/storage/index.android.js +3 -0
  788. package/src/services/storage/index.ios.js +3 -0
  789. package/src/services/storage/index.js +1 -0
  790. package/src/services/storage/index.test.js +26 -0
  791. package/src/services/storage/service-rpc.js +19 -0
  792. package/src/services/storage/service.ts +26 -0
  793. package/src/services/substrate/api-utils.test.js +73 -0
  794. package/src/services/substrate/api-utils.ts +66 -0
  795. package/src/services/substrate/configs.ts +34 -0
  796. package/src/services/substrate/index.android.js +3 -0
  797. package/src/services/substrate/index.ios.js +3 -0
  798. package/src/services/substrate/index.js +1 -0
  799. package/src/services/substrate/index.test.js +116 -0
  800. package/src/services/substrate/service-rpc.js +24 -0
  801. package/src/services/substrate/service.ts +117 -0
  802. package/src/services/test-utils.js +284 -0
  803. package/src/services/trust-registry/configs.ts +14 -0
  804. package/src/services/trust-registry/index.android.js +3 -0
  805. package/src/services/trust-registry/index.ios.js +3 -0
  806. package/src/services/trust-registry/index.js +1 -0
  807. package/src/services/trust-registry/index.test.js +65 -0
  808. package/src/services/trust-registry/service-rpc.js +15 -0
  809. package/src/services/trust-registry/service.ts +88 -0
  810. package/src/services/util-crypto/configs.ts +23 -0
  811. package/src/services/util-crypto/index.android.js +3 -0
  812. package/src/services/util-crypto/index.ios.js +3 -0
  813. package/src/services/util-crypto/index.js +1 -0
  814. package/src/services/util-crypto/index.test.js +110 -0
  815. package/src/services/util-crypto/service-rpc.js +47 -0
  816. package/src/services/util-crypto/service.ts +110 -0
  817. package/src/services/wallet/configs.ts +152 -0
  818. package/src/services/wallet/index.android.js +3 -0
  819. package/src/services/wallet/index.ios.js +3 -0
  820. package/src/services/wallet/index.js +1 -0
  821. package/src/services/wallet/index.test.js +360 -0
  822. package/src/services/wallet/service-rpc.js +104 -0
  823. package/src/services/wallet/service.ts +329 -0
  824. package/src/setup-nodejs.js +13 -0
  825. package/src/setup-tests.js +12 -0
  826. package/src/test/axiosMocks.js +25 -0
  827. package/src/test/fixtures/backup-files/empty-json.json +1 -0
  828. package/src/test/fixtures/backup-files/empty-wallet-backup.json +35 -0
  829. package/src/test/fixtures/legacy-wallet-schema.json +129 -0
  830. package/src/test/fixtures/subscan-failure.json +5 -0
  831. package/src/test/fixtures/subscan-success.json +370 -0
  832. package/src/test/fixtures/subscan-too-many-requests.json +9 -0
  833. package/src/test/fixtures/wallet-backup.json +35 -0
  834. package/src/test/fixtures/wallet-schema-v0.2.json +43 -0
  835. package/src/test/setup-test-state.js +37 -0
  836. package/src/test/subscan-mock.test.js +54 -0
  837. package/src/test/test-wallet.test.js +15 -0
  838. package/src/test-utils.js +42 -0
  839. package/src/types.ts +24 -0
  840. package/src/wallet/memory-storage-interface.js +95 -0
  841. package/src/wallet/memory-storage-wallet.js +23 -0
  842. package/src/wallet/rpc-storage-interface.js +118 -0
  843. package/src/wallet/rpc-storage-wallet.js +26 -0
  844. package/tsconfig.json +31 -0
@@ -0,0 +1,2 @@
1
+ export declare function createRangeProofPresentation(): Promise<boolean>;
2
+ //# sourceMappingURL=range-proof-2.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"range-proof-2.d.ts","sourceRoot":"","sources":["../../../../src/services/credential/range-proof-2.ts"],"names":[],"mappings":"AAyDA,wBAAsB,4BAA4B,qBA+HjD"}
@@ -0,0 +1,116 @@
1
+ import { BBSSignature, BBSSignatureParams, WitnessEqualityMetaStatement, Witnesses, MetaStatements, QuasiProofSpecG1, MetaStatement, CompositeProofG1, Statements, Witness, Statement, SetupParam, BBSKeypair, } from '@docknetwork/crypto-wasm-ts/lib';
2
+ import { BoundCheckSnarkSetup } from '@docknetwork/crypto-wasm-ts/lib/bound-check';
3
+ import { initializeWasm } from '@docknetwork/crypto-wasm-ts/lib/index';
4
+ // Use presentation builder instead of low level implementation
5
+ // https://github.com/docknetwork/crypto-wasm-ts/blob/master/src/anonymous-credentials/presentation-builder.ts#L240.
6
+ // https://github.com/docknetwork/crypto-wasm-ts/blob/master/tests/anonymous-credentials/presentation.spec.ts#L932
7
+ // Low level implementation testing, we don't need to use it
8
+ const stringToBytes = (string) => Uint8Array.from(Buffer.from(string, 'utf-8'));
9
+ function getRevealedUnrevealed(messages, revealedIndices) {
10
+ const revealedMsgs = new Map();
11
+ const unrevealedMsgs = new Map();
12
+ for (let i = 0; i < messages.length; i++) {
13
+ if (revealedIndices.has(i)) {
14
+ revealedMsgs.set(i, messages[i]);
15
+ }
16
+ else {
17
+ unrevealedMsgs.set(i, messages[i]);
18
+ }
19
+ }
20
+ return [revealedMsgs, unrevealedMsgs];
21
+ }
22
+ const earliestIssuance = 642709800000; // Timestamp of the earliest acceptable issuance, used as lower bound
23
+ const latestIssuance = 1588271400000; // Timestamp of the latest acceptable issuance, used as upper bound
24
+ const bornAfter = 642709800000; // Timestamp of the latest acceptable birth date, used as lower bound
25
+ const now = 1620585000000; // Timestamp as of now, i.e proof generation
26
+ const someDistantFuture = 1777746600000; // Timestamp from future
27
+ export async function createRangeProofPresentation() {
28
+ await initializeWasm();
29
+ const provingKey = BoundCheckSnarkSetup();
30
+ const snarkProvingKey = provingKey.decompress();
31
+ const attributes = [];
32
+ attributes.push(BBSSignature.encodeMessageForSigning(stringToBytes('John Smith'))); // Name
33
+ attributes.push(BBSSignature.encodeMessageForSigning(stringToBytes('123-456789-0'))); // SSN
34
+ attributes.push(BBSSignature.encodePositiveNumberForSigning(bornAfter + 100000)); // Birth date as no. of milliseconds since epoch
35
+ attributes.push(BBSSignature.encodePositiveNumberForSigning(earliestIssuance + 100000)); // Issuance date as no. of milliseconds since epoch
36
+ attributes.push(BBSSignature.encodePositiveNumberForSigning(now + 2000000)); // Expiration date as no. of milliseconds since epoch
37
+ const messageCount = attributes.length;
38
+ const sigParams = BBSSignatureParams.generate(messageCount);
39
+ const sigKeypair1 = BBSKeypair.generate(sigParams);
40
+ const sigSecretKey = sigKeypair1.secretKey;
41
+ const sigPublicKey = sigKeypair1.publicKey;
42
+ // Signer creates the signature and shares with prover
43
+ const sig = BBSSignature.generate(attributes, sigSecretKey, sigParams, false);
44
+ const proverSetupParams = [];
45
+ proverSetupParams.push(SetupParam.legosnarkProvingKeyUncompressed(snarkProvingKey));
46
+ const revealedIndices = new Set();
47
+ revealedIndices.add(0);
48
+ const [revealedAttrs, unrevealedAttrs] = getRevealedUnrevealed(attributes, revealedIndices);
49
+ const statement1 = Statement.bbsSignature(sigParams, sigPublicKey, revealedAttrs, false);
50
+ const statement2 = Statement.boundCheckProverFromSetupParamRefs(bornAfter, now, 0);
51
+ // For proving issuance date was between `earliestIssuance` and `latestIssuance`
52
+ const statement3 = Statement.boundCheckProverFromSetupParamRefs(earliestIssuance, latestIssuance, 0);
53
+ // For proving expiration date was between `now` and `someDistantFuture`, i.e. its not expired as of now.
54
+ const statement4 = Statement.boundCheckProverFromSetupParamRefs(now, someDistantFuture, 0);
55
+ const proverStatements = new Statements(statement1);
56
+ proverStatements.add(statement2);
57
+ proverStatements.add(statement3);
58
+ proverStatements.add(statement4);
59
+ // For birth date attribute
60
+ const witnessEq1 = new WitnessEqualityMetaStatement();
61
+ witnessEq1.addWitnessRef(0, 2);
62
+ witnessEq1.addWitnessRef(1, 0);
63
+ // For issuance date attribute
64
+ const witnessEq2 = new WitnessEqualityMetaStatement();
65
+ witnessEq2.addWitnessRef(0, 3);
66
+ witnessEq2.addWitnessRef(2, 0);
67
+ // For expiration date attribute
68
+ const witnessEq3 = new WitnessEqualityMetaStatement();
69
+ witnessEq3.addWitnessRef(0, 4);
70
+ witnessEq3.addWitnessRef(3, 0);
71
+ const metaStatements = new MetaStatements();
72
+ metaStatements.add(MetaStatement.witnessEquality(witnessEq1));
73
+ metaStatements.add(MetaStatement.witnessEquality(witnessEq2));
74
+ metaStatements.add(MetaStatement.witnessEquality(witnessEq3));
75
+ const witnesses = new Witnesses();
76
+ witnesses.add(Witness.bbsSignature(sig, unrevealedAttrs, false));
77
+ witnesses.add(Witness.boundCheckLegoGroth16(attributes[2]));
78
+ witnesses.add(Witness.boundCheckLegoGroth16(attributes[3]));
79
+ witnesses.add(Witness.boundCheckLegoGroth16(attributes[4]));
80
+ const proverProofSpec = new QuasiProofSpecG1(proverStatements, metaStatements, proverSetupParams);
81
+ const nonce = stringToBytes('a nonce');
82
+ const proof = CompositeProofG1.generateUsingQuasiProofSpec(proverProofSpec, witnesses, nonce);
83
+ console.log(proof);
84
+ verifyRangeProof({
85
+ nonce,
86
+ proof,
87
+ provingKey,
88
+ statement1,
89
+ metaStatements: metaStatements.values,
90
+ });
91
+ return true;
92
+ }
93
+ function verifyRangeProof({ nonce, proof, provingKey, statement1, metaStatements, }) {
94
+ const snarkVerifyingKey = provingKey.getVerifyingKeyUncompressed();
95
+ const verifierSetupParams = [];
96
+ verifierSetupParams.push(SetupParam.legosnarkVerifyingKeyUncompressed(snarkVerifyingKey));
97
+ // For verifying birth date was after `bornAfter`
98
+ const statement5 = Statement.boundCheckVerifierFromSetupParamRefs(bornAfter, now, 0);
99
+ // For verifying issuance date was between `earliestIssuance` and `latestIssuance`
100
+ const statement6 = Statement.boundCheckVerifierFromSetupParamRefs(earliestIssuance, latestIssuance, 0);
101
+ // For verifying expiration date was between `now` and `someDistantFuture`, i.e. its not expired as of now.
102
+ const statement7 = Statement.boundCheckVerifierFromSetupParamRefs(now, someDistantFuture, 0);
103
+ const verifierStatements = new Statements();
104
+ verifierStatements.add(statement1);
105
+ verifierStatements.add(statement5);
106
+ verifierStatements.add(statement6);
107
+ verifierStatements.add(statement7);
108
+ const _metaStatements = new MetaStatements();
109
+ metaStatements.forEach(metaStatement => {
110
+ _metaStatements.add(metaStatement);
111
+ });
112
+ const verifierProofSpec = new QuasiProofSpecG1(verifierStatements, _metaStatements, verifierSetupParams);
113
+ const result = proof.verifyUsingQuasiProofSpec(verifierProofSpec, nonce);
114
+ console.log(result);
115
+ }
116
+ //# sourceMappingURL=range-proof-2.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"range-proof-2.js","sourceRoot":"","sources":["../../../../src/services/credential/range-proof-2.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,64 @@
1
+ {
2
+ "@context": [
3
+ "https://www.w3.org/2018/credentials/v1",
4
+ {
5
+ "dk": "https://ld.dock.io/credentials#",
6
+ "UniversityDegree": "dk:UniversityDegree",
7
+ "dateEarned": "dk:dateEarned",
8
+ "name": "dk:name",
9
+ "dateOfBirth": "dk:dateOfBirth",
10
+ "degreeType": "dk:degreeType",
11
+ "degreeName": "dk:degreeName",
12
+ "description": "dk:description",
13
+ "logo": "dk:logo"
14
+ },
15
+ "https://ld.dock.io/credentials/prettyvc"
16
+ ],
17
+ "id": "https://creds-staging.dock.io/63744e217f8c81bf2d07740d42f5a7d591d88ddd25cc26bfadbf69d57f2b913c",
18
+ "type": [
19
+ "VerifiableCredential",
20
+ "UniversityDegree",
21
+ "PrettyVerifiableCredential"
22
+ ],
23
+ "credentialSubject": {
24
+ "id": "test",
25
+ "dateEarned": "2023-03-02",
26
+ "name": "Maycon Mellos",
27
+ "dateOfBirth": "2023-09-14",
28
+ "degreeType": "Test",
29
+ "degreeName": "Test"
30
+ },
31
+ "issuanceDate": "2023-09-06T19:08:51.100Z",
32
+ "issuer": {
33
+ "name": "Profile bbs",
34
+ "description": "",
35
+ "logo": "",
36
+ "type": "dock",
37
+ "id": "did:dock:5CDpZeS2fAas4Du87f2VyTj1BospmvQ5BZwZrKFtb3GeAppq"
38
+ },
39
+ "name": "University Degree",
40
+ "prettyVC": {
41
+ "type": "liquid",
42
+ "orientation": "landscape",
43
+ "size": "a4",
44
+ "proof": "<div style=\"color:rgb(255, 255, 255);font-family:Arial, sans-serif;font-weight:400;text-align:left;font-size:2.5em;overflow-wrap:break-word;width:100%;height:100%;background-color:rgb(255, 255, 255);background-image:url(&quot;data:image/png;base64,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&quot;);background-position:left top;background-size:contain;background-repeat:no-repeat;position:absolute;left:0px;top:0px;z-index:0\"></div><div style=\"display:none\"></div><div style=\"display:none\"></div><div style=\"position:absolute;left:22.375%;top:5.48036%;width:65.592%;opacity:1\"><div style=\"position:relative;user-select:auto;width:auto;height:auto;min-width:20px;min-height:20px;box-sizing:border-box;flex-shrink:0\"><div style=\"color:rgb(0, 0, 0);font-family:Arial, sans-serif;font-weight:400;text-align:left;font-size:4.5em;overflow-wrap:break-word;width:100%;height:100%\"><b>Certificate Title</b></div><div></div></div></div><div style=\"position:absolute;left:22.375%;top:31.6447%;width:75.592%;opacity:1\"><div style=\"position:relative;user-select:auto;width:auto;height:auto;min-width:20px;min-height:20px;box-sizing:border-box;flex-shrink:0\"><div style=\"color:rgb(0, 99, 247);font-family:Verdana, sans-serif;font-weight:400;text-align:left;font-size:5.5em;overflow-wrap:break-word;width:100%;height:100%\"><b>{{subject.name}}</b></div><div></div></div></div><div style=\"position:absolute;left:22.375%;top:22.6286%;width:65.592%;opacity:1\"><div style=\"position:relative;user-select:auto;width:auto;height:auto;min-width:20px;min-height:20px;box-sizing:border-box;flex-shrink:0\"><div style=\"color:rgb(0, 0, 0);font-family:Verdana, sans-serif;font-weight:400;text-align:left;font-size:1.75em;overflow-wrap:break-word;width:100%;height:100%\">Presented to</div><div></div></div></div><div style=\"position:absolute;left:22.375%;top:91.3983%;width:25.012%;opacity:1\"><div style=\"position:relative;user-select:auto;width:auto;height:auto;min-width:20px;min-height:20px;box-sizing:border-box;flex-shrink:0\"><div style=\"color:rgb(150, 150, 150);font-family:Verdana, sans-serif;font-weight:400;text-align:left;font-size:1.75em;overflow-wrap:break-word;width:100%;height:100%\">Issued by: {{issuer.name}}</div><div></div></div></div><div style=\"position:absolute;left:22.375%;top:52.859%;width:65.592%;opacity:1\"><div style=\"position:relative;user-select:auto;width:auto;height:auto;min-width:20px;min-height:20px;box-sizing:border-box;flex-shrink:0\"><div style=\"color:rgb(0, 0, 0);font-family:Verdana, sans-serif;font-weight:400;text-align:left;font-size:1.75em;overflow-wrap:break-word;width:100%;height:100%\">for completing the {{credential.name}}</div><div></div></div></div><div style=\"position:absolute;left:22.375%;top:58.1625%;width:65.592%;opacity:1\"><div style=\"position:relative;user-select:auto;width:auto;height:auto;min-width:20px;min-height:20px;box-sizing:border-box;flex-shrink:0\"><div style=\"color:rgb(0, 0, 0);font-family:Verdana, sans-serif;font-weight:400;text-align:left;font-size:1.75em;overflow-wrap:break-word;width:100%;height:100%\">Issued on {{credential.issuanceDate | date: \"%B %d, %Y\"}}</div><div></div></div></div><div style=\"position:absolute;left:75%;top:64.35%;width:22.5%;height:32.7054%;opacity:1\"><div style=\"position:relative;user-select:auto;width:auto;height:auto;min-width:20px;min-height:20px;box-sizing:border-box;flex-shrink:0\"><div style=\"width:100%;height:100%;background:rgb(255, 255, 255);padding:0.5em\"><img src=\"{{qrImage}}\" alt=\"Scan QR\" style=\"width:100%\" /></div><div></div></div></div>"
45
+ },
46
+ "proof": {
47
+ "@context": [
48
+ {
49
+ "sec": "https://w3id.org/security#",
50
+ "proof": {
51
+ "@id": "sec:proof",
52
+ "@type": "@id",
53
+ "@container": "@graph"
54
+ }
55
+ },
56
+ "https://ld.dock.io/security/bbs/v1"
57
+ ],
58
+ "type": "Bls12381BBS+SignatureDock2022",
59
+ "created": "2023-09-06T19:09:42Z",
60
+ "verificationMethod": "did:dock:5CDpZeS2fAas4Du87f2VyTj1BospmvQ5BZwZrKFtb3GeAppq#keys-2",
61
+ "proofPurpose": "assertionMethod",
62
+ "proofValue": "zYhtvqUBhmVfBNeyRh7SRftvzZxcbNX44wh1sBHM7jpWXCsvwtRU3qshY6MkxZ2gYfWPnFZsXg7wGkGWvuQPfGjWfroAd611Wo7M4ioKVFSxnLQ91oiWEouchyr7GYWUTM1N9amENcfSm5w924X5LqUida"
63
+ }
64
+ }
@@ -0,0 +1,15 @@
1
+ export declare function createRangeProofPresentation(): Promise<boolean>;
2
+ export declare const stringToBytes: (string: string) => Uint8Array;
3
+ /**
4
+ *
5
+ * @returns
6
+ *
7
+ * TODO
8
+ * [x] - get bbs credential for testing
9
+ * [] - generate presentation using the builder
10
+ * [] - verify the presentation
11
+ * [] - use range proofs
12
+ * [] - verify range proofs presentation
13
+ * [] - create logic to convert proof request into builder params
14
+ */
15
+ //# sourceMappingURL=range-proof.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"range-proof.d.ts","sourceRoot":"","sources":["../../../../src/services/credential/range-proof.ts"],"names":[],"mappings":"AAgCA,wBAAsB,4BAA4B,qBAsCjD;AAED,eAAO,MAAM,aAAa,WAAY,MAAM,KAAG,UACA,CAAC;AAEhD;;;;;;;;;;;GAWG"}
@@ -0,0 +1,51 @@
1
+ import { initializeWasm, } from '@docknetwork/crypto-wasm-ts/lib';
2
+ import { credentialService } from './service';
3
+ import credential from './range-proof-credential.json';
4
+ import { dockService } from '../dock';
5
+ import proofRequest from './proof-request.json';
6
+ export async function createRangeProofPresentation() {
7
+ console.log('initialize dock');
8
+ await dockService.init({
9
+ address: 'wss://knox-1.dock.io',
10
+ });
11
+ console.log('initialize wasm');
12
+ await initializeWasm();
13
+ console.log('wasm initialized');
14
+ // const cred = VerifiableCredential.fromJSON(credential);
15
+ // const provingKey = BoundCheckSnarkSetup();
16
+ // const provingKeyBytes: Uint8Array = provingKey.bytes;
17
+ // const base64Data = Buffer.from(provingKeyBytes).toString('base64');
18
+ // fs.writeFileSync('provingKey.data', base64Data);
19
+ // console.log(provingKeyBytes);
20
+ // provingKey.hex = stringToBytes(provingKey.hex);
21
+ const [_credential] = await credentialService.deriveVCFromBBSPresentation({
22
+ proofRequest,
23
+ credentials: [
24
+ {
25
+ credential,
26
+ attributesToReveal: ['id'],
27
+ },
28
+ ],
29
+ });
30
+ console.log(_credential);
31
+ return true;
32
+ }
33
+ export const stringToBytes = (string) => Uint8Array.from(Buffer.from(string, 'utf-8'));
34
+ /**
35
+ *
36
+ * @returns
37
+ *
38
+ * TODO
39
+ * [x] - get bbs credential for testing
40
+ * [] - generate presentation using the builder
41
+ * [] - verify the presentation
42
+ * [] - use range proofs
43
+ * [] - verify range proofs presentation
44
+ * [] - create logic to convert proof request into builder params
45
+ */
46
+ // const snarkProvingKey: LegoProvingKeyUncompressed = provingKey.decompress();
47
+ // const builder = new PresentationBuilder();
48
+ // builder.addCredential(bbsCredential, keypair.pk);
49
+ //
50
+ // console.log(presentation)
51
+ //# sourceMappingURL=range-proof.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"range-proof.js","sourceRoot":"","sources":["../../../../src/services/credential/range-proof.ts"],"names":[],"mappings":"AAKA,OAAO,EAaL,cAAc,GAEf,MAAM,iCAAiC,CAAC;AAIzC,OAAO,EAAC,iBAAiB,EAAC,MAAM,WAAW,CAAC;AAC5C,OAAO,UAAU,MAAM,+BAA+B,CAAC;AACvD,OAAO,EAAC,WAAW,EAAC,MAAM,SAAS,CAAC;AAEpC,OAAO,YAAY,MAAM,sBAAsB,CAAC;AAIhD,MAAM,CAAC,KAAK,UAAU,4BAA4B;IAChD,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;IAC/B,MAAM,WAAW,CAAC,IAAI,CAAC;QACrB,OAAO,EAAE,sBAAsB;KAChC,CAAC,CAAC;IAEH,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;IAC/B,MAAM,cAAc,EAAE,CAAC;IAEvB,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;IAEhC,0DAA0D;IAE1D,6CAA6C;IAE7C,wDAAwD;IAExD,sEAAsE;IAEtE,mDAAmD;IAEnD,gCAAgC;IAGhC,kDAAkD;IAClD,MAAM,CAAC,WAAW,CAAC,GAAG,MAAM,iBAAiB,CAAC,2BAA2B,CAAC;QACxE,YAAY;QACZ,WAAW,EAAE;YACX;gBACE,UAAU;gBACV,kBAAkB,EAAE,CAAC,IAAI,CAAC;aAC3B;SACF;KACF,CAAC,CAAC;IAEH,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;IAEzB,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,MAAc,EAAc,EAAE,CAC1D,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;AAEhD;;;;;;;;;;;GAWG;AAEH,+EAA+E;AAC/E,6CAA6C;AAE7C,oDAAoD;AAEpD,EAAE;AACF,4BAA4B"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=range-proof.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"range-proof.test.d.ts","sourceRoot":"","sources":["../../../../src/services/credential/range-proof.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,8 @@
1
+ import { createRangeProofPresentation } from "./range-proof";
2
+ describe('Test range proofs', () => {
3
+ it('expect presentation to be created', async () => {
4
+ const result = await createRangeProofPresentation();
5
+ expect(result).toBe(true);
6
+ });
7
+ });
8
+ //# sourceMappingURL=range-proof.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"range-proof.test.js","sourceRoot":"","sources":["../../../../src/services/credential/range-proof.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,4BAA4B,EAAC,MAAM,eAAe,CAAC;AAE3D,QAAQ,CAAC,mBAAmB,EAAE,GAAG,EAAE;IACjC,EAAE,CAAC,mCAAmC,EAAE,KAAK,IAAI,EAAE;QACjD,MAAM,MAAM,GAAG,MAAM,4BAA4B,EAAE,CAAC;QACpD,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC5B,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare function rangeProofExample(): Promise<boolean>;
2
+ //# sourceMappingURL=range-proofs-example.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"range-proofs-example.d.ts","sourceRoot":"","sources":["../../../../src/services/credential/range-proofs-example.ts"],"names":[],"mappings":"AA6CA,wBAAsB,iBAAiB,qBAwKtC"}
@@ -0,0 +1,101 @@
1
+ import { BBSSignature, BBSSignatureParams, WitnessEqualityMetaStatement, Witnesses, MetaStatements, QuasiProofSpecG1, MetaStatement, CompositeProofG1, Statements, Witness, Statement, SetupParam, BBSKeypair, } from '@docknetwork/crypto-wasm-ts/lib';
2
+ import { BoundCheckSnarkSetup } from '@docknetwork/crypto-wasm-ts/lib/bound-check';
3
+ import { initializeWasm } from '@docknetwork/crypto-wasm-ts/lib/index';
4
+ const stringToBytes = (string) => Uint8Array.from(Buffer.from(string, 'utf-8'));
5
+ function getRevealedUnrevealed(messages, revealedIndices) {
6
+ const revealedMsgs = new Map();
7
+ const unrevealedMsgs = new Map();
8
+ for (let i = 0; i < messages.length; i++) {
9
+ if (revealedIndices.has(i)) {
10
+ revealedMsgs.set(i, messages[i]);
11
+ }
12
+ else {
13
+ unrevealedMsgs.set(i, messages[i]);
14
+ }
15
+ }
16
+ return [revealedMsgs, unrevealedMsgs];
17
+ }
18
+ export async function rangeProofExample() {
19
+ await initializeWasm();
20
+ const pk = BoundCheckSnarkSetup();
21
+ const snarkProvingKey = pk.decompress();
22
+ const snarkVerifyingKey = pk.getVerifyingKeyUncompressed();
23
+ const earliestIssuance = 642709800000; // Timestamp of the earliest acceptable issuance, used as lower bound
24
+ const latestIssuance = 1588271400000; // Timestamp of the latest acceptable issuance, used as upper bound
25
+ const bornAfter = 642709800000; // Timestamp of the latest acceptable birth date, used as lower bound
26
+ const now = 1620585000000; // Timestamp as of now, i.e proof generation
27
+ const someDistantFuture = 1777746600000; // Timestamp from future
28
+ const attributes = [];
29
+ attributes.push(BBSSignature.encodeMessageForSigning(stringToBytes('John Smith'))); // Name
30
+ attributes.push(BBSSignature.encodeMessageForSigning(stringToBytes('123-456789-0'))); // SSN
31
+ attributes.push(BBSSignature.encodePositiveNumberForSigning(bornAfter + 100000)); // Birth date as no. of milliseconds since epoch
32
+ attributes.push(BBSSignature.encodePositiveNumberForSigning(earliestIssuance + 100000)); // Issuance date as no. of milliseconds since epoch
33
+ attributes.push(BBSSignature.encodePositiveNumberForSigning(now + 2000000)); // Expiration date as no. of milliseconds since epoch
34
+ const messageCount = attributes.length;
35
+ const sigParams = BBSSignatureParams.generate(messageCount);
36
+ const sigKeypair1 = BBSKeypair.generate(sigParams);
37
+ const sigSecretKey = sigKeypair1.secretKey;
38
+ const sigPublicKey = sigKeypair1.publicKey;
39
+ // Signer creates the signature and shares with prover
40
+ const sig = BBSSignature.generate(attributes, sigSecretKey, sigParams, false);
41
+ const proverSetupParams = [];
42
+ proverSetupParams.push(SetupParam.legosnarkProvingKeyUncompressed(snarkProvingKey));
43
+ const revealedIndices = new Set();
44
+ revealedIndices.add(0);
45
+ const [revealedAttrs, unrevealedAttrs] = getRevealedUnrevealed(attributes, revealedIndices);
46
+ const statement1 = Statement.bbsSignature(sigParams, sigPublicKey, revealedAttrs, false);
47
+ const statement2 = Statement.boundCheckProverFromSetupParamRefs(bornAfter, now, 0);
48
+ // For proving issuance date was between `earliestIssuance` and `latestIssuance`
49
+ const statement3 = Statement.boundCheckProverFromSetupParamRefs(earliestIssuance, latestIssuance, 0);
50
+ // For proving expiration date was between `now` and `someDistantFuture`, i.e. its not expired as of now.
51
+ const statement4 = Statement.boundCheckProverFromSetupParamRefs(now, someDistantFuture, 0);
52
+ const proverStatements = new Statements(statement1);
53
+ proverStatements.add(statement2);
54
+ proverStatements.add(statement3);
55
+ proverStatements.add(statement4);
56
+ // For birth date attribute
57
+ const witnessEq1 = new WitnessEqualityMetaStatement();
58
+ witnessEq1.addWitnessRef(0, 2);
59
+ witnessEq1.addWitnessRef(1, 0);
60
+ // For issuance date attribute
61
+ const witnessEq2 = new WitnessEqualityMetaStatement();
62
+ witnessEq2.addWitnessRef(0, 3);
63
+ witnessEq2.addWitnessRef(2, 0);
64
+ // For expiration date attribute
65
+ const witnessEq3 = new WitnessEqualityMetaStatement();
66
+ witnessEq3.addWitnessRef(0, 4);
67
+ witnessEq3.addWitnessRef(3, 0);
68
+ const metaStatements = new MetaStatements();
69
+ metaStatements.add(MetaStatement.witnessEquality(witnessEq1));
70
+ metaStatements.add(MetaStatement.witnessEquality(witnessEq2));
71
+ metaStatements.add(MetaStatement.witnessEquality(witnessEq3));
72
+ const witnesses = new Witnesses();
73
+ witnesses.add(Witness.bbsSignature(sig, unrevealedAttrs, false));
74
+ witnesses.add(Witness.boundCheckLegoGroth16(attributes[2]));
75
+ witnesses.add(Witness.boundCheckLegoGroth16(attributes[3]));
76
+ witnesses.add(Witness.boundCheckLegoGroth16(attributes[4]));
77
+ const proverProofSpec = new QuasiProofSpecG1(proverStatements, metaStatements, proverSetupParams);
78
+ const nonce = stringToBytes('a nonce');
79
+ const proof = CompositeProofG1.generateUsingQuasiProofSpec(proverProofSpec, witnesses, nonce);
80
+ console.log(proof);
81
+ // Verify the proof
82
+ const verifierSetupParams = [];
83
+ verifierSetupParams.push(SetupParam.legosnarkVerifyingKeyUncompressed(snarkVerifyingKey));
84
+ // For verifying birth date was after `bornAfter`
85
+ const statement5 = Statement.boundCheckVerifierFromSetupParamRefs(bornAfter, now, 0);
86
+ // For verifying issuance date was between `earliestIssuance` and `latestIssuance`
87
+ const statement6 = Statement.boundCheckVerifierFromSetupParamRefs(earliestIssuance, latestIssuance, 0);
88
+ // For verifying expiration date was between `now` and `someDistantFuture`, i.e. its not expired as of now.
89
+ const statement7 = Statement.boundCheckVerifierFromSetupParamRefs(now, someDistantFuture, 0);
90
+ const verifierStatements = new Statements();
91
+ verifierStatements.add(statement1);
92
+ verifierStatements.add(statement5);
93
+ verifierStatements.add(statement6);
94
+ verifierStatements.add(statement7);
95
+ const verifierProofSpec = new QuasiProofSpecG1(verifierStatements, metaStatements, verifierSetupParams);
96
+ const result = proof.verifyUsingQuasiProofSpec(verifierProofSpec, nonce);
97
+ console.log(result);
98
+ return true;
99
+ }
100
+ rangeProofExample();
101
+ //# sourceMappingURL=range-proofs-example.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"range-proofs-example.js","sourceRoot":"","sources":["../../../../src/services/credential/range-proofs-example.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,34 @@
1
+ export declare function isBBSPlusCredential(credential: any): any;
2
+ declare class CredentialService {
3
+ constructor();
4
+ rpcMethods: ((params?: {}) => any)[];
5
+ generateCredential(params?: {}): any;
6
+ signCredential(params: any): Promise<any>;
7
+ createPresentation(params: any): Promise<any>;
8
+ verifyCredential(params: any): Promise<any>;
9
+ filterCredentials(params: any): import("@sphereon/pex").SelectResults;
10
+ evaluatePresentation(params: any): import("@sphereon/pex").EvaluationResults;
11
+ isBBSPlusCredential(params: any): any;
12
+ createBBSPresentation(params: any): Promise<any>;
13
+ getAccumulatorId({ credential }: {
14
+ credential: any;
15
+ }): any;
16
+ getAccumulatorData({ credential }: {
17
+ credential: any;
18
+ }): Promise<any>;
19
+ /**
20
+ * Fetch the latest accumulator witness updates for a given credential and membership witness
21
+ * The witness is generated by the issuer when the credential is created and is stored in the wallet when the credential is imported
22
+ *
23
+ * @param param0
24
+ */
25
+ updateMembershipWitness({ credential, membershipWitnessJSON }: {
26
+ credential: any;
27
+ membershipWitnessJSON: any;
28
+ }): Promise<any>;
29
+ deriveVCFromBBSPresentation(params: any): Promise<any>;
30
+ testRangeProof(): Promise<void>;
31
+ }
32
+ export declare const credentialService: CredentialService;
33
+ export {};
34
+ //# sourceMappingURL=service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../../../src/services/credential/service.ts"],"names":[],"mappings":"AAkCA,wBAAgB,mBAAmB,CAAC,UAAU,KAAA,OAM7C;AAED,cAAM,iBAAiB;;IAIrB,UAAU,2BAQR;IACF,kBAAkB,CAAC,MAAM,KAAK;IAkBxB,cAAc,CAAC,MAAM,KAAA;IAerB,kBAAkB,CAAC,MAAM,KAAA;IAsBzB,gBAAgB,CAAC,MAAM,KAAA;IA2B7B,iBAAiB,CAAC,MAAM,KAAA;IAWxB,oBAAoB,CAAC,MAAM,KAAA;IAU3B,mBAAmB,CAAC,MAAM,KAAA;IAKpB,qBAAqB,CAAC,MAAM,KAAA;IAgBlC,gBAAgB,CAAC,EAAE,UAAU,EAAE;;KAAA;IASzB,kBAAkB,CAAC,EAAE,UAAU,EAAE;;KAAA;IAWvC;;;;;OAKG;IACG,uBAAuB,CAAC,EAAE,UAAU,EAAE,qBAAqB,EAAE;;;KAAA;IAuC7D,2BAA2B,CAAC,MAAM,KAAA;IA2DlC,cAAc;CAGrB;AAED,eAAO,MAAM,iBAAiB,mBAA0B,CAAC"}