Skip to content

Commit 3876bfa

Browse files
Adding MARKs into code related to Transaction.data composing.
1 parent bcc2dea commit 3876bfa

File tree

9 files changed

+39
-1
lines changed

9 files changed

+39
-1
lines changed

Sources/web3swift/EthereumAPICalls/Ethereum/Eth+Call.swift

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ import Core
1111
extension web3.Eth {
1212

1313
public func callTransaction(_ transaction: EthereumTransaction, transactionOptions: TransactionOptions?) async throws -> Data {
14+
// MARK: Read data from ABI flow
1415
guard let transactionParameters = transaction.encodeAsDictionary(from: transactionOptions?.from) else { throw Web3Error.dataError}
1516
let request: APIRequest = .call(transactionParameters, transactionOptions?.callOnBlock ?? .latest)
1617
let response: APIResponse<Data> = try await APIRequest.sendRequest(with: self.provider, for: request)

Sources/web3swift/EthereumAPICalls/Ethereum/Eth+SendTransaction.swift

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,9 +46,11 @@ extension web3.Eth {
4646
}
4747
return try await self.web3.eth.send(raw: assembledTransaction)
4848
}
49-
49+
// MARK: Writing Data flow
50+
// From EthereumTransaction.data to TransactionParameters.data
5051
guard let transactionParameters = transaction.encodeAsDictionary(from: transactionOptions?.from) else { throw Web3Error.dataError }
5152

53+
// MARK: Sending Data flow
5254
let request: APIRequest = .sendTransaction(transactionParameters)
5355
let response: APIResponse<Hash> = try await APIRequest.sendRequest(with: self.provider, for: request)
5456

Sources/web3swift/Web3/Web3+Contract.swift

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,7 @@ extension web3 {
4747
self.transactionOptions = mergedOptions
4848
}
4949

50+
// MARK: Writing Data flow
5051
/// Deploys a constact instance using the previously provided ABI, some bytecode, constructor parameters and options.
5152
/// If extraData is supplied it is appended to encoded bytecode and constructor parameters.
5253
///
@@ -57,6 +58,7 @@ extension web3 {
5758
extraData: Data? = nil,
5859
transactionOptions: TransactionOptions? = nil) -> WriteTransaction? {
5960
let mergedOptions = self.transactionOptions?.merge(transactionOptions)
61+
// MARK: Writing Data flow
6062
guard var tx = self.contract.deploy(bytecode: bytecode,
6163
constructor: constructor,
6264
parameters: parameters,
@@ -93,8 +95,10 @@ extension web3 {
9395
/// Returns a "Transaction intermediate" object.
9496
public func read(_ method: String = "fallback", parameters: [AnyObject] = [AnyObject](), extraData: Data = Data(), transactionOptions: TransactionOptions? = nil) -> ReadTransaction? {
9597
let mergedOptions = self.transactionOptions?.merge(transactionOptions)
98+
// MARK: - Encoding ABI Data flow
9699
guard var tx = self.contract.method(method, parameters: parameters, extraData: extraData) else {return nil}
97100
tx.chainID = self.web3.provider.network?.chainID
101+
// MARK: Read data from ABI flow
98102
let writeTX = ReadTransaction.init(transaction: tx, web3: self.web3, contract: self.contract, method: method, transactionOptions: mergedOptions)
99103
return writeTX
100104
}

Sources/web3swift/Web3/Web3+MutatingTransaction.swift

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -183,6 +183,7 @@ public class WriteTransaction: ReadTransaction {
183183
var cleanedOptions = TransactionOptions()
184184
cleanedOptions.from = mergedOptions.from
185185
cleanedOptions.to = mergedOptions.to
186+
// MARK: Sending Data flow
186187
return try await web3.eth.send(transaction, transactionOptions: cleanedOptions, password: password)
187188
}
188189

Sources/web3swift/Web3/Web3+ReadingTransaction.swift

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@ public class ReadTransaction {
3636
// and only then it decodes it.
3737
// It should be splitted in this way up to three (merge, send, decode)
3838
public func decodedData(with transactionOptions: TransactionOptions? = nil) async throws -> [String: Any] {
39+
// MARK: Read data from ABI flow
3940
var assembledTransaction: EthereumTransaction = self.transaction
4041
let mergedOptions = self.transactionOptions.merge(transactionOptions)
4142
var optionsForCall = TransactionOptions()
@@ -47,6 +48,7 @@ public class ReadTransaction {
4748
assembledTransaction.value = value
4849
}
4950

51+
// MARK: Read data from ABI flow
5052
let data: Data = try await self.web3.eth.callTransaction(assembledTransaction, transactionOptions: optionsForCall)
5153

5254
if self.method == "fallback" {

Tests/web3swiftTests/localTests/AdvancedABIv2Tests.swift

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,7 @@ class AdvancedABIv2Tests: LocalTestCase {
5959
var contract = web3.contract(abiString, at: nil, abiVersion: 2)!
6060

6161
let parameters = [] as [AnyObject]
62+
// MARK: Writing Data flow
6263
let deployTx = contract.deploy(bytecode: bytecode, parameters: parameters)!
6364
deployTx.transactionOptions.from = allAddresses[0]
6465
deployTx.transactionOptions.gasLimit = .manual(3000000)
@@ -79,6 +80,8 @@ class AdvancedABIv2Tests: LocalTestCase {
7980
}
8081

8182
contract = web3.contract(abiString, at: receipt.contractAddress, abiVersion: 2)!
83+
// MARK: Read data from ABI flow
84+
// MARK: - Encoding ABI Data flow
8285
let tx = contract.read("testStaticArray")
8386
let testStaticArray = try await tx!.decodedData()
8487
print(testStaticArray.description)
@@ -93,6 +96,7 @@ class AdvancedABIv2Tests: LocalTestCase {
9396
var contract = web3.contract(abiString, at: nil, abiVersion: 2)!
9497

9598
let parameters = [] as [AnyObject]
99+
// MARK: Writing Data flow
96100
let deployTx = contract.deploy(bytecode: bytecode, parameters: parameters)!
97101
deployTx.transactionOptions.from = allAddresses[0]
98102
deployTx.transactionOptions.gasLimit = .manual(3000000)
@@ -113,6 +117,7 @@ class AdvancedABIv2Tests: LocalTestCase {
113117
}
114118

115119
contract = web3.contract(abiString, at: receipt.contractAddress, abiVersion: 2)!
120+
116121
let tx = contract.read("testDynArray")
117122
let testDynArray = try await tx!.decodedData()
118123
print(testDynArray.description)
@@ -127,6 +132,7 @@ class AdvancedABIv2Tests: LocalTestCase {
127132
var contract = web3.contract(abiString, at: nil, abiVersion: 2)!
128133

129134
let parameters = [] as [AnyObject]
135+
// MARK: Writing Data flow
130136
let deployTx = contract.deploy(bytecode: bytecode, parameters: parameters)!
131137
deployTx.transactionOptions.from = allAddresses[0]
132138
deployTx.transactionOptions.gasLimit = .manual(3000000)
@@ -147,6 +153,8 @@ class AdvancedABIv2Tests: LocalTestCase {
147153
}
148154

149155
contract = web3.contract(abiString, at: receipt.contractAddress, abiVersion: 2)!
156+
// MARK: Read data from ABI flow
157+
// MARK: - Encoding ABI Data flow
150158
let tx = contract.read("testDynOfDyn")
151159
let testDynOfDyn = try await tx!.decodedData()
152160
print(testDynOfDyn.description)
@@ -161,6 +169,7 @@ class AdvancedABIv2Tests: LocalTestCase {
161169
var contract = web3.contract(abiString, at: nil, abiVersion: 2)!
162170

163171
let parameters = [] as [AnyObject]
172+
// MARK: Writing Data flow
164173
let deployTx = contract.deploy(bytecode: bytecode, parameters: parameters)!
165174
deployTx.transactionOptions.from = allAddresses[0]
166175
deployTx.transactionOptions.gasLimit = .manual(3000000)
@@ -181,6 +190,8 @@ class AdvancedABIv2Tests: LocalTestCase {
181190
}
182191

183192
contract = web3.contract(abiString, at: receipt.contractAddress, abiVersion: 2)!
193+
// MARK: Read data from ABI flow
194+
// MARK: - Encoding ABI Data flow
184195
let tx = contract.read("testStOfDyn")
185196
let testStOfDyn = try await tx!.decodedData()
186197
print(testStOfDyn.description)
@@ -192,6 +203,8 @@ class AdvancedABIv2Tests: LocalTestCase {
192203
let web3 = try await Web3.new(LocalTestCase.url)
193204
let contract = web3.contract(abiString, at: contractAddress, abiVersion: 2)
194205
XCTAssert(contract != nil)
206+
// MARK: Read data from ABI flow
207+
// MARK: - Encoding ABI Data flow
195208
let tx = contract?.read("empty")
196209
XCTAssertNotNil(tx)
197210
let _ = try await tx!.decodedData()
@@ -203,6 +216,8 @@ class AdvancedABIv2Tests: LocalTestCase {
203216
let web3 = try await Web3.new(LocalTestCase.url)
204217
let contract = web3.contract(abiString, at: contractAddress, abiVersion: 2)
205218
XCTAssert(contract != nil)
219+
// MARK: Read data from ABI flow
220+
// MARK: - Encoding ABI Data flow
206221
let tx = contract?.read("getFlagData")
207222
XCTAssertNotNil(tx)
208223
let _ = try await tx!.call()

Tests/web3swiftTests/localTests/BasicLocalNodeTests.swift

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ class BasicLocalNodeTests: LocalTestCase {
2323
let contract = web3.contract(abiString, at: nil, abiVersion: 2)!
2424

2525
let parameters = [] as [AnyObject]
26+
// MARK: Writing Data flow
2627
let deployTx = contract.deploy(bytecode: bytecode, parameters: parameters)!
2728
deployTx.transactionOptions.from = allAddresses[0]
2829
deployTx.transactionOptions.gasLimit = .manual(3000000)

Tests/web3swiftTests/localTests/ERC20ClassTests.swift

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,10 +15,17 @@ class ERC20ClassTests: LocalTestCase {
1515
func testERC20TokenCreation() async throws {
1616
let (web3, _, receipt, _) = try await TestHelpers.localDeployERC20()
1717
let erc20token = ERC20.init(web3: web3, provider: web3.provider, address: receipt.contractAddress!)
18+
// MARK: No data used in call
1819
try await erc20token.readProperties()
1920

21+
// MARK: - Duplicated call readProperties
22+
// MARK: No data used in call
2023
let symbol = try await erc20token.symbol()
24+
// MARK: - Duplicated call readProperties
25+
// MARK: No data used in call
2126
let name = try await erc20token.name()
27+
// MARK: - Duplicated call readProperties
28+
// MARK: No data used in call
2229
let decimals = try await erc20token.decimals()
2330
XCTAssert(symbol == "w3s")
2431
XCTAssert(name == "web3swift")

Tests/web3swiftTests/localTests/PromisesTests.swift

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -79,22 +79,27 @@ class web3swiftPromisesTests: XCTestCase {
7979

8080
let amount1 = Utilities.parseToBigUInt("0.000000000000000001", units: Utilities.Units.eth) // 1 wei
8181

82+
// MARK: Writing Data flow
8283
guard let tx1 = contract.write("test",
8384
parameters: [amount1] as [AnyObject],
8485
extraData: Data(),
8586
transactionOptions: options) else {
8687
return
8788
}
89+
// MARK: Writing Data flow
8890
let estimate1 = try await tx1.estimateGas(with: nil)
8991
print(estimate1)
9092

9193
let amount2 = Utilities.parseToBigUInt("0.00000005", units: .eth) // 50 gwei
94+
95+
// MARK: Writing Data flow
9296
guard let tx2 = contract.write("test",
9397
parameters: [amount2] as [AnyObject],
9498
extraData: Data(),
9599
transactionOptions: options) else {
96100
return
97101
}
102+
// MARK: Writing Data flow
98103
let estimate2 = try await tx2.estimateGas(with: nil)
99104
print(estimate2)
100105
XCTAssertLessThanOrEqual(estimate2 - estimate1, 22000)

0 commit comments

Comments
 (0)