From ff2a9701b0281fa2f5b8a5c5423ff17dbd9e8a4d Mon Sep 17 00:00:00 2001 From: Alexander Date: Mon, 29 Jan 2024 13:42:28 -0500 Subject: [PATCH] Update Sway contract; comment out broken tests --- .../contracts/fuel-indexer-test/Forc.lock | 4 +- .../out/debug/fuel-indexer-test-abi.json | 419 ++++-------------- .../out/debug/fuel-indexer-test.bin | Bin 5812 -> 4752 bytes .../contracts/fuel-indexer-test/src/main.sw | 134 +++--- .../fuel-indexer-test/fuel_indexer_test.yaml | 4 +- .../indexers/fuel-indexer-test/src/lib.rs | 57 +-- packages/fuel-indexer-tests/src/fixtures.rs | 69 +-- packages/fuel-indexer-tests/tests/indexing.rs | 21 +- 8 files changed, 242 insertions(+), 466 deletions(-) diff --git a/packages/fuel-indexer-tests/contracts/fuel-indexer-test/Forc.lock b/packages/fuel-indexer-tests/contracts/fuel-indexer-test/Forc.lock index a604fef1b..57d3e19d4 100644 --- a/packages/fuel-indexer-tests/contracts/fuel-indexer-test/Forc.lock +++ b/packages/fuel-indexer-tests/contracts/fuel-indexer-test/Forc.lock @@ -1,6 +1,6 @@ [[package]] name = "core" -source = "path+from-root-BD9159206068AEC6" +source = "path+from-root-C3992B43B72ADB8C" [[package]] name = "fuel-indexer-test" @@ -9,5 +9,5 @@ dependencies = ["std"] [[package]] name = "std" -source = "git+https://github.com/fuellabs/sway?tag=v0.46.1#512a3386f8961185188302f391ccc96553d23a7a" +source = "git+https://github.com/fuellabs/sway?tag=v0.49.1#2ac7030570f22510b0ac2a7b5ddf7baa20bdc0e1" dependencies = ["core"] diff --git a/packages/fuel-indexer-tests/contracts/fuel-indexer-test/out/debug/fuel-indexer-test-abi.json b/packages/fuel-indexer-tests/contracts/fuel-indexer-test/out/debug/fuel-indexer-test-abi.json index 8dedba6e0..c91958c26 100644 --- a/packages/fuel-indexer-tests/contracts/fuel-indexer-test/out/debug/fuel-indexer-test-abi.json +++ b/packages/fuel-indexer-tests/contracts/fuel-indexer-test/out/debug/fuel-indexer-test-abi.json @@ -8,159 +8,35 @@ }, { "typeId": 1, - "type": "(_, _)", - "components": [ - { - "name": "__tuple_element", - "type": 19, - "typeArguments": null - }, - { - "name": "__tuple_element", - "type": 33, - "typeArguments": null - } - ], - "typeParameters": null - }, - { - "typeId": 2, - "type": "(_, _)", - "components": [ - { - "name": "__tuple_element", - "type": 35, - "typeArguments": null - }, - { - "name": "__tuple_element", - "type": 3, - "typeArguments": null - } - ], - "typeParameters": null - }, - { - "typeId": 3, - "type": "(_, _, _)", - "components": [ - { - "name": "__tuple_element", - "type": 36, - "typeArguments": null - }, - { - "name": "__tuple_element", - "type": 7, - "typeArguments": null - }, - { - "name": "__tuple_element", - "type": 1, - "typeArguments": null - } - ], - "typeParameters": null - }, - { - "typeId": 4, - "type": "(_, _, _)", - "components": [ - { - "name": "__tuple_element", - "type": 35, - "typeArguments": null - }, - { - "name": "__tuple_element", - "type": 36, - "typeArguments": null - }, - { - "name": "__tuple_element", - "type": 17, - "typeArguments": null - } - ], - "typeParameters": null - }, - { - "typeId": 5, - "type": "[_; 3]", - "components": [ - { - "name": "__array_element", - "type": 37, - "typeArguments": null - } - ], - "typeParameters": null - }, - { - "typeId": 6, "type": "b256", "components": null, "typeParameters": null }, { - "typeId": 7, + "typeId": 2, "type": "bool", "components": null, "typeParameters": null }, { - "typeId": 8, - "type": "enum AnotherSimpleEnum", - "components": [ - { - "name": "Ping", - "type": 27, - "typeArguments": null - }, - { - "name": "Pung", - "type": 29, - "typeArguments": null - }, - { - "name": "Call", - "type": 12, - "typeArguments": null - } - ], - "typeParameters": null - }, - { - "typeId": 9, + "typeId": 3, "type": "enum Identity", "components": [ { "name": "Address", - "type": 20, + "type": 10, "typeArguments": null }, { "name": "ContractId", - "type": 23, - "typeArguments": null - } - ], - "typeParameters": null - }, - { - "typeId": 10, - "type": "enum NestedEnum", - "components": [ - { - "name": "Inner", - "type": 8, + "type": 12, "typeArguments": null } ], "typeParameters": null }, { - "typeId": 11, + "typeId": 4, "type": "enum Option", "components": [ { @@ -170,38 +46,16 @@ }, { "name": "Some", - "type": 14, + "type": 6, "typeArguments": null } ], "typeParameters": [ - 14 + 6 ] }, { - "typeId": 12, - "type": "enum SimpleEnum", - "components": [ - { - "name": "One", - "type": 0, - "typeArguments": null - }, - { - "name": "Two", - "type": 0, - "typeArguments": null - }, - { - "name": "Three", - "type": 0, - "typeArguments": null - } - ], - "typeParameters": null - }, - { - "typeId": 13, + "typeId": 5, "type": "enum UserError", "components": [ { @@ -213,289 +67,230 @@ "typeParameters": null }, { - "typeId": 14, + "typeId": 6, "type": "generic T", "components": null, "typeParameters": null }, { - "typeId": 15, + "typeId": 7, "type": "raw untyped ptr", "components": null, "typeParameters": null }, { - "typeId": 16, + "typeId": 8, "type": "str", "components": null, "typeParameters": null }, { - "typeId": 17, - "type": "str[12]", - "components": null, - "typeParameters": null - }, - { - "typeId": 18, + "typeId": 9, "type": "str[32]", "components": null, "typeParameters": null }, { - "typeId": 19, - "type": "str[5]", - "components": null, - "typeParameters": null - }, - { - "typeId": 20, + "typeId": 10, "type": "struct Address", "components": [ { "name": "value", - "type": 6, + "type": 1, "typeArguments": null } ], "typeParameters": null }, { - "typeId": 21, + "typeId": 11, "type": "struct AssetId", "components": [ { "name": "value", - "type": 6, - "typeArguments": null - } - ], - "typeParameters": null - }, - { - "typeId": 22, - "type": "struct ComplexTupleStruct", - "components": [ - { - "name": "data", - "type": 2, + "type": 1, "typeArguments": null } ], "typeParameters": null }, { - "typeId": 23, + "typeId": 12, "type": "struct ContractId", "components": [ { "name": "value", - "type": 6, + "type": 1, "typeArguments": null } ], "typeParameters": null }, { - "typeId": 24, + "typeId": 13, "type": "struct ExampleMessageStruct", "components": [ { "name": "id", - "type": 36, + "type": 22, "typeArguments": null }, { "name": "message", - "type": 18, + "type": 9, "typeArguments": null } ], "typeParameters": null }, { - "typeId": 25, + "typeId": 14, "type": "struct ExplicitQueryStruct", "components": [ { "name": "id", - "type": 36, + "type": 22, "typeArguments": null } ], "typeParameters": null }, { - "typeId": 26, + "typeId": 15, "type": "struct Find", "components": [], "typeParameters": null }, { - "typeId": 27, + "typeId": 16, "type": "struct Ping", "components": [ { "name": "id", - "type": 36, + "type": 22, "typeArguments": null }, { "name": "value", - "type": 36, + "type": 22, "typeArguments": null }, { "name": "message", - "type": 18, + "type": 9, "typeArguments": null } ], "typeParameters": null }, { - "typeId": 28, + "typeId": 17, "type": "struct Pong", "components": [ { "name": "id", - "type": 36, + "type": 22, "typeArguments": null }, { "name": "value", - "type": 36, + "type": 22, "typeArguments": null } ], "typeParameters": null }, { - "typeId": 29, + "typeId": 18, "type": "struct Pung", "components": [ { "name": "id", - "type": 36, + "type": 22, "typeArguments": null }, { "name": "value", - "type": 36, + "type": 22, "typeArguments": null }, { "name": "is_pung", - "type": 7, + "type": 2, "typeArguments": null }, { "name": "pung_from", - "type": 9, + "type": 3, "typeArguments": null } ], "typeParameters": null }, { - "typeId": 30, + "typeId": 19, "type": "struct RawVec", "components": [ { "name": "ptr", - "type": 15, + "type": 7, "typeArguments": null }, { "name": "cap", - "type": 36, + "type": 22, "typeArguments": null } ], "typeParameters": [ - 14 + 6 ] }, { - "typeId": 31, + "typeId": 20, "type": "struct SimpleQueryStruct", "components": [ { "name": "id", - "type": 36, + "type": 22, "typeArguments": null } ], "typeParameters": null }, { - "typeId": 32, - "type": "struct SimpleTupleStruct", - "components": [ - { - "name": "data", - "type": 4, - "typeArguments": null - } - ], - "typeParameters": null - }, - { - "typeId": 33, - "type": "struct TupleStructItem", - "components": [ - { - "name": "id", - "type": 36, - "typeArguments": null - }, - { - "name": "arr", - "type": 5, - "typeArguments": null - } - ], - "typeParameters": null - }, - { - "typeId": 34, + "typeId": 21, "type": "struct Vec", "components": [ { "name": "buf", - "type": 30, + "type": 19, "typeArguments": [ { "name": "", - "type": 14, + "type": 6, "typeArguments": null } ] }, { "name": "len", - "type": 36, + "type": 22, "typeArguments": null } ], "typeParameters": [ - 14 + 6 ] }, { - "typeId": 35, - "type": "u32", - "components": null, - "typeParameters": null - }, - { - "typeId": 36, + "typeId": 22, "type": "u64", "components": null, "typeParameters": null }, { - "typeId": 37, + "typeId": 23, "type": "u8", "components": null, "typeParameters": null @@ -522,7 +317,7 @@ "name": "trigger_callreturn", "output": { "name": "", - "type": 29, + "type": 18, "typeArguments": null }, "attributes": null @@ -532,17 +327,7 @@ "name": "trigger_deeply_nested", "output": { "name": "", - "type": 31, - "typeArguments": null - }, - "attributes": null - }, - { - "inputs": [], - "name": "trigger_enum", - "output": { - "name": "", - "type": 8, + "type": 20, "typeArguments": null }, "attributes": null @@ -551,7 +336,7 @@ "inputs": [ { "name": "num", - "type": 36, + "type": 22, "typeArguments": null } ], @@ -568,7 +353,7 @@ "name": "trigger_explicit", "output": { "name": "", - "type": 25, + "type": 14, "typeArguments": null }, "attributes": null @@ -578,7 +363,7 @@ "name": "trigger_find", "output": { "name": "", - "type": 26, + "type": 15, "typeArguments": null }, "attributes": null @@ -588,11 +373,11 @@ "name": "trigger_generics", "output": { "name": "", - "type": 11, + "type": 4, "typeArguments": [ { "name": "", - "type": 27, + "type": 16, "typeArguments": null } ] @@ -649,7 +434,7 @@ "name": "trigger_multiargs", "output": { "name": "", - "type": 27, + "type": 16, "typeArguments": null }, "attributes": null @@ -659,7 +444,7 @@ "name": "trigger_panic", "output": { "name": "", - "type": 36, + "type": 22, "typeArguments": null }, "attributes": null @@ -669,7 +454,7 @@ "name": "trigger_ping", "output": { "name": "", - "type": 27, + "type": 16, "typeArguments": null }, "attributes": null @@ -679,7 +464,7 @@ "name": "trigger_ping_for_optional", "output": { "name": "", - "type": 27, + "type": 16, "typeArguments": null }, "attributes": null @@ -689,7 +474,7 @@ "name": "trigger_pong", "output": { "name": "", - "type": 28, + "type": 17, "typeArguments": null }, "attributes": null @@ -754,25 +539,15 @@ } ] }, - { - "inputs": [], - "name": "trigger_tuple", - "output": { - "name": "", - "type": 22, - "typeArguments": null - }, - "attributes": null - }, { "inputs": [ { "name": "_v", - "type": 34, + "type": 21, "typeArguments": [ { "name": "", - "type": 37, + "type": 23, "typeArguments": null } ] @@ -802,7 +577,7 @@ "logId": 0, "loggedType": { "name": "", - "type": 8, + "type": 5, "typeArguments": [] } }, @@ -810,111 +585,87 @@ "logId": 1, "loggedType": { "name": "", - "type": 10, - "typeArguments": [] - } - }, - { - "logId": 2, - "loggedType": { - "name": "", - "type": 13, - "typeArguments": [] - } - }, - { - "logId": 3, - "loggedType": { - "name": "", - "type": 11, + "type": 4, "typeArguments": [ { "name": "", - "type": 27, + "type": 16, "typeArguments": [] } ] } }, { - "logId": 4, + "logId": 2, "loggedType": { "name": "", - "type": 34, + "type": 21, "typeArguments": [ { "name": "", - "type": 27, + "type": 16, "typeArguments": [] } ] } }, { - "logId": 5, + "logId": 3, "loggedType": { "name": "", - "type": 36, + "type": 22, "typeArguments": null } }, { - "logId": 6, + "logId": 4, "loggedType": { "name": "", - "type": 29, + "type": 18, "typeArguments": [] } }, { - "logId": 7, + "logId": 5, "loggedType": { "name": "", - "type": 29, + "type": 18, "typeArguments": [] } }, { - "logId": 8, + "logId": 6, "loggedType": { "name": "", - "type": 28, + "type": 17, "typeArguments": [] } }, { - "logId": 9, + "logId": 7, "loggedType": { "name": "", - "type": 36, + "type": 22, "typeArguments": null } }, { - "logId": 10, - "loggedType": { - "name": "", - "type": 32, - "typeArguments": [] - } - }, - { - "logId": 11, + "logId": 8, "loggedType": { "name": "", - "type": 16, + "type": 8, "typeArguments": null } }, { - "logId": 12, + "logId": 9, "loggedType": { "name": "", - "type": 34, + "type": 21, "typeArguments": [ { "name": "", - "type": 28, + "type": 17, "typeArguments": [] } ] @@ -926,7 +677,7 @@ "messageId": 0, "messageType": { "name": "", - "type": 24, + "type": 13, "typeArguments": [] } } diff --git a/packages/fuel-indexer-tests/contracts/fuel-indexer-test/out/debug/fuel-indexer-test.bin b/packages/fuel-indexer-tests/contracts/fuel-indexer-test/out/debug/fuel-indexer-test.bin index 2c11d81e0bd96698526a5a7e9a14f5ca317379a9..f8f5cb2ac92a62b395430cf1a376902b21932357 100644 GIT binary patch literal 4752 zcmc&%Uu;`v760tmsnc}HU2P}nwFH-vWS3IH?c#(KsJOTG#lB0t+%(QeSzYIDcI$Nc zN9?5A`Y?lrl)Zo|&?w?zPn%%l!7iOz4JIs}f;I`55R3<&0Es`fWZ;1!K;?J7``yGF zq#LNPt2XEN{X6G;=ihf+VXPy?ysuZw{k`FnZvUC(^aU%IYE6Z$fWDb#N#KmYlfVxO z>;O*-TmZHOUIm^JcpdnZz-8cB7yJ5wvjWS&a{?a&en{Yxz@HJA^qCj90(@HFP2kT8 z{1ouR0zU(MM&K_2=i2aDfxnFTyug=%7hLQ=4(tg0D)1u$|8Tv-3@Yz zk{JeHiS9U&n{Gw&O>Li`Av>c;>o#na2{L}~DW<8$V8c#amDba20{5!Q;6F@y%&!rT z5_m_U$324f*amn^frk-kglXS`d!Guf=8h%0pC9}CVh&?bqss4#^={1d$Ba&wzrMzz zNt{hGAJ#gcdw(n$&{d8#U!H51S!_`y!quH+_L z1No*B7Bpg8lB=hcY=o^&hCCuUk+4-|@)UGTL&r(zm>FhKYusD!#$12Q8f*-wakn&d zoPqwf&~X-PGhbw?Rb=vMg~^V_u)io-A7rp`e=HLxJsb9HU0u&Y&zY#uGpS1k*K-^D z4#6jf1eNU!^yEGnV*g`3>0V5-3RQc$J`b6inu$`(^s81}=yz4JC+l1A?}Tba8nE?5 zoJB6%sd^*dT$so=tH%)wA1B`;UIya6z$qR(*r($@=C~`hn#aFFBI@#h?9^f z%hLgKD)KOhcnRU&sycbCK`{XT1g4D0SK9dPS#QSPdcSSxbOkz{r(6WD62%AZ!cd1) z*Vj>37xKF~MmP<5A3|JofgSCjn_F7JRK03auAC0w9A8Xs=vq@K3 zUm&~g61W47S`ZM+pBukLoGc$FY3@ z?DIJ`>y!~6ea0BoS6Uw*hrW(6>Ya^%hmQK%b0+o28(|Z@M3U_TZqQqVGoI{QINJrD zB%5#_^cK3*VMofFddOX`hv+@;v4J>F(-;5*p+zlaUg z9rUW`HB&Xks|_-0kers-2_t^_ZST!vyk~W5V~T1ca#R8jiF#1j25(;teN3%`-r}~i zu#@QH>@~*wvMllh`2f4QeOk7yPn)AYjmI*rQ=ewVjG#UY9YeT z3glA17Z5b~9_gV$F8vnh6qJ4wychP+A@>335fYU8ogF=>w&a^S`W3qyv3>w?IEftL zeI~{ByZj2XBft6E(U)$f2D|={|HjFepG`KefB)-==C^+EtFM-W&9l!6J{>OAj-!2O z`#PdxVBY4Rx8&P)@RbYa@XsS2b!Xk3hi|wv`WhdW%SvIjSXNe6Du-1&P4{t2Y|v)=#! literal 5812 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 diff --git a/packages/fuel-indexer-tests/contracts/fuel-indexer-test/src/main.sw b/packages/fuel-indexer-tests/contracts/fuel-indexer-test/src/main.sw index 917f45821..5b50039c3 100644 --- a/packages/fuel-indexer-tests/contracts/fuel-indexer-test/src/main.sw +++ b/packages/fuel-indexer-tests/contracts/fuel-indexer-test/src/main.sw @@ -12,7 +12,7 @@ use std::{ logging::log, message::send_typed_message, revert::revert, - token::*, + asset::*, }; configurable { @@ -43,18 +43,23 @@ pub struct Pung { pung_from: Identity, } -pub struct TupleStructItem { - id: u64, - arr: [u8; 3], -} +// TODO: Sway does not currently support auto-implementation +// of the AutoEncode trait for general tuple structures; once +// it's been implemented for more tuple types, these types and +// functions should be re-enabled. -pub struct ComplexTupleStruct { - data: (u32, (u64, bool, (str[5], TupleStructItem))), -} +// pub struct TupleStructItem { +// id: u64, +// arr: [u8; 3], +// } -pub struct SimpleTupleStruct { - data: (u32, u64, str[12]), -} +// pub struct ComplexTupleStruct { +// data: (u32, (u64, bool, (str[5], TupleStructItem))), +// } + +// pub struct SimpleTupleStruct { +// data: (u32, u64, str), +// } pub struct ExplicitQueryStruct { id: u64, @@ -69,21 +74,24 @@ pub struct ExampleMessageStruct { message: str[32], } -pub enum SimpleEnum { - One: (), - Two: (), - Three: (), -} +// TODO: Sway does not currently support auto-implementation +// of the AutoEncode trait for string arrays; once +// it's been implemented, these types and functions should be re-enabled. -pub enum AnotherSimpleEnum { - Ping: Ping, - Pung: Pung, - Call: SimpleEnum, -} +// pub enum SimpleEnum { +// One: (), +// Two: (), +// Three: (), +// } -pub enum NestedEnum { - Inner: AnotherSimpleEnum, -} +// pub enum AnotherSimpleEnum { +// Pung: Pung, +// Call: SimpleEnum, +// } + +// pub enum NestedEnum { +// Inner: AnotherSimpleEnum, +// } pub struct Find {} @@ -102,7 +110,7 @@ abi FuelIndexer { fn trigger_transferout(); #[payable] fn trigger_messageout(); - fn trigger_tuple() -> ComplexTupleStruct; + // fn trigger_tuple() -> ComplexTupleStruct; fn trigger_explicit() -> ExplicitQueryStruct; fn trigger_deeply_nested() -> SimpleQueryStruct; fn trigger_vec_pong_calldata(v: Vec); @@ -111,7 +119,7 @@ abi FuelIndexer { fn trigger_panic() -> u64; fn trigger_revert(); fn trigger_enum_error(num: u64); - fn trigger_enum() -> AnotherSimpleEnum; + // fn trigger_enum() -> AnotherSimpleEnum; fn trigger_mint(); #[payable] fn trigger_burn(); @@ -217,27 +225,27 @@ impl FuelIndexer for Contract { send_typed_message(RECEIVER, example, 100); } - fn trigger_tuple() -> ComplexTupleStruct { - log(SimpleTupleStruct { - data: (4u32, 5u64, __to_str_array("hello world!")), - }); - ComplexTupleStruct { - data: ( - 1u32, - ( - 5u64, - true, - ( - __to_str_array("abcde"), - TupleStructItem { - id: 54321, - arr: [1u8, 2, 3], - }, - ), - ), - ), - } - } + // fn trigger_tuple() -> ComplexTupleStruct { + // log(SimpleTupleStruct { + // data: (4u32, 5u64, "hello world!"), + // }); + // ComplexTupleStruct { + // data: ( + // 1u32, + // ( + // 5u64, + // true, + // ( + // __to_str_array("abcde"), + // TupleStructItem { + // id: 54321, + // arr: [1u8, 2, 3], + // }, + // ), + // ), + // ), + // } + // } fn trigger_explicit() -> ExplicitQueryStruct { ExplicitQueryStruct { id: 456 } @@ -299,22 +307,22 @@ impl FuelIndexer for Contract { require(num != 69, UserError::Unauthorized); } - fn trigger_enum() -> AnotherSimpleEnum { - log(AnotherSimpleEnum::Pung(Pung { - id: 91231, - value: 888777, - is_pung: true, - pung_from: Identity::ContractId(ContractId::from(0x322ee5fb2cabec472409eb5f9b42b59644edb7bf9943eda9c2e3947305ed5e96)), - })); - - log(NestedEnum::Inner(AnotherSimpleEnum::Call(SimpleEnum::Three))); - - AnotherSimpleEnum::Ping(Ping { - id: 7777, - value: 7775, - message: __to_str_array("hello world! I am, a log event!!"), - }) - } + // fn trigger_enum() -> AnotherSimpleEnum { + // log(AnotherSimpleEnum::Pung(Pung { + // id: 91231, + // value: 888777, + // is_pung: true, + // pung_from: Identity::ContractId(ContractId::from(0x322ee5fb2cabec472409eb5f9b42b59644edb7bf9943eda9c2e3947305ed5e96)), + // })); + + // log(NestedEnum::Inner(AnotherSimpleEnum::Call(SimpleEnum::Three))); + + // AnotherSimpleEnum::Ping(Ping { + // id: 7777, + // value: 7775, + // message: __to_str_array("hello world! I am, a log event!!"), + // }) + // } fn trigger_mint() { mint(ZERO_B256, 100); diff --git a/packages/fuel-indexer-tests/indexers/fuel-indexer-test/fuel_indexer_test.yaml b/packages/fuel-indexer-tests/indexers/fuel-indexer-test/fuel_indexer_test.yaml index b4903ce44..1c45ee0bc 100644 --- a/packages/fuel-indexer-tests/indexers/fuel-indexer-test/fuel_indexer_test.yaml +++ b/packages/fuel-indexer-tests/indexers/fuel-indexer-test/fuel_indexer_test.yaml @@ -4,8 +4,8 @@ graphql_schema: packages/fuel-indexer-tests/indexers/fuel-indexer-test/schema/fu abi: packages/fuel-indexer-tests/contracts/fuel-indexer-test/out/debug/fuel-indexer-test-abi.json start_block: ~ end_block: ~ -contract_id: fuel1tqz66m7p2slrzlxgd4x6zxzm3cfzcxpcvxleu9g68qv6c03xzq7svf2y5a +contract_id: fuel1zuk6jzm6z2nnf0kx7ckl55ea7y0xfvpdqxkcpsuhz399yvjx5fdslt3xr8 identifier: index1 module: wasm: target/wasm32-unknown-unknown/release/fuel_indexer_test.wasm -resumable: true \ No newline at end of file +resumable: true diff --git a/packages/fuel-indexer-tests/indexers/fuel-indexer-test/src/lib.rs b/packages/fuel-indexer-tests/indexers/fuel-indexer-test/src/lib.rs index c4d9c2a9e..c5be0e2e0 100644 --- a/packages/fuel-indexer-tests/indexers/fuel-indexer-test/src/lib.rs +++ b/packages/fuel-indexer-tests/indexers/fuel-indexer-test/src/lib.rs @@ -171,20 +171,23 @@ mod fuel_indexer_test { entity.save(); } - fn fuel_indexer_test_tuple( - event: ComplexTupleStruct, - logdata_entity: SimpleTupleStruct, - ) { - info!("fuel_indexer_test_tuple handling ComplexTupleStruct and SimpleTupleStruct events."); - let data: (u32, (u64, bool, (SizedAsciiString<5>, TupleStructItem))) = event.data; - - TupleEntity::new( - data.1 .2 .0.to_string(), - data.1 .2 .1.id, - logdata_entity.data.2.to_string(), - ) - .get_or_create(); - } + // TODO: Due to incomplete support for tuples and the AutoEncode trait + // in the Sway compiler, this test has been ignored for now. + + // fn fuel_indexer_test_tuple( + // event: ComplexTupleStruct, + // logdata_entity: SimpleTupleStruct, + // ) { + // info!("fuel_indexer_test_tuple handling ComplexTupleStruct and SimpleTupleStruct events."); + // let data: (u32, (u64, bool, (SizedAsciiString<5>, TupleStructItem))) = event.data; + + // TupleEntity::new( + // data.1 .2 .0.to_string(), + // data.1 .2 .1.id, + // logdata_entity.data.2.to_string(), + // ) + // .get_or_create(); + // } fn fuel_indexer_test_pure_function(call: Call) { info!("fuel_indexer_test_tuple handling Call event."); @@ -442,19 +445,19 @@ mod fuel_indexer_test { e.save(); } - fn fuel_indexer_trigger_enum( - _first: AnotherSimpleEnum, - _second: NestedEnum, - _third: AnotherSimpleEnum, - ) { - info!("fuel_indexer_trigger_enum handling trigger_enum event.."); - - let e = ComplexEnumEntity { - id: uid([1]), - one: Some(EnumEntity::One.into()), - }; - e.save(); - } + // fn fuel_indexer_trigger_enum( + // _first: AnotherSimpleEnum, + // _second: NestedEnum, + // _third: AnotherSimpleEnum, + // ) { + // info!("fuel_indexer_trigger_enum handling trigger_enum event.."); + + // let e = ComplexEnumEntity { + // id: uid([1]), + // one: Some(EnumEntity::One.into()), + // }; + // e.save(); + // } fn fuel_indexer_trigger_non_indexable_type(_b: BlockData) { info!("fuel_indexer_trigger_non_indexable_type handling trigger_non_indexable_type event."); diff --git a/packages/fuel-indexer-tests/src/fixtures.rs b/packages/fuel-indexer-tests/src/fixtures.rs index 3f2ca8983..137db8521 100644 --- a/packages/fuel-indexer-tests/src/fixtures.rs +++ b/packages/fuel-indexer-tests/src/fixtures.rs @@ -695,18 +695,23 @@ pub mod test_web { HttpResponse::Ok().body(block_height.to_string()) } - async fn fuel_indexer_test_tuple(state: web::Data>) -> impl Responder { - let _ = state - .contract - .methods() - .trigger_tuple() - .call_params(CallParameters::default()) - .unwrap() - .call() - .await - .unwrap(); - HttpResponse::Ok() - } + // TODO: Sway does not currently support auto-implementation + // of the AutoEncode trait for general tuple structures; once + // it's been implemented for more tuple types, these types and + // functions should be re-enabled. + + // async fn fuel_indexer_test_tuple(state: web::Data>) -> impl Responder { + // let _ = state + // .contract + // .methods() + // .trigger_tuple() + // .call_params(CallParameters::default()) + // .unwrap() + // .call() + // .await + // .unwrap(); + // HttpResponse::Ok() + // } async fn fuel_indexer_vec_calldata( state: web::Data>, @@ -796,21 +801,27 @@ pub mod test_web { HttpResponse::Ok() } - async fn fuel_indexer_test_trigger_enum( - state: web::Data>, - ) -> impl Responder { - let _ = state - .contract - .methods() - .trigger_enum() - .call_params(CallParameters::default()) - .unwrap() - .call() - .await - .unwrap(); - - HttpResponse::Ok() - } + // TODO: Sway does not currently support auto-implementation + // of the AutoEncode trait for string arrays (and string slices + // cannot be returned from a function); once it's been + // implemented for more tuple types, these types and + // functions should be re-enabled. + + // async fn fuel_indexer_test_trigger_enum( + // state: web::Data>, + // ) -> impl Responder { + // let _ = state + // .contract + // .methods() + // .trigger_enum() + // .call_params(CallParameters::default()) + // .unwrap() + // .call() + // .await + // .unwrap(); + + // HttpResponse::Ok() + // } async fn fuel_indexer_test_trigger_mint( state: web::Data>, @@ -922,7 +933,7 @@ pub mod test_web { "/block_height", web::get().to(fuel_indexer_test_get_block_height), ) - .route("/tuples", web::post().to(fuel_indexer_test_tuple)) + // .route("/tuples", web::post().to(fuel_indexer_test_tuple)) .route( "/deeply_nested", web::post().to(fuel_indexer_test_deeply_nested_schema_fields), @@ -942,7 +953,7 @@ pub mod test_web { "/enum_error", web::post().to(fuel_indexer_test_trigger_enum_error), ) - .route("/enum", web::post().to(fuel_indexer_test_trigger_enum)) + // .route("/enum", web::post().to(fuel_indexer_test_trigger_enum)) .route("/mint", web::post().to(fuel_indexer_test_trigger_mint)) .route("/burn", web::post().to(fuel_indexer_test_trigger_burn)) .route( diff --git a/packages/fuel-indexer-tests/tests/indexing.rs b/packages/fuel-indexer-tests/tests/indexing.rs index 33bfdddb5..8881a8672 100644 --- a/packages/fuel-indexer-tests/tests/indexing.rs +++ b/packages/fuel-indexer-tests/tests/indexing.rs @@ -10,7 +10,7 @@ use std::{collections::HashSet, str::FromStr}; const REVERT_VM_CODE: u64 = 0x0004; const EXPECTED_CONTRACT_ID: &str = - "5805ad6fc1543e317cc86d4da1185b8e122c183861bf9e151a3819ac3e26103d"; + "172da90b7a12a734bec6f62dfa533df11e64b02d01ad80c397144a523246a25b"; const TRANSFER_BASE_ASSET_ID: &str = "0000000000000000000000000000000000000000000000000000000000000000"; @@ -363,6 +363,9 @@ async fn test_index_optional_types() { assert!(row.get::, usize>(3).is_none()); } +// TODO: Due to incomplete support for tuples and the AutoEncode trait +// in the Sway compiler, this test has been ignored for now. +#[ignore] #[actix_web::test] async fn test_index_tuples() { let IndexingTestComponents { @@ -574,16 +577,16 @@ async fn test_index_sway_enums() { ref node, ref db, .. } = setup_indexing_test_components(None).await; - mock_request("/enum").await; + // mock_request("/enum").await; - let mut conn = db.pool.acquire().await.unwrap(); - let row = - sqlx::query("SELECT * FROM fuel_indexer_test_index1.complexenumentity LIMIT 1") - .fetch_one(&mut conn) - .await - .unwrap(); + // let mut conn = db.pool.acquire().await.unwrap(); + // let row = + // sqlx::query("SELECT * FROM fuel_indexer_test_index1.complexenumentity LIMIT 1") + // .fetch_one(&mut conn) + // .await + // .unwrap(); - assert_eq!(row.get::<&str, usize>(1), "EnumEntity::One"); + // assert_eq!(row.get::<&str, usize>(1), "EnumEntity::One"); mock_request("/enum_error").await;