Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Mainnet stop blocks processing at 5468658 #3471

Closed
AnnaShaleva opened this issue May 31, 2024 · 0 comments · Fixed by #3472
Closed

Mainnet stop blocks processing at 5468658 #3471

AnnaShaleva opened this issue May 31, 2024 · 0 comments · Fixed by #3472
Labels
bug Something isn't working I4 No visible changes S4 Routine U0 Needs to be resolved immediately
Milestone

Comments

@AnnaShaleva
Copy link
Member

May 31 22:09:19 kangra neo-go[433380]: 2024-05-31T22:09:19.527+0300        WARN        blockQueue: failed adding block into the blockchain        {"error": "onPersist failed: VM has failed: at instruction 0 (SYSCALL): insufficient funds", "blockHeight": 5468658, "nextIndex": 5468659}

The reason is state difference at block 5462944:

anna@kiwi:~/Documents/GitProjects/nspcc-dev/neo-go$ go run scripts/compare-states/compare-states.go --ignore-height http://seed1.neo.org:10332 https://rpc10.n3.nspcc.ru:10331
at 0: 58a5157b7e99eeabf631291f1747ec8eb12ab89461cda888492b17a301de81e8 vs 58a5157b7e99eeabf631291f1747ec8eb12ab89461cda888492b17a301de81e8
at 5468658: 8643ab904dba8e3cfafcc337151ec8dafc10a554b32e1674003d2fe7ef8643fa vs 2c7e254d02e67144559c7267c8732fb12185ac74a1137f74c52e0aeee97d1987
at 2734329: 4b76d79eee65224e84715fc75d686f253bf053d1a24b4f34d51da26276793b1e vs 4b76d79eee65224e84715fc75d686f253bf053d1a24b4f34d51da26276793b1e
at 4101493: 2b6943e093df08be47d0a10fa0c0db32d1de38300188f2d9e7e58a08c6757008 vs 2b6943e093df08be47d0a10fa0c0db32d1de38300188f2d9e7e58a08c6757008
at 4785075: b3c7f3fa0600dcd775d76c1843b3386ce0e25ccaed39cdca7f91462816083671 vs b3c7f3fa0600dcd775d76c1843b3386ce0e25ccaed39cdca7f91462816083671
at 5126866: 3e628e96ef6e600e05e66b98d9f3b3b273e1ece0d9094908fe52a894c81f95f7 vs 3e628e96ef6e600e05e66b98d9f3b3b273e1ece0d9094908fe52a894c81f95f7
at 5297762: f56832a77ec5f2c275d79ca1b7c1d2a1c76b4bcaba8955468b6448e5e064d0bb vs f56832a77ec5f2c275d79ca1b7c1d2a1c76b4bcaba8955468b6448e5e064d0bb
at 5383210: 818120ab3b56d979ed1fa1d456433eeaeed2133b95ef47bce2717ac9812f8b19 vs 818120ab3b56d979ed1fa1d456433eeaeed2133b95ef47bce2717ac9812f8b19
at 5425934: bdf32a477035bc75d984d3a1f5958fadac7b1471940a90953af768d4b7b998d4 vs bdf32a477035bc75d984d3a1f5958fadac7b1471940a90953af768d4b7b998d4
at 5447296: 7678273abf5725daf86accd02744082ed4e7aa935af039670850d3bdbdad91f2 vs 7678273abf5725daf86accd02744082ed4e7aa935af039670850d3bdbdad91f2
at 5457977: 22d69d4ae8a8063bb9d61d2d39385173e5db1bcb8ec01ac7d8f1da7e0a625902 vs 22d69d4ae8a8063bb9d61d2d39385173e5db1bcb8ec01ac7d8f1da7e0a625902
at 5463317: 7b25bcfc24c4d515a6bcb2662774886601edf3f1b137ecd30ca547971731b29d vs ba0c53f6930b2576338f392c3c84377f6785032f04bb889ed0a9af60bce6ca7f
at 5460647: e5be56d068a50c5723ebec8d3d07338266794c9f56be2586aede52ce127ef660 vs e5be56d068a50c5723ebec8d3d07338266794c9f56be2586aede52ce127ef660
at 5461982: d253bed54c2314d135faaefc482deb935da241f3e8e3a9fcf03e3540c261e4e7 vs d253bed54c2314d135faaefc482deb935da241f3e8e3a9fcf03e3540c261e4e7
at 5462649: c0d116d50f2891b7699f772c88a9a7de1469a93f354219c2dc5cd12a2625eed8 vs c0d116d50f2891b7699f772c88a9a7de1469a93f354219c2dc5cd12a2625eed8
at 5462983: 932d3f048a1d8ee8eeb94efd70fa1131746b7358a0f66f51776bcc78ae012ad4 vs d2a025711d6373abc9baf9560ed306df2bc0247b36a2cf8877ea952f68333a87
at 5462816: 7f4c84605b19522dd4b54a4f284e0650d6061d3651535c9484ee7fc4ac7aee5d vs 7f4c84605b19522dd4b54a4f284e0650d6061d3651535c9484ee7fc4ac7aee5d
at 5462899: 2a2439fbd78e28571af4e74517a30a361aa72472c52bd9e407ace98dd16ff672 vs 2a2439fbd78e28571af4e74517a30a361aa72472c52bd9e407ace98dd16ff672
at 5462941: 274f641247439641adc48bbaf43f2e93c08a04116bf1c73dd2cdf17ae813b7c2 vs 274f641247439641adc48bbaf43f2e93c08a04116bf1c73dd2cdf17ae813b7c2
at 5462962: 345d2ac64f4f5d3494fac6e8957a830107551293f1e3f52effbb1a3e44355c31 vs 3051482c5a9fe9d06a483e636d84b21710e4670c2a08af0efc2c0ff5606574cd
at 5462951: 5c4194239cbdb87a27f6ed823eb67d0f4b31c9f2da6302f39101d640eef680a5 vs 9bea1f9f403b2d6ee074d219007855b06492303d154c91eebe5e0a81c972ae8d
at 5462946: 45b36d9c2ca7d2e92b1519816a83c0a69a7bf4e074b9f1eb13f567ae8d558298 vs 3a26de51ae3fd328373c141358afcb1265a1c33fafacaab9f9273d4a474fb1e7
at 5462943: a0e22e8393672487efbbc345f6feb50eee9c69622df753cb816bf14d62248303 vs a0e22e8393672487efbbc345f6feb50eee9c69622df753cb816bf14d62248303
at 5462944: 04840402153eca093106748ca5d5f6600fed1b7bab469af34ab4c265e304b4a8 vs a2c012d5c0075e71af65f973870a3274635abfab5d00ff984715823c5e4ac0be
state differs at 5462944, block 886cf8df170f7995fc7b812d665b876d3fbaf91301a6580f18edbb9771d31224

...

transaction 5bd982e79132cd87c5ba34622e81660840a78a162370d637453c2caeacb9999f:
--- http://seed1.neo.org:10332
+++ https://rpc10.n3.nspcc.ru:10331
@@ -1,2 +1,2 @@
-(*result.ApplicationLog)(0xc0003329c0)({
+(*result.ApplicationLog)(0xc000262680)({
  Container: (util.Uint256) (len=32 cap=32) 9f99b9acae2c3c4537d67023168aa7400866812e6234bac587cd3291e782d95b,
@@ -6,8 +6,7 @@
    Trigger: (trigger.Type) Application,
-   VMState: (vmstate.State) HALT,
+   VMState: (vmstate.State) FAULT,
    GasConsumed: (int64) 59600477,
-   Stack: ([]stackitem.Item) (len=1 cap=1) {
-    (stackitem.Null) Null
+   Stack: ([]stackitem.Item) {
    },
-   Events: ([]state.NotificationEvent) (len=3 cap=4) {
+   Events: ([]state.NotificationEvent) (len=2 cap=2) {
     (state.NotificationEvent) {
@@ -15,3 +14,3 @@
      Name: (string) (len=5) "Debug",
-     Item: (*stackitem.Array)(0xc000265920)(Array)
+     Item: (*stackitem.Array)(0xc00043db90)(Array)
     },
@@ -20,11 +19,6 @@
      Name: (string) (len=6) "Update",
-     Item: (*stackitem.Array)(0xc000265a40)(Array)
-    },
-    (state.NotificationEvent) {
-     ScriptHash: (util.Uint160) (len=20 cap=20) e9a35cd25e59e110c66a3f1def5e5183129f049b,
-     Name: (string) (len=5) "Debug",
-     Item: (*stackitem.Array)(0xc000265bf0)(Array)
+     Item: (*stackitem.Array)(0xc00043dcb0)(Array)
     }
    },
-   FaultException: (string) ""
+   FaultException: (string) (len=92) "at instruction 26 (SYSCALL): System.Runtime.Notify failed: notification Debug does not exist"
   }

different state found
exit status 1

Transaction that caused the diff:

anna@kiwi:~/Documents/GitProjects/nspcc-dev/neo-go$ curl -d '{ "jsonrpc": "2.0", "id": 1, "method": "getrawtransaction", "params": ["5bd982e79132cd87c5ba34622e81660840a78a162370d637453c2caeacb9999f", 1] }' http://seed1.neo.org:10332  | json_pp
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  8806    0  8663  100   143   8877    146 --:--:-- --:--:-- --:--:--  9022
{
   "id" : 1,
   "jsonrpc" : "2.0",
   "result" : {
      "attributes" : [],
      "blockhash" : "0x886cf8df170f7995fc7b812d665b876d3fbaf91301a6580f18edbb9771d31224",
      "blocktime" : 1717060109759,
      "confirmations" : 6088,
      "hash" : "0x5bd982e79132cd87c5ba34622e81660840a78a162370d637453c2caeacb9999f",
      "netfee" : "707852",
      "nonce" : 195234302,
      "script" : "DckLeyJuYW1lIjoiR2hvc3RNYXJrZXRUb2tlbiIsImdyb3VwcyI6W10sImZlYXR1cmVzIjp7fSwic3VwcG9ydGVkc3RhbmRhcmRzIjpbIk5FUC0xNyIsIk5FUC0xNy0xIl0sImFiaSI6eyJtZXRob2RzIjpbeyJuYW1lIjoic3ltYm9sIiwicGFyYW1ldGVycyI6W10sInJldHVybnR5cGUiOiJTdHJpbmciLCJvZmZzZXQiOjAsInNhZmUiOnRydWV9LHsibmFtZSI6ImRlY2ltYWxzIiwicGFyYW1ldGVycyI6W10sInJldHVybnR5cGUiOiJJbnRlZ2VyIiwib2Zmc2V0Ijo1LCJzYWZlIjp0cnVlfSx7Im5hbWUiOiJ0b3RhbFN1cHBseSIsInBhcmFtZXRlcnMiOltdLCJyZXR1cm50eXBlIjoiSW50ZWdlciIsIm9mZnNldCI6Nywic2FmZSI6dHJ1ZX0seyJuYW1lIjoiYmFsYW5jZU9mIiwicGFyYW1ldGVycyI6W3sibmFtZSI6ImFjY291bnQiLCJ0eXBlIjoiSGFzaDE2MCJ9XSwicmV0dXJudHlwZSI6IkludGVnZXIiLCJvZmZzZXQiOjQxLCJzYWZlIjp0cnVlfSx7Im5hbWUiOiJhbGxvd2FuY2UiLCJwYXJhbWV0ZXJzIjpbeyJuYW1lIjoiZnJvbV9hZGRyZXNzIiwidHlwZSI6Ikhhc2gxNjAifSx7Im5hbWUiOiJzcGVuZGVyIiwidHlwZSI6Ikhhc2gxNjAifV0sInJldHVybnR5cGUiOiJJbnRlZ2VyIiwib2Zmc2V0IjoxMDYsInNhZmUiOnRydWV9LHsibmFtZSI6ImFwcHJvdmUiLCJwYXJhbWV0ZXJzIjpbeyJuYW1lIjoiZnJvbV9hZGRyZXNzIiwidHlwZSI6Ikhhc2gxNjAifSx7Im5hbWUiOiJzcGVuZGVyIiwidHlwZSI6Ikhhc2gxNjAifSx7Im5hbWUiOiJhbW91bnQiLCJ0eXBlIjoiSW50ZWdlciJ9XSwicmV0dXJudHlwZSI6IkJvb2xlYW4iLCJvZmZzZXQiOjI0MCwic2FmZSI6ZmFsc2V9LHsibmFtZSI6InRyYW5zZmVyRnJvbSIsInBhcmFtZXRlcnMiOlt7Im5hbWUiOiJzcGVuZGVyIiwidHlwZSI6Ikhhc2gxNjAifSx7Im5hbWUiOiJmcm9tX2FkZHJlc3MiLCJ0eXBlIjoiSGFzaDE2MCJ9LHsibmFtZSI6InRvX2FkZHJlc3MiLCJ0eXBlIjoiSGFzaDE2MCJ9LHsibmFtZSI6ImFtb3VudCIsInR5cGUiOiJJbnRlZ2VyIn0seyJuYW1lIjoiZGF0YSIsInR5cGUiOiJBbnkifV0sInJldHVybnR5cGUiOiJCb29sZWFuIiwib2Zmc2V0Ijo0NTAsInNhZmUiOmZhbHNlfSx7Im5hbWUiOiJ0cmFuc2ZlciIsInBhcmFtZXRlcnMiOlt7Im5hbWUiOiJmcm9tX2FkZHJlc3MiLCJ0eXBlIjoiSGFzaDE2MCJ9LHsibmFtZSI6InRvX2FkZHJlc3MiLCJ0eXBlIjoiSGFzaDE2MCJ9LHsibmFtZSI6ImFtb3VudCIsInR5cGUiOiJJbnRlZ2VyIn0seyJuYW1lIjoiZGF0YSIsInR5cGUiOiJBbnkifV0sInJldHVybnR5cGUiOiJCb29sZWFuIiwib2Zmc2V0Ijo5NjgsInNhZmUiOmZhbHNlfSx7Im5hbWUiOiJvbk5FUDE3UGF5bWVudCIsInBhcmFtZXRlcnMiOlt7Im5hbWUiOiJmcm9tX2FkZHJlc3MiLCJ0eXBlIjoiSGFzaDE2MCJ9LHsibmFtZSI6ImFtb3VudCIsInR5cGUiOiJJbnRlZ2VyIn0seyJuYW1lIjoiZGF0YSIsInR5cGUiOiJBbnkifV0sInJldHVybnR5cGUiOiJWb2lkIiwib2Zmc2V0IjoxMzUxLCJzYWZlIjpmYWxzZX0seyJuYW1lIjoiX2RlcGxveSIsInBhcmFtZXRlcnMiOlt7Im5hbWUiOiJkYXRhIiwidHlwZSI6IkFueSJ9LHsibmFtZSI6InVwZ3JhZGUiLCJ0eXBlIjoiQm9vbGVhbiJ9XSwicmV0dXJudHlwZSI6IlZvaWQiLCJvZmZzZXQiOjIzMTgsInNhZmUiOmZhbHNlfSx7Im5hbWUiOiJ1cGRhdGUiLCJwYXJhbWV0ZXJzIjpbeyJuYW1lIjoic2NyaXB0IiwidHlwZSI6IkJ5dGVBcnJheSJ9LHsibmFtZSI6Im1hbmlmZXN0IiwidHlwZSI6IkJ5dGVBcnJheSJ9XSwicmV0dXJudHlwZSI6IlZvaWQiLCJvZmZzZXQiOjEzNTYsInNhZmUiOmZhbHNlfSx7Im5hbWUiOiJnZXRBdXRob3JpemVkQWRkcmVzcyIsInBhcmFtZXRlcnMiOltdLCJyZXR1cm50eXBlIjoiQXJyYXkiLCJvZmZzZXQiOjE0MjQsInNhZmUiOnRydWV9LHsibmFtZSI6InNldEF1dGhvcml6ZWRBZGRyZXNzIiwicGFyYW1ldGVycyI6W3sibmFtZSI6ImFkZHJlc3MiLCJ0eXBlIjoiSGFzaDE2MCJ9LHsibmFtZSI6ImF1dGhvcml6ZWQiLCJ0eXBlIjoiQm9vbGVhbiJ9XSwicmV0dXJudHlwZSI6IlZvaWQiLCJvZmZzZXQiOjE0NTYsInNhZmUiOmZhbHNlfSx7Im5hbWUiOiJpc1BhdXNlZCIsInBhcmFtZXRlcnMiOltdLCJyZXR1cm50eXBlIjoiQm9vbGVhbiIsIm9mZnNldCI6MTk0Mywic2FmZSI6dHJ1ZX0seyJuYW1lIjoidXBkYXRlUGF1c2UiLCJwYXJhbWV0ZXJzIjpbeyJuYW1lIjoic3RhdHVzIiwidHlwZSI6IkJvb2xlYW4ifV0sInJldHVybnR5cGUiOiJCb29sZWFuIiwib2Zmc2V0IjoxOTc3LCJzYWZlIjpmYWxzZX0seyJuYW1lIjoiX2luaXRpYWxpemUiLCJwYXJhbWV0ZXJzIjpbXSwicmV0dXJudHlwZSI6IlZvaWQiLCJvZmZzZXQiOjI1NDgsInNhZmUiOmZhbHNlfV0sImV2ZW50cyI6W3sibmFtZSI6IlRyYW5zZmVyIiwicGFyYW1ldGVycyI6W3sibmFtZSI6ImZyb21fYWRkciIsInR5cGUiOiJIYXNoMTYwIn0seyJuYW1lIjoidG9fYWRkciIsInR5cGUiOiJIYXNoMTYwIn0seyJuYW1lIjoiYW1vdW50IiwidHlwZSI6IkludGVnZXIifV19LHsibmFtZSI6IkFwcHJvdmFsIiwicGFyYW1ldGVycyI6W3sibmFtZSI6Im93bmVyIiwidHlwZSI6Ikhhc2gxNjAifSx7Im5hbWUiOiJzcGVuZGVyIiwidHlwZSI6Ikhhc2gxNjAifSx7Im5hbWUiOiJhbW91bnQiLCJ0eXBlIjoiSW50ZWdlciJ9XX0seyJuYW1lIjoiQXV0aG9yaXplZCIsInBhcmFtZXRlcnMiOlt7Im5hbWUiOiJhdXRob3JpemVkIiwidHlwZSI6Ikhhc2gxNjAifSx7Im5hbWUiOiJ0eXBlIiwidHlwZSI6IkludGVnZXIifSx7Im5hbWUiOiJhZGQiLCJ0eXBlIjoiQm9vbGVhbiJ9XX1dfSwicGVybWlzc2lvbnMiOlt7ImNvbnRyYWN0IjoiKiIsIm1ldGhvZHMiOiIqIn1dLCJ0cnVzdHMiOltdLCJleHRyYSI6eyJBdXRob3IiOiJWaW5jZW50IEdlbmVzdGUsIE1hdGhpYXMgRW56ZW5zYmVyZ2VyIiwiRGVzY3JpcHRpb24iOiJHaG9zdE1hcmtldCBHTSBORVAxNyBjb250cmFjdCIsIkVtYWlsIjoiaGVsbG9AZ2hvc3RtYXJrZXQuaW8ifX0NOgtORUYzbmVvMy1ib2EgYnkgQ09aLTEuMi4wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGBodHRwczovL2dpdGh1Yi5jb20vT25CbG9ja0lPL24zLXRva2Vucy1jb250cmFjdHMvYmxvYi9tYXN0ZXIvY29udHJhY3RzL05FUDE3L0dob3N0TWFya2V0VG9rZW4ucHkABP2j+kNG6lMqJY/El92t22Q3yf3/C2dldENvbnRyYWN0AQABD/2j+kNG6lMqJY/El92t22Q3yf3/BnVwZGF0ZQMAAA/A7znO4OTpJcbCoGp54UQN2G/OrAtkZXNlcmlhbGl6ZQEAAQ/A7znO4OTpJcbCoGp54UQN2G/OrAlzZXJpYWxpemUBAAEPAAD9AQoMAkdNQBhADAt0b3RhbFN1cHBseUGb9mfOQZJd6DFK2CYGRRAiBNshQFcAAQwbYmFsYW5jZU9mIC0gaW52YWxpZCBhZGRyZXNzeDVrCAAANV8IAAB4QZv2Z85Bkl3oMUrYJgZFECIE2yFAVwECDChhbGxvd2FuY2UgLSBpbnZhbGlkIGZyb21fYWRkcmVzcyBhZGRyZXNzeDUdCAAANREIAAAMI2FsbG93YW5jZSAtIGludmFsaWQgc3BlbmRlciBhZGRyZXNzeTXtBwAANeEHAAB5eDUpCAAAQZv2Z85Bkl3oMUrYJgZFECIE2yFwaEBXAAMMGWFwcHJvdmUgLSBpbnZhbGlkIHdpdG5l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",
      "sender" : "NhWVzumNarG7x41c8csTor9UvocoSUrQQL",
      "signers" : [
         {
            "account" : "0x7e9237a93f64407141a5b86c760200c66c81e2ec",
            "scopes" : "CalledByEntry"
         }
      ],
      "size" : 6095,
      "sysfee" : "59600477",
      "validuntilblock" : 5468703,
      "version" : 0,
      "witnesses" : [
         {
            "invocation" : "DECDVnpT1z0wvKXj6z77sJ+9Aq70pK8qajUp7d9zqjbm7eplg2kSSiNOJJkAlCN57U4MrMpUABIe4mPj1G46ZobE",
            "verification" : "DCED8iIWt6liZPFQ/GBTHHYLpdXcGm00TMAMOF2WKdVltYJBVuezJw=="
         }
      ]
   }
}

The reason is the 0x9b049f1283515eef1d3f6ac610e1595ed25ca3e9 contract update. C# node successfully updates the contract, Go node fails to update it with at instruction 26 (SYSCALL): System.Runtime.Notify failed: notification Debug does not exist exception. The faulty line is:
https://github.com/OnBlockIO/n3-tokens-contracts/blob/a7e5f48814001a914c5f162ad31241168ecc243b/contracts/NEP17/GhostMarketToken.py#L419

New manifest:

"{\"name\":\"GhostMarketToken\",\"groups\":[],\"features\":{},\"supportedstandards\":[\"NEP-17\",\"NEP-17-1\"],\"abi\":{\"methods\":[{\"name\":\"symbol\",\"parameters\":[],\"returntype\":\"String\",\"offset\":0,\"safe\":true},{\"name\":\"decimals\",\"parameters\":[],\"returntype\":\"Integer\",\"offset\":5,\"safe\":true},{\"name\":\"totalSupply\",\"parameters\":[],\"returntype\":\"Integer\",\"offset\":7,\"safe\":true},{\"name\":\"balanceOf\",\"parameters\":[{\"name\":\"account\",\"type\":\"Hash160\"}],\"returntype\":\"Integer\",\"offset\":41,\"safe\":true},{\"name\":\"allowance\",\"parameters\":[{\"name\":\"from_address\",\"type\":\"Hash160\"},{\"name\":\"spender\",\"type\":\"Hash160\"}],\"returntype\":\"Integer\",\"offset\":106,\"safe\":true},{\"name\":\"approve\",\"parameters\":[{\"name\":\"from_address\",\"type\":\"Hash160\"},{\"name\":\"spender\",\"type\":\"Hash160\"},{\"name\":\"amount\",\"type\":\"Integer\"}],\"returntype\":\"Boolean\",\"offset\":240,\"safe\":false},{\"name\":\"transferFrom\",\"parameters\":[{\"name\":\"spender\",\"type\":\"Hash160\"},{\"name\":\"from_address\",\"type\":\"Hash160\"},{\"name\":\"to_address\",\"type\":\"Hash160\"},{\"name\":\"amount\",\"type\":\"Integer\"},{\"name\":\"data\",\"type\":\"Any\"}],\"returntype\":\"Boolean\",\"offset\":450,\"safe\":false},{\"name\":\"transfer\",\"parameters\":[{\"name\":\"from_address\",\"type\":\"Hash160\"},{\"name\":\"to_address\",\"type\":\"Hash160\"},{\"name\":\"amount\",\"type\":\"Integer\"},{\"name\":\"data\",\"type\":\"Any\"}],\"returntype\":\"Boolean\",\"offset\":968,\"safe\":false},{\"name\":\"onNEP17Payment\",\"parameters\":[{\"name\":\"from_address\",\"type\":\"Hash160\"},{\"name\":\"amount\",\"type\":\"Integer\"},{\"name\":\"data\",\"type\":\"Any\"}],\"returntype\":\"Void\",\"offset\":1351,\"safe\":false},{\"name\":\"_deploy\",\"parameters\":[{\"name\":\"data\",\"type\":\"Any\"},{\"name\":\"upgrade\",\"type\":\"Boolean\"}],\"returntype\":\"Void\",\"offset\":2318,\"safe\":false},{\"name\":\"update\",\"parameters\":[{\"name\":\"script\",\"type\":\"ByteArray\"},{\"name\":\"manifest\",\"type\":\"ByteArray\"}],\"returntype\":\"Void\",\"offset\":1356,\"safe\":false},{\"name\":\"getAuthorizedAddress\",\"parameters\":[],\"returntype\":\"Array\",\"offset\":1424,\"safe\":true},{\"name\":\"setAuthorizedAddress\",\"parameters\":[{\"name\":\"address\",\"type\":\"Hash160\"},{\"name\":\"authorized\",\"type\":\"Boolean\"}],\"returntype\":\"Void\",\"offset\":1456,\"safe\":false},{\"name\":\"isPaused\",\"parameters\":[],\"returntype\":\"Boolean\",\"offset\":1943,\"safe\":true},{\"name\":\"updatePause\",\"parameters\":[{\"name\":\"status\",\"type\":\"Boolean\"}],\"returntype\":\"Boolean\",\"offset\":1977,\"safe\":false},{\"name\":\"_initialize\",\"parameters\":[],\"returntype\":\"Void\",\"offset\":2548,\"safe\":false}],\"events\":[{\"name\":\"Transfer\",\"parameters\":[{\"name\":\"from_addr\",\"type\":\"Hash160\"},{\"name\":\"to_addr\",\"type\":\"Hash160\"},{\"name\":\"amount\",\"type\":\"Integer\"}]},{\"name\":\"Approval\",\"parameters\":[{\"name\":\"owner\",\"type\":\"Hash160\"},{\"name\":\"spender\",\"type\":\"Hash160\"},{\"name\":\"amount\",\"type\":\"Integer\"}]},{\"name\":\"Authorized\",\"parameters\":[{\"name\":\"authorized\",\"type\":\"Hash160\"},{\"name\":\"type\",\"type\":\"Integer\"},{\"name\":\"add\",\"type\":\"Boolean\"}]}]},\"permissions\":[{\"contract\":\"*\",\"methods\":\"*\"}],\"trusts\":[],\"extra\":{\"Author\":\"Vincent Geneste, Mathias Enzensberger\",\"Description\":\"GhostMarket GM NEP17 contract\",\"Email\":\"hello@ghostmarket.io\"}}"

The reason is that new manifest does not contain Debug notification, and thus, Go node prohibits the described System.Runtime.Notify call. However, C# node allows this notification due to the old contract state fetched by System.Runtime.Notify handler.

@AnnaShaleva AnnaShaleva added bug Something isn't working I1 High impact U0 Needs to be resolved immediately S2 Regular significance labels May 31, 2024
@AnnaShaleva AnnaShaleva added this to the v0.106.1 milestone May 31, 2024
@roman-khimov roman-khimov added S4 Routine I4 No visible changes and removed I1 High impact S2 Regular significance labels May 31, 2024
AnnaShaleva added a commit that referenced this issue Jun 1, 2024
Do not use the updated contract state from native Management to perform
permissions checks. We need to use the currently executing state
instead got from the currently executing VM context until context is
unloaded.

Close #3471.

Signed-off-by: Anna Shaleva <shaleva.ann@nspcc.ru>
AnnaShaleva added a commit that referenced this issue Jun 3, 2024
Do not use the updated contract state from native Management to perform
permissions checks. We need to use the currently executing state
instead got from the currently executing VM context until context is
unloaded.

Close #3471.

Signed-off-by: Anna Shaleva <shaleva.ann@nspcc.ru>
AnnaShaleva added a commit to neo-project/neo that referenced this issue Jun 3, 2024
It's not correct to use an updated contract state got from native
Management to check for the allowed method call. We need to use
manifest from the currently executing context for that. It may be
critical for cases when executing contract is being updated firstly,
and after that it calls another contract. So we need an old (executing)
contract manifest for this check.

This change likely does not affect the mainnet's state since it's
hard to meet the trigger criteria, thus we suggest not to use a hardfok.

A port of nspcc-dev/neo-go#3473. This bug was
discovered during the similar problem fix in
nspcc-dev/neo-go#3471 and
nspcc-dev/neo-go#3472. I've checked all other
similar usages and the rest of them use proper contract state (executing
one, not the Management's one).

Signed-off-by: Anna Shaleva <shaleva.ann@nspcc.ru>
AnnaShaleva added a commit to neo-project/neo that referenced this issue Jun 4, 2024
It's not correct to use an updated contract state got from native
Management to check for the allowed method call. We need to use
manifest from the currently executing context for that. It may be
critical for cases when executing contract is being updated firstly,
and after that it calls another contract. So we need an old (executing)
contract manifest for this check.

This change likely does not affect the mainnet's state since it's
hard to meet the trigger criteria, thus we suggest not to use a hardfok.

A port of nspcc-dev/neo-go#3473. This bug was
discovered during the similar problem described in
nspcc-dev/neo-go#3471 and fixed in
nspcc-dev/neo-go#3472. I've checked all other
similar usages and the rest of them use proper contract state (executing
one, not the Management's one).

Signed-off-by: Anna Shaleva <shaleva.ann@nspcc.ru>
AnnaShaleva added a commit to neo-project/neo that referenced this issue Jun 4, 2024
It's not correct to use an updated contract state got from native
Management to check for the allowed method call. We need to use
manifest from the currently executing context for that. It may be
critical for cases when executing contract is being updated firstly,
and after that it calls another contract. So we need an old (executing)
contract manifest for this check.

This change is moved under D hardfork to avoid state diff issues on
nodes update. Although it should be noted that it's hard to meet the
trigger criteria.

A port of nspcc-dev/neo-go#3473. This bug was
discovered during the similar problem described in
nspcc-dev/neo-go#3471 and fixed in
nspcc-dev/neo-go#3472. I've checked all other
similar usages and the rest of them use proper contract state (executing
one, not the Management's one).

Signed-off-by: Anna Shaleva <shaleva.ann@nspcc.ru>
NGDAdmin pushed a commit to neo-project/neo that referenced this issue Jun 11, 2024
It's not correct to use an updated contract state got from native
Management to check for the allowed method call. We need to use
manifest from the currently executing context for that. It may be
critical for cases when executing contract is being updated firstly,
and after that it calls another contract. So we need an old (executing)
contract manifest for this check.

This change is moved under D hardfork to avoid state diff issues on
nodes update. Although it should be noted that it's hard to meet the
trigger criteria.

A port of nspcc-dev/neo-go#3473. This bug was
discovered during the similar problem described in
nspcc-dev/neo-go#3471 and fixed in
nspcc-dev/neo-go#3472. I've checked all other
similar usages and the rest of them use proper contract state (executing
one, not the Management's one).

Signed-off-by: Anna Shaleva <shaleva.ann@nspcc.ru>
Co-authored-by: Shargon <shargon@gmail.com>
Co-authored-by: Jimmy <jinghui@wayne.edu>
Co-authored-by: Vitor Nazário Coelho <vncoelho@gmail.com>
NGDAdmin added a commit to neo-project/neo that referenced this issue Jun 12, 2024
* [Neo Core Bug]fix 3300 (#3301)

* fix 3300

* update format

* add state subitems to ref counter, with suggestion from DuSmart

* apply hardfork

* format

* my mistake

* fix hardfork

* remove negative check

* add unit test

* apply anna's suggestion

---------

Co-authored-by: Shargon <shargon@gmail.com>
Co-authored-by: NGD Admin <154295625+NGDAdmin@users.noreply.github.com>

* SmartContract: use executing contract state to check permissions (#3290)

It's not correct to use an updated contract state got from native
Management to check for the allowed method call. We need to use
manifest from the currently executing context for that. It may be
critical for cases when executing contract is being updated firstly,
and after that it calls another contract. So we need an old (executing)
contract manifest for this check.

This change is moved under D hardfork to avoid state diff issues on
nodes update. Although it should be noted that it's hard to meet the
trigger criteria.

A port of nspcc-dev/neo-go#3473. This bug was
discovered during the similar problem described in
nspcc-dev/neo-go#3471 and fixed in
nspcc-dev/neo-go#3472. I've checked all other
similar usages and the rest of them use proper contract state (executing
one, not the Management's one).

Signed-off-by: Anna Shaleva <shaleva.ann@nspcc.ru>
Co-authored-by: Shargon <shargon@gmail.com>
Co-authored-by: Jimmy <jinghui@wayne.edu>
Co-authored-by: Vitor Nazário Coelho <vncoelho@gmail.com>

* v3.7.5

* Neo.CLI: enable hardforks for NeoFS mainnet (#3240)

Otherwise this configuration file is broken. Port changes from
nspcc-dev/neo-go#3446.

Signed-off-by: Anna Shaleva <shaleva.ann@nspcc.ru>

* fix workflow & FS config

* remove hardfork for fs testnet

---------

Signed-off-by: Anna Shaleva <shaleva.ann@nspcc.ru>
Co-authored-by: Jimmy <jinghui@wayne.edu>
Co-authored-by: Shargon <shargon@gmail.com>
Co-authored-by: NGD Admin <154295625+NGDAdmin@users.noreply.github.com>
Co-authored-by: Anna Shaleva <shaleva.ann@nspcc.ru>
Co-authored-by: Vitor Nazário Coelho <vncoelho@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working I4 No visible changes S4 Routine U0 Needs to be resolved immediately
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants