MCPcopy Create free account
hub / github.com/DEROFDN/Engram / sendMessage

Function sendMessage

functions.go:1627–1756  ·  view source on GitHub ↗

Send a private message to another account

(m string, s string, r string)

Source from the content-addressed store, hash-verified

1625
1626// Send a private message to another account
1627func sendMessage(m string, s string, r string) (txid crypto.Hash, err error) {
1628 if m == "" {
1629 return
1630 }
1631
1632 mapAddress := ""
1633 a, err := globals.ParseValidateAddress(r)
1634 if err != nil {
1635 //mapAddress, err = engram.Disk.NameToAddress(r)
1636 mapAddress, err = checkUsername(r, -1)
1637 if err != nil {
1638 return
1639 }
1640 a, err = globals.ParseValidateAddress(mapAddress)
1641 if err != nil {
1642 return
1643 }
1644 }
1645
1646 if s == "" {
1647 s = engram.Disk.GetAddress().String()
1648 }
1649
1650 amount, err := globals.ParseAmount("0.00001")
1651 if err != nil {
1652 //logger.Error(err, "Err parsing amount\n")
1653 return
1654 }
1655
1656 var arguments = rpc.Arguments{
1657 {Name: rpc.RPC_DESTINATION_PORT, DataType: rpc.DataUint64, Value: uint64(1337)},
1658 {Name: rpc.RPC_VALUE_TRANSFER, DataType: rpc.DataUint64, Value: amount},
1659 {Name: rpc.RPC_EXPIRY, DataType: rpc.DataTime, Value: time.Now().Add(time.Hour).UTC()},
1660 {Name: rpc.RPC_COMMENT, DataType: rpc.DataString, Value: m},
1661 {Name: rpc.RPC_NEEDS_REPLYBACK_ADDRESS, DataType: rpc.DataString, Value: s},
1662 }
1663
1664 if a.IsIntegratedAddress() {
1665 if a.Arguments.Validate_Arguments() != nil {
1666 return
1667 }
1668
1669 if !a.Arguments.Has(rpc.RPC_DESTINATION_PORT, rpc.DataUint64) {
1670 logger.Errorf("[Send Message] Integrated Address does not contain destination port.\n")
1671 return
1672 }
1673
1674 arguments = append(arguments, rpc.Argument{Name: rpc.RPC_DESTINATION_PORT, DataType: rpc.DataUint64, Value: a.Arguments.Value(rpc.RPC_DESTINATION_PORT, rpc.DataUint64).(uint64)})
1675
1676 if a.Arguments.Has(rpc.RPC_EXPIRY, rpc.DataTime) {
1677 if a.Arguments.Value(rpc.RPC_EXPIRY, rpc.DataTime).(time.Time).Before(time.Now().UTC()) {
1678 logger.Errorf("[Send Message] This address has expired on %x\n", a.Arguments.Value(rpc.RPC_EXPIRY, rpc.DataTime))
1679 return
1680 } else {
1681 logger.Warnf("[Send Message] This address will expire on %x\n", a.Arguments.Value(rpc.RPC_EXPIRY, rpc.DataTime))
1682 }
1683 }
1684

Callers 1

layoutPMFunction · 0.85

Calls 1

checkUsernameFunction · 0.85

Tested by

no test coverage detected