TransactionSEALED

╳%╱◆■╲□◇▪○^▒◆?█$░&!▫#&╳^?&╳~▪?&▒▪!╳%%╲#@*●▒$▪╳□▓!░□▓●○^◇#&!○?*@□

Transaction ID

Timestamp

Jan 19, 2026, 07:14:42 AM UTC
1mo ago

Block Height

139,361,034

Computation

0

Execution Error

Error Code: 1009

error caused by: 1 error occurred:

Raw Error

[Error Code: 1009] error caused by: 1 error occurred: * transaction verification failed: [Error Code: 1006] invalid proposal key: public key 6 on account f380b22ef386ac7e does not have a valid signature: [Error Code: 1009] invalid envelope key: public key 6 on account f380b22ef386ac7e does not have a valid signature: signature is not valid

Transaction Summary

Transaction

Script Arguments

0vaultIdentifierString
A.f1ab99c82dee3526.USDCFlow.Vault
1senderAddress
2receiverAddress
3amountUFix64
0.00100000

Cadence Script

1import HybridCustody from 0xd8a7e05a7ac670c0
2
3// HC-owned imports
4import CapabilityFactory from 0xd8a7e05a7ac670c0
5import CapabilityFilter from 0xd8a7e05a7ac670c0
6
7import FungibleToken from 0xf233dcee88fe0abe
8import ViewResolver from 0x1d7e57aa55817448
9import FungibleTokenMetadataViews from 0xf233dcee88fe0abe
10
11
12
13transaction(vaultIdentifier:String, sender: Address, receiver: Address, amount: UFix64 ) {
14  // The Vault resource that holds the tokens that are being transferred
15  let paymentVault: @{FungibleToken.Vault}
16  let vaultData: FungibleTokenMetadataViews.FTVaultData
17
18  prepare(signer: auth(Storage) &Account) {
19    let type = CompositeType(vaultIdentifier)
20    let identifierSplit = vaultIdentifier.split(separator: ".")
21    let address = Address.fromString("0x".concat(identifierSplit[1]))!
22    let name = identifierSplit[2]!
23
24    let viewResolver = getAccount(address).contracts.borrow<&{ViewResolver}>(name: name)
25        ?? panic("Could not borrow ViewResolver from FungibleToken contract")
26    // signer is the parent account
27    // get the manager resource and borrow childAccount
28    let m = signer.storage.borrow<auth(HybridCustody.Manage) &HybridCustody.Manager>(from: HybridCustody.ManagerStoragePath)
29      ?? panic("manager does not exist")
30    let childAcct = m.borrowAccount(addr: sender) ?? panic("child account not found")
31     
32    self.vaultData = viewResolver.resolveContractView(
33                resourceType: type,
34                viewType: Type<FungibleTokenMetadataViews.FTVaultData>()
35            ) as! FungibleTokenMetadataViews.FTVaultData? ?? panic("Could not resolve FTVaultData view")
36
37    //get Ft cap from child account
38    let capType = Type<auth(FungibleToken.Withdraw) &{FungibleToken.Provider}>()
39    let controllerID = childAcct.getControllerIDForType(type: capType, forPath: self.vaultData.storagePath)
40      ?? panic("no controller found for capType")
41    
42    let cap = childAcct.getCapability(controllerID: controllerID, type: capType) ?? panic("no cap found")
43    let providerCap = cap as! Capability<auth(FungibleToken.Withdraw) &{FungibleToken.Provider}>
44    assert(providerCap.check(), message: "invalid provider capability")
45    
46    // Get a reference to the child's stored vault
47    let vaultRef = providerCap.borrow()!
48
49    // Withdraw tokens from the signer's stored vault
50    self.paymentVault <- vaultRef.withdraw(amount: amount)
51  }
52
53  execute {
54    // Get the recipient's public account object
55    let recipient = getAccount(receiver)
56
57    // Get a reference to the recipient's Receiver
58    let receiverRef = recipient.capabilities.get<&{FungibleToken.Receiver}>(self.vaultData.receiverPath)!.borrow()
59      ?? panic("Could not borrow receiver reference to the recipient's Vault")
60
61    // Deposit the withdrawn tokens in the recipient's receiver
62    receiverRef.deposit(from: <-self.paymentVault)
63  }
64}