Skip to content

Commit 69dbeab

Browse files
authored
Merge pull request #183 from onflow/nialexsan/fyv-v2-strategy-deployment
PYUSD0 WFLOW strategies v2
2 parents ce6c29b + 8d65034 commit 69dbeab

16 files changed

Lines changed: 2375 additions & 437 deletions

cadence/contracts/FlowYieldVaultsStrategiesV2.cdc

Lines changed: 803 additions & 203 deletions
Large diffs are not rendered by default.
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
import "FungibleToken"
2+
import "FungibleTokenMetadataViews"
3+
import "ViewResolver"
4+
5+
/// Returns the Cadence FungibleToken balance for the given account, resolving the
6+
/// vault's public metadata path dynamically via the FTVaultData metadata view.
7+
///
8+
/// Useful for checking balances of VM-bridged ERC-20 tokens without hard-coding public paths.
9+
///
10+
/// @param address: The account address to check
11+
/// @param vaultIdentifier: The Cadence type identifier (e.g. "A.1e4aa0b87d10b141.EVMVMBridgedToken_...Vault")
12+
/// @return UFix64?: The vault balance, or nil if the vault is not set up for this account
13+
///
14+
access(all) fun main(address: Address, vaultIdentifier: String): UFix64? {
15+
let vaultType = CompositeType(vaultIdentifier)
16+
if vaultType == nil { return nil }
17+
18+
let contractAddr = vaultType!.address
19+
if contractAddr == nil { return nil }
20+
let contractName = vaultType!.contractName
21+
if contractName == nil { return nil }
22+
23+
let viewResolver = getAccount(contractAddr!).contracts.borrow<&{ViewResolver}>(name: contractName!)
24+
if viewResolver == nil { return nil }
25+
26+
let vaultData = viewResolver!.resolveContractView(
27+
resourceType: vaultType!,
28+
viewType: Type<FungibleTokenMetadataViews.FTVaultData>()
29+
) as? FungibleTokenMetadataViews.FTVaultData
30+
if vaultData == nil { return nil }
31+
32+
return getAccount(address).capabilities.borrow<&{FungibleToken.Vault}>(vaultData!.metadataPath)?.balance
33+
}

cadence/tests/FlowYieldVaultsStrategiesV2_FUSDEV_test.cdc

Lines changed: 212 additions & 24 deletions
Large diffs are not rendered by default.

0 commit comments

Comments
 (0)