Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat(stdlibs/std)!: remove Get prefixes, extend abbreviations #3374

Merged
merged 64 commits into from
Feb 19, 2025
Merged
Changes from 1 commit
Commits
Show all changes
64 commits
Select commit Hold shift + click to select a range
c57797d
chore: remove Get prefixes from GetCallerAt, GetOrigSend, GetOrigCaller
hthieu1110 Dec 19, 2024
6156309
Merge remote-tracking branch 'remote/master' into chore/remove-get-pr…
hthieu1110 Dec 19, 2024
c58ae72
chore: expanding abbreviations
hthieu1110 Dec 19, 2024
6879236
chore: remove prefix GetCallerAt => CallerAt
hthieu1110 Dec 19, 2024
d41482e
Merge branch 'master' into chore/remove-get-prefix-1475
Dec 20, 2024
fbc982d
refactor: PrevRealm => PreviousRealm
Dec 20, 2024
0f79638
refactor: Orig => Origin
Dec 20, 2024
627d000
refactor: orig => origin
Dec 20, 2024
8489ec4
refactor: Addr => Address
Dec 20, 2024
e2223ff
refactor: refactor missing Addr => Address for Realm
Dec 20, 2024
eb965f1
fix: fix test crossrealm
Dec 20, 2024
ad57bfc
refactor: address feedbacks
hthieu1110 Dec 20, 2024
afd55ca
Merge remote-tracking branch 'remote/master' into chore/remove-get-pr…
hthieu1110 Dec 20, 2024
df80fe8
Merge remote-tracking branch 'remote/master' into chore/remove-get-pr…
hthieu1110 Dec 21, 2024
2a4eb54
refactor: refactor new merged code
hthieu1110 Dec 21, 2024
90b9a33
Merge branch 'master' into chore/remove-get-prefix-1475
leohhhn Dec 27, 2024
87d6705
Merge remote-tracking branch 'remote/master' into chore/remove-get-pr…
Dec 30, 2024
93eec42
refactor: refactor new added code
Dec 30, 2024
daf1574
refactor: refactor new added code
Dec 30, 2024
ec5c4f1
refactor: refactor new added code
Dec 30, 2024
8d7571c
Merge remote-tracking branch 'remote/master' into chore/remove-get-pr…
Jan 2, 2025
29c3282
Merge remote-tracking branch 'remote/master' into chore/remove-get-pr…
hthieu1110 Jan 8, 2025
e9a799e
chore: merge with master
Jan 13, 2025
c63186b
refactor: refactor new merged code
Jan 13, 2025
da38008
refactor: remove get prefix
Jan 13, 2025
48a7606
fix: remove removed code
Jan 13, 2025
6752cd8
Merge remote-tracking branch 'remote/master' into chore/remove-get-pr…
hthieu1110 Jan 13, 2025
c31f410
chore: merge with master
Jan 15, 2025
5c6abaf
refactor: GetBanker => NewBanker, GetChainDomain ==> ChainDomain, Get…
Jan 15, 2025
1cc833c
refactor: refactor missing code
Jan 15, 2025
55a6ed3
Merge branch 'master' into chore/remove-get-prefix-1475
hthieu1110 Jan 15, 2025
bbbd553
refactor: refactor missing code
Jan 15, 2025
9f96395
Merge remote-tracking branch 'remote/master' into chore/remove-get-pr…
Jan 15, 2025
cfb7233
chore: revert ChainID, ChainDomain, Height
hthieu1110 Jan 15, 2025
a2b63b0
chore: revert ChainID refactor
hthieu1110 Jan 15, 2025
f14548c
Merge remote-tracking branch 'remote/master' into chore/remove-get-pr…
Jan 17, 2025
b994dde
refactor: GetHeight => ChainHeight, GetChainID => ChainID, GetChainDo…
Jan 17, 2025
9e78817
refactor: refactor missing code
Jan 17, 2025
19ee3d9
Merge remote-tracking branch 'remote/master' into chore/remove-get-pr…
Jan 20, 2025
7b233fe
fix: fix refactoring
Jan 20, 2025
1fc101c
merged with master
Jan 21, 2025
8f6ed21
chore: revert test5 genesis
Jan 21, 2025
9fdc06a
refactor: refactor new merged code
Jan 21, 2025
ae600c9
refactor: refactor new merged code
Jan 21, 2025
943628e
fix: fix tests
Jan 21, 2025
a9cfec4
Merge branch 'master' of github.com:gnolang/gno into chore/remove-get…
thehowl Jan 21, 2025
174f1d0
Merge remote-tracking branch 'remote/master' into chore/remove-get-pr…
hthieu1110 Jan 21, 2025
4a47c55
Merge branch 'master' into chore/remove-get-prefix-1475
hthieu1110 Jan 22, 2025
1ec0604
merge with master + resolve conflict
hthieu1110 Jan 27, 2025
ce557b8
Merge branch 'chore/remove-get-prefix-1475' of https://github.com/hth…
hthieu1110 Jan 27, 2025
3c0fa07
merge with master
hthieu1110 Feb 1, 2025
4164739
chore: merge with master + update refactor
hthieu1110 Feb 3, 2025
ee2c670
Merge remote-tracking branch 'remote/master' into chore/remove-get-pr…
hthieu1110 Feb 4, 2025
966fd25
refactor: refactor new merged code from master
hthieu1110 Feb 4, 2025
8b10ade
fix: merge with master + refactor new codes + fix CI
hthieu1110 Feb 4, 2025
754811b
fix: fix CI
hthieu1110 Feb 4, 2025
4fc4012
Merge branch 'master' of github.com:gnolang/gno into chore/remove-get…
thehowl Feb 7, 2025
b3c9a4d
fixup
thehowl Feb 7, 2025
cd24611
Merge branch 'master' into chore/remove-get-prefix-1475
thehowl Feb 11, 2025
a9fdb04
fmt
thehowl Feb 11, 2025
5e11039
Merge remote-tracking branch 'remote/master' into chore/remove-get-pr…
hthieu1110 Feb 12, 2025
2761d6b
Merge branch 'master' into chore/remove-get-prefix-1475
thehowl Feb 17, 2025
d1d2d52
merge with master
hthieu1110 Feb 19, 2025
17f1f59
fix: fix CI stuffs
hthieu1110 Feb 19, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
refactor: PrevRealm => PreviousRealm
  • Loading branch information
hieu.ha committed Dec 20, 2024

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
commit fbc982d2688af3ad7af1f0b53ab17befe34af172
2 changes: 1 addition & 1 deletion docs/assets/how-to-guides/creating-grc20/mytoken-1.gno
Original file line number Diff line number Diff line change
@@ -17,7 +17,7 @@ var (
// init is called once at time of deployment
func init() {
// Set deployer of Realm to admin
admin = std.PrevRealm().Addr()
admin = std.PreviousRealm().Addr()

// Set token name, symbol and number of decimals
banker = grc20.NewBanker("My Token", "TKN", 4)
4 changes: 2 additions & 2 deletions docs/assets/how-to-guides/creating-grc20/mytoken-2.gno
Original file line number Diff line number Diff line change
@@ -44,13 +44,13 @@ func TransferFrom(from, to std.Address, amount uint64) {

// Mint mints amount of tokens to address. Callable only by admin of token
func Mint(address std.Address, amount uint64) {
assertIsAdmin(std.PrevRealm().Addr())
assertIsAdmin(std.PreviousRealm().Addr())
checkErr(banker.Mint(address, amount))
}

// Burn burns amount of tokens from address. Callable only by admin of token
func Burn(address std.Address, amount uint64) {
assertIsAdmin(std.PrevRealm().Addr())
assertIsAdmin(std.PreviousRealm().Addr())
checkErr(banker.Burn(address, amount))
}

26 changes: 13 additions & 13 deletions docs/concepts/effective-gno.md
Original file line number Diff line number Diff line change
@@ -115,7 +115,7 @@ that could lead to user frustration or the need to fork the code.
import "std"

func Foobar() {
caller := std.PrevRealm().Addr()
caller := std.PreviousRealm().Addr()
if caller != "g1xxxxx" {
panic("permission denied")
}
@@ -399,15 +399,15 @@ certain operations.
import "std"

func PublicMethod(nb int) {
caller := std.PrevRealm().Addr()
caller := std.PreviousRealm().Addr()
privateMethod(caller, nb)
}

func privateMethod(caller std.Address, nb int) { /* ... */ }
```

In this example, `PublicMethod` is a public function that can be called by other
realms. It retrieves the caller's address using `std.PrevRealm().Addr()`, and
realms. It retrieves the caller's address using `std.PreviousRealm().Addr()`, and
then passes it to `privateMethod`, which is a private function that performs the
actual logic. This way, `privateMethod` can only be called from within the
realm, and it can use the caller's address for authentication or authorization
@@ -440,11 +440,11 @@ import (
var owner std.Address

func init() {
owner = std.PrevRealm().Addr()
owner = std.PreviousRealm().Addr()
}

func ChangeOwner(newOwner std.Address) {
caller := std.PrevRealm().Addr()
caller := std.PreviousRealm().Addr()

if caller != owner {
panic("access denied")
@@ -494,7 +494,7 @@ whitelisted or not.

Let's deep dive into the different access control mechanisms we can use:

One strategy is to look at the caller with `std.PrevRealm()`, which could be the
One strategy is to look at the caller with `std.PreviousRealm()`, which could be the
EOA (Externally Owned Account), or the preceding realm in the call stack.

Another approach is to look specifically at the EOA. For this, you should call
@@ -516,7 +516,7 @@ import "std"
var admin std.Address = "g1xxxxx"

func AdminOnlyFunction() {
caller := std.PrevRealm().Addr()
caller := std.PreviousRealm().Addr()
if caller != admin {
panic("permission denied")
}
@@ -527,7 +527,7 @@ func AdminOnlyFunction() {
```

In this example, `AdminOnlyFunction` is a function that can only be called by
the admin. It retrieves the caller's address using `std.PrevRealm().Addr()`,
the admin. It retrieves the caller's address using `std.PreviousRealm().Addr()`,
this can be either another realm contract, or the calling user if there is no
other intermediary realm. and then checks if the caller is the admin. If not, it
panics and stops the execution.
@@ -543,7 +543,7 @@ Here's an example:
import "std"

func TransferTokens(to std.Address, amount int64) {
caller := std.PrevRealm().Addr()
caller := std.PreviousRealm().Addr()
if caller != admin {
panic("permission denied")
}
@@ -552,7 +552,7 @@ func TransferTokens(to std.Address, amount int64) {
```

In this example, `TransferTokens` is a function that can only be called by the
admin. It retrieves the caller's address using `std.PrevRealm().Addr()`, and
admin. It retrieves the caller's address using `std.PreviousRealm().Addr()`, and
then checks if the caller is the admin. If not, the function panics and execution is stopped.

By using these access control mechanisms, you can ensure that your contract's
@@ -631,7 +631,7 @@ type MySafeStruct {
}

func NewSafeStruct() *MySafeStruct {
caller := std.PrevRealm().Addr()
caller := std.PreviousRealm().Addr()
return &MySafeStruct{
counter: 0,
admin: caller,
@@ -640,7 +640,7 @@ func NewSafeStruct() *MySafeStruct {

func (s *MySafeStruct) Counter() int { return s.counter }
func (s *MySafeStruct) Inc() {
caller := std.PrevRealm().Addr()
caller := std.PreviousRealm().Addr()
if caller != s.admin {
panic("permission denied")
}
@@ -704,7 +704,7 @@ import "gno.land/p/demo/grc/grc20"
var fooToken = grc20.NewBanker("Foo Token", "FOO", 4)

func MyBalance() uint64 {
caller := std.PrevRealm().Addr()
caller := std.PreviousRealm().Addr()
return fooToken.BalanceOf(caller)
}
```
8 changes: 4 additions & 4 deletions docs/how-to-guides/creating-grc20.md
Original file line number Diff line number Diff line change
@@ -41,7 +41,7 @@ var (
// init is called once at time of deployment
func init() {
// Set deployer of Realm to admin
admin = std.PrevRealm().Addr()
admin = std.PreviousRealm().Addr()

// Set token name, symbol and number of decimals
banker = grc20.NewBanker("My Token", "TKN", 4)
@@ -142,7 +142,7 @@ caller’s allowance.
```go
// Mint mints amount of tokens to address. Callable only by admin of token
func Mint(address std.Address, amount uint64) {
assertIsAdmin(std.PrevRealm().Addr())
assertIsAdmin(std.PreviousRealm().Addr())
checkErr(banker.Mint(address, amount))
}
```
@@ -153,7 +153,7 @@ increasing the total supply.
```go
// Burn burns amount of tokens from address. Callable only by admin of token
func Burn(address std.Address, amount uint64) {
assertIsAdmin(std.PrevRealm().Addr())
assertIsAdmin(std.PreviousRealm().Addr())
checkErr(banker.Burn(address, amount))
}
```
@@ -162,7 +162,7 @@ decreasing the total supply.

[embedmd]:# (../assets/how-to-guides/creating-grc20/mytoken-2.gno go /.*assertIsAdmin/ /^}/)
```go
assertIsAdmin(std.PrevRealm().Addr())
assertIsAdmin(std.PreviousRealm().Addr())
checkErr(banker.Mint(address, amount))
}
```
6 changes: 3 additions & 3 deletions docs/reference/stdlibs/std/chain.md
Original file line number Diff line number Diff line change
@@ -125,16 +125,16 @@ currentRealm := std.CurrentRealm()
```
---

## PrevRealm
## PreviousRealm
```go
func PrevRealm() Realm
func PreviousRealm() Realm
```
Returns the previous caller [realm](realm.md) (can be code or user realm). If caller is a
user realm, `pkgpath` will be empty.

#### Usage
```go
prevRealm := std.PrevRealm()
prevRealm := std.PreviousRealm()
```
---

2 changes: 1 addition & 1 deletion docs/reference/stdlibs/std/testing.md
Original file line number Diff line number Diff line change
@@ -98,7 +98,7 @@ func TestSetRealm(rlm Realm)

Sets the realm for the current frame. After calling `TestSetRealm()`, calling
[`CurrentRealm()`](chain.md#currentrealm) in the same test function will yield the value of `rlm`, and
any `PrevRealm()` called from a function used after TestSetRealm will yield `rlm`.
any `PreviousRealm()` called from a function used after TestSetRealm will yield `rlm`.

Should be used in combination with [`NewUserRealm`](#newuserrealm) &
[`NewCodeRealm`](#newcoderealm).
2 changes: 1 addition & 1 deletion examples/gno.land/p/demo/grc/grc20/examples_test.gno
Original file line number Diff line number Diff line change
@@ -7,7 +7,7 @@ func ExampleExposeBankForMaketxRunOrImports() {}
func ExampleCustomTellerImpl() {}
func ExampleAllowance() {}
func ExampleRealmBanker() {}
func ExamplePrevRealmBanker() {}
func ExamplePreviousRealmBanker() {}
func ExampleAccountBanker() {}
func ExampleTransfer() {}
func ExampleApprove() {}
8 changes: 4 additions & 4 deletions examples/gno.land/p/demo/grc/grc20/tellers.gno
Original file line number Diff line number Diff line change
@@ -4,7 +4,7 @@ import (
"std"
)

// CallerTeller returns a GRC20 compatible teller that checks the PrevRealm
// CallerTeller returns a GRC20 compatible teller that checks the PreviousRealm
// caller for each call. It's usually safe to expose it publicly to let users
// manipulate their tokens directly, or for realms to use their allowance.
func (tok *Token) CallerTeller() Teller {
@@ -14,7 +14,7 @@ func (tok *Token) CallerTeller() Teller {

return &fnTeller{
accountFn: func() std.Address {
caller := std.PrevRealm().Addr()
caller := std.PreviousRealm().Addr()
return caller
},
Token: tok,
@@ -44,7 +44,7 @@ func (tok *Token) RealmTeller() Teller {
panic("Token cannot be nil")
}

caller := std.PrevRealm().Addr()
caller := std.PreviousRealm().Addr()

return &fnTeller{
accountFn: func() std.Address {
@@ -61,7 +61,7 @@ func (tok *Token) RealmSubTeller(slug string) Teller {
panic("Token cannot be nil")
}

caller := std.PrevRealm().Addr()
caller := std.PreviousRealm().Addr()
account := accountSlugAddr(caller, slug)

return &fnTeller{
10 changes: 5 additions & 5 deletions examples/gno.land/p/demo/grc/grc721/basic_nft.gno
Original file line number Diff line number Diff line change
@@ -81,7 +81,7 @@ func (s *basicNFT) SetTokenURI(tid TokenID, tURI TokenURI) (bool, error) {
if err != nil {
return false, err
}
caller := std.PrevRealm().Addr()
caller := std.PreviousRealm().Addr()
if caller != owner {
return false, ErrCallerIsNotOwner
}
@@ -115,7 +115,7 @@ func (s *basicNFT) Approve(to std.Address, tid TokenID) error {
return ErrApprovalToCurrentOwner
}

caller := std.PrevRealm().Addr()
caller := std.PreviousRealm().Addr()
if caller != owner && !s.IsApprovedForAll(owner, caller) {
return ErrCallerIsNotOwnerOrApproved
}
@@ -147,15 +147,15 @@ func (s *basicNFT) SetApprovalForAll(operator std.Address, approved bool) error
return ErrInvalidAddress
}

caller := std.PrevRealm().Addr()
caller := std.PreviousRealm().Addr()
return s.setApprovalForAll(caller, operator, approved)
}

// Safely transfers `tokenId` token from `from` to `to`, checking that
// contract recipients are aware of the GRC721 protocol to prevent
// tokens from being forever locked.
func (s *basicNFT) SafeTransferFrom(from, to std.Address, tid TokenID) error {
caller := std.PrevRealm().Addr()
caller := std.PreviousRealm().Addr()
if !s.isApprovedOrOwner(caller, tid) {
return ErrCallerIsNotOwnerOrApproved
}
@@ -174,7 +174,7 @@ func (s *basicNFT) SafeTransferFrom(from, to std.Address, tid TokenID) error {

// Transfers `tokenId` token from `from` to `to`.
func (s *basicNFT) TransferFrom(from, to std.Address, tid TokenID) error {
caller := std.PrevRealm().Addr()
caller := std.PreviousRealm().Addr()
if !s.isApprovedOrOwner(caller, tid) {
return ErrCallerIsNotOwnerOrApproved
}
8 changes: 4 additions & 4 deletions examples/gno.land/p/demo/grc/grc721/basic_nft_test.gno
Original file line number Diff line number Diff line change
@@ -111,7 +111,7 @@ func TestSetApprovalForAll(t *testing.T) {
dummy := NewBasicNFT(dummyNFTName, dummyNFTSymbol)
uassert.True(t, dummy != nil, "should not be nil")

caller := std.PrevRealm().Addr()
caller := std.PreviousRealm().Addr()
addr := std.Address("g1var589z07ppjsjd24ukm4uguzwdt0tw7g47cgm")

isApprovedForAll := dummy.IsApprovedForAll(caller, addr)
@@ -136,7 +136,7 @@ func TestApprove(t *testing.T) {
dummy := NewBasicNFT(dummyNFTName, dummyNFTSymbol)
uassert.True(t, dummy != nil, "should not be nil")

caller := std.PrevRealm().Addr()
caller := std.PreviousRealm().Addr()
addr := std.Address("g1var589z07ppjsjd24ukm4uguzwdt0tw7g47cgm")

dummy.mint(caller, TokenID("1"))
@@ -156,7 +156,7 @@ func TestTransferFrom(t *testing.T) {
dummy := NewBasicNFT(dummyNFTName, dummyNFTSymbol)
uassert.True(t, dummy != nil, "should not be nil")

caller := std.PrevRealm().Addr()
caller := std.PreviousRealm().Addr()
addr := std.Address("g1var589z07ppjsjd24ukm4uguzwdt0tw7g47cgm")

dummy.mint(caller, TokenID("1"))
@@ -185,7 +185,7 @@ func TestSafeTransferFrom(t *testing.T) {
dummy := NewBasicNFT(dummyNFTName, dummyNFTSymbol)
uassert.True(t, dummy != nil, "should not be nil")

caller := std.PrevRealm().Addr()
caller := std.PreviousRealm().Addr()
addr := std.Address("g1var589z07ppjsjd24ukm4uguzwdt0tw7g47cgm")

dummy.mint(caller, TokenID("1"))
2 changes: 1 addition & 1 deletion examples/gno.land/p/demo/grc/grc721/grc721_metadata.gno
Original file line number Diff line number Diff line change
@@ -34,7 +34,7 @@ func (s *metadataNFT) SetTokenMetadata(tid TokenID, metadata Metadata) error {
if err != nil {
return err
}
caller := std.PrevRealm().Addr()
caller := std.PreviousRealm().Addr()
if caller != owner {
return ErrCallerIsNotOwner
}
2 changes: 1 addition & 1 deletion examples/gno.land/p/demo/grc/grc721/grc721_royalty.gno
Original file line number Diff line number Diff line change
@@ -45,7 +45,7 @@ func (r *royaltyNFT) SetTokenRoyalty(tid TokenID, royaltyInfo RoyaltyInfo) error
if err != nil {
return err
}
caller := std.PrevRealm().Addr()
caller := std.PreviousRealm().Addr()
if caller != owner {
return ErrCallerIsNotOwner
}
4 changes: 2 additions & 2 deletions examples/gno.land/p/demo/memeland/memeland.gno
Original file line number Diff line number Diff line change
@@ -50,7 +50,7 @@ func (m *Memeland) PostMeme(data string, timestamp int64) string {
newPost := &Post{
ID: id,
Data: data,
Author: std.PrevRealm().Addr(),
Author: std.PreviousRealm().Addr(),
Timestamp: time.Unix(timestamp, 0),
UpvoteTracker: avl.NewTree(),
}
@@ -65,7 +65,7 @@ func (m *Memeland) Upvote(id string) string {
panic("post with specified ID does not exist")
}

caller := std.PrevRealm().Addr().String()
caller := std.PreviousRealm().Addr().String()

if _, exists := post.UpvoteTracker.Get(caller); exists {
panic("user has already upvoted this post")
Loading
Loading