diff --git a/core/shared/src/main/scala/sigma/util/CollectionUtil.scala b/core/shared/src/main/scala/sigma/util/CollectionUtil.scala index 981a9fd5f0..d6bcd69767 100644 --- a/core/shared/src/main/scala/sigma/util/CollectionUtil.scala +++ b/core/shared/src/main/scala/sigma/util/CollectionUtil.scala @@ -41,18 +41,6 @@ object CollectionUtil { result } - /** Concatenate all the arrays in the sequence. */ - def concatArrays[T: ClassTag](seq: Traversable[Array[T]]): Array[T] = { - val length: Int = seq.map(_.length).sum - val result: Array[T] = new Array[T](length) - var pos: Int = 0 - seq.foreach { array => - System.arraycopy(array, 0, result, pos, array.length) - pos += array.length - } - result - } - /** Computes the deep hash code for the given array. * * This method calculates the hash code based on the array's elements and type, taking nested arrays diff --git a/interpreter/shared/src/main/scala/sigmastate/interpreter/InterpreterContext.scala b/interpreter/shared/src/main/scala/sigmastate/interpreter/InterpreterContext.scala index ba6b6c7d6f..864146ca07 100644 --- a/interpreter/shared/src/main/scala/sigmastate/interpreter/InterpreterContext.scala +++ b/interpreter/shared/src/main/scala/sigmastate/interpreter/InterpreterContext.scala @@ -49,10 +49,6 @@ object ContextExtension { val values = (0 until extSize) .map(_ => (r.getByte(), r.getValue().asInstanceOf[EvaluatedValue[_ <: SType]])) - // TODO v6.0: enforce ordering e.g. using the code below (see https://github.com/ScorexFoundation/sigmastate-interpreter/issues/681) - // if (VersionContext.current.activatedVersion > JitActivationVersion) { - // ContextExtension(mutable.LinkedHashMap(values: _*)) - ContextExtension(values.toMap) } } diff --git a/sc/shared/src/test/scala/org/ergoplatform/ErgoLikeTransactionSpec.scala b/sc/shared/src/test/scala/org/ergoplatform/ErgoLikeTransactionSpec.scala index 90c28c6e1d..6e2584ba2f 100644 --- a/sc/shared/src/test/scala/org/ergoplatform/ErgoLikeTransactionSpec.scala +++ b/sc/shared/src/test/scala/org/ergoplatform/ErgoLikeTransactionSpec.scala @@ -19,7 +19,6 @@ import sigmastate.helpers.TestingHelpers.copyTransaction import sigmastate.utils.Helpers import sigma.SigmaDslTesting import sigma.Extensions._ -import sigma.util.CollectionUtil.concatArrays import sigmastate.utils.Helpers.EitherOps // required for Scala 2.11 class ErgoLikeTransactionSpec extends SigmaDslTesting with JsonCodecs { @@ -457,9 +456,11 @@ class ErgoLikeTransactionSpec extends SigmaDslTesting with JsonCodecs { // check the extensions are expected - val exts = Base16.encode(concatArrays( - tx2.inputs.map(in => ContextExtension.serializer.toBytes(in.spendingProof.extension)) - )) + val exts = Base16.encode( + tx2.inputs + .flatMap(in => ContextExtension.serializer.toBytes(in.spendingProof.extension)) + .toArray + ) val expectedExts = "02000e9f0f03eb6ce4f6ebf591fb573a47a5f45dc32dda1df82e086bbe1f09be1cb08eb755c702039208bc4eef9a03e8d78b8663a301bb5faddca78be19d7fe535b3c64cbefe42039d2a0a218d7c48c8fd46a8d29431bd056c84882a216a567326c3c7984ec83500000052073b233f9224be81ed84020c69bbd0cf03dc57cda5486dc50f49c2fb65b9c5de6300000022696d2e706169646569612e7374616b696e672e636f6e7472616374732e5374616b65000000066c61746573740003ad08081f556b87ee0dc46268b34249ecd7b0f6f0cf42815db8f810140b8133b70000038c2861b79527ca2b127e8810825fdd482679e938a73e62d50c0acaafbfc33e170209820fcb8871fb450c3e06b7cb5e27b0455087a366621a9dde7582a019111e3e0cd12d6cce7fef5daa90b45e7a0b3feb7b889c8cb4dbe458f81b91cb2dc0adf700000056071f96aa5c76e1b753546096cce3146970ff136b73c6c2426d49076627c60d9c0300000026696d2e706169646569612e7374616b696e672e636f6e7472616374732e5374616b65566f7465000000066c6174657374000003f196e783d22a19d0b359d9937f5c244d1f1fe664e0fc685439c9064940787c51ff03f40602753476d35f0373a2ddd03c6306e1192c6c729acf984550729c2ce224e6ff01035c4fb1d25cbaf3a3532ed97310b9db523e3f0e9dcfdd39c35565eec364c6f2e00331cc638f36191662151900b3de1f51ac2d932f58c54bcf5cc6de65ad0e12d5780371d59fdfd95372b157c05ac5206634cc6a11cb7be0008b275d598fd9206eda29023a11955c4719e588bce6a7611d27bd1fdfdb57385caee266d8040c894f1c2e1d3b0839c7f77efc86dba0a45faacd64a638b68e0ac26aa80a158c8ebe57ae15830000005d0733c60503ff52123772daeac14d72f684ce371bf2785087bb09878150d78549f80000002d696d2e706169646569612e7374616b696e672e636f6e7472616374732e5374616b6550726f6669745368617265000000066c617465737400000103d479de5022c92078576191f4ec13915a729deaa9e655bf042480b1f487b99a0dff000003692a0389f5568d6be39754a8b295d273094d7eb9c2529dd73f6519dbf462f3010329df0cdb571558cb9f731c42db7347d55739b1a5fdb89f1f344204647fb4c5ae037db586ef0582dfc907adcb513a71f0d770144ae6e041a116e7aba24158e158c7024fd8b0d6d98242726f57b3dfa686126792b8e5056e1d51b6e90d6880cf2dcdc5528dc9e30a9e7a9786eea3093fddce3c3e82c87fe4136e059ab4a3baa1a4f5490000005a078c6c14c5ed690041c4df42e5e627c313ca870d584666844a71ec70d3b04f90b70000002a696d2e706169646569612e7374616b696e672e636f6e7472616374732e5374616b65536e617073686f74000000066c617465737400000101037883036822c647d301aa181799c949f8a40ab61ae2c4a2d26848a1eca34339ccffff036756a2cdf00690da5984f2680bb20143af90d5dc53a847cf69552de5e8f8fea603e93db403babf1829d3630f412f7e75126dc8fe06a9af5ccae817818b0f923138028830612c52355f6f280d1297f19f67b078c9daa7d7b04b459c91cc644957c280892e6f47a10d5c90b87ad4863355cead00c3e2983217ee15533253cd9a6025c20000005807acfbfb8d5b5108a6bcba28d96e6a1c23a3b2a1500d74a4b5646d63a92b3a258e00000028696d2e706169646569612e7374616b696e672e636f6e7472616374732e4368616e67655374616b65000000066c61746573740000028bc78f1c6aaec91e628e15cf668c16cc1e9bd8e4b9b7e16d6318b5f523a5e9bd0000005a07fd6dad711f5f93b5d788b2f9a8145c2b49fea6095044759c679f29b0e06e14ee0000002a696d2e706169646569612e7374616b696e672e636f6e7472616374732e5374616b65436f6d706f756e64000000066c617465737400028f90981e071173fb1bb8d89741720a4838ee6614635a2931575f46cc1ba23b610000005407b0a75422339f6a60bbca898b8345b8f02cad644f68a94ddbf55f127835dd154a00000024696d2e706169646569612e7374616b696e672e636f6e7472616374732e556e7374616b65000000066c617465737400000003042ea631a5e8a46726f7328dd491fc58a329e49a87337a0f138495df985c813f000373ed6efca152c5bea220d949b26fc9c679d9da83b1ce64a469c18519790b23c2ff0103253c1c4b5771de43d4383cc1c0fb120db149965d370c6d64155b033f7b923c1b03841d98088445454ad639a3d65f142d5a0d5cfd50002f3d417272438edde4de5203b7db2ecffb7f3157905e3c7ba8862c136ec5dc7ef41ef2215815f2431090982702deaecf5b64bad6f5570bad0a610c4e484957cf4782308400bc90404c1d1410dae12a45275dc4a032174f973aa7a621c45518caeb4f0943106b6aa926a304f5120000005707a494c122a6fdb63fe8224a797e678384f937d5625cfad5469aa8e2d9599555c200000027696d2e706169646569612e7374616b696e672e636f6e7472616374732e5374616b655374617465000000066c61746573740003046a30ec7a0caa7917718f3b155108ac75b419bbc706c2065cd90b7d44588fda0000ff0103b2af5cb66e6c1ad1121b5015b01c00385a16dd603948c5008e5420969979a5dcff010104c457a729b4931b01020407000eb70603e01b42b1c11723cf5c01ab8ec657ae509b3c70f79ffa24da41f3568c536d798103692a0389f5568d6be39754a8b295d273094d7eb9c2529dd73f6519dbf462f301024932c28754f2e4fab8e85af8ee3deb5bbe4924b7585466d20deed4c99e4191a249760084f7d55ab90470ebf4d4baaf057d8b42d8cc2dab619edaa2998a10479d000000060a0a0000000003342f928c7ed219a5aaf29c4b29bd1bf169467ae8603b33d7e78a83ae49769da10101037883036822c647d301aa181799c949f8a40ab61ae2c4a2d26848a1eca34339ccffff036756a2cdf00690da5984f2680bb20143af90d5dc53a847cf69552de5e8f8fea603638aeb06b3049ff977664ef2fc02993741ef6bc118c83b25389321b7abf948e102892e6f47a10d5c90b87ad4863355cead00c3e2983217ee15533253cd9a6025c28bc78f1c6aaec91e628e15cf668c16cc1e9bd8e4b9b7e16d6318b5f523a5e9bd0000005a07fd6dad711f5f93b5d788b2f9a8145c2b49fea6095044759c679f29b0e06e14ee0000002a696d2e706169646569612e7374616b696e672e636f6e7472616374732e5374616b65436f6d706f756e64000000066c617465737400036d662d230cb41b6d228e04d664451b092785bfa8f0a5e38ea84a8c47663e1ac5000003042ea631a5e8a46726f7328dd491fc58a329e49a87337a0f138495df985c813f000373ed6efca152c5bea220d949b26fc9c679d9da83b1ce64a469c18519790b23c2ff0103ec51dc389fb02cd78ad59f29be3b75762259347d9c199c35ed3be637234787da0336d703874a7f5f50ba0f85ee86201212ea0b235e29986f72e158c4d1c98ae161039f3a488b1ae525477f300719d82844e32833486d07ebe3dd6241c9b91e43190402efc4f603dea6041286a89f5bd516ac96ea5b25da4f08d76c6927e01d61b22adff0367ddf3435981f4aa5571b91dd46fe813667f2888d4fc691968fde15879b97000000260a000000002000ad20adc989005bb7c79afa64bad214da89c7e627dcb3d5d43580500f08ac2800000351bf7a6ee68cc3e271165a8c4db85be4efb80d87274ab59e5a7eff31a3661b71ff038a8293153829a4505fe4751ac03d4424c2e7d2eafbf6887548f4ad5782c80912ffff010104186d05050e46020000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000004010c3c0e0e142001589f5046591dc1d26205ba59c5da7b53f3545334816a5fc13de877fe6118f61800000000000000000000000009573d9c00000000000076a220059f1b28e002bd752edd29ec09d1409eaf378857f8b70d9a279b640c130c7d10180000018b04b346390000000013a608b200000000000184f8200cb46ec0517046547001c9147d3dc49d738c883ee8e662a4d4fec6c0479f2a41180000018b10954f99000000001d32fba20000000000052eaa200ea9e5c853fda20cbc5121856e8075e1dcf70aab09e6ae354f40b9241a683a41180000018b045782ed0000000016739515000000000001b9c6202bc48826586af1a980a55acd834f57bc61f6052bdc891a6cc56bf503e9810a7d180000018aff88ac1f00000000062920e6000000000000ac1d2059abd2a3048bcd4c1e09aae894c4333af5033c3691cd516446e0499ef4429ed8180000000000000000000000003ef71392000000000003ea892072df19aefe2083c497fea8d3ab483a3f1b794a61eef61d35e77c416da9a6227a18000000000000000000000000009c3c4100000000000008e2207350a28c9e9e96312160029480693456e727add012e53faa9f75cbd8fdaf8ac5180000018b04b346390000000042fbbc7e000000000004e8f7207755a547204d2fc0d74e5dd14269ec79af088427353ed2268ffc8fb6a643f1aa1800000000000000000000000018f25226000000000000f124208c1e7db16cc30de47d072be61be6f4af8a97997f277041a2d2b48a52b78e6a56180000018b4d48257000000002308ce71800000000003bfba22099cf8f1e3cf8d440d69e9bc49b3ec4629d269523f193c065128ad97183f040b9180000018b680d4ec000000000032db5630000000000008ee520a160b1becc042983975e581c2f102931811eafc056af0320e81d327f168c7b0f180000018b4d48257000000001886334cb000000000021809820ab27947c472632d7cfece63e5cf94ad711b1479069217141b75f7042143ebdf3180000018b680d4ec000000000010cbac4000000000000349320b1ed3d0f313632c842d221ccf278fe8ddb0e5e10222823385e88c03d11c2fcb918000000000000000000000000008ff4df0000000000000a1f20bc1390bb526a741f1c9ad1526fa05c2c3bce353fb517cef91fa9b25088f86c92180000018c07d1ab7100000000071fd106000000000000f18a20c0340d8d77941d4ea0c2d1072359e0b423ee98adcbbd2fcc3a06e582cdc33a77180000018b0bca79510000000006ab2c550000000000008f5b20c324d257e51e0f9357b83677bca8e43f912e9a42f0972f8aeeb6efad4ab2e149180000018af6463f8800000000123a6b440000000000021dc520c3596bc7136b6b3eab9c2f7302316211f02d8e97c294f6f134156ff72572b69e180000018c07d1ab7100000001c99d2dc7000000000036065520c5ed1f895d60d20d8474ceb68124e6501698eb011c7478af33833f77ae19356a180000018b05bc55ab000000000181c047000000000000260e20d9a5970722adbd8ed1dbf0ba783c5ca5615a96651befc2f9447eee905a131baa180000018b682470e400000000011910a000000000000036c1060eb90e03c2e8371d6033cf8ca0fcf072738c28237be5ad7697c2f2e418d1710c25760f900201589f5046591dc1d26205ba59c5da7b53f3545334816a5fc13de877fe6118f6059f1b28e002bd752edd29ec09d1409eaf378857f8b70d9a279b640c130c7d10000000180000000000000000000000000940156600000000000076a200020cb46ec0517046547001c9147d3dc49d738c883ee8e662a4d4fec6c0479f2a41000000180000018b04b34639000000001375528e00000000000184f8ff020ea9e5c853fda20cbc5121856e8075e1dcf70aab09e6ae354f40b9241a683a41000000180000018b10954f99000000001cea98210000000000052eaa0210d819186d6d191bda7b19be4b51981904d7f77a10234eb10b01bd5fc8e235c5000000180000018b045782ed00000000163bec0a000000000001b9c6000346484d4591bba241cf34c6b3d2c326aff25d4280b3d83433a74b35245f89a64c0000022bc48826586af1a980a55acd834f57bc61f6052bdc891a6cc56bf503e9810a7d4bb0f76e84f71f2fa8b5155975e65bdcfaffe447813106ad0c233a1cc1709e76000000180000018aff88ac1f000000000619dafc000000000000ac1d03554368e4d0b4cc9b3443ad6f72bc0ff71deec537eabecfd17cbecc80fbcf3336010259abd2a3048bcd4c1e09aae894c4333af5033c3691cd516446e0499ef4429ed85aa27c1cb688262d74e10b49fbf4f9679ff11c5e009c9a774a6c77a1f617ec9d000000180000000000000000000000003e5afa2d000000000003ea890367c5206da7a0085c258a95358100090a9066ee13ebb287917320055daabe683000ff033b2c18647710a0e3b935d4f294d6fefe3fdfd765a8b0e9161d442301320431db0272df19aefe2083c497fea8d3ab483a3f1b794a61eef61d35e77c416da9a6227a7350a28c9e9e96312160029480693456e727add012e53faa9f75cbd8fdaf8ac500000018000000000000000000000000009ab8ed00000000000008e202759942e0d2a2f3e1eed24f06b0ef142b2a214b0aa6e6fcc57e10d1656cf9e5b8000000180000018b04b34639000000004255ace8000000000004e8f700034e2e421fd26777fd4c6a0524e6a3d801f03bff81cca0c00c9e6f35f54cc1863e027755a547204d2fc0d74e5dd14269ec79af088427353ed2268ffc8fb6a643f1aa8c1e7db16cc30de47d072be61be6f4af8a97997f277041a2d2b48a52b78e6a560000001800000000000000000000000018c34073000000000000f1240000000001029384d75b5f2302263764d2673003cd44c06c7c408b7c4d8e831300bbed3f0b80000000180000018b4d482570000000022b1f38b500000000003bfb9f03d0d03e447612221ccac12cf3e3d6bc5073d983fb7522c74363f31e0fbde8a4de000299cf8f1e3cf8d440d69e9bc49b3ec4629d269523f193c065128ad97183f040b9a06e5aa62236c9deda8eea97b7efa8d6ccbdc92412d9ac7950affa86733dbba5000000180000018b680d4ec0000000000325d4180000000000008ee503a4f896155688f686280ad0c41b47647d4696846644698c596c812c8424575fdd000002a160b1becc042983975e581c2f102931811eafc056af0320e81d327f168c7b0fab27947c472632d7cfece63e5cf94ad711b1479069217141b75f7042143ebdf3000000180000018b4d4825700000000184966c80000000000021809602b1ed3d0f313632c842d221ccf278fe8ddb0e5e10222823385e88c03d11c2fcb9000000180000018b680d4ec000000000010a208d00000000000034930002bc1390bb526a741f1c9ad1526fa05c2c3bce353fb517cef91fa9b25088f86c9200000018000000000000000000000000008e8ffc0000000000000a1fff0002c0340d8d77941d4ea0c2d1072359e0b423ee98adcbbd2fcc3a06e582cdc33a77000000180000018c07d1ab7100000000070e2789000000000000f18a02c324d257e51e0f9357b83677bca8e43f912e9a42f0972f8aeeb6efad4ab2e149000000180000018b0bca795100000000069aa4050000000000008f5b0002c3596bc7136b6b3eab9c2f7302316211f02d8e97c294f6f134156ff72572b69e000000180000018af6463f8800000000120d3a930000000000021dc5ff02c5ed1f895d60d20d8474ceb68124e6501698eb011c7478af33833f77ae19356a000000180000018c07d1ab7100000001c52eb0ec000000000036065202c651edb2390f548366a8a81d6034ba8f4754e56a29ea418eb87965457731ea7e000000180000018b05bc55ab00000000017e03f3000000000000260e0003c5023d6899389cedc58954c06f1cc3132dcfc979647b33a6d6e8f5dee42f326800038ff5384fd73e89db8c72c2a6ad6ba8b5cf6f92c49d12c8a194b1a88efd434ac202d9a5970722adbd8ed1dbf0ba783c5ca5615a96651befc2f9447eee905a131baaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000180000018b682470e400000000011657d400000000000036c100ff01010004eff6ea358e026fb512ce08c700020eb90e03c2e8371d6033cf8ca0fcf072738c28237be5ad7697c2f2e418d1710c25760f900201589f5046591dc1d26205ba59c5da7b53f3545334816a5fc13de877fe6118f6059f1b28e002bd752edd29ec09d1409eaf378857f8b70d9a279b640c130c7d10000000180000000000000000000000000940156600000000000076a200020cb46ec0517046547001c9147d3dc49d738c883ee8e662a4d4fec6c0479f2a41000000180000018b04b34639000000001375528e00000000000184f8ff020ea9e5c853fda20cbc5121856e8075e1dcf70aab09e6ae354f40b9241a683a41000000180000018b10954f99000000001cea98210000000000052eaa0210d819186d6d191bda7b19be4b51981904d7f77a10234eb10b01bd5fc8e235c5000000180000018b045782ed00000000163bec0a000000000001b9c6000346484d4591bba241cf34c6b3d2c326aff25d4280b3d83433a74b35245f89a64c0000022bc48826586af1a980a55acd834f57bc61f6052bdc891a6cc56bf503e9810a7d4bb0f76e84f71f2fa8b5155975e65bdcfaffe447813106ad0c233a1cc1709e76000000180000018aff88ac1f000000000619dafc000000000000ac1d03554368e4d0b4cc9b3443ad6f72bc0ff71deec537eabecfd17cbecc80fbcf3336010259abd2a3048bcd4c1e09aae894c4333af5033c3691cd516446e0499ef4429ed85aa27c1cb688262d74e10b49fbf4f9679ff11c5e009c9a774a6c77a1f617ec9d000000180000000000000000000000003e5afa2d000000000003ea890367c5206da7a0085c258a95358100090a9066ee13ebb287917320055daabe683000ff033b2c18647710a0e3b935d4f294d6fefe3fdfd765a8b0e9161d442301320431db0272df19aefe2083c497fea8d3ab483a3f1b794a61eef61d35e77c416da9a6227a7350a28c9e9e96312160029480693456e727add012e53faa9f75cbd8fdaf8ac500000018000000000000000000000000009ab8ed00000000000008e202759942e0d2a2f3e1eed24f06b0ef142b2a214b0aa6e6fcc57e10d1656cf9e5b8000000180000018b04b34639000000004255ace8000000000004e8f700034e2e421fd26777fd4c6a0524e6a3d801f03bff81cca0c00c9e6f35f54cc1863e027755a547204d2fc0d74e5dd14269ec79af088427353ed2268ffc8fb6a643f1aa8c1e7db16cc30de47d072be61be6f4af8a97997f277041a2d2b48a52b78e6a560000001800000000000000000000000018c34073000000000000f1240000000001029384d75b5f2302263764d2673003cd44c06c7c408b7c4d8e831300bbed3f0b80000000180000018b4d482570000000022b1f38b500000000003bfb9f03d0d03e447612221ccac12cf3e3d6bc5073d983fb7522c74363f31e0fbde8a4de000299cf8f1e3cf8d440d69e9bc49b3ec4629d269523f193c065128ad97183f040b9a06e5aa62236c9deda8eea97b7efa8d6ccbdc92412d9ac7950affa86733dbba5000000180000018b680d4ec0000000000325d4180000000000008ee503a4f896155688f686280ad0c41b47647d4696846644698c596c812c8424575fdd000002a160b1becc042983975e581c2f102931811eafc056af0320e81d327f168c7b0fab27947c472632d7cfece63e5cf94ad711b1479069217141b75f7042143ebdf3000000180000018b4d4825700000000184966c80000000000021809602b1ed3d0f313632c842d221ccf278fe8ddb0e5e10222823385e88c03d11c2fcb9000000180000018b680d4ec000000000010a208d00000000000034930002bc1390bb526a741f1c9ad1526fa05c2c3bce353fb517cef91fa9b25088f86c9200000018000000000000000000000000008e8ffc0000000000000a1fff0002c0340d8d77941d4ea0c2d1072359e0b423ee98adcbbd2fcc3a06e582cdc33a77000000180000018c07d1ab7100000000070e2789000000000000f18a02c324d257e51e0f9357b83677bca8e43f912e9a42f0972f8aeeb6efad4ab2e149000000180000018b0bca795100000000069aa4050000000000008f5b0002c3596bc7136b6b3eab9c2f7302316211f02d8e97c294f6f134156ff72572b69e000000180000018af6463f8800000000120d3a930000000000021dc5ff02c5ed1f895d60d20d8474ceb68124e6501698eb011c7478af33833f77ae19356a000000180000018c07d1ab7100000001c52eb0ec000000000036065202c651edb2390f548366a8a81d6034ba8f4754e56a29ea418eb87965457731ea7e000000180000018b05bc55ab00000000017e03f3000000000000260e0003c5023d6899389cedc58954c06f1cc3132dcfc979647b33a6d6e8f5dee42f326800038ff5384fd73e89db8c72c2a6ad6ba8b5cf6f92c49d12c8a194b1a88efd434ac202d9a5970722adbd8ed1dbf0ba783c5ca5615a96651befc2f9447eee905a131baaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000180000018b682470e400000000011657d400000000000036c100ff01010004eff6ea358e026fb512ce08c700030ea60a03c2e8371d6033cf8ca0fcf072738c28237be5ad7697c2f2e418d1710c25760f900201589f5046591dc1d26205ba59c5da7b53f3545334816a5fc13de877fe6118f6059f1b28e002bd752edd29ec09d1409eaf378857f8b70d9a279b640c130c7d10000000180000000000000000000000000928ed1f000000000000713a00020cb46ec0517046547001c9147d3dc49d738c883ee8e662a4d4fec6c0479f2a41000000180000018b04b346390000000013449c470000000000017998ff020ea9e5c853fda20cbc5121856e8075e1dcf70aab09e6ae354f40b9241a683a41000000180000018b10954f99000000001ca2346c0000000000051dc2022bc48826586af1a980a55acd834f57bc61f6052bdc891a6cc56bf503e9810a7d000000180000018b045782ed00000000160442d7000000000001acc6000259abd2a3048bcd4c1e09aae894c4333af5033c3691cd516446e0499ef4429ed8000000180000018aff88ac1f00000000060a9507000000000000a88c0272df19aefe2083c497fea8d3ab483a3f1b794a61eef61d35e77c416da9a6227a000000180000000000000000000000003dbee058000000000003c613000000027350a28c9e9e96312160029480693456e727add012e53faa9f75cbd8fdaf8ac500000018000000000000000000000000009935980000000000000888027755a547204d2fc0d74e5dd14269ec79af088427353ed2268ffc8fb6a643f1aa000000180000018b04b346390000000041af9cdb000000000004c22d028c1e7db16cc30de47d072be61be6f4af8a97997f277041a2d2b48a52b78e6a5600000018000000000000000000000000129e4d9e000000000000e6260001ff0299cf8f1e3cf8d440d69e9bc49b3ec4629d269523f193c065128ad97183f040b9000000180000018b4d4825700000000225b1866c00000000003ab70002a160b1becc042983975e581c2f102931811eafc056af0320e81d327f168c7b0f000000180000018b680d4ec000000000031df2c70000000000008d0e0002ab27947c472632d7cfece63e5cf94ad711b1479069217141b75f7042143ebdf3000000180000018b4d4825700000000180c9a17a0000000000209d5a02b1ed3d0f313632c842d221ccf278fe8ddb0e5e10222823385e88c03d11c2fcb9000000180000018b680d4ec0000000000107865400000000000033f80002bc1390bb526a741f1c9ad1526fa05c2c3bce353fb517cef91fa9b25088f86c9200000018000000000000000000000000008d2b1800000000000009ccff0102c0340d8d77941d4ea0c2d1072359e0b423ee98adcbbd2fcc3a06e582cdc33a77000000180000018b4d4825700000000006fc7dff000000000000ed6a02c324d257e51e0f9357b83677bca8e43f912e9a42f0972f8aeeb6efad4ab2e149000000180000018b0bca795100000000068a1ba90000000000008b7f0002c3596bc7136b6b3eab9c2f7302316211f02d8e97c294f6f134156ff72572b69e000000180000018af6463f880000000011e009c20000000000021337ff02c5ed1f895d60d20d8474ceb68124e6501698eb011c7478af33833f77ae19356a000000180000018b20547bfa00000001c0c030e2000000000034fd5002d9a5970722adbd8ed1dbf0ba783c5ca5615a96651befc2f9447eee905a131baa000000180000018b05bc55ab00000000017a479c000000000000252f02ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000180000018b682470e40000000001139f06000000000000361f000100000004eff69aa3196e5a0967841000040ea70a02000000000000000000000000000000000000000000000000000000000000000001589f5046591dc1d26205ba59c5da7b53f3545334816a5fc13de877fe6118f60000000002059f1b28e002bd752edd29ec09d1409eaf378857f8b70d9a279b640c130c7d10000000180000000000000000000000000928ed1f000000000000713a00020cb46ec0517046547001c9147d3dc49d738c883ee8e662a4d4fec6c0479f2a41000000180000018b04b346390000000013449c470000000000017998ff020ea9e5c853fda20cbc5121856e8075e1dcf70aab09e6ae354f40b9241a683a41000000180000018b10954f99000000001ca2346c0000000000051dc2022bc48826586af1a980a55acd834f57bc61f6052bdc891a6cc56bf503e9810a7d000000180000018b045782ed00000000160442d7000000000001acc6000259abd2a3048bcd4c1e09aae894c4333af5033c3691cd516446e0499ef4429ed8000000180000018aff88ac1f00000000060a9507000000000000a88c0272df19aefe2083c497fea8d3ab483a3f1b794a61eef61d35e77c416da9a6227a000000180000000000000000000000003dbee058000000000003c613000000027350a28c9e9e96312160029480693456e727add012e53faa9f75cbd8fdaf8ac500000018000000000000000000000000009935980000000000000888027755a547204d2fc0d74e5dd14269ec79af088427353ed2268ffc8fb6a643f1aa000000180000018b04b346390000000041af9cdb000000000004c22d028c1e7db16cc30de47d072be61be6f4af8a97997f277041a2d2b48a52b78e6a5600000018000000000000000000000000129e4d9e000000000000e6260001ff0299cf8f1e3cf8d440d69e9bc49b3ec4629d269523f193c065128ad97183f040b9000000180000018b4d4825700000000225b1866c00000000003ab70002a160b1becc042983975e581c2f102931811eafc056af0320e81d327f168c7b0f000000180000018b680d4ec000000000031df2c70000000000008d0e0002ab27947c472632d7cfece63e5cf94ad711b1479069217141b75f7042143ebdf3000000180000018b4d4825700000000180c9a17a0000000000209d5a02b1ed3d0f313632c842d221ccf278fe8ddb0e5e10222823385e88c03d11c2fcb9000000180000018b680d4ec0000000000107865400000000000033f80002bc1390bb526a741f1c9ad1526fa05c2c3bce353fb517cef91fa9b25088f86c9200000018000000000000000000000000008d2b1800000000000009ccff0102c0340d8d77941d4ea0c2d1072359e0b423ee98adcbbd2fcc3a06e582cdc33a77000000180000018b4d4825700000000006fc7dff000000000000ed6a02c324d257e51e0f9357b83677bca8e43f912e9a42f0972f8aeeb6efad4ab2e149000000180000018b0bca795100000000068a1ba90000000000008b7f0002c3596bc7136b6b3eab9c2f7302316211f02d8e97c294f6f134156ff72572b69e000000180000018af6463f880000000011e009c20000000000021337ff02c5ed1f895d60d20d8474ceb68124e6501698eb011c7478af33833f77ae19356a000000180000018b20547bfa00000001c0c030e2000000000034fd5002d9a5970722adbd8ed1dbf0ba783c5ca5615a96651befc2f9447eee905a131baa000000180000018b05bc55ab00000000017a479c000000000000252f02ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000180000018b682470e40000000001139f06000000000000361f000100000004efeeed6e6fb76e2d0102000ef40303e01b42b1c11723cf5c01ab8ec657ae509b3c70f79ffa24da41f3568c536d798103dda4c007ce8365b877b79e8b30a927e15b438b674e39e8ab9dc1b901c6feb8c303dd36ea8f88b9263cbde24fcdad778475e8f94bb6901c2556d79e5fa167e236ae025bcff102254366780cd5191257050a6ed33ac5d12eef0e304139ed5d981f4bfa5be447c71392c430b0126048269f9a788af35527755face9d229fd86530e34f5000000090300000000004c4b40000398eb5d3b8876940dccef4fa83bcebdd738dbeef9482f55cd13c034025412a83affffff0311ee6ddc0c44d48571f45874e8007cf669cd3338679165d8ea9cf35357bdda3b03ec51dc389fb02cd78ad59f29be3b75762259347d9c199c35ed3be637234787da037935a425cf6ad3f58f04db153bf2e7ca5d985e3fa12fc7cfad61f73c9ce8e39a02ecf2d04bae48a00a8a6e49c0567263c9f5d23f26c82358a176abd1f021d8b130eeab3b56ae3fcb0ad2ffc7548748cee3ce641da2998b4a78e1559ec7320e40450000000903000000000000006400038179943fc3ecaa747fcb4cc813933f82005475db2f09261cf27c5ecab30b3b40000351bf7a6ee68cc3e271165a8c4db85be4efb80d87274ab59e5a7eff31a3661b71ff038a8293153829a4505fe4751ac03d4424c2e7d2eafbf6887548f4ad5782c80912ffff010104b804010eb80503e01b42b1c11723cf5c01ab8ec657ae509b3c70f79ffa24da41f3568c536d798103692a0389f5568d6be39754a8b295d273094d7eb9c2529dd73f6519dbf462f3010329df0cdb571558cb9f731c42db7347d55739b1a5fdb89f1f344204647fb4c5ae037db586ef0582dfc907adcb513a71f0d770144ae6e041a116e7aba24158e158c7024fd8b0d6d98242726f57b3dfa686126792b8e5056e1d51b6e90d6880cf2dcdc5528dc9e30a9e7a9786eea3093fddce3c3e82c87fe4136e059ab4a3baa1a4f5490000005a078c6c14c5ed690041c4df42e5e627c313ca870d584666844a71ec70d3b04f90b70000002a696d2e706169646569612e7374616b696e672e636f6e7472616374732e5374616b65536e617073686f74000000066c617465737400000101037883036822c647d301aa181799c949f8a40ab61ae2c4a2d26848a1eca34339ccffff036756a2cdf00690da5984f2680bb20143af90d5dc53a847cf69552de5e8f8fea603638aeb06b3049ff977664ef2fc02993741ef6bc118c83b25389321b7abf948e102892e6f47a10d5c90b87ad4863355cead00c3e2983217ee15533253cd9a6025c28bc78f1c6aaec91e628e15cf668c16cc1e9bd8e4b9b7e16d6318b5f523a5e9bd0000005a07fd6dad711f5f93b5d788b2f9a8145c2b49fea6095044759c679f29b0e06e14ee0000002a696d2e706169646569612e7374616b696e672e636f6e7472616374732e5374616b65436f6d706f756e64000000066c617465737400036d662d230cb41b6d228e04d664451b092785bfa8f0a5e38ea84a8c47663e1ac5000003042ea631a5e8a46726f7328dd491fc58a329e49a87337a0f138495df985c813f000373ed6efca152c5bea220d949b26fc9c679d9da83b1ce64a469c18519790b23c2ff0103337f72319307df7b0c3bc42c6e24c16d3ad0d011400d5f2712ec2d6aeaf8629f010104da02" expectedExts should be(exts) diff --git a/sdk/shared/src/main/scala/org/ergoplatform/sdk/JsonCodecs.scala b/sdk/shared/src/main/scala/org/ergoplatform/sdk/JsonCodecs.scala index e7b1b47aef..878c936c80 100644 --- a/sdk/shared/src/main/scala/org/ergoplatform/sdk/JsonCodecs.scala +++ b/sdk/shared/src/main/scala/org/ergoplatform/sdk/JsonCodecs.scala @@ -245,13 +245,7 @@ trait JsonCodecs { implicit val contextExtensionDecoder: Decoder[ContextExtension] = Decoder.instance({ cursor => for { - values <- { - // TODO v6.0: enforce ordering e.g. using the code below (see https://github.com/ScorexFoundation/sigmastate-interpreter/issues/681) - // if (VersionContext.current.activatedVersion > JitActivationVersion) { - // ContextExtension(mutable.LinkedHashMap(values: _*)) - - cursor.as[Map[Byte, EvaluatedValue[SType]]] - } + values <- cursor.as[Map[Byte, EvaluatedValue[SType]]] } yield ContextExtension(values) })