solana-go
solana-go copied to clipboard
[HELP] How to create and a transaction from encoded B64 data?
Hello, I am trying to send a transaction using the serialized transaction data from Jupiter Station's swap api. However upon attempting to create the transaction, I am met with this error.
Error ├─ Signatures[len=1] │ └─ 1111111111111111111111111111111111111111111111111111111111111111 ├─ Message │ ├─ Version: v0 │ ├─ RecentBlockhash: 6tHdHdPrjhgYwJxzBvcgybV8MuAghkgXNjsBCrUXaFGy │ ├─ AccountKeys[len=46] │ │ └─ AccountMetaList: cannot build account meta list without address tables │ ├─ AddressTableLookups[len=3] │ │ ├─ C5h965GSxdRkA6tbcPnpSGWRqr5tiQwwu7n6Pqbdsncg │ │ │ ├─ WritableIndexes: [99 101 100 102 103 158 105] │ │ │ └─ ReadonlyIndexes: [97 104 8 157 106 170 96 167 169] │ │ ├─ Aas9yHSriUKGhwrQ6rZK1YdhMBSFwELCBidj8G9VjD2t │ │ │ ├─ WritableIndexes: [233 231 234 93 99 232] │ │ │ └─ ReadonlyIndexes: [98] │ │ └─ 4qJsnySC9dhAPnso2hQCrEpksKNBk8iyfWsQtWH8pBPx │ │ ├─ WritableIndexes: [18 148 154 151 153 152 156] │ │ └─ ReadonlyIndexes: [150] │ └─ Header │ ├─ NumRequiredSignatures: 1 │ ├─ NumReadonlySignedAccounts: 0 │ └─ NumReadonlyUnsignedAccounts: 7 └─ Instructions[len=8] └─ cannot ResolveInstructionAccounts: cannot build account meta list without address tables
**Here is my code, thank you very much in advance! ** func deserializeTx(serializedTx string) { encoded := "AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAQAJFU+I+Qn61djVg+sxFP3lyLig38CtkssIm2TFg01GzD54Fo87YkHua3xlN3E6/Seygev3oLa7gpPYov6jhtS+y78gCPIj5ascABEYuc1xQoQx8YANrxOiZRUKro4C+rjF5T+51jsvRc6Hs/W4HHEQHDb2JkyYNeVv3fNEnAqSkiFcY9Z4XWMeeLYY4Fj9fbV772KEISDbte1f1azQQ6AGWYuFytGu0xun1MR6WBWzYPsZ4g7vpwEt45e52D/zjjfpT4e1I/p3Gy551653GdDPX3KX0D4dWPXyZvsBemb3XlwHmN1/CHuqpp4C8aKOsXxMVGJ+rqMXLu8/u18oQw0SKPu2UZh1TAP7ekLlePeglgFlnqH/ACLRES7RTZvFGuqZ2bzWG32U1cfLaRtWiYtKYAe1z/IZzlSjmjh/4DiGkM3SyQ+0ezK8pEPmQbXwZ8Tz3O52/YACoT20v0iE4A7D1bTffFhDw/oH+PuBQdZrjAvoAlr/Mt76ZmEw7rDLumhgTwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwZGb+UhFzL/7K26csOb57yM5bvF9xJrLEObOkAAAAAEedVb8jHAbu50xW7OaBUH/bGy3qP0jlECsc2iVrwTjwabiFf+q4GE+2h/Y0YYwDXaxDncGus7VZig8AAAAAABBt324ddloZPZy+FGzut5rBy0he1fWzeROoz1hX7/AKmCl+VE/0RAahO3+mTCz/o+xuFd+JNeAMdBcN6u8BPzfYyXJY9OJInxuz0QKRSODYMLWhOZ2v8QhASOe9jb6fhZtD/6J/XX9kp0wJsfKVh53ksJqzbfyd1RSzIap7OM5ejG+nrzvtutOj1l82qryXQxsbvkwtL24OR8pgIDRS9dYR+xwErmzqwrfpGzPaZBWGHmwcfQEKF+HzJxQds+x/gGCA0ABQLAXBUADQAJA7CtAQAAAAAAEgYABAAPDBABAQwCAAQMAgAAAADh9QUAAAAAEAEEARESBgAIABQMEAEBDjMQEQAEBgoIDxQODhMOIhARIAYfCx4dBwIoIhARFQkXCxYFAwEhIyQYEQkKHBkbGhAlJyYuwSCbM0HWnIEGAwAAABEBZAABEQBkAQIZZAIDAOH1BQAAAACetZ8AAAAAADIAABADBAAAAQkDBTEStYWh0Gt5p9wb/3NKBSbB7YZyNPAf4ub6gOjsxI0DwLHCArPDD3gkTlO0/tiWQPsc6BaaqUbyJPeVPtme7giumdyAtoEFg4WE5IcFhojl4+LtLTpK8gkMMwb14IHXGBMgAG5KTOPBL/AAkfv0EzRH6wQ0MjgxATk="
data, err := base64.StdEncoding.DecodeString()
if err != nil {
panic(err.Error())
}
tx, err := solana.TransactionFromDecoder(bin.NewBinDecoder(data))
}
You need to sign it (replacing the existing signature).
You need to sign it (replacing the existing signature).
Hello, can you provide a code demonstration? I've been struggling for a day.
You need to sign it (replacing the existing signature).
Hey i have the same problem can you help please
I made sing by my private key but it still doesn't work i used method
transaction.Sign(func(key solana.PublicKey) *solana.PrivateKey {
if privateKey.PublicKey().Equals(key) {
return &privateKey
}
return nil
})
In Json looks everything ok
map[string]interface {}{
"accountKeys": []interface {}{
"6f5hDWg4DZjHUHc8S7KgTsz8GjLPS3RZrGaM9WrtRoN8",
"2e5HLJ2Y6v7Mcm4YmTtruMd5UcMNviqPkaEiPa7Z6ZEJ",
"4juZmJUbdaskHpgfMfbCDx3G9EWknmHZNwtVpKbR8LRw",
"ComputeBudget111111111111111111111111111111",
"JUP6LkbZbjS1jKKwapdHNy74zcZ3tLUZoi5QNyVTaV4",
"D8cy77BBepLMngZx6ZukaTff5hCt1HrWyKk3Hnd9oitf",
},
"addressTableLookups": []interface {}{
map[string]interface {}{
"accountKey": "HvnVsdqDaP9e4YgjLqPC883KtPcpMMVe5hmtmWLqpFzX",
"readonlyIndexes": []interface {}{
float64(3),
float64(10),
float64(11),
float64(2),
float64(199),
float64(69),
},
"writableIndexes": []interface {}{
float64(218),
float64(68),
float64(212),
float64(70),
float64(220),
float64(219),
float64(66),
float64(216),
float64(213),
float64(214),
},
},
},
"header": map[string]interface {}{
"numReadonlySignedAccounts": float64(0),
"numReadonlyUnsignedAccounts": float64(3),
"numRequiredSignatures": float64(1),
},
"instructions": []interface {}{
map[string]interface {}{
"accounts": []interface {}{
},
"data": "Jq2LoZ",
"programIdIndex": float64(3),
},
map[string]interface {}{
"accounts": []interface {}{
},
"data": "3VBpcKfAcPzw",
"programIdIndex": float64(3),
},
map[string]interface {}{
"accounts": []interface {}{
float64(16),
float64(0),
float64(1),
float64(2),
float64(4),
float64(20),
float64(4),
float64(5),
float64(4),
float64(19),
float64(16),
float64(8),
float64(18),
float64(14),
float64(13),
float64(15),
float64(17),
float64(11),
float64(7),
float64(12),
float64(6),
float64(9),
float64(10),
float64(21),
float64(1),
float64(2),
float64(0),
},
"data": "PrpFmsY4d26dKbdKMAXs4neMTXMRgKnyC5V9LKxKbYtGBsbd",
"programIdIndex": float64(4),
},
},
"recentBlockhash": "GdJR9hgCP6Lp9uj1Q7QpKeqsJRdhVoKJ98dvVvcPqofd",
}```