Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Create SimpleCall Example #256

Merged
merged 1 commit into from
Aug 1, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
19 changes: 2 additions & 17 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -51,29 +51,14 @@ operations on the wallets. The package has excellent documentation for a smooth

### Run Examples

***starkcurve***
***starknet simpleCall***

```sh
cd examples/curve
cd examples/simpleCall
go mod tidy
go run main.go
```

***starknet contract***

```sh
cd examples/contract
go mod tidy
go run main.go
```

***starknet account***

```sh
cd examples/account
go mod tidy
go run main.go
```

### RPC

Expand Down
2 changes: 2 additions & 0 deletions examples/simpleCall/.env.template
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
# use this variable to change the RPC base URL
#INTEGRATION_BASE=http_insert_end_point
9 changes: 9 additions & 0 deletions examples/simpleCall/ReadMe.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
Note: To run this example, you need a mainnet endpoint.

Steps to run this example on mainnet:
1. rename ".env.template" to ".env.mainnet"
2. uncomment, and set INTEGRATION_BASE to the mainnet url
3. make sure you are in the "simpleCall" directory
4. execute "go mod tidy"
5. execute "go run main.go"

35 changes: 35 additions & 0 deletions examples/simpleCall/go.mod
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
module account

go 1.18

require (
github.com/NethermindEth/starknet.go v0.2.1-0.20220620163912-1db2ca279608
github.com/ethereum/go-ethereum v1.10.26
github.com/joho/godotenv v1.4.0
)

replace github.com/NethermindEth/starknet.go => ../../

require (
github.com/NethermindEth/juno v0.3.1 // indirect
github.com/StackExchange/wmi v0.0.0-20180116203802-5d049714c4a6 // indirect
github.com/bits-and-blooms/bitset v1.7.0 // indirect
github.com/consensys/gnark-crypto v0.11.0 // indirect
github.com/davecgh/go-spew v1.1.1 // indirect
github.com/deckarep/golang-set v1.8.0 // indirect
github.com/fxamacker/cbor/v2 v2.4.0 // indirect
github.com/go-ole/go-ole v1.2.1 // indirect
github.com/go-stack/stack v1.8.0 // indirect
github.com/gorilla/websocket v1.4.2 // indirect
github.com/pmezard/go-difflib v1.0.0 // indirect
github.com/shirou/gopsutil v3.21.4-0.20210419000835-c7a38de76ee5+incompatible // indirect
github.com/stretchr/testify v1.8.1 // indirect
github.com/test-go/testify v1.1.4 // indirect
github.com/tklauser/go-sysconf v0.3.5 // indirect
github.com/tklauser/numcpus v0.2.2 // indirect
github.com/x448/float16 v0.8.4 // indirect
golang.org/x/crypto v0.2.0 // indirect
golang.org/x/sys v0.3.0 // indirect
gopkg.in/natefinch/npipe.v2 v2.0.0-20160621034901-c1b8fa8bdcce // indirect
gopkg.in/yaml.v3 v3.0.1 // indirect
)
6 changes: 6 additions & 0 deletions examples/simpleCall/go.work
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
go 1.18

use (
.
../..
)
51 changes: 51 additions & 0 deletions examples/simpleCall/main.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
package main

import (
"context"
"fmt"
"os"

"github.com/NethermindEth/starknet.go/rpc"
"github.com/NethermindEth/starknet.go/types"
"github.com/NethermindEth/starknet.go/utils"
ethrpc "github.com/ethereum/go-ethereum/rpc"
"github.com/joho/godotenv"
)

var (
name string = "mainnet"
someMainnetContract string = "0x024dE48Fb640DB135B3dc85ef0FE2789e032FbCA2fca54E58aB8dB93ca22F767"
contractMethod string = "getName"
)

func main() {
fmt.Println("Starting simpeCall example")
godotenv.Load(fmt.Sprintf(".env.%s", name))
base := os.Getenv("INTEGRATION_BASE")
c, err := ethrpc.DialContext(context.Background(), base)
if err != nil {
fmt.Println("Failed to connect to the client, did you specify the url in the .env.mainnet?")
panic(err)
}
clientv02 := rpc.NewProvider(c)
fmt.Println("Established connection with the client")

contractAddress, err := utils.HexToFelt(someMainnetContract)
if err != nil {
panic(err)
}

// Make read contract call
tx := rpc.FunctionCall{
ContractAddress: contractAddress,
EntryPointSelector: types.GetSelectorFromNameFelt(contractMethod),
}

fmt.Println("Making Call() request")
callResp, err := clientv02.Call(context.Background(), tx, rpc.BlockID{Tag: "latest"})
if err != nil {
panic(err.Error())
}

fmt.Println(fmt.Sprintf("Response to %s():%s ", contractMethod, callResp[0]))
}
Loading