From ba6018496f6d49a38aeb315cc8f3db26b2d07b4d Mon Sep 17 00:00:00 2001 From: LixvYang <2690688423@qq.com> Date: Wed, 11 Sep 2024 11:21:27 +0800 Subject: [PATCH 1/4] add InscriptionHash field --- safe_utxo.go | 1 + 1 file changed, 1 insertion(+) diff --git a/safe_utxo.go b/safe_utxo.go index dc7ceb1..820ebe7 100644 --- a/safe_utxo.go +++ b/safe_utxo.go @@ -30,6 +30,7 @@ type ( Amount decimal.Decimal `json:"amount,omitempty"` Mask mixinnet.Key `json:"mask,omitempty"` Keys []mixinnet.Key `json:"keys,omitempty"` + InscriptionHash mixinnet.Hash `json:"inscription_hash,omitempty"` SendersHash string `json:"senders_hash,omitempty"` SendersThreshold uint8 `json:"senders_threshold,omitempty"` Senders []string `json:"senders,omitempty"` From b33fd84882ddc09327c186d99d18aeb91b582736 Mon Sep 17 00:00:00 2001 From: LixvYang <2690688423@qq.com> Date: Sun, 22 Sep 2024 10:53:21 +0800 Subject: [PATCH 2/4] support mixin card msg --- messages.go | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/messages.go b/messages.go index 57ceb06..2b2a60f 100644 --- a/messages.go +++ b/messages.go @@ -100,12 +100,14 @@ type ( } AppCardMessage struct { - AppID string `json:"app_id,omitempty"` - IconURL string `json:"icon_url,omitempty"` - Title string `json:"title,omitempty"` - Description string `json:"description,omitempty"` - Action string `json:"action,omitempty"` - Shareable bool `json:"shareable,omitempty"` + AppID string `json:"app_id,omitempty"` + IconURL string `json:"icon_url,omitempty"` + CoverURL string `json:"cover_url,omitempty"` + Title string `json:"title,omitempty"` + Description string `json:"description,omitempty"` + Action string `json:"action,omitempty"` + Actions AppButtonGroupMessage `json:"actions,omitempty"` + Shareable bool `json:"shareable,omitempty"` } AudioMessage struct { From 75db95b689059ebfb650813cb7d3cc95d270c93b Mon Sep 17 00:00:00 2001 From: LixvYang <2690688423@qq.com> Date: Sun, 31 Aug 2025 11:55:24 +0800 Subject: [PATCH 3/4] feat: [fix mixinnet number] --- mixinnet/number.go | 4 +-- mixinnet/number_test.go | 75 +++++++++++++++++++++++++++++++++++++++++ 2 files changed, 77 insertions(+), 2 deletions(-) create mode 100644 mixinnet/number_test.go diff --git a/mixinnet/number.go b/mixinnet/number.go index a0391e4..ba0978b 100644 --- a/mixinnet/number.go +++ b/mixinnet/number.go @@ -37,7 +37,7 @@ func IntegerFromDecimal(d decimal.Decimal) (v Integer) { if d.Sign() <= 0 { panic(d) } - s := d.Mul(decimal.New(1, Precision)).StringFixed(0) + s := d.Mul(decimal.New(1, Precision)).Floor().StringFixed(0) v.i.SetString(s, 10) return } @@ -50,7 +50,7 @@ func IntegerFromString(x string) (v Integer) { if d.Sign() <= 0 { panic(x) } - s := d.Mul(decimal.New(1, Precision)).StringFixed(0) + s := d.Mul(decimal.New(1, Precision)).Floor().StringFixed(0) v.i.SetString(s, 10) return } diff --git a/mixinnet/number_test.go b/mixinnet/number_test.go new file mode 100644 index 0000000..f6f0c2d --- /dev/null +++ b/mixinnet/number_test.go @@ -0,0 +1,75 @@ +package mixinnet + +import ( + "testing" + + "github.com/stretchr/testify/require" +) + +func TestInteger(t *testing.T) { + require := require.New(t) + require.Equal("0.00000000", NewInteger(0).String()) + + a := NewInteger(10000) + b := IntegerFromString("10000") + require.Equal(0, a.Cmp(b)) + + c := a.Add(b) + require.Equal("20000.00000000", c.String()) + j, err := c.MarshalJSON() + require.Nil(err) + require.Equal("\"20000.00000000\"", string(j)) + err = c.UnmarshalJSON(j) + require.Nil(err) + require.Equal("20000.00000000", c.String()) + + require.Equal(0, b.Add(a).Cmp(c)) + require.Equal(0, c.Sub(a).Cmp(b)) + require.Equal(0, c.Sub(b).Cmp(a)) + + a = IntegerFromString("0.000000001") + require.Equal("0.00000000", a.String()) + a = IntegerFromString("10.000000001") + require.Equal("10.00000000", a.String()) + a = IntegerFromString("0.00000001") + require.Equal("0.00000001", a.String()) + a = IntegerFromString("10.00000001") + require.Equal("10.00000001", a.String()) + a = IntegerFromString("0.1") + require.Equal("0.10000000", a.String()) + + m := NewInteger(500000) + n := m.Div(10) + require.Equal("50000.00000000", n.String()) + n = m.Div(1000000) + require.Equal("0.50000000", n.String()) + n = n.Div(10000000) + require.Equal("0.00000005", n.String()) + require.Equal(1, n.Sign()) + n = n.Mul(10).Div(10) + require.Equal("0.00000005", n.String()) + require.Equal(1, n.Sign()) + n = n.Div(10).Mul(10) + require.Equal("0.00000000", n.String()) + require.Equal(0, n.Sign()) + + m = NewInteger(1) + n = m.Div(3) + require.Equal("0.33333333", n.String()) + n = n.Mul(3) + require.Equal("0.99999999", n.String()) + n = n.Add(IntegerFromString("0.00000001")) + require.Equal("1.00000000", n.String()) + + m = NewInteger(8273) + require.Equal("8273.00000000", m.String()) + + m = IntegerFromString("0.00000192") + require.Equal("0.00000192", m.String()) + + i0 := IntegerFromString("0.003790547948714634") + require.Equal("0.00379054", i0.String()) + i1 := IntegerFromString(i0.String()) + require.Equal("0.00379054", i1.String()) + require.Equal(i0, i1) +} From 87ec2a32715c5802d4a1b7e7319721a38e395d30 Mon Sep 17 00:00:00 2001 From: LixvYang <2690688423@qq.com> Date: Sun, 31 Aug 2025 12:07:01 +0800 Subject: [PATCH 4/4] feat: [fix mixinnet number] --- mixinnet/number.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mixinnet/number.go b/mixinnet/number.go index ba0978b..65e7a82 100644 --- a/mixinnet/number.go +++ b/mixinnet/number.go @@ -37,7 +37,7 @@ func IntegerFromDecimal(d decimal.Decimal) (v Integer) { if d.Sign() <= 0 { panic(d) } - s := d.Mul(decimal.New(1, Precision)).Floor().StringFixed(0) + s := d.Mul(decimal.New(1, Precision)).Floor().String() v.i.SetString(s, 10) return } @@ -50,7 +50,7 @@ func IntegerFromString(x string) (v Integer) { if d.Sign() <= 0 { panic(x) } - s := d.Mul(decimal.New(1, Precision)).Floor().StringFixed(0) + s := d.Mul(decimal.New(1, Precision)).Floor().String() v.i.SetString(s, 10) return }