示例#1
0
// processBuyEntryCredit validates the MsgCommitChain and adds it to processlist
func processBuyEntryCredit(msg *wire.MsgFactoidTX) error {
	// Update the credit balance in memory
	for _, v := range msg.Transaction.GetECOutputs() {
		pub := new([32]byte)
		copy(pub[:], v.GetAddress().Bytes())

		cred := int32(v.GetAmount() / uint64(FactoshisPerCredit))

		eCreditMap[string(pub[:])] += cred

	}

	h, _ := msg.Sha()
	if plMgr.IsMyPListExceedingLimit() {
		procLog.Warning("Exceeding MyProcessList size limit!")
		return fMemPool.addOrphanMsg(msg, &h)
	}

	if _, err := plMgr.AddMyProcessListItem(msg, &h, wire.ACK_FACTOID_TX); err != nil {
		return err
	}

	return nil
}