diff --git a/Sources/web3swift/Tokens/ERC20/Web3+ERC20.swift b/Sources/web3swift/Tokens/ERC20/Web3+ERC20.swift index d1aeba7ea..c35316753 100644 --- a/Sources/web3swift/Tokens/ERC20/Web3+ERC20.swift +++ b/Sources/web3swift/Tokens/ERC20/Web3+ERC20.swift @@ -62,7 +62,6 @@ public class ERC20: IERC20, ERC20BaseProperties { } public func transfer(from: EthereumAddress, to: EthereumAddress, amount: String) async throws -> WriteOperation { - let contract = self.contract self.transaction.from = from self.transaction.to = self.address self.transaction.callOnBlock = .latest @@ -80,12 +79,12 @@ public class ERC20: IERC20, ERC20BaseProperties { guard let value = Utilities.parseToBigUInt(amount, decimals: intDecimals) else { throw Web3Error.inputError(desc: "Can not parse inputted amount") } + contract.transaction = transaction let tx = contract.createWriteOperation("transfer", parameters: [to, value] as [AnyObject] )! return tx } public func transferFrom(from: EthereumAddress, to: EthereumAddress, originalOwner: EthereumAddress, amount: String) async throws -> WriteOperation { - let contract = self.contract self.transaction.from = from self.transaction.to = self.address self.transaction.callOnBlock = .latest @@ -103,13 +102,12 @@ public class ERC20: IERC20, ERC20BaseProperties { guard let value = Utilities.parseToBigUInt(amount, decimals: intDecimals) else { throw Web3Error.inputError(desc: "Can not parse inputted amount") } - + contract.transaction = transaction let tx = contract.createWriteOperation("transferFrom", parameters: [originalOwner, to, value] as [AnyObject] )! return tx } public func setAllowance(from: EthereumAddress, to: EthereumAddress, newAmount: String) async throws -> WriteOperation { - let contract = self.contract self.transaction.from = from self.transaction.to = self.address self.transaction.callOnBlock = .latest @@ -127,13 +125,12 @@ public class ERC20: IERC20, ERC20BaseProperties { guard let value = Utilities.parseToBigUInt(newAmount, decimals: intDecimals) else { throw Web3Error.inputError(desc: "Can not parse inputted amount") } - + contract.transaction = transaction let tx = contract.createWriteOperation("setAllowance", parameters: [to, value] as [AnyObject] )! return tx } public func approve(from: EthereumAddress, spender: EthereumAddress, amount: String) async throws -> WriteOperation { - let contract = self.contract self.transaction.from = from self.transaction.to = self.address self.transaction.callOnBlock = .latest @@ -151,13 +148,12 @@ public class ERC20: IERC20, ERC20BaseProperties { guard let value = Utilities.parseToBigUInt(amount, decimals: intDecimals) else { throw Web3Error.inputError(desc: "Can not parse inputted amount") } - + contract.transaction = transaction let tx = contract.createWriteOperation("approve", parameters: [spender, value] as [AnyObject] )! return tx } public func totalSupply() async throws -> BigUInt { - let contract = self.contract self.transaction.callOnBlock = .latest let result = try await contract .createReadOperation("totalSupply", parameters: [AnyObject](), extraData: Data() )!