コード例 #1
0
ファイル: compose.go プロジェクト: FactomProject/fctwallet
func ComposeEntrySubmit(name string, data []byte) ([]byte, error) {
	type entrysubmit struct {
		EntryCommit json.RawMessage
		EntryReveal json.RawMessage
	}

	e := factom.NewEntry()
	if err := e.UnmarshalJSON(data); err != nil {
		return nil, err
	}

	sub := new(entrysubmit)
	we := factoidState.GetDB().GetRaw([]byte(fct.W_NAME), []byte(name))
	switch we.(type) {
	case wallet.IWalletEntry:
		pub := new([fct.ADDRESS_LENGTH]byte)
		copy(pub[:], we.(wallet.IWalletEntry).GetKey(0))
		pri := new([fct.PRIVATE_LENGTH]byte)
		copy(pri[:], we.(wallet.IWalletEntry).GetPrivKey(0))

		if j, err := factom.ComposeEntryCommit(pub, pri, e); err != nil {
			return nil, err
		} else {
			sub.EntryCommit = j
		}

		if j, err := factom.ComposeEntryReveal(e); err != nil {
			return nil, err
		} else {
			sub.EntryReveal = j
		}

	default:
		return nil, fmt.Errorf("Cannot use non Entry Credit Address for Entry Commit")
	}

	return json.Marshal(sub)
}
コード例 #2
0
ファイル: addentry.go プロジェクト: FactomProject/factom-cli2
			errorln(err)
			return
		}

		// check ec address balance
		balance, err := factom.GetECBalance(ecpub)
		if err != nil {
			errorln(err)
			return
		}
		if balance == 0 {
			errorln("Entry Credit balance is zero")
			return
		}

		j, err := factom.ComposeEntryCommit(e, ec)
		if err != nil {
			errorln(err)
			return
		}
		fmt.Println(j)

		j, err = factom.ComposeEntryReveal(e)
		if err != nil {
			errorln(err)
			return
		}
		fmt.Println(j)
	}
	help.Add("composeentry", cmd)
	return cmd