@aeternity/aepp-sdk 14.0.0 → 14.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (206) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +11 -19
  3. package/dist/aepp-sdk.browser-script.cjs +1 -1
  4. package/dist/aepp-sdk.browser-script.cjs.LICENSE.txt +2 -0
  5. package/dist/aepp-sdk.browser-script.cjs.map +1 -1
  6. package/dist/aepp-sdk.browser.cjs +1 -1
  7. package/dist/aepp-sdk.browser.cjs.map +1 -1
  8. package/dist/aepp-sdk.cjs +10846 -4277
  9. package/dist/aepp-sdk.cjs.map +1 -1
  10. package/es/AeSdkBase.d.ts +10 -1
  11. package/es/AeSdkBase.js +12 -2
  12. package/es/AeSdkBase.js.map +1 -1
  13. package/es/AeSdkMethods.d.ts +1 -1
  14. package/es/AeSdkMethods.js.map +1 -1
  15. package/es/AeSdkWallet.js +1 -1
  16. package/es/AeSdkWallet.js.map +1 -1
  17. package/es/Middleware.d.ts +5 -1
  18. package/es/Middleware.js +7 -2
  19. package/es/Middleware.js.map +1 -1
  20. package/es/MiddlewareSubscriber.d.ts +3 -0
  21. package/es/MiddlewareSubscriber.js +4 -0
  22. package/es/MiddlewareSubscriber.js.map +1 -1
  23. package/es/Node.d.ts +6 -1
  24. package/es/Node.js +28 -4
  25. package/es/Node.js.map +1 -1
  26. package/es/account/Base.d.ts +12 -0
  27. package/es/account/Base.js +1 -0
  28. package/es/account/Base.js.map +1 -1
  29. package/es/account/BaseFactory.d.ts +1 -0
  30. package/es/account/BaseFactory.js +1 -0
  31. package/es/account/BaseFactory.js.map +1 -1
  32. package/es/account/Generalized.d.ts +5 -0
  33. package/es/account/Generalized.js +9 -0
  34. package/es/account/Generalized.js.map +1 -1
  35. package/es/account/Ledger.d.ts +5 -0
  36. package/es/account/Ledger.js +9 -0
  37. package/es/account/Ledger.js.map +1 -1
  38. package/es/account/LedgerFactory.d.ts +2 -0
  39. package/es/account/LedgerFactory.js +10 -4
  40. package/es/account/LedgerFactory.js.map +1 -1
  41. package/es/account/Memory.d.ts +5 -0
  42. package/es/account/Memory.js +14 -5
  43. package/es/account/Memory.js.map +1 -1
  44. package/es/account/Metamask.d.ts +8 -0
  45. package/es/account/Metamask.js +13 -0
  46. package/es/account/Metamask.js.map +1 -1
  47. package/es/account/MetamaskFactory.d.ts +20 -2
  48. package/es/account/MetamaskFactory.js +93 -39
  49. package/es/account/MetamaskFactory.js.map +1 -1
  50. package/es/account/MnemonicFactory.d.ts +12 -2
  51. package/es/account/MnemonicFactory.js +48 -24
  52. package/es/account/MnemonicFactory.js.map +1 -1
  53. package/es/account/Rpc.d.ts +5 -0
  54. package/es/account/Rpc.js +8 -0
  55. package/es/account/Rpc.js.map +1 -1
  56. package/es/aens.d.ts +35 -7
  57. package/es/aens.js +62 -20
  58. package/es/aens.js.map +1 -1
  59. package/es/aepp-wallet-communication/connection/BrowserRuntime.d.ts +1 -1
  60. package/es/aepp-wallet-communication/connection/BrowserRuntime.js.map +1 -1
  61. package/es/apis/middleware/middleware.d.ts +99 -9
  62. package/es/apis/middleware/middleware.js +560 -91
  63. package/es/apis/middleware/middleware.js.map +1 -1
  64. package/es/apis/middleware/models/index.d.ts +1267 -1582
  65. package/es/apis/middleware/models/index.js +1 -1363
  66. package/es/apis/middleware/models/index.js.map +1 -1
  67. package/es/apis/middleware/models/mappers.d.ts +126 -56
  68. package/es/apis/middleware/models/mappers.js +6250 -2989
  69. package/es/apis/middleware/models/mappers.js.map +1 -1
  70. package/es/apis/middleware/models/parameters.d.ts +54 -33
  71. package/es/apis/middleware/models/parameters.js +389 -134
  72. package/es/apis/middleware/models/parameters.js.map +1 -1
  73. package/es/apis/node/models/index.d.ts +60 -15
  74. package/es/apis/node/models/index.js.map +1 -1
  75. package/es/apis/node/models/mappers.d.ts +3 -0
  76. package/es/apis/node/models/mappers.js +130 -2
  77. package/es/apis/node/models/mappers.js.map +1 -1
  78. package/es/apis/node/node.d.ts +13 -1
  79. package/es/apis/node/node.js +54 -0
  80. package/es/apis/node/node.js.map +1 -1
  81. package/es/chain.d.ts +19 -6
  82. package/es/chain.js +30 -24
  83. package/es/chain.js.map +1 -1
  84. package/es/channel/Contract.d.ts +6 -3
  85. package/es/channel/Contract.js +5 -2
  86. package/es/channel/Contract.js.map +1 -1
  87. package/es/channel/Spend.d.ts +1 -1
  88. package/es/channel/Spend.js.map +1 -1
  89. package/es/channel/handlers.js +1 -2
  90. package/es/channel/handlers.js.map +1 -1
  91. package/es/channel/internal.d.ts +1 -1
  92. package/es/channel/internal.js +2 -2
  93. package/es/channel/internal.js.map +1 -1
  94. package/es/contract/Contract.d.ts +13 -2
  95. package/es/contract/Contract.js +22 -12
  96. package/es/contract/Contract.js.map +1 -1
  97. package/es/contract/compiler/Base.d.ts +1 -0
  98. package/es/contract/compiler/Base.js +1 -0
  99. package/es/contract/compiler/Base.js.map +1 -1
  100. package/es/contract/compiler/Cli.d.ts +2 -1
  101. package/es/contract/compiler/Cli.js +17 -11
  102. package/es/contract/compiler/Cli.js.map +1 -1
  103. package/es/contract/compiler/Http.d.ts +2 -1
  104. package/es/contract/compiler/Http.js +3 -2
  105. package/es/contract/compiler/Http.js.map +1 -1
  106. package/es/contract/compiler/getFileSystem.d.ts +1 -0
  107. package/es/contract/compiler/getFileSystem.js +1 -0
  108. package/es/contract/compiler/getFileSystem.js.map +1 -1
  109. package/es/contract/ga.d.ts +3 -3
  110. package/es/contract/ga.js +3 -3
  111. package/es/contract/ga.js.map +1 -1
  112. package/es/index-browser.d.ts +32 -2
  113. package/es/index-browser.js +32 -2
  114. package/es/index-browser.js.map +1 -1
  115. package/es/oracle/Oracle.d.ts +10 -1
  116. package/es/oracle/Oracle.js +16 -6
  117. package/es/oracle/Oracle.js.map +1 -1
  118. package/es/oracle/OracleBase.d.ts +15 -2
  119. package/es/oracle/OracleBase.js +23 -1
  120. package/es/oracle/OracleBase.js.map +1 -1
  121. package/es/oracle/OracleClient.d.ts +3 -0
  122. package/es/oracle/OracleClient.js +6 -1
  123. package/es/oracle/OracleClient.js.map +1 -1
  124. package/es/spend.js +1 -1
  125. package/es/spend.js.map +1 -1
  126. package/es/tx/builder/common.js +6 -3
  127. package/es/tx/builder/common.js.map +1 -1
  128. package/es/tx/builder/constants.d.ts +53 -3
  129. package/es/tx/builder/constants.js +62 -12
  130. package/es/tx/builder/constants.js.map +1 -1
  131. package/es/tx/builder/delegation/schema.js +15 -0
  132. package/es/tx/builder/delegation/schema.js.map +1 -1
  133. package/es/tx/builder/entry/constants.d.ts +4 -1
  134. package/es/tx/builder/entry/constants.js +10 -1
  135. package/es/tx/builder/entry/constants.js.map +1 -1
  136. package/es/tx/builder/entry/index.js +1 -2
  137. package/es/tx/builder/entry/index.js.map +1 -1
  138. package/es/tx/builder/field-types/ct-version.js +1 -2
  139. package/es/tx/builder/field-types/ct-version.js.map +1 -1
  140. package/es/tx/builder/field-types/fee.d.ts +1 -1
  141. package/es/tx/builder/field-types/fee.js +4 -4
  142. package/es/tx/builder/field-types/fee.js.map +1 -1
  143. package/es/tx/builder/field-types/gas-price.d.ts +3 -0
  144. package/es/tx/builder/field-types/gas-price.js +1 -1
  145. package/es/tx/builder/field-types/gas-price.js.map +1 -1
  146. package/es/tx/builder/field-types/name-fee.js +1 -1
  147. package/es/tx/builder/field-types/name-fee.js.map +1 -1
  148. package/es/tx/builder/field-types/name-id.js +2 -2
  149. package/es/tx/builder/field-types/name-id.js.map +1 -1
  150. package/es/tx/builder/field-types/nonce.d.ts +1 -1
  151. package/es/tx/builder/field-types/nonce.js.map +1 -1
  152. package/es/tx/builder/field-types/pointers.js +3 -3
  153. package/es/tx/builder/field-types/pointers.js.map +1 -1
  154. package/es/tx/builder/field-types/ttl.d.ts +1 -2
  155. package/es/tx/builder/field-types/ttl.js +7 -5
  156. package/es/tx/builder/field-types/ttl.js.map +1 -1
  157. package/es/tx/builder/helpers.d.ts +18 -12
  158. package/es/tx/builder/helpers.js +25 -17
  159. package/es/tx/builder/helpers.js.map +1 -1
  160. package/es/tx/builder/schema.d.ts +50 -70
  161. package/es/tx/builder/schema.generated.d.ts +12 -12
  162. package/es/tx/builder/schema.generated.js.map +1 -1
  163. package/es/tx/builder/schema.js +5 -3
  164. package/es/tx/builder/schema.js.map +1 -1
  165. package/es/tx/execution-cost.d.ts +3 -0
  166. package/es/tx/execution-cost.js +7 -4
  167. package/es/tx/execution-cost.js.map +1 -1
  168. package/es/tx/transaction-signer.d.ts +1 -0
  169. package/es/tx/transaction-signer.js +1 -0
  170. package/es/tx/transaction-signer.js.map +1 -1
  171. package/es/tx/validator.js +4 -3
  172. package/es/tx/validator.js.map +1 -1
  173. package/es/utils/MiddlewarePage.d.ts +4 -3
  174. package/es/utils/MiddlewarePage.js.map +1 -1
  175. package/es/utils/amount-formatter.d.ts +15 -1
  176. package/es/utils/amount-formatter.js +17 -1
  177. package/es/utils/amount-formatter.js.map +1 -1
  178. package/es/utils/autorest.d.ts +1 -1
  179. package/es/utils/autorest.js +10 -4
  180. package/es/utils/autorest.js.map +1 -1
  181. package/es/utils/bignumber.d.ts +1 -1
  182. package/es/utils/bignumber.js +1 -1
  183. package/es/utils/bignumber.js.map +1 -1
  184. package/es/utils/bytes.d.ts +3 -1
  185. package/es/utils/bytes.js +3 -1
  186. package/es/utils/bytes.js.map +1 -1
  187. package/es/utils/crypto.d.ts +48 -15
  188. package/es/utils/crypto.js +80 -29
  189. package/es/utils/crypto.js.map +1 -1
  190. package/es/utils/encoder-types.d.ts +1 -1
  191. package/es/utils/encoder-types.js +1 -1
  192. package/es/utils/encoder-types.js.map +1 -1
  193. package/es/utils/encoder.d.ts +2 -0
  194. package/es/utils/encoder.js +2 -0
  195. package/es/utils/encoder.js.map +1 -1
  196. package/es/utils/errors.d.ts +2 -2
  197. package/es/utils/errors.js +2 -2
  198. package/es/utils/errors.js.map +1 -1
  199. package/es/utils/json-big.js +1 -1
  200. package/es/utils/json-big.js.map +1 -1
  201. package/es/utils/jwt.js +3 -3
  202. package/es/utils/jwt.js.map +1 -1
  203. package/es/utils/typed-data.d.ts +5 -0
  204. package/es/utils/typed-data.js +6 -0
  205. package/es/utils/typed-data.js.map +1 -1
  206. package/package.json +51 -52
@@ -1 +1 @@
1
- {"version":3,"file":"jwt.js","names":["canonicalize","Encoding","decode","encode","verify","ArgumentError","InvalidSignatureError","toBase64Url","data","_Buffer","from","toString","replaceAll","replace","fromBase64Url","objectToBase64Url","_canonicalize","header","signJwt","originalPayload","account","payload","sub_jwk","kty","crv","x","address","undefined","body","signature","sign","unpackJwt","jwt","_payload$sub_jwk","components","split","length","h","payloadEncoded","JSON","parse","jwk","signer","AccountAddress","isJwt","maybeJwt","error","ensureJwt","verifyJwt"],"sources":["../../src/utils/jwt.ts"],"sourcesContent":["import canonicalize from 'canonicalize';\nimport AccountBase from '../account/Base.js';\nimport { Encoded, Encoding, decode, encode } from './encoder.js';\nimport { verify } from './crypto.js';\nimport { ArgumentError, InvalidSignatureError } from './errors.js';\n\n// TODO: use Buffer.from(data, 'base64url') after solving https://github.com/feross/buffer/issues/309\nconst toBase64Url = (data: Buffer | Uint8Array | string): string =>\n Buffer.from(data).toString('base64').replaceAll('/', '_').replaceAll('+', '-').replace(/=+$/, '');\n\nconst fromBase64Url = (data: string): Buffer =>\n Buffer.from(data.replaceAll('_', '/').replaceAll('-', '+'), 'base64');\n\nconst objectToBase64Url = (data: any): string => toBase64Url(canonicalize(data) ?? '');\n\nconst header = 'eyJhbGciOiJFZERTQSIsInR5cCI6IkpXVCJ9'; // objectToBase64Url({ alg: 'EdDSA', typ: 'JWT' })\n\n/**\n * JWT including specific header\n * @category JWT\n */\nexport type Jwt = `${typeof header}.${string}.${string}`;\n\n/**\n * Generate a signed JWT\n * Provide `\"sub_jwk\": undefined` in payload to omit signer public key added by default.\n * @param originalPayload - Payload to sign\n * @param account - Account to sign by\n * @category JWT\n */\nexport async function signJwt(originalPayload: any, account: AccountBase): Promise<Jwt> {\n const payload = { ...originalPayload };\n if (!('sub_jwk' in payload)) {\n payload.sub_jwk = {\n kty: 'OKP',\n crv: 'Ed25519',\n x: toBase64Url(decode(account.address)),\n };\n }\n if (payload.sub_jwk === undefined) delete payload.sub_jwk;\n const body = `${header}.${objectToBase64Url(payload)}` as const;\n const signature = await account.sign(body);\n return `${body}.${toBase64Url(signature)}`;\n}\n\n/**\n * Unpack JWT. It will check signature if address or \"sub_jwk\" provided.\n * @param jwt - JWT to unpack\n * @param address - Address to check signature\n * @category JWT\n */\nexport function unpackJwt(\n jwt: Jwt,\n address?: Encoded.AccountAddress,\n): {\n /**\n * JWT payload as object\n */\n payload: any;\n /**\n * Undefined returned in case signature is not checked\n */\n signer: Encoded.AccountAddress | undefined;\n} {\n const components = jwt.split('.');\n if (components.length !== 3)\n throw new ArgumentError('JWT components count', 3, components.length);\n const [h, payloadEncoded, signature] = components;\n if (h !== header) throw new ArgumentError('JWT header', header, h);\n const payload = JSON.parse(fromBase64Url(payloadEncoded).toString());\n const jwk = payload.sub_jwk ?? {};\n const signer =\n jwk.x == null || jwk.kty !== 'OKP' || jwk.crv !== 'Ed25519'\n ? address\n : encode(fromBase64Url(jwk.x), Encoding.AccountAddress);\n if (address != null && signer !== address) {\n throw new ArgumentError('address', `${signer} (\"sub_jwk\")`, address);\n }\n if (\n signer != null &&\n !verify(Buffer.from(`${h}.${payloadEncoded}`), fromBase64Url(signature), signer)\n ) {\n throw new InvalidSignatureError(`JWT is not signed by ${signer}`);\n }\n return { payload, signer };\n}\n\n/**\n * Check is string a JWT or not. Use to validate the user input.\n * @param maybeJwt - A string to check\n * @returns True if argument is a JWT\n * @category JWT\n */\nexport function isJwt(maybeJwt: string): maybeJwt is Jwt {\n try {\n unpackJwt(maybeJwt as Jwt);\n return true;\n } catch (error) {\n return false;\n }\n}\n\n/**\n * Throws an error if argument is not JWT. Use to ensure that a value is JWT.\n * @param maybeJwt - A string to check\n * @category JWT\n */\nexport function ensureJwt(maybeJwt: string): asserts maybeJwt is Jwt {\n unpackJwt(maybeJwt as Jwt);\n}\n\n/**\n * Check is JWT signed by address from arguments or \"sub_jwk\"\n * @param jwt - JWT to check\n * @param address - Address to check signature\n * @category JWT\n */\nexport function verifyJwt(jwt: Jwt, address?: Encoded.AccountAddress): boolean {\n try {\n const { signer } = unpackJwt(jwt, address);\n return signer != null;\n } catch (error) {\n return false;\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"jwt.js","names":["canonicalize","Encoding","decode","encode","verifySignature","ArgumentError","InvalidSignatureError","toBase64Url","data","_Buffer","from","toString","replaceAll","replace","fromBase64Url","objectToBase64Url","_canonicalize","header","signJwt","originalPayload","account","payload","sub_jwk","kty","crv","x","address","undefined","body","signature","unsafeSign","unpackJwt","jwt","_payload$sub_jwk","components","split","length","h","payloadEncoded","JSON","parse","jwk","signer","AccountAddress","isJwt","maybeJwt","error","ensureJwt","verifyJwt"],"sources":["../../src/utils/jwt.ts"],"sourcesContent":["import canonicalize from 'canonicalize';\nimport AccountBase from '../account/Base.js';\nimport { Encoded, Encoding, decode, encode } from './encoder.js';\nimport { verifySignature } from './crypto.js';\nimport { ArgumentError, InvalidSignatureError } from './errors.js';\n\n// TODO: use Buffer.from(data, 'base64url') after solving https://github.com/feross/buffer/issues/309\nconst toBase64Url = (data: Buffer | Uint8Array | string): string =>\n Buffer.from(data).toString('base64').replaceAll('/', '_').replaceAll('+', '-').replace(/=+$/, '');\n\nconst fromBase64Url = (data: string): Buffer =>\n Buffer.from(data.replaceAll('_', '/').replaceAll('-', '+'), 'base64');\n\nconst objectToBase64Url = (data: any): string => toBase64Url(canonicalize(data) ?? '');\n\nconst header = 'eyJhbGciOiJFZERTQSIsInR5cCI6IkpXVCJ9'; // objectToBase64Url({ alg: 'EdDSA', typ: 'JWT' })\n\n/**\n * JWT including specific header\n * @category JWT\n */\nexport type Jwt = `${typeof header}.${string}.${string}`;\n\n/**\n * Generate a signed JWT\n * Provide `\"sub_jwk\": undefined` in payload to omit signer public key added by default.\n * @param originalPayload - Payload to sign\n * @param account - Account to sign by\n * @category JWT\n */\nexport async function signJwt(originalPayload: any, account: AccountBase): Promise<Jwt> {\n const payload = { ...originalPayload };\n if (!('sub_jwk' in payload)) {\n payload.sub_jwk = {\n kty: 'OKP',\n crv: 'Ed25519',\n x: toBase64Url(decode(account.address)),\n };\n }\n if (payload.sub_jwk === undefined) delete payload.sub_jwk;\n const body = `${header}.${objectToBase64Url(payload)}` as const;\n const signature = await account.unsafeSign(body);\n return `${body}.${toBase64Url(signature)}`;\n}\n\n/**\n * Unpack JWT. It will check signature if address or \"sub_jwk\" provided.\n * @param jwt - JWT to unpack\n * @param address - Address to check signature\n * @category JWT\n */\nexport function unpackJwt(\n jwt: Jwt,\n address?: Encoded.AccountAddress,\n): {\n /**\n * JWT payload as object\n */\n payload: any;\n /**\n * Undefined returned in case signature is not checked\n */\n signer: Encoded.AccountAddress | undefined;\n} {\n const components = jwt.split('.');\n if (components.length !== 3)\n throw new ArgumentError('JWT components count', 3, components.length);\n const [h, payloadEncoded, signature] = components;\n if (h !== header) throw new ArgumentError('JWT header', header, h);\n const payload = JSON.parse(fromBase64Url(payloadEncoded).toString());\n const jwk = payload.sub_jwk ?? {};\n const signer =\n jwk.x == null || jwk.kty !== 'OKP' || jwk.crv !== 'Ed25519'\n ? address\n : encode(fromBase64Url(jwk.x), Encoding.AccountAddress);\n if (address != null && signer !== address) {\n throw new ArgumentError('address', `${signer} (\"sub_jwk\")`, address);\n }\n if (\n signer != null &&\n !verifySignature(Buffer.from(`${h}.${payloadEncoded}`), fromBase64Url(signature), signer)\n ) {\n throw new InvalidSignatureError(`JWT is not signed by ${signer}`);\n }\n return { payload, signer };\n}\n\n/**\n * Check is string a JWT or not. Use to validate the user input.\n * @param maybeJwt - A string to check\n * @returns True if argument is a JWT\n * @category JWT\n */\nexport function isJwt(maybeJwt: string): maybeJwt is Jwt {\n try {\n unpackJwt(maybeJwt as Jwt);\n return true;\n } catch (error) {\n return false;\n }\n}\n\n/**\n * Throws an error if argument is not JWT. Use to ensure that a value is JWT.\n * @param maybeJwt - A string to check\n * @category JWT\n */\nexport function ensureJwt(maybeJwt: string): asserts maybeJwt is Jwt {\n unpackJwt(maybeJwt as Jwt);\n}\n\n/**\n * Check is JWT signed by address from arguments or \"sub_jwk\"\n * @param jwt - JWT to check\n * @param address - Address to check signature\n * @category JWT\n */\nexport function verifyJwt(jwt: Jwt, address?: Encoded.AccountAddress): boolean {\n try {\n const { signer } = unpackJwt(jwt, address);\n return signer != null;\n } catch (error) {\n return false;\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1,6 +1,7 @@
1
1
  import { Encoded } from './encoder.js';
2
2
  /**
3
3
  * Hashes arbitrary object, can be used to inline the aci hash to contract source code
4
+ * @category typed data signing
4
5
  */
5
6
  export declare function hashJson(data: unknown): Buffer;
6
7
  export type AciValue = 'void' | 'unit' | 'int' | 'bool' | 'string' | 'bits' | 'hash' | 'signature' | 'address' | 'contract_pubkey' | 'Chain.ttl' | 'Chain.ga_meta_tx' | 'Chain.paying_for_tx' | 'Chain.base_tx' | 'AENS.pointee' | 'AENS.name' | 'MCL_BLS12_381.fr' | 'MCL_BLS12_381.fp' | {
@@ -37,6 +38,10 @@ export interface Domain {
37
38
  }
38
39
  /**
39
40
  * Hashes domain object, can be used to inline domain hash to contract source code
41
+ * @category typed data signing
40
42
  */
41
43
  export declare function hashDomain(domain: Domain): Buffer;
44
+ /**
45
+ * @category typed data signing
46
+ */
42
47
  export declare function hashTypedData(data: Encoded.ContractBytearray, aci: AciValue, domain: Domain): Buffer;
@@ -6,6 +6,7 @@ import { concatBuffers } from './other.js';
6
6
 
7
7
  /**
8
8
  * Hashes arbitrary object, can be used to inline the aci hash to contract source code
9
+ * @category typed data signing
9
10
  */
10
11
  export function hashJson(data) {
11
12
  var _canonicalize;
@@ -17,6 +18,7 @@ export function hashJson(data) {
17
18
 
18
19
  /**
19
20
  * Hashes domain object, can be used to inline domain hash to contract source code
21
+ * @category typed data signing
20
22
  */
21
23
  export function hashDomain(domain) {
22
24
  const domainAci = {
@@ -46,6 +48,10 @@ export function hashDomain(domain) {
46
48
  const fateValue = new ContractByteArrayEncoder().encodeWithType(domain, domainType);
47
49
  return hash(decode(fateValue));
48
50
  }
51
+
52
+ /**
53
+ * @category typed data signing
54
+ */
49
55
  export function hashTypedData(data, aci, domain) {
50
56
  return hash(concatBuffers([messagePrefixLength, new Uint8Array([0]), hashDomain(domain), hashJson(aci), hash(decode(data))]));
51
57
  }
@@ -1 +1 @@
1
- {"version":3,"file":"typed-data.js","names":["TypeResolver","ContractByteArrayEncoder","canonicalize","decode","hash","messagePrefixLength","concatBuffers","hashJson","data","_canonicalize","hashDomain","domain","domainAci","record","name","type","option","domainType","resolveType","fateValue","encodeWithType","hashTypedData","aci","Uint8Array"],"sources":["../../src/utils/typed-data.ts"],"sourcesContent":["import { TypeResolver, ContractByteArrayEncoder } from '@aeternity/aepp-calldata';\nimport canonicalize from 'canonicalize';\nimport { Encoded, decode } from './encoder.js';\nimport { hash, messagePrefixLength } from './crypto.js';\nimport { concatBuffers } from './other.js';\n\n/**\n * Hashes arbitrary object, can be used to inline the aci hash to contract source code\n */\nexport function hashJson(data: unknown): Buffer {\n return hash(canonicalize(data) ?? '');\n}\n\n// TODO: move this type to calldata library https://github.com/aeternity/aepp-calldata-js/issues/215\n// based on https://github.com/aeternity/aepp-calldata-js/blob/82b5a98f9b308482627da8d7484d213e9cf87151/src/AciTypeResolver.js#L129\nexport type AciValue =\n | 'void'\n | 'unit'\n | 'int'\n | 'bool'\n | 'string'\n | 'bits'\n | 'hash'\n | 'signature'\n | 'address'\n | 'contract_pubkey'\n | 'Chain.ttl'\n | 'Chain.ga_meta_tx'\n | 'Chain.paying_for_tx'\n | 'Chain.base_tx'\n | 'AENS.pointee'\n | 'AENS.name'\n | 'MCL_BLS12_381.fr'\n | 'MCL_BLS12_381.fp'\n | { 'Set.set': readonly [AciValue] }\n | { bytes: number }\n | { list: readonly [AciValue] }\n | { map: readonly [AciValue, AciValue] }\n | { tuple: readonly AciValue[] }\n | { record: ReadonlyArray<{ name: string; type: AciValue }> }\n | { variant: ReadonlyArray<{ [key: string]: readonly AciValue[] }> }\n | { option: readonly [AciValue] }\n | { oracle: readonly [AciValue, AciValue] }\n | { oracle_query: readonly [AciValue, AciValue] };\n\nexport interface Domain {\n name?: string;\n version?: number;\n networkId?: string;\n contractAddress?: Encoded.ContractAddress;\n}\n\n/**\n * Hashes domain object, can be used to inline domain hash to contract source code\n */\nexport function hashDomain(domain: Domain): Buffer {\n const domainAci = {\n record: [\n {\n name: 'name',\n type: { option: ['string'] },\n },\n {\n name: 'version',\n type: { option: ['int'] },\n },\n {\n name: 'networkId',\n type: { option: ['string'] },\n },\n {\n name: 'contractAddress',\n type: { option: ['contract_pubkey'] },\n },\n ],\n } as const;\n const domainType = new TypeResolver().resolveType(domainAci, {});\n const fateValue = new ContractByteArrayEncoder().encodeWithType(domain, domainType);\n return hash(decode(fateValue));\n}\n\nexport function hashTypedData(\n data: Encoded.ContractBytearray,\n aci: AciValue,\n domain: Domain,\n): Buffer {\n return hash(\n concatBuffers([\n messagePrefixLength,\n new Uint8Array([0]),\n hashDomain(domain),\n hashJson(aci),\n hash(decode(data)),\n ]),\n );\n}\n"],"mappings":"AAAA,SAASA,YAAY,EAAEC,wBAAwB,QAAQ,0BAA0B;AACjF,OAAOC,YAAY,MAAM,cAAc;AACvC,SAAkBC,MAAM,QAAQ,cAAc;AAC9C,SAASC,IAAI,EAAEC,mBAAmB,QAAQ,aAAa;AACvD,SAASC,aAAa,QAAQ,YAAY;;AAE1C;AACA;AACA;AACA,OAAO,SAASC,QAAQA,CAACC,IAAa,EAAU;EAAA,IAAAC,aAAA;EAC9C,OAAOL,IAAI,EAAAK,aAAA,GAACP,YAAY,CAACM,IAAI,CAAC,cAAAC,aAAA,cAAAA,aAAA,GAAI,EAAE,CAAC;AACvC;;AAEA;AACA;;AAsCA;AACA;AACA;AACA,OAAO,SAASC,UAAUA,CAACC,MAAc,EAAU;EACjD,MAAMC,SAAS,GAAG;IAChBC,MAAM,EAAE,CACN;MACEC,IAAI,EAAE,MAAM;MACZC,IAAI,EAAE;QAAEC,MAAM,EAAE,CAAC,QAAQ;MAAE;IAC7B,CAAC,EACD;MACEF,IAAI,EAAE,SAAS;MACfC,IAAI,EAAE;QAAEC,MAAM,EAAE,CAAC,KAAK;MAAE;IAC1B,CAAC,EACD;MACEF,IAAI,EAAE,WAAW;MACjBC,IAAI,EAAE;QAAEC,MAAM,EAAE,CAAC,QAAQ;MAAE;IAC7B,CAAC,EACD;MACEF,IAAI,EAAE,iBAAiB;MACvBC,IAAI,EAAE;QAAEC,MAAM,EAAE,CAAC,iBAAiB;MAAE;IACtC,CAAC;EAEL,CAAU;EACV,MAAMC,UAAU,GAAG,IAAIjB,YAAY,CAAC,CAAC,CAACkB,WAAW,CAACN,SAAS,EAAE,CAAC,CAAC,CAAC;EAChE,MAAMO,SAAS,GAAG,IAAIlB,wBAAwB,CAAC,CAAC,CAACmB,cAAc,CAACT,MAAM,EAAEM,UAAU,CAAC;EACnF,OAAOb,IAAI,CAACD,MAAM,CAACgB,SAAS,CAAC,CAAC;AAChC;AAEA,OAAO,SAASE,aAAaA,CAC3Bb,IAA+B,EAC/Bc,GAAa,EACbX,MAAc,EACN;EACR,OAAOP,IAAI,CACTE,aAAa,CAAC,CACZD,mBAAmB,EACnB,IAAIkB,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,EACnBb,UAAU,CAACC,MAAM,CAAC,EAClBJ,QAAQ,CAACe,GAAG,CAAC,EACblB,IAAI,CAACD,MAAM,CAACK,IAAI,CAAC,CAAC,CACnB,CACH,CAAC;AACH","ignoreList":[]}
1
+ {"version":3,"file":"typed-data.js","names":["TypeResolver","ContractByteArrayEncoder","canonicalize","decode","hash","messagePrefixLength","concatBuffers","hashJson","data","_canonicalize","hashDomain","domain","domainAci","record","name","type","option","domainType","resolveType","fateValue","encodeWithType","hashTypedData","aci","Uint8Array"],"sources":["../../src/utils/typed-data.ts"],"sourcesContent":["import { TypeResolver, ContractByteArrayEncoder } from '@aeternity/aepp-calldata';\nimport canonicalize from 'canonicalize';\nimport { Encoded, decode } from './encoder.js';\nimport { hash, messagePrefixLength } from './crypto.js';\nimport { concatBuffers } from './other.js';\n\n/**\n * Hashes arbitrary object, can be used to inline the aci hash to contract source code\n * @category typed data signing\n */\nexport function hashJson(data: unknown): Buffer {\n return hash(canonicalize(data) ?? '');\n}\n\n// TODO: move this type to calldata library https://github.com/aeternity/aepp-calldata-js/issues/215\n// based on https://github.com/aeternity/aepp-calldata-js/blob/82b5a98f9b308482627da8d7484d213e9cf87151/src/AciTypeResolver.js#L129\nexport type AciValue =\n | 'void'\n | 'unit'\n | 'int'\n | 'bool'\n | 'string'\n | 'bits'\n | 'hash'\n | 'signature'\n | 'address'\n | 'contract_pubkey'\n | 'Chain.ttl'\n | 'Chain.ga_meta_tx'\n | 'Chain.paying_for_tx'\n | 'Chain.base_tx'\n | 'AENS.pointee'\n | 'AENS.name'\n | 'MCL_BLS12_381.fr'\n | 'MCL_BLS12_381.fp'\n | { 'Set.set': readonly [AciValue] }\n | { bytes: number }\n | { list: readonly [AciValue] }\n | { map: readonly [AciValue, AciValue] }\n | { tuple: readonly AciValue[] }\n | { record: ReadonlyArray<{ name: string; type: AciValue }> }\n | { variant: ReadonlyArray<{ [key: string]: readonly AciValue[] }> }\n | { option: readonly [AciValue] }\n | { oracle: readonly [AciValue, AciValue] }\n | { oracle_query: readonly [AciValue, AciValue] };\n\nexport interface Domain {\n name?: string;\n version?: number;\n networkId?: string;\n contractAddress?: Encoded.ContractAddress;\n}\n\n/**\n * Hashes domain object, can be used to inline domain hash to contract source code\n * @category typed data signing\n */\nexport function hashDomain(domain: Domain): Buffer {\n const domainAci = {\n record: [\n {\n name: 'name',\n type: { option: ['string'] },\n },\n {\n name: 'version',\n type: { option: ['int'] },\n },\n {\n name: 'networkId',\n type: { option: ['string'] },\n },\n {\n name: 'contractAddress',\n type: { option: ['contract_pubkey'] },\n },\n ],\n } as const;\n const domainType = new TypeResolver().resolveType(domainAci, {});\n const fateValue = new ContractByteArrayEncoder().encodeWithType(domain, domainType);\n return hash(decode(fateValue));\n}\n\n/**\n * @category typed data signing\n */\nexport function hashTypedData(\n data: Encoded.ContractBytearray,\n aci: AciValue,\n domain: Domain,\n): Buffer {\n return hash(\n concatBuffers([\n messagePrefixLength,\n new Uint8Array([0]),\n hashDomain(domain),\n hashJson(aci),\n hash(decode(data)),\n ]),\n );\n}\n"],"mappings":"AAAA,SAASA,YAAY,EAAEC,wBAAwB,QAAQ,0BAA0B;AACjF,OAAOC,YAAY,MAAM,cAAc;AACvC,SAAkBC,MAAM,QAAQ,cAAc;AAC9C,SAASC,IAAI,EAAEC,mBAAmB,QAAQ,aAAa;AACvD,SAASC,aAAa,QAAQ,YAAY;;AAE1C;AACA;AACA;AACA;AACA,OAAO,SAASC,QAAQA,CAACC,IAAa,EAAU;EAAA,IAAAC,aAAA;EAC9C,OAAOL,IAAI,EAAAK,aAAA,GAACP,YAAY,CAACM,IAAI,CAAC,cAAAC,aAAA,cAAAA,aAAA,GAAI,EAAE,CAAC;AACvC;;AAEA;AACA;;AAsCA;AACA;AACA;AACA;AACA,OAAO,SAASC,UAAUA,CAACC,MAAc,EAAU;EACjD,MAAMC,SAAS,GAAG;IAChBC,MAAM,EAAE,CACN;MACEC,IAAI,EAAE,MAAM;MACZC,IAAI,EAAE;QAAEC,MAAM,EAAE,CAAC,QAAQ;MAAE;IAC7B,CAAC,EACD;MACEF,IAAI,EAAE,SAAS;MACfC,IAAI,EAAE;QAAEC,MAAM,EAAE,CAAC,KAAK;MAAE;IAC1B,CAAC,EACD;MACEF,IAAI,EAAE,WAAW;MACjBC,IAAI,EAAE;QAAEC,MAAM,EAAE,CAAC,QAAQ;MAAE;IAC7B,CAAC,EACD;MACEF,IAAI,EAAE,iBAAiB;MACvBC,IAAI,EAAE;QAAEC,MAAM,EAAE,CAAC,iBAAiB;MAAE;IACtC,CAAC;EAEL,CAAU;EACV,MAAMC,UAAU,GAAG,IAAIjB,YAAY,CAAC,CAAC,CAACkB,WAAW,CAACN,SAAS,EAAE,CAAC,CAAC,CAAC;EAChE,MAAMO,SAAS,GAAG,IAAIlB,wBAAwB,CAAC,CAAC,CAACmB,cAAc,CAACT,MAAM,EAAEM,UAAU,CAAC;EACnF,OAAOb,IAAI,CAACD,MAAM,CAACgB,SAAS,CAAC,CAAC;AAChC;;AAEA;AACA;AACA;AACA,OAAO,SAASE,aAAaA,CAC3Bb,IAA+B,EAC/Bc,GAAa,EACbX,MAAc,EACN;EACR,OAAOP,IAAI,CACTE,aAAa,CAAC,CACZD,mBAAmB,EACnB,IAAIkB,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,EACnBb,UAAU,CAACC,MAAM,CAAC,EAClBJ,QAAQ,CAACe,GAAG,CAAC,EACblB,IAAI,CAACD,MAAM,CAACK,IAAI,CAAC,CAAC,CACnB,CACH,CAAC;AACH","ignoreList":[]}
package/package.json CHANGED
@@ -1,7 +1,8 @@
1
1
  {
2
2
  "name": "@aeternity/aepp-sdk",
3
- "version": "14.0.0",
3
+ "version": "14.1.1",
4
4
  "description": "SDK for the æternity blockchain",
5
+ "homepage": "https://sdk.aeternity.io/",
5
6
  "main": "dist/aepp-sdk.cjs",
6
7
  "types": "es/index.d.ts",
7
8
  "module": "es/index.js",
@@ -23,22 +24,21 @@
23
24
  "sideEffects": false,
24
25
  "scripts": {
25
26
  "build:assets": "node tooling/fetch-aesophia-cli.js",
26
- "build:types": "tsc",
27
+ "build:types": "tsc -p tsconfig.src.json",
27
28
  "build:dist": "webpack",
28
29
  "build:es": "babel src --config-file ./babel.esm.config.js --out-dir es --extensions .ts --source-maps true",
29
30
  "build:api:node": "autorest tooling/autorest/node.yaml && node tooling/autorest/postprocessing.js node",
30
31
  "build:api:compiler": "node tooling/autorest/compiler-prepare.js && autorest tooling/autorest/compiler.yaml && node tooling/autorest/postprocessing.js compiler",
31
- "rem:build:api:middleware": "node tooling/autorest/middleware-prepare.js",
32
- "build:api:middleware": "autorest tooling/autorest/middleware.yaml && node tooling/autorest/postprocessing.js middleware",
32
+ "build:api:middleware": "node tooling/autorest/middleware-prepare.js && autorest tooling/autorest/middleware.yaml && node tooling/autorest/postprocessing.js middleware",
33
33
  "build:generate": "tsx tooling/generate-schema.ts",
34
34
  "build": "run-p build:api:* build:assets build:generate && run-p build:dist build:es build:types",
35
- "docs:examples": "node tooling/docs/examples-to-md.js examples/node/*.js",
35
+ "docs:examples": "node tooling/docs/examples-to-md.js examples/node",
36
36
  "docs:api": "typedoc",
37
37
  "commitlint": "commitlint --from develop",
38
38
  "lint": "run-p lint:*",
39
39
  "lint:prettier": "prettier . --check",
40
40
  "lint:eslint": "eslint . --ext .ts,.js",
41
- "lint:types": "tsc -p tsconfig.tests.json",
41
+ "lint:types": "tsc",
42
42
  "format": "prettier . --write",
43
43
  "test": "mocha './test/unit/' './test/integration/'",
44
44
  "test:assets": "node tooling/fetch-metamask.js",
@@ -59,25 +59,25 @@
59
59
  "SDK"
60
60
  ],
61
61
  "dependencies": {
62
- "@aeternity/aepp-calldata": "^1.8.0",
63
- "@azure/core-client": "^1.9.2",
64
- "@azure/core-rest-pipeline": "^1.17.0",
65
- "@babel/runtime-corejs3": "^7.25.7",
62
+ "@aeternity/aepp-calldata": "^1.9.1",
63
+ "@azure/core-client": "^1.9.3",
64
+ "@azure/core-rest-pipeline": "^1.19.1",
65
+ "@babel/runtime-corejs3": "^7.27.0",
66
66
  "@ledgerhq/hw-transport": "^6.31.4",
67
- "@metamask/providers": "17.2.0 || ^17.2.2",
68
- "@scure/bip39": "^1.4.0",
67
+ "@metamask/providers": "^22.1.0",
68
+ "@scure/bip39": "^1.6.0",
69
69
  "@types/json-bigint": "^1.0.4",
70
- "@types/node": "^22.7.5",
71
- "@types/readable-stream": "^4.0.15",
70
+ "@types/node": "^22.15.3",
71
+ "@types/readable-stream": "^4.0.18",
72
72
  "@types/sha.js": "^2.4.4",
73
- "@types/webextension-polyfill": "^0.12.1",
73
+ "@types/webextension-polyfill": "^0.12.3",
74
74
  "@types/websocket": "^1.0.10",
75
- "@types/ws": "^8.5.12",
76
- "bignumber.js": "^9.1.2",
75
+ "@types/ws": "^8.18.1",
76
+ "bignumber.js": "^9.3.0",
77
77
  "blakejs": "^1.2.1",
78
78
  "bs58": "^6.0.0",
79
79
  "buffer": "^6.0.3",
80
- "canonicalize": "^2.0.0",
80
+ "canonicalize": "^2.1.0",
81
81
  "eventemitter3": "^5.0.1",
82
82
  "events": "^3.3.0",
83
83
  "isomorphic-ws": "^5.0.0",
@@ -87,63 +87,62 @@
87
87
  "sha.js": "^2.4.11",
88
88
  "tweetnacl": "^1.0.3",
89
89
  "tweetnacl-auth": "^1.0.1",
90
- "varuint-bitcoin": "^2.0.0",
91
90
  "webextension-polyfill": "^0.12.0",
92
91
  "websocket": "^1.0.35",
93
- "ws": "^8.18.0"
92
+ "ws": "^8.18.1"
94
93
  },
95
94
  "repository": {
96
95
  "type": "git",
97
96
  "url": "git+https://github.com/aeternity/aepp-sdk-js.git"
98
97
  },
99
98
  "devDependencies": {
100
- "@babel/cli": "^7.25.7",
101
- "@babel/core": "^7.25.8",
102
- "@babel/node": "^7.25.7",
103
- "@babel/plugin-transform-runtime": "^7.25.7",
104
- "@babel/preset-env": "^7.25.8",
105
- "@babel/preset-typescript": "^7.25.7",
106
- "@babel/register": "^7.25.7",
107
- "@commitlint/cli": "^19.5.0",
108
- "@commitlint/config-conventional": "^19.5.0",
99
+ "@babel/cli": "^7.27.0",
100
+ "@babel/core": "^7.26.10",
101
+ "@babel/node": "^7.26.0",
102
+ "@babel/plugin-transform-runtime": "^7.26.10",
103
+ "@babel/preset-env": "^7.26.9",
104
+ "@babel/preset-typescript": "^7.27.0",
105
+ "@babel/register": "^7.25.9",
106
+ "@commitlint/cli": "^19.8.0",
107
+ "@commitlint/config-conventional": "^19.8.0",
109
108
  "@ledgerhq/hw-transport-mocker": "^6.29.4",
110
109
  "@ledgerhq/hw-transport-node-hid-singleton": "^6.31.5",
111
110
  "@ledgerhq/hw-transport-webusb": "^6.29.4",
112
- "@types/chai": "^5.0.0",
113
- "@types/chai-as-promised": "^8.0.1",
114
- "@types/mocha": "^10.0.9",
111
+ "@types/chai": "^5.2.1",
112
+ "@types/chai-as-promised": "^8.0.2",
113
+ "@types/mocha": "^10.0.10",
115
114
  "@types/node-hid": "^1.3.4",
116
- "@types/sinon": "^17.0.3",
115
+ "@types/sinon": "^17.0.4",
117
116
  "@typescript-eslint/eslint-plugin": "^7.15.0",
118
117
  "@typescript-eslint/parser": "^7.15.0",
119
- "autorest": "^3.7.1",
120
- "babel-loader": "^9.2.1",
118
+ "autorest": "^3.7.2",
119
+ "babel-loader": "^10.0.0",
121
120
  "babel-plugin-import-globals": "^2.0.0",
122
- "babel-plugin-transform-import-meta": "^2.2.1",
123
- "chai": "^5.1.1",
124
- "chai-as-promised": "^8.0.0",
121
+ "babel-plugin-transform-import-meta": "^2.3.2",
122
+ "c8": "^10.1.3",
123
+ "chai": "^5.2.0",
124
+ "chai-as-promised": "^8.0.1",
125
125
  "eslint": "^8.57.1",
126
126
  "eslint-config-airbnb-typescript": "^18.0.0",
127
127
  "eslint-plugin-import": "^2.31.0",
128
128
  "eslint-plugin-rulesdir": "^0.2.2",
129
- "eslint-plugin-tsdoc": "^0.3.0",
129
+ "eslint-plugin-tsdoc": "^0.4.0",
130
130
  "extract-zip": "^2.0.1",
131
- "html-webpack-plugin": "^5.6.0",
132
- "mocha": "^10.7.3",
133
- "npm-run-all2": "^6.2.3",
134
- "nyc": "^17.1.0",
135
- "prettier": "^3.3.3",
136
- "puppeteer-core": "^23.5.3",
137
- "sinon": "^19.0.2",
131
+ "html-webpack-plugin": "^5.6.3",
132
+ "mocha": "^11.1.0",
133
+ "npm-run-all2": "^7.0.2",
134
+ "prettier": "^3.5.3",
135
+ "puppeteer-core": "^24.7.2",
136
+ "sinon": "^20.0.0",
138
137
  "source-map": "^0.7.4",
139
138
  "standard-version": "^9.5.0",
140
- "tsx": "^4.19.1",
141
- "typedoc": "^0.26.10",
142
- "typedoc-plugin-missing-exports": "^3.0.0",
139
+ "tsx": "^4.19.4",
140
+ "typedoc": "^0.27.9",
141
+ "typedoc-plugin-missing-exports": "^3.1.0",
143
142
  "typescript": "^5.6.3",
144
- "webpack": "^5.95.0",
143
+ "webpack": "^5.99.7",
145
144
  "webpack-bundle-analyzer": "^4.10.2",
146
- "webpack-cli": "^5.1.4"
145
+ "webpack-cli": "^6.0.1"
147
146
  },
148
147
  "files": [
149
148
  "dist",
@@ -169,7 +168,7 @@
169
168
  "engines": {
170
169
  "node": ">=18.19"
171
170
  },
172
- "packageManager": "npm@10.9.0",
171
+ "packageManager": "npm@11.3.0",
173
172
  "contributors": [
174
173
  "Till Kolter <till.kolter@gmail.com>",
175
174
  "Alexander Kahl <ak@sodosopa.io>",