Ver código fonte

feat(target_chains/starknet): create project

Pavel Strakhov 1 ano atrás
pai
commit
2c7dfa92dd

+ 1 - 0
target_chains/starknet/contracts/.gitignore

@@ -0,0 +1 @@
+target

+ 6 - 0
target_chains/starknet/contracts/Scarb.lock

@@ -0,0 +1,6 @@
+# Code generated by scarb DO NOT EDIT.
+version = 1
+
+[[package]]
+name = "pyth"
+version = "0.1.0"

+ 9 - 0
target_chains/starknet/contracts/Scarb.toml

@@ -0,0 +1,9 @@
+[package]
+name = "pyth"
+version = "0.1.0"
+edition = "2023_11"
+
+[dependencies]
+starknet = ">=2.5.4"
+
+[[target.starknet-contract]]

+ 2 - 0
target_chains/starknet/contracts/src/lib.cairo

@@ -0,0 +1,2 @@
+mod pyth;
+mod wormhole;

+ 29 - 0
target_chains/starknet/contracts/src/pyth.cairo

@@ -0,0 +1,29 @@
+#[starknet::interface]
+trait IPyth<T> {
+    fn get_name(self: @T) -> felt252;
+    fn set_name(ref self: T, name: felt252);
+}
+
+#[starknet::contract]
+mod pyth {
+    #[storage]
+    struct Storage {
+        name: felt252,
+    }
+
+    #[constructor]
+    fn constructor(ref self: ContractState, name: felt252) {
+        self.name.write(name);
+    }
+
+    #[abi(embed_v0)]
+    impl HelloImpl of super::IPyth<ContractState> {
+        fn get_name(self: @ContractState) -> felt252 {
+            self.name.read() + 1
+        }
+
+        fn set_name(ref self: ContractState, name: felt252) {
+            self.name.write(name - 1);
+        }
+    }
+}

+ 29 - 0
target_chains/starknet/contracts/src/wormhole.cairo

@@ -0,0 +1,29 @@
+#[starknet::interface]
+trait IWormhole<T> {
+    fn get_value(self: @T) -> felt252;
+    fn set_value(ref self: T, name: felt252);
+}
+
+#[starknet::contract]
+mod wormhole {
+    #[storage]
+    struct Storage {
+        name: felt252,
+    }
+
+    #[constructor]
+    fn constructor(ref self: ContractState, name: felt252) {
+        self.name.write(name);
+    }
+
+    #[abi(embed_v0)]
+    impl HelloImpl of super::IWormhole<ContractState> {
+        fn get_value(self: @ContractState) -> felt252 {
+            self.name.read() + 2
+        }
+
+        fn set_value(ref self: ContractState, name: felt252) {
+            self.name.write(name - 2);
+        }
+    }
+}