本文整理匯總了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
}