diff --git a/README.md b/README.md index 23390e21..e56db3b6 100644 --- a/README.md +++ b/README.md @@ -19,7 +19,7 @@ To integrate stellar SDK into your Xcode project using CocoaPods, specify it in use_frameworks! target '' do - pod 'stellar-ios-mac-sdk', '~> 2.4.7' + pod 'stellar-ios-mac-sdk', '~> 2.4.8' end ``` @@ -44,7 +44,7 @@ $ brew install carthage To integrate stellar-ios-mac-sdk into your Xcode project using Carthage, specify it in your `Cartfile`: ```ogdl -github "soneso/stellar-ios-mac-sdk" ~> 2.4.7 +github "soneso/stellar-ios-mac-sdk" ~> 2.4.8 ``` Run `carthage update` to build the framework and drag the build `stellar-ios-mac-sdk.framework` into your Xcode project. @@ -52,7 +52,7 @@ Run `carthage update` to build the framework and drag the build `stellar-ios-mac ### Swift Package Manager ```swift -.package(name: "stellarsdk", url: "git@github.com:Soneso/stellar-ios-mac-sdk.git", from: "2.4.7"), +.package(name: "stellarsdk", url: "git@github.com:Soneso/stellar-ios-mac-sdk.git", from: "2.4.8"), ``` ### Manual diff --git a/soroban.md b/soroban.md index b3c071a5..c205f68d 100644 --- a/soroban.md +++ b/soroban.md @@ -227,7 +227,7 @@ sorobanServer.getTransaction(transactionHash: transactionId) { (response) -> (Vo Success! -#### Get Ledger Entry +#### Get Ledger Entries The Soroban-RPC server also provides the possibility to request values of ledger entries directly. It will allow you to directly inspect the current state of a contract, a contract’s code, or any other ledger entry. @@ -237,7 +237,7 @@ For example, to fetch contract wasm byte-code, use the ContractCode ledger entry let contractCodeKey = LedgerKeyContractCodeXDR(wasmId: wasmId, bodyType: ContractEntryBodyType.dataEntry) let ledgerKey = LedgerKeyXDR.contractCode(contractCodeKey) -sorobanServer.getLedgerEntry(base64EncodedKey:ledgerKey.xdrEncoded) { (response) -> (Void) in // ... +sorobanServer.getLedgerEntries(base64EncodedKeys:[ledgerKey.xdrEncoded]) { (response) -> (Void) in // ... ``` If you already have a contractId you can load the code as follows: diff --git a/stellar-ios-mac-sdk.podspec b/stellar-ios-mac-sdk.podspec index 759675c3..1cf8d5db 100644 --- a/stellar-ios-mac-sdk.podspec +++ b/stellar-ios-mac-sdk.podspec @@ -16,7 +16,7 @@ Pod::Spec.new do |s| # s.name = "stellar-ios-mac-sdk" - s.version = "2.4.7" + s.version = "2.4.8" s.summary = "Fully featured iOS and macOS SDK that provides APIs to build transactions and connect to Horizon server for the Stellar ecosystem." s.module_name = 'stellarsdk' s.swift_version = '5.0' diff --git a/stellarsdk/stellarsdk.xcodeproj/project.pbxproj b/stellarsdk/stellarsdk.xcodeproj/project.pbxproj index eb057ac4..3ed70894 100644 --- a/stellarsdk/stellarsdk.xcodeproj/project.pbxproj +++ b/stellarsdk/stellarsdk.xcodeproj/project.pbxproj @@ -731,6 +731,10 @@ 832AF8F1263C5AE800B7EB49 /* ClaimableBalanceClawedBackEffectResponse.swift in Sources */ = {isa = PBXBuildFile; fileRef = 832AF8EF263C5AE800B7EB49 /* ClaimableBalanceClawedBackEffectResponse.swift */; }; 832AF8FA263C5B0800B7EB49 /* TrustLineFlagsUpdatedEffectResponse.swift in Sources */ = {isa = PBXBuildFile; fileRef = 832AF8F9263C5B0800B7EB49 /* TrustLineFlagsUpdatedEffectResponse.swift */; }; 832AF8FB263C5B0800B7EB49 /* TrustLineFlagsUpdatedEffectResponse.swift in Sources */ = {isa = PBXBuildFile; fileRef = 832AF8F9263C5B0800B7EB49 /* TrustLineFlagsUpdatedEffectResponse.swift */; }; + 832C2B1C2AE958EE005BB7B8 /* GetLedgerEntriesResponse.swift in Sources */ = {isa = PBXBuildFile; fileRef = 832C2B1B2AE958EE005BB7B8 /* GetLedgerEntriesResponse.swift */; }; + 832C2B1D2AE958EE005BB7B8 /* GetLedgerEntriesResponse.swift in Sources */ = {isa = PBXBuildFile; fileRef = 832C2B1B2AE958EE005BB7B8 /* GetLedgerEntriesResponse.swift */; }; + 832C2B1F2AE95926005BB7B8 /* LedgerEntry.swift in Sources */ = {isa = PBXBuildFile; fileRef = 832C2B1E2AE95926005BB7B8 /* LedgerEntry.swift */; }; + 832C2B202AE95926005BB7B8 /* LedgerEntry.swift in Sources */ = {isa = PBXBuildFile; fileRef = 832C2B1E2AE95926005BB7B8 /* LedgerEntry.swift */; }; 8331520B203E2635007F8F84 /* TransactionsLocalTestCase.swift in Sources */ = {isa = PBXBuildFile; fileRef = 83315209203E2634007F8F84 /* TransactionsLocalTestCase.swift */; }; 8331520C203E2635007F8F84 /* TransactionsResponsesMock.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8331520A203E2635007F8F84 /* TransactionsResponsesMock.swift */; }; 833152132040CAAF007F8F84 /* StellarSDKLog.swift in Sources */ = {isa = PBXBuildFile; fileRef = 833152122040CAAF007F8F84 /* StellarSDKLog.swift */; }; @@ -866,8 +870,6 @@ 835F0CEA29770BB100793708 /* GetHealthResponse.swift in Sources */ = {isa = PBXBuildFile; fileRef = 835F0CE829770BB100793708 /* GetHealthResponse.swift */; }; 835F0CEC29770BD000793708 /* GetAccountResponse.swift in Sources */ = {isa = PBXBuildFile; fileRef = 835F0CEB29770BD000793708 /* GetAccountResponse.swift */; }; 835F0CED29770BD000793708 /* GetAccountResponse.swift in Sources */ = {isa = PBXBuildFile; fileRef = 835F0CEB29770BD000793708 /* GetAccountResponse.swift */; }; - 835F0CEF29770BED00793708 /* GetLedgerEntryResponse.swift in Sources */ = {isa = PBXBuildFile; fileRef = 835F0CEE29770BED00793708 /* GetLedgerEntryResponse.swift */; }; - 835F0CF029770BED00793708 /* GetLedgerEntryResponse.swift in Sources */ = {isa = PBXBuildFile; fileRef = 835F0CEE29770BED00793708 /* GetLedgerEntryResponse.swift */; }; 835F0CF229770C0800793708 /* SimulateTransactionResponse.swift in Sources */ = {isa = PBXBuildFile; fileRef = 835F0CF129770C0800793708 /* SimulateTransactionResponse.swift */; }; 835F0CF329770C0800793708 /* SimulateTransactionResponse.swift in Sources */ = {isa = PBXBuildFile; fileRef = 835F0CF129770C0800793708 /* SimulateTransactionResponse.swift */; }; 835F0CF829770C3F00793708 /* SimulateTransactionCost.swift in Sources */ = {isa = PBXBuildFile; fileRef = 835F0CF729770C3F00793708 /* SimulateTransactionCost.swift */; }; @@ -884,20 +886,20 @@ 835F0D0E2978295800793708 /* TransactionMetaV3XDR.swift in Sources */ = {isa = PBXBuildFile; fileRef = 835F0D0C2978295800793708 /* TransactionMetaV3XDR.swift */; }; 835F0D1029782A9500793708 /* ContractEventXDR.swift in Sources */ = {isa = PBXBuildFile; fileRef = 835F0D0F29782A9500793708 /* ContractEventXDR.swift */; }; 835F0D1129782A9500793708 /* ContractEventXDR.swift in Sources */ = {isa = PBXBuildFile; fileRef = 835F0D0F29782A9500793708 /* ContractEventXDR.swift */; }; - 836658EB2A6E72DA00E8B8D9 /* BumpFootprintExpirationOpXDR.swift in Sources */ = {isa = PBXBuildFile; fileRef = 836658EA2A6E72DA00E8B8D9 /* BumpFootprintExpirationOpXDR.swift */; }; - 836658EC2A6E72DA00E8B8D9 /* BumpFootprintExpirationOpXDR.swift in Sources */ = {isa = PBXBuildFile; fileRef = 836658EA2A6E72DA00E8B8D9 /* BumpFootprintExpirationOpXDR.swift */; }; - 836658EE2A6E73D700E8B8D9 /* BumpFootprintExpirationResultXDR.swift in Sources */ = {isa = PBXBuildFile; fileRef = 836658ED2A6E73D700E8B8D9 /* BumpFootprintExpirationResultXDR.swift */; }; - 836658EF2A6E73D700E8B8D9 /* BumpFootprintExpirationResultXDR.swift in Sources */ = {isa = PBXBuildFile; fileRef = 836658ED2A6E73D700E8B8D9 /* BumpFootprintExpirationResultXDR.swift */; }; + 836658EB2A6E72DA00E8B8D9 /* ExtendFootprintTTLOpXDR.swift in Sources */ = {isa = PBXBuildFile; fileRef = 836658EA2A6E72DA00E8B8D9 /* ExtendFootprintTTLOpXDR.swift */; }; + 836658EC2A6E72DA00E8B8D9 /* ExtendFootprintTTLOpXDR.swift in Sources */ = {isa = PBXBuildFile; fileRef = 836658EA2A6E72DA00E8B8D9 /* ExtendFootprintTTLOpXDR.swift */; }; + 836658EE2A6E73D700E8B8D9 /* ExtendFootprintTTLResultXDR.swift in Sources */ = {isa = PBXBuildFile; fileRef = 836658ED2A6E73D700E8B8D9 /* ExtendFootprintTTLResultXDR.swift */; }; + 836658EF2A6E73D700E8B8D9 /* ExtendFootprintTTLResultXDR.swift in Sources */ = {isa = PBXBuildFile; fileRef = 836658ED2A6E73D700E8B8D9 /* ExtendFootprintTTLResultXDR.swift */; }; 836658F12A6E773A00E8B8D9 /* RestoreFootprintOpXDR.swift in Sources */ = {isa = PBXBuildFile; fileRef = 836658F02A6E773A00E8B8D9 /* RestoreFootprintOpXDR.swift */; }; 836658F22A6E773A00E8B8D9 /* RestoreFootprintOpXDR.swift in Sources */ = {isa = PBXBuildFile; fileRef = 836658F02A6E773A00E8B8D9 /* RestoreFootprintOpXDR.swift */; }; 836658F42A6E777800E8B8D9 /* RestoreFootprintResultXDR.swift in Sources */ = {isa = PBXBuildFile; fileRef = 836658F32A6E777800E8B8D9 /* RestoreFootprintResultXDR.swift */; }; 836658F52A6E777800E8B8D9 /* RestoreFootprintResultXDR.swift in Sources */ = {isa = PBXBuildFile; fileRef = 836658F32A6E777800E8B8D9 /* RestoreFootprintResultXDR.swift */; }; - 836658F72A6ECB9700E8B8D9 /* BumpFootprintExpirationOperation.swift in Sources */ = {isa = PBXBuildFile; fileRef = 836658F62A6ECB9700E8B8D9 /* BumpFootprintExpirationOperation.swift */; }; - 836658F82A6ECB9700E8B8D9 /* BumpFootprintExpirationOperation.swift in Sources */ = {isa = PBXBuildFile; fileRef = 836658F62A6ECB9700E8B8D9 /* BumpFootprintExpirationOperation.swift */; }; + 836658F72A6ECB9700E8B8D9 /* ExtendFootprintTTLOperation.swift in Sources */ = {isa = PBXBuildFile; fileRef = 836658F62A6ECB9700E8B8D9 /* ExtendFootprintTTLOperation.swift */; }; + 836658F82A6ECB9700E8B8D9 /* ExtendFootprintTTLOperation.swift in Sources */ = {isa = PBXBuildFile; fileRef = 836658F62A6ECB9700E8B8D9 /* ExtendFootprintTTLOperation.swift */; }; 836658FA2A6ECEFD00E8B8D9 /* RestoreFootprintOperation.swift in Sources */ = {isa = PBXBuildFile; fileRef = 836658F92A6ECEFD00E8B8D9 /* RestoreFootprintOperation.swift */; }; 836658FB2A6ECEFD00E8B8D9 /* RestoreFootprintOperation.swift in Sources */ = {isa = PBXBuildFile; fileRef = 836658F92A6ECEFD00E8B8D9 /* RestoreFootprintOperation.swift */; }; - 836658FD2A6ECFE900E8B8D9 /* BumpFootprintExpirationOperationResponse.swift in Sources */ = {isa = PBXBuildFile; fileRef = 836658FC2A6ECFE900E8B8D9 /* BumpFootprintExpirationOperationResponse.swift */; }; - 836658FE2A6ECFE900E8B8D9 /* BumpFootprintExpirationOperationResponse.swift in Sources */ = {isa = PBXBuildFile; fileRef = 836658FC2A6ECFE900E8B8D9 /* BumpFootprintExpirationOperationResponse.swift */; }; + 836658FD2A6ECFE900E8B8D9 /* ExtendFootprintTTLOperationResponse.swift in Sources */ = {isa = PBXBuildFile; fileRef = 836658FC2A6ECFE900E8B8D9 /* ExtendFootprintTTLOperationResponse.swift */; }; + 836658FE2A6ECFE900E8B8D9 /* ExtendFootprintTTLOperationResponse.swift in Sources */ = {isa = PBXBuildFile; fileRef = 836658FC2A6ECFE900E8B8D9 /* ExtendFootprintTTLOperationResponse.swift */; }; 836659002A6ED0D700E8B8D9 /* RestoreFootprintOperationResponse.swift in Sources */ = {isa = PBXBuildFile; fileRef = 836658FF2A6ED0D700E8B8D9 /* RestoreFootprintOperationResponse.swift */; }; 836659012A6ED0D700E8B8D9 /* RestoreFootprintOperationResponse.swift in Sources */ = {isa = PBXBuildFile; fileRef = 836658FF2A6ED0D700E8B8D9 /* RestoreFootprintOperationResponse.swift */; }; 836659052A6EFE3000E8B8D9 /* soroban_auth_contract.wasm in Resources */ = {isa = PBXBuildFile; fileRef = 836659022A6EFE3000E8B8D9 /* soroban_auth_contract.wasm */; }; @@ -1567,6 +1569,8 @@ 832AF8E5263BE8E500B7EB49 /* ClawbackTestCase.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ClawbackTestCase.swift; sourceTree = ""; }; 832AF8EF263C5AE800B7EB49 /* ClaimableBalanceClawedBackEffectResponse.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ClaimableBalanceClawedBackEffectResponse.swift; sourceTree = ""; }; 832AF8F9263C5B0800B7EB49 /* TrustLineFlagsUpdatedEffectResponse.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TrustLineFlagsUpdatedEffectResponse.swift; sourceTree = ""; }; + 832C2B1B2AE958EE005BB7B8 /* GetLedgerEntriesResponse.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GetLedgerEntriesResponse.swift; sourceTree = ""; }; + 832C2B1E2AE95926005BB7B8 /* LedgerEntry.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LedgerEntry.swift; sourceTree = ""; }; 83315209203E2634007F8F84 /* TransactionsLocalTestCase.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TransactionsLocalTestCase.swift; sourceTree = ""; }; 8331520A203E2635007F8F84 /* TransactionsResponsesMock.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TransactionsResponsesMock.swift; sourceTree = ""; }; 833152122040CAAF007F8F84 /* StellarSDKLog.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = StellarSDKLog.swift; sourceTree = ""; }; @@ -1663,7 +1667,6 @@ 835F0CE529770B8B00793708 /* SorobanRpcRequestError.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SorobanRpcRequestError.swift; sourceTree = ""; }; 835F0CE829770BB100793708 /* GetHealthResponse.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GetHealthResponse.swift; sourceTree = ""; }; 835F0CEB29770BD000793708 /* GetAccountResponse.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GetAccountResponse.swift; sourceTree = ""; }; - 835F0CEE29770BED00793708 /* GetLedgerEntryResponse.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GetLedgerEntryResponse.swift; sourceTree = ""; }; 835F0CF129770C0800793708 /* SimulateTransactionResponse.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SimulateTransactionResponse.swift; sourceTree = ""; }; 835F0CF729770C3F00793708 /* SimulateTransactionCost.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SimulateTransactionCost.swift; sourceTree = ""; }; 835F0CFA29770C6E00793708 /* Footprint.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Footprint.swift; sourceTree = ""; }; @@ -1672,13 +1675,13 @@ 835F0D092977F11400793708 /* TransactionStatusError.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TransactionStatusError.swift; sourceTree = ""; }; 835F0D0C2978295800793708 /* TransactionMetaV3XDR.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TransactionMetaV3XDR.swift; sourceTree = ""; }; 835F0D0F29782A9500793708 /* ContractEventXDR.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ContractEventXDR.swift; sourceTree = ""; }; - 836658EA2A6E72DA00E8B8D9 /* BumpFootprintExpirationOpXDR.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BumpFootprintExpirationOpXDR.swift; sourceTree = ""; }; - 836658ED2A6E73D700E8B8D9 /* BumpFootprintExpirationResultXDR.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BumpFootprintExpirationResultXDR.swift; sourceTree = ""; }; + 836658EA2A6E72DA00E8B8D9 /* ExtendFootprintTTLOpXDR.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ExtendFootprintTTLOpXDR.swift; sourceTree = ""; }; + 836658ED2A6E73D700E8B8D9 /* ExtendFootprintTTLResultXDR.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ExtendFootprintTTLResultXDR.swift; sourceTree = ""; }; 836658F02A6E773A00E8B8D9 /* RestoreFootprintOpXDR.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RestoreFootprintOpXDR.swift; sourceTree = ""; }; 836658F32A6E777800E8B8D9 /* RestoreFootprintResultXDR.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RestoreFootprintResultXDR.swift; sourceTree = ""; }; - 836658F62A6ECB9700E8B8D9 /* BumpFootprintExpirationOperation.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BumpFootprintExpirationOperation.swift; sourceTree = ""; }; + 836658F62A6ECB9700E8B8D9 /* ExtendFootprintTTLOperation.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ExtendFootprintTTLOperation.swift; sourceTree = ""; }; 836658F92A6ECEFD00E8B8D9 /* RestoreFootprintOperation.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RestoreFootprintOperation.swift; sourceTree = ""; }; - 836658FC2A6ECFE900E8B8D9 /* BumpFootprintExpirationOperationResponse.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BumpFootprintExpirationOperationResponse.swift; sourceTree = ""; }; + 836658FC2A6ECFE900E8B8D9 /* ExtendFootprintTTLOperationResponse.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ExtendFootprintTTLOperationResponse.swift; sourceTree = ""; }; 836658FF2A6ED0D700E8B8D9 /* RestoreFootprintOperationResponse.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RestoreFootprintOperationResponse.swift; sourceTree = ""; }; 836659022A6EFE3000E8B8D9 /* soroban_auth_contract.wasm */ = {isa = PBXFileReference; lastKnownFileType = file; path = soroban_auth_contract.wasm; sourceTree = ""; }; 836659032A6EFE3000E8B8D9 /* soroban_events_contract.wasm */ = {isa = PBXFileReference; lastKnownFileType = file; path = soroban_events_contract.wasm; sourceTree = ""; }; @@ -2410,7 +2413,7 @@ 83438A0826E8CF03009116D0 /* LiquidityPoolDepostOperationResponse.swift */, 83438A1226E8CF2C009116D0 /* LiquidityPoolWithdrawOperationResponse.swift */, 835F0CDA2975FCB400793708 /* InvokeHostFunctionOperationResponse.swift */, - 836658FC2A6ECFE900E8B8D9 /* BumpFootprintExpirationOperationResponse.swift */, + 836658FC2A6ECFE900E8B8D9 /* ExtendFootprintTTLOperationResponse.swift */, 836658FF2A6ED0D700E8B8D9 /* RestoreFootprintOperationResponse.swift */, ); path = operations_responses; @@ -2713,7 +2716,6 @@ 835F0D0029770CA700793708 /* GetTransactionResponse.swift */, 835F0D092977F11400793708 /* TransactionStatusError.swift */, 835F0CE529770B8B00793708 /* SorobanRpcRequestError.swift */, - 835F0CEE29770BED00793708 /* GetLedgerEntryResponse.swift */, 83DDEEDD29E3EFC20052EE8D /* GetLatestLedgerResponse.swift */, 835F0CF129770C0800793708 /* SimulateTransactionResponse.swift */, 835F0CF729770C3F00793708 /* SimulateTransactionCost.swift */, @@ -2723,6 +2725,8 @@ 830DAB4529AD545600ED4E66 /* EventInfo.swift */, 830DAB4829AD56F300ED4E66 /* EventInfoValue.swift */, 830DAB4E29AD60E100ED4E66 /* GetNetworkResponse.swift */, + 832C2B1B2AE958EE005BB7B8 /* GetLedgerEntriesResponse.swift */, + 832C2B1E2AE95926005BB7B8 /* LedgerEntry.swift */, ); path = responses; sourceTree = ""; @@ -2830,8 +2834,8 @@ 835F0CD429757FFB00793708 /* InvokeHostFunctionResultXDR.swift */, 835F0D0C2978295800793708 /* TransactionMetaV3XDR.swift */, 835F0D0F29782A9500793708 /* ContractEventXDR.swift */, - 836658EA2A6E72DA00E8B8D9 /* BumpFootprintExpirationOpXDR.swift */, - 836658ED2A6E73D700E8B8D9 /* BumpFootprintExpirationResultXDR.swift */, + 836658EA2A6E72DA00E8B8D9 /* ExtendFootprintTTLOpXDR.swift */, + 836658ED2A6E73D700E8B8D9 /* ExtendFootprintTTLResultXDR.swift */, 836658F02A6E773A00E8B8D9 /* RestoreFootprintOpXDR.swift */, 836658F32A6E777800E8B8D9 /* RestoreFootprintResultXDR.swift */, ); @@ -2892,7 +2896,7 @@ 83DD7149281BE84700530C64 /* TransactionPreconditions.swift */, 83DD714C281BE9A400530C64 /* LedgerBounds.swift */, 835F0CD7297583E100793708 /* InvokeHostFunctionOperation.swift */, - 836658F62A6ECB9700E8B8D9 /* BumpFootprintExpirationOperation.swift */, + 836658F62A6ECB9700E8B8D9 /* ExtendFootprintTTLOperation.swift */, 836658F92A6ECEFD00E8B8D9 /* RestoreFootprintOperation.swift */, ); path = sdk; @@ -3719,7 +3723,7 @@ 8395F94F246B529000B04E11 /* TransactionV0XDR.swift in Sources */, 8395F951246B529000B04E11 /* TransactionV1EnvelopeXDR.swift in Sources */, 8395F952246B529000B04E11 /* MuxedAccountXDR.swift in Sources */, - 836658FE2A6ECFE900E8B8D9 /* BumpFootprintExpirationOperationResponse.swift in Sources */, + 836658FE2A6ECFE900E8B8D9 /* ExtendFootprintTTLOperationResponse.swift in Sources */, DDE2DCDB26667E9C00F238F4 /* OffersStreamItem.swift in Sources */, 832ADEE3262B96C600571D46 /* SetTrustLineFlagsOpXDR.swift in Sources */, 8395F953246B529000B04E11 /* FeeBumpTransactionEnvelopeXDR.swift in Sources */, @@ -3906,7 +3910,6 @@ 83FE810C23F0750600F4A13D /* FeeChargedResponse.swift in Sources */, 745DF4542052FF9B000D3660 /* TrustlineCreatedEffectResponse.swift in Sources */, 744FC6F1212D3CCD00ADFC88 /* Helpers.swift in Sources */, - 835F0CF029770BED00793708 /* GetLedgerEntryResponse.swift in Sources */, 745DF4552052FF9B000D3660 /* TrustlineRemovedEffectResponse.swift in Sources */, 83FE810523F0713E00F4A13D /* FeeStatsService.swift in Sources */, 830E7D5C2529C1930059A4B4 /* EndSponsoringFutureReservesOperation.swift in Sources */, @@ -3916,7 +3919,7 @@ 745DF4572052FF9B000D3660 /* TrustlineAuthorizedEffectResponse.swift in Sources */, 745DF4582052FF9B000D3660 /* TrustlineDeauthorizedEffectResponse.swift in Sources */, 745DF4592052FF9B000D3660 /* OfferCreatedEffectResponse.swift in Sources */, - 836658EF2A6E73D700E8B8D9 /* BumpFootprintExpirationResultXDR.swift in Sources */, + 836658EF2A6E73D700E8B8D9 /* ExtendFootprintTTLResultXDR.swift in Sources */, 74BC3960211DA69C00EAF8A4 /* AccountInflationDestinationUpdatedEffectResponse.swift in Sources */, 745DF45A2052FF9B000D3660 /* OfferRemovedEffectResponse.swift in Sources */, 7467C3F221424D9E00412FE1 /* TransferServerService.swift in Sources */, @@ -4009,6 +4012,7 @@ 745DF48C2052FF9C000D3660 /* LedgerKeyAccountXDR.swift in Sources */, 83DF81A326EF822000AF72CD /* LiquidityPoolPriceResponse.swift in Sources */, 745DF48D2052FF9C000D3660 /* LedgerKeyTrustlineXDR.swift in Sources */, + 832C2B202AE95926005BB7B8 /* LedgerEntry.swift in Sources */, 83AFD63F234FC60700A574D2 /* PathPaymentStrictSendOperation.swift in Sources */, 745DF48E2052FF9C000D3660 /* LedgerKeyOfferXDR.swift in Sources */, 7464B72C219442E90029FDC8 /* PointOfContactDocumentation.swift in Sources */, @@ -4063,6 +4067,7 @@ 744FC6E5212D3CCC00ADFC88 /* Date.swift in Sources */, 7467C40E2142AA3C00412FE1 /* WithdrawResponse.swift in Sources */, 834389C226E8B32F009116D0 /* LiquidityPoolWithdrawOpXDR.swift in Sources */, + 832C2B1D2AE958EE005BB7B8 /* GetLedgerEntriesResponse.swift in Sources */, 745DF4A52052FF9C000D3660 /* BadRequestErrorResponse.swift in Sources */, 745DF4A62052FF9C000D3660 /* BeforeHistoryErrorResponse.swift in Sources */, 83FE811923F1C5FC00F4A13D /* TransactionMetaV2XDR.swift in Sources */, @@ -4143,7 +4148,7 @@ 745DF4D72052FF9C000D3660 /* Array+Foundation.swift in Sources */, 835F0CE02976017A00793708 /* SorobanServer.swift in Sources */, 835F0CED29770BD000793708 /* GetAccountResponse.swift in Sources */, - 836658F82A6ECB9700E8B8D9 /* BumpFootprintExpirationOperation.swift in Sources */, + 836658F82A6ECB9700E8B8D9 /* ExtendFootprintTTLOperation.swift in Sources */, 744FC6EB212D3CCC00ADFC88 /* Evaluator.swift in Sources */, 830DAB5029AD60E100ED4E66 /* GetNetworkResponse.swift in Sources */, 83DD714B281BE84700530C64 /* TransactionPreconditions.swift in Sources */, @@ -4166,7 +4171,7 @@ 745DF4E02052FF9C000D3660 /* Authenticator.swift in Sources */, 74723337219D983500343E25 /* WebAuthenticator.swift in Sources */, 7468CDD42136DBB5002A538D /* BumpSequenceResultXDR.swift in Sources */, - 836658EC2A6E72DA00E8B8D9 /* BumpFootprintExpirationOpXDR.swift in Sources */, + 836658EC2A6E72DA00E8B8D9 /* ExtendFootprintTTLOpXDR.swift in Sources */, C67811B52148E30C001525D8 /* URISchemeEnums.swift in Sources */, 745DF4E12052FF9C000D3660 /* SHA3.swift in Sources */, 7468CDD72136F72C002A538D /* TransactionMetaV1XDR.swift in Sources */, @@ -4362,7 +4367,7 @@ 83DD2C6D202DE47300713FEE /* RateLimitExceededErrorResponse.swift in Sources */, 830EFC632032437000607C35 /* LedgerEntryXDR.swift in Sources */, 7467C4162142B69800412FE1 /* CustomerInformationStatus.swift in Sources */, - 836658FD2A6ECFE900E8B8D9 /* BumpFootprintExpirationOperationResponse.swift in Sources */, + 836658FD2A6ECFE900E8B8D9 /* ExtendFootprintTTLOperationResponse.swift in Sources */, DDE2DCDA266674BB00F238F4 /* OffersStreamItem.swift in Sources */, 832ADEE2262B96C600571D46 /* SetTrustLineFlagsOpXDR.swift in Sources */, 745F2BB6202C2E88008763F1 /* TransactionResponse.swift in Sources */, @@ -4549,7 +4554,6 @@ 833CBFE12036F4CF00C23CFE /* SetOptionsOperation.swift in Sources */, EC34A0CC20503CAB000FB042 /* BigInt+Extension.swift in Sources */, 83697259202CB88300398A98 /* EffectLinksResponse.swift in Sources */, - 835F0CEF29770BED00793708 /* GetLedgerEntryResponse.swift in Sources */, 745F2BB3202C287A008763F1 /* XDREncoder.swift in Sources */, 83DD2C71202DE8AD00713FEE /* NotFoundErrorResponse.swift in Sources */, 830E7D5B2529C1930059A4B4 /* EndSponsoringFutureReservesOperation.swift in Sources */, @@ -4559,7 +4563,7 @@ 836972222028F5EA00398A98 /* TrustlineEffectResponse.swift in Sources */, 8369720120255AB800398A98 /* LedgersService.swift in Sources */, 833CBFAC2033542D00C23CFE /* LedgerEntryChangesXDR.swift in Sources */, - 836658EE2A6E73D700E8B8D9 /* BumpFootprintExpirationResultXDR.swift in Sources */, + 836658EE2A6E73D700E8B8D9 /* ExtendFootprintTTLResultXDR.swift in Sources */, 437D8A8F202F14A00024D031 /* TradeAggregationsService.swift in Sources */, 833CBFB4203354BE00C23CFE /* LedgerKeyTrustlineXDR.swift in Sources */, 430BE2EB2035B4D400E6AB97 /* TimeBounds.swift in Sources */, @@ -4652,6 +4656,7 @@ 83DD2C98202F249800713FEE /* PaymentsService.swift in Sources */, 83DF81A226EF822000AF72CD /* LiquidityPoolPriceResponse.swift in Sources */, 83379C212280ABA600BD5F8E /* ManageBuyOfferOperation.swift in Sources */, + 832C2B1F2AE95926005BB7B8 /* LedgerEntry.swift in Sources */, 7467C3F121424D9E00412FE1 /* TransferServerService.swift in Sources */, 744FC6FC212D545C00ADFC88 /* ResolveAddressResponse.swift in Sources */, EC34A12020503CC5000FB042 /* UInt16+Extension.swift in Sources */, @@ -4706,6 +4711,7 @@ 833CBFC92034741300C23CFE /* Asset.swift in Sources */, 83FE811823F1C5FC00F4A13D /* TransactionMetaV2XDR.swift in Sources */, 834389C126E8B32F009116D0 /* LiquidityPoolWithdrawOpXDR.swift in Sources */, + 832C2B1C2AE958EE005BB7B8 /* GetLedgerEntriesResponse.swift in Sources */, 830EFC752032508E00607C35 /* DataEntryXDR.swift in Sources */, 833CBFB02033548A00C23CFE /* LedgerKeyXDR.swift in Sources */, EC34A13D20503CC5000FB042 /* Blowfish.swift in Sources */, @@ -4786,7 +4792,7 @@ 437D8A8D202F0B980024D031 /* TradesService.swift in Sources */, 835F0CDF2976017A00793708 /* SorobanServer.swift in Sources */, 835F0CEC29770BD000793708 /* GetAccountResponse.swift in Sources */, - 836658F72A6ECB9700E8B8D9 /* BumpFootprintExpirationOperation.swift in Sources */, + 836658F72A6ECB9700E8B8D9 /* ExtendFootprintTTLOperation.swift in Sources */, 743DF582202053B100713DE7 /* Seed.swift in Sources */, 830DAB4F29AD60E100ED4E66 /* GetNetworkResponse.swift in Sources */, 83DD714A281BE84700530C64 /* TransactionPreconditions.swift in Sources */, @@ -4809,7 +4815,7 @@ 743DF5762020530A00713DE7 /* keypair.c in Sources */, C694DABE21478E8100D6D63F /* URISchemeEnums.swift in Sources */, EC34A0CF20503CAB000FB042 /* DataConvertable.swift in Sources */, - 836658EB2A6E72DA00E8B8D9 /* BumpFootprintExpirationOpXDR.swift in Sources */, + 836658EB2A6E72DA00E8B8D9 /* ExtendFootprintTTLOpXDR.swift in Sources */, EC34A15720503CE7000FB042 /* Wallet.swift in Sources */, 746AD2CA20342D0500A9CF21 /* ChangeTrustResultXDR.swift in Sources */, EC34A13E20503CC5000FB042 /* DigestType.swift in Sources */, diff --git a/stellarsdk/stellarsdk/Info.plist b/stellarsdk/stellarsdk/Info.plist index d0585039..171fe0d4 100644 --- a/stellarsdk/stellarsdk/Info.plist +++ b/stellarsdk/stellarsdk/Info.plist @@ -15,7 +15,7 @@ CFBundlePackageType FMWK CFBundleShortVersionString - 2.4.7 + 2.4.8 CFBundleVersion $(CURRENT_PROJECT_VERSION) NSPrincipalClass diff --git a/stellarsdk/stellarsdk/responses/operations_responses/BumpFootprintExpirationOperationResponse.swift b/stellarsdk/stellarsdk/responses/operations_responses/ExtendFootprintTTLOperationResponse.swift similarity index 54% rename from stellarsdk/stellarsdk/responses/operations_responses/BumpFootprintExpirationOperationResponse.swift rename to stellarsdk/stellarsdk/responses/operations_responses/ExtendFootprintTTLOperationResponse.swift index be89f3b5..b8c12024 100644 --- a/stellarsdk/stellarsdk/responses/operations_responses/BumpFootprintExpirationOperationResponse.swift +++ b/stellarsdk/stellarsdk/responses/operations_responses/ExtendFootprintTTLOperationResponse.swift @@ -1,5 +1,5 @@ // -// BumpFootprintExpirationOperationResponse.swift +// ExtendFootprintTTLOperationResponse.swift // stellarsdk // // Created by Christian Rogobete on 24.07.23. @@ -8,19 +8,24 @@ import Foundation -public class BumpFootprintExpirationOperationResponse: OperationResponse { +public class ExtendFootprintTTLOperationResponse: OperationResponse { - public var ledgersToExpire:Int + public var extendTo:Int // Properties to encode and decode private enum CodingKeys: String, CodingKey { case ledgersToExpire = "ledgers_to_expire" + case extendTo = "extend_to" } public required init(from decoder: Decoder) throws { let values = try decoder.container(keyedBy: CodingKeys.self) - ledgersToExpire = try values.decode(Int.self, forKey: .ledgersToExpire) + if let exTo = try values.decodeIfPresent(Int.self, forKey: .extendTo) { + extendTo = exTo + } else { + extendTo = try values.decode(Int.self, forKey: .ledgersToExpire) + } try super.init(from: decoder) } } diff --git a/stellarsdk/stellarsdk/responses/operations_responses/OperationResponse.swift b/stellarsdk/stellarsdk/responses/operations_responses/OperationResponse.swift index 1ebf9d3c..d7991618 100644 --- a/stellarsdk/stellarsdk/responses/operations_responses/OperationResponse.swift +++ b/stellarsdk/stellarsdk/responses/operations_responses/OperationResponse.swift @@ -34,7 +34,7 @@ public enum OperationType: Int32 { case liquidityPoolDeposit = 22 case liquidityPoolWithdraw = 23 case invokeHostFunction = 24 - case bumpFootprintExpiration = 25 + case extendFootprintTTL = 25 case restoreFootprint = 26 } diff --git a/stellarsdk/stellarsdk/responses/operations_responses/OperationsFactory.swift b/stellarsdk/stellarsdk/responses/operations_responses/OperationsFactory.swift index 4cf0d613..012ad2d9 100644 --- a/stellarsdk/stellarsdk/responses/operations_responses/OperationsFactory.swift +++ b/stellarsdk/stellarsdk/responses/operations_responses/OperationsFactory.swift @@ -103,8 +103,8 @@ class OperationsFactory: NSObject { return try jsonDecoder.decode(LiquidityPoolWithdrawOperationResponse.self, from: data) case .invokeHostFunction: return try jsonDecoder.decode(InvokeHostFunctionOperationResponse.self, from: data) - case .bumpFootprintExpiration: - return try jsonDecoder.decode(BumpFootprintExpirationOperationResponse.self, from: data) + case .extendFootprintTTL: + return try jsonDecoder.decode(ExtendFootprintTTLOperationResponse.self, from: data) case .restoreFootprint: return try jsonDecoder.decode(RestoreFootprintOperationResponse.self, from: data) } diff --git a/stellarsdk/stellarsdk/responses/xdr/ContractXDR.swift b/stellarsdk/stellarsdk/responses/xdr/ContractXDR.swift index 1657ed68..1332faa4 100644 --- a/stellarsdk/stellarsdk/responses/xdr/ContractXDR.swift +++ b/stellarsdk/stellarsdk/responses/xdr/ContractXDR.swift @@ -61,33 +61,28 @@ public enum SCErrorCode: Int32 { public enum ContractCostType: Int32 { case wasmInsnExec = 0 - case wasmMemAlloc = 1 - case hostMemAlloc = 2 - case hostMemCpy = 3 - case hostMemCmp = 4 - case dispatchHostFunction = 5 - case visitObject = 6 - case valSer = 7 - case valDeser = 8 - case computeSha256Hash = 9 - case computeEd25519PubKey = 10 - case mapEntry = 11 - case vecEntry = 12 - case verifyEd25519Sig = 13 - case vmMemRead = 14 - case vmMemWrite = 15 - case vmInstantiation = 16 - case vmCachedInstantiation = 17 - case invokeVmFunction = 18 - case computeKeccak256Hash = 19 - case computeEcdsaSecp256k1Key = 20 - case computeEcdsaSecp256k1Sig = 21 - case recoverEcdsaSecp256k1Key = 22 - case int256AddSub = 23 - case int256Mul = 24 - case int256Div = 25 - case int256Pow = 26 - case int256Shift = 27 + case memAlloc = 1 + case memCpy = 2 + case memCmp = 3 + case dispatchHostFunction = 4 + case visitObject = 5 + case valSer = 6 + case valDeser = 7 + case computeSha256Hash = 8 + case computeEd25519PubKey = 9 + case verifyEd25519Sig = 10 + case vmInstantiation = 11 + case vmCachedInstantiation = 12 + case invokeVmFunction = 13 + case computeKeccak256Hash = 14 + case computeEcdsaSecp256k1Sig = 15 + case recoverEcdsaSecp256k1Key = 16 + case int256AddSub = 17 + case int256Mul = 18 + case int256Div = 19 + case int256Pow = 20 + case int256Shift = 21 + case ChaCha20DrawBytes = 22 } public enum SCErrorXDR: XDRCodable { @@ -787,7 +782,7 @@ public struct SCMapEntryXDR: XDRCodable { public enum ContractExecutableType: Int32 { case wasm = 0 - case token = 1 + case stellarAsset = 1 } public enum ContractExecutableXDR: XDRCodable { @@ -803,7 +798,7 @@ public enum ContractExecutableXDR: XDRCodable { case .wasm: let wasmHash = try container.decode(WrappedData32.self) self = .wasm(wasmHash) - case .token: + case .stellarAsset: self = .token } } @@ -811,7 +806,7 @@ public enum ContractExecutableXDR: XDRCodable { public func type() -> Int32 { switch self { case .wasm: return ContractExecutableType.wasm.rawValue - case .token: return ContractExecutableType.token.rawValue + case .token: return ContractExecutableType.stellarAsset.rawValue } } @@ -840,8 +835,8 @@ public enum ContractExecutableXDR: XDRCodable { } } - public var isToken:Bool? { - return type() == ContractExecutableType.token.rawValue + public var isStellarAsset:Bool? { + return type() == ContractExecutableType.stellarAsset.rawValue } } diff --git a/stellarsdk/stellarsdk/responses/xdr/BumpFootprintExpirationOpXDR.swift b/stellarsdk/stellarsdk/responses/xdr/ExtendFootprintTTLOpXDR.swift similarity index 60% rename from stellarsdk/stellarsdk/responses/xdr/BumpFootprintExpirationOpXDR.swift rename to stellarsdk/stellarsdk/responses/xdr/ExtendFootprintTTLOpXDR.swift index 837edf58..b4b27b2d 100644 --- a/stellarsdk/stellarsdk/responses/xdr/BumpFootprintExpirationOpXDR.swift +++ b/stellarsdk/stellarsdk/responses/xdr/ExtendFootprintTTLOpXDR.swift @@ -1,5 +1,5 @@ // -// BumpFootprintExpirationOpXDR.swift +// ExtendFootprintTTLOpXDR.swift // stellarsdk // // Created by Christian Rogobete on 24.07.23. @@ -8,24 +8,24 @@ import Foundation -public struct BumpFootprintExpirationOpXDR: XDRCodable { +public struct ExtendFootprintTTLOpXDR: XDRCodable { public var ext: ExtensionPoint - public var ledgersToExpire: UInt32 + public var extendTo: UInt32 - public init(ext: ExtensionPoint, ledgersToExpire: UInt32) { + public init(ext: ExtensionPoint, extendTo: UInt32) { self.ext = ext - self.ledgersToExpire = ledgersToExpire + self.extendTo = extendTo } public init(from decoder: Decoder) throws { var container = try decoder.unkeyedContainer() ext = try container.decode(ExtensionPoint.self) - ledgersToExpire = try container.decode(UInt32.self) + extendTo = try container.decode(UInt32.self) } public func encode(to encoder: Encoder) throws { var container = encoder.unkeyedContainer() try container.encode(ext) - try container.encode(ledgersToExpire) + try container.encode(extendTo) } } diff --git a/stellarsdk/stellarsdk/responses/xdr/BumpFootprintExpirationResultXDR.swift b/stellarsdk/stellarsdk/responses/xdr/ExtendFootprintTTLResultXDR.swift similarity index 84% rename from stellarsdk/stellarsdk/responses/xdr/BumpFootprintExpirationResultXDR.swift rename to stellarsdk/stellarsdk/responses/xdr/ExtendFootprintTTLResultXDR.swift index 3532a282..76ef3a97 100644 --- a/stellarsdk/stellarsdk/responses/xdr/BumpFootprintExpirationResultXDR.swift +++ b/stellarsdk/stellarsdk/responses/xdr/ExtendFootprintTTLResultXDR.swift @@ -1,5 +1,5 @@ // -// BumpFootprintExpirationResultXDR.swift +// ExtendFootprintTTLResultXDR.swift // stellarsdk // // Created by Christian Rogobete on 24.07.23. @@ -8,7 +8,7 @@ import Foundation -public enum BumpFootprintExpirationResultCode: Int32 { +public enum ExtendFootprintTTLResultCode: Int32 { // codes considered as "success" for the operation case success = 0 // success @@ -18,7 +18,7 @@ public enum BumpFootprintExpirationResultCode: Int32 { case insufficientRefundableFee = -3 } -public enum BumpFootprintExpirationResultXDR: XDRCodable { +public enum ExtendFootprintTTLResultXDR: XDRCodable { case success case malformed case resourceLimitExceeded @@ -27,7 +27,7 @@ public enum BumpFootprintExpirationResultXDR: XDRCodable { public init(from decoder: Decoder) throws { var container = try decoder.unkeyedContainer() let discriminant = try container.decode(Int32.self) - let code = BumpFootprintExpirationResultCode(rawValue: discriminant)! + let code = ExtendFootprintTTLResultCode(rawValue: discriminant)! switch code { case .success: diff --git a/stellarsdk/stellarsdk/responses/xdr/InvokeHostFunctionResultXDR.swift b/stellarsdk/stellarsdk/responses/xdr/InvokeHostFunctionResultXDR.swift index 21004ed0..ac21a9ba 100644 --- a/stellarsdk/stellarsdk/responses/xdr/InvokeHostFunctionResultXDR.swift +++ b/stellarsdk/stellarsdk/responses/xdr/InvokeHostFunctionResultXDR.swift @@ -16,7 +16,7 @@ public enum InvokeHostFunctionResultCode: Int32 { case malformed = -1 case trapped = -2 case resourceLimitExceeded = -3 - case entryExpired = -4 + case entryArchived = -4 case insufficientRefundableFee = -5 } @@ -43,7 +43,7 @@ public enum InvokeHostFunctionResultXDR: XDRCodable { self = .trapped case .resourceLimitExceeded: self = .resourceLimitExceeded - case .entryExpired: + case .entryArchived: self = .entryExpired default: self = .insufficientRefundableFee diff --git a/stellarsdk/stellarsdk/responses/xdr/LedgerEntryXDR.swift b/stellarsdk/stellarsdk/responses/xdr/LedgerEntryXDR.swift index eefae61b..a03509b4 100644 --- a/stellarsdk/stellarsdk/responses/xdr/LedgerEntryXDR.swift +++ b/stellarsdk/stellarsdk/responses/xdr/LedgerEntryXDR.swift @@ -18,29 +18,29 @@ public enum LedgerEntryType: Int32 { case contractData = 6 case contractCode = 7 case configSetting = 8 - case expiration = 9 + case ttl = 9 } -public struct ExpirationEntryXDR: XDRCodable { +public struct TTLEntryXDR: XDRCodable { public let keyHash: WrappedData32; - public let expirationLedgerSeq: UInt32; + public let liveUntilLedgerSeq: UInt32; - public init(keyHash: WrappedData32, expirationLedgerSeq:UInt32) { + public init(keyHash: WrappedData32, liveUntilLedgerSeq:UInt32) { self.keyHash = keyHash - self.expirationLedgerSeq = expirationLedgerSeq + self.liveUntilLedgerSeq = liveUntilLedgerSeq } public init(from decoder: Decoder) throws { var container = try decoder.unkeyedContainer() keyHash = try container.decode(WrappedData32.self) - expirationLedgerSeq = try container.decode(UInt32.self) + liveUntilLedgerSeq = try container.decode(UInt32.self) } public func encode(to encoder: Encoder) throws { var container = encoder.unkeyedContainer() try container.encode(keyHash) - try container.encode(expirationLedgerSeq) + try container.encode(liveUntilLedgerSeq) } } diff --git a/stellarsdk/stellarsdk/responses/xdr/LedgerExtryDataXDR.swift b/stellarsdk/stellarsdk/responses/xdr/LedgerExtryDataXDR.swift index 93985182..80bb090d 100644 --- a/stellarsdk/stellarsdk/responses/xdr/LedgerExtryDataXDR.swift +++ b/stellarsdk/stellarsdk/responses/xdr/LedgerExtryDataXDR.swift @@ -18,7 +18,7 @@ public enum LedgerEntryDataXDR: XDRCodable { case contractData (ContractDataEntryXDR) case contractCode (ContractCodeEntryXDR) case configSetting (ConfigSettingEntryXDR) - case expiration (ExpirationEntryXDR) + case ttl (TTLEntryXDR) public init(from decoder: Decoder) throws { var container = try decoder.unkeyedContainer() @@ -44,8 +44,8 @@ public enum LedgerEntryDataXDR: XDRCodable { self = .contractCode(try container.decode(ContractCodeEntryXDR.self)) case LedgerEntryType.configSetting.rawValue: self = .configSetting(try container.decode(ConfigSettingEntryXDR.self)) - case LedgerEntryType.expiration.rawValue: - self = .expiration(try container.decode(ExpirationEntryXDR.self)) + case LedgerEntryType.ttl.rawValue: + self = .ttl(try container.decode(TTLEntryXDR.self)) default: self = .account(try container.decode(AccountEntryXDR.self)) } @@ -63,7 +63,7 @@ public enum LedgerEntryDataXDR: XDRCodable { case .contractData: return LedgerEntryType.contractData.rawValue case .contractCode: return LedgerEntryType.contractCode.rawValue case .configSetting: return LedgerEntryType.configSetting.rawValue - case .expiration: return LedgerEntryType.expiration.rawValue + case .ttl: return LedgerEntryType.ttl.rawValue } } @@ -91,7 +91,7 @@ public enum LedgerEntryDataXDR: XDRCodable { try container.encode(contractCode) case .configSetting (let configSetting): try container.encode(configSetting) - case .expiration(let value): + case .ttl(let value): try container.encode(value) } } @@ -186,9 +186,9 @@ public enum LedgerEntryDataXDR: XDRCodable { } } - public var expiration:ExpirationEntryXDR? { + public var ttl:TTLEntryXDR? { switch self { - case .expiration(let val): + case .ttl(let val): return val default: return nil @@ -519,7 +519,7 @@ public enum ConfigSettingEntryXDR: XDRCodable { case contractCostParamsMemBytes(ContractCostParamsXDR) case contractDataKeySizeBytes(UInt32) case contractDataEntrySizeBytes(UInt32) - case stateExpirationSettings(StateExpirationSettingsXDR) + case stateArchivalSettings(StateArchivalSettingsXDR) case contractExecutionLanes(ConfigSettingContractExecutionLanesV0XDR) case bucketListSizeWindow([UInt64]) case evictionIterator(EvictionIteratorXDR) @@ -550,8 +550,8 @@ public enum ConfigSettingEntryXDR: XDRCodable { self = .contractDataKeySizeBytes(try container.decode(UInt32.self)) case ConfigSettingID.contractDataEntrySizeBytes.rawValue: self = .contractDataEntrySizeBytes(try container.decode(UInt32.self)) - case ConfigSettingID.stateExpiration.rawValue: - self = .stateExpirationSettings(try container.decode(StateExpirationSettingsXDR.self)) + case ConfigSettingID.stateArchival.rawValue: + self = .stateArchivalSettings(try container.decode(StateArchivalSettingsXDR.self)) case ConfigSettingID.contractExecutionLanes.rawValue: self = .contractExecutionLanes(try container.decode(ConfigSettingContractExecutionLanesV0XDR.self)) case ConfigSettingID.bucketListSizeWindow.rawValue: @@ -576,7 +576,7 @@ public enum ConfigSettingEntryXDR: XDRCodable { case .contractCostParamsMemBytes: return ConfigSettingID.contractCostParamsMemoryBytes.rawValue case .contractDataKeySizeBytes: return ConfigSettingID.contractDataKeySizeBytes.rawValue case .contractDataEntrySizeBytes: return ConfigSettingID.contractDataEntrySizeBytes.rawValue - case .stateExpirationSettings: return ConfigSettingID.stateExpiration.rawValue + case .stateArchivalSettings: return ConfigSettingID.stateArchival.rawValue case .contractExecutionLanes: return ConfigSettingID.contractExecutionLanes.rawValue case .bucketListSizeWindow: return ConfigSettingID.bucketListSizeWindow.rawValue case .evictionIterator: return ConfigSettingID.evictionIterator.rawValue @@ -609,7 +609,7 @@ public enum ConfigSettingEntryXDR: XDRCodable { try container.encode(val) case .contractDataEntrySizeBytes(let val): try container.encode(val) - case .stateExpirationSettings (let val): + case .stateArchivalSettings (let val): try container.encode(val) case .contractExecutionLanes (let val): try container.encode(val) @@ -621,25 +621,25 @@ public enum ConfigSettingEntryXDR: XDRCodable { } } -public struct StateExpirationSettingsXDR: XDRCodable { +public struct StateArchivalSettingsXDR: XDRCodable { - public var maxEntryExpiration: UInt32 - public var minTempEntryExpiration: UInt32 - public var minPersistentEntryExpiration: UInt32 + public var maxEntryTTL: UInt32 + public var minTemporaryTTL: UInt32 + public var minPersistentTTL: UInt32 public var persistentRentRateDenominator: Int64 public var tempRentRateDenominator: Int64 - public var maxEntriesToExpire: UInt32 + public var maxEntriesToArchive: UInt32 public var bucketListSizeWindowSampleSize: UInt32 public var evictionScanSize: UInt64 public var startingEvictionScanLevel: UInt32 - public init(maxEntryExpiration: UInt32, minTempEntryExpiration: UInt32, minPersistentEntryExpiration: UInt32, persistentRentRateDenominator: Int64, tempRentRateDenominator: Int64, maxEntriesToExpire: UInt32, bucketListSizeWindowSampleSize: UInt32, evictionScanSize: UInt64, startingEvictionScanLevel: UInt32) { - self.maxEntryExpiration = maxEntryExpiration - self.minTempEntryExpiration = minTempEntryExpiration - self.minPersistentEntryExpiration = minPersistentEntryExpiration + public init(maxEntryTTL: UInt32, minTemporaryTTL: UInt32, minPersistentTTL: UInt32, persistentRentRateDenominator: Int64, tempRentRateDenominator: Int64, maxEntriesToArchive: UInt32, bucketListSizeWindowSampleSize: UInt32, evictionScanSize: UInt64, startingEvictionScanLevel: UInt32) { + self.maxEntryTTL = maxEntryTTL + self.minTemporaryTTL = minTemporaryTTL + self.minPersistentTTL = minPersistentTTL self.persistentRentRateDenominator = persistentRentRateDenominator self.tempRentRateDenominator = tempRentRateDenominator - self.maxEntriesToExpire = maxEntriesToExpire + self.maxEntriesToArchive = maxEntriesToArchive self.bucketListSizeWindowSampleSize = bucketListSizeWindowSampleSize self.evictionScanSize = evictionScanSize self.startingEvictionScanLevel = startingEvictionScanLevel @@ -647,12 +647,12 @@ public struct StateExpirationSettingsXDR: XDRCodable { public init(from decoder: Decoder) throws { var container = try decoder.unkeyedContainer() - maxEntryExpiration = try container.decode(UInt32.self) - minTempEntryExpiration = try container.decode(UInt32.self) - minPersistentEntryExpiration = try container.decode(UInt32.self) + maxEntryTTL = try container.decode(UInt32.self) + minTemporaryTTL = try container.decode(UInt32.self) + minPersistentTTL = try container.decode(UInt32.self) persistentRentRateDenominator = try container.decode(Int64.self) tempRentRateDenominator = try container.decode(Int64.self) - maxEntriesToExpire = try container.decode(UInt32.self) + maxEntriesToArchive = try container.decode(UInt32.self) bucketListSizeWindowSampleSize = try container.decode(UInt32.self) evictionScanSize = try container.decode(UInt64.self) startingEvictionScanLevel = try container.decode(UInt32.self) @@ -660,12 +660,12 @@ public struct StateExpirationSettingsXDR: XDRCodable { public func encode(to encoder: Encoder) throws { var container = encoder.unkeyedContainer() - try container.encode(maxEntryExpiration) - try container.encode(minTempEntryExpiration) - try container.encode(minPersistentEntryExpiration) + try container.encode(maxEntryTTL) + try container.encode(minTemporaryTTL) + try container.encode(minPersistentTTL) try container.encode(persistentRentRateDenominator) try container.encode(tempRentRateDenominator) - try container.encode(maxEntriesToExpire) + try container.encode(maxEntriesToArchive) try container.encode(bucketListSizeWindowSampleSize) try container.encode(evictionScanSize) try container.encode(startingEvictionScanLevel) diff --git a/stellarsdk/stellarsdk/responses/xdr/LedgerKeyXDR.swift b/stellarsdk/stellarsdk/responses/xdr/LedgerKeyXDR.swift index ab6f455b..ab3d6557 100644 --- a/stellarsdk/stellarsdk/responses/xdr/LedgerKeyXDR.swift +++ b/stellarsdk/stellarsdk/responses/xdr/LedgerKeyXDR.swift @@ -19,7 +19,7 @@ public enum ConfigSettingID: Int32 { case contractCostParamsMemoryBytes = 7 case contractDataKeySizeBytes = 8 case contractDataEntrySizeBytes = 9 - case stateExpiration = 10 + case stateArchival = 10 case contractExecutionLanes = 11 case bucketListSizeWindow = 12 case evictionIterator = 13 @@ -35,7 +35,7 @@ public enum LedgerKeyXDR: XDRCodable { case contractData(LedgerKeyContractDataXDR) case contractCode(LedgerKeyContractCodeXDR) case configSetting(Int32) - case expiration(LedgerKeyExpirationXDR) + case ttl(LedgerKeyTTLXDR) public init(from decoder: Decoder) throws { @@ -71,9 +71,9 @@ public enum LedgerKeyXDR: XDRCodable { case LedgerEntryType.configSetting.rawValue: let configSettingId = try container.decode(Int32.self) self = .configSetting (configSettingId) - case LedgerEntryType.expiration.rawValue: - let expiration = try container.decode(LedgerKeyExpirationXDR.self) - self = .expiration (expiration) + case LedgerEntryType.ttl.rawValue: + let ttl = try container.decode(LedgerKeyTTLXDR.self) + self = .ttl (ttl) default: let acc = try container.decode(LedgerKeyAccountXDR.self) self = .account(acc) @@ -91,7 +91,7 @@ public enum LedgerKeyXDR: XDRCodable { case .contractData: return LedgerEntryType.contractData.rawValue case .contractCode: return LedgerEntryType.contractCode.rawValue case .configSetting: return LedgerEntryType.configSetting.rawValue - case .expiration: return LedgerEntryType.expiration.rawValue + case .ttl: return LedgerEntryType.ttl.rawValue } } @@ -118,7 +118,7 @@ public enum LedgerKeyXDR: XDRCodable { try container.encode(value) case .configSetting (let configSettingId): try container.encode(configSettingId) - case .expiration (let value): + case .ttl (let value): try container.encode(value) } } @@ -202,7 +202,7 @@ public struct LedgerKeyContractCodeXDR: XDRCodable { } } -public struct LedgerKeyExpirationXDR: XDRCodable { +public struct LedgerKeyTTLXDR: XDRCodable { public var keyHash:WrappedData32 public init(keyHash: WrappedData32) { diff --git a/stellarsdk/stellarsdk/responses/xdr/OperationBodyXDR.swift b/stellarsdk/stellarsdk/responses/xdr/OperationBodyXDR.swift index 6ca0679f..caf5be3c 100644 --- a/stellarsdk/stellarsdk/responses/xdr/OperationBodyXDR.swift +++ b/stellarsdk/stellarsdk/responses/xdr/OperationBodyXDR.swift @@ -34,7 +34,7 @@ public enum OperationBodyXDR: XDRCodable { case liquidityPoolDeposit(LiquidityPoolDepositOpXDR) case liquidityPoolWithdraw(LiquidityPoolWithdrawOpXDR) case invokeHostFunction(InvokeHostFunctionOpXDR) - case bumpFootprintExpiration(BumpFootprintExpirationOpXDR) + case extendFootprintTTL(ExtendFootprintTTLOpXDR) case restoreFootprint(RestoreFootprintOpXDR) public init(from decoder: Decoder) throws { @@ -93,8 +93,8 @@ public enum OperationBodyXDR: XDRCodable { self = .liquidityPoolWithdraw(try container.decode(LiquidityPoolWithdrawOpXDR.self)) case OperationType.invokeHostFunction.rawValue: self = .invokeHostFunction(try container.decode(InvokeHostFunctionOpXDR.self)) - case OperationType.bumpFootprintExpiration.rawValue: - self = .bumpFootprintExpiration(try container.decode(BumpFootprintExpirationOpXDR.self)) + case OperationType.extendFootprintTTL.rawValue: + self = .extendFootprintTTL(try container.decode(ExtendFootprintTTLOpXDR.self)) case OperationType.restoreFootprint.rawValue: self = .restoreFootprint(try container.decode(RestoreFootprintOpXDR.self)) default: @@ -129,7 +129,7 @@ public enum OperationBodyXDR: XDRCodable { case .liquidityPoolDeposit: return OperationType.liquidityPoolDeposit.rawValue case .liquidityPoolWithdraw: return OperationType.liquidityPoolWithdraw.rawValue case .invokeHostFunction: return OperationType.invokeHostFunction.rawValue - case .bumpFootprintExpiration: return OperationType.bumpFootprintExpiration.rawValue + case .extendFootprintTTL: return OperationType.extendFootprintTTL.rawValue case .restoreFootprint: return OperationType.restoreFootprint.rawValue } } @@ -190,7 +190,7 @@ public enum OperationBodyXDR: XDRCodable { try container.encode(op) case .invokeHostFunction(let op): try container.encode(op) - case .bumpFootprintExpiration(let op): + case .extendFootprintTTL(let op): try container.encode(op) case .restoreFootprint(let op): try container.encode(op) diff --git a/stellarsdk/stellarsdk/responses/xdr/OperationResultXDR.swift b/stellarsdk/stellarsdk/responses/xdr/OperationResultXDR.swift index c9111a95..d24910b7 100644 --- a/stellarsdk/stellarsdk/responses/xdr/OperationResultXDR.swift +++ b/stellarsdk/stellarsdk/responses/xdr/OperationResultXDR.swift @@ -44,7 +44,7 @@ public enum OperationResultXDR: XDRCodable { case liquidityPoolDeposit(Int32, LiquidityPoolDepositResultXDR) case liquidityPoolWithdraw(Int32, LiquidityPoolWithdrawResultXDR) case invokeHostFunction(Int32, InvokeHostFunctionResultXDR) - case bumpFootprintExpiration(Int32, BumpFootprintExpirationResultXDR) + case extendFootprintTTL(Int32, ExtendFootprintTTLResultXDR) case restoreFootprint(Int32, RestoreFootprintResultXDR) case empty (Int32) @@ -107,8 +107,8 @@ public enum OperationResultXDR: XDRCodable { self = .liquidityPoolWithdraw(code.rawValue, try container.decode(LiquidityPoolWithdrawResultXDR.self)) case .invokeHostFunction: self = .invokeHostFunction(code.rawValue, try container.decode(InvokeHostFunctionResultXDR.self)) - case .bumpFootprintExpiration: - self = .bumpFootprintExpiration(code.rawValue, try container.decode(BumpFootprintExpirationResultXDR.self)) + case .extendFootprintTTL: + self = .extendFootprintTTL(code.rawValue, try container.decode(ExtendFootprintTTLResultXDR.self)) case .restoreFootprint: self = .restoreFootprint(code.rawValue, try container.decode(RestoreFootprintResultXDR.self)) } @@ -197,7 +197,7 @@ public enum OperationResultXDR: XDRCodable { case .invokeHostFunction(let code, let result): try container.encode(code) try container.encode(result) - case .bumpFootprintExpiration(let code, let result): + case .extendFootprintTTL(let code, let result): try container.encode(code) try container.encode(result) case .restoreFootprint(let code, let result): diff --git a/stellarsdk/stellarsdk/responses/xdr/TransactionXDR.swift b/stellarsdk/stellarsdk/responses/xdr/TransactionXDR.swift index 4aacacb8..b30e1903 100644 --- a/stellarsdk/stellarsdk/responses/xdr/TransactionXDR.swift +++ b/stellarsdk/stellarsdk/responses/xdr/TransactionXDR.swift @@ -656,19 +656,19 @@ public struct SorobanResourcesXDR: XDRCodable { public struct SorobanTransactionDataXDR: XDRCodable { public var ext: ExtensionPoint public var resources: SorobanResourcesXDR; - public var refundableFee: Int64 + public var resourceFee: Int64 - public init(ext: ExtensionPoint = ExtensionPoint.void, resources: SorobanResourcesXDR, refundableFee: Int64 = 0) { + public init(ext: ExtensionPoint = ExtensionPoint.void, resources: SorobanResourcesXDR, resourceFee: Int64 = 0) { self.ext = ext self.resources = resources - self.refundableFee = refundableFee + self.resourceFee = resourceFee } public init(from decoder: Decoder) throws { var container = try decoder.unkeyedContainer() ext = try container.decode(ExtensionPoint.self) resources = try container.decode(SorobanResourcesXDR.self) - refundableFee = try container.decode(Int64.self) + resourceFee = try container.decode(Int64.self) } public init(fromBase64 xdr:String) throws { @@ -680,7 +680,7 @@ public struct SorobanTransactionDataXDR: XDRCodable { var container = encoder.unkeyedContainer() try container.encode(ext) try container.encode(resources) - try container.encode(refundableFee) + try container.encode(resourceFee) } } diff --git a/stellarsdk/stellarsdk/sdk/BumpFootprintExpirationOperation.swift b/stellarsdk/stellarsdk/sdk/BumpFootprintExpirationOperation.swift deleted file mode 100644 index c366b46c..00000000 --- a/stellarsdk/stellarsdk/sdk/BumpFootprintExpirationOperation.swift +++ /dev/null @@ -1,29 +0,0 @@ -// -// BumpFootprintExpirationOperation.swift -// stellarsdk -// -// Created by Christian Rogobete on 24.07.23. -// Copyright © 2023 Soneso. All rights reserved. -// - -import Foundation - -public class BumpFootprintExpirationOperation:Operation { - - public let ledgersToExpire:UInt32 - - public init(ledgersToExpire:UInt32, sourceAccountId:String? = nil) { - self.ledgersToExpire = ledgersToExpire; - super.init(sourceAccountId: sourceAccountId) - } - - public init(fromXDR:BumpFootprintExpirationOpXDR, sourceAccountId:String?) { - - self.ledgersToExpire = fromXDR.ledgersToExpire - super.init(sourceAccountId: sourceAccountId) - } - - override func getOperationBodyXDR() throws -> OperationBodyXDR { - return OperationBodyXDR.bumpFootprintExpiration(BumpFootprintExpirationOpXDR(ext: ExtensionPoint.void, ledgersToExpire: ledgersToExpire)) - } -} diff --git a/stellarsdk/stellarsdk/sdk/ExtendFootprintTTLOperation.swift b/stellarsdk/stellarsdk/sdk/ExtendFootprintTTLOperation.swift new file mode 100644 index 00000000..b3474232 --- /dev/null +++ b/stellarsdk/stellarsdk/sdk/ExtendFootprintTTLOperation.swift @@ -0,0 +1,29 @@ +// +// ExtendFootprintTTLOperation.swift +// stellarsdk +// +// Created by Christian Rogobete on 24.07.23. +// Copyright © 2023 Soneso. All rights reserved. +// + +import Foundation + +public class ExtendFootprintTTLOperation:Operation { + + public let extendTo:UInt32 + + public init(ledgersToExpire:UInt32, sourceAccountId:String? = nil) { + self.extendTo = ledgersToExpire; + super.init(sourceAccountId: sourceAccountId) + } + + public init(fromXDR:ExtendFootprintTTLOpXDR, sourceAccountId:String?) { + + self.extendTo = fromXDR.extendTo + super.init(sourceAccountId: sourceAccountId) + } + + override func getOperationBodyXDR() throws -> OperationBodyXDR { + return OperationBodyXDR.extendFootprintTTL(ExtendFootprintTTLOpXDR(ext: ExtensionPoint.void, extendTo: extendTo)) + } +} diff --git a/stellarsdk/stellarsdk/sdk/Operation.swift b/stellarsdk/stellarsdk/sdk/Operation.swift index af49fbdb..86f8da40 100644 --- a/stellarsdk/stellarsdk/sdk/Operation.swift +++ b/stellarsdk/stellarsdk/sdk/Operation.swift @@ -110,8 +110,8 @@ public class Operation { return LiquidityPoolWithdrawOperation(fromXDR: data, sourceAccountId: mSourceAccountId) case .invokeHostFunction(let data): return try InvokeHostFunctionOperation(fromXDR: data, sourceAccountId: mSourceAccountId) - case .bumpFootprintExpiration(let data): - return BumpFootprintExpirationOperation(fromXDR: data, sourceAccountId: mSourceAccountId) + case .extendFootprintTTL(let data): + return ExtendFootprintTTLOperation(fromXDR: data, sourceAccountId: mSourceAccountId) case .restoreFootprint(let data): return RestoreFootprintOperation(fromXDR: data, sourceAccountId: mSourceAccountId) default: diff --git a/stellarsdk/stellarsdk/soroban/SorobanServer.swift b/stellarsdk/stellarsdk/soroban/SorobanServer.swift index 3c2d7945..97147456 100644 --- a/stellarsdk/stellarsdk/soroban/SorobanServer.swift +++ b/stellarsdk/stellarsdk/soroban/SorobanServer.swift @@ -19,8 +19,8 @@ public enum GetNetworkResponseEnum { case failure(error: SorobanRpcRequestError) } -public enum GetLedgerEntryResponseEnum { - case success(response: GetLedgerEntryResponse) +public enum GetLedgerEntriesResponseEnum { + case success(response: GetLedgerEntriesResponse) case failure(error: SorobanRpcRequestError) } @@ -63,7 +63,7 @@ public enum GetContractCodeResponseEnum { /// A closure to be called with the response from a post challenge request. public typealias GetHealthResponseClosure = (_ response:GetHealthResponseEnum) -> (Void) public typealias GetNetworkResponseClosure = (_ response:GetNetworkResponseEnum) -> (Void) -public typealias GetLedgerEntryResponseClosure = (_ response:GetLedgerEntryResponseEnum) -> (Void) +public typealias GetLedgerEntriesResponseClosure = (_ response:GetLedgerEntriesResponseEnum) -> (Void) public typealias GetLatestLedgerResponseClosure = (_ response:GetLatestLedgerResponseEnum) -> (Void) public typealias SimulateTransactionResponseClosure = (_ response:SimulateTransactionResponseEnum) -> (Void) public typealias SendTransactionResponseClosure = (_ response:SendTransactionResponseEnum) -> (Void) @@ -186,16 +186,16 @@ public class SorobanServer { /// For reading the current value of ledger entries directly. Allows you to directly inspect the current state of a contract, a contract’s code, or any other ledger entry. /// This is a backup way to access your contract data which may not be available via events or simulateTransaction. /// To fetch contract wasm byte-code, use the ContractCode ledger entry key. - /// See: https://soroban.stellar.org/api/methods/getLedgerEntry - public func getLedgerEntry(base64EncodedKey: String, completion:@escaping GetLedgerEntryResponseClosure) { + /// See: https://soroban.stellar.org/api/methods/getLedgerEntries + public func getLedgerEntries(base64EncodedKeys: [String], completion:@escaping GetLedgerEntriesResponseClosure) { - request(body: try? buildRequestJson(method: "getLedgerEntry", args: ["key" : base64EncodedKey])) { (result) -> (Void) in + request(body: try? buildRequestJson(method: "getLedgerEntries", args: ["keys" : base64EncodedKeys])) { (result) -> (Void) in switch result { case .success(let data): if let response = try? JSONSerialization.jsonObject(with: data, options: []) as? [String: Any] { if let result = response["result"] as? [String: Any] { do { - let decoded = try self.jsonDecoder.decode(GetLedgerEntryResponse.self, from: JSONSerialization.data(withJSONObject: result)) + let decoded = try self.jsonDecoder.decode(GetLedgerEntriesResponse.self, from: JSONSerialization.data(withJSONObject: result)) completion(.success(response: decoded)) } catch { completion(.failure(error: .parsingResponseFailed(message: error.localizedDescription, responseData: data))) @@ -248,10 +248,10 @@ public class SorobanServer { let contractCodeKey = LedgerKeyContractCodeXDR(wasmId: wasmId) let ledgerKey = LedgerKeyXDR.contractCode(contractCodeKey) if let ledgerKeyBase64 = ledgerKey.xdrEncoded { - self.getLedgerEntry(base64EncodedKey:ledgerKeyBase64) { (response) -> (Void) in + self.getLedgerEntries(base64EncodedKeys:[ledgerKeyBase64]) { (response) -> (Void) in switch response { case .success(let response): - let data = try? LedgerEntryDataXDR(fromBase64: response.ledgerEntryData) + let data = try? LedgerEntryDataXDR(fromBase64: response.entries[0].xdr) if let contractCode = data?.contractCode { completion(.success(response: contractCode)) } @@ -274,10 +274,10 @@ public class SorobanServer { durability: ContractDataDurability.persistent) let ledgerKey = LedgerKeyXDR.contractData(contractDataKey) if let ledgerKeyBase64 = ledgerKey.xdrEncoded { - self.getLedgerEntry(base64EncodedKey:ledgerKeyBase64) { (response) -> (Void) in + self.getLedgerEntries(base64EncodedKeys:[ledgerKeyBase64]) { (response) -> (Void) in switch response { case .success(let response): - let data = try? LedgerEntryDataXDR(fromBase64: response.ledgerEntryData) + let data = try? LedgerEntryDataXDR(fromBase64: response.entries[0].xdr) if let contractData = data?.contractData, let wasmId = contractData.val.contractInstance?.executable.wasm?.wrapped.hexEncodedString() { self.getContractCodeForWasmId(wasmId: wasmId) { (response) -> (Void) in switch response { diff --git a/stellarsdk/stellarsdk/soroban/responses/EventInfo.swift b/stellarsdk/stellarsdk/soroban/responses/EventInfo.swift index 5aeccdea..d5773f52 100644 --- a/stellarsdk/stellarsdk/soroban/responses/EventInfo.swift +++ b/stellarsdk/stellarsdk/soroban/responses/EventInfo.swift @@ -33,8 +33,8 @@ public class EventInfo: NSObject, Decodable { /// List containing the topic this event was emitted with. [XdrSCVal as base64|] public var topic:[String] - /// List containing the topic this event was emitted with - public var value:EventInfoValue + /// The emitted body value of the event (serialized in a base64 string - XdrSCVal). + public var value:String private enum CodingKeys: String, CodingKey { case ledger @@ -56,7 +56,12 @@ public class EventInfo: NSObject, Decodable { inSuccessfulContractCall = try values.decode(Bool.self, forKey: .inSuccessfulContractCall) pagingToken = try values.decode(String.self, forKey: .pagingToken) topic = try values.decode([String].self, forKey: .topic) - value = try values.decode(EventInfoValue.self, forKey: .value) + if let val = try? values.decodeIfPresent(String.self, forKey: .value) { + value = val + } else { + let valueXdr = try values.decode(EventInfoValue.self, forKey: .value) + value = valueXdr.xdr + } } } diff --git a/stellarsdk/stellarsdk/soroban/responses/GetLedgerEntriesResponse.swift b/stellarsdk/stellarsdk/soroban/responses/GetLedgerEntriesResponse.swift new file mode 100644 index 00000000..6e6ee4ef --- /dev/null +++ b/stellarsdk/stellarsdk/soroban/responses/GetLedgerEntriesResponse.swift @@ -0,0 +1,33 @@ +// +// GetLedgerEntriesResponse.swift +// stellarsdk +// +// Created by Christian Rogobete on 25.10.23. +// Copyright © 2023 Soneso. All rights reserved. +// + +import Foundation + + +/// Response for the getLedgerEntry request +/// See: https://soroban.stellar.org/api/methods/getLedgerEntry +/// +public class GetLedgerEntriesResponse: NSObject, Decodable { + + /// Hash of the latest ledger as a hex-encoded string + public var entries:[LedgerEntry] + + /// The current latest ledger observed by the node when this response was generated. + public var latestLedger:String + + private enum CodingKeys: String, CodingKey { + case entries + case latestLedger + } + + public required init(from decoder: Decoder) throws { + let values = try decoder.container(keyedBy: CodingKeys.self) + entries = try values.decode([LedgerEntry].self, forKey: .entries) + latestLedger = try values.decode(String.self, forKey: .latestLedger) + } +} diff --git a/stellarsdk/stellarsdk/soroban/responses/GetLedgerEntryResponse.swift b/stellarsdk/stellarsdk/soroban/responses/GetLedgerEntryResponse.swift deleted file mode 100644 index c2be9b86..00000000 --- a/stellarsdk/stellarsdk/soroban/responses/GetLedgerEntryResponse.swift +++ /dev/null @@ -1,35 +0,0 @@ -// -// GetLedgerEntryResponse.swift -// stellarsdk -// -// Created by Christian Rogobete. -// Copyright © 2023 Soneso. All rights reserved. -// - -import Foundation - -/// Response for the getLedgerEntry request -/// See: https://soroban.stellar.org/api/methods/getLedgerEntry -/// -public class GetLedgerEntryResponse: NSObject, Decodable { - - /// The current value of the given ledger entry (serialized in a base64 string LedgerEntryDataXdr) - public var ledgerEntryData:String - /// The ledger number of the last time this entry was updated (optional) - public var lastModifiedLedgerSeq:String - /// The current latest ledger observed by the node when this response was generated. - public var latestLedger:String - - private enum CodingKeys: String, CodingKey { - case ledgerEntryData = "xdr" - case lastModifiedLedgerSeq - case latestLedger - } - - public required init(from decoder: Decoder) throws { - let values = try decoder.container(keyedBy: CodingKeys.self) - ledgerEntryData = try values.decode(String.self, forKey: .ledgerEntryData) - lastModifiedLedgerSeq = try values.decode(String.self, forKey: .lastModifiedLedgerSeq) - latestLedger = try values.decode(String.self, forKey: .latestLedger) - } -} diff --git a/stellarsdk/stellarsdk/soroban/responses/LedgerEntry.swift b/stellarsdk/stellarsdk/soroban/responses/LedgerEntry.swift new file mode 100644 index 00000000..c7e9e7b3 --- /dev/null +++ b/stellarsdk/stellarsdk/soroban/responses/LedgerEntry.swift @@ -0,0 +1,40 @@ +// +// LedgerEntry.swift +// stellarsdk +// +// Created by Christian Rogobete on 25.10.23. +// Copyright © 2023 Soneso. All rights reserved. +// + +import Foundation + +public class LedgerEntry: NSObject, Decodable { + + /// The key of the ledger entry (serialized in a base64 string) + public var key:String + + /// The current value of the given ledger entry (serialized in a base64 string) + public var xdr:String + + /// The ledger sequence number of the last time this entry was updated. + public var lastModifiedLedgerSeq:String + + /// The ledger sequence number after which the ledger entry would expire. This field exists only for ContractCodeEntry and ContractDataEntry ledger entries (optional). + public var expirationLedgerSeq:String? + + + private enum CodingKeys: String, CodingKey { + case key + case xdr + case lastModifiedLedgerSeq + case expirationLedgerSeq + } + + public required init(from decoder: Decoder) throws { + let values = try decoder.container(keyedBy: CodingKeys.self) + key = try values.decode(String.self, forKey: .key) + xdr = try values.decode(String.self, forKey: .xdr) + lastModifiedLedgerSeq = try values.decode(String.self, forKey: .lastModifiedLedgerSeq) + expirationLedgerSeq = try values.decodeIfPresent(String.self, forKey: .expirationLedgerSeq) + } +} diff --git a/stellarsdk/stellarsdk/txrep/TxRep.swift b/stellarsdk/stellarsdk/txrep/TxRep.swift index c8793c5a..c697ec5e 100644 --- a/stellarsdk/stellarsdk/txrep/TxRep.swift +++ b/stellarsdk/stellarsdk/txrep/TxRep.swift @@ -3522,8 +3522,8 @@ public class TxRep: NSObject { return "liquidityPoolWithdrawOp" case .invokeHostFunction(_): return "invokeHostFunctionOp" - case .bumpFootprintExpiration(_): - return "bumpFootprintExpirationOp" + case .extendFootprintTTL(_): + return "extendFootprintTTLOp" case .restoreFootprint(_): return "restoreFootprintOp" } @@ -3580,7 +3580,7 @@ public class TxRep: NSObject { return "LIQUIDITY_POOL_WITHDRAW" case .invokeHostFunction(_): return "INVOKE_HOST_FUNCTION" - case .bumpFootprintExpiration(_): + case .extendFootprintTTL(_): return "BUMP_FOOTPRINT_EXPIRATION" case .restoreFootprint(_): return "RESTORE_FOOTPRINT" diff --git a/stellarsdk/stellarsdkTests/operations/OperationsLocalTestCase.swift b/stellarsdk/stellarsdkTests/operations/OperationsLocalTestCase.swift index b7c32a83..264c4f74 100644 --- a/stellarsdk/stellarsdkTests/operations/OperationsLocalTestCase.swift +++ b/stellarsdk/stellarsdkTests/operations/OperationsLocalTestCase.swift @@ -171,7 +171,7 @@ class OperationsLocalTestCase: XCTestCase { XCTAssert(false) case .invokeHostFunction: XCTAssert(false) - case .bumpFootprintExpiration: + case .extendFootprintTTL: XCTAssert(false) case .restoreFootprint: XCTAssert(false) diff --git a/stellarsdk/stellarsdkTests/operations/xdr/OperationXDRTestCase.swift b/stellarsdk/stellarsdkTests/operations/xdr/OperationXDRTestCase.swift index a549a49c..62a38a5b 100644 --- a/stellarsdk/stellarsdkTests/operations/xdr/OperationXDRTestCase.swift +++ b/stellarsdk/stellarsdkTests/operations/xdr/OperationXDRTestCase.swift @@ -99,8 +99,8 @@ class OperationXDRTestCase: XCTestCase { XCTAssertEqual(code, LiquidityPoolWithdrawResulCode.success.rawValue) case .invokeHostFunction(let code, _): XCTAssertEqual(code, InvokeHostFunctionResultCode.success.rawValue) - case .bumpFootprintExpiration(let code, _): - XCTAssertEqual(code, BumpFootprintExpirationResultCode.success.rawValue) + case .extendFootprintTTL(let code, _): + XCTAssertEqual(code, ExtendFootprintTTLResultCode.success.rawValue) case .restoreFootprint(let code, _): XCTAssertEqual(code, RestoreFootprintResultCode.success.rawValue) case .empty(let code): diff --git a/stellarsdk/stellarsdkTests/payments/PaymentsTestCase.swift b/stellarsdk/stellarsdkTests/payments/PaymentsTestCase.swift index cd3d5ae0..a076b77d 100644 --- a/stellarsdk/stellarsdkTests/payments/PaymentsTestCase.swift +++ b/stellarsdk/stellarsdkTests/payments/PaymentsTestCase.swift @@ -294,7 +294,7 @@ class PaymentsTestCase: XCTestCase { asset: Asset(type: AssetType.ASSET_TYPE_NATIVE)!, amount: 1.5) - let lb = LedgerBounds(minLedger: 0, maxLedger: 1892052) + let lb = LedgerBounds(minLedger: 0, maxLedger: 4892052) let tb = TimeBounds(minTime: 1652110741, maxTime: 1752110741) let precond = TransactionPreconditions(ledgerBounds: lb, timeBounds: tb, minSeqNumber: accountResponse.sequenceNumber, minSeqAge: 1, minSeqLedgerGap: 1) diff --git a/stellarsdk/stellarsdkTests/soroban/SorobanAtomicSwapTest.swift b/stellarsdk/stellarsdkTests/soroban/SorobanAtomicSwapTest.swift index 73d8cf46..870869e2 100644 --- a/stellarsdk/stellarsdkTests/soroban/SorobanAtomicSwapTest.swift +++ b/stellarsdk/stellarsdkTests/soroban/SorobanAtomicSwapTest.swift @@ -19,11 +19,11 @@ class SorobanAtomicSwapTest: XCTestCase { let sdk = StellarSDK.testNet() let network = Network.testnet let submitterKeyPair = try! KeyPair.generateRandomKeyPair() - let aliceKeyPair = try! KeyPair(secretSeed: "SDXGSRXCUVH4L772WSNXACUIBVNUCU6R7IOSDJZUS3ESD2ZRU465MVFI") // GCIJ765J63P63XLTEWJ7CA7UYTRMXIHJDF4CFOM5U7K6E3IIBJXUPMLU - let bobKeyPair = try! KeyPair(secretSeed: "SAU6I4TI23H5YEG5UKQOXPHW3U64YG7M6NCXILKJSEFNYXYVT34IETHJ") // GB6CEY6UITFHT7RFESNUSQLVUEMNVVSQTLAWPDJ2ZOFYYV2S5OHSHPI5 - let atomicSwapContractId = "eda29c1546a9f96bb09aa1bc91142febcc66be52ae3b8c9b823e38d4d320fd88" - let tokenAId = "d8193f2ff0f99a64a208f869f0b8f8f0f7355c803d191b7a7b3a137801f104f4" - let tokenBId = "d03fffb9c1fb44fed52e1f7cf3e8f5b779b9e3998dbc7df4a62af4f6fc6ce3f1" + let aliceKeyPair = try! KeyPair(secretSeed: "SBQ3VVOF262CJ7J5QVVWLTLCOJNM7RHLLOVMHLIVRHVWFJYKTEU72RXA") // GCUIT7MT25K2I4FWELTGRJ5POGBBL6K3DTECDTUS74WI23H3HOVIMPOG + let bobKeyPair = try! KeyPair(secretSeed: "SDCKIFJDDMBXJCTIXRKYUA5PW6UDDEBLL73MSUAR5QSYT7UTTVLIKJLH") // GD4Y6DEB36GMSRSBQ52W3BA4HQVFGVAZUKI7UFMTNUXXZZLFO7T2UNX5 + let atomicSwapContractId = "70ba893eab48e73e0e2857ea3c50ed753f841a4384618971f59fe41330f19e84" + let tokenAId = "5ddaada121ce9bcdd8c7c0fa95a7cbd7d9e1fa0315189efbc2920c899a0e8c49" + let tokenBId = "5ec51e0643c0a74c0dbf1d4f3df4d7fd1bf1c3995dc2e784f061a5a54ad47c57" let swapFunctionName = "swap" var invokeTransactionId:String? var submitterAccount:AccountResponse? diff --git a/stellarsdk/stellarsdkTests/soroban/SorobanEventsTest.swift b/stellarsdk/stellarsdkTests/soroban/SorobanEventsTest.swift index 8eee3195..9c46249b 100644 --- a/stellarsdk/stellarsdkTests/soroban/SorobanEventsTest.swift +++ b/stellarsdk/stellarsdkTests/soroban/SorobanEventsTest.swift @@ -325,7 +325,7 @@ class SorobanEventsTest: XCTestCase { let cId = try! eventsResponse.events[0].contractId.decodeContractIdHex() XCTAssert(self.contractId! == cId) XCTAssert("AAAADwAAAAdDT1VOVEVSAA==" == eventsResponse.events[0].topic[0]) - XCTAssert("AAAAAwAAAAE=" == eventsResponse.events[0].value.xdr) + XCTAssert("AAAAAwAAAAE=" == eventsResponse.events[0].value) expectation.fulfill() case .failure(let error): self.printError(error: error) diff --git a/stellarsdk/stellarsdkTests/soroban/SorobanTest.swift b/stellarsdk/stellarsdkTests/soroban/SorobanTest.swift index fcc31504..435884a9 100644 --- a/stellarsdk/stellarsdkTests/soroban/SorobanTest.swift +++ b/stellarsdk/stellarsdkTests/soroban/SorobanTest.swift @@ -107,7 +107,7 @@ class SorobanTest: XCTestCase { // test bump contract code footprint // see: https://soroban.stellar.org/docs/fundamentals-and-concepts/state-expiration refreshSubmitterAccount() - bumpContractCodeFootprint(wasmId: self.wasmId!, ledgersToExpire: 10000) + extendContractCodeFootprintTTL(wasmId: self.wasmId!, extendTo: 10000) checkTransactionStatusSuccess(transactionId: self.bumpTransactionId!) // this is currently not testable because horizon returns status 500 //getTransactionDetails(transactionHash: self.bumpTransactionId!, type:"bump_footprint_expiration") @@ -404,14 +404,14 @@ class SorobanTest: XCTestCase { } } - func bumpContractCodeFootprint(wasmId: String, ledgersToExpire: UInt32) { - XCTContext.runActivity(named: "bumpContractCodeFootprint") { activity in + func extendContractCodeFootprintTTL(wasmId: String, extendTo: UInt32) { + XCTContext.runActivity(named: "extendContractCodeFootprintTTL") { activity in let expectation = XCTestExpectation(description: "footprint sucessfully bumped") - let bumpOperation = BumpFootprintExpirationOperation(ledgersToExpire: ledgersToExpire) + let extendOperation = ExtendFootprintTTLOperation(ledgersToExpire: extendTo) let transaction = try! Transaction(sourceAccount: submitterAccount!, - operations: [bumpOperation], memo: Memo.none) + operations: [extendOperation], memo: Memo.none) let ledgerKeyContractCode = LedgerKeyContractCodeXDR(wasmId:wasmId) @@ -477,7 +477,7 @@ class SorobanTest: XCTestCase { XCTAssertEqual(op.function, type) } else if let op = response.records.first! as? RestoreFootprintOperationResponse { XCTAssertEqual(op.operationTypeString, type) - } else if let op = response.records.first! as? BumpFootprintExpirationOperationResponse { + } else if let op = response.records.first! as? ExtendFootprintTTLOperationResponse { XCTAssertEqual(op.operationTypeString, type) } else { XCTFail() @@ -605,11 +605,11 @@ class SorobanTest: XCTestCase { let expectation = XCTestExpectation(description: "get ledger entryies for the created contract") let contractCodeKey = createContractFootprint?.contractCodeLedgerKey let contractDataKey = createContractFootprint?.contractDataLedgerKey - self.sorobanServer.getLedgerEntry(base64EncodedKey:contractCodeKey!) { (response) -> (Void) in + self.sorobanServer.getLedgerEntries(base64EncodedKeys:[contractCodeKey!]) { (response) -> (Void) in switch response { case .success(let response): XCTAssert(Int(response.latestLedger)! > 0) - self.sorobanServer.getLedgerEntry(base64EncodedKey:contractDataKey!) { (response) -> (Void) in + self.sorobanServer.getLedgerEntries(base64EncodedKeys:[contractDataKey!]) { (response) -> (Void) in switch response { case .success(let ledgerResponse): XCTAssert(Int(ledgerResponse.latestLedger)! > 0) @@ -831,7 +831,7 @@ class SorobanTest: XCTestCase { XCTContext.runActivity(named: "getSACWithSALedgerEntries") { activity in let expectation = XCTestExpectation(description: "get ledger entryies for the deployed token contract with source account") let contractDataKey = deploySAFootprint?.contractDataLedgerKey - self.sorobanServer.getLedgerEntry(base64EncodedKey:contractDataKey!) { (response) -> (Void) in + self.sorobanServer.getLedgerEntries(base64EncodedKeys:[contractDataKey!]) { (response) -> (Void) in switch response { case .success(let ledgerResponse): XCTAssert(Int(ledgerResponse.latestLedger)! > 0) @@ -930,7 +930,7 @@ class SorobanTest: XCTestCase { XCTContext.runActivity(named: "getSACWithAssetLedgerEntries") { activity in let expectation = XCTestExpectation(description: "get ledger entryies for the deployed token contract with asset") let contractDataKey = deployWithAssetFootprint?.contractDataLedgerKey - self.sorobanServer.getLedgerEntry(base64EncodedKey:contractDataKey!) { (response) -> (Void) in + self.sorobanServer.getLedgerEntries(base64EncodedKeys:[contractDataKey!]) { (response) -> (Void) in switch response { case .success(let ledgerResponse): XCTAssert(Int(ledgerResponse.latestLedger)! > 0)