@ocap/tx-protocols 1.18.153 → 1.18.154

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.
package/lib/execute.js CHANGED
@@ -24,7 +24,6 @@ const flushEvents = (context, extra = {}) => {
24
24
  };
25
25
 
26
26
  const shouldPersistTx = (err) => !err || get(err, 'props.persist');
27
- const logError = (...args) => process.env.NODE_ENV !== 'test' && console.error(...args);
28
27
 
29
28
  module.exports = ({ filter, runAsLambda }) => {
30
29
  // pipeline before executing the transaction
@@ -69,7 +68,7 @@ module.exports = ({ filter, runAsLambda }) => {
69
68
  updateVaults(),
70
69
  ]);
71
70
  } catch (err) {
72
- logError('Failed to charge gas fee for errored tx', err);
71
+ context.logger?.error('Failed to charge gas fee for errored tx', err);
73
72
  }
74
73
  };
75
74
 
@@ -77,7 +76,7 @@ module.exports = ({ filter, runAsLambda }) => {
77
76
  new Promise((resolve, reject) => {
78
77
  pre.run(context, (err) => {
79
78
  if (err) {
80
- logError('Failed to prepare transaction', err);
79
+ context.logger?.error('Failed to prepare transaction', err);
81
80
  return reject(err);
82
81
  }
83
82
 
@@ -101,7 +100,7 @@ module.exports = ({ filter, runAsLambda }) => {
101
100
  txState = context.states.tx.create(context, err ? err.code || 'INTERNAL' : 'OK');
102
101
  await context.statedb.tx.create(txState.hash, txState, context);
103
102
  } catch (e) {
104
- logError('Failed to save transaction to statedb', e);
103
+ context.logger?.error('Failed to save transaction to statedb', e, txState);
105
104
  return reject(e);
106
105
  }
107
106
 
@@ -110,7 +109,7 @@ module.exports = ({ filter, runAsLambda }) => {
110
109
 
111
110
  // after executing the transaction
112
111
  if (err) {
113
- logError('Failed to execute transaction', err);
112
+ context.logger?.error('Failed to execute transaction', err);
114
113
  return reject(err);
115
114
  }
116
115
 
@@ -148,11 +147,13 @@ module.exports = ({ filter, runAsLambda }) => {
148
147
  await context.statedb.tx.create(txState.hash, txState, newCtx);
149
148
  flushEvents(newCtx, { txState });
150
149
  });
150
+ ctx.logger?.info('Transaction has been saved to statedb', error, txState);
151
151
  } catch (err) {
152
152
  const txState = context.states.tx.create(ctx, error ? error.code || 'INTERNAL' : 'OK', false);
153
- logError('failed to save invalid transaction to statedb', JSON.stringify(txState, null));
154
- logError('failed to save invalid transaction to statedb', err);
153
+ ctx.logger?.error('Failed to save invalid transaction to statedb', err, txState);
155
154
  }
155
+ } else {
156
+ ctx.logger?.error('Failed to execute transaction', error);
156
157
  }
157
158
  }
158
159
 
@@ -231,6 +231,12 @@ runner.use(
231
231
  const isAlsoSigner = !!signerUpdates[sender];
232
232
  const isAlsoReceiver = !!receiverUpdates[sender];
233
233
 
234
+ // When the sender is not in the inputs and outputs, we need to handle the gas fee update separately
235
+ const senderUpdates = {};
236
+ if (!isAlsoSigner && !isAlsoReceiver && senderState && senderChange) {
237
+ senderUpdates[sender] = applyTokenChange(senderState, senderChange);
238
+ }
239
+
234
240
  debug('transfer-v3', { signerUpdates, receiverUpdates, assetUpdates, isAlsoSigner, isAlsoReceiver });
235
241
 
236
242
  const [newSenderState, newSignerStates, newReceiverStates, newAssetStates] = await Promise.all([
@@ -242,7 +248,8 @@ runner.use(
242
248
  Object.assign(
243
249
  { address: sender, nonce: tx.nonce, pk: tx.pk },
244
250
  signerUpdates[sender] || {},
245
- receiverUpdates[sender] || {}
251
+ receiverUpdates[sender] || {},
252
+ senderUpdates[sender] || {}
246
253
  ),
247
254
  context
248
255
  ),
package/package.json CHANGED
@@ -3,7 +3,7 @@
3
3
  "publishConfig": {
4
4
  "access": "public"
5
5
  },
6
- "version": "1.18.153",
6
+ "version": "1.18.154",
7
7
  "description": "Predefined tx pipeline sets to execute certain type of transactions",
8
8
  "main": "lib/index.js",
9
9
  "files": [
@@ -21,18 +21,18 @@
21
21
  "author": "wangshijun <wangshijun2010@gmail.com> (http://github.com/wangshijun)",
22
22
  "license": "MIT",
23
23
  "dependencies": {
24
- "@arcblock/did": "1.18.153",
25
- "@arcblock/did-util": "1.18.153",
26
- "@arcblock/jwt": "1.18.153",
27
- "@arcblock/validator": "1.18.153",
28
- "@ocap/asset": "1.18.153",
29
- "@ocap/mcrypto": "1.18.153",
30
- "@ocap/merkle-tree": "1.18.153",
31
- "@ocap/message": "1.18.153",
32
- "@ocap/state": "1.18.153",
33
- "@ocap/tx-pipeline": "1.18.153",
34
- "@ocap/util": "1.18.153",
35
- "@ocap/wallet": "1.18.153",
24
+ "@arcblock/did": "1.18.154",
25
+ "@arcblock/did-util": "1.18.154",
26
+ "@arcblock/jwt": "1.18.154",
27
+ "@arcblock/validator": "1.18.154",
28
+ "@ocap/asset": "1.18.154",
29
+ "@ocap/mcrypto": "1.18.154",
30
+ "@ocap/merkle-tree": "1.18.154",
31
+ "@ocap/message": "1.18.154",
32
+ "@ocap/state": "1.18.154",
33
+ "@ocap/tx-pipeline": "1.18.154",
34
+ "@ocap/util": "1.18.154",
35
+ "@ocap/wallet": "1.18.154",
36
36
  "debug": "^4.3.6",
37
37
  "deep-diff": "^1.0.2",
38
38
  "empty-value": "^1.0.1",
@@ -47,5 +47,5 @@
47
47
  "jest": "^29.7.0",
48
48
  "start-server-and-test": "^1.14.0"
49
49
  },
50
- "gitHead": "ad18c565becef73d6ee782502c3f4858de43b68b"
50
+ "gitHead": "414d4207886905fca9529912a12a3b6b8c811886"
51
51
  }