Skip to content

Commit d4c17b0

Browse files
authored
Switch to base64 encoding for fiat onramp messaging memo value (#84)
1 parent 663f3bd commit d4c17b0

File tree

2 files changed

+16
-2
lines changed

2 files changed

+16
-2
lines changed

pkg/code/thirdparty/message.go

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ package thirdparty
33
import (
44
"crypto/ed25519"
55
"crypto/rand"
6+
"encoding/base64"
67
"encoding/binary"
78
"strings"
89
"time"
@@ -299,14 +300,14 @@ func (m *FiatOnrampPurchaseMessage) Encode() ([]byte, error) {
299300
buffer = append(buffer, m.Nonce[:]...)
300301

301302
// Because memo requires UTF-8, and this is more space efficient than base64
302-
return base122.Encode(buffer)
303+
return []byte(base64.StdEncoding.EncodeToString(buffer)), nil
303304
}
304305

305306
// DecodeFiatOnrampPurchaseMessage attempts to decode a byte payload into a FiatOnrampPurchaseMessage
306307
func DecodeFiatOnrampPurchaseMessage(payload []byte) (*FiatOnrampPurchaseMessage, error) {
307308
errInvalidPayload := errors.New("invalid payload")
308309

309-
buffer, err := base122.Decode(payload)
310+
buffer, err := base64.StdEncoding.DecodeString(string(payload))
310311
if err != nil {
311312
return nil, errors.Wrap(err, errInvalidPayload.Error())
312313
}

pkg/code/thirdparty/message_test.go

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -73,3 +73,16 @@ func TestFiatOnrampPurchaseMessage_RoundTrip(t *testing.T) {
7373
assert.Equal(t, blockchainMessage.Flags, decodedBlockchainMessage.Flags)
7474
assert.Equal(t, blockchainMessage.Nonce, decodedBlockchainMessage.Nonce)
7575
}
76+
77+
func TestFiatOnrampPurchase_CrossPlatform(t *testing.T) {
78+
nonce, err := uuid.Parse("c24a3bf2-ad4f-4756-944e-81948ff10882")
79+
require.NoError(t, err)
80+
81+
msg, err := NewFiatOnrampPurchaseMessage(nonce)
82+
require.NoError(t, err)
83+
84+
expected := "AQAAAAAAwko78q1PR1aUToGUj/EIgg=="
85+
actual, err := msg.Encode()
86+
require.NoError(t, err)
87+
assert.Equal(t, expected, string(actual))
88+
}

0 commit comments

Comments
 (0)