- "source": "import Crypto\nimport FlowStakingCollection from 0x8d0e87b65159ae63\n\n/// Registers a delegator in the staking collection resource\n/// for the specified node information and the amount of tokens to commit\n\ntransaction(id: String,\n role: UInt8,\n networkingAddress: String,\n networkingKey: String,\n stakingKey: String,\n amount: UFix64,\n machineAccountKey: String, \n machineAccountKeySignatureAlgorithm: UInt8, \n machineAccountKeyHashAlgorithm: UInt8) {\n\n let stakingCollectionRef: auth(FlowStakingCollection.CollectionOwner) \u0026FlowStakingCollection.StakingCollection\n\n prepare(account: auth(BorrowValue) \u0026Account) {\n self.stakingCollectionRef = account.storage.borrow\u003cauth(FlowStakingCollection.CollectionOwner) \u0026FlowStakingCollection.StakingCollection\u003e(from: FlowStakingCollection.StakingCollectionStoragePath)\n ?? panic(\"Could not borrow a reference to a StakingCollection in the primary user's account\")\n\n if let machineAccount = self.stakingCollectionRef.registerNode(\n id: id,\n role: role,\n networkingAddress: networkingAddress,\n networkingKey: networkingKey,\n stakingKey: stakingKey,\n amount: amount,\n payer: account\n ) {\n let sigAlgo = SignatureAlgorithm(rawValue: machineAccountKeySignatureAlgorithm)\n ?? panic(\"Could not get a signature algorithm from the raw enum value provided\")\n\n let hashAlgo = HashAlgorithm(rawValue: machineAccountKeyHashAlgorithm)\n ?? panic(\"Could not get a hash algorithm from the raw enum value provided\")\n \n let publicKey = PublicKey(\n\t\t\t publicKey: machineAccountKey.decodeHex(),\n\t\t\t signatureAlgorithm: sigAlgo\n\t\t )\n machineAccount.keys.add(publicKey: publicKey, hashAlgorithm: hashAlgo, weight: 1000.0)\n }\n }\n}",
0 commit comments