@aeternity/aepp-sdk 9.0.1 → 10.0.0-beta.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 (137) hide show
  1. package/dist/aepp-sdk.browser-script.js +1 -1
  2. package/dist/aepp-sdk.browser-script.js.LICENSE.txt +0 -9
  3. package/dist/aepp-sdk.browser-script.js.map +1 -1
  4. package/dist/aepp-sdk.browser.js +1 -1
  5. package/dist/aepp-sdk.browser.js.map +1 -1
  6. package/dist/aepp-sdk.js +1 -1
  7. package/dist/aepp-sdk.js.map +1 -1
  8. package/es/account/base.js +30 -122
  9. package/es/account/base.js.map +1 -1
  10. package/es/account/memory.js +17 -19
  11. package/es/account/memory.js.map +1 -1
  12. package/es/account/multiple.js +73 -164
  13. package/es/account/multiple.js.map +1 -1
  14. package/es/ae/aens.js +164 -599
  15. package/es/ae/aens.js.map +1 -1
  16. package/es/ae/contract.js +82 -759
  17. package/es/ae/contract.js.map +1 -1
  18. package/es/ae/index.js +78 -315
  19. package/es/ae/index.js.map +1 -1
  20. package/es/ae/oracle.js +130 -498
  21. package/es/ae/oracle.js.map +1 -1
  22. package/es/chain/index.js +1 -1
  23. package/es/chain/index.js.map +1 -1
  24. package/es/chain/node.js +288 -1008
  25. package/es/chain/node.js.map +1 -1
  26. package/es/channel/handlers.js +597 -1086
  27. package/es/channel/handlers.js.map +1 -1
  28. package/es/channel/index.js +203 -451
  29. package/es/channel/index.js.map +1 -1
  30. package/es/channel/internal.js +129 -301
  31. package/es/channel/internal.js.map +1 -1
  32. package/es/contract/aci/index.js +319 -480
  33. package/es/contract/aci/index.js.map +1 -1
  34. package/es/contract/aci/transformation.js +35 -711
  35. package/es/contract/aci/transformation.js.map +1 -1
  36. package/es/contract/compiler.js +129 -203
  37. package/es/contract/compiler.js.map +1 -1
  38. package/es/contract/ga/helpers.js +16 -114
  39. package/es/contract/ga/helpers.js.map +1 -1
  40. package/es/contract/ga/index.js +101 -242
  41. package/es/contract/ga/index.js.map +1 -1
  42. package/es/contract/index.js +1 -1
  43. package/es/contract/index.js.map +1 -1
  44. package/es/index.js +1 -2
  45. package/es/index.js.map +1 -1
  46. package/es/node-pool/index.js +54 -73
  47. package/es/node-pool/index.js.map +1 -1
  48. package/es/node.js +56 -157
  49. package/es/node.js.map +1 -1
  50. package/es/other.d.ts +1 -1
  51. package/es/tx/builder/helpers.js +38 -75
  52. package/es/tx/builder/helpers.js.map +1 -1
  53. package/es/tx/builder/index.js +196 -294
  54. package/es/tx/builder/index.js.map +1 -1
  55. package/es/tx/builder/schema.js +577 -459
  56. package/es/tx/builder/schema.js.map +1 -1
  57. package/es/tx/index.js +1 -1
  58. package/es/tx/index.js.map +1 -1
  59. package/es/tx/tx-object.js +105 -132
  60. package/es/tx/tx-object.js.map +1 -1
  61. package/es/tx/tx.js +808 -1628
  62. package/es/tx/tx.js.map +1 -1
  63. package/es/tx/validator.js +132 -268
  64. package/es/tx/validator.js.map +1 -1
  65. package/es/utils/aepp-wallet-communication/connection/browser-runtime.js +17 -21
  66. package/es/utils/aepp-wallet-communication/connection/browser-runtime.js.map +1 -1
  67. package/es/utils/aepp-wallet-communication/connection/browser-window-message.js +38 -74
  68. package/es/utils/aepp-wallet-communication/connection/browser-window-message.js.map +1 -1
  69. package/es/utils/aepp-wallet-communication/content-script-bridge.js +14 -15
  70. package/es/utils/aepp-wallet-communication/content-script-bridge.js.map +1 -1
  71. package/es/utils/aepp-wallet-communication/helpers.js +60 -105
  72. package/es/utils/aepp-wallet-communication/helpers.js.map +1 -1
  73. package/es/utils/aepp-wallet-communication/rpc/aepp-rpc.js +179 -510
  74. package/es/utils/aepp-wallet-communication/rpc/aepp-rpc.js.map +1 -1
  75. package/es/utils/aepp-wallet-communication/rpc/rpc-client.js +70 -89
  76. package/es/utils/aepp-wallet-communication/rpc/rpc-client.js.map +1 -1
  77. package/es/utils/aepp-wallet-communication/rpc/wallet-rpc.js +353 -600
  78. package/es/utils/aepp-wallet-communication/rpc/wallet-rpc.js.map +1 -1
  79. package/es/utils/aepp-wallet-communication/schema.js +43 -39
  80. package/es/utils/aepp-wallet-communication/schema.js.map +1 -1
  81. package/es/utils/aepp-wallet-communication/wallet-detector.js +32 -58
  82. package/es/utils/aepp-wallet-communication/wallet-detector.js.map +1 -1
  83. package/es/utils/amount-formatter.js +41 -61
  84. package/es/utils/amount-formatter.js.map +1 -1
  85. package/es/utils/async-init.js +28 -64
  86. package/es/utils/async-init.js.map +1 -1
  87. package/es/utils/bignumber.js +3 -11
  88. package/es/utils/bignumber.js.map +1 -1
  89. package/es/utils/bytes.js +5 -9
  90. package/es/utils/bytes.js.map +1 -1
  91. package/es/utils/crypto.js +47 -62
  92. package/es/utils/crypto.js.map +1 -1
  93. package/es/utils/hd-wallet.js +45 -81
  94. package/es/utils/hd-wallet.js.map +1 -1
  95. package/es/utils/json-big.js +16 -49
  96. package/es/utils/json-big.js.map +1 -1
  97. package/es/utils/keystore.js +81 -246
  98. package/es/utils/keystore.js.map +1 -1
  99. package/es/utils/mptree.js +88 -134
  100. package/es/utils/mptree.js.map +1 -1
  101. package/es/utils/other.js +10 -60
  102. package/es/utils/other.js.map +1 -1
  103. package/es/utils/semver-satisfies.js +9 -28
  104. package/es/utils/semver-satisfies.js.map +1 -1
  105. package/es/utils/string.js +4 -13
  106. package/es/utils/string.js.map +1 -1
  107. package/es/utils/swagger.js +85 -224
  108. package/es/utils/swagger.js.map +1 -1
  109. package/package.json +44 -40
  110. package/src/account/multiple.js +18 -19
  111. package/src/ae/aens.js +25 -21
  112. package/src/ae/contract.js +32 -163
  113. package/src/ae/index.js +3 -3
  114. package/src/ae/oracle.js +18 -14
  115. package/src/chain/node.js +2 -4
  116. package/src/channel/handlers.js +0 -1
  117. package/src/channel/index.js +4 -5
  118. package/src/contract/aci/index.js +221 -102
  119. package/src/contract/aci/transformation.js +30 -422
  120. package/src/contract/compiler.js +45 -4
  121. package/src/contract/ga/helpers.js +1 -8
  122. package/src/contract/ga/index.js +13 -11
  123. package/src/index.js +0 -2
  124. package/src/node-pool/index.js +21 -12
  125. package/src/node.js +22 -26
  126. package/src/tx/builder/index.js +2 -1
  127. package/src/tx/builder/schema.js +2 -1
  128. package/src/tx/tx.js +147 -143
  129. package/src/tx/validator.js +9 -7
  130. package/src/utils/aepp-wallet-communication/rpc/aepp-rpc.js +1 -3
  131. package/src/utils/aepp-wallet-communication/rpc/wallet-rpc.js +3 -3
  132. package/src/utils/aepp-wallet-communication/schema.js +1 -3
  133. package/src/utils/bignumber.ts +2 -1
  134. package/src/utils/other.ts +1 -1
  135. package/src/utils/semver-satisfies.ts +1 -1
  136. package/src/utils/swagger.js +14 -7
  137. package/src/contract/aci/helpers.js +0 -140
@@ -39,10 +39,14 @@ let warnedAboutInternalApiUsage = false
39
39
  * @param {String} [options.internalUrl] - Node internal URL
40
40
  * @param {Boolean} [options.disableBigNumbers]
41
41
  * @param {Boolean} [options.disableCaseConversion]
42
+ * @param {Function} [options.responseInterceptor]
42
43
  * @return {Object} Swagger client
43
44
  * @example (await genSwaggerClient('https://mainnet.aeternity.io/api')).getAccountByPubkey('ak_jupBUgZNbcC4krDLR3tAkw1iBZoBbkNeShAq4atBtpFWmz36r')
44
45
  */
45
- export default async (specUrl, { spec, internalUrl, disableBigNumbers, disableCaseConversion } = {}) => {
46
+ export default async (
47
+ specUrl,
48
+ { spec, internalUrl, disableBigNumbers, disableCaseConversion, responseInterceptor } = {}
49
+ ) => {
46
50
  spec = spec || await (await fetch(specUrl)).json()
47
51
  const jsonImp = disableBigNumbers ? JSON : JsonBig
48
52
 
@@ -64,9 +68,10 @@ export default async (specUrl, { spec, internalUrl, disableBigNumbers, disableCa
64
68
  responseInterceptor: response => {
65
69
  if (!response.text) return response
66
70
  const body = jsonImp.parse(response.text)
67
- return Object.assign(response, {
71
+ Object.assign(response, {
68
72
  body: disableCaseConversion ? body : pascalizeKeys(body)
69
73
  })
74
+ return (responseInterceptor && responseInterceptor(response)) || response
70
75
  }
71
76
  })
72
77
  }))
@@ -97,11 +102,13 @@ export default async (specUrl, { spec, internalUrl, disableBigNumbers, disableCa
97
102
  const opSpec = opSpecs[opId]
98
103
  const parameters = [
99
104
  ...opSpec.parameters,
100
- ...opSpec.requestBody ? [{
101
- required: opSpec.requestBody.required,
102
- schema: Object.values(opSpec.requestBody.content)[0].schema,
103
- name: '__requestBody'
104
- }] : []
105
+ ...opSpec.requestBody
106
+ ? [{
107
+ required: opSpec.requestBody.required,
108
+ schema: Object.values(opSpec.requestBody.content)[0].schema,
109
+ name: '__requestBody'
110
+ }]
111
+ : []
105
112
  ]
106
113
  const required = parameters.filter(param => param.required).map(p => p.name)
107
114
  if (args.length < required.length) throw new Error('swagger: Not enough arguments')
@@ -1,140 +0,0 @@
1
- import * as R from 'ramda'
2
- import { unpackTx } from '../../tx/builder'
3
- import { decodeEvents as unpackEvents, transform, transformDecodedData, validateArguments } from './transformation'
4
-
5
- /**
6
- * Get function schema from contract ACI object
7
- * @param {Object} aci Contract ACI object
8
- * @param {String} name Function name
9
- * @param external
10
- * @return {Object} function ACI
11
- */
12
- export function getFunctionACI (aci, name, { external }) {
13
- if (!aci) throw new Error('ACI required')
14
- const fn = aci.functions.find(f => f.name === name)
15
- if (!fn && name !== 'init') throw new Error(`Function ${name} doesn't exist in contract`)
16
-
17
- return {
18
- ...fn,
19
- bindings: [
20
- {
21
- state: aci.state,
22
- type_defs: aci.type_defs,
23
- name: aci.name
24
- },
25
- ...external.map(R.pick(['state', 'type_defs', 'name']))
26
- ],
27
- event: aci.event ? aci.event.variant : []
28
- }
29
- }
30
-
31
- /**
32
- * Build contract methods base on ACI
33
- * @return {Object} Contract instance methods
34
- */
35
- export const buildContractMethods = (instance) => () => ({
36
- ...instance.aci
37
- ? instance
38
- .aci
39
- .functions
40
- .reduce(
41
- (acc, { name, arguments: aciArgs, stateful }) => ({
42
- ...acc,
43
- [name]: Object.assign(
44
- function () {
45
- const { opt, args } = parseArguments(aciArgs)(arguments)
46
- if (name === 'init') return instance.deploy(args, opt)
47
- return instance.call(name, args, { callStatic: !stateful, ...opt })
48
- },
49
- {
50
- get () {
51
- const { opt, args } = parseArguments(aciArgs)(arguments)
52
- return instance.call(name, args, { ...opt, callStatic: true })
53
- },
54
- send () {
55
- const { opt, args } = parseArguments(aciArgs)(arguments)
56
- if (name === 'init') return instance.deploy(args, opt)
57
- return instance.call(name, args, { ...opt, callStatic: false })
58
- },
59
- decodeEvents (events) {
60
- return instance.decodeEvents(name, events)
61
- }
62
- }
63
- )
64
- }),
65
- {}
66
- )
67
- : {},
68
- ...instance.aci ? {
69
- init: Object.assign(
70
- function () {
71
- const { arguments: aciArgs } = getFunctionACI(instance.aci, 'init', { external: instance.externalAci })
72
- const { opt, args } = parseArguments(aciArgs)(arguments)
73
- return instance.deploy(args, opt)
74
- },
75
- {
76
- get () {
77
- const { arguments: aciArgs } = getFunctionACI(instance.aci, 'init', { external: instance.externalAci })
78
- const { opt, args } = parseArguments(aciArgs)(arguments)
79
- return instance.deploy(args, { ...opt, callStatic: true })
80
- },
81
- send () {
82
- const { arguments: aciArgs } = getFunctionACI(instance.aci, 'init', { external: instance.externalAci })
83
- const { opt, args } = parseArguments(aciArgs)(arguments)
84
- return instance.deploy(args, { ...opt, callStatic: false })
85
- }
86
- }
87
- )
88
- } : {}
89
- })
90
-
91
- export const parseArguments = (aciArgs = []) => (args) => ({
92
- opt: args.length > aciArgs.length ? R.last(args) : {},
93
- args: Object.values(args).slice(0, aciArgs.length)
94
- })
95
-
96
- export const unpackByteCode = (bytecode) => unpackTx(bytecode, false, 'cb').tx
97
-
98
- /**
99
- * Validated contract call arguments using contract ACI
100
- * @function validateCallParams
101
- * @rtype (aci: Object, params: Array) => Object
102
- * @param {Object} aci Contract ACI
103
- * @param {Array} params Contract call arguments
104
- * @return Promise{Array} Object with validation errors
105
- */
106
- export const prepareArgsForEncode = async (aci, params) => {
107
- if (!aci || !aci.arguments) return params
108
- // Validation
109
- if (aci.arguments.length > params.length) {
110
- throw new Error(`Function "${aci.name}" require ${aci.arguments.length} arguments of types [${aci.arguments.map(a => JSON.stringify(a.type))}] but get [${params.map(JSON.stringify)}]`)
111
- }
112
-
113
- validateArguments(aci, params)
114
- const bindings = aci.bindings
115
- // Cast argument from JS to Sophia type
116
- return Promise.all(aci.arguments.map(async ({ type }, i) => transform(type, params[i], {
117
- bindings
118
- })))
119
- }
120
-
121
- export const decodeEvents = (events, fnACI) => {
122
- if (!fnACI || !fnACI.event || !fnACI.event.length) return []
123
-
124
- const eventsSchema = fnACI.event.map(e => {
125
- const name = Object.keys(e)[0]
126
- return { name, types: e[name] }
127
- })
128
- return unpackEvents(events, { schema: eventsSchema })
129
- }
130
-
131
- export const decodeCallResult = async (result, fnACI, opt) => {
132
- return {
133
- decodedResult: await transformDecodedData(
134
- fnACI.returns,
135
- await result.decode(),
136
- { ...opt, bindings: fnACI.bindings }
137
- ),
138
- decodedEvents: decodeEvents(result.result.log, fnACI)
139
- }
140
- }