Skip to content

Commit 564da1c

Browse files
authored
Merge pull request #133 from xssnick/improvements-183
Fixed missing decimal after TLB struct load in String coins
2 parents a1b7609 + 543e14f commit 564da1c

File tree

4 files changed

+10
-5
lines changed

4 files changed

+10
-5
lines changed

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
<img align="right" width="425px" src="https://github.com/xssnick/props/blob/master/logoimg.png?raw=true">
44

55
[![Based on TON][ton-svg]][ton]
6-
![Coverage](https://img.shields.io/badge/Coverage-73.4%25-brightgreen)
6+
![Coverage](https://img.shields.io/badge/Coverage-73.5%25-brightgreen)
77

88
Golang library for interacting with TON blockchain.
99

tlb/coins.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -180,6 +180,7 @@ func (g *Coins) LoadFromCell(loader *cell.Slice) error {
180180
if err != nil {
181181
return err
182182
}
183+
g.decimals = 9
183184
g.val = coins
184185
return nil
185186
}

tlb/loader.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -13,11 +13,11 @@ import (
1313

1414
type Magic struct{}
1515

16-
type manualLoader interface {
16+
type Unmarshaler interface {
1717
LoadFromCell(loader *cell.Slice) error
1818
}
1919

20-
type manualStore interface {
20+
type Marshaller interface {
2121
ToCell() (*cell.Cell, error)
2222
}
2323

@@ -53,7 +53,7 @@ func loadFromCell(v any, slice *cell.Slice, skipProofBranches, skipMagic bool) e
5353
}
5454
rv = rv.Elem()
5555

56-
if ld, ok := v.(manualLoader); ok {
56+
if ld, ok := v.(Unmarshaler); ok {
5757
err := ld.LoadFromCell(slice)
5858
if err != nil {
5959
return fmt.Errorf("failed to load from cell for %s, using manual loader, err: %w", rv.Type().Name(), err)
@@ -392,7 +392,7 @@ func ToCell(v any) (*cell.Cell, error) {
392392
rv = rv.Elem()
393393
}
394394

395-
if ld, ok := v.(manualStore); ok {
395+
if ld, ok := v.(Marshaller); ok {
396396
c, err := ld.ToCell()
397397
if err != nil {
398398
return nil, fmt.Errorf("failed to store to cell for %s, using manual storer, err: %w", reflect.TypeOf(v).PkgPath(), err)

tlb/loader_test.go

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -153,6 +153,10 @@ func TestLoadFromCell(t *testing.T) {
153153
t.Fatal("coins 700000 not eq")
154154
}
155155

156+
if x.Inside.ValCoins.String() != "0.0007" {
157+
t.Fatal("coins 700000 not eq, got " + x.Inside.ValCoins.String())
158+
}
159+
156160
if x.Part.BigVal.Uint64() != 7126382921832 {
157161
t.Fatal("uint part 7126382921832 not eq")
158162
}

0 commit comments

Comments
 (0)