From 4c19d97ade9dcc3d27b52405dbf8fbe04ef227f9 Mon Sep 17 00:00:00 2001 From: Nasr Date: Sun, 8 Sep 2024 20:47:36 -0400 Subject: [PATCH] refactor: probabilities cumulative --- dojo_dev.toml | 2 +- dojo_sepolia.toml | 4 +- indexer.db | Bin 487424 -> 417792 bytes manifests/dev/base/abis/dojo-world.json | 5 + .../flippyflop-actions-4407e5f5.toml | 4 +- manifests/dev/base/dojo-world.toml | 4 +- .../contracts/flippyflop-game-23e1ad43.json | 4 +- manifests/dev/deployment/abis/dojo-world.json | 5 + manifests/dev/deployment/manifest.json | 32 +- manifests/dev/deployment/manifest.toml | 23 +- .../contracts/flippyflop-Flip-6bd3ed9d.json | 768 ++++++++++ .../flippyflop-actions-4407e5f5.json | 252 ++++ .../contracts/flippyflop-game-23e1ad43.json | 231 +++ manifests/sepolia/base/abis/dojo-base.json | 98 ++ manifests/sepolia/base/abis/dojo-world.json | 1291 +++++++++++++++++ .../models/flippyflop-Claim-c098f39e.json | 421 ++++++ ...ippyflop-ERC20AllowanceModel-55d0c41e.json | 429 ++++++ ...flippyflop-ERC20BalanceModel-7866fe9f.json | 425 ++++++ ...ppyflop-ERC20BridgeableModel-1ad0a3e6.json | 407 ++++++ ...lippyflop-ERC20MetadataModel-1fc3dc07.json | 433 ++++++ .../abis/models/flippyflop-Game-54c54faf.json | 421 ++++++ ...lippyflop-InitializableModel-4239d2f3.json | 421 ++++++ .../abis/models/flippyflop-Tile-61fb9291.json | 411 ++++++ .../abis/models/flippyflop-User-25ca4606.json | 415 ++++++ .../contracts/flippyflop-Flip-6bd3ed9d.toml | 15 + .../flippyflop-actions-4407e5f5.toml | 15 + .../contracts/flippyflop-game-23e1ad43.toml | 14 + manifests/sepolia/base/dojo-base.toml | 6 + manifests/sepolia/base/dojo-world.toml | 6 + .../models/flippyflop-Claim-c098f39e.toml | 17 + ...ippyflop-ERC20AllowanceModel-55d0c41e.toml | 27 + ...flippyflop-ERC20BalanceModel-7866fe9f.toml | 22 + ...ppyflop-ERC20BridgeableModel-1ad0a3e6.toml | 17 + ...lippyflop-ERC20MetadataModel-1fc3dc07.toml | 32 + .../base/models/flippyflop-Game-54c54faf.toml | 17 + ...lippyflop-InitializableModel-4239d2f3.toml | 17 + .../base/models/flippyflop-Tile-61fb9291.toml | 22 + .../base/models/flippyflop-User-25ca4606.toml | 27 + src/models.cairo | 22 +- src/packing.cairo | 4 +- src/systems/actions.cairo | 16 +- 41 files changed, 6748 insertions(+), 54 deletions(-) create mode 100644 manifests/sepolia/base/abis/contracts/flippyflop-Flip-6bd3ed9d.json create mode 100644 manifests/sepolia/base/abis/contracts/flippyflop-actions-4407e5f5.json create mode 100644 manifests/sepolia/base/abis/contracts/flippyflop-game-23e1ad43.json create mode 100644 manifests/sepolia/base/abis/dojo-base.json create mode 100644 manifests/sepolia/base/abis/dojo-world.json create mode 100644 manifests/sepolia/base/abis/models/flippyflop-Claim-c098f39e.json create mode 100644 manifests/sepolia/base/abis/models/flippyflop-ERC20AllowanceModel-55d0c41e.json create mode 100644 manifests/sepolia/base/abis/models/flippyflop-ERC20BalanceModel-7866fe9f.json create mode 100644 manifests/sepolia/base/abis/models/flippyflop-ERC20BridgeableModel-1ad0a3e6.json create mode 100644 manifests/sepolia/base/abis/models/flippyflop-ERC20MetadataModel-1fc3dc07.json create mode 100644 manifests/sepolia/base/abis/models/flippyflop-Game-54c54faf.json create mode 100644 manifests/sepolia/base/abis/models/flippyflop-InitializableModel-4239d2f3.json create mode 100644 manifests/sepolia/base/abis/models/flippyflop-Tile-61fb9291.json create mode 100644 manifests/sepolia/base/abis/models/flippyflop-User-25ca4606.json create mode 100644 manifests/sepolia/base/contracts/flippyflop-Flip-6bd3ed9d.toml create mode 100644 manifests/sepolia/base/contracts/flippyflop-actions-4407e5f5.toml create mode 100644 manifests/sepolia/base/contracts/flippyflop-game-23e1ad43.toml create mode 100644 manifests/sepolia/base/dojo-base.toml create mode 100644 manifests/sepolia/base/dojo-world.toml create mode 100644 manifests/sepolia/base/models/flippyflop-Claim-c098f39e.toml create mode 100644 manifests/sepolia/base/models/flippyflop-ERC20AllowanceModel-55d0c41e.toml create mode 100644 manifests/sepolia/base/models/flippyflop-ERC20BalanceModel-7866fe9f.toml create mode 100644 manifests/sepolia/base/models/flippyflop-ERC20BridgeableModel-1ad0a3e6.toml create mode 100644 manifests/sepolia/base/models/flippyflop-ERC20MetadataModel-1fc3dc07.toml create mode 100644 manifests/sepolia/base/models/flippyflop-Game-54c54faf.toml create mode 100644 manifests/sepolia/base/models/flippyflop-InitializableModel-4239d2f3.toml create mode 100644 manifests/sepolia/base/models/flippyflop-Tile-61fb9291.toml create mode 100644 manifests/sepolia/base/models/flippyflop-User-25ca4606.toml diff --git a/dojo_dev.toml b/dojo_dev.toml index 7ae0b91..eee74f9 100644 --- a/dojo_dev.toml +++ b/dojo_dev.toml @@ -5,7 +5,7 @@ account_address = "0xb3ff441a68610b30fd5e2abbf3a1548eb6ba6f3559f2862bf2dc757e582 private_key = "0x2bbf4f9fd0bbb2e60b0316c1fe0b76cf7a4d0198bd493ced9b8df2a3a24d68a" #world_address = "0x1ca8e3b7bc101ffd443a1e3b452a4f49607841461b168cb2cc365322722b67" # Uncomment and update this line with your world address. #world_address = "0x025Ee38b230906EA41B00401cC12bb51f58DC62198cf058a336655696908863D" -world_address = "0x35819a8df0a85781f9d8793ea1b3163e94812d41707a21a6fb586d00e5f7a16" +world_address = "0x590912ee790b7f8211893544bca0742753de0729088d8f1f2e846056670c24c" [world] name = "Flippy Flop" diff --git a/dojo_sepolia.toml b/dojo_sepolia.toml index bedbd3c..7e4cb9d 100644 --- a/dojo_sepolia.toml +++ b/dojo_sepolia.toml @@ -5,7 +5,7 @@ account_address = "0xb3ff441a68610b30fd5e2abbf3a1548eb6ba6f3559f2862bf2dc757e582 private_key = "0x2bbf4f9fd0bbb2e60b0316c1fe0b76cf7a4d0198bd493ced9b8df2a3a24d68a" #world_address = "0x1ca8e3b7bc101ffd443a1e3b452a4f49607841461b168cb2cc365322722b67" # Uncomment and update this line with your world address. #world_address = "0x025Ee38b230906EA41B00401cC12bb51f58DC62198cf058a336655696908863D" -world_address = "0x3e61be69b2e12ba2d5fe6f3b39103014e1c2c708a61704ecdb0e3bb41f8bb3" +world_address = "0x646b1ab8ec4c75c713ad961d864f42eb9a2c5ae4844c0613f9d1fea0e484616" [world] name = "Flippy Flop" @@ -13,7 +13,7 @@ description = "The official Dojo Starter guide, the quickest and most streamline cover_uri = "file://assets/cover.png" icon_uri = "file://assets/icon.png" website = "https://github.com/dojoengine/dojo-starter" -seed = "flippyflop-sepolia-1000" +seed = "flippyflop-sepolia-powerups" [namespace] default = "flippyflop" diff --git a/indexer.db b/indexer.db index 8fa049728f5913fd945c34b9f36ece11528b7734..4e19e9f9db63246879979b141d806bf30207e4e8 100644 GIT binary patch literal 417792 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 YDaxN4#?jm`n(e_DFbpPk@EA<|6Z9&SdLu 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⪙(~UWb0ejJ4 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", diff --git a/manifests/dev/base/contracts/flippyflop-actions-4407e5f5.toml b/manifests/dev/base/contracts/flippyflop-actions-4407e5f5.toml index 828b991..0244e73 100644 --- a/manifests/dev/base/contracts/flippyflop-actions-4407e5f5.toml +++ b/manifests/dev/base/contracts/flippyflop-actions-4407e5f5.toml @@ -1,6 +1,6 @@ kind = "DojoContract" -class_hash = "0x4b4721d434ce198b907c12463c98a0c437abbf13fc239ffe7393d0adede908" -original_class_hash = "0x4b4721d434ce198b907c12463c98a0c437abbf13fc239ffe7393d0adede908" +class_hash = "0x5ec70ca5380847bcee5398f1bd2adab02c5eb519981f460d206c84231b87e69" +original_class_hash = "0x5ec70ca5380847bcee5398f1bd2adab02c5eb519981f460d206c84231b87e69" base_class_hash = "0x0" abi = "manifests/dev/base/abis/contracts/flippyflop-actions-4407e5f5.json" reads = [] diff --git a/manifests/dev/base/dojo-world.toml b/manifests/dev/base/dojo-world.toml index f9080f2..9cde092 100644 --- a/manifests/dev/base/dojo-world.toml +++ b/manifests/dev/base/dojo-world.toml @@ -1,6 +1,6 @@ kind = "Class" -class_hash = "0x3d5a55872f626e15bc19b25028141edf707652ccf3f7b1252d308517edd816d" -original_class_hash = "0x3d5a55872f626e15bc19b25028141edf707652ccf3f7b1252d308517edd816d" +class_hash = "0x79b9624eacd7b74e31db18b10fddbd73c010b85cd1b1f56028c24bafa0b1487" +original_class_hash = "0x79b9624eacd7b74e31db18b10fddbd73c010b85cd1b1f56028c24bafa0b1487" abi = "manifests/dev/base/abis/dojo-world.json" tag = "dojo-world" manifest_name = "dojo-world" diff --git a/manifests/dev/deployment/abis/contracts/flippyflop-game-23e1ad43.json b/manifests/dev/deployment/abis/contracts/flippyflop-game-23e1ad43.json index c9b4f2e..42ba426 100644 --- a/manifests/dev/deployment/abis/contracts/flippyflop-game-23e1ad43.json +++ b/manifests/dev/deployment/abis/contracts/flippyflop-game-23e1ad43.json @@ -137,14 +137,14 @@ "items": [ { "type": "function", - "name": "lock_game", + "name": "lock", "inputs": [], "outputs": [], "state_mutability": "external" }, { "type": "function", - "name": "unlock_game", + "name": "unlock", "inputs": [], "outputs": [], "state_mutability": "external" diff --git a/manifests/dev/deployment/abis/dojo-world.json b/manifests/dev/deployment/abis/dojo-world.json index 03bdfbb..49e89ee 100644 --- a/manifests/dev/deployment/abis/dojo-world.json +++ b/manifests/dev/deployment/abis/dojo-world.json @@ -999,6 +999,11 @@ "type": "core::felt252", "kind": "data" }, + { + "name": "entity_id", + "type": "core::felt252", + "kind": "data" + }, { "name": "keys", "type": "core::array::Span::", diff --git a/manifests/dev/deployment/manifest.json b/manifests/dev/deployment/manifest.json index 8f47002..6aec71d 100644 --- a/manifests/dev/deployment/manifest.json +++ b/manifests/dev/deployment/manifest.json @@ -1,8 +1,8 @@ { "world": { "kind": "WorldContract", - "class_hash": "0x3d5a55872f626e15bc19b25028141edf707652ccf3f7b1252d308517edd816d", - "original_class_hash": "0x3d5a55872f626e15bc19b25028141edf707652ccf3f7b1252d308517edd816d", + "class_hash": "0x79b9624eacd7b74e31db18b10fddbd73c010b85cd1b1f56028c24bafa0b1487", + "original_class_hash": "0x79b9624eacd7b74e31db18b10fddbd73c010b85cd1b1f56028c24bafa0b1487", "abi": [ { "type": "impl", @@ -1004,6 +1004,11 @@ "type": "core::felt252", "kind": "data" }, + { + "name": "entity_id", + "type": "core::felt252", + "kind": "data" + }, { "name": "keys", "type": "core::array::Span::", @@ -1289,8 +1294,8 @@ ] } ], - "address": "0x35819a8df0a85781f9d8793ea1b3163e94812d41707a21a6fb586d00e5f7a16", - "transaction_hash": "0xb1dadb96fa5c3ba9669be4dde41cf58d63557a1f685159e935a1d5fe204bab", + "address": "0x590912ee790b7f8211893544bca0742753de0729088d8f1f2e846056670c24c", + "transaction_hash": "0x864800688fd52f023a5abb1f2f3d1080e1343f1356b157091f30795bd9f90e", "block_number": 3, "seed": "flippyflop-katana", "metadata": { @@ -1310,7 +1315,7 @@ "contracts": [ { "kind": "DojoContract", - "address": "0x59b976a841da5205c6129711d742382d7a3cfd1e3e03cfc62a5eb666393d5d8", + "address": "0x495548f90cb20886b2e910ceb6b02919db5d291098395353ac253ce4b8d0f10", "class_hash": "0x7c94aef06e9d76934f52e2abaa8e990dd530472a0e554ef916266acb628c946", "original_class_hash": "0x7c94aef06e9d76934f52e2abaa8e990dd530472a0e554ef916266acb628c946", "base_class_hash": "0x2427dd10a58850ac9a5ca6ce04b7771b05330fd18f2e481831ad903b969e6b2", @@ -2101,7 +2106,7 @@ }, { "kind": "DojoContract", - "address": "0x2728baa5c7de0dc4b2fd20d71b76edcfb201924f45e11a52906e1fd22293dbd", + "address": "0x1466f792e0394729ebfe0fc3dc8d95ff5eeabf56e0e4fc329bab60851f3bbea", "class_hash": "0x4b4721d434ce198b907c12463c98a0c437abbf13fc239ffe7393d0adede908", "original_class_hash": "0x4b4721d434ce198b907c12463c98a0c437abbf13fc239ffe7393d0adede908", "base_class_hash": "0x2427dd10a58850ac9a5ca6ce04b7771b05330fd18f2e481831ad903b969e6b2", @@ -2361,6 +2366,7 @@ "writes": [ "flippyflop-Tile", "flippyflop-Game", + "flippyflop-Claim", "flippyflop-ERC20MetadataModel", "flippyflop-ERC20BalanceModel", "flippyflop-ERC20AllowanceModel", @@ -2378,9 +2384,9 @@ }, { "kind": "DojoContract", - "address": "0x15305fffbbb7c68cd216912de18257d33645c5e0a70b4f45dd12c15840355ea", - "class_hash": "0x4dba281a1041e66220d62f9df916c03fc0b4c8c19014f9db368c2f5a0c15bad", - "original_class_hash": "0x4dba281a1041e66220d62f9df916c03fc0b4c8c19014f9db368c2f5a0c15bad", + "address": "0x68f97643254ba8b4f111955872d22cdf840661bb8ebf0ef23d3d4b703228748", + "class_hash": "0x192db261dca4aa58ce197a2947f7b0af929b582fe317688f67c19941b41e1a3", + "original_class_hash": "0x192db261dca4aa58ce197a2947f7b0af929b582fe317688f67c19941b41e1a3", "base_class_hash": "0x2427dd10a58850ac9a5ca6ce04b7771b05330fd18f2e481831ad903b969e6b2", "abi": [ { @@ -2521,14 +2527,14 @@ "items": [ { "type": "function", - "name": "lock_game", + "name": "lock", "inputs": [], "outputs": [], "state_mutability": "external" }, { "type": "function", - "name": "unlock_game", + "name": "unlock", "inputs": [], "outputs": [], "state_mutability": "external" @@ -2620,8 +2626,8 @@ "init_calldata": [], "tag": "flippyflop-game", "systems": [ - "lock_game", - "unlock_game" + "lock", + "unlock" ], "manifest_name": "flippyflop-game-23e1ad43" } diff --git a/manifests/dev/deployment/manifest.toml b/manifests/dev/deployment/manifest.toml index db86905..0a48fa6 100644 --- a/manifests/dev/deployment/manifest.toml +++ b/manifests/dev/deployment/manifest.toml @@ -1,10 +1,10 @@ [world] kind = "WorldContract" -class_hash = "0x3d5a55872f626e15bc19b25028141edf707652ccf3f7b1252d308517edd816d" -original_class_hash = "0x3d5a55872f626e15bc19b25028141edf707652ccf3f7b1252d308517edd816d" +class_hash = "0x79b9624eacd7b74e31db18b10fddbd73c010b85cd1b1f56028c24bafa0b1487" +original_class_hash = "0x79b9624eacd7b74e31db18b10fddbd73c010b85cd1b1f56028c24bafa0b1487" abi = "manifests/dev/deployment/abis/dojo-world.json" -address = "0x35819a8df0a85781f9d8793ea1b3163e94812d41707a21a6fb586d00e5f7a16" -transaction_hash = "0xb1dadb96fa5c3ba9669be4dde41cf58d63557a1f685159e935a1d5fe204bab" +address = "0x590912ee790b7f8211893544bca0742753de0729088d8f1f2e846056670c24c" +transaction_hash = "0x864800688fd52f023a5abb1f2f3d1080e1343f1356b157091f30795bd9f90e" block_number = 3 seed = "flippyflop-katana" manifest_name = "dojo-world" @@ -23,7 +23,7 @@ manifest_name = "dojo-base" [[contracts]] kind = "DojoContract" -address = "0x59b976a841da5205c6129711d742382d7a3cfd1e3e03cfc62a5eb666393d5d8" +address = "0x495548f90cb20886b2e910ceb6b02919db5d291098395353ac253ce4b8d0f10" class_hash = "0x7c94aef06e9d76934f52e2abaa8e990dd530472a0e554ef916266acb628c946" original_class_hash = "0x7c94aef06e9d76934f52e2abaa8e990dd530472a0e554ef916266acb628c946" base_class_hash = "0x2427dd10a58850ac9a5ca6ce04b7771b05330fd18f2e481831ad903b969e6b2" @@ -47,7 +47,7 @@ manifest_name = "flippyflop-Flip-6bd3ed9d" [[contracts]] kind = "DojoContract" -address = "0x2728baa5c7de0dc4b2fd20d71b76edcfb201924f45e11a52906e1fd22293dbd" +address = "0x1466f792e0394729ebfe0fc3dc8d95ff5eeabf56e0e4fc329bab60851f3bbea" class_hash = "0x4b4721d434ce198b907c12463c98a0c437abbf13fc239ffe7393d0adede908" original_class_hash = "0x4b4721d434ce198b907c12463c98a0c437abbf13fc239ffe7393d0adede908" base_class_hash = "0x2427dd10a58850ac9a5ca6ce04b7771b05330fd18f2e481831ad903b969e6b2" @@ -56,6 +56,7 @@ reads = [] writes = [ "flippyflop-Tile", "flippyflop-Game", + "flippyflop-Claim", "flippyflop-ERC20MetadataModel", "flippyflop-ERC20BalanceModel", "flippyflop-ERC20AllowanceModel", @@ -73,9 +74,9 @@ manifest_name = "flippyflop-actions-4407e5f5" [[contracts]] kind = "DojoContract" -address = "0x15305fffbbb7c68cd216912de18257d33645c5e0a70b4f45dd12c15840355ea" -class_hash = "0x4dba281a1041e66220d62f9df916c03fc0b4c8c19014f9db368c2f5a0c15bad" -original_class_hash = "0x4dba281a1041e66220d62f9df916c03fc0b4c8c19014f9db368c2f5a0c15bad" +address = "0x68f97643254ba8b4f111955872d22cdf840661bb8ebf0ef23d3d4b703228748" +class_hash = "0x192db261dca4aa58ce197a2947f7b0af929b582fe317688f67c19941b41e1a3" +original_class_hash = "0x192db261dca4aa58ce197a2947f7b0af929b582fe317688f67c19941b41e1a3" base_class_hash = "0x2427dd10a58850ac9a5ca6ce04b7771b05330fd18f2e481831ad903b969e6b2" abi = "manifests/dev/deployment/abis/contracts/flippyflop-game-23e1ad43.json" reads = [] @@ -83,8 +84,8 @@ writes = ["flippyflop-Game"] init_calldata = [] tag = "flippyflop-game" systems = [ - "lock_game", - "unlock_game", + "lock", + "unlock", ] manifest_name = "flippyflop-game-23e1ad43" diff --git a/manifests/sepolia/base/abis/contracts/flippyflop-Flip-6bd3ed9d.json b/manifests/sepolia/base/abis/contracts/flippyflop-Flip-6bd3ed9d.json new file mode 100644 index 0000000..abb28dc --- /dev/null +++ b/manifests/sepolia/base/abis/contracts/flippyflop-Flip-6bd3ed9d.json @@ -0,0 +1,768 @@ +[ + { + "type": "impl", + "name": "ContractImpl", + "interface_name": "dojo::contract::contract::IContract" + }, + { + "type": "struct", + "name": "core::byte_array::ByteArray", + "members": [ + { + "name": "data", + "type": "core::array::Array::" + }, + { + "name": "pending_word", + "type": "core::felt252" + }, + { + "name": "pending_word_len", + "type": "core::integer::u32" + } + ] + }, + { + "type": "interface", + "name": "dojo::contract::contract::IContract", + "items": [ + { + "type": "function", + "name": "contract_name", + "inputs": [], + "outputs": [ + { + "type": "core::byte_array::ByteArray" + } + ], + "state_mutability": "view" + }, + { + "type": "function", + "name": "namespace", + "inputs": [], + "outputs": [ + { + "type": "core::byte_array::ByteArray" + } + ], + "state_mutability": "view" + }, + { + "type": "function", + "name": "tag", + "inputs": [], + "outputs": [ + { + "type": "core::byte_array::ByteArray" + } + ], + "state_mutability": "view" + }, + { + "type": "function", + "name": "name_hash", + "inputs": [], + "outputs": [ + { + "type": "core::felt252" + } + ], + "state_mutability": "view" + }, + { + "type": "function", + "name": "namespace_hash", + "inputs": [], + "outputs": [ + { + "type": "core::felt252" + } + ], + "state_mutability": "view" + }, + { + "type": "function", + "name": "selector", + "inputs": [], + "outputs": [ + { + "type": "core::felt252" + } + ], + "state_mutability": "view" + } + ] + }, + { + "type": "impl", + "name": "WorldProviderImpl", + "interface_name": "dojo::world::world_contract::IWorldProvider" + }, + { + "type": "struct", + "name": "dojo::world::world_contract::IWorldDispatcher", + "members": [ + { + "name": "contract_address", + "type": "core::starknet::contract_address::ContractAddress" + } + ] + }, + { + "type": "interface", + "name": "dojo::world::world_contract::IWorldProvider", + "items": [ + { + "type": "function", + "name": "world", + "inputs": [], + "outputs": [ + { + "type": "dojo::world::world_contract::IWorldDispatcher" + } + ], + "state_mutability": "view" + } + ] + }, + { + "type": "impl", + "name": "IDojoInitImpl", + "interface_name": "flippyflop::tokens::flip::Flip::IDojoInit" + }, + { + "type": "interface", + "name": "flippyflop::tokens::flip::Flip::IDojoInit", + "items": [ + { + "type": "function", + "name": "dojo_init", + "inputs": [], + "outputs": [], + "state_mutability": "external" + } + ] + }, + { + "type": "impl", + "name": "ERC20InitializerImpl", + "interface_name": "flippyflop::tokens::flip::IERC20BridgeableInitializer" + }, + { + "type": "interface", + "name": "flippyflop::tokens::flip::IERC20BridgeableInitializer", + "items": [ + { + "type": "function", + "name": "initializer", + "inputs": [ + { + "name": "name", + "type": "core::byte_array::ByteArray" + }, + { + "name": "symbol", + "type": "core::byte_array::ByteArray" + } + ], + "outputs": [], + "state_mutability": "external" + } + ] + }, + { + "type": "impl", + "name": "Flip", + "interface_name": "flippyflop::tokens::flip::IFlip" + }, + { + "type": "struct", + "name": "core::integer::u256", + "members": [ + { + "name": "low", + "type": "core::integer::u128" + }, + { + "name": "high", + "type": "core::integer::u128" + } + ] + }, + { + "type": "interface", + "name": "flippyflop::tokens::flip::IFlip", + "items": [ + { + "type": "function", + "name": "balance", + "inputs": [ + { + "name": "account", + "type": "core::starknet::contract_address::ContractAddress" + } + ], + "outputs": [ + { + "type": "core::integer::u256" + } + ], + "state_mutability": "view" + }, + { + "type": "function", + "name": "mint_from", + "inputs": [ + { + "name": "recipient", + "type": "core::starknet::contract_address::ContractAddress" + }, + { + "name": "amount", + "type": "core::integer::u256" + } + ], + "outputs": [], + "state_mutability": "external" + }, + { + "type": "function", + "name": "burn_from", + "inputs": [ + { + "name": "account", + "type": "core::starknet::contract_address::ContractAddress" + }, + { + "name": "amount", + "type": "core::integer::u256" + } + ], + "outputs": [], + "state_mutability": "external" + } + ] + }, + { + "type": "impl", + "name": "UpgradableImpl", + "interface_name": "dojo::contract::upgradeable::IUpgradeable" + }, + { + "type": "interface", + "name": "dojo::contract::upgradeable::IUpgradeable", + "items": [ + { + "type": "function", + "name": "upgrade", + "inputs": [ + { + "name": "new_class_hash", + "type": "core::starknet::class_hash::ClassHash" + } + ], + "outputs": [], + "state_mutability": "external" + } + ] + }, + { + "type": "impl", + "name": "ERC20MetadataImpl", + "interface_name": "origami_token::components::token::erc20::erc20_metadata::IERC20Metadata" + }, + { + "type": "interface", + "name": "origami_token::components::token::erc20::erc20_metadata::IERC20Metadata", + "items": [ + { + "type": "function", + "name": "name", + "inputs": [], + "outputs": [ + { + "type": "core::byte_array::ByteArray" + } + ], + "state_mutability": "view" + }, + { + "type": "function", + "name": "symbol", + "inputs": [], + "outputs": [ + { + "type": "core::byte_array::ByteArray" + } + ], + "state_mutability": "view" + }, + { + "type": "function", + "name": "decimals", + "inputs": [], + "outputs": [ + { + "type": "core::integer::u8" + } + ], + "state_mutability": "view" + } + ] + }, + { + "type": "impl", + "name": "ERC20MetadataTotalSupplyImpl", + "interface_name": "origami_token::components::token::erc20::erc20_metadata::IERC20MetadataTotalSupply" + }, + { + "type": "interface", + "name": "origami_token::components::token::erc20::erc20_metadata::IERC20MetadataTotalSupply", + "items": [ + { + "type": "function", + "name": "total_supply", + "inputs": [], + "outputs": [ + { + "type": "core::integer::u256" + } + ], + "state_mutability": "view" + } + ] + }, + { + "type": "impl", + "name": "ERC20MetadataTotalSupplyCamelImpl", + "interface_name": "origami_token::components::token::erc20::erc20_metadata::IERC20MetadataTotalSupplyCamel" + }, + { + "type": "interface", + "name": "origami_token::components::token::erc20::erc20_metadata::IERC20MetadataTotalSupplyCamel", + "items": [ + { + "type": "function", + "name": "totalSupply", + "inputs": [], + "outputs": [ + { + "type": "core::integer::u256" + } + ], + "state_mutability": "view" + } + ] + }, + { + "type": "impl", + "name": "ERC20BalanceImpl", + "interface_name": "origami_token::components::token::erc20::erc20_balance::IERC20Balance" + }, + { + "type": "enum", + "name": "core::bool", + "variants": [ + { + "name": "False", + "type": "()" + }, + { + "name": "True", + "type": "()" + } + ] + }, + { + "type": "interface", + "name": "origami_token::components::token::erc20::erc20_balance::IERC20Balance", + "items": [ + { + "type": "function", + "name": "balance_of", + "inputs": [ + { + "name": "account", + "type": "core::starknet::contract_address::ContractAddress" + } + ], + "outputs": [ + { + "type": "core::integer::u256" + } + ], + "state_mutability": "view" + }, + { + "type": "function", + "name": "transfer", + "inputs": [ + { + "name": "recipient", + "type": "core::starknet::contract_address::ContractAddress" + }, + { + "name": "amount", + "type": "core::integer::u256" + } + ], + "outputs": [ + { + "type": "core::bool" + } + ], + "state_mutability": "external" + }, + { + "type": "function", + "name": "transfer_from", + "inputs": [ + { + "name": "sender", + "type": "core::starknet::contract_address::ContractAddress" + }, + { + "name": "recipient", + "type": "core::starknet::contract_address::ContractAddress" + }, + { + "name": "amount", + "type": "core::integer::u256" + } + ], + "outputs": [ + { + "type": "core::bool" + } + ], + "state_mutability": "external" + } + ] + }, + { + "type": "impl", + "name": "ERC20BalanceCamelImpl", + "interface_name": "origami_token::components::token::erc20::erc20_balance::IERC20BalanceCamel" + }, + { + "type": "interface", + "name": "origami_token::components::token::erc20::erc20_balance::IERC20BalanceCamel", + "items": [ + { + "type": "function", + "name": "balanceOf", + "inputs": [ + { + "name": "account", + "type": "core::starknet::contract_address::ContractAddress" + } + ], + "outputs": [ + { + "type": "core::integer::u256" + } + ], + "state_mutability": "view" + }, + { + "type": "function", + "name": "transferFrom", + "inputs": [ + { + "name": "sender", + "type": "core::starknet::contract_address::ContractAddress" + }, + { + "name": "recipient", + "type": "core::starknet::contract_address::ContractAddress" + }, + { + "name": "amount", + "type": "core::integer::u256" + } + ], + "outputs": [ + { + "type": "core::bool" + } + ], + "state_mutability": "external" + } + ] + }, + { + "type": "impl", + "name": "ERC20AllowanceImpl", + "interface_name": "origami_token::components::token::erc20::erc20_allowance::IERC20Allowance" + }, + { + "type": "interface", + "name": "origami_token::components::token::erc20::erc20_allowance::IERC20Allowance", + "items": [ + { + "type": "function", + "name": "allowance", + "inputs": [ + { + "name": "owner", + "type": "core::starknet::contract_address::ContractAddress" + }, + { + "name": "spender", + "type": "core::starknet::contract_address::ContractAddress" + } + ], + "outputs": [ + { + "type": "core::integer::u256" + } + ], + "state_mutability": "view" + }, + { + "type": "function", + "name": "approve", + "inputs": [ + { + "name": "spender", + "type": "core::starknet::contract_address::ContractAddress" + }, + { + "name": "amount", + "type": "core::integer::u256" + } + ], + "outputs": [ + { + "type": "core::bool" + } + ], + "state_mutability": "external" + } + ] + }, + { + "type": "impl", + "name": "ERC20BridgeableImpl", + "interface_name": "origami_token::components::token::erc20::erc20_bridgeable::IERC20Bridgeable" + }, + { + "type": "interface", + "name": "origami_token::components::token::erc20::erc20_bridgeable::IERC20Bridgeable", + "items": [ + { + "type": "function", + "name": "l2_bridge_address", + "inputs": [], + "outputs": [ + { + "type": "core::starknet::contract_address::ContractAddress" + } + ], + "state_mutability": "view" + }, + { + "type": "function", + "name": "mint", + "inputs": [ + { + "name": "recipient", + "type": "core::starknet::contract_address::ContractAddress" + }, + { + "name": "amount", + "type": "core::integer::u256" + } + ], + "outputs": [], + "state_mutability": "external" + }, + { + "type": "function", + "name": "burn", + "inputs": [ + { + "name": "account", + "type": "core::starknet::contract_address::ContractAddress" + }, + { + "name": "amount", + "type": "core::integer::u256" + } + ], + "outputs": [], + "state_mutability": "external" + } + ] + }, + { + "type": "event", + "name": "dojo::contract::upgradeable::upgradeable::Upgraded", + "kind": "struct", + "members": [ + { + "name": "class_hash", + "type": "core::starknet::class_hash::ClassHash", + "kind": "data" + } + ] + }, + { + "type": "event", + "name": "dojo::contract::upgradeable::upgradeable::Event", + "kind": "enum", + "variants": [ + { + "name": "Upgraded", + "type": "dojo::contract::upgradeable::upgradeable::Upgraded", + "kind": "nested" + } + ] + }, + { + "type": "event", + "name": "origami_token::components::security::initializable::initializable_component::Event", + "kind": "enum", + "variants": [] + }, + { + "type": "event", + "name": "origami_token::components::token::erc20::erc20_metadata::erc20_metadata_component::Event", + "kind": "enum", + "variants": [] + }, + { + "type": "event", + "name": "origami_token::components::token::erc20::erc20_balance::erc20_balance_component::Transfer", + "kind": "struct", + "members": [ + { + "name": "from", + "type": "core::starknet::contract_address::ContractAddress", + "kind": "data" + }, + { + "name": "to", + "type": "core::starknet::contract_address::ContractAddress", + "kind": "data" + }, + { + "name": "value", + "type": "core::integer::u256", + "kind": "data" + } + ] + }, + { + "type": "event", + "name": "origami_token::components::token::erc20::erc20_balance::erc20_balance_component::Event", + "kind": "enum", + "variants": [ + { + "name": "Transfer", + "type": "origami_token::components::token::erc20::erc20_balance::erc20_balance_component::Transfer", + "kind": "nested" + } + ] + }, + { + "type": "event", + "name": "origami_token::components::token::erc20::erc20_allowance::erc20_allowance_component::Approval", + "kind": "struct", + "members": [ + { + "name": "owner", + "type": "core::starknet::contract_address::ContractAddress", + "kind": "data" + }, + { + "name": "spender", + "type": "core::starknet::contract_address::ContractAddress", + "kind": "data" + }, + { + "name": "value", + "type": "core::integer::u256", + "kind": "data" + } + ] + }, + { + "type": "event", + "name": "origami_token::components::token::erc20::erc20_allowance::erc20_allowance_component::Event", + "kind": "enum", + "variants": [ + { + "name": "Approval", + "type": "origami_token::components::token::erc20::erc20_allowance::erc20_allowance_component::Approval", + "kind": "nested" + } + ] + }, + { + "type": "event", + "name": "origami_token::components::token::erc20::erc20_mintable::erc20_mintable_component::Event", + "kind": "enum", + "variants": [] + }, + { + "type": "event", + "name": "origami_token::components::token::erc20::erc20_burnable::erc20_burnable_component::Event", + "kind": "enum", + "variants": [] + }, + { + "type": "event", + "name": "origami_token::components::token::erc20::erc20_bridgeable::erc20_bridgeable_component::Event", + "kind": "enum", + "variants": [] + }, + { + "type": "event", + "name": "flippyflop::tokens::flip::Flip::Event", + "kind": "enum", + "variants": [ + { + "name": "UpgradeableEvent", + "type": "dojo::contract::upgradeable::upgradeable::Event", + "kind": "nested" + }, + { + "name": "InitializableEvent", + "type": "origami_token::components::security::initializable::initializable_component::Event", + "kind": "flat" + }, + { + "name": "ERC20MetadataEvent", + "type": "origami_token::components::token::erc20::erc20_metadata::erc20_metadata_component::Event", + "kind": "flat" + }, + { + "name": "ERC20BalanceEvent", + "type": "origami_token::components::token::erc20::erc20_balance::erc20_balance_component::Event", + "kind": "flat" + }, + { + "name": "ERC20AllowanceEvent", + "type": "origami_token::components::token::erc20::erc20_allowance::erc20_allowance_component::Event", + "kind": "flat" + }, + { + "name": "ERC20MintableEvent", + "type": "origami_token::components::token::erc20::erc20_mintable::erc20_mintable_component::Event", + "kind": "flat" + }, + { + "name": "ERC20BurnableEvent", + "type": "origami_token::components::token::erc20::erc20_burnable::erc20_burnable_component::Event", + "kind": "flat" + }, + { + "name": "ERC20BridgeableEvent", + "type": "origami_token::components::token::erc20::erc20_bridgeable::erc20_bridgeable_component::Event", + "kind": "flat" + } + ] + } +] \ No newline at end of file diff --git a/manifests/sepolia/base/abis/contracts/flippyflop-actions-4407e5f5.json b/manifests/sepolia/base/abis/contracts/flippyflop-actions-4407e5f5.json new file mode 100644 index 0000000..1b4d6bc --- /dev/null +++ b/manifests/sepolia/base/abis/contracts/flippyflop-actions-4407e5f5.json @@ -0,0 +1,252 @@ +[ + { + "type": "impl", + "name": "ContractImpl", + "interface_name": "dojo::contract::contract::IContract" + }, + { + "type": "struct", + "name": "core::byte_array::ByteArray", + "members": [ + { + "name": "data", + "type": "core::array::Array::" + }, + { + "name": "pending_word", + "type": "core::felt252" + }, + { + "name": "pending_word_len", + "type": "core::integer::u32" + } + ] + }, + { + "type": "interface", + "name": "dojo::contract::contract::IContract", + "items": [ + { + "type": "function", + "name": "contract_name", + "inputs": [], + "outputs": [ + { + "type": "core::byte_array::ByteArray" + } + ], + "state_mutability": "view" + }, + { + "type": "function", + "name": "namespace", + "inputs": [], + "outputs": [ + { + "type": "core::byte_array::ByteArray" + } + ], + "state_mutability": "view" + }, + { + "type": "function", + "name": "tag", + "inputs": [], + "outputs": [ + { + "type": "core::byte_array::ByteArray" + } + ], + "state_mutability": "view" + }, + { + "type": "function", + "name": "name_hash", + "inputs": [], + "outputs": [ + { + "type": "core::felt252" + } + ], + "state_mutability": "view" + }, + { + "type": "function", + "name": "namespace_hash", + "inputs": [], + "outputs": [ + { + "type": "core::felt252" + } + ], + "state_mutability": "view" + }, + { + "type": "function", + "name": "selector", + "inputs": [], + "outputs": [ + { + "type": "core::felt252" + } + ], + "state_mutability": "view" + } + ] + }, + { + "type": "impl", + "name": "WorldProviderImpl", + "interface_name": "dojo::world::world_contract::IWorldProvider" + }, + { + "type": "struct", + "name": "dojo::world::world_contract::IWorldDispatcher", + "members": [ + { + "name": "contract_address", + "type": "core::starknet::contract_address::ContractAddress" + } + ] + }, + { + "type": "interface", + "name": "dojo::world::world_contract::IWorldProvider", + "items": [ + { + "type": "function", + "name": "world", + "inputs": [], + "outputs": [ + { + "type": "dojo::world::world_contract::IWorldDispatcher" + } + ], + "state_mutability": "view" + } + ] + }, + { + "type": "impl", + "name": "ActionsImpl", + "interface_name": "flippyflop::systems::actions::IActions" + }, + { + "type": "interface", + "name": "flippyflop::systems::actions::IActions", + "items": [ + { + "type": "function", + "name": "flip", + "inputs": [ + { + "name": "x", + "type": "core::integer::u32" + }, + { + "name": "y", + "type": "core::integer::u32" + } + ], + "outputs": [], + "state_mutability": "external" + }, + { + "type": "function", + "name": "flop", + "inputs": [], + "outputs": [], + "state_mutability": "external" + }, + { + "type": "function", + "name": "claim", + "inputs": [ + { + "name": "flipped_tiles", + "type": "core::array::Array::<(core::integer::u32, core::integer::u32)>" + } + ], + "outputs": [], + "state_mutability": "external" + } + ] + }, + { + "type": "impl", + "name": "IDojoInitImpl", + "interface_name": "flippyflop::systems::actions::actions::IDojoInit" + }, + { + "type": "interface", + "name": "flippyflop::systems::actions::actions::IDojoInit", + "items": [ + { + "type": "function", + "name": "dojo_init", + "inputs": [], + "outputs": [], + "state_mutability": "view" + } + ] + }, + { + "type": "impl", + "name": "UpgradableImpl", + "interface_name": "dojo::contract::upgradeable::IUpgradeable" + }, + { + "type": "interface", + "name": "dojo::contract::upgradeable::IUpgradeable", + "items": [ + { + "type": "function", + "name": "upgrade", + "inputs": [ + { + "name": "new_class_hash", + "type": "core::starknet::class_hash::ClassHash" + } + ], + "outputs": [], + "state_mutability": "external" + } + ] + }, + { + "type": "event", + "name": "dojo::contract::upgradeable::upgradeable::Upgraded", + "kind": "struct", + "members": [ + { + "name": "class_hash", + "type": "core::starknet::class_hash::ClassHash", + "kind": "data" + } + ] + }, + { + "type": "event", + "name": "dojo::contract::upgradeable::upgradeable::Event", + "kind": "enum", + "variants": [ + { + "name": "Upgraded", + "type": "dojo::contract::upgradeable::upgradeable::Upgraded", + "kind": "nested" + } + ] + }, + { + "type": "event", + "name": "flippyflop::systems::actions::actions::Event", + "kind": "enum", + "variants": [ + { + "name": "UpgradeableEvent", + "type": "dojo::contract::upgradeable::upgradeable::Event", + "kind": "nested" + } + ] + } +] \ No newline at end of file diff --git a/manifests/sepolia/base/abis/contracts/flippyflop-game-23e1ad43.json b/manifests/sepolia/base/abis/contracts/flippyflop-game-23e1ad43.json new file mode 100644 index 0000000..42ba426 --- /dev/null +++ b/manifests/sepolia/base/abis/contracts/flippyflop-game-23e1ad43.json @@ -0,0 +1,231 @@ +[ + { + "type": "impl", + "name": "ContractImpl", + "interface_name": "dojo::contract::contract::IContract" + }, + { + "type": "struct", + "name": "core::byte_array::ByteArray", + "members": [ + { + "name": "data", + "type": "core::array::Array::" + }, + { + "name": "pending_word", + "type": "core::felt252" + }, + { + "name": "pending_word_len", + "type": "core::integer::u32" + } + ] + }, + { + "type": "interface", + "name": "dojo::contract::contract::IContract", + "items": [ + { + "type": "function", + "name": "contract_name", + "inputs": [], + "outputs": [ + { + "type": "core::byte_array::ByteArray" + } + ], + "state_mutability": "view" + }, + { + "type": "function", + "name": "namespace", + "inputs": [], + "outputs": [ + { + "type": "core::byte_array::ByteArray" + } + ], + "state_mutability": "view" + }, + { + "type": "function", + "name": "tag", + "inputs": [], + "outputs": [ + { + "type": "core::byte_array::ByteArray" + } + ], + "state_mutability": "view" + }, + { + "type": "function", + "name": "name_hash", + "inputs": [], + "outputs": [ + { + "type": "core::felt252" + } + ], + "state_mutability": "view" + }, + { + "type": "function", + "name": "namespace_hash", + "inputs": [], + "outputs": [ + { + "type": "core::felt252" + } + ], + "state_mutability": "view" + }, + { + "type": "function", + "name": "selector", + "inputs": [], + "outputs": [ + { + "type": "core::felt252" + } + ], + "state_mutability": "view" + } + ] + }, + { + "type": "impl", + "name": "WorldProviderImpl", + "interface_name": "dojo::world::world_contract::IWorldProvider" + }, + { + "type": "struct", + "name": "dojo::world::world_contract::IWorldDispatcher", + "members": [ + { + "name": "contract_address", + "type": "core::starknet::contract_address::ContractAddress" + } + ] + }, + { + "type": "interface", + "name": "dojo::world::world_contract::IWorldProvider", + "items": [ + { + "type": "function", + "name": "world", + "inputs": [], + "outputs": [ + { + "type": "dojo::world::world_contract::IWorldDispatcher" + } + ], + "state_mutability": "view" + } + ] + }, + { + "type": "impl", + "name": "GameManagerImpl", + "interface_name": "flippyflop::systems::game::IGameManager" + }, + { + "type": "interface", + "name": "flippyflop::systems::game::IGameManager", + "items": [ + { + "type": "function", + "name": "lock", + "inputs": [], + "outputs": [], + "state_mutability": "external" + }, + { + "type": "function", + "name": "unlock", + "inputs": [], + "outputs": [], + "state_mutability": "external" + } + ] + }, + { + "type": "impl", + "name": "IDojoInitImpl", + "interface_name": "flippyflop::systems::game::game::IDojoInit" + }, + { + "type": "interface", + "name": "flippyflop::systems::game::game::IDojoInit", + "items": [ + { + "type": "function", + "name": "dojo_init", + "inputs": [], + "outputs": [], + "state_mutability": "view" + } + ] + }, + { + "type": "impl", + "name": "UpgradableImpl", + "interface_name": "dojo::contract::upgradeable::IUpgradeable" + }, + { + "type": "interface", + "name": "dojo::contract::upgradeable::IUpgradeable", + "items": [ + { + "type": "function", + "name": "upgrade", + "inputs": [ + { + "name": "new_class_hash", + "type": "core::starknet::class_hash::ClassHash" + } + ], + "outputs": [], + "state_mutability": "external" + } + ] + }, + { + "type": "event", + "name": "dojo::contract::upgradeable::upgradeable::Upgraded", + "kind": "struct", + "members": [ + { + "name": "class_hash", + "type": "core::starknet::class_hash::ClassHash", + "kind": "data" + } + ] + }, + { + "type": "event", + "name": "dojo::contract::upgradeable::upgradeable::Event", + "kind": "enum", + "variants": [ + { + "name": "Upgraded", + "type": "dojo::contract::upgradeable::upgradeable::Upgraded", + "kind": "nested" + } + ] + }, + { + "type": "event", + "name": "flippyflop::systems::game::game::Event", + "kind": "enum", + "variants": [ + { + "name": "UpgradeableEvent", + "type": "dojo::contract::upgradeable::upgradeable::Event", + "kind": "nested" + } + ] + } +] \ No newline at end of file diff --git a/manifests/sepolia/base/abis/dojo-base.json b/manifests/sepolia/base/abis/dojo-base.json new file mode 100644 index 0000000..4800464 --- /dev/null +++ b/manifests/sepolia/base/abis/dojo-base.json @@ -0,0 +1,98 @@ +[ + { + "type": "impl", + "name": "WorldProviderImpl", + "interface_name": "dojo::world::world_contract::IWorldProvider" + }, + { + "type": "struct", + "name": "dojo::world::world_contract::IWorldDispatcher", + "members": [ + { + "name": "contract_address", + "type": "core::starknet::contract_address::ContractAddress" + } + ] + }, + { + "type": "interface", + "name": "dojo::world::world_contract::IWorldProvider", + "items": [ + { + "type": "function", + "name": "world", + "inputs": [], + "outputs": [ + { + "type": "dojo::world::world_contract::IWorldDispatcher" + } + ], + "state_mutability": "view" + } + ] + }, + { + "type": "impl", + "name": "UpgradableImpl", + "interface_name": "dojo::contract::upgradeable::IUpgradeable" + }, + { + "type": "interface", + "name": "dojo::contract::upgradeable::IUpgradeable", + "items": [ + { + "type": "function", + "name": "upgrade", + "inputs": [ + { + "name": "new_class_hash", + "type": "core::starknet::class_hash::ClassHash" + } + ], + "outputs": [], + "state_mutability": "external" + } + ] + }, + { + "type": "constructor", + "name": "constructor", + "inputs": [] + }, + { + "type": "event", + "name": "dojo::contract::upgradeable::upgradeable::Upgraded", + "kind": "struct", + "members": [ + { + "name": "class_hash", + "type": "core::starknet::class_hash::ClassHash", + "kind": "data" + } + ] + }, + { + "type": "event", + "name": "dojo::contract::upgradeable::upgradeable::Event", + "kind": "enum", + "variants": [ + { + "name": "Upgraded", + "type": "dojo::contract::upgradeable::upgradeable::Upgraded", + "kind": "nested" + } + ] + }, + { + "type": "event", + "name": "dojo::contract::base_contract::base::Event", + "kind": "enum", + "variants": [ + { + "name": "UpgradeableEvent", + "type": "dojo::contract::upgradeable::upgradeable::Event", + "kind": "flat" + } + ] + } +] \ No newline at end of file diff --git a/manifests/sepolia/base/abis/dojo-world.json b/manifests/sepolia/base/abis/dojo-world.json new file mode 100644 index 0000000..49e89ee --- /dev/null +++ b/manifests/sepolia/base/abis/dojo-world.json @@ -0,0 +1,1291 @@ +[ + { + "type": "impl", + "name": "World", + "interface_name": "dojo::world::world_contract::IWorld" + }, + { + "type": "struct", + "name": "core::byte_array::ByteArray", + "members": [ + { + "name": "data", + "type": "core::array::Array::" + }, + { + "name": "pending_word", + "type": "core::felt252" + }, + { + "name": "pending_word_len", + "type": "core::integer::u32" + } + ] + }, + { + "type": "struct", + "name": "dojo::model::metadata::ResourceMetadata", + "members": [ + { + "name": "resource_id", + "type": "core::felt252" + }, + { + "name": "metadata_uri", + "type": "core::byte_array::ByteArray" + } + ] + }, + { + "type": "struct", + "name": "core::array::Span::", + "members": [ + { + "name": "snapshot", + "type": "@core::array::Array::" + } + ] + }, + { + "type": "enum", + "name": "dojo::model::model::ModelIndex", + "variants": [ + { + "name": "Keys", + "type": "core::array::Span::" + }, + { + "name": "Id", + "type": "core::felt252" + }, + { + "name": "MemberId", + "type": "(core::felt252, core::felt252)" + } + ] + }, + { + "type": "struct", + "name": "core::array::Span::", + "members": [ + { + "name": "snapshot", + "type": "@core::array::Array::" + } + ] + }, + { + "type": "struct", + "name": "dojo::model::layout::FieldLayout", + "members": [ + { + "name": "selector", + "type": "core::felt252" + }, + { + "name": "layout", + "type": "dojo::model::layout::Layout" + } + ] + }, + { + "type": "struct", + "name": "core::array::Span::", + "members": [ + { + "name": "snapshot", + "type": "@core::array::Array::" + } + ] + }, + { + "type": "struct", + "name": "core::array::Span::", + "members": [ + { + "name": "snapshot", + "type": "@core::array::Array::" + } + ] + }, + { + "type": "enum", + "name": "dojo::model::layout::Layout", + "variants": [ + { + "name": "Fixed", + "type": "core::array::Span::" + }, + { + "name": "Struct", + "type": "core::array::Span::" + }, + { + "name": "Tuple", + "type": "core::array::Span::" + }, + { + "name": "Array", + "type": "core::array::Span::" + }, + { + "name": "ByteArray", + "type": "()" + }, + { + "name": "Enum", + "type": "core::array::Span::" + } + ] + }, + { + "type": "enum", + "name": "dojo::world::world_contract::Resource", + "variants": [ + { + "name": "Model", + "type": "(core::starknet::class_hash::ClassHash, core::starknet::contract_address::ContractAddress)" + }, + { + "name": "Contract", + "type": "(core::starknet::class_hash::ClassHash, core::starknet::contract_address::ContractAddress)" + }, + { + "name": "Namespace", + "type": "()" + }, + { + "name": "World", + "type": "()" + }, + { + "name": "Unregistered", + "type": "()" + } + ] + }, + { + "type": "enum", + "name": "core::bool", + "variants": [ + { + "name": "False", + "type": "()" + }, + { + "name": "True", + "type": "()" + } + ] + }, + { + "type": "interface", + "name": "dojo::world::world_contract::IWorld", + "items": [ + { + "type": "function", + "name": "metadata", + "inputs": [ + { + "name": "resource_selector", + "type": "core::felt252" + } + ], + "outputs": [ + { + "type": "dojo::model::metadata::ResourceMetadata" + } + ], + "state_mutability": "view" + }, + { + "type": "function", + "name": "set_metadata", + "inputs": [ + { + "name": "metadata", + "type": "dojo::model::metadata::ResourceMetadata" + } + ], + "outputs": [], + "state_mutability": "external" + }, + { + "type": "function", + "name": "register_namespace", + "inputs": [ + { + "name": "namespace", + "type": "core::byte_array::ByteArray" + } + ], + "outputs": [], + "state_mutability": "external" + }, + { + "type": "function", + "name": "register_model", + "inputs": [ + { + "name": "class_hash", + "type": "core::starknet::class_hash::ClassHash" + } + ], + "outputs": [], + "state_mutability": "external" + }, + { + "type": "function", + "name": "upgrade_model", + "inputs": [ + { + "name": "class_hash", + "type": "core::starknet::class_hash::ClassHash" + } + ], + "outputs": [], + "state_mutability": "external" + }, + { + "type": "function", + "name": "deploy_contract", + "inputs": [ + { + "name": "salt", + "type": "core::felt252" + }, + { + "name": "class_hash", + "type": "core::starknet::class_hash::ClassHash" + } + ], + "outputs": [ + { + "type": "core::starknet::contract_address::ContractAddress" + } + ], + "state_mutability": "external" + }, + { + "type": "function", + "name": "upgrade_contract", + "inputs": [ + { + "name": "selector", + "type": "core::felt252" + }, + { + "name": "class_hash", + "type": "core::starknet::class_hash::ClassHash" + } + ], + "outputs": [ + { + "type": "core::starknet::class_hash::ClassHash" + } + ], + "state_mutability": "external" + }, + { + "type": "function", + "name": "init_contract", + "inputs": [ + { + "name": "selector", + "type": "core::felt252" + }, + { + "name": "init_calldata", + "type": "core::array::Span::" + } + ], + "outputs": [], + "state_mutability": "external" + }, + { + "type": "function", + "name": "uuid", + "inputs": [], + "outputs": [ + { + "type": "core::integer::u32" + } + ], + "state_mutability": "external" + }, + { + "type": "function", + "name": "emit", + "inputs": [ + { + "name": "keys", + "type": "core::array::Array::" + }, + { + "name": "values", + "type": "core::array::Span::" + } + ], + "outputs": [], + "state_mutability": "view" + }, + { + "type": "function", + "name": "entity_lobotomized", + "inputs": [ + { + "name": "model_selector", + "type": "core::felt252" + }, + { + "name": "entity_id", + "type": "core::felt252" + } + ], + "outputs": [ + { + "type": "core::felt252" + } + ], + "state_mutability": "view" + }, + { + "type": "function", + "name": "entity", + "inputs": [ + { + "name": "model_selector", + "type": "core::felt252" + }, + { + "name": "index", + "type": "dojo::model::model::ModelIndex" + }, + { + "name": "layout", + "type": "dojo::model::layout::Layout" + } + ], + "outputs": [ + { + "type": "core::array::Span::" + } + ], + "state_mutability": "view" + }, + { + "type": "function", + "name": "set_entity", + "inputs": [ + { + "name": "model_selector", + "type": "core::felt252" + }, + { + "name": "index", + "type": "dojo::model::model::ModelIndex" + }, + { + "name": "values", + "type": "core::array::Span::" + }, + { + "name": "layout", + "type": "dojo::model::layout::Layout" + } + ], + "outputs": [], + "state_mutability": "external" + }, + { + "type": "function", + "name": "set_entity_lobotomized", + "inputs": [ + { + "name": "model_selector", + "type": "core::felt252" + }, + { + "name": "keys", + "type": "core::array::Span::" + }, + { + "name": "entity_id", + "type": "core::felt252" + }, + { + "name": "value", + "type": "core::felt252" + } + ], + "outputs": [], + "state_mutability": "external" + }, + { + "type": "function", + "name": "delete_entity", + "inputs": [ + { + "name": "model_selector", + "type": "core::felt252" + }, + { + "name": "index", + "type": "dojo::model::model::ModelIndex" + }, + { + "name": "layout", + "type": "dojo::model::layout::Layout" + } + ], + "outputs": [], + "state_mutability": "external" + }, + { + "type": "function", + "name": "delete_entity_lobotomized", + "inputs": [ + { + "name": "model_selector", + "type": "core::felt252" + }, + { + "name": "entity_id", + "type": "core::felt252" + } + ], + "outputs": [], + "state_mutability": "external" + }, + { + "type": "function", + "name": "base", + "inputs": [], + "outputs": [ + { + "type": "core::starknet::class_hash::ClassHash" + } + ], + "state_mutability": "view" + }, + { + "type": "function", + "name": "resource", + "inputs": [ + { + "name": "selector", + "type": "core::felt252" + } + ], + "outputs": [ + { + "type": "dojo::world::world_contract::Resource" + } + ], + "state_mutability": "view" + }, + { + "type": "function", + "name": "is_owner", + "inputs": [ + { + "name": "resource", + "type": "core::felt252" + }, + { + "name": "address", + "type": "core::starknet::contract_address::ContractAddress" + } + ], + "outputs": [ + { + "type": "core::bool" + } + ], + "state_mutability": "view" + }, + { + "type": "function", + "name": "grant_owner", + "inputs": [ + { + "name": "resource", + "type": "core::felt252" + }, + { + "name": "address", + "type": "core::starknet::contract_address::ContractAddress" + } + ], + "outputs": [], + "state_mutability": "external" + }, + { + "type": "function", + "name": "revoke_owner", + "inputs": [ + { + "name": "resource", + "type": "core::felt252" + }, + { + "name": "address", + "type": "core::starknet::contract_address::ContractAddress" + } + ], + "outputs": [], + "state_mutability": "external" + }, + { + "type": "function", + "name": "is_writer", + "inputs": [ + { + "name": "resource", + "type": "core::felt252" + }, + { + "name": "contract", + "type": "core::starknet::contract_address::ContractAddress" + } + ], + "outputs": [ + { + "type": "core::bool" + } + ], + "state_mutability": "view" + }, + { + "type": "function", + "name": "grant_writer", + "inputs": [ + { + "name": "resource", + "type": "core::felt252" + }, + { + "name": "contract", + "type": "core::starknet::contract_address::ContractAddress" + } + ], + "outputs": [], + "state_mutability": "external" + }, + { + "type": "function", + "name": "revoke_writer", + "inputs": [ + { + "name": "resource", + "type": "core::felt252" + }, + { + "name": "contract", + "type": "core::starknet::contract_address::ContractAddress" + } + ], + "outputs": [], + "state_mutability": "external" + } + ] + }, + { + "type": "impl", + "name": "UpgradeableWorld", + "interface_name": "dojo::world::world_contract::IUpgradeableWorld" + }, + { + "type": "interface", + "name": "dojo::world::world_contract::IUpgradeableWorld", + "items": [ + { + "type": "function", + "name": "upgrade", + "inputs": [ + { + "name": "new_class_hash", + "type": "core::starknet::class_hash::ClassHash" + } + ], + "outputs": [], + "state_mutability": "external" + } + ] + }, + { + "type": "impl", + "name": "UpgradeableState", + "interface_name": "dojo::world::update::IUpgradeableState" + }, + { + "type": "struct", + "name": "dojo::world::update::StorageUpdate", + "members": [ + { + "name": "key", + "type": "core::felt252" + }, + { + "name": "value", + "type": "core::felt252" + } + ] + }, + { + "type": "struct", + "name": "core::array::Span::", + "members": [ + { + "name": "snapshot", + "type": "@core::array::Array::" + } + ] + }, + { + "type": "struct", + "name": "dojo::world::update::ProgramOutput", + "members": [ + { + "name": "prev_state_root", + "type": "core::felt252" + }, + { + "name": "new_state_root", + "type": "core::felt252" + }, + { + "name": "block_number", + "type": "core::felt252" + }, + { + "name": "block_hash", + "type": "core::felt252" + }, + { + "name": "config_hash", + "type": "core::felt252" + }, + { + "name": "world_da_hash", + "type": "core::felt252" + }, + { + "name": "message_to_starknet_segment", + "type": "core::array::Span::" + }, + { + "name": "message_to_appchain_segment", + "type": "core::array::Span::" + } + ] + }, + { + "type": "interface", + "name": "dojo::world::update::IUpgradeableState", + "items": [ + { + "type": "function", + "name": "upgrade_state", + "inputs": [ + { + "name": "new_state", + "type": "core::array::Span::" + }, + { + "name": "program_output", + "type": "dojo::world::update::ProgramOutput" + }, + { + "name": "program_hash", + "type": "core::felt252" + } + ], + "outputs": [], + "state_mutability": "external" + } + ] + }, + { + "type": "impl", + "name": "ConfigImpl", + "interface_name": "dojo::world::config::IConfig" + }, + { + "type": "interface", + "name": "dojo::world::config::IConfig", + "items": [ + { + "type": "function", + "name": "set_differ_program_hash", + "inputs": [ + { + "name": "program_hash", + "type": "core::felt252" + } + ], + "outputs": [], + "state_mutability": "external" + }, + { + "type": "function", + "name": "set_merger_program_hash", + "inputs": [ + { + "name": "program_hash", + "type": "core::felt252" + } + ], + "outputs": [], + "state_mutability": "external" + }, + { + "type": "function", + "name": "get_differ_program_hash", + "inputs": [], + "outputs": [ + { + "type": "core::felt252" + } + ], + "state_mutability": "view" + }, + { + "type": "function", + "name": "get_merger_program_hash", + "inputs": [], + "outputs": [ + { + "type": "core::felt252" + } + ], + "state_mutability": "view" + }, + { + "type": "function", + "name": "set_facts_registry", + "inputs": [ + { + "name": "address", + "type": "core::starknet::contract_address::ContractAddress" + } + ], + "outputs": [], + "state_mutability": "external" + }, + { + "type": "function", + "name": "get_facts_registry", + "inputs": [], + "outputs": [ + { + "type": "core::starknet::contract_address::ContractAddress" + } + ], + "state_mutability": "view" + } + ] + }, + { + "type": "constructor", + "name": "constructor", + "inputs": [ + { + "name": "contract_base", + "type": "core::starknet::class_hash::ClassHash" + } + ] + }, + { + "type": "event", + "name": "dojo::world::world_contract::world::WorldSpawned", + "kind": "struct", + "members": [ + { + "name": "address", + "type": "core::starknet::contract_address::ContractAddress", + "kind": "data" + }, + { + "name": "creator", + "type": "core::starknet::contract_address::ContractAddress", + "kind": "data" + } + ] + }, + { + "type": "event", + "name": "dojo::world::world_contract::world::ContractDeployed", + "kind": "struct", + "members": [ + { + "name": "salt", + "type": "core::felt252", + "kind": "data" + }, + { + "name": "class_hash", + "type": "core::starknet::class_hash::ClassHash", + "kind": "data" + }, + { + "name": "address", + "type": "core::starknet::contract_address::ContractAddress", + "kind": "data" + }, + { + "name": "namespace", + "type": "core::byte_array::ByteArray", + "kind": "data" + }, + { + "name": "name", + "type": "core::byte_array::ByteArray", + "kind": "data" + } + ] + }, + { + "type": "event", + "name": "dojo::world::world_contract::world::ContractUpgraded", + "kind": "struct", + "members": [ + { + "name": "class_hash", + "type": "core::starknet::class_hash::ClassHash", + "kind": "data" + }, + { + "name": "address", + "type": "core::starknet::contract_address::ContractAddress", + "kind": "data" + } + ] + }, + { + "type": "event", + "name": "dojo::world::world_contract::world::ContractInitialized", + "kind": "struct", + "members": [ + { + "name": "selector", + "type": "core::felt252", + "kind": "data" + }, + { + "name": "init_calldata", + "type": "core::array::Span::", + "kind": "data" + } + ] + }, + { + "type": "event", + "name": "dojo::world::world_contract::world::WorldUpgraded", + "kind": "struct", + "members": [ + { + "name": "class_hash", + "type": "core::starknet::class_hash::ClassHash", + "kind": "data" + } + ] + }, + { + "type": "event", + "name": "dojo::world::world_contract::world::MetadataUpdate", + "kind": "struct", + "members": [ + { + "name": "resource", + "type": "core::felt252", + "kind": "data" + }, + { + "name": "uri", + "type": "core::byte_array::ByteArray", + "kind": "data" + } + ] + }, + { + "type": "event", + "name": "dojo::world::world_contract::world::NamespaceRegistered", + "kind": "struct", + "members": [ + { + "name": "namespace", + "type": "core::byte_array::ByteArray", + "kind": "data" + }, + { + "name": "hash", + "type": "core::felt252", + "kind": "data" + } + ] + }, + { + "type": "event", + "name": "dojo::world::world_contract::world::ModelRegistered", + "kind": "struct", + "members": [ + { + "name": "name", + "type": "core::byte_array::ByteArray", + "kind": "data" + }, + { + "name": "namespace", + "type": "core::byte_array::ByteArray", + "kind": "data" + }, + { + "name": "class_hash", + "type": "core::starknet::class_hash::ClassHash", + "kind": "data" + }, + { + "name": "address", + "type": "core::starknet::contract_address::ContractAddress", + "kind": "data" + } + ] + }, + { + "type": "event", + "name": "dojo::world::world_contract::world::ModelUpgraded", + "kind": "struct", + "members": [ + { + "name": "name", + "type": "core::byte_array::ByteArray", + "kind": "data" + }, + { + "name": "namespace", + "type": "core::byte_array::ByteArray", + "kind": "data" + }, + { + "name": "class_hash", + "type": "core::starknet::class_hash::ClassHash", + "kind": "data" + }, + { + "name": "prev_class_hash", + "type": "core::starknet::class_hash::ClassHash", + "kind": "data" + }, + { + "name": "address", + "type": "core::starknet::contract_address::ContractAddress", + "kind": "data" + }, + { + "name": "prev_address", + "type": "core::starknet::contract_address::ContractAddress", + "kind": "data" + } + ] + }, + { + "type": "event", + "name": "dojo::world::world_contract::world::StoreSetRecord", + "kind": "struct", + "members": [ + { + "name": "table", + "type": "core::felt252", + "kind": "data" + }, + { + "name": "entity_id", + "type": "core::felt252", + "kind": "data" + }, + { + "name": "keys", + "type": "core::array::Span::", + "kind": "data" + }, + { + "name": "values", + "type": "core::array::Span::", + "kind": "data" + } + ] + }, + { + "type": "event", + "name": "dojo::world::world_contract::world::StoreUpdateRecord", + "kind": "struct", + "members": [ + { + "name": "table", + "type": "core::felt252", + "kind": "data" + }, + { + "name": "entity_id", + "type": "core::felt252", + "kind": "data" + }, + { + "name": "values", + "type": "core::array::Span::", + "kind": "data" + } + ] + }, + { + "type": "event", + "name": "dojo::world::world_contract::world::StoreUpdateMember", + "kind": "struct", + "members": [ + { + "name": "table", + "type": "core::felt252", + "kind": "data" + }, + { + "name": "entity_id", + "type": "core::felt252", + "kind": "data" + }, + { + "name": "member_selector", + "type": "core::felt252", + "kind": "data" + }, + { + "name": "values", + "type": "core::array::Span::", + "kind": "data" + } + ] + }, + { + "type": "event", + "name": "dojo::world::world_contract::world::StoreDelRecord", + "kind": "struct", + "members": [ + { + "name": "table", + "type": "core::felt252", + "kind": "data" + }, + { + "name": "entity_id", + "type": "core::felt252", + "kind": "data" + } + ] + }, + { + "type": "event", + "name": "dojo::world::world_contract::world::WriterUpdated", + "kind": "struct", + "members": [ + { + "name": "resource", + "type": "core::felt252", + "kind": "data" + }, + { + "name": "contract", + "type": "core::starknet::contract_address::ContractAddress", + "kind": "data" + }, + { + "name": "value", + "type": "core::bool", + "kind": "data" + } + ] + }, + { + "type": "event", + "name": "dojo::world::world_contract::world::OwnerUpdated", + "kind": "struct", + "members": [ + { + "name": "address", + "type": "core::starknet::contract_address::ContractAddress", + "kind": "data" + }, + { + "name": "resource", + "type": "core::felt252", + "kind": "data" + }, + { + "name": "value", + "type": "core::bool", + "kind": "data" + } + ] + }, + { + "type": "event", + "name": "dojo::world::config::Config::DifferProgramHashUpdate", + "kind": "struct", + "members": [ + { + "name": "program_hash", + "type": "core::felt252", + "kind": "data" + } + ] + }, + { + "type": "event", + "name": "dojo::world::config::Config::MergerProgramHashUpdate", + "kind": "struct", + "members": [ + { + "name": "program_hash", + "type": "core::felt252", + "kind": "data" + } + ] + }, + { + "type": "event", + "name": "dojo::world::config::Config::FactsRegistryUpdate", + "kind": "struct", + "members": [ + { + "name": "address", + "type": "core::starknet::contract_address::ContractAddress", + "kind": "data" + } + ] + }, + { + "type": "event", + "name": "dojo::world::config::Config::Event", + "kind": "enum", + "variants": [ + { + "name": "DifferProgramHashUpdate", + "type": "dojo::world::config::Config::DifferProgramHashUpdate", + "kind": "nested" + }, + { + "name": "MergerProgramHashUpdate", + "type": "dojo::world::config::Config::MergerProgramHashUpdate", + "kind": "nested" + }, + { + "name": "FactsRegistryUpdate", + "type": "dojo::world::config::Config::FactsRegistryUpdate", + "kind": "nested" + } + ] + }, + { + "type": "event", + "name": "dojo::world::world_contract::world::StateUpdated", + "kind": "struct", + "members": [ + { + "name": "da_hash", + "type": "core::felt252", + "kind": "data" + } + ] + }, + { + "type": "event", + "name": "dojo::world::world_contract::world::Event", + "kind": "enum", + "variants": [ + { + "name": "WorldSpawned", + "type": "dojo::world::world_contract::world::WorldSpawned", + "kind": "nested" + }, + { + "name": "ContractDeployed", + "type": "dojo::world::world_contract::world::ContractDeployed", + "kind": "nested" + }, + { + "name": "ContractUpgraded", + "type": "dojo::world::world_contract::world::ContractUpgraded", + "kind": "nested" + }, + { + "name": "ContractInitialized", + "type": "dojo::world::world_contract::world::ContractInitialized", + "kind": "nested" + }, + { + "name": "WorldUpgraded", + "type": "dojo::world::world_contract::world::WorldUpgraded", + "kind": "nested" + }, + { + "name": "MetadataUpdate", + "type": "dojo::world::world_contract::world::MetadataUpdate", + "kind": "nested" + }, + { + "name": "NamespaceRegistered", + "type": "dojo::world::world_contract::world::NamespaceRegistered", + "kind": "nested" + }, + { + "name": "ModelRegistered", + "type": "dojo::world::world_contract::world::ModelRegistered", + "kind": "nested" + }, + { + "name": "ModelUpgraded", + "type": "dojo::world::world_contract::world::ModelUpgraded", + "kind": "nested" + }, + { + "name": "StoreSetRecord", + "type": "dojo::world::world_contract::world::StoreSetRecord", + "kind": "nested" + }, + { + "name": "StoreUpdateRecord", + "type": "dojo::world::world_contract::world::StoreUpdateRecord", + "kind": "nested" + }, + { + "name": "StoreUpdateMember", + "type": "dojo::world::world_contract::world::StoreUpdateMember", + "kind": "nested" + }, + { + "name": "StoreDelRecord", + "type": "dojo::world::world_contract::world::StoreDelRecord", + "kind": "nested" + }, + { + "name": "WriterUpdated", + "type": "dojo::world::world_contract::world::WriterUpdated", + "kind": "nested" + }, + { + "name": "OwnerUpdated", + "type": "dojo::world::world_contract::world::OwnerUpdated", + "kind": "nested" + }, + { + "name": "ConfigEvent", + "type": "dojo::world::config::Config::Event", + "kind": "nested" + }, + { + "name": "StateUpdated", + "type": "dojo::world::world_contract::world::StateUpdated", + "kind": "nested" + } + ] + } +] \ No newline at end of file diff --git a/manifests/sepolia/base/abis/models/flippyflop-Claim-c098f39e.json b/manifests/sepolia/base/abis/models/flippyflop-Claim-c098f39e.json new file mode 100644 index 0000000..12943ae --- /dev/null +++ b/manifests/sepolia/base/abis/models/flippyflop-Claim-c098f39e.json @@ -0,0 +1,421 @@ +[ + { + "type": "impl", + "name": "DojoModelImpl", + "interface_name": "dojo::model::model::IModel" + }, + { + "type": "struct", + "name": "core::byte_array::ByteArray", + "members": [ + { + "name": "data", + "type": "core::array::Array::" + }, + { + "name": "pending_word", + "type": "core::felt252" + }, + { + "name": "pending_word_len", + "type": "core::integer::u32" + } + ] + }, + { + "type": "enum", + "name": "core::option::Option::", + "variants": [ + { + "name": "Some", + "type": "core::integer::u32" + }, + { + "name": "None", + "type": "()" + } + ] + }, + { + "type": "struct", + "name": "core::array::Span::", + "members": [ + { + "name": "snapshot", + "type": "@core::array::Array::" + } + ] + }, + { + "type": "struct", + "name": "dojo::model::layout::FieldLayout", + "members": [ + { + "name": "selector", + "type": "core::felt252" + }, + { + "name": "layout", + "type": "dojo::model::layout::Layout" + } + ] + }, + { + "type": "struct", + "name": "core::array::Span::", + "members": [ + { + "name": "snapshot", + "type": "@core::array::Array::" + } + ] + }, + { + "type": "struct", + "name": "core::array::Span::", + "members": [ + { + "name": "snapshot", + "type": "@core::array::Array::" + } + ] + }, + { + "type": "enum", + "name": "dojo::model::layout::Layout", + "variants": [ + { + "name": "Fixed", + "type": "core::array::Span::" + }, + { + "name": "Struct", + "type": "core::array::Span::" + }, + { + "name": "Tuple", + "type": "core::array::Span::" + }, + { + "name": "Array", + "type": "core::array::Span::" + }, + { + "name": "ByteArray", + "type": "()" + }, + { + "name": "Enum", + "type": "core::array::Span::" + } + ] + }, + { + "type": "struct", + "name": "core::array::Span::", + "members": [ + { + "name": "snapshot", + "type": "@core::array::Array::" + } + ] + }, + { + "type": "struct", + "name": "dojo::model::introspect::Member", + "members": [ + { + "name": "name", + "type": "core::felt252" + }, + { + "name": "attrs", + "type": "core::array::Span::" + }, + { + "name": "ty", + "type": "dojo::model::introspect::Ty" + } + ] + }, + { + "type": "struct", + "name": "core::array::Span::", + "members": [ + { + "name": "snapshot", + "type": "@core::array::Array::" + } + ] + }, + { + "type": "struct", + "name": "dojo::model::introspect::Struct", + "members": [ + { + "name": "name", + "type": "core::felt252" + }, + { + "name": "attrs", + "type": "core::array::Span::" + }, + { + "name": "children", + "type": "core::array::Span::" + } + ] + }, + { + "type": "struct", + "name": "core::array::Span::<(core::felt252, dojo::model::introspect::Ty)>", + "members": [ + { + "name": "snapshot", + "type": "@core::array::Array::<(core::felt252, dojo::model::introspect::Ty)>" + } + ] + }, + { + "type": "struct", + "name": "dojo::model::introspect::Enum", + "members": [ + { + "name": "name", + "type": "core::felt252" + }, + { + "name": "attrs", + "type": "core::array::Span::" + }, + { + "name": "children", + "type": "core::array::Span::<(core::felt252, dojo::model::introspect::Ty)>" + } + ] + }, + { + "type": "struct", + "name": "core::array::Span::", + "members": [ + { + "name": "snapshot", + "type": "@core::array::Array::" + } + ] + }, + { + "type": "enum", + "name": "dojo::model::introspect::Ty", + "variants": [ + { + "name": "Primitive", + "type": "core::felt252" + }, + { + "name": "Struct", + "type": "dojo::model::introspect::Struct" + }, + { + "name": "Enum", + "type": "dojo::model::introspect::Enum" + }, + { + "name": "Tuple", + "type": "core::array::Span::" + }, + { + "name": "Array", + "type": "core::array::Span::" + }, + { + "name": "ByteArray", + "type": "()" + } + ] + }, + { + "type": "interface", + "name": "dojo::model::model::IModel", + "items": [ + { + "type": "function", + "name": "name", + "inputs": [], + "outputs": [ + { + "type": "core::byte_array::ByteArray" + } + ], + "state_mutability": "view" + }, + { + "type": "function", + "name": "namespace", + "inputs": [], + "outputs": [ + { + "type": "core::byte_array::ByteArray" + } + ], + "state_mutability": "view" + }, + { + "type": "function", + "name": "tag", + "inputs": [], + "outputs": [ + { + "type": "core::byte_array::ByteArray" + } + ], + "state_mutability": "view" + }, + { + "type": "function", + "name": "version", + "inputs": [], + "outputs": [ + { + "type": "core::integer::u8" + } + ], + "state_mutability": "view" + }, + { + "type": "function", + "name": "selector", + "inputs": [], + "outputs": [ + { + "type": "core::felt252" + } + ], + "state_mutability": "view" + }, + { + "type": "function", + "name": "name_hash", + "inputs": [], + "outputs": [ + { + "type": "core::felt252" + } + ], + "state_mutability": "view" + }, + { + "type": "function", + "name": "namespace_hash", + "inputs": [], + "outputs": [ + { + "type": "core::felt252" + } + ], + "state_mutability": "view" + }, + { + "type": "function", + "name": "unpacked_size", + "inputs": [], + "outputs": [ + { + "type": "core::option::Option::" + } + ], + "state_mutability": "view" + }, + { + "type": "function", + "name": "packed_size", + "inputs": [], + "outputs": [ + { + "type": "core::option::Option::" + } + ], + "state_mutability": "view" + }, + { + "type": "function", + "name": "layout", + "inputs": [], + "outputs": [ + { + "type": "dojo::model::layout::Layout" + } + ], + "state_mutability": "view" + }, + { + "type": "function", + "name": "schema", + "inputs": [], + "outputs": [ + { + "type": "dojo::model::introspect::Ty" + } + ], + "state_mutability": "view" + } + ] + }, + { + "type": "impl", + "name": "claimImpl", + "interface_name": "flippyflop::models::Iclaim" + }, + { + "type": "struct", + "name": "core::integer::u256", + "members": [ + { + "name": "low", + "type": "core::integer::u128" + }, + { + "name": "high", + "type": "core::integer::u128" + } + ] + }, + { + "type": "struct", + "name": "flippyflop::models::Claim", + "members": [ + { + "name": "player", + "type": "core::felt252" + }, + { + "name": "amount", + "type": "core::integer::u256" + } + ] + }, + { + "type": "interface", + "name": "flippyflop::models::Iclaim", + "items": [ + { + "type": "function", + "name": "ensure_abi", + "inputs": [ + { + "name": "model", + "type": "flippyflop::models::Claim" + } + ], + "outputs": [], + "state_mutability": "view" + } + ] + }, + { + "type": "event", + "name": "flippyflop::models::claim::Event", + "kind": "enum", + "variants": [] + } +] \ No newline at end of file diff --git a/manifests/sepolia/base/abis/models/flippyflop-ERC20AllowanceModel-55d0c41e.json b/manifests/sepolia/base/abis/models/flippyflop-ERC20AllowanceModel-55d0c41e.json new file mode 100644 index 0000000..f858075 --- /dev/null +++ b/manifests/sepolia/base/abis/models/flippyflop-ERC20AllowanceModel-55d0c41e.json @@ -0,0 +1,429 @@ +[ + { + "type": "impl", + "name": "DojoModelImpl", + "interface_name": "dojo::model::model::IModel" + }, + { + "type": "struct", + "name": "core::byte_array::ByteArray", + "members": [ + { + "name": "data", + "type": "core::array::Array::" + }, + { + "name": "pending_word", + "type": "core::felt252" + }, + { + "name": "pending_word_len", + "type": "core::integer::u32" + } + ] + }, + { + "type": "enum", + "name": "core::option::Option::", + "variants": [ + { + "name": "Some", + "type": "core::integer::u32" + }, + { + "name": "None", + "type": "()" + } + ] + }, + { + "type": "struct", + "name": "core::array::Span::", + "members": [ + { + "name": "snapshot", + "type": "@core::array::Array::" + } + ] + }, + { + "type": "struct", + "name": "dojo::model::layout::FieldLayout", + "members": [ + { + "name": "selector", + "type": "core::felt252" + }, + { + "name": "layout", + "type": "dojo::model::layout::Layout" + } + ] + }, + { + "type": "struct", + "name": "core::array::Span::", + "members": [ + { + "name": "snapshot", + "type": "@core::array::Array::" + } + ] + }, + { + "type": "struct", + "name": "core::array::Span::", + "members": [ + { + "name": "snapshot", + "type": "@core::array::Array::" + } + ] + }, + { + "type": "enum", + "name": "dojo::model::layout::Layout", + "variants": [ + { + "name": "Fixed", + "type": "core::array::Span::" + }, + { + "name": "Struct", + "type": "core::array::Span::" + }, + { + "name": "Tuple", + "type": "core::array::Span::" + }, + { + "name": "Array", + "type": "core::array::Span::" + }, + { + "name": "ByteArray", + "type": "()" + }, + { + "name": "Enum", + "type": "core::array::Span::" + } + ] + }, + { + "type": "struct", + "name": "core::array::Span::", + "members": [ + { + "name": "snapshot", + "type": "@core::array::Array::" + } + ] + }, + { + "type": "struct", + "name": "dojo::model::introspect::Member", + "members": [ + { + "name": "name", + "type": "core::felt252" + }, + { + "name": "attrs", + "type": "core::array::Span::" + }, + { + "name": "ty", + "type": "dojo::model::introspect::Ty" + } + ] + }, + { + "type": "struct", + "name": "core::array::Span::", + "members": [ + { + "name": "snapshot", + "type": "@core::array::Array::" + } + ] + }, + { + "type": "struct", + "name": "dojo::model::introspect::Struct", + "members": [ + { + "name": "name", + "type": "core::felt252" + }, + { + "name": "attrs", + "type": "core::array::Span::" + }, + { + "name": "children", + "type": "core::array::Span::" + } + ] + }, + { + "type": "struct", + "name": "core::array::Span::<(core::felt252, dojo::model::introspect::Ty)>", + "members": [ + { + "name": "snapshot", + "type": "@core::array::Array::<(core::felt252, dojo::model::introspect::Ty)>" + } + ] + }, + { + "type": "struct", + "name": "dojo::model::introspect::Enum", + "members": [ + { + "name": "name", + "type": "core::felt252" + }, + { + "name": "attrs", + "type": "core::array::Span::" + }, + { + "name": "children", + "type": "core::array::Span::<(core::felt252, dojo::model::introspect::Ty)>" + } + ] + }, + { + "type": "struct", + "name": "core::array::Span::", + "members": [ + { + "name": "snapshot", + "type": "@core::array::Array::" + } + ] + }, + { + "type": "enum", + "name": "dojo::model::introspect::Ty", + "variants": [ + { + "name": "Primitive", + "type": "core::felt252" + }, + { + "name": "Struct", + "type": "dojo::model::introspect::Struct" + }, + { + "name": "Enum", + "type": "dojo::model::introspect::Enum" + }, + { + "name": "Tuple", + "type": "core::array::Span::" + }, + { + "name": "Array", + "type": "core::array::Span::" + }, + { + "name": "ByteArray", + "type": "()" + } + ] + }, + { + "type": "interface", + "name": "dojo::model::model::IModel", + "items": [ + { + "type": "function", + "name": "name", + "inputs": [], + "outputs": [ + { + "type": "core::byte_array::ByteArray" + } + ], + "state_mutability": "view" + }, + { + "type": "function", + "name": "namespace", + "inputs": [], + "outputs": [ + { + "type": "core::byte_array::ByteArray" + } + ], + "state_mutability": "view" + }, + { + "type": "function", + "name": "tag", + "inputs": [], + "outputs": [ + { + "type": "core::byte_array::ByteArray" + } + ], + "state_mutability": "view" + }, + { + "type": "function", + "name": "version", + "inputs": [], + "outputs": [ + { + "type": "core::integer::u8" + } + ], + "state_mutability": "view" + }, + { + "type": "function", + "name": "selector", + "inputs": [], + "outputs": [ + { + "type": "core::felt252" + } + ], + "state_mutability": "view" + }, + { + "type": "function", + "name": "name_hash", + "inputs": [], + "outputs": [ + { + "type": "core::felt252" + } + ], + "state_mutability": "view" + }, + { + "type": "function", + "name": "namespace_hash", + "inputs": [], + "outputs": [ + { + "type": "core::felt252" + } + ], + "state_mutability": "view" + }, + { + "type": "function", + "name": "unpacked_size", + "inputs": [], + "outputs": [ + { + "type": "core::option::Option::" + } + ], + "state_mutability": "view" + }, + { + "type": "function", + "name": "packed_size", + "inputs": [], + "outputs": [ + { + "type": "core::option::Option::" + } + ], + "state_mutability": "view" + }, + { + "type": "function", + "name": "layout", + "inputs": [], + "outputs": [ + { + "type": "dojo::model::layout::Layout" + } + ], + "state_mutability": "view" + }, + { + "type": "function", + "name": "schema", + "inputs": [], + "outputs": [ + { + "type": "dojo::model::introspect::Ty" + } + ], + "state_mutability": "view" + } + ] + }, + { + "type": "impl", + "name": "erc_20_allowance_modelImpl", + "interface_name": "origami_token::components::token::erc20::erc20_allowance::Ierc_20_allowance_model" + }, + { + "type": "struct", + "name": "core::integer::u256", + "members": [ + { + "name": "low", + "type": "core::integer::u128" + }, + { + "name": "high", + "type": "core::integer::u128" + } + ] + }, + { + "type": "struct", + "name": "origami_token::components::token::erc20::erc20_allowance::ERC20AllowanceModel", + "members": [ + { + "name": "token", + "type": "core::starknet::contract_address::ContractAddress" + }, + { + "name": "owner", + "type": "core::starknet::contract_address::ContractAddress" + }, + { + "name": "spender", + "type": "core::starknet::contract_address::ContractAddress" + }, + { + "name": "amount", + "type": "core::integer::u256" + } + ] + }, + { + "type": "interface", + "name": "origami_token::components::token::erc20::erc20_allowance::Ierc_20_allowance_model", + "items": [ + { + "type": "function", + "name": "ensure_abi", + "inputs": [ + { + "name": "model", + "type": "origami_token::components::token::erc20::erc20_allowance::ERC20AllowanceModel" + } + ], + "outputs": [], + "state_mutability": "view" + } + ] + }, + { + "type": "event", + "name": "origami_token::components::token::erc20::erc20_allowance::erc_20_allowance_model::Event", + "kind": "enum", + "variants": [] + } +] \ No newline at end of file diff --git a/manifests/sepolia/base/abis/models/flippyflop-ERC20BalanceModel-7866fe9f.json b/manifests/sepolia/base/abis/models/flippyflop-ERC20BalanceModel-7866fe9f.json new file mode 100644 index 0000000..cc7d2bd --- /dev/null +++ b/manifests/sepolia/base/abis/models/flippyflop-ERC20BalanceModel-7866fe9f.json @@ -0,0 +1,425 @@ +[ + { + "type": "impl", + "name": "DojoModelImpl", + "interface_name": "dojo::model::model::IModel" + }, + { + "type": "struct", + "name": "core::byte_array::ByteArray", + "members": [ + { + "name": "data", + "type": "core::array::Array::" + }, + { + "name": "pending_word", + "type": "core::felt252" + }, + { + "name": "pending_word_len", + "type": "core::integer::u32" + } + ] + }, + { + "type": "enum", + "name": "core::option::Option::", + "variants": [ + { + "name": "Some", + "type": "core::integer::u32" + }, + { + "name": "None", + "type": "()" + } + ] + }, + { + "type": "struct", + "name": "core::array::Span::", + "members": [ + { + "name": "snapshot", + "type": "@core::array::Array::" + } + ] + }, + { + "type": "struct", + "name": "dojo::model::layout::FieldLayout", + "members": [ + { + "name": "selector", + "type": "core::felt252" + }, + { + "name": "layout", + "type": "dojo::model::layout::Layout" + } + ] + }, + { + "type": "struct", + "name": "core::array::Span::", + "members": [ + { + "name": "snapshot", + "type": "@core::array::Array::" + } + ] + }, + { + "type": "struct", + "name": "core::array::Span::", + "members": [ + { + "name": "snapshot", + "type": "@core::array::Array::" + } + ] + }, + { + "type": "enum", + "name": "dojo::model::layout::Layout", + "variants": [ + { + "name": "Fixed", + "type": "core::array::Span::" + }, + { + "name": "Struct", + "type": "core::array::Span::" + }, + { + "name": "Tuple", + "type": "core::array::Span::" + }, + { + "name": "Array", + "type": "core::array::Span::" + }, + { + "name": "ByteArray", + "type": "()" + }, + { + "name": "Enum", + "type": "core::array::Span::" + } + ] + }, + { + "type": "struct", + "name": "core::array::Span::", + "members": [ + { + "name": "snapshot", + "type": "@core::array::Array::" + } + ] + }, + { + "type": "struct", + "name": "dojo::model::introspect::Member", + "members": [ + { + "name": "name", + "type": "core::felt252" + }, + { + "name": "attrs", + "type": "core::array::Span::" + }, + { + "name": "ty", + "type": "dojo::model::introspect::Ty" + } + ] + }, + { + "type": "struct", + "name": "core::array::Span::", + "members": [ + { + "name": "snapshot", + "type": "@core::array::Array::" + } + ] + }, + { + "type": "struct", + "name": "dojo::model::introspect::Struct", + "members": [ + { + "name": "name", + "type": "core::felt252" + }, + { + "name": "attrs", + "type": "core::array::Span::" + }, + { + "name": "children", + "type": "core::array::Span::" + } + ] + }, + { + "type": "struct", + "name": "core::array::Span::<(core::felt252, dojo::model::introspect::Ty)>", + "members": [ + { + "name": "snapshot", + "type": "@core::array::Array::<(core::felt252, dojo::model::introspect::Ty)>" + } + ] + }, + { + "type": "struct", + "name": "dojo::model::introspect::Enum", + "members": [ + { + "name": "name", + "type": "core::felt252" + }, + { + "name": "attrs", + "type": "core::array::Span::" + }, + { + "name": "children", + "type": "core::array::Span::<(core::felt252, dojo::model::introspect::Ty)>" + } + ] + }, + { + "type": "struct", + "name": "core::array::Span::", + "members": [ + { + "name": "snapshot", + "type": "@core::array::Array::" + } + ] + }, + { + "type": "enum", + "name": "dojo::model::introspect::Ty", + "variants": [ + { + "name": "Primitive", + "type": "core::felt252" + }, + { + "name": "Struct", + "type": "dojo::model::introspect::Struct" + }, + { + "name": "Enum", + "type": "dojo::model::introspect::Enum" + }, + { + "name": "Tuple", + "type": "core::array::Span::" + }, + { + "name": "Array", + "type": "core::array::Span::" + }, + { + "name": "ByteArray", + "type": "()" + } + ] + }, + { + "type": "interface", + "name": "dojo::model::model::IModel", + "items": [ + { + "type": "function", + "name": "name", + "inputs": [], + "outputs": [ + { + "type": "core::byte_array::ByteArray" + } + ], + "state_mutability": "view" + }, + { + "type": "function", + "name": "namespace", + "inputs": [], + "outputs": [ + { + "type": "core::byte_array::ByteArray" + } + ], + "state_mutability": "view" + }, + { + "type": "function", + "name": "tag", + "inputs": [], + "outputs": [ + { + "type": "core::byte_array::ByteArray" + } + ], + "state_mutability": "view" + }, + { + "type": "function", + "name": "version", + "inputs": [], + "outputs": [ + { + "type": "core::integer::u8" + } + ], + "state_mutability": "view" + }, + { + "type": "function", + "name": "selector", + "inputs": [], + "outputs": [ + { + "type": "core::felt252" + } + ], + "state_mutability": "view" + }, + { + "type": "function", + "name": "name_hash", + "inputs": [], + "outputs": [ + { + "type": "core::felt252" + } + ], + "state_mutability": "view" + }, + { + "type": "function", + "name": "namespace_hash", + "inputs": [], + "outputs": [ + { + "type": "core::felt252" + } + ], + "state_mutability": "view" + }, + { + "type": "function", + "name": "unpacked_size", + "inputs": [], + "outputs": [ + { + "type": "core::option::Option::" + } + ], + "state_mutability": "view" + }, + { + "type": "function", + "name": "packed_size", + "inputs": [], + "outputs": [ + { + "type": "core::option::Option::" + } + ], + "state_mutability": "view" + }, + { + "type": "function", + "name": "layout", + "inputs": [], + "outputs": [ + { + "type": "dojo::model::layout::Layout" + } + ], + "state_mutability": "view" + }, + { + "type": "function", + "name": "schema", + "inputs": [], + "outputs": [ + { + "type": "dojo::model::introspect::Ty" + } + ], + "state_mutability": "view" + } + ] + }, + { + "type": "impl", + "name": "erc_20_balance_modelImpl", + "interface_name": "origami_token::components::token::erc20::erc20_balance::Ierc_20_balance_model" + }, + { + "type": "struct", + "name": "core::integer::u256", + "members": [ + { + "name": "low", + "type": "core::integer::u128" + }, + { + "name": "high", + "type": "core::integer::u128" + } + ] + }, + { + "type": "struct", + "name": "origami_token::components::token::erc20::erc20_balance::ERC20BalanceModel", + "members": [ + { + "name": "token", + "type": "core::starknet::contract_address::ContractAddress" + }, + { + "name": "account", + "type": "core::starknet::contract_address::ContractAddress" + }, + { + "name": "amount", + "type": "core::integer::u256" + } + ] + }, + { + "type": "interface", + "name": "origami_token::components::token::erc20::erc20_balance::Ierc_20_balance_model", + "items": [ + { + "type": "function", + "name": "ensure_abi", + "inputs": [ + { + "name": "model", + "type": "origami_token::components::token::erc20::erc20_balance::ERC20BalanceModel" + } + ], + "outputs": [], + "state_mutability": "view" + } + ] + }, + { + "type": "event", + "name": "origami_token::components::token::erc20::erc20_balance::erc_20_balance_model::Event", + "kind": "enum", + "variants": [] + } +] \ No newline at end of file diff --git a/manifests/sepolia/base/abis/models/flippyflop-ERC20BridgeableModel-1ad0a3e6.json b/manifests/sepolia/base/abis/models/flippyflop-ERC20BridgeableModel-1ad0a3e6.json new file mode 100644 index 0000000..cbb994b --- /dev/null +++ b/manifests/sepolia/base/abis/models/flippyflop-ERC20BridgeableModel-1ad0a3e6.json @@ -0,0 +1,407 @@ +[ + { + "type": "impl", + "name": "DojoModelImpl", + "interface_name": "dojo::model::model::IModel" + }, + { + "type": "struct", + "name": "core::byte_array::ByteArray", + "members": [ + { + "name": "data", + "type": "core::array::Array::" + }, + { + "name": "pending_word", + "type": "core::felt252" + }, + { + "name": "pending_word_len", + "type": "core::integer::u32" + } + ] + }, + { + "type": "enum", + "name": "core::option::Option::", + "variants": [ + { + "name": "Some", + "type": "core::integer::u32" + }, + { + "name": "None", + "type": "()" + } + ] + }, + { + "type": "struct", + "name": "core::array::Span::", + "members": [ + { + "name": "snapshot", + "type": "@core::array::Array::" + } + ] + }, + { + "type": "struct", + "name": "dojo::model::layout::FieldLayout", + "members": [ + { + "name": "selector", + "type": "core::felt252" + }, + { + "name": "layout", + "type": "dojo::model::layout::Layout" + } + ] + }, + { + "type": "struct", + "name": "core::array::Span::", + "members": [ + { + "name": "snapshot", + "type": "@core::array::Array::" + } + ] + }, + { + "type": "struct", + "name": "core::array::Span::", + "members": [ + { + "name": "snapshot", + "type": "@core::array::Array::" + } + ] + }, + { + "type": "enum", + "name": "dojo::model::layout::Layout", + "variants": [ + { + "name": "Fixed", + "type": "core::array::Span::" + }, + { + "name": "Struct", + "type": "core::array::Span::" + }, + { + "name": "Tuple", + "type": "core::array::Span::" + }, + { + "name": "Array", + "type": "core::array::Span::" + }, + { + "name": "ByteArray", + "type": "()" + }, + { + "name": "Enum", + "type": "core::array::Span::" + } + ] + }, + { + "type": "struct", + "name": "core::array::Span::", + "members": [ + { + "name": "snapshot", + "type": "@core::array::Array::" + } + ] + }, + { + "type": "struct", + "name": "dojo::model::introspect::Member", + "members": [ + { + "name": "name", + "type": "core::felt252" + }, + { + "name": "attrs", + "type": "core::array::Span::" + }, + { + "name": "ty", + "type": "dojo::model::introspect::Ty" + } + ] + }, + { + "type": "struct", + "name": "core::array::Span::", + "members": [ + { + "name": "snapshot", + "type": "@core::array::Array::" + } + ] + }, + { + "type": "struct", + "name": "dojo::model::introspect::Struct", + "members": [ + { + "name": "name", + "type": "core::felt252" + }, + { + "name": "attrs", + "type": "core::array::Span::" + }, + { + "name": "children", + "type": "core::array::Span::" + } + ] + }, + { + "type": "struct", + "name": "core::array::Span::<(core::felt252, dojo::model::introspect::Ty)>", + "members": [ + { + "name": "snapshot", + "type": "@core::array::Array::<(core::felt252, dojo::model::introspect::Ty)>" + } + ] + }, + { + "type": "struct", + "name": "dojo::model::introspect::Enum", + "members": [ + { + "name": "name", + "type": "core::felt252" + }, + { + "name": "attrs", + "type": "core::array::Span::" + }, + { + "name": "children", + "type": "core::array::Span::<(core::felt252, dojo::model::introspect::Ty)>" + } + ] + }, + { + "type": "struct", + "name": "core::array::Span::", + "members": [ + { + "name": "snapshot", + "type": "@core::array::Array::" + } + ] + }, + { + "type": "enum", + "name": "dojo::model::introspect::Ty", + "variants": [ + { + "name": "Primitive", + "type": "core::felt252" + }, + { + "name": "Struct", + "type": "dojo::model::introspect::Struct" + }, + { + "name": "Enum", + "type": "dojo::model::introspect::Enum" + }, + { + "name": "Tuple", + "type": "core::array::Span::" + }, + { + "name": "Array", + "type": "core::array::Span::" + }, + { + "name": "ByteArray", + "type": "()" + } + ] + }, + { + "type": "interface", + "name": "dojo::model::model::IModel", + "items": [ + { + "type": "function", + "name": "name", + "inputs": [], + "outputs": [ + { + "type": "core::byte_array::ByteArray" + } + ], + "state_mutability": "view" + }, + { + "type": "function", + "name": "namespace", + "inputs": [], + "outputs": [ + { + "type": "core::byte_array::ByteArray" + } + ], + "state_mutability": "view" + }, + { + "type": "function", + "name": "tag", + "inputs": [], + "outputs": [ + { + "type": "core::byte_array::ByteArray" + } + ], + "state_mutability": "view" + }, + { + "type": "function", + "name": "version", + "inputs": [], + "outputs": [ + { + "type": "core::integer::u8" + } + ], + "state_mutability": "view" + }, + { + "type": "function", + "name": "selector", + "inputs": [], + "outputs": [ + { + "type": "core::felt252" + } + ], + "state_mutability": "view" + }, + { + "type": "function", + "name": "name_hash", + "inputs": [], + "outputs": [ + { + "type": "core::felt252" + } + ], + "state_mutability": "view" + }, + { + "type": "function", + "name": "namespace_hash", + "inputs": [], + "outputs": [ + { + "type": "core::felt252" + } + ], + "state_mutability": "view" + }, + { + "type": "function", + "name": "unpacked_size", + "inputs": [], + "outputs": [ + { + "type": "core::option::Option::" + } + ], + "state_mutability": "view" + }, + { + "type": "function", + "name": "packed_size", + "inputs": [], + "outputs": [ + { + "type": "core::option::Option::" + } + ], + "state_mutability": "view" + }, + { + "type": "function", + "name": "layout", + "inputs": [], + "outputs": [ + { + "type": "dojo::model::layout::Layout" + } + ], + "state_mutability": "view" + }, + { + "type": "function", + "name": "schema", + "inputs": [], + "outputs": [ + { + "type": "dojo::model::introspect::Ty" + } + ], + "state_mutability": "view" + } + ] + }, + { + "type": "impl", + "name": "erc_20_bridgeable_modelImpl", + "interface_name": "flippyflop::tokens::flip::Ierc_20_bridgeable_model" + }, + { + "type": "struct", + "name": "flippyflop::tokens::flip::ERC20BridgeableModel", + "members": [ + { + "name": "token", + "type": "core::starknet::contract_address::ContractAddress" + }, + { + "name": "l2_bridge_address", + "type": "core::starknet::contract_address::ContractAddress" + } + ] + }, + { + "type": "interface", + "name": "flippyflop::tokens::flip::Ierc_20_bridgeable_model", + "items": [ + { + "type": "function", + "name": "ensure_abi", + "inputs": [ + { + "name": "model", + "type": "flippyflop::tokens::flip::ERC20BridgeableModel" + } + ], + "outputs": [], + "state_mutability": "view" + } + ] + }, + { + "type": "event", + "name": "flippyflop::tokens::flip::erc_20_bridgeable_model::Event", + "kind": "enum", + "variants": [] + } +] \ No newline at end of file diff --git a/manifests/sepolia/base/abis/models/flippyflop-ERC20MetadataModel-1fc3dc07.json b/manifests/sepolia/base/abis/models/flippyflop-ERC20MetadataModel-1fc3dc07.json new file mode 100644 index 0000000..5019e93 --- /dev/null +++ b/manifests/sepolia/base/abis/models/flippyflop-ERC20MetadataModel-1fc3dc07.json @@ -0,0 +1,433 @@ +[ + { + "type": "impl", + "name": "DojoModelImpl", + "interface_name": "dojo::model::model::IModel" + }, + { + "type": "struct", + "name": "core::byte_array::ByteArray", + "members": [ + { + "name": "data", + "type": "core::array::Array::" + }, + { + "name": "pending_word", + "type": "core::felt252" + }, + { + "name": "pending_word_len", + "type": "core::integer::u32" + } + ] + }, + { + "type": "enum", + "name": "core::option::Option::", + "variants": [ + { + "name": "Some", + "type": "core::integer::u32" + }, + { + "name": "None", + "type": "()" + } + ] + }, + { + "type": "struct", + "name": "core::array::Span::", + "members": [ + { + "name": "snapshot", + "type": "@core::array::Array::" + } + ] + }, + { + "type": "struct", + "name": "dojo::model::layout::FieldLayout", + "members": [ + { + "name": "selector", + "type": "core::felt252" + }, + { + "name": "layout", + "type": "dojo::model::layout::Layout" + } + ] + }, + { + "type": "struct", + "name": "core::array::Span::", + "members": [ + { + "name": "snapshot", + "type": "@core::array::Array::" + } + ] + }, + { + "type": "struct", + "name": "core::array::Span::", + "members": [ + { + "name": "snapshot", + "type": "@core::array::Array::" + } + ] + }, + { + "type": "enum", + "name": "dojo::model::layout::Layout", + "variants": [ + { + "name": "Fixed", + "type": "core::array::Span::" + }, + { + "name": "Struct", + "type": "core::array::Span::" + }, + { + "name": "Tuple", + "type": "core::array::Span::" + }, + { + "name": "Array", + "type": "core::array::Span::" + }, + { + "name": "ByteArray", + "type": "()" + }, + { + "name": "Enum", + "type": "core::array::Span::" + } + ] + }, + { + "type": "struct", + "name": "core::array::Span::", + "members": [ + { + "name": "snapshot", + "type": "@core::array::Array::" + } + ] + }, + { + "type": "struct", + "name": "dojo::model::introspect::Member", + "members": [ + { + "name": "name", + "type": "core::felt252" + }, + { + "name": "attrs", + "type": "core::array::Span::" + }, + { + "name": "ty", + "type": "dojo::model::introspect::Ty" + } + ] + }, + { + "type": "struct", + "name": "core::array::Span::", + "members": [ + { + "name": "snapshot", + "type": "@core::array::Array::" + } + ] + }, + { + "type": "struct", + "name": "dojo::model::introspect::Struct", + "members": [ + { + "name": "name", + "type": "core::felt252" + }, + { + "name": "attrs", + "type": "core::array::Span::" + }, + { + "name": "children", + "type": "core::array::Span::" + } + ] + }, + { + "type": "struct", + "name": "core::array::Span::<(core::felt252, dojo::model::introspect::Ty)>", + "members": [ + { + "name": "snapshot", + "type": "@core::array::Array::<(core::felt252, dojo::model::introspect::Ty)>" + } + ] + }, + { + "type": "struct", + "name": "dojo::model::introspect::Enum", + "members": [ + { + "name": "name", + "type": "core::felt252" + }, + { + "name": "attrs", + "type": "core::array::Span::" + }, + { + "name": "children", + "type": "core::array::Span::<(core::felt252, dojo::model::introspect::Ty)>" + } + ] + }, + { + "type": "struct", + "name": "core::array::Span::", + "members": [ + { + "name": "snapshot", + "type": "@core::array::Array::" + } + ] + }, + { + "type": "enum", + "name": "dojo::model::introspect::Ty", + "variants": [ + { + "name": "Primitive", + "type": "core::felt252" + }, + { + "name": "Struct", + "type": "dojo::model::introspect::Struct" + }, + { + "name": "Enum", + "type": "dojo::model::introspect::Enum" + }, + { + "name": "Tuple", + "type": "core::array::Span::" + }, + { + "name": "Array", + "type": "core::array::Span::" + }, + { + "name": "ByteArray", + "type": "()" + } + ] + }, + { + "type": "interface", + "name": "dojo::model::model::IModel", + "items": [ + { + "type": "function", + "name": "name", + "inputs": [], + "outputs": [ + { + "type": "core::byte_array::ByteArray" + } + ], + "state_mutability": "view" + }, + { + "type": "function", + "name": "namespace", + "inputs": [], + "outputs": [ + { + "type": "core::byte_array::ByteArray" + } + ], + "state_mutability": "view" + }, + { + "type": "function", + "name": "tag", + "inputs": [], + "outputs": [ + { + "type": "core::byte_array::ByteArray" + } + ], + "state_mutability": "view" + }, + { + "type": "function", + "name": "version", + "inputs": [], + "outputs": [ + { + "type": "core::integer::u8" + } + ], + "state_mutability": "view" + }, + { + "type": "function", + "name": "selector", + "inputs": [], + "outputs": [ + { + "type": "core::felt252" + } + ], + "state_mutability": "view" + }, + { + "type": "function", + "name": "name_hash", + "inputs": [], + "outputs": [ + { + "type": "core::felt252" + } + ], + "state_mutability": "view" + }, + { + "type": "function", + "name": "namespace_hash", + "inputs": [], + "outputs": [ + { + "type": "core::felt252" + } + ], + "state_mutability": "view" + }, + { + "type": "function", + "name": "unpacked_size", + "inputs": [], + "outputs": [ + { + "type": "core::option::Option::" + } + ], + "state_mutability": "view" + }, + { + "type": "function", + "name": "packed_size", + "inputs": [], + "outputs": [ + { + "type": "core::option::Option::" + } + ], + "state_mutability": "view" + }, + { + "type": "function", + "name": "layout", + "inputs": [], + "outputs": [ + { + "type": "dojo::model::layout::Layout" + } + ], + "state_mutability": "view" + }, + { + "type": "function", + "name": "schema", + "inputs": [], + "outputs": [ + { + "type": "dojo::model::introspect::Ty" + } + ], + "state_mutability": "view" + } + ] + }, + { + "type": "impl", + "name": "erc_20_metadata_modelImpl", + "interface_name": "origami_token::components::token::erc20::erc20_metadata::Ierc_20_metadata_model" + }, + { + "type": "struct", + "name": "core::integer::u256", + "members": [ + { + "name": "low", + "type": "core::integer::u128" + }, + { + "name": "high", + "type": "core::integer::u128" + } + ] + }, + { + "type": "struct", + "name": "origami_token::components::token::erc20::erc20_metadata::ERC20MetadataModel", + "members": [ + { + "name": "token", + "type": "core::starknet::contract_address::ContractAddress" + }, + { + "name": "name", + "type": "core::byte_array::ByteArray" + }, + { + "name": "symbol", + "type": "core::byte_array::ByteArray" + }, + { + "name": "decimals", + "type": "core::integer::u8" + }, + { + "name": "total_supply", + "type": "core::integer::u256" + } + ] + }, + { + "type": "interface", + "name": "origami_token::components::token::erc20::erc20_metadata::Ierc_20_metadata_model", + "items": [ + { + "type": "function", + "name": "ensure_abi", + "inputs": [ + { + "name": "model", + "type": "origami_token::components::token::erc20::erc20_metadata::ERC20MetadataModel" + } + ], + "outputs": [], + "state_mutability": "view" + } + ] + }, + { + "type": "event", + "name": "origami_token::components::token::erc20::erc20_metadata::erc_20_metadata_model::Event", + "kind": "enum", + "variants": [] + } +] \ No newline at end of file diff --git a/manifests/sepolia/base/abis/models/flippyflop-Game-54c54faf.json b/manifests/sepolia/base/abis/models/flippyflop-Game-54c54faf.json new file mode 100644 index 0000000..47e0750 --- /dev/null +++ b/manifests/sepolia/base/abis/models/flippyflop-Game-54c54faf.json @@ -0,0 +1,421 @@ +[ + { + "type": "impl", + "name": "DojoModelImpl", + "interface_name": "dojo::model::model::IModel" + }, + { + "type": "struct", + "name": "core::byte_array::ByteArray", + "members": [ + { + "name": "data", + "type": "core::array::Array::" + }, + { + "name": "pending_word", + "type": "core::felt252" + }, + { + "name": "pending_word_len", + "type": "core::integer::u32" + } + ] + }, + { + "type": "enum", + "name": "core::option::Option::", + "variants": [ + { + "name": "Some", + "type": "core::integer::u32" + }, + { + "name": "None", + "type": "()" + } + ] + }, + { + "type": "struct", + "name": "core::array::Span::", + "members": [ + { + "name": "snapshot", + "type": "@core::array::Array::" + } + ] + }, + { + "type": "struct", + "name": "dojo::model::layout::FieldLayout", + "members": [ + { + "name": "selector", + "type": "core::felt252" + }, + { + "name": "layout", + "type": "dojo::model::layout::Layout" + } + ] + }, + { + "type": "struct", + "name": "core::array::Span::", + "members": [ + { + "name": "snapshot", + "type": "@core::array::Array::" + } + ] + }, + { + "type": "struct", + "name": "core::array::Span::", + "members": [ + { + "name": "snapshot", + "type": "@core::array::Array::" + } + ] + }, + { + "type": "enum", + "name": "dojo::model::layout::Layout", + "variants": [ + { + "name": "Fixed", + "type": "core::array::Span::" + }, + { + "name": "Struct", + "type": "core::array::Span::" + }, + { + "name": "Tuple", + "type": "core::array::Span::" + }, + { + "name": "Array", + "type": "core::array::Span::" + }, + { + "name": "ByteArray", + "type": "()" + }, + { + "name": "Enum", + "type": "core::array::Span::" + } + ] + }, + { + "type": "struct", + "name": "core::array::Span::", + "members": [ + { + "name": "snapshot", + "type": "@core::array::Array::" + } + ] + }, + { + "type": "struct", + "name": "dojo::model::introspect::Member", + "members": [ + { + "name": "name", + "type": "core::felt252" + }, + { + "name": "attrs", + "type": "core::array::Span::" + }, + { + "name": "ty", + "type": "dojo::model::introspect::Ty" + } + ] + }, + { + "type": "struct", + "name": "core::array::Span::", + "members": [ + { + "name": "snapshot", + "type": "@core::array::Array::" + } + ] + }, + { + "type": "struct", + "name": "dojo::model::introspect::Struct", + "members": [ + { + "name": "name", + "type": "core::felt252" + }, + { + "name": "attrs", + "type": "core::array::Span::" + }, + { + "name": "children", + "type": "core::array::Span::" + } + ] + }, + { + "type": "struct", + "name": "core::array::Span::<(core::felt252, dojo::model::introspect::Ty)>", + "members": [ + { + "name": "snapshot", + "type": "@core::array::Array::<(core::felt252, dojo::model::introspect::Ty)>" + } + ] + }, + { + "type": "struct", + "name": "dojo::model::introspect::Enum", + "members": [ + { + "name": "name", + "type": "core::felt252" + }, + { + "name": "attrs", + "type": "core::array::Span::" + }, + { + "name": "children", + "type": "core::array::Span::<(core::felt252, dojo::model::introspect::Ty)>" + } + ] + }, + { + "type": "struct", + "name": "core::array::Span::", + "members": [ + { + "name": "snapshot", + "type": "@core::array::Array::" + } + ] + }, + { + "type": "enum", + "name": "dojo::model::introspect::Ty", + "variants": [ + { + "name": "Primitive", + "type": "core::felt252" + }, + { + "name": "Struct", + "type": "dojo::model::introspect::Struct" + }, + { + "name": "Enum", + "type": "dojo::model::introspect::Enum" + }, + { + "name": "Tuple", + "type": "core::array::Span::" + }, + { + "name": "Array", + "type": "core::array::Span::" + }, + { + "name": "ByteArray", + "type": "()" + } + ] + }, + { + "type": "interface", + "name": "dojo::model::model::IModel", + "items": [ + { + "type": "function", + "name": "name", + "inputs": [], + "outputs": [ + { + "type": "core::byte_array::ByteArray" + } + ], + "state_mutability": "view" + }, + { + "type": "function", + "name": "namespace", + "inputs": [], + "outputs": [ + { + "type": "core::byte_array::ByteArray" + } + ], + "state_mutability": "view" + }, + { + "type": "function", + "name": "tag", + "inputs": [], + "outputs": [ + { + "type": "core::byte_array::ByteArray" + } + ], + "state_mutability": "view" + }, + { + "type": "function", + "name": "version", + "inputs": [], + "outputs": [ + { + "type": "core::integer::u8" + } + ], + "state_mutability": "view" + }, + { + "type": "function", + "name": "selector", + "inputs": [], + "outputs": [ + { + "type": "core::felt252" + } + ], + "state_mutability": "view" + }, + { + "type": "function", + "name": "name_hash", + "inputs": [], + "outputs": [ + { + "type": "core::felt252" + } + ], + "state_mutability": "view" + }, + { + "type": "function", + "name": "namespace_hash", + "inputs": [], + "outputs": [ + { + "type": "core::felt252" + } + ], + "state_mutability": "view" + }, + { + "type": "function", + "name": "unpacked_size", + "inputs": [], + "outputs": [ + { + "type": "core::option::Option::" + } + ], + "state_mutability": "view" + }, + { + "type": "function", + "name": "packed_size", + "inputs": [], + "outputs": [ + { + "type": "core::option::Option::" + } + ], + "state_mutability": "view" + }, + { + "type": "function", + "name": "layout", + "inputs": [], + "outputs": [ + { + "type": "dojo::model::layout::Layout" + } + ], + "state_mutability": "view" + }, + { + "type": "function", + "name": "schema", + "inputs": [], + "outputs": [ + { + "type": "dojo::model::introspect::Ty" + } + ], + "state_mutability": "view" + } + ] + }, + { + "type": "impl", + "name": "gameImpl", + "interface_name": "flippyflop::models::Igame" + }, + { + "type": "enum", + "name": "core::bool", + "variants": [ + { + "name": "False", + "type": "()" + }, + { + "name": "True", + "type": "()" + } + ] + }, + { + "type": "struct", + "name": "flippyflop::models::Game", + "members": [ + { + "name": "id", + "type": "core::integer::u32" + }, + { + "name": "is_locked", + "type": "core::bool" + } + ] + }, + { + "type": "interface", + "name": "flippyflop::models::Igame", + "items": [ + { + "type": "function", + "name": "ensure_abi", + "inputs": [ + { + "name": "model", + "type": "flippyflop::models::Game" + } + ], + "outputs": [], + "state_mutability": "view" + } + ] + }, + { + "type": "event", + "name": "flippyflop::models::game::Event", + "kind": "enum", + "variants": [] + } +] \ No newline at end of file diff --git a/manifests/sepolia/base/abis/models/flippyflop-InitializableModel-4239d2f3.json b/manifests/sepolia/base/abis/models/flippyflop-InitializableModel-4239d2f3.json new file mode 100644 index 0000000..19db9e1 --- /dev/null +++ b/manifests/sepolia/base/abis/models/flippyflop-InitializableModel-4239d2f3.json @@ -0,0 +1,421 @@ +[ + { + "type": "impl", + "name": "DojoModelImpl", + "interface_name": "dojo::model::model::IModel" + }, + { + "type": "struct", + "name": "core::byte_array::ByteArray", + "members": [ + { + "name": "data", + "type": "core::array::Array::" + }, + { + "name": "pending_word", + "type": "core::felt252" + }, + { + "name": "pending_word_len", + "type": "core::integer::u32" + } + ] + }, + { + "type": "enum", + "name": "core::option::Option::", + "variants": [ + { + "name": "Some", + "type": "core::integer::u32" + }, + { + "name": "None", + "type": "()" + } + ] + }, + { + "type": "struct", + "name": "core::array::Span::", + "members": [ + { + "name": "snapshot", + "type": "@core::array::Array::" + } + ] + }, + { + "type": "struct", + "name": "dojo::model::layout::FieldLayout", + "members": [ + { + "name": "selector", + "type": "core::felt252" + }, + { + "name": "layout", + "type": "dojo::model::layout::Layout" + } + ] + }, + { + "type": "struct", + "name": "core::array::Span::", + "members": [ + { + "name": "snapshot", + "type": "@core::array::Array::" + } + ] + }, + { + "type": "struct", + "name": "core::array::Span::", + "members": [ + { + "name": "snapshot", + "type": "@core::array::Array::" + } + ] + }, + { + "type": "enum", + "name": "dojo::model::layout::Layout", + "variants": [ + { + "name": "Fixed", + "type": "core::array::Span::" + }, + { + "name": "Struct", + "type": "core::array::Span::" + }, + { + "name": "Tuple", + "type": "core::array::Span::" + }, + { + "name": "Array", + "type": "core::array::Span::" + }, + { + "name": "ByteArray", + "type": "()" + }, + { + "name": "Enum", + "type": "core::array::Span::" + } + ] + }, + { + "type": "struct", + "name": "core::array::Span::", + "members": [ + { + "name": "snapshot", + "type": "@core::array::Array::" + } + ] + }, + { + "type": "struct", + "name": "dojo::model::introspect::Member", + "members": [ + { + "name": "name", + "type": "core::felt252" + }, + { + "name": "attrs", + "type": "core::array::Span::" + }, + { + "name": "ty", + "type": "dojo::model::introspect::Ty" + } + ] + }, + { + "type": "struct", + "name": "core::array::Span::", + "members": [ + { + "name": "snapshot", + "type": "@core::array::Array::" + } + ] + }, + { + "type": "struct", + "name": "dojo::model::introspect::Struct", + "members": [ + { + "name": "name", + "type": "core::felt252" + }, + { + "name": "attrs", + "type": "core::array::Span::" + }, + { + "name": "children", + "type": "core::array::Span::" + } + ] + }, + { + "type": "struct", + "name": "core::array::Span::<(core::felt252, dojo::model::introspect::Ty)>", + "members": [ + { + "name": "snapshot", + "type": "@core::array::Array::<(core::felt252, dojo::model::introspect::Ty)>" + } + ] + }, + { + "type": "struct", + "name": "dojo::model::introspect::Enum", + "members": [ + { + "name": "name", + "type": "core::felt252" + }, + { + "name": "attrs", + "type": "core::array::Span::" + }, + { + "name": "children", + "type": "core::array::Span::<(core::felt252, dojo::model::introspect::Ty)>" + } + ] + }, + { + "type": "struct", + "name": "core::array::Span::", + "members": [ + { + "name": "snapshot", + "type": "@core::array::Array::" + } + ] + }, + { + "type": "enum", + "name": "dojo::model::introspect::Ty", + "variants": [ + { + "name": "Primitive", + "type": "core::felt252" + }, + { + "name": "Struct", + "type": "dojo::model::introspect::Struct" + }, + { + "name": "Enum", + "type": "dojo::model::introspect::Enum" + }, + { + "name": "Tuple", + "type": "core::array::Span::" + }, + { + "name": "Array", + "type": "core::array::Span::" + }, + { + "name": "ByteArray", + "type": "()" + } + ] + }, + { + "type": "interface", + "name": "dojo::model::model::IModel", + "items": [ + { + "type": "function", + "name": "name", + "inputs": [], + "outputs": [ + { + "type": "core::byte_array::ByteArray" + } + ], + "state_mutability": "view" + }, + { + "type": "function", + "name": "namespace", + "inputs": [], + "outputs": [ + { + "type": "core::byte_array::ByteArray" + } + ], + "state_mutability": "view" + }, + { + "type": "function", + "name": "tag", + "inputs": [], + "outputs": [ + { + "type": "core::byte_array::ByteArray" + } + ], + "state_mutability": "view" + }, + { + "type": "function", + "name": "version", + "inputs": [], + "outputs": [ + { + "type": "core::integer::u8" + } + ], + "state_mutability": "view" + }, + { + "type": "function", + "name": "selector", + "inputs": [], + "outputs": [ + { + "type": "core::felt252" + } + ], + "state_mutability": "view" + }, + { + "type": "function", + "name": "name_hash", + "inputs": [], + "outputs": [ + { + "type": "core::felt252" + } + ], + "state_mutability": "view" + }, + { + "type": "function", + "name": "namespace_hash", + "inputs": [], + "outputs": [ + { + "type": "core::felt252" + } + ], + "state_mutability": "view" + }, + { + "type": "function", + "name": "unpacked_size", + "inputs": [], + "outputs": [ + { + "type": "core::option::Option::" + } + ], + "state_mutability": "view" + }, + { + "type": "function", + "name": "packed_size", + "inputs": [], + "outputs": [ + { + "type": "core::option::Option::" + } + ], + "state_mutability": "view" + }, + { + "type": "function", + "name": "layout", + "inputs": [], + "outputs": [ + { + "type": "dojo::model::layout::Layout" + } + ], + "state_mutability": "view" + }, + { + "type": "function", + "name": "schema", + "inputs": [], + "outputs": [ + { + "type": "dojo::model::introspect::Ty" + } + ], + "state_mutability": "view" + } + ] + }, + { + "type": "impl", + "name": "initializable_modelImpl", + "interface_name": "origami_token::components::security::initializable::Iinitializable_model" + }, + { + "type": "enum", + "name": "core::bool", + "variants": [ + { + "name": "False", + "type": "()" + }, + { + "name": "True", + "type": "()" + } + ] + }, + { + "type": "struct", + "name": "origami_token::components::security::initializable::InitializableModel", + "members": [ + { + "name": "token", + "type": "core::starknet::contract_address::ContractAddress" + }, + { + "name": "initialized", + "type": "core::bool" + } + ] + }, + { + "type": "interface", + "name": "origami_token::components::security::initializable::Iinitializable_model", + "items": [ + { + "type": "function", + "name": "ensure_abi", + "inputs": [ + { + "name": "model", + "type": "origami_token::components::security::initializable::InitializableModel" + } + ], + "outputs": [], + "state_mutability": "view" + } + ] + }, + { + "type": "event", + "name": "origami_token::components::security::initializable::initializable_model::Event", + "kind": "enum", + "variants": [] + } +] \ No newline at end of file diff --git a/manifests/sepolia/base/abis/models/flippyflop-Tile-61fb9291.json b/manifests/sepolia/base/abis/models/flippyflop-Tile-61fb9291.json new file mode 100644 index 0000000..0c7a6a4 --- /dev/null +++ b/manifests/sepolia/base/abis/models/flippyflop-Tile-61fb9291.json @@ -0,0 +1,411 @@ +[ + { + "type": "impl", + "name": "DojoModelImpl", + "interface_name": "dojo::model::model::IModel" + }, + { + "type": "struct", + "name": "core::byte_array::ByteArray", + "members": [ + { + "name": "data", + "type": "core::array::Array::" + }, + { + "name": "pending_word", + "type": "core::felt252" + }, + { + "name": "pending_word_len", + "type": "core::integer::u32" + } + ] + }, + { + "type": "enum", + "name": "core::option::Option::", + "variants": [ + { + "name": "Some", + "type": "core::integer::u32" + }, + { + "name": "None", + "type": "()" + } + ] + }, + { + "type": "struct", + "name": "core::array::Span::", + "members": [ + { + "name": "snapshot", + "type": "@core::array::Array::" + } + ] + }, + { + "type": "struct", + "name": "dojo::model::layout::FieldLayout", + "members": [ + { + "name": "selector", + "type": "core::felt252" + }, + { + "name": "layout", + "type": "dojo::model::layout::Layout" + } + ] + }, + { + "type": "struct", + "name": "core::array::Span::", + "members": [ + { + "name": "snapshot", + "type": "@core::array::Array::" + } + ] + }, + { + "type": "struct", + "name": "core::array::Span::", + "members": [ + { + "name": "snapshot", + "type": "@core::array::Array::" + } + ] + }, + { + "type": "enum", + "name": "dojo::model::layout::Layout", + "variants": [ + { + "name": "Fixed", + "type": "core::array::Span::" + }, + { + "name": "Struct", + "type": "core::array::Span::" + }, + { + "name": "Tuple", + "type": "core::array::Span::" + }, + { + "name": "Array", + "type": "core::array::Span::" + }, + { + "name": "ByteArray", + "type": "()" + }, + { + "name": "Enum", + "type": "core::array::Span::" + } + ] + }, + { + "type": "struct", + "name": "core::array::Span::", + "members": [ + { + "name": "snapshot", + "type": "@core::array::Array::" + } + ] + }, + { + "type": "struct", + "name": "dojo::model::introspect::Member", + "members": [ + { + "name": "name", + "type": "core::felt252" + }, + { + "name": "attrs", + "type": "core::array::Span::" + }, + { + "name": "ty", + "type": "dojo::model::introspect::Ty" + } + ] + }, + { + "type": "struct", + "name": "core::array::Span::", + "members": [ + { + "name": "snapshot", + "type": "@core::array::Array::" + } + ] + }, + { + "type": "struct", + "name": "dojo::model::introspect::Struct", + "members": [ + { + "name": "name", + "type": "core::felt252" + }, + { + "name": "attrs", + "type": "core::array::Span::" + }, + { + "name": "children", + "type": "core::array::Span::" + } + ] + }, + { + "type": "struct", + "name": "core::array::Span::<(core::felt252, dojo::model::introspect::Ty)>", + "members": [ + { + "name": "snapshot", + "type": "@core::array::Array::<(core::felt252, dojo::model::introspect::Ty)>" + } + ] + }, + { + "type": "struct", + "name": "dojo::model::introspect::Enum", + "members": [ + { + "name": "name", + "type": "core::felt252" + }, + { + "name": "attrs", + "type": "core::array::Span::" + }, + { + "name": "children", + "type": "core::array::Span::<(core::felt252, dojo::model::introspect::Ty)>" + } + ] + }, + { + "type": "struct", + "name": "core::array::Span::", + "members": [ + { + "name": "snapshot", + "type": "@core::array::Array::" + } + ] + }, + { + "type": "enum", + "name": "dojo::model::introspect::Ty", + "variants": [ + { + "name": "Primitive", + "type": "core::felt252" + }, + { + "name": "Struct", + "type": "dojo::model::introspect::Struct" + }, + { + "name": "Enum", + "type": "dojo::model::introspect::Enum" + }, + { + "name": "Tuple", + "type": "core::array::Span::" + }, + { + "name": "Array", + "type": "core::array::Span::" + }, + { + "name": "ByteArray", + "type": "()" + } + ] + }, + { + "type": "interface", + "name": "dojo::model::model::IModel", + "items": [ + { + "type": "function", + "name": "name", + "inputs": [], + "outputs": [ + { + "type": "core::byte_array::ByteArray" + } + ], + "state_mutability": "view" + }, + { + "type": "function", + "name": "namespace", + "inputs": [], + "outputs": [ + { + "type": "core::byte_array::ByteArray" + } + ], + "state_mutability": "view" + }, + { + "type": "function", + "name": "tag", + "inputs": [], + "outputs": [ + { + "type": "core::byte_array::ByteArray" + } + ], + "state_mutability": "view" + }, + { + "type": "function", + "name": "version", + "inputs": [], + "outputs": [ + { + "type": "core::integer::u8" + } + ], + "state_mutability": "view" + }, + { + "type": "function", + "name": "selector", + "inputs": [], + "outputs": [ + { + "type": "core::felt252" + } + ], + "state_mutability": "view" + }, + { + "type": "function", + "name": "name_hash", + "inputs": [], + "outputs": [ + { + "type": "core::felt252" + } + ], + "state_mutability": "view" + }, + { + "type": "function", + "name": "namespace_hash", + "inputs": [], + "outputs": [ + { + "type": "core::felt252" + } + ], + "state_mutability": "view" + }, + { + "type": "function", + "name": "unpacked_size", + "inputs": [], + "outputs": [ + { + "type": "core::option::Option::" + } + ], + "state_mutability": "view" + }, + { + "type": "function", + "name": "packed_size", + "inputs": [], + "outputs": [ + { + "type": "core::option::Option::" + } + ], + "state_mutability": "view" + }, + { + "type": "function", + "name": "layout", + "inputs": [], + "outputs": [ + { + "type": "dojo::model::layout::Layout" + } + ], + "state_mutability": "view" + }, + { + "type": "function", + "name": "schema", + "inputs": [], + "outputs": [ + { + "type": "dojo::model::introspect::Ty" + } + ], + "state_mutability": "view" + } + ] + }, + { + "type": "impl", + "name": "tileImpl", + "interface_name": "flippyflop::models::Itile" + }, + { + "type": "struct", + "name": "flippyflop::models::Tile", + "members": [ + { + "name": "x", + "type": "core::integer::u32" + }, + { + "name": "y", + "type": "core::integer::u32" + }, + { + "name": "flipped", + "type": "core::felt252" + } + ] + }, + { + "type": "interface", + "name": "flippyflop::models::Itile", + "items": [ + { + "type": "function", + "name": "ensure_abi", + "inputs": [ + { + "name": "model", + "type": "flippyflop::models::Tile" + } + ], + "outputs": [], + "state_mutability": "view" + } + ] + }, + { + "type": "event", + "name": "flippyflop::models::tile::Event", + "kind": "enum", + "variants": [] + } +] \ No newline at end of file diff --git a/manifests/sepolia/base/abis/models/flippyflop-User-25ca4606.json b/manifests/sepolia/base/abis/models/flippyflop-User-25ca4606.json new file mode 100644 index 0000000..580eeba --- /dev/null +++ b/manifests/sepolia/base/abis/models/flippyflop-User-25ca4606.json @@ -0,0 +1,415 @@ +[ + { + "type": "impl", + "name": "DojoModelImpl", + "interface_name": "dojo::model::model::IModel" + }, + { + "type": "struct", + "name": "core::byte_array::ByteArray", + "members": [ + { + "name": "data", + "type": "core::array::Array::" + }, + { + "name": "pending_word", + "type": "core::felt252" + }, + { + "name": "pending_word_len", + "type": "core::integer::u32" + } + ] + }, + { + "type": "enum", + "name": "core::option::Option::", + "variants": [ + { + "name": "Some", + "type": "core::integer::u32" + }, + { + "name": "None", + "type": "()" + } + ] + }, + { + "type": "struct", + "name": "core::array::Span::", + "members": [ + { + "name": "snapshot", + "type": "@core::array::Array::" + } + ] + }, + { + "type": "struct", + "name": "dojo::model::layout::FieldLayout", + "members": [ + { + "name": "selector", + "type": "core::felt252" + }, + { + "name": "layout", + "type": "dojo::model::layout::Layout" + } + ] + }, + { + "type": "struct", + "name": "core::array::Span::", + "members": [ + { + "name": "snapshot", + "type": "@core::array::Array::" + } + ] + }, + { + "type": "struct", + "name": "core::array::Span::", + "members": [ + { + "name": "snapshot", + "type": "@core::array::Array::" + } + ] + }, + { + "type": "enum", + "name": "dojo::model::layout::Layout", + "variants": [ + { + "name": "Fixed", + "type": "core::array::Span::" + }, + { + "name": "Struct", + "type": "core::array::Span::" + }, + { + "name": "Tuple", + "type": "core::array::Span::" + }, + { + "name": "Array", + "type": "core::array::Span::" + }, + { + "name": "ByteArray", + "type": "()" + }, + { + "name": "Enum", + "type": "core::array::Span::" + } + ] + }, + { + "type": "struct", + "name": "core::array::Span::", + "members": [ + { + "name": "snapshot", + "type": "@core::array::Array::" + } + ] + }, + { + "type": "struct", + "name": "dojo::model::introspect::Member", + "members": [ + { + "name": "name", + "type": "core::felt252" + }, + { + "name": "attrs", + "type": "core::array::Span::" + }, + { + "name": "ty", + "type": "dojo::model::introspect::Ty" + } + ] + }, + { + "type": "struct", + "name": "core::array::Span::", + "members": [ + { + "name": "snapshot", + "type": "@core::array::Array::" + } + ] + }, + { + "type": "struct", + "name": "dojo::model::introspect::Struct", + "members": [ + { + "name": "name", + "type": "core::felt252" + }, + { + "name": "attrs", + "type": "core::array::Span::" + }, + { + "name": "children", + "type": "core::array::Span::" + } + ] + }, + { + "type": "struct", + "name": "core::array::Span::<(core::felt252, dojo::model::introspect::Ty)>", + "members": [ + { + "name": "snapshot", + "type": "@core::array::Array::<(core::felt252, dojo::model::introspect::Ty)>" + } + ] + }, + { + "type": "struct", + "name": "dojo::model::introspect::Enum", + "members": [ + { + "name": "name", + "type": "core::felt252" + }, + { + "name": "attrs", + "type": "core::array::Span::" + }, + { + "name": "children", + "type": "core::array::Span::<(core::felt252, dojo::model::introspect::Ty)>" + } + ] + }, + { + "type": "struct", + "name": "core::array::Span::", + "members": [ + { + "name": "snapshot", + "type": "@core::array::Array::" + } + ] + }, + { + "type": "enum", + "name": "dojo::model::introspect::Ty", + "variants": [ + { + "name": "Primitive", + "type": "core::felt252" + }, + { + "name": "Struct", + "type": "dojo::model::introspect::Struct" + }, + { + "name": "Enum", + "type": "dojo::model::introspect::Enum" + }, + { + "name": "Tuple", + "type": "core::array::Span::" + }, + { + "name": "Array", + "type": "core::array::Span::" + }, + { + "name": "ByteArray", + "type": "()" + } + ] + }, + { + "type": "interface", + "name": "dojo::model::model::IModel", + "items": [ + { + "type": "function", + "name": "name", + "inputs": [], + "outputs": [ + { + "type": "core::byte_array::ByteArray" + } + ], + "state_mutability": "view" + }, + { + "type": "function", + "name": "namespace", + "inputs": [], + "outputs": [ + { + "type": "core::byte_array::ByteArray" + } + ], + "state_mutability": "view" + }, + { + "type": "function", + "name": "tag", + "inputs": [], + "outputs": [ + { + "type": "core::byte_array::ByteArray" + } + ], + "state_mutability": "view" + }, + { + "type": "function", + "name": "version", + "inputs": [], + "outputs": [ + { + "type": "core::integer::u8" + } + ], + "state_mutability": "view" + }, + { + "type": "function", + "name": "selector", + "inputs": [], + "outputs": [ + { + "type": "core::felt252" + } + ], + "state_mutability": "view" + }, + { + "type": "function", + "name": "name_hash", + "inputs": [], + "outputs": [ + { + "type": "core::felt252" + } + ], + "state_mutability": "view" + }, + { + "type": "function", + "name": "namespace_hash", + "inputs": [], + "outputs": [ + { + "type": "core::felt252" + } + ], + "state_mutability": "view" + }, + { + "type": "function", + "name": "unpacked_size", + "inputs": [], + "outputs": [ + { + "type": "core::option::Option::" + } + ], + "state_mutability": "view" + }, + { + "type": "function", + "name": "packed_size", + "inputs": [], + "outputs": [ + { + "type": "core::option::Option::" + } + ], + "state_mutability": "view" + }, + { + "type": "function", + "name": "layout", + "inputs": [], + "outputs": [ + { + "type": "dojo::model::layout::Layout" + } + ], + "state_mutability": "view" + }, + { + "type": "function", + "name": "schema", + "inputs": [], + "outputs": [ + { + "type": "dojo::model::introspect::Ty" + } + ], + "state_mutability": "view" + } + ] + }, + { + "type": "impl", + "name": "userImpl", + "interface_name": "flippyflop::models::Iuser" + }, + { + "type": "struct", + "name": "flippyflop::models::User", + "members": [ + { + "name": "identity", + "type": "core::starknet::contract_address::ContractAddress" + }, + { + "name": "last_message", + "type": "core::byte_array::ByteArray" + }, + { + "name": "hovering_tile_x", + "type": "core::integer::u32" + }, + { + "name": "hovering_tile_y", + "type": "core::integer::u32" + } + ] + }, + { + "type": "interface", + "name": "flippyflop::models::Iuser", + "items": [ + { + "type": "function", + "name": "ensure_abi", + "inputs": [ + { + "name": "model", + "type": "flippyflop::models::User" + } + ], + "outputs": [], + "state_mutability": "view" + } + ] + }, + { + "type": "event", + "name": "flippyflop::models::user::Event", + "kind": "enum", + "variants": [] + } +] \ No newline at end of file diff --git a/manifests/sepolia/base/contracts/flippyflop-Flip-6bd3ed9d.toml b/manifests/sepolia/base/contracts/flippyflop-Flip-6bd3ed9d.toml new file mode 100644 index 0000000..f25a953 --- /dev/null +++ b/manifests/sepolia/base/contracts/flippyflop-Flip-6bd3ed9d.toml @@ -0,0 +1,15 @@ +kind = "DojoContract" +class_hash = "0x7c94aef06e9d76934f52e2abaa8e990dd530472a0e554ef916266acb628c946" +original_class_hash = "0x7c94aef06e9d76934f52e2abaa8e990dd530472a0e554ef916266acb628c946" +base_class_hash = "0x0" +abi = "manifests/sepolia/base/abis/contracts/flippyflop-Flip-6bd3ed9d.json" +reads = [] +writes = [] +init_calldata = [] +tag = "flippyflop-Flip" +systems = [ + "initializer", + "mint_from", + "burn_from", +] +manifest_name = "flippyflop-Flip-6bd3ed9d" diff --git a/manifests/sepolia/base/contracts/flippyflop-actions-4407e5f5.toml b/manifests/sepolia/base/contracts/flippyflop-actions-4407e5f5.toml new file mode 100644 index 0000000..7a0fa31 --- /dev/null +++ b/manifests/sepolia/base/contracts/flippyflop-actions-4407e5f5.toml @@ -0,0 +1,15 @@ +kind = "DojoContract" +class_hash = "0x4b4721d434ce198b907c12463c98a0c437abbf13fc239ffe7393d0adede908" +original_class_hash = "0x4b4721d434ce198b907c12463c98a0c437abbf13fc239ffe7393d0adede908" +base_class_hash = "0x0" +abi = "manifests/sepolia/base/abis/contracts/flippyflop-actions-4407e5f5.json" +reads = [] +writes = [] +init_calldata = [] +tag = "flippyflop-actions" +systems = [ + "flip", + "flop", + "claim", +] +manifest_name = "flippyflop-actions-4407e5f5" diff --git a/manifests/sepolia/base/contracts/flippyflop-game-23e1ad43.toml b/manifests/sepolia/base/contracts/flippyflop-game-23e1ad43.toml new file mode 100644 index 0000000..a2cb49c --- /dev/null +++ b/manifests/sepolia/base/contracts/flippyflop-game-23e1ad43.toml @@ -0,0 +1,14 @@ +kind = "DojoContract" +class_hash = "0x192db261dca4aa58ce197a2947f7b0af929b582fe317688f67c19941b41e1a3" +original_class_hash = "0x192db261dca4aa58ce197a2947f7b0af929b582fe317688f67c19941b41e1a3" +base_class_hash = "0x0" +abi = "manifests/sepolia/base/abis/contracts/flippyflop-game-23e1ad43.json" +reads = [] +writes = [] +init_calldata = [] +tag = "flippyflop-game" +systems = [ + "lock", + "unlock", +] +manifest_name = "flippyflop-game-23e1ad43" diff --git a/manifests/sepolia/base/dojo-base.toml b/manifests/sepolia/base/dojo-base.toml new file mode 100644 index 0000000..336ad03 --- /dev/null +++ b/manifests/sepolia/base/dojo-base.toml @@ -0,0 +1,6 @@ +kind = "Class" +class_hash = "0x2427dd10a58850ac9a5ca6ce04b7771b05330fd18f2e481831ad903b969e6b2" +original_class_hash = "0x2427dd10a58850ac9a5ca6ce04b7771b05330fd18f2e481831ad903b969e6b2" +abi = "manifests/sepolia/base/abis/dojo-base.json" +tag = "dojo-base" +manifest_name = "dojo-base" diff --git a/manifests/sepolia/base/dojo-world.toml b/manifests/sepolia/base/dojo-world.toml new file mode 100644 index 0000000..65e5ac4 --- /dev/null +++ b/manifests/sepolia/base/dojo-world.toml @@ -0,0 +1,6 @@ +kind = "Class" +class_hash = "0x79b9624eacd7b74e31db18b10fddbd73c010b85cd1b1f56028c24bafa0b1487" +original_class_hash = "0x79b9624eacd7b74e31db18b10fddbd73c010b85cd1b1f56028c24bafa0b1487" +abi = "manifests/sepolia/base/abis/dojo-world.json" +tag = "dojo-world" +manifest_name = "dojo-world" diff --git a/manifests/sepolia/base/models/flippyflop-Claim-c098f39e.toml b/manifests/sepolia/base/models/flippyflop-Claim-c098f39e.toml new file mode 100644 index 0000000..caacbb4 --- /dev/null +++ b/manifests/sepolia/base/models/flippyflop-Claim-c098f39e.toml @@ -0,0 +1,17 @@ +kind = "DojoModel" +class_hash = "0x7416d8eddcdb8106e3574223f03624a8290f2f012c5c4d628383d3ccb8a56a0" +original_class_hash = "0x7416d8eddcdb8106e3574223f03624a8290f2f012c5c4d628383d3ccb8a56a0" +abi = "manifests/sepolia/base/abis/models/flippyflop-Claim-c098f39e.json" +tag = "flippyflop-Claim" +qualified_path = "flippyflop::models::claim" +manifest_name = "flippyflop-Claim-c098f39e" + +[[members]] +name = "player" +type = "felt252" +key = true + +[[members]] +name = "amount" +type = "u256" +key = false diff --git a/manifests/sepolia/base/models/flippyflop-ERC20AllowanceModel-55d0c41e.toml b/manifests/sepolia/base/models/flippyflop-ERC20AllowanceModel-55d0c41e.toml new file mode 100644 index 0000000..616e421 --- /dev/null +++ b/manifests/sepolia/base/models/flippyflop-ERC20AllowanceModel-55d0c41e.toml @@ -0,0 +1,27 @@ +kind = "DojoModel" +class_hash = "0x491a48fb74ba9e09baa7cd0c7b518557a4c422b85bb7a72782a98ab8c89bcf2" +original_class_hash = "0x491a48fb74ba9e09baa7cd0c7b518557a4c422b85bb7a72782a98ab8c89bcf2" +abi = "manifests/sepolia/base/abis/models/flippyflop-ERC20AllowanceModel-55d0c41e.json" +tag = "flippyflop-ERC20AllowanceModel" +qualified_path = "origami_token::components::token::erc20::erc20_allowance::erc_20_allowance_model" +manifest_name = "flippyflop-ERC20AllowanceModel-55d0c41e" + +[[members]] +name = "token" +type = "ContractAddress" +key = true + +[[members]] +name = "owner" +type = "ContractAddress" +key = true + +[[members]] +name = "spender" +type = "ContractAddress" +key = true + +[[members]] +name = "amount" +type = "u256" +key = false diff --git a/manifests/sepolia/base/models/flippyflop-ERC20BalanceModel-7866fe9f.toml b/manifests/sepolia/base/models/flippyflop-ERC20BalanceModel-7866fe9f.toml new file mode 100644 index 0000000..4f1ae6e --- /dev/null +++ b/manifests/sepolia/base/models/flippyflop-ERC20BalanceModel-7866fe9f.toml @@ -0,0 +1,22 @@ +kind = "DojoModel" +class_hash = "0x45f6ca7de5a298e2de95705cafee47fbee607c06f8791992ad3ded1d25f25cf" +original_class_hash = "0x45f6ca7de5a298e2de95705cafee47fbee607c06f8791992ad3ded1d25f25cf" +abi = "manifests/sepolia/base/abis/models/flippyflop-ERC20BalanceModel-7866fe9f.json" +tag = "flippyflop-ERC20BalanceModel" +qualified_path = "origami_token::components::token::erc20::erc20_balance::erc_20_balance_model" +manifest_name = "flippyflop-ERC20BalanceModel-7866fe9f" + +[[members]] +name = "token" +type = "ContractAddress" +key = true + +[[members]] +name = "account" +type = "ContractAddress" +key = true + +[[members]] +name = "amount" +type = "u256" +key = false diff --git a/manifests/sepolia/base/models/flippyflop-ERC20BridgeableModel-1ad0a3e6.toml b/manifests/sepolia/base/models/flippyflop-ERC20BridgeableModel-1ad0a3e6.toml new file mode 100644 index 0000000..e74bb45 --- /dev/null +++ b/manifests/sepolia/base/models/flippyflop-ERC20BridgeableModel-1ad0a3e6.toml @@ -0,0 +1,17 @@ +kind = "DojoModel" +class_hash = "0x4f60ae83d8ae292f332022f258e627e52e113cb5377ec9b01dc3912dae63c42" +original_class_hash = "0x4f60ae83d8ae292f332022f258e627e52e113cb5377ec9b01dc3912dae63c42" +abi = "manifests/sepolia/base/abis/models/flippyflop-ERC20BridgeableModel-1ad0a3e6.json" +tag = "flippyflop-ERC20BridgeableModel" +qualified_path = "flippyflop::tokens::flip::erc_20_bridgeable_model" +manifest_name = "flippyflop-ERC20BridgeableModel-1ad0a3e6" + +[[members]] +name = "token" +type = "ContractAddress" +key = true + +[[members]] +name = "l2_bridge_address" +type = "ContractAddress" +key = false diff --git a/manifests/sepolia/base/models/flippyflop-ERC20MetadataModel-1fc3dc07.toml b/manifests/sepolia/base/models/flippyflop-ERC20MetadataModel-1fc3dc07.toml new file mode 100644 index 0000000..db73935 --- /dev/null +++ b/manifests/sepolia/base/models/flippyflop-ERC20MetadataModel-1fc3dc07.toml @@ -0,0 +1,32 @@ +kind = "DojoModel" +class_hash = "0x4ba53f974c845d0048f7921668d9da6cf864ef5b79760c4d3b43c34b58ecc7c" +original_class_hash = "0x4ba53f974c845d0048f7921668d9da6cf864ef5b79760c4d3b43c34b58ecc7c" +abi = "manifests/sepolia/base/abis/models/flippyflop-ERC20MetadataModel-1fc3dc07.json" +tag = "flippyflop-ERC20MetadataModel" +qualified_path = "origami_token::components::token::erc20::erc20_metadata::erc_20_metadata_model" +manifest_name = "flippyflop-ERC20MetadataModel-1fc3dc07" + +[[members]] +name = "token" +type = "ContractAddress" +key = true + +[[members]] +name = "name" +type = "ByteArray" +key = false + +[[members]] +name = "symbol" +type = "ByteArray" +key = false + +[[members]] +name = "decimals" +type = "u8" +key = false + +[[members]] +name = "total_supply" +type = "u256" +key = false diff --git a/manifests/sepolia/base/models/flippyflop-Game-54c54faf.toml b/manifests/sepolia/base/models/flippyflop-Game-54c54faf.toml new file mode 100644 index 0000000..f8177a6 --- /dev/null +++ b/manifests/sepolia/base/models/flippyflop-Game-54c54faf.toml @@ -0,0 +1,17 @@ +kind = "DojoModel" +class_hash = "0x1bdb38d9c7364a47133d55ff8e304bdfd79e7f41db50ebbe9305daf9722f2eb" +original_class_hash = "0x1bdb38d9c7364a47133d55ff8e304bdfd79e7f41db50ebbe9305daf9722f2eb" +abi = "manifests/sepolia/base/abis/models/flippyflop-Game-54c54faf.json" +tag = "flippyflop-Game" +qualified_path = "flippyflop::models::game" +manifest_name = "flippyflop-Game-54c54faf" + +[[members]] +name = "id" +type = "u32" +key = true + +[[members]] +name = "is_locked" +type = "bool" +key = false diff --git a/manifests/sepolia/base/models/flippyflop-InitializableModel-4239d2f3.toml b/manifests/sepolia/base/models/flippyflop-InitializableModel-4239d2f3.toml new file mode 100644 index 0000000..a0a954c --- /dev/null +++ b/manifests/sepolia/base/models/flippyflop-InitializableModel-4239d2f3.toml @@ -0,0 +1,17 @@ +kind = "DojoModel" +class_hash = "0x69800345431696738834bc1aa3ade287b67e44391138f473748fbbd4c95bd9a" +original_class_hash = "0x69800345431696738834bc1aa3ade287b67e44391138f473748fbbd4c95bd9a" +abi = "manifests/sepolia/base/abis/models/flippyflop-InitializableModel-4239d2f3.json" +tag = "flippyflop-InitializableModel" +qualified_path = "origami_token::components::security::initializable::initializable_model" +manifest_name = "flippyflop-InitializableModel-4239d2f3" + +[[members]] +name = "token" +type = "ContractAddress" +key = true + +[[members]] +name = "initialized" +type = "bool" +key = false diff --git a/manifests/sepolia/base/models/flippyflop-Tile-61fb9291.toml b/manifests/sepolia/base/models/flippyflop-Tile-61fb9291.toml new file mode 100644 index 0000000..59c5fa6 --- /dev/null +++ b/manifests/sepolia/base/models/flippyflop-Tile-61fb9291.toml @@ -0,0 +1,22 @@ +kind = "DojoModel" +class_hash = "0x4a4abfcb39d8c9935eaf1c96eda1ee3df8d448992e11a58fb3bc62821a14d20" +original_class_hash = "0x4a4abfcb39d8c9935eaf1c96eda1ee3df8d448992e11a58fb3bc62821a14d20" +abi = "manifests/sepolia/base/abis/models/flippyflop-Tile-61fb9291.json" +tag = "flippyflop-Tile" +qualified_path = "flippyflop::models::tile" +manifest_name = "flippyflop-Tile-61fb9291" + +[[members]] +name = "x" +type = "u32" +key = true + +[[members]] +name = "y" +type = "u32" +key = true + +[[members]] +name = "flipped" +type = "felt252" +key = false diff --git a/manifests/sepolia/base/models/flippyflop-User-25ca4606.toml b/manifests/sepolia/base/models/flippyflop-User-25ca4606.toml new file mode 100644 index 0000000..259509b --- /dev/null +++ b/manifests/sepolia/base/models/flippyflop-User-25ca4606.toml @@ -0,0 +1,27 @@ +kind = "DojoModel" +class_hash = "0x69a62266a511f2937f5c08976de5b8a2455acbe622bc8d6060616282832eb66" +original_class_hash = "0x69a62266a511f2937f5c08976de5b8a2455acbe622bc8d6060616282832eb66" +abi = "manifests/sepolia/base/abis/models/flippyflop-User-25ca4606.json" +tag = "flippyflop-User" +qualified_path = "flippyflop::models::user" +manifest_name = "flippyflop-User-25ca4606" + +[[members]] +name = "identity" +type = "ContractAddress" +key = true + +[[members]] +name = "last_message" +type = "ByteArray" +key = false + +[[members]] +name = "hovering_tile_x" +type = "u32" +key = false + +[[members]] +name = "hovering_tile_y" +type = "u32" +key = false diff --git a/src/models.cairo b/src/models.cairo index fa7ead5..61bab72 100644 --- a/src/models.cairo +++ b/src/models.cairo @@ -22,32 +22,32 @@ pub struct Tile { #[derive(Serde, Copy, Drop, Introspect, PartialEq)] enum PowerUp { None: (), - Empty: (), + Lock: (), Multiplier: u8, } trait PowerUpTrait { - fn probability(self: PowerUp) -> u32; + fn cumulative_probability(self: PowerUp) -> u32; } impl PowerUpImpl of PowerUpTrait { - fn probability(self: PowerUp) -> u32 { + fn cumulative_probability(self: PowerUp) -> u32 { match self { - PowerUp::None => 996858, // 99.6858% - PowerUp::Empty => 1500, // 0.1500% + PowerUp::None => 1000000, // 100% (cumulative) + PowerUp::Lock => 3142, // 0.1642 + 0.1500 = 0.3142% (cumulative) PowerUp::Multiplier(val) => { if val == 2 { - 1000 // 0.1000% + 1642 // 0.0642% + 0.1000% = 0.1642% (cumulative) } else if val == 4 { - 500 // 0.0500% + 642 // 0.0142% + 0.0500% = 0.0642% (cumulative) } else if val == 8 { - 125 // 0.0125% + 142 // 0.0017% + 0.0125% = 0.0142% (cumulative) } else if val == 16 { - 12 // 0.0012% + 17 // 0.0005% + 0.0012% = 0.0017% (cumulative) } else if val == 32 { - 5 // 0.0005% + 5 // 0.0005% } else { - 0 // Invalid multiplier + 0 } }, } diff --git a/src/packing.cairo b/src/packing.cairo index 2034078..0ebdee1 100644 --- a/src/packing.cairo +++ b/src/packing.cairo @@ -6,7 +6,7 @@ fn pack_flipped_data(address: felt252, powerup: PowerUp) -> felt252 { let address_bits: u256 = address.into(); let (powerup_type, powerup_data) = match powerup { PowerUp::None => (0_u256, 0_u256), - PowerUp::Empty => (1_u256, 0_u256), + PowerUp::Lock => (1_u256, 0_u256), PowerUp::Multiplier(multiplier) => (2_u256, multiplier.into()), }; @@ -26,7 +26,7 @@ fn unpack_flipped_data(flipped: felt252) -> (felt252, PowerUp) { let powerup = match powerup_type { 0 => PowerUp::None, - 1 => PowerUp::Empty, + 1 => PowerUp::Lock, 2 => PowerUp::Multiplier(powerup_data.try_into().unwrap()), _ => PowerUp::None, }; diff --git a/src/systems/actions.cairo b/src/systems/actions.cairo index ad19ce8..984d1a5 100644 --- a/src/systems/actions.cairo +++ b/src/systems/actions.cairo @@ -21,20 +21,20 @@ mod actions { fn get_random_powerup(seed: felt252) -> PowerUp { let tx_hash = get_tx_info().transaction_hash; let hash: u256 = poseidon_hash_span(array![seed, tx_hash].span()).into(); - let random_value: u32 = (hash % 10000).try_into().unwrap(); + let random_value: u32 = (hash % 1000000).try_into().unwrap(); - if random_value < PowerUp::Multiplier(32).probability() { + if random_value < PowerUp::Multiplier(32).cumulative_probability() { PowerUp::Multiplier(32) - } else if random_value < PowerUp::Multiplier(16).probability() { + } else if random_value < PowerUp::Multiplier(16).cumulative_probability() { PowerUp::Multiplier(16) - } else if random_value < PowerUp::Multiplier(8).probability() { + } else if random_value < PowerUp::Multiplier(8).cumulative_probability() { PowerUp::Multiplier(8) - } else if random_value < PowerUp::Multiplier(4).probability() { + } else if random_value < PowerUp::Multiplier(4).cumulative_probability() { PowerUp::Multiplier(4) - } else if random_value < PowerUp::Multiplier(2).probability() { + } else if random_value < PowerUp::Multiplier(2).cumulative_probability() { PowerUp::Multiplier(2) - } else if random_value < PowerUp::Empty.probability() { - PowerUp::Empty + } else if random_value < PowerUp::Lock.cumulative_probability() { + PowerUp::Lock } else { PowerUp::None }