Send a private message to another account
(m string, s string, r string)
| 1625 | |
| 1626 | // Send a private message to another account |
| 1627 | func 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 |
no test coverage detected