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

Add entitlement for locked account creator #423

Merged
merged 2 commits into from
Apr 24, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
54 changes: 31 additions & 23 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -27,8 +27,9 @@ so they can build a basic understanding of the programming language.

| Network | Contract Address |
| ---------------------------- | -------------------- |
| Emulator | `0x0ae53cb6e3f42a79` |
| Testnet/Previewnet/Crescendo | `0x7e60df042a9c0868` |
| Emulator | `0x0ae53cb6e3f42a79` |
| Previewnet | `0x4445e7ad11568276` |
| Testnet/Crescendo | `0x7e60df042a9c0868` |
| Sandboxnet | `0x0661ab7d6696a460` |
| Mainnet | `0x1654653399040a61` |

Expand All @@ -46,8 +47,9 @@ You can find transactions for using the Flow Token in the `transactions/flowToke

| Network | Contract Address |
| ---------------------------- | -------------------- |
| Emulator | `0xe5a8b7f23e8b548f` |
| Testnet/Previewnet/Crescendo | `0x912d5440f7e3769e` |
| Emulator | `0xe5a8b7f23e8b548f` |
| Previewnet | `0xab086ce9cc29fc80` |
| Testnet/Crescendo | `0x912d5440f7e3769e` |
| Sandboxnet | `0xe92c2039bbe9da96` |
| Mainnet | `0xf919ee77447b7497` |

Expand All @@ -59,8 +61,9 @@ This contract defines fees that are spent for executing transactions and creatin

| Network | Contract Address |
| ---------------------------- | -------------------- |
| Emulator/Canary | `0xf8d6e0586b0a20c7` |
| Testnet/Previewnet/Crescendo | `0x8c5303eaa26202d6` |
| Emulator | `0xf8d6e0586b0a20c7` |
| Previewnet | `0xb6763b4399a888c8` |
| Testnet/Crescendo | `0x8c5303eaa26202d6` |
| Sandboxnet | `0xf4527793ee68aede` |
| Mainnet | `0xe467b9dd11fa00df` |

Expand All @@ -75,8 +78,9 @@ You can see [more docs about storage capacity and fees here.](https://docs.onflo

| Network | Contract Address |
| ---------------------------- | -------------------- |
| Emulator/Canary | `0xf8d6e0586b0a20c7` |
| Testnet/Previewnet/Crescendo | `0x8c5303eaa26202d6` |
| Emulator | `0xf8d6e0586b0a20c7` |
| Previewnet | `0xb6763b4399a888c8` |
| Testnet/Crescendo | `0x8c5303eaa26202d6` |
| Sandboxnet | `0xf4527793ee68aede` |
| Mainnet | `0xe467b9dd11fa00df` |

Expand All @@ -92,8 +96,9 @@ You can find transactions for interacting with the service account contract in t

| Network | Contract Address |
| ---------------------------- | -------------------- |
| Emulator/Canary | `0xf8d6e0586b0a20c7` |
| Testnet/Previewnet/Crescendo | `0x8c5303eaa26202d6` |
| Emulator | `0xf8d6e0586b0a20c7` |
| Previewnet | `0xb6763b4399a888c8` |
| Testnet/Crescendo | `0x8c5303eaa26202d6` |
| Sandboxnet | `0xf4527793ee68aede` |
| Mainnet | `0xe467b9dd11fa00df` |

Expand All @@ -109,12 +114,13 @@ You can find transactions for interacting with the random beacon

`contracts/NodeVersionBeacon.cdc`

| Network | Contract Address |
| ---------------------------- | -------------------- |
| Emulator/Canary | `0xf8d6e0586b0a20c7` |
| Testnet/Previewnet/Crescendo | `0x8c5303eaa26202d6` |
| Sandboxnet | `0xf4527793ee68aede` |
| Mainnet | `0xe467b9dd11fa00df` |
| Network | Contract Address |
| ----------------- | -------------------- |
| Emulator | `0xf8d6e0586b0a20c7` |
| Previewnet | `0xb6763b4399a888c8` |
| Testnet/Crescendo | `0x8c5303eaa26202d6` |
| Sandboxnet | `0xf4527793ee68aede` |
| Mainnet | `0xe467b9dd11fa00df` |

The `NodeVersionBeacon` contract holds the past
and future protocol versions that should be used
Expand All @@ -128,12 +134,13 @@ history contract in the `transactions/nodeVersionBeacon` directory.
`contracts/FlowIDTableStaking.cdc`
`contracts/epochs/FlowEpoch.cdc`

| Network | Contract Address |
| ---------------------------- | -------------------- |
| Emulator/Canary | `0xf8d6e0586b0a20c7` |
| Testnet/Previewnet/Crescendo | `0x9eca2b38b18b5dfe` |
| Sandboxnet | `0xf4527793ee68aede` |
| Mainnet | `0x8624b52f9ddcd04a` |
| Network | Contract Address |
| ------------------- | -------------------- |
| Emulator | `0xf8d6e0586b0a20c7` |
| Previewnet | `0xb6763b4399a888c8` |
| Testnet/Crescendo | `0x9eca2b38b18b5dfe` |
| Sandboxnet | `0xf4527793ee68aede` |
| Mainnet | `0x8624b52f9ddcd04a` |

These contract manages the list of identities that correspond to node operators in the Flow network
as well as the process for adding and removing nodes from the network via Epochs.
Expand Down Expand Up @@ -161,7 +168,8 @@ These scripts are documented in the [staking scripts section of the docs](https:

| Network | Contract Address |
| --------------- | -------------------- |
| Emulator/Canary | `0xf8d6e0586b0a20c7` |
| Emulator | `0xf8d6e0586b0a20c7` |
| Previewnet | `0xb6763b4399a888c8` |
| Testnet | `0x95e019a17d0e23d7` |
| Sandboxnet | `0xf4527793ee68aede` |
| Mainnet | `0x8d0e87b65159ae63` |
Expand Down
16 changes: 9 additions & 7 deletions contracts/LockedTokens.cdc
Original file line number Diff line number Diff line change
Expand Up @@ -661,14 +661,16 @@ access(all) contract LockedTokens {
}
}

access(all) entitlement AccountCreator
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
access(all) entitlement AccountCreator
access(all) entitlement AccountCreator


access(all) resource interface AddAccount {
access(all) fun addAccount(
access(AccountCreator) fun addAccount(
sharedAccountAddress: Address,
unlockedAccountAddress: Address,
tokenAdmin: Capability<auth(FungibleToken.Withdraw) &LockedTokenManager>)
}

/// Resource that the Dapper Labs token admin
/// Resource that the Flow token admin
/// stores in their account to manage the vesting schedule
/// for all the token holders
access(all) resource TokenAdminCollection: AddAccount {
Expand All @@ -682,7 +684,7 @@ access(all) contract LockedTokens {

/// Add a new account's locked token manager capability
/// to the record
access(all) fun addAccount(
access(AccountCreator) fun addAccount(
sharedAccountAddress: Address,
unlockedAccountAddress: Address,
tokenAdmin: Capability<auth(FungibleToken.Withdraw) &LockedTokenManager>)
Expand All @@ -703,27 +705,27 @@ access(all) contract LockedTokens {
}

access(all) resource interface LockedAccountCreatorPublic {
access(all) fun addCapability(cap: Capability<&TokenAdminCollection>)
access(all) fun addCapability(cap: Capability<auth(LockedTokens.AccountCreator) &TokenAdminCollection>)
}

// account creators store this resource in their account
// in order to be able to register accounts who have locked tokens
access(all) resource LockedAccountCreator: LockedAccountCreatorPublic, AddAccount {

access(self) var addAccountCapability: Capability<&TokenAdminCollection>?
access(self) var addAccountCapability: Capability<auth(LockedTokens.AccountCreator) &TokenAdminCollection>?
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This will be migrated by default, correct? We don't need a custom migration for this?

Copy link
Contributor

@sisyphusSmiling sisyphusSmiling Apr 24, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I believe so since the prior capability was on the resource, but I'd want to double check with @turbolent

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please try migrating the contract and see if the entitlement is inferred to be required now. From what I can see, it should and no custom migration should be required (if someone had a &TokenAdminCollection before, they now need auth(LockedTokens.AccountCreator) to keep using it the same way)


init() {
self.addAccountCapability = nil
}

access(all) fun addCapability(cap: Capability<&TokenAdminCollection>) {
access(all) fun addCapability(cap: Capability<auth(LockedTokens.AccountCreator) &TokenAdminCollection>) {
pre {
cap.borrow() != nil: "Invalid token admin collection capability"
}
self.addAccountCapability = cap
}

access(all) fun addAccount(sharedAccountAddress: Address,
access(AccountCreator) fun addAccount(sharedAccountAddress: Address,
unlockedAccountAddress: Address,
tokenAdmin: Capability<auth(FungibleToken.Withdraw) &LockedTokenManager>) {

Expand Down
112 changes: 76 additions & 36 deletions flow.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,91 +3,131 @@
"FlowClusterQC": {
"source": "./contracts/epochs/FlowClusterQC.cdc",
"aliases": {
"testing": "0x0000000000000007"
}
},
"FlowContractAudits": {
"source": "./contracts/FlowContractAudits.cdc",
"aliases": {
"testing": "0x0000000000000007"
"testing": "0x0000000000000007",
"emulator": "0xf8d6e0586b0a20c7",
"previewnet": "0xb6763b4399a888c8",
"testnet": "0x9eca2b38b18b5dfe",
"mainnet": "0x8624b52f9ddcd04a"
}
},
"FlowDKG": {
"source": "./contracts/epochs/FlowEpoch.cdc",
"source": "./contracts/epochs/FlowDKG.cdc",
"aliases": {
"testing": "0x0000000000000007"
"testing": "0x0000000000000007",
"emulator": "0xf8d6e0586b0a20c7",
"previewnet": "0xb6763b4399a888c8",
"testnet": "0x9eca2b38b18b5dfe",
"mainnet": "0x8624b52f9ddcd04a"
}
},
"FlowEpoch": {
"source": "./contracts/epochs/FlowEpoch.cdc",
"aliases": {
"testing": "0x0000000000000007"
}
},
"FlowFees": {
"source": "./contracts/FlowFees.cdc",
"aliases": {
"testing": "0x0000000000000007"
"testing": "0x0000000000000007",
"emulator": "0xf8d6e0586b0a20c7",
"previewnet": "0xb6763b4399a888c8",
"testnet": "0x9eca2b38b18b5dfe",
"mainnet": "0x8624b52f9ddcd04a"
}
},
"FlowIDTableStaking": {
"source": "./contracts/FlowIDTableStaking.cdc",
"aliases": {
"testing": "0x0000000000000007"
"testing": "0x0000000000000007",
"emulator": "0xf8d6e0586b0a20c7",
"previewnet": "0xb6763b4399a888c8",
"testnet": "0x9eca2b38b18b5dfe",
"mainnet": "0x8624b52f9ddcd04a"
}
},
"FlowIDTableStaking_old": {
"source": "./contracts/FlowIDTableStaking_old.cdc",
"FlowServiceAccount": {
"source": "./contracts/FlowServiceAccount.cdc",
"aliases": {
"testing": "0x0000000000000007"
"testing": "0x0000000000000007",
"emulator": "0xf8d6e0586b0a20c7",
"previewnet": "0xb6763b4399a888c8",
"testnet": "0x8c5303eaa26202d6",
"mainnet": "0xe467b9dd11fa00df"
}
},
"FlowServiceAccount": {
"source": "./contracts/FlowServiceAccount.cdc",
"FlowToken": {
"source": "./contracts/FlowToken.cdc",
"aliases": {
"testing": "0x0000000000000007"
"testing": "0x0000000000000007",
"emulator": "0x0ae53cb6e3f42a79",
"previewnet": "0x4445e7ad11568276",
"testnet": "0x7e60df042a9c0868",
"mainnet": "0x1654653399040a61"
}
},
"FlowStakingCollection": {
"source": "./contracts/FlowStakingCollection.cdc",
"FlowFees": {
"source": "./contracts/FlowFees.cdc",
"aliases": {
"testing": "0x0000000000000007"
"testing": "0x0000000000000007",
"emulator": "0xe5a8b7f23e8b548f",
"previewnet": "0xab086ce9cc29fc80",
"testnet": "0x912d5440f7e3769e",
"mainnet": "0xf919ee77447b7497"
}
},
"FlowStorageFees": {
"source": "./contracts/FlowStorageFees.cdc",
"aliases": {
"testing": "0x0000000000000007"
"testing": "0x0000000000000007",
"emulator": "0xf8d6e0586b0a20c7",
"previewnet": "0xab086ce9cc29fc80",
"testnet": "0x8c5303eaa26202d6",
"mainnet": "0xe467b9dd11fa00df"
}
},
"FlowToken": {
"source": "./contracts/FlowToken.cdc",
"LockedTokens": {
"source": "./contracts/LockedTokens.cdc",
"aliases": {
"testing": "0x0000000000000007"
"testing": "0x0000000000000007",
"emulator": "0xf8d6e0586b0a20c7",
"previewnet": "0xb6763b4399a888c8",
"testnet": "0x95e019a17d0e23d7",
"mainnet": "0x8d0e87b65159ae63"
}
},
"LockedTokens": {
"source": "./contracts/LockedTokens.cdc",
"FlowStakingCollection": {
"source": "./contracts/FlowStakingCollection.cdc",
"aliases": {
"testing": "0x0000000000000007"
"testing": "0x0000000000000007",
"emulator": "0xf8d6e0586b0a20c7",
"previewnet": "0xb6763b4399a888c8",
"testnet": "0x95e019a17d0e23d7",
"mainnet": "0x8d0e87b65159ae63"
}
},
"NodeVersionBeacon": {
"source": "./contracts/NodeVersionBeacon.cdc",
"aliases": {
"testing": "0x0000000000000007"
"testing": "0x0000000000000007",
"emulator": "0xf8d6e0586b0a20c7",
"previewnet": "0xb6763b4399a888c8",
"testnet": "0x8c5303eaa26202d6",
"mainnet": "0xe467b9dd11fa00df"
}
},
"RandomBeaconHistory": {
"source": "./contracts/RandomBeaconHistory.cdc",
"aliases": {
"testing": "0x0000000000000007"
"testing": "0x0000000000000007",
"emulator": "0xf8d6e0586b0a20c7",
"previewnet": "0xb6763b4399a888c8",
"testnet": "0x8c5303eaa26202d6",
"mainnet": "0xe467b9dd11fa00df"
}
},
"StakingProxy": {
"source": "./contracts/StakingProxy.cdc",
"aliases": {
"testing": "0x0000000000000007"
"testing": "0x0000000000000007",
"emulator": "0xf8d6e0586b0a20c7",
"previewnet": "0xb6763b4399a888c8",
"testnet": "0x7aad92e5a0715d21",
"mainnet": "0x62430cf28c26d095"
}
}
},
Expand Down
4 changes: 2 additions & 2 deletions lib/go/contracts/go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,8 @@ go 1.18
require (
github.com/kevinburke/go-bindata v3.24.0+incompatible
github.com/onflow/flow-core-contracts/lib/go/templates v0.15.2-0.20240215153337-0be5cb4b4bc9
github.com/onflow/flow-ft/lib/go/contracts v0.7.1-0.20240402160548-a9c331660956
github.com/onflow/flow-nft/lib/go/contracts v1.1.1-0.20240415194841-39036acfcfb5
github.com/onflow/flow-ft/lib/go/contracts v0.7.1-0.20240424142855-b518689a350b
github.com/onflow/flow-nft/lib/go/contracts v1.1.1-0.20240424144730-4a6f42d2a372
github.com/stretchr/testify v1.8.4
)

Expand Down
8 changes: 4 additions & 4 deletions lib/go/contracts/go.sum
Original file line number Diff line number Diff line change
Expand Up @@ -1617,14 +1617,14 @@ github.com/onflow/crypto v0.25.0 h1:BeWbLsh3ZD13Ej+Uky6kg1PL1ZIVBDVX+2MVBNwqddg=
github.com/onflow/crypto v0.25.0/go.mod h1:C8FbaX0x8y+FxWjbkHy0Q4EASCDR9bSPWZqlpCLYyVI=
github.com/onflow/flow-core-contracts/lib/go/templates v0.15.2-0.20240215153337-0be5cb4b4bc9 h1:rTemckPWir+N/m1GyhT8jdiETj0RiWc8FiwItE2Nxyg=
github.com/onflow/flow-core-contracts/lib/go/templates v0.15.2-0.20240215153337-0be5cb4b4bc9/go.mod h1:PZrrCsllIt/Bu4HlJtisXfvDrOt1aLKU5R70vsZHKRc=
github.com/onflow/flow-ft/lib/go/contracts v0.7.1-0.20240402160548-a9c331660956 h1:WbG97gmdbgfYZT8YCyye0fAwz4k5vditXcPGoy63m9M=
github.com/onflow/flow-ft/lib/go/contracts v0.7.1-0.20240402160548-a9c331660956/go.mod h1:PwsL8fC81cjnUnTfmyL/HOIyHnyaw/JA474Wfj2tl6A=
github.com/onflow/flow-ft/lib/go/contracts v0.7.1-0.20240424142855-b518689a350b h1:HutxHvyc06UbJncEUieAwt7Nf1lG5uiIGVok6w031LM=
github.com/onflow/flow-ft/lib/go/contracts v0.7.1-0.20240424142855-b518689a350b/go.mod h1:PwsL8fC81cjnUnTfmyL/HOIyHnyaw/JA474Wfj2tl6A=
github.com/onflow/flow-ft/lib/go/templates v0.7.1-0.20240213220156-959b70719876 h1:fZj39XxayIL7uvKvonNI3MtQM3wsFJ8oRl/XW/0rn7A=
github.com/onflow/flow-ft/lib/go/templates v0.7.1-0.20240213220156-959b70719876/go.mod h1:uQ8XFqmMK2jxyBSVrmyuwdWjTEb+6zGjRYotfDJ5pAE=
github.com/onflow/flow-go-sdk v1.0.0-M1 h1:mke/ebYwNRRWPZqcwCV56Alx0A8psew43ZbSEUQ4TL8=
github.com/onflow/flow-go-sdk v1.0.0-M1/go.mod h1:TDW0MNuCs4SvqYRUzkbRnRmHQL1h4X8wURsCw9P9beo=
github.com/onflow/flow-nft/lib/go/contracts v1.1.1-0.20240415194841-39036acfcfb5 h1:SM+m82Ezc/SvR+l17DRjfdaA8KSOIp9iUxD/sdMky5k=
github.com/onflow/flow-nft/lib/go/contracts v1.1.1-0.20240415194841-39036acfcfb5/go.mod h1:2gpbza+uzs1k7x31hkpBPlggIRkI53Suo0n2AyA2HcE=
github.com/onflow/flow-nft/lib/go/contracts v1.1.1-0.20240424144730-4a6f42d2a372 h1:jVrUFQ5Fn3gBKZ3Q6OVhceF2vKiHg1la6g3DuRKvdoo=
github.com/onflow/flow-nft/lib/go/contracts v1.1.1-0.20240424144730-4a6f42d2a372/go.mod h1:2gpbza+uzs1k7x31hkpBPlggIRkI53Suo0n2AyA2HcE=
github.com/onflow/flow-nft/lib/go/templates v0.0.0-20240213205729-48f42d9896f8 h1:BqgQgXktxVFv8erjCaSHpL0CP+pa5M8g655GyF/t4JM=
github.com/onflow/flow-nft/lib/go/templates v0.0.0-20240213205729-48f42d9896f8/go.mod h1:p+2hRvtjLUR3MW1NsoJe5Gqgr2eeH49QB6+s6ze00w0=
github.com/onflow/flow/protobuf/go/flow v0.3.2-0.20231121210617-52ee94b830c2 h1:qZjl4wSTG/E9znEjkHF0nNaEdlBLJoOEAtr7xUsTNqc=
Expand Down
6 changes: 3 additions & 3 deletions lib/go/contracts/internal/assets/assets.go

Large diffs are not rendered by default.

4 changes: 2 additions & 2 deletions lib/go/templates/go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,9 @@ go 1.18
require (
github.com/kevinburke/go-bindata v3.24.0+incompatible
github.com/onflow/cadence v1.0.0-M3
github.com/onflow/flow-ft/lib/go/templates v0.7.1-0.20240402160548-a9c331660956
github.com/onflow/flow-ft/lib/go/templates v0.7.1-0.20240424142855-b518689a350b
github.com/onflow/flow-go-sdk v1.0.0-M1
github.com/onflow/flow-nft/lib/go/templates v0.0.0-20240415194841-39036acfcfb5
github.com/onflow/flow-nft/lib/go/templates v0.0.0-20240424144730-4a6f42d2a372
github.com/psiemens/sconfig v0.1.0
github.com/spf13/cobra v1.5.0
)
Expand Down
8 changes: 4 additions & 4 deletions lib/go/templates/go.sum
Original file line number Diff line number Diff line change
Expand Up @@ -1615,12 +1615,12 @@ github.com/onflow/cadence v1.0.0-M3 h1:bSydJise9pU4aALloUKv/EWmDLITRlbBpuG8OPByd
github.com/onflow/cadence v1.0.0-M3/go.mod h1:odXGZZ/wGNA5mwT8bC9v8u8EXACHllB2ABSZK65TGL8=
github.com/onflow/crypto v0.25.0 h1:BeWbLsh3ZD13Ej+Uky6kg1PL1ZIVBDVX+2MVBNwqddg=
github.com/onflow/crypto v0.25.0/go.mod h1:C8FbaX0x8y+FxWjbkHy0Q4EASCDR9bSPWZqlpCLYyVI=
github.com/onflow/flow-ft/lib/go/templates v0.7.1-0.20240402160548-a9c331660956 h1:Ef9UKtwNcHVG2R8YskYiwRoaTZFhAVmQ0ZN3c0eDUGU=
github.com/onflow/flow-ft/lib/go/templates v0.7.1-0.20240402160548-a9c331660956/go.mod h1:uQ8XFqmMK2jxyBSVrmyuwdWjTEb+6zGjRYotfDJ5pAE=
github.com/onflow/flow-ft/lib/go/templates v0.7.1-0.20240424142855-b518689a350b h1:Z/Fn+7ysdfuv8yKzhPlZ+HrADm3zaUi+zb6BP4JWLfU=
github.com/onflow/flow-ft/lib/go/templates v0.7.1-0.20240424142855-b518689a350b/go.mod h1:uQ8XFqmMK2jxyBSVrmyuwdWjTEb+6zGjRYotfDJ5pAE=
github.com/onflow/flow-go-sdk v1.0.0-M1 h1:mke/ebYwNRRWPZqcwCV56Alx0A8psew43ZbSEUQ4TL8=
github.com/onflow/flow-go-sdk v1.0.0-M1/go.mod h1:TDW0MNuCs4SvqYRUzkbRnRmHQL1h4X8wURsCw9P9beo=
github.com/onflow/flow-nft/lib/go/templates v0.0.0-20240415194841-39036acfcfb5 h1:yi3+QdygbkHFU+2vJMWyriO+BDYum2BqJtrVqfsnuQM=
github.com/onflow/flow-nft/lib/go/templates v0.0.0-20240415194841-39036acfcfb5/go.mod h1:p+2hRvtjLUR3MW1NsoJe5Gqgr2eeH49QB6+s6ze00w0=
github.com/onflow/flow-nft/lib/go/templates v0.0.0-20240424144730-4a6f42d2a372 h1:zjEANfSuCctAQ79IotaP6+v0jZiJsDAlikcZC++BTpc=
github.com/onflow/flow-nft/lib/go/templates v0.0.0-20240424144730-4a6f42d2a372/go.mod h1:p+2hRvtjLUR3MW1NsoJe5Gqgr2eeH49QB6+s6ze00w0=
github.com/onflow/flow/protobuf/go/flow v0.3.2-0.20231121210617-52ee94b830c2 h1:qZjl4wSTG/E9znEjkHF0nNaEdlBLJoOEAtr7xUsTNqc=
github.com/onflow/flow/protobuf/go/flow v0.3.2-0.20231121210617-52ee94b830c2/go.mod h1:NA2pX2nw8zuaxfKphhKsk00kWLwfd+tv8mS23YXO4Sk=
github.com/onflow/sdks v0.5.1-0.20230912225508-b35402f12bba/go.mod h1:F0dj0EyHC55kknLkeD10js4mo14yTdMotnWMslPirrU=
Expand Down
Loading
Loading