diff --git a/Cargo.lock b/Cargo.lock index c4e86175f88..71118ec258d 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -153,6 +153,16 @@ dependencies = [ "futures-core", ] +[[package]] +name = "async-dup" +version = "1.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7427a12b8dc09291528cfb1da2447059adb4a257388c2acd6497a79d55cf6f7c" +dependencies = [ + "futures-io", + "simple-mutex", +] + [[package]] name = "async-executor" version = "1.4.1" @@ -183,6 +193,22 @@ dependencies = [ "once_cell", ] +[[package]] +name = "async-h1" +version = "2.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8101020758a4fc3a7c326cb42aa99e9fa77cbfb76987c128ad956406fe1f70a7" +dependencies = [ + "async-channel", + "async-dup", + "async-std", + "futures-core", + "http-types", + "httparse", + "log", + "pin-project", +] + [[package]] name = "async-io" version = "1.6.0" @@ -253,6 +279,19 @@ version = "4.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "30696a84d817107fc028e049980e09d5e140e8da8f1caeb17e8e950658a3cea9" +[[package]] +name = "async-tls" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d85a97c4a0ecce878efd3f945f119c78a646d8975340bca0398f9bb05c30cc52" +dependencies = [ + "futures-core", + "futures-io", + "rustls 0.18.1", + "webpki 0.21.4", + "webpki-roots 0.20.0", +] + [[package]] name = "async-trait" version = "0.1.52" @@ -305,6 +344,12 @@ version = "0.2.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a4521f3e3d031370679b3b140beb36dfe4801b09ac77e30c61941f97df3ef28b" +[[package]] +name = "base64" +version = "0.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3441f0f7b02788e948e47f457ca01f1d7e6d92c693bc132c22b087d3141c03ff" + [[package]] name = "base64" version = "0.13.0" @@ -417,12 +462,6 @@ version = "1.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610" -[[package]] -name = "bytes" -version = "0.5.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0e4cec68f03f32e44924783795810fa50a7035d8c8ebe78580ad7e6c703fba38" - [[package]] name = "bytes" version = "1.1.0" @@ -567,7 +606,7 @@ version = "4.6.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "50b727aacc797f9fc28e355d21f34709ac4fc9adecfe470ad07b8f4464f53062" dependencies = [ - "bytes 1.1.0", + "bytes", "memchr", ] @@ -580,6 +619,17 @@ dependencies = [ "cache-padded", ] +[[package]] +name = "config" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "19b076e143e1d9538dde65da30f8481c2a6c44040edb8e02b9bf1351edb92ce3" +dependencies = [ + "lazy_static", + "nom", + "serde", +] + [[package]] name = "const-random" version = "0.1.13" @@ -627,7 +677,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "03a5d7b21829bc7b4bf4754a978a241ae54ea55a40f92bb20216e54096f4b951" dependencies = [ "aes-gcm", - "base64", + "base64 0.13.0", "hkdf", "hmac", "percent-encoding", @@ -667,6 +717,16 @@ dependencies = [ "cfg-if 1.0.0", ] +[[package]] +name = "crossbeam-queue" +version = "0.3.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1f25d8400f4a7a5778f0e4e52384a48cbd9b5c495d110786187fc750075277a2" +dependencies = [ + "cfg-if 1.0.0", + "crossbeam-utils", +] + [[package]] name = "crossbeam-utils" version = "0.8.8" @@ -744,37 +804,6 @@ dependencies = [ "cipher", ] -[[package]] -name = "curl" -version = "0.4.43" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "37d855aeef205b43f65a5001e0997d81f8efca7badad4fad7d897aa7f0d0651f" -dependencies = [ - "curl-sys", - "libc", - "openssl-probe", - "openssl-sys", - "schannel", - "socket2", - "winapi", -] - -[[package]] -name = "curl-sys" -version = "0.4.53+curl-7.82.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8092905a5a9502c312f223b2775f57ec5c5b715f9a15ee9d2a8591d1364a0352" -dependencies = [ - "cc", - "libc", - "libnghttp2-sys", - "libz-sys", - "openssl-sys", - "pkg-config", - "vcpkg", - "winapi", -] - [[package]] name = "cynic" version = "0.14.1" @@ -871,6 +900,20 @@ dependencies = [ "parking_lot 0.12.0", ] +[[package]] +name = "deadpool" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3d126179d86aee4556e54f5f3c6bf6d9884e7cc52cef82f77ee6f90a7747616d" +dependencies = [ + "async-trait", + "config", + "crossbeam-queue", + "num_cpus", + "serde", + "tokio", +] + [[package]] name = "derivative" version = "2.2.0" @@ -1024,17 +1067,6 @@ dependencies = [ "miniz_oxide", ] -[[package]] -name = "flume" -version = "0.9.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1bebadab126f8120d410b677ed95eee4ba6eb7c6dd8e34a5ec88a08050e26132" -dependencies = [ - "futures-core", - "futures-sink", - "spinning_top", -] - [[package]] name = "fnv" version = "1.0.7" @@ -1122,9 +1154,9 @@ dependencies = [ [[package]] name = "fuel-asm" -version = "0.2.0" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f3861b1aa9a6729865d6499c3f6a731caf157bc2033810ac4157c1b6a96e04c3" +checksum = "1e1ad886f279873618c54895f23b2effcf64218e1163eb838c3ddbede964f119" dependencies = [ "fuel-types", "serde", @@ -1158,9 +1190,9 @@ dependencies = [ [[package]] name = "fuel-gql-client" -version = "0.4.1" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "37e9f918979fb9d7348510a7d993e4204cdc71b7163f1e1cfc7a0b3891af7063" +checksum = "b852db78b8e5044b741158b10b0d824a471a4539dc6772fb258ef7ebfdb3887e" dependencies = [ "chrono", "clap 3.1.6", @@ -1186,7 +1218,7 @@ version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8148b67b9ca99755b8c73fbc5bad7710590e1d7e245680ffd351289915258851" dependencies = [ - "bytes 1.1.0", + "bytes", "digest 0.9.0", "fuel-storage", "generic-array", @@ -1247,9 +1279,9 @@ checksum = "f97a6a68c3378e486d645a47026bcd7139500345ef214653811ea4f016f142ce" [[package]] name = "fuel-tx" -version = "0.6.0" +version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ac5e893eae18d812a14cd1dfb996834705bcaa24eae1f3924c1677ee29d9014" +checksum = "1669a4c16c1d55bca2e93915ee92983e65a281950f3d4a157b2e51f4d0a66e7c" dependencies = [ "fuel-asm", "fuel-crypto 0.3.0", @@ -1272,9 +1304,9 @@ dependencies = [ [[package]] name = "fuel-vm" -version = "0.5.0" +version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ec55ff935848e476dbcfca3931723252b5c33ad90d126f49a886600a8a731a3" +checksum = "4c48bfd8fb29f5f91ac4b73e2cdfd5aa7c194d4696552d1b536ff629bbfde817" dependencies = [ "fuel-asm", "fuel-crypto 0.3.0", @@ -1287,6 +1319,7 @@ dependencies = [ "secp256k1", "serde", "sha3", + "thiserror", "tracing", ] @@ -1494,7 +1527,7 @@ version = "0.3.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "62eeb471aa3e3c9197aa4bfeabfe02982f6dc96f750486c0bb0009ac58b26d2b" dependencies = [ - "bytes 1.1.0", + "bytes", "fnv", "futures-core", "futures-sink", @@ -1519,9 +1552,9 @@ version = "0.3.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4cff78e5788be1e0ab65b04d306b2ed5092c815ec97ec70f4ebd5aee158aa55d" dependencies = [ - "base64", + "base64 0.13.0", "bitflags", - "bytes 1.1.0", + "bytes", "headers-core", "http", "httpdate", @@ -1594,7 +1627,7 @@ version = "0.2.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "31f4c6746584866f0feabcc69893c5b51beef3831656a968ed7ae254cdc4fd03" dependencies = [ - "bytes 1.1.0", + "bytes", "fnv", "itoa 1.0.1", ] @@ -1605,7 +1638,7 @@ version = "0.4.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1ff4f84919677303da5f147645dbea6b1881f368d03ac84e1dc09031ebd7b2c6" dependencies = [ - "bytes 1.1.0", + "bytes", "http", "pin-project-lite", ] @@ -1616,13 +1649,17 @@ version = "6.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ea880b03c18a7e981d7fb3608b8904a98425d53c440758fcebf7d934aa56547c" dependencies = [ + "async-h1", "async-std", + "async-tls", "async-trait", "cfg-if 1.0.0", "dashmap 4.0.2", + "deadpool", + "futures", "http-types", - "isahc", "log", + "rustls 0.18.1", ] [[package]] @@ -1634,7 +1671,7 @@ dependencies = [ "anyhow", "async-channel", "async-std", - "base64", + "base64 0.13.0", "cookie", "futures-lite", "infer", @@ -1665,7 +1702,7 @@ version = "0.14.17" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "043f0e083e9901b6cc658a77d1eb86f4fc650bbb977a4337dd63192826aa85dd" dependencies = [ - "bytes 1.1.0", + "bytes", "futures-channel", "futures-core", "futures-util", @@ -1691,7 +1728,7 @@ checksum = "d87c48c02e0dc5e3b849a2041db3029fd066650f8f717c07bf8ed78ccb895cac" dependencies = [ "http", "hyper", - "rustls", + "rustls 0.20.4", "tokio", "tokio-rustls", ] @@ -1744,29 +1781,6 @@ version = "2.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "35e70ee094dc02fd9c13fdad4940090f22dbd6ac7c9e7094a46cf0232a50bc7c" -[[package]] -name = "isahc" -version = "0.9.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2948a0ce43e2c2ef11d7edf6816508998d99e13badd1150be0914205df9388a" -dependencies = [ - "bytes 0.5.6", - "crossbeam-utils", - "curl", - "curl-sys", - "flume", - "futures-lite", - "http", - "log", - "once_cell", - "slab", - "sluice", - "tracing", - "tracing-futures", - "url", - "waker-fn", -] - [[package]] name = "itertools" version = "0.10.3" @@ -1847,6 +1861,19 @@ version = "1.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" +[[package]] +name = "lexical-core" +version = "0.7.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6607c62aa161d23d17a9072cc5da0be67cdfc89d3afb1e8d9c842bebc2525ffe" +dependencies = [ + "arrayvec", + "bitflags", + "cfg-if 1.0.0", + "ryu", + "static_assertions", +] + [[package]] name = "libc" version = "0.2.121" @@ -1867,16 +1894,6 @@ dependencies = [ "pkg-config", ] -[[package]] -name = "libnghttp2-sys" -version = "0.1.7+1.45.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "57ed28aba195b38d5ff02b9170cbff627e336a20925e43b4945390401c5dc93f" -dependencies = [ - "cc", - "libc", -] - [[package]] name = "libssh2-sys" version = "0.2.23" @@ -2062,6 +2079,17 @@ dependencies = [ "rand 0.8.5", ] +[[package]] +name = "nom" +version = "5.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ffb4262d26ed83a1c0a33a38fe2bb15797329c85770da05e6b828ddb782627af" +dependencies = [ + "lexical-core", + "memchr", + "version_check", +] + [[package]] name = "ntapi" version = "0.3.7" @@ -2548,8 +2576,8 @@ version = "0.11.10" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "46a1f7aa4f35e5e8b4160449f51afc758f0ce6454315a9fa7d0d113e958c41eb" dependencies = [ - "base64", - "bytes 1.1.0", + "base64 0.13.0", + "bytes", "encoding_rs", "futures-core", "futures-util", @@ -2565,7 +2593,7 @@ dependencies = [ "mime", "percent-encoding", "pin-project-lite", - "rustls", + "rustls 0.20.4", "rustls-pemfile", "serde", "serde_json", @@ -2576,7 +2604,7 @@ dependencies = [ "wasm-bindgen", "wasm-bindgen-futures", "web-sys", - "webpki-roots", + "webpki-roots 0.22.2", "winreg", ] @@ -2624,7 +2652,7 @@ version = "0.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4b18820d944b33caa75a71378964ac46f58517c92b6ae5f762636247c09e78fb" dependencies = [ - "base64", + "base64 0.13.0", "blake2b_simd", "constant_time_eq", "crossbeam-utils", @@ -2654,6 +2682,19 @@ dependencies = [ "semver 1.0.6", ] +[[package]] +name = "rustls" +version = "0.18.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5d1126dcf58e93cee7d098dbda643b5f92ed724f1f6a63007c1116eed6700c81" +dependencies = [ + "base64 0.12.3", + "log", + "ring", + "sct 0.6.1", + "webpki 0.21.4", +] + [[package]] name = "rustls" version = "0.20.4" @@ -2662,8 +2703,8 @@ checksum = "4fbfeb8d0ddb84706bc597a5574ab8912817c52a397f819e5b614e2265206921" dependencies = [ "log", "ring", - "sct", - "webpki", + "sct 0.7.0", + "webpki 0.22.0", ] [[package]] @@ -2672,7 +2713,7 @@ version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1ee86d63972a7c661d1536fefe8c3c8407321c3df668891286de28abcd087360" dependencies = [ - "base64", + "base64 0.13.0", ] [[package]] @@ -2687,16 +2728,6 @@ version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ef703b7cb59335eae2eb93ceb664c0eb7ea6bf567079d843e09420219668e072" -[[package]] -name = "schannel" -version = "0.1.19" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f05ba609c234e60bee0d547fe94a4c7e9da733d1c962cf6e59efa4cd9c8bc75" -dependencies = [ - "lazy_static", - "winapi", -] - [[package]] name = "schemafy_core" version = "0.5.2" @@ -2735,6 +2766,16 @@ version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd" +[[package]] +name = "sct" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b362b83898e0e69f38515b82ee15aa80636befe47c3b6d3d89a911e78fc228ce" +dependencies = [ + "ring", + "untrusted", +] + [[package]] name = "sct" version = "0.7.0" @@ -2945,21 +2986,19 @@ dependencies = [ ] [[package]] -name = "slab" -version = "0.4.5" +name = "simple-mutex" +version = "1.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9def91fd1e018fe007022791f865d0ccc9b3a0d5001e01aabb8b40e46000afb5" +checksum = "38aabbeafa6f6dead8cebf246fe9fae1f9215c8d29b3a69f93bd62a9e4a3dcd6" +dependencies = [ + "event-listener", +] [[package]] -name = "sluice" -version = "0.5.5" +name = "slab" +version = "0.4.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6d7400c0eff44aa2fcb5e31a5f24ba9716ed90138769e4977a2ba6014ae63eb5" -dependencies = [ - "async-channel", - "futures-core", - "futures-io", -] +checksum = "9def91fd1e018fe007022791f865d0ccc9b3a0d5001e01aabb8b40e46000afb5" [[package]] name = "smallvec" @@ -2983,15 +3022,6 @@ version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6e63cff320ae2c57904679ba7cb63280a3dc4613885beafb148ee7bf9aa9042d" -[[package]] -name = "spinning_top" -version = "0.2.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75adad84ee84b521fb2cca2d4fd0f1dab1d8d026bda3c5bea4ca63b5f9f9293c" -dependencies = [ - "lock_api", -] - [[package]] name = "standback" version = "0.2.17" @@ -3001,6 +3031,12 @@ dependencies = [ "version_check", ] +[[package]] +name = "static_assertions" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" + [[package]] name = "stdweb" version = "0.4.20" @@ -3107,7 +3143,6 @@ dependencies = [ "async-std", "async-trait", "cfg-if 1.0.0", - "encoding_rs", "futures-util", "getrandom 0.2.5", "http-client", @@ -3116,9 +3151,9 @@ dependencies = [ "mime_guess", "once_cell", "pin-project-lite", + "rustls 0.18.1", "serde", "serde_json", - "web-sys", ] [[package]] @@ -3195,7 +3230,7 @@ name = "sway-types" version = "0.8.0" dependencies = [ "fuel-asm", - "fuel-crypto 0.3.0", + "fuel-crypto 0.4.0", "fuel-pest", "fuel-pest_derive", "fuel-tx", @@ -3310,7 +3345,7 @@ name = "test-sig-gen-util" version = "0.0.0" dependencies = [ "anyhow", - "fuel-crypto 0.3.0", + "fuel-crypto 0.4.0", "fuel-tx", "fuel-vm", "hex", @@ -3436,7 +3471,7 @@ version = "1.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2af73ac49756f3f7c01172e34a23e5d0216f6c32333757c2c61feb2bbff5a5ee" dependencies = [ - "bytes 1.1.0", + "bytes", "libc", "memchr", "mio", @@ -3466,9 +3501,9 @@ version = "0.23.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4151fda0cf2798550ad0b34bcfc9b9dcc2a9d2471c895c68f3a8818e54f2389e" dependencies = [ - "rustls", + "rustls 0.20.4", "tokio", - "webpki", + "webpki 0.22.0", ] [[package]] @@ -3501,7 +3536,7 @@ version = "0.6.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9e99e1983e5d376cd8eb4b66604d2e99e79f5bd988c3055891dcd8c9e2604cc0" dependencies = [ - "bytes 1.1.0", + "bytes", "futures-core", "futures-sink", "log", @@ -3515,7 +3550,7 @@ version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "64910e1b9c1901aaf5375561e35b9c057d95ff41a44ede043a03e09279eabaf1" dependencies = [ - "bytes 1.1.0", + "bytes", "futures-core", "futures-sink", "log", @@ -3572,7 +3607,7 @@ checksum = "835e69c995865ed116986d68f74044393c21606c65e25e570031e6e793f21a7b" dependencies = [ "async-trait", "auto_impl", - "bytes 1.1.0", + "bytes", "dashmap 5.2.0", "futures", "httparse", @@ -3637,16 +3672,6 @@ dependencies = [ "lazy_static", ] -[[package]] -name = "tracing-futures" -version = "0.2.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97d095ae15e245a057c8e8451bab9b3ee1e1f68e9ba2b4fbc18d0ac5237835f2" -dependencies = [ - "pin-project", - "tracing", -] - [[package]] name = "try-lock" version = "0.2.3" @@ -3659,9 +3684,9 @@ version = "0.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a0b2d8558abd2e276b0a8df5c05a2ec762609344191e5fd23e292c910e9165b5" dependencies = [ - "base64", + "base64 0.13.0", "byteorder", - "bytes 1.1.0", + "bytes", "http", "httparse", "log", @@ -3766,17 +3791,17 @@ version = "2.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9399fa2f927a3d327187cbd201480cee55bee6ac5d3c77dd27f0c6814cff16d5" dependencies = [ - "base64", + "base64 0.13.0", "chunked_transfer", "flate2", "log", "once_cell", - "rustls", + "rustls 0.20.4", "serde", "serde_json", "url", - "webpki", - "webpki-roots", + "webpki 0.22.0", + "webpki-roots 0.22.2", ] [[package]] @@ -3872,7 +3897,7 @@ version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3cef4e1e9114a4b7f1ac799f16ce71c14de5778500c5450ec6b7b920c55b587e" dependencies = [ - "bytes 1.1.0", + "bytes", "futures-channel", "futures-util", "headers", @@ -3992,6 +4017,16 @@ dependencies = [ "wasm-bindgen", ] +[[package]] +name = "webpki" +version = "0.21.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8e38c0608262c46d4a56202ebabdeb094cef7e560ca7a226c6bf055188aa4ea" +dependencies = [ + "ring", + "untrusted", +] + [[package]] name = "webpki" version = "0.22.0" @@ -4002,13 +4037,22 @@ dependencies = [ "untrusted", ] +[[package]] +name = "webpki-roots" +version = "0.20.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0f20dea7535251981a9670857150d571846545088359b28e4951d350bdaf179f" +dependencies = [ + "webpki 0.21.4", +] + [[package]] name = "webpki-roots" version = "0.22.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "552ceb903e957524388c4d3475725ff2c8b7960922063af6ce53c9a43da07449" dependencies = [ - "webpki", + "webpki 0.22.0", ] [[package]] diff --git a/forc/Cargo.toml b/forc/Cargo.toml index 4223cf21b83..6a0d72f61da 100644 --- a/forc/Cargo.toml +++ b/forc/Cargo.toml @@ -15,10 +15,10 @@ clap = { version = "3.1", features = ["env", "derive"] } clap_complete = "3.1" forc-pkg = { version = "0.8.0", path = "../forc-pkg" } forc-util = { version = "0.8.0", path = "../forc-util" } -fuel-asm = "0.2" -fuel-gql-client = { version = "0.4", default-features = false } -fuel-tx = "0.6" -fuel-vm = "0.5" +fuel-asm = "0.3" +fuel-gql-client = { version = "0.5", default-features = false } +fuel-tx = "0.7" +fuel-vm = "0.6" futures = "0.3" hex = "0.4.3" prettydiff = "0.5.0" diff --git a/forc/src/utils/defaults.rs b/forc/src/utils/defaults.rs index 64e74f93aee..665be4310b6 100644 --- a/forc/src/utils/defaults.rs +++ b/forc/src/utils/defaults.rs @@ -31,11 +31,11 @@ name = "{project_name}" version = "0.1.0" [dependencies] -fuel-gql-client = {{ version = "0.4", default-features = false }} -fuel-tx = "0.6" -fuels-abigen-macro = "0.6" -fuels-contract = "0.6" -fuels-core = "0.6" +fuel-gql-client = {{ version = "0.5", default-features = false }} +fuel-tx = "0.7" +fuels-abigen-macro = "0.8" +fuels-contract = "0.8" +fuels-core = "0.8" rand = "0.8" tokio = {{ version = "1.12", features = ["rt", "macros"] }} diff --git a/sway-core/Cargo.toml b/sway-core/Cargo.toml index 622f64344cb..42009656c05 100644 --- a/sway-core/Cargo.toml +++ b/sway-core/Cargo.toml @@ -16,9 +16,9 @@ clap = { version = "3.1", features = ["derive"], optional = true } derivative = "2.2.0" dirs = "3.0" either = "1.6" -fuel-asm = "0.2" -fuel-crypto = "0.4.0" -fuel-vm = "0.5" +fuel-asm = "0.3" +fuel-crypto = "0.4" +fuel-vm = "0.6" hex = { version = "0.4", optional = true } itertools = "0.10" lazy_static = "1.4" diff --git a/sway-core/src/asm_lang/allocated_ops.rs b/sway-core/src/asm_lang/allocated_ops.rs index 8c55bbb02d4..685cb7f0922 100644 --- a/sway-core/src/asm_lang/allocated_ops.rs +++ b/sway-core/src/asm_lang/allocated_ops.rs @@ -71,6 +71,7 @@ pub(crate) enum AllocatedOpcode { MOD(AllocatedRegister, AllocatedRegister, AllocatedRegister), MODI(AllocatedRegister, AllocatedRegister, VirtualImmediate12), MOVE(AllocatedRegister, AllocatedRegister), + MOVI(AllocatedRegister, VirtualImmediate18), MUL(AllocatedRegister, AllocatedRegister, AllocatedRegister), MULI(AllocatedRegister, AllocatedRegister, VirtualImmediate12), NOT(AllocatedRegister, AllocatedRegister), @@ -99,13 +100,13 @@ pub(crate) enum AllocatedOpcode { MCL(AllocatedRegister, AllocatedRegister), MCLI(AllocatedRegister, VirtualImmediate18), MCP(AllocatedRegister, AllocatedRegister, AllocatedRegister), + MCPI(AllocatedRegister, AllocatedRegister, VirtualImmediate12), MEQ( AllocatedRegister, AllocatedRegister, AllocatedRegister, AllocatedRegister, ), - MCPI(AllocatedRegister, AllocatedRegister, VirtualImmediate12), SB(AllocatedRegister, AllocatedRegister, VirtualImmediate12), SW(AllocatedRegister, AllocatedRegister, VirtualImmediate12), BAL(AllocatedRegister, AllocatedRegister, AllocatedRegister), @@ -134,6 +135,12 @@ pub(crate) enum AllocatedOpcode { AllocatedRegister, AllocatedRegister, ), + LOGD( + AllocatedRegister, + AllocatedRegister, + AllocatedRegister, + AllocatedRegister, + ), MINT(AllocatedRegister), RVRT(AllocatedRegister), SLDC(AllocatedRegister, AllocatedRegister, AllocatedRegister), @@ -151,7 +158,12 @@ pub(crate) enum AllocatedOpcode { ECR(AllocatedRegister, AllocatedRegister, AllocatedRegister), K256(AllocatedRegister, AllocatedRegister, AllocatedRegister), S256(AllocatedRegister, AllocatedRegister, AllocatedRegister), + XIL(AllocatedRegister, AllocatedRegister), + XIS(AllocatedRegister, AllocatedRegister), + XOL(AllocatedRegister, AllocatedRegister), XOS(AllocatedRegister, AllocatedRegister), + XWL(AllocatedRegister, AllocatedRegister), + XWS(AllocatedRegister, AllocatedRegister), NOOP, FLAG(AllocatedRegister), GM(AllocatedRegister, VirtualImmediate18), @@ -189,6 +201,7 @@ impl fmt::Display for AllocatedOp { MOD(a, b, c) => format!("mod {} {} {}", a, b, c), MODI(a, b, c) => format!("modi {} {} {}", a, b, c), MOVE(a, b) => format!("move {} {}", a, b), + MOVI(a, b) => format!("movi {} {}", a, b), MUL(a, b, c) => format!("mul {} {} {}", a, b, c), MULI(a, b, c) => format!("muli {} {} {}", a, b, c), NOT(a, b) => format!("not {} {}", a, b), @@ -217,8 +230,8 @@ impl fmt::Display for AllocatedOp { MCL(a, b) => format!("mcl {} {}", a, b), MCLI(a, b) => format!("mcli {} {}", a, b), MCP(a, b, c) => format!("mcp {} {} {}", a, b, c), - MEQ(a, b, c, d) => format!("meq {} {} {} {}", a, b, c, d), MCPI(a, b, c) => format!("mcpi {} {} {}", a, b, c), + MEQ(a, b, c, d) => format!("meq {} {} {} {}", a, b, c, d), SB(a, b, c) => format!("sb {} {} {}", a, b, c), SW(a, b, c) => format!("sw {} {} {}", a, b, c), BAL(a, b, c) => format!("bal {} {} {}", a, b, c), @@ -232,6 +245,7 @@ impl fmt::Display for AllocatedOp { CB(a) => format!("cb {}", a), LDC(a, b, c) => format!("ldc {} {} {}", a, b, c), LOG(a, b, c, d) => format!("log {} {} {} {}", a, b, c, d), + LOGD(a, b, c, d)=> format!("logd {} {} {} {}", a, b, c, d), MINT(a) => format!("mint {}", a), RVRT(a) => format!("rvrt {}", a), SLDC(a, b, c) => format!("sldc {} {} {}", a, b, c), @@ -244,13 +258,18 @@ impl fmt::Display for AllocatedOp { ECR(a, b, c) => format!("ecr {} {} {}", a, b, c), K256(a, b, c) => format!("k256 {} {} {}", a, b, c), S256(a, b, c) => format!("s256 {} {} {}", a, b, c), + XIL(a, b) => format!("xil {} {}", a, b), + XIS(a, b) => format!("xis {} {}", a, b), + XOL(a, b) => format!("xol {} {}", a, b), XOS(a, b) => format!("xos {} {}", a, b), + XWL(a, b) => format!("xwl {} {}", a, b), + XWS(a, b) => format!("xws {} {}", a, b), NOOP => "noop".to_string(), FLAG(a) => format!("flag {}", a), GM(a, b) => format!("gm {} {}", a, b), Undefined => "undefined op".into(), DataSectionOffsetPlaceholder => "DATA_SECTION_OFFSET[0..32]\nDATA_SECTION_OFFSET[32..64]".into(), - DataSectionRegisterLoadPlaceholder => "lw $ds $is 1".into() + DataSectionRegisterLoadPlaceholder => "lw $ds $is 1".into(), }; // we want the comment to always be COMMENT_START_COLUMN characters offset to the right // to not interfere with the ASM but to be aligned @@ -293,6 +312,7 @@ impl AllocatedOp { MOD (a, b, c) => VmOp::MOD (a.to_register_id(), b.to_register_id(), c.to_register_id()), MODI(a, b, c) => VmOp::MODI(a.to_register_id(), b.to_register_id(), c.value), MOVE(a, b) => VmOp::MOVE(a.to_register_id(), b.to_register_id()), + MOVI(a, b) => VmOp::MOVI(a.to_register_id(), b.value), MUL (a, b, c) => VmOp::MUL (a.to_register_id(), b.to_register_id(), c.to_register_id()), MULI(a, b, c) => VmOp::MULI(a.to_register_id(), b.to_register_id(), c.value), NOT (a, b) => VmOp::NOT (a.to_register_id(), b.to_register_id()), @@ -321,8 +341,8 @@ impl AllocatedOp { MCL (a, b) => VmOp::MCL (a.to_register_id(), b.to_register_id()), MCLI(a, b) => VmOp::MCLI(a.to_register_id(), b.value), MCP (a, b, c) => VmOp::MCP (a.to_register_id(), b.to_register_id(), c.to_register_id()), - MEQ (a, b, c, d)=> VmOp::MEQ (a.to_register_id(), b.to_register_id(), c.to_register_id(), d.to_register_id()), MCPI(a, b, c) => VmOp::MCPI(a.to_register_id(), b.to_register_id(), c.value), + MEQ (a, b, c, d)=> VmOp::MEQ (a.to_register_id(), b.to_register_id(), c.to_register_id(), d.to_register_id()), SB (a, b, c) => VmOp::SB (a.to_register_id(), b.to_register_id(), c.value), SW (a, b, c) => VmOp::SW (a.to_register_id(), b.to_register_id(), c.value), BAL (a, b, c) => VmOp::BAL (a.to_register_id(), b.to_register_id(), c.to_register_id()), @@ -336,6 +356,7 @@ impl AllocatedOp { CB (a) => VmOp::CB (a.to_register_id()), LDC (a, b, c) => VmOp::LDC (a.to_register_id(), b.to_register_id(), c.to_register_id()), LOG (a, b, c, d)=> VmOp::LOG (a.to_register_id(), b.to_register_id(), c.to_register_id(), d.to_register_id()), + LOGD(a, b, c, d)=> VmOp::LOGD(a.to_register_id(), b.to_register_id(), c.to_register_id(), d.to_register_id()), MINT(a) => VmOp::MINT(a.to_register_id()), RVRT(a) => VmOp::RVRT(a.to_register_id()), SLDC(a, b, c) => VmOp::SLDC(a.to_register_id(), b.to_register_id(), c.to_register_id()), @@ -348,7 +369,12 @@ impl AllocatedOp { ECR (a, b, c) => VmOp::ECR (a.to_register_id(), b.to_register_id(), c.to_register_id()), K256(a, b, c) => VmOp::K256(a.to_register_id(), b.to_register_id(), c.to_register_id()), S256(a, b, c) => VmOp::S256(a.to_register_id(), b.to_register_id(), c.to_register_id()), - XOS(a, b) => VmOp::XOS(a.to_register_id(), b.to_register_id()), + XIL (a, b) => VmOp::XIL(a.to_register_id(), b.to_register_id()), + XIS (a, b) => VmOp::XIS(a.to_register_id(), b.to_register_id()), + XOL (a, b) => VmOp::XOL(a.to_register_id(), b.to_register_id()), + XOS (a, b) => VmOp::XOS(a.to_register_id(), b.to_register_id()), + XWL (a, b) => VmOp::XWL(a.to_register_id(), b.to_register_id()), + XWS (a, b) => VmOp::XWS(a.to_register_id(), b.to_register_id()), NOOP => VmOp::NOOP, FLAG(a) => VmOp::FLAG(a.to_register_id()), GM(a, b) => VmOp::GM(a.to_register_id(), b.value), diff --git a/sway-core/src/asm_lang/mod.rs b/sway-core/src/asm_lang/mod.rs index abfce863103..0e680c35bb7 100644 --- a/sway-core/src/asm_lang/mod.rs +++ b/sway-core/src/asm_lang/mod.rs @@ -406,6 +406,15 @@ impl Op { ); VirtualOp::MOVE(r1, r2) } + "movi" => { + let (r1, imm) = check!( + single_reg_imm_18(args, immediate, whole_op_span), + return err(warnings, errors), + warnings, + errors + ); + VirtualOp::MOVI(r1, imm) + } "mul" => { let (r1, r2, r3) = check!( three_regs(args, immediate, whole_op_span), @@ -649,23 +658,23 @@ impl Op { ); VirtualOp::MCP(r1, r2, r3) } - "meq" => { - let (r1, r2, r3, r4) = check!( - four_regs(args, immediate, whole_op_span), + "mcpi" => { + let (r1, r2, imm) = check!( + two_regs_imm_12(args, immediate, whole_op_span), return err(warnings, errors), warnings, errors ); - VirtualOp::MEQ(r1, r2, r3, r4) + VirtualOp::MCPI(r1, r2, imm) } - "mcpi" => { - let (r1, r2, imm) = check!( - two_regs_imm_12(args, immediate, whole_op_span), + "meq" => { + let (r1, r2, r3, r4) = check!( + four_regs(args, immediate, whole_op_span), return err(warnings, errors), warnings, errors ); - VirtualOp::MCPI(r1, r2, imm) + VirtualOp::MEQ(r1, r2, r3, r4) } "sb" => { let (r1, r2, imm) = check!( @@ -784,6 +793,15 @@ impl Op { ); VirtualOp::LOG(r1, r2, r3, r4) } + "logd" => { + let (r1, r2, r3, r4) = check!( + four_regs(args, immediate, whole_op_span), + return err(warnings, errors), + warnings, + errors + ); + VirtualOp::LOGD(r1, r2, r3, r4) + } "mint" => { let r1 = check!( single_reg(args, immediate, whole_op_span), @@ -892,6 +910,33 @@ impl Op { ); VirtualOp::S256(r1, r2, r3) } + "xil" => { + let (r1, r2) = check!( + two_regs(args, immediate, whole_op_span), + return err(warnings, errors), + warnings, + errors + ); + VirtualOp::XIL(r1, r2) + } + "xis" => { + let (r1, r2) = check!( + two_regs(args, immediate, whole_op_span), + return err(warnings, errors), + warnings, + errors + ); + VirtualOp::XIS(r1, r2) + } + "xol" => { + let (r1, r2) = check!( + two_regs(args, immediate, whole_op_span), + return err(warnings, errors), + warnings, + errors + ); + VirtualOp::XOL(r1, r2) + } "xos" => { let (r1, r2) = check!( two_regs(args, immediate, whole_op_span), @@ -901,6 +946,24 @@ impl Op { ); VirtualOp::XOS(r1, r2) } + "xwl" => { + let (r1, r2) = check!( + two_regs(args, immediate, whole_op_span), + return err(warnings, errors), + warnings, + errors + ); + VirtualOp::XWL(r1, r2) + } + "xws" => { + let (r1, r2) = check!( + two_regs(args, immediate, whole_op_span), + return err(warnings, errors), + warnings, + errors + ); + VirtualOp::XWS(r1, r2) + } "noop" => VirtualOp::NOOP, "flag" => { let r1 = check!( @@ -1292,6 +1355,7 @@ impl fmt::Display for Op { MOD(a, b, c) => format!("mod {} {} {}", a, b, c), MODI(a, b, c) => format!("modi {} {} {}", a, b, c), MOVE(a, b) => format!("move {} {}", a, b), + MOVI(a, b) => format!("movi {} {}", a, b), MUL(a, b, c) => format!("mul {} {} {}", a, b, c), MULI(a, b, c) => format!("muli {} {} {}", a, b, c), NOT(a, b) => format!("not {} {}", a, b), @@ -1335,6 +1399,7 @@ impl fmt::Display for Op { CB(a) => format!("cb {}", a), LDC(a, b, c) => format!("ldc {} {} {}", a, b, c), LOG(a, b, c, d) => format!("log {} {} {} {}", a, b, c, d), + LOGD(a, b, c, d) => format!("logd {} {} {} {}", a, b, c, d), MINT(a) => format!("mint {}", a), RVRT(a) => format!("rvrt {}", a), SLDC(a, b, c) => format!("sldc {} {} {}", a, b, c), @@ -1347,7 +1412,12 @@ impl fmt::Display for Op { ECR(a, b, c) => format!("ecr {} {} {}", a, b, c), K256(a, b, c) => format!("k256 {} {} {}", a, b, c), S256(a, b, c) => format!("s256 {} {} {}", a, b, c), + XIL(a, b) => format!("xil {} {}", a, b), + XIS(a, b) => format!("xis {} {}", a, b), + XOL(a, b) => format!("xol {} {}", a, b), XOS(a, b) => format!("xos {} {}", a, b), + XWL(a, b) => format!("xwl {} {}", a, b), + XWS(a, b) => format!("xws {} {}", a, b), NOOP => "noop".to_string(), FLAG(a) => format!("flag {}", a), GM(a, b) => format!("gm {} {}", a, b), diff --git a/sway-core/src/asm_lang/virtual_ops.rs b/sway-core/src/asm_lang/virtual_ops.rs index 41931c23463..f1297fdd19b 100644 --- a/sway-core/src/asm_lang/virtual_ops.rs +++ b/sway-core/src/asm_lang/virtual_ops.rs @@ -39,6 +39,7 @@ pub(crate) enum VirtualOp { MOD(VirtualRegister, VirtualRegister, VirtualRegister), MODI(VirtualRegister, VirtualRegister, VirtualImmediate12), MOVE(VirtualRegister, VirtualRegister), + MOVI(VirtualRegister, VirtualImmediate18), MUL(VirtualRegister, VirtualRegister, VirtualRegister), MULI(VirtualRegister, VirtualRegister, VirtualImmediate12), NOT(VirtualRegister, VirtualRegister), @@ -73,13 +74,13 @@ pub(crate) enum VirtualOp { MCL(VirtualRegister, VirtualRegister), MCLI(VirtualRegister, VirtualImmediate18), MCP(VirtualRegister, VirtualRegister, VirtualRegister), + MCPI(VirtualRegister, VirtualRegister, VirtualImmediate12), MEQ( VirtualRegister, VirtualRegister, VirtualRegister, VirtualRegister, ), - MCPI(VirtualRegister, VirtualRegister, VirtualImmediate12), SB(VirtualRegister, VirtualRegister, VirtualImmediate12), SW(VirtualRegister, VirtualRegister, VirtualImmediate12), BAL(VirtualRegister, VirtualRegister, VirtualRegister), @@ -108,6 +109,12 @@ pub(crate) enum VirtualOp { VirtualRegister, VirtualRegister, ), + LOGD( + VirtualRegister, + VirtualRegister, + VirtualRegister, + VirtualRegister, + ), MINT(VirtualRegister), RVRT(VirtualRegister), SLDC(VirtualRegister, VirtualRegister, VirtualRegister), @@ -125,7 +132,12 @@ pub(crate) enum VirtualOp { ECR(VirtualRegister, VirtualRegister, VirtualRegister), K256(VirtualRegister, VirtualRegister, VirtualRegister), S256(VirtualRegister, VirtualRegister, VirtualRegister), + XIL(VirtualRegister, VirtualRegister), + XIS(VirtualRegister, VirtualRegister), + XOL(VirtualRegister, VirtualRegister), XOS(VirtualRegister, VirtualRegister), + XWL(VirtualRegister, VirtualRegister), + XWS(VirtualRegister, VirtualRegister), NOOP, FLAG(VirtualRegister), GM(VirtualRegister, VirtualImmediate18), @@ -154,6 +166,7 @@ impl VirtualOp { MOD(r1, r2, r3) => vec![r1, r2, r3], MODI(r1, r2, _i) => vec![r1, r2], MOVE(r1, r2) => vec![r1, r2], + MOVI(r1, _i) => vec![r1], MUL(r1, r2, r3) => vec![r1, r2, r3], MULI(r1, r2, _i) => vec![r1, r2], NOT(r1, r2) => vec![r1, r2], @@ -197,6 +210,7 @@ impl VirtualOp { CB(r1) => vec![r1], LDC(r1, r2, r3) => vec![r1, r2, r3], LOG(r1, r2, r3, r4) => vec![r1, r2, r3, r4], + LOGD(r1, r2, r3, r4) => vec![r1, r2, r3, r4], MINT(r1) => vec![r1], RVRT(r1) => vec![r1], SLDC(r1, r2, r3) => vec![r1, r2, r3], @@ -209,7 +223,12 @@ impl VirtualOp { ECR(r1, r2, r3) => vec![r1, r2, r3], K256(r1, r2, r3) => vec![r1, r2, r3], S256(r1, r2, r3) => vec![r1, r2, r3], + XIL(r1, r2) => vec![r1, r2], + XIS(r1, r2) => vec![r1, r2], + XOL(r1, r2) => vec![r1, r2], XOS(r1, r2) => vec![r1, r2], + XWL(r1, r2) => vec![r1, r2], + XWS(r1, r2) => vec![r1, r2], NOOP => vec![], FLAG(r1) => vec![r1], GM(r1, _imm) => vec![r1], @@ -243,6 +262,7 @@ impl VirtualOp { MOD(_r1, r2, r3) => vec![r2, r3], MODI(r1, r2, _i) => vec![r1, r2], MOVE(_r1, r2) => vec![r2], + MOVI(_r1, _i) => vec![], MUL(_r1, r2, r3) => vec![r2, r3], MULI(_r1, r2, _i) => vec![r2], NOT(_r1, r2) => vec![r2], @@ -286,6 +306,7 @@ impl VirtualOp { CB(r1) => vec![r1], LDC(r1, r2, r3) => vec![r1, r2, r3], LOG(r1, r2, r3, r4) => vec![r1, r2, r3, r4], + LOGD(r1, r2, r3, r4) => vec![r1, r2, r3, r4], MINT(r1) => vec![r1], RVRT(r1) => vec![r1], SLDC(r1, r2, r3) => vec![r1, r2, r3], @@ -298,7 +319,12 @@ impl VirtualOp { ECR(r1, r2, r3) => vec![r1, r2, r3], K256(r1, r2, r3) => vec![r1, r2, r3], S256(r1, r2, r3) => vec![r1, r2, r3], + XIL(_r1, r2) => vec![r2], + XIS(_r1, r2) => vec![r2], + XOL(_r1, r2) => vec![r2], XOS(_r1, r2) => vec![r2], + XWL(_r1, r2) => vec![r2], + XWS(_r1, r2) => vec![r2], NOOP => vec![], FLAG(r1) => vec![r1], GM(_r1, _imm) => vec![], @@ -332,6 +358,7 @@ impl VirtualOp { MOD(r1, _r2, _r3) => vec![r1], MODI(r1, _r2, _i) => vec![r1], MOVE(r1, _r2) => vec![r1], + MOVI(r1, _i) => vec![r1], MUL(r1, _r2, _r3) => vec![r1], MULI(r1, _r2, _i) => vec![r1], NOT(r1, _r2) => vec![r1], @@ -375,6 +402,7 @@ impl VirtualOp { CB(_r1) => vec![], LDC(_r1, _r2, _r3) => vec![], LOG(_r1, _r2, _r3, _r4) => vec![], + LOGD(_r1, _r2, _r3, _r4) => vec![], MINT(_r1) => vec![], RVRT(_r1) => vec![], SLDC(_r1, _r2, _r3) => vec![], @@ -387,7 +415,12 @@ impl VirtualOp { ECR(_r1, _r2, _r3) => vec![], K256(_r1, _r2, _r3) => vec![], S256(_r1, _r2, _r3) => vec![], + XIL(r1, _r2) => vec![r1], + XIS(r1, _r2) => vec![r1], + XOL(r1, _r2) => vec![r1], XOS(r1, _r2) => vec![r1], + XWL(r1, _r2) => vec![r1], + XWS(r1, _r2) => vec![r1], NOOP => vec![], FLAG(_r1) => vec![], GM(r1, _imm) => vec![r1], @@ -529,6 +562,7 @@ impl VirtualOp { update_reg(reg_to_reg_map, r1), update_reg(reg_to_reg_map, r2), ), + MOVI(r1, i) => Self::MOVI(update_reg(reg_to_reg_map, r1), i.clone()), MUL(r1, r2, r3) => Self::MUL( update_reg(reg_to_reg_map, r1), update_reg(reg_to_reg_map, r2), @@ -701,6 +735,12 @@ impl VirtualOp { update_reg(reg_to_reg_map, r3), update_reg(reg_to_reg_map, r4), ), + LOGD(r1, r2, r3, r4) => Self::LOGD( + update_reg(reg_to_reg_map, r1), + update_reg(reg_to_reg_map, r2), + update_reg(reg_to_reg_map, r3), + update_reg(reg_to_reg_map, r4), + ), MINT(r1) => Self::MINT(update_reg(reg_to_reg_map, r1)), RVRT(reg1) => Self::RVRT(update_reg(reg_to_reg_map, reg1)), SLDC(r1, r2, r3) => Self::SLDC( @@ -750,10 +790,30 @@ impl VirtualOp { update_reg(reg_to_reg_map, r2), update_reg(reg_to_reg_map, r3), ), + XIL(r1, r2) => Self::XIL( + update_reg(reg_to_reg_map, r1), + update_reg(reg_to_reg_map, r2), + ), + XIS(r1, r2) => Self::XIS( + update_reg(reg_to_reg_map, r1), + update_reg(reg_to_reg_map, r2), + ), + XOL(r1, r2) => Self::XOL( + update_reg(reg_to_reg_map, r1), + update_reg(reg_to_reg_map, r2), + ), XOS(r1, r2) => Self::XOS( update_reg(reg_to_reg_map, r1), update_reg(reg_to_reg_map, r2), ), + XWL(r1, r2) => Self::XWL( + update_reg(reg_to_reg_map, r1), + update_reg(reg_to_reg_map, r2), + ), + XWS(r1, r2) => Self::XWS( + update_reg(reg_to_reg_map, r1), + update_reg(reg_to_reg_map, r2), + ), NOOP => Self::NOOP, FLAG(r1) => Self::FLAG(update_reg(reg_to_reg_map, r1)), GM(r1, i) => Self::GM(update_reg(reg_to_reg_map, r1), i.clone()), @@ -905,6 +965,7 @@ impl VirtualOp { MOVE(reg1, reg2) => { AllocatedOpcode::MOVE(map_reg(&mapping, reg1), map_reg(&mapping, reg2)) } + MOVI(reg1, imm) => AllocatedOpcode::MOVI(map_reg(&mapping, reg1), imm.clone()), MUL(reg1, reg2, reg3) => AllocatedOpcode::MUL( map_reg(&mapping, reg1), map_reg(&mapping, reg2), @@ -1072,6 +1133,12 @@ impl VirtualOp { map_reg(&mapping, reg3), map_reg(&mapping, reg4), ), + LOGD(reg1, reg2, reg3, reg4) => AllocatedOpcode::LOGD( + map_reg(&mapping, reg1), + map_reg(&mapping, reg2), + map_reg(&mapping, reg3), + map_reg(&mapping, reg4), + ), MINT(reg1) => AllocatedOpcode::MINT(map_reg(&mapping, reg1)), RVRT(reg1) => AllocatedOpcode::RVRT(map_reg(&mapping, reg1)), SLDC(reg1, reg2, reg3) => AllocatedOpcode::SLDC( @@ -1117,9 +1184,24 @@ impl VirtualOp { map_reg(&mapping, reg2), map_reg(&mapping, reg3), ), + XIL(reg1, reg2) => { + AllocatedOpcode::XIL(map_reg(&mapping, reg1), map_reg(&mapping, reg2)) + } + XIS(reg1, reg2) => { + AllocatedOpcode::XIS(map_reg(&mapping, reg1), map_reg(&mapping, reg2)) + } + XOL(reg1, reg2) => { + AllocatedOpcode::XOL(map_reg(&mapping, reg1), map_reg(&mapping, reg2)) + } XOS(reg1, reg2) => { AllocatedOpcode::XOS(map_reg(&mapping, reg1), map_reg(&mapping, reg2)) } + XWL(reg1, reg2) => { + AllocatedOpcode::XWL(map_reg(&mapping, reg1), map_reg(&mapping, reg2)) + } + XWS(reg1, reg2) => { + AllocatedOpcode::XWS(map_reg(&mapping, reg1), map_reg(&mapping, reg2)) + } NOOP => AllocatedOpcode::NOOP, FLAG(reg) => AllocatedOpcode::FLAG(map_reg(&mapping, reg)), GM(reg, imm) => AllocatedOpcode::GM(map_reg(&mapping, reg), imm.clone()), diff --git a/sway-types/Cargo.toml b/sway-types/Cargo.toml index 2cb38e08629..2b2aa298d71 100644 --- a/sway-types/Cargo.toml +++ b/sway-types/Cargo.toml @@ -9,9 +9,9 @@ repository = "https://github.com/FuelLabs/sway" description = "Sway core types." [dependencies] -fuel-asm = "0.2" -fuel-crypto = "0.3" -fuel-tx = "0.6" +fuel-asm = "0.3" +fuel-crypto = "0.4" +fuel-tx = "0.7" pest = { version = "3.0.4", package = "fuel-pest" } pest_derive = { version = "3.0.4", package = "fuel-pest_derive" } serde = { version = "1.0", features = ["derive"] } diff --git a/test-sig-gen-util/Cargo.toml b/test-sig-gen-util/Cargo.toml index 16f62de7456..94f6d82b41f 100644 --- a/test-sig-gen-util/Cargo.toml +++ b/test-sig-gen-util/Cargo.toml @@ -6,8 +6,8 @@ publish = false [dependencies] anyhow = "1.0.39" -fuel-crypto = "0.3" -fuel-tx = "0.6" -fuel-vm = "0.5" +fuel-crypto = "0.4" +fuel-tx = "0.7" +fuel-vm = "0.6" hex = "0.4" secp256k1 = { version = "0.20", features = ["recovery"] } diff --git a/test/Cargo.toml b/test/Cargo.toml index 653e19e15b3..d32b0116103 100644 --- a/test/Cargo.toml +++ b/test/Cargo.toml @@ -8,9 +8,9 @@ publish = false [dependencies] anyhow = "1.0.41" forc = { version = "0.8.0", path = "../forc", features = ["test"], default-features = false } -fuel-asm = "0.2" -fuel-tx = "0.6" -fuel-vm = { version = "0.5", features = ["random"] } +fuel-asm = "0.3" +fuel-tx = "0.7" +fuel-vm = { version = "0.6", features = ["random"] } rand = "0.8" regex = "1" tokio = "1.12"