本文整理汇总了Golang中github.com/FactomProject/factoid.ITransaction.MarshalBinary方法的典型用法代码示例。如果您正苦于以下问题:Golang ITransaction.MarshalBinary方法的具体用法?Golang ITransaction.MarshalBinary怎么用?Golang ITransaction.MarshalBinary使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类github.com/FactomProject/factoid.ITransaction
的用法示例。
在下文中一共展示了ITransaction.MarshalBinary方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。
示例1: MarshalTrans
func (b *FBlock) MarshalTrans() ([]byte, error) {
var out bytes.Buffer
var periodMark = 0
var i int
var trans fct.ITransaction
for i, trans = range b.Transactions {
for periodMark < len(b.endOfPeriod) &&
b.endOfPeriod[periodMark] > 0 && // Ignore if markers are not set
i == b.endOfPeriod[periodMark] {
out.WriteByte(fct.MARKER)
periodMark++
}
data, err := trans.MarshalBinary()
if err != nil {
return nil, err
}
out.Write(data)
if err != nil {
return nil, err
}
}
for periodMark < len(b.endOfPeriod) {
out.WriteByte(fct.MARKER)
periodMark++
}
return out.Bytes(), nil
}
示例2: FactoidSubmit
// FactoidSubmit assumes the caller has already validated and signed
// the transaction. No checking is done, it is just submitted to Factom.
func FactoidSubmit(trans fct.ITransaction) (err error) {
var data []byte
if data, err = trans.MarshalBinary(); err != nil {
return err
}
transdata := string(hex.EncodeToString(data))
s := struct{ Transaction string }{transdata}
var js []byte
if js, err = json.Marshal(s); err != nil {
return err
}
resp, err := http.Post(
fmt.Sprintf("http://%s/v1/factoid-submit/", ipaddressFD+portNumberFD),
"application/json",
bytes.NewBuffer(js))
if err != nil {
return err
}
body, err := ioutil.ReadAll(resp.Body)
if err != nil {
return err
}
resp.Body.Close()
type rtnStruct struct {
Response string
Success bool
}
rtn := new(rtnStruct)
if err := json.Unmarshal(body, rtn); err != nil {
return err
}
if !rtn.Success {
return fmt.Errorf(rtn.Response)
}
return nil
}