Skip to content

Commit f5fdc91

Browse files
ContractProtocol.method now returns Data instead of CodableTransaction
Delete for `Contract.createReadOperation` `transactionOptions` parameter (and in all calls too). Builds.
1 parent a8443d0 commit f5fdc91

24 files changed

+429
-433
lines changed

Documentation/README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -154,7 +154,7 @@ let parameters: [AnyObject] = <PARAMETERS>
154154
let extraData: Data = <DATA>
155155
let transactionOptions: TransactionOptions = <OPTIONS>
156156

157-
let transaction = contract.read(method, parameters: parameters, extraData: extraData, transactionOptions: transactionOptions)
157+
let transaction = contract.read(method, parameters: parameters, extraData: extraData )
158158
```
159159

160160
Here is the example how you should send transaction to some contract method:
@@ -164,7 +164,7 @@ let method: String = <CONTRACT METHOD NAME>
164164
let parameters: [AnyObject] = <PARAMETERS>
165165
let extraData: Data = <DATA>
166166
let transactionOptions: TransactionOptions = <OPTIONS>
167-
let transaction = contract.write(method, parameters: parameters, extraData: extraData, transactionOptions: transactionOptions)
167+
let transaction = contract.write(method, parameters: parameters, extraData: extraData )
168168
```
169169

170170
> How to test on a local node?

Sources/Core/Contract/ContractProtocol.swift

Lines changed: 4 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -135,7 +135,7 @@ public protocol ContractProtocol {
135135
/// - parameters: method input arguments;
136136
/// - extraData: additional data to append at the end of `transaction.data` field;
137137
/// - Returns: transaction object if `method` was found and `parameters` were successfully encoded.
138-
func method(_ method: String, parameters: [AnyObject], extraData: Data?) -> CodableTransaction?
138+
func method(_ method: String, parameters: [AnyObject], extraData: Data?) -> Data?
139139

140140
/// Decode output data of a function.
141141
/// - Parameters:
@@ -261,17 +261,10 @@ extension DefaultContractProtocol {
261261
/// - params: EthereumParameters with no contract method call encoded data.
262262
public func method(_ method: String,
263263
parameters: [AnyObject],
264-
extraData: Data?) -> CodableTransaction? {
265-
guard let to = self.address else { return nil }
266-
267-
// FIXME: This should be changed up to release
268-
var transaction = CodableTransaction(to: to)
269-
264+
extraData: Data?) -> Data? {
270265
// MARK: - Encoding ABI Data flow
271266
if method == "fallback" {
272-
// FIXME: Return parameters
273-
return CodableTransaction(to: to, value: BigUInt(0), data: extraData ?? Data()//, parameters: params
274-
)
267+
return extraData ?? Data()
275268
}
276269

277270
let method = Data.fromHex(method) == nil ? method : method.addHexPrefix().lowercased()
@@ -285,10 +278,8 @@ extension DefaultContractProtocol {
285278
encodedData.append(extraData)
286279
}
287280

288-
transaction.data = encodedData
289-
290281
// MARK: - Encoding ABI Data flow
291-
return transaction
282+
return encodedData
292283
}
293284

294285
public func parseEvent(_ eventLog: EventLog) -> (eventName: String?, eventData: [String: Any]?) {

Sources/web3swift/HookedFunctions/Web3+BrowserFunctions.swift

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,7 @@ extension web3.BrowserFunctions {
8181
// transactionOptions.value = options.value ?? 0
8282
// transactionOptions.gasLimitPolicy = options.gasLimitPolicy ?? .automatic
8383
// transactionOptions.gasPricePolicy = options.gasPricePolicy ?? .automatic
84-
// return await self.sendTransaction(transaction, transactionOptions: transactionOptions, password: password)
84+
// return await self.sendTransaction(transaction , password: password)
8585
// } catch { return nil }
8686
// }
8787

@@ -96,7 +96,7 @@ extension web3.BrowserFunctions {
9696
// transactionOptions.value = options.value ?? 0
9797
// transactionOptions.gasLimitPolicy = .automatic
9898
// transactionOptions.gasPricePolicy = options.gasPricePolicy ?? .automatic
99-
// return await self.estimateGas(transaction, transactionOptions: transactionOptions)
99+
// return await self.estimateGas(transaction )
100100
// } catch { return nil }
101101
// }
102102

@@ -159,7 +159,7 @@ extension web3.BrowserFunctions {
159159
// } else {
160160
// transactionOptions.nonce = .pending
161161
// }
162-
// return await self.signTransaction(transaction, transactionOptions: transactionOptions, password: password)
162+
// return await self.signTransaction(transaction , password: password)
163163
// } catch { return nil }
164164
// }
165165

@@ -184,7 +184,7 @@ extension web3.BrowserFunctions {
184184
// case .manual(let gasLimit):
185185
// transaction.parameters.gasLimit = gasLimit
186186
// default:
187-
// let gasLimit = try await self.web3.eth.estimateGas(for: transaction, transactionOptions: transactionOptions)
187+
// let gasLimit = try await self.web3.eth.estimateGas(for: transaction )
188188
// transaction.parameters.gasLimit = gasLimit
189189
// }
190190
//

Sources/web3swift/Tokens/ERC1155/Web3+ERC1155.swift

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,7 @@ public class ERC1155: IERC1155 {
7373
var transactionOptions = CodableTransaction.emptyTransaction
7474
transactionOptions.callOnBlock = .latest
7575

76-
guard let tokenIdPromise = try await contract.createReadOperation("id", parameters: [] as [AnyObject], extraData: Data(), transactionOptions: transactionOptions)?.decodedData() else {return}
76+
guard let tokenIdPromise = try await contract.createReadOperation("id", parameters: [] as [AnyObject], extraData: Data())?.decodedData() else {return}
7777

7878
guard let tokenId = tokenIdPromise["0"] as? BigUInt else {return}
7979
self._tokenId = tokenId
@@ -87,7 +87,7 @@ public class ERC1155: IERC1155 {
8787
basicOptions.from = from
8888
basicOptions.to = self.address
8989

90-
let tx = contract.createWriteOperation("safeTransferFrom", parameters: [originalOwner, to, id, value, data] as [AnyObject], transactionOptions: basicOptions)!
90+
let tx = contract.createWriteOperation("safeTransferFrom", parameters: [originalOwner, to, id, value, data] as [AnyObject] )!
9191
return tx
9292
}
9393

@@ -98,7 +98,7 @@ public class ERC1155: IERC1155 {
9898
basicOptions.to = self.address
9999

100100
let tx = contract
101-
.createWriteOperation("safeBatchTransferFrom", parameters: [originalOwner, to, ids, values, data] as [AnyObject], transactionOptions: basicOptions)!
101+
.createWriteOperation("safeBatchTransferFrom", parameters: [originalOwner, to, ids, values, data] as [AnyObject] )!
102102
return tx
103103
}
104104

@@ -107,12 +107,12 @@ public class ERC1155: IERC1155 {
107107
var transactionOptions = CodableTransaction.emptyTransaction
108108
transactionOptions.callOnBlock = .latest
109109
let result = try await contract
110-
.createReadOperation("balanceOf", parameters: [account, id] as [AnyObject], extraData: Data(), transactionOptions: self.transactionOptions)!
110+
.createReadOperation("balanceOf", parameters: [account, id] as [AnyObject], extraData: Data() )!
111111
.decodedData()
112112

113113
/*
114114
let result = try await contract
115-
.prepareToRead("balanceOf", parameters: [account, id] as [AnyObject], extraData: Data(), transactionOptions: self.transactionOptions)!
115+
.prepareToRead("balanceOf", parameters: [account, id] as [AnyObject], extraData: Data() )!
116116
.execute()
117117
.decodeData()
118118

@@ -127,15 +127,15 @@ public class ERC1155: IERC1155 {
127127
basicOptions.from = from
128128
basicOptions.to = self.address
129129

130-
let tx = contract.createWriteOperation("setApprovalForAll", parameters: [user, approved, scope] as [AnyObject], transactionOptions: basicOptions)!
130+
let tx = contract.createWriteOperation("setApprovalForAll", parameters: [user, approved, scope] as [AnyObject] )!
131131
return tx
132132
}
133133

134134
public func isApprovedForAll(owner: EthereumAddress, operator user: EthereumAddress, scope: Data) async throws -> Bool {
135135
let contract = self.contract
136136
var basicOptions = CodableTransaction.emptyTransaction
137137
basicOptions.callOnBlock = .latest
138-
let result = try await contract.createReadOperation("isApprovedForAll", parameters: [owner, user, scope] as [AnyObject], extraData: Data(), transactionOptions: self.transactionOptions)!.decodedData()
138+
let result = try await contract.createReadOperation("isApprovedForAll", parameters: [owner, user, scope] as [AnyObject], extraData: Data() )!.decodedData()
139139
guard let res = result["0"] as? Bool else {throw Web3Error.processingError(desc: "Failed to get result of expected type from the Ethereum node")}
140140
return res
141141
}
@@ -145,7 +145,7 @@ public class ERC1155: IERC1155 {
145145
var transactionOptions = CodableTransaction.emptyTransaction
146146
transactionOptions.callOnBlock = .latest
147147
transactionOptions.gasLimitPolicy = .manual(30000)
148-
let result = try await contract.createReadOperation("supportsInterface", parameters: [interfaceID] as [AnyObject], extraData: Data(), transactionOptions: self.transactionOptions)!.decodedData()
148+
let result = try await contract.createReadOperation("supportsInterface", parameters: [interfaceID] as [AnyObject], extraData: Data() )!.decodedData()
149149
guard let res = result["0"] as? Bool else {throw Web3Error.processingError(desc: "Failed to get result of expected type from the Ethereum node")}
150150
return res
151151
}

0 commit comments

Comments
 (0)