Skip to content

Commit

Permalink
mega wip
Browse files Browse the repository at this point in the history
  • Loading branch information
billettc committed Jul 30, 2024
1 parent d82c593 commit 1156959
Show file tree
Hide file tree
Showing 10 changed files with 56,901 additions and 101,275 deletions.
85 changes: 48 additions & 37 deletions generator/generator.go
Original file line number Diff line number Diff line change
Expand Up @@ -129,30 +129,6 @@ func NewWrapItems(a ...any) []WrapItem {

return items
}
func (g *Generator) VariantChildIds(id int64) []string {
var out []string
ttype := g.Metadata.AsMetadataV14.EfficientLookup[id]
variant := ttype.Def.Variant
for _, v := range variant.Variants {
if len(v.Fields) == 0 {
return []string{"[]int64{}"}
}
var o []int64 //child of 94
for _, f := range v.Fields {
o = append(o, f.Type.Int64())
}
s := "[]int64{"
for _, v := range o {
s += fmt.Sprintf("%v, ", v)
}
s = s[:len(s)-2]
s += "}"

out = append(out, s)
}

return out
}

func (g *Generator) Wrap(items []WrapItem) map[any]any {
out := make(map[any]any)
Expand All @@ -164,6 +140,11 @@ func (g *Generator) Wrap(items []WrapItem) map[any]any {
}

func (g *Generator) TypeForField(field protobuf.Lookupable) string {

if field.GetName() == "sp_arithmetic_per_things_PerU16" {
fmt.Println("")
}

idx := field.GetLookupId()
if idx == math.MaxInt64 {
return "registry.DecodedFields"
Expand Down Expand Up @@ -204,7 +185,7 @@ func (g *Generator) TypeForField(field protobuf.Lookupable) string {
case types.IsStr:
return "types.Text"
case types.IsBool:
return "types.Bool"
return "bool"
}

//case ttype.Def.IsSequence:
Expand All @@ -227,15 +208,45 @@ func (g *Generator) CompactChildType(field protobuf.Field) types.Si1TypeDef {
return ttype.Def
}

//func (g *Generator) CompactToValue(field protobuf.Field) string {
// idx := field.GetLookupId()
// ttype := g.Metadata.AsMetadataV14.EfficientLookup[idx]
// childType := g.Metadata.AsMetadataV14.EfficientLookup[]
//
// switch {
// case childType.Def.:
//
// }
//
// return
//}
func (g *Generator) LookupType(idx int64) types.Si1TypeDef {
if idx == math.MaxInt64 {
return types.Si1TypeDef{}
}
ttype := g.Metadata.AsMetadataV14.EfficientLookup[idx]
return ttype.Def
}

func (g *Generator) FuncNameForMessage(msg *protobuf.Message) string {
return "To_" + msg.FullTypeName()
}
func (g *Generator) FuncNameForOneOf(msg *protobuf.Message, field protobuf.Field) string {
return "Set_OneOf_" + msg.FullTypeName() + "_" + field.GetName()
}

func (g *Generator) FuncNameForOptional(msg *protobuf.Message, field protobuf.Field) string {
return "To_Optional_" + msg.FullTypeName() + "_" + field.GetName()
}

func (g *Generator) FuncNameForRepeated(msg *protobuf.Message, field protobuf.Field) string {
return "To_Repeated_" + msg.FullTypeName() + "_" + field.GetName()
}

func (g *Generator) FuncNameForField(msg *protobuf.Message, field protobuf.Field) string {
return "To_" + msg.FullTypeName() + "_" + field.GetName()
}

func (g *Generator) FuncNameForPrimitive(msg *protobuf.Message, field protobuf.Field) string {
if field.IsOptional() {
return "To_Optional_" + field.GetType()
}

if field.IsRepeated() {
return "To_Repeated_" + field.GetType()
}

return "To_" + field.GetType()
}

func (g *Generator) ReturnTypeForOneOf(msg *protobuf.Message, field protobuf.Field) string {
return "pbgear." + msg.FullTypeName() + "_" + field.GetType()
}
7 changes: 7 additions & 0 deletions generator/generator_test.go
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package generator

import (
"fmt"
"sort"
"testing"

Expand All @@ -10,6 +11,8 @@ import (
)

func Test_Generator(t *testing.T) {

fmt.Println("Test_Generator")
gearClients := firecoreRPC.NewClients[*rpc.Client]()
gearClient, err := rpc.NewClient("https://vara-mainnet.public.blastapi.io")
require.NoError(t, err)
Expand All @@ -28,5 +31,9 @@ func Test_Generator(t *testing.T) {

gen := NewGenerator("../templates/gen_types.go.gotmpl", messages, metadata)
err = gen.Generate()
if err != nil {
fmt.Println(err)
}
require.NoError(t, err)
fmt.Println("All done!")
}
31 changes: 16 additions & 15 deletions main.go
Original file line number Diff line number Diff line change
Expand Up @@ -4,10 +4,9 @@ import (
"encoding/json"
"fmt"
"log"
"reflect"
"strings"

gen_types "github.com/streamingfast/firehose-gear/templates"

gsrpc "github.com/centrifuge/go-substrate-rpc-client/v4"
"github.com/centrifuge/go-substrate-rpc-client/v4/registry"
exec "github.com/centrifuge/go-substrate-rpc-client/v4/registry/exec"
Expand All @@ -16,10 +15,13 @@ import (
"github.com/centrifuge/go-substrate-rpc-client/v4/rpc/chain/generic"
"github.com/centrifuge/go-substrate-rpc-client/v4/types"
"github.com/gobeam/stringy"
gen_types "github.com/streamingfast/firehose-gear/templates"
)

func main() {
blockHash, err := types.NewHashFromHexString("0xdacec8ff307e047ff4dfa08a1a59dea0326b12902658e52de310a4214c04686c")
//blockHash, err := types.NewHashFromHexString("0xdacec8ff307e047ff4dfa08a1a59dea0326b12902658e52de310a4214c04686c")
//blockHash, err := types.NewHashFromHexString("0xce88000c2153e31e367b800723aa3d78c537834e20439b2eb4c5db3870cd8e4c")
blockHash, err := types.NewHashFromHexString("0xafd423f4bebb20864e535197b732c343ba72bb446574c9ceb117bf4f721098da")
if err != nil {
log.Fatalf("Failed to create block hash: %v", err)
}
Expand Down Expand Up @@ -75,18 +77,17 @@ func main() {
pallet := parts[0]
call := parts[1]
call = stringy.New(call).PascalCase().Get()
structName := pallet + "_" + call + "_Call"

fmt.Println("structName")
switch structName {
case "Timestamp_Set_Call":
fmt.Println(call)
case "Balances_TransferKeepAlive_Call":
gen_types.To_Balances_TransferKeepAliveCall(extrinsic.CallFields)
fmt.Println(call)
case "Staking_Validate_Call":
gen_types.To_Staking_ValidateCall(extrinsic.CallFields)
fmt.Println(call)

structName := pallet + "_" + call + "Call"
funcName := "To_" + structName

if fn, found := gen_types.FuncMap[funcName]; found {
o := fn.Call([]reflect.Value{reflect.ValueOf(extrinsic.CallFields)})
fmt.Println(funcName+":", o)
continue
}

fmt.Println("WTF:", funcName)

}
}
Loading

0 comments on commit 1156959

Please sign in to comment.