[SC] Local call log serialization#662
[SC] Local call log serialization#662rowandh wants to merge 6 commits intostratisproject:release/1.2.0.0from
Conversation
|
Strange, looks like the build died. Will kick it off again. |
|
@mrtpain the return value should be fixed now, could you please check once more and confirm? |
|
@rowandh 🥳 thanks all is good now 👍 |
|
Actually, seems |
|
@mrtpain should be fixed now |
|
Thanks @rowandh all good now. Somewhat related: recent versions of FN output the Currently we are deserializing the first topic to get our event names. We can remove a package dependency if we can rely on the |
Good point, a log property named |
|
On another note, @rowandh, transactions with internal CRS transfers I believe either aren't implemented fully (intentionally) or may have a bug. We are able to successfully broadcast transactions that return errors during a local call. These contract errors are pointing to a 0 CRS amount in Message.Value. https://github.com/Opdex/opdex-v1-core/blob/main/src/Contracts/Routers/OpdexRouter.cs#L228 That line is throwing during local calls but the same payload sent for an actual transaction is successful. (Note that is a public method but in our scenario of calling Along with the error that we receive in the local call response, we can also see the list of internal transfers showing a 0 amount. |
|
@rowandh We're getting a 500 response making a local call to this method, when running the full node built from this branch. The request body is below. {
"walletName": "{{wallet_name}}",
"accountName": "{{wallet_account}}",
"contractAddress": "{{market_deployer}}",
"methodName": "CreateStandardMarket",
"amount": "0",
"feeAmount": ".001",
"password": "{{wallet_password}}",
"gasPrice": 100,
"gasLimit": 250000,
"sender": "{{wallet_address}}",
"parameters": [
"9#{{wallet_address}}", // market owner
"5#3", // fee
"1#True", // authPoolCreators
"1#True", // authProviders
"1#False", // authTraders
"1#True" // enableMarketFee
]
}Had a go at debugging locally and it seems to be failing to map the log responses. |
Is this on testnet, mainnet or in localchain(devmode) ? Can you be sure that wallet_address is belong to one of your wallet addresses ? |
This is our local network (devnet) running from this branch. Our payload is all correct. We can switch the endooint from So far it seems that it's a problem with something happening in this method specifically that is uncaught as the FN returns 500 error with no body, I do not think the error is getting caught but throwing all the way out. Also local calls that involve CRS transfers and use of |
6536b6b to
a7c2ccd
Compare
|
Will merge these changes in to release/1.0.9.6 and address the new issues with separate PRs. |
9ccf879 to
ae7099c
Compare
|
f9b3e80 resolves zero amount local calls (#662 (comment)) |
|
These changes worked for us and are in use in our Dev and public Testnet environments 🙌 |
* Fix serialization and add tests * PR #662 Local call log serialization * Fix zero local call message value * Fix issue where local call contract address was unable to be found in state tree * Nest deserialized log data * Fix test * Merge branch 'hotfix/param' into release/1.1.0.0-opdex * Fix Tests * Merge pull request #801 from rowandh/opdex Opdex Co-authored-by: Rowan de Haas <rowandh@users.noreply.github.com>
|
@rowandh I believe this fix was merged to release/1.1.1.0... can you confirm? If so it was also then merge to 1.2 already. |
See #661.