diff --git a/README.md b/README.md index 957331c..dd16b91 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.6.2' + pod 'stellar-ios-mac-sdk', '~> 2.6.3' 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.6.2 +github "soneso/stellar-ios-mac-sdk" ~> 2.6.3 ``` 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.6.2"), +.package(name: "stellarsdk", url: "git@github.com:Soneso/stellar-ios-mac-sdk.git", from: "2.6.3"), ``` ### Manual diff --git a/stellar-ios-mac-sdk.podspec b/stellar-ios-mac-sdk.podspec index 70672bf..35cd913 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.6.2" + s.version = "2.6.3" 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/Info.plist b/stellarsdk/stellarsdk/Info.plist index 8e865db..4d1e9d6 100644 --- a/stellarsdk/stellarsdk/Info.plist +++ b/stellarsdk/stellarsdk/Info.plist @@ -15,7 +15,7 @@ CFBundlePackageType FMWK CFBundleShortVersionString - 2.6.2 + 2.6.3 CFBundleVersion $(CURRENT_PROJECT_VERSION) NSPrincipalClass diff --git a/stellarsdk/stellarsdkTests/transactions/TransactionsLocalTestCase.swift b/stellarsdk/stellarsdkTests/transactions/TransactionsLocalTestCase.swift index b91339c..f78ef30 100644 --- a/stellarsdk/stellarsdkTests/transactions/TransactionsLocalTestCase.swift +++ b/stellarsdk/stellarsdkTests/transactions/TransactionsLocalTestCase.swift @@ -602,556 +602,7 @@ class TransactionsLocalTestCase: XCTestCase { print(txRepRes) XCTAssert (txRepRes == txrep) } - /* - func testTXRepSorobanInstallContractCode() { - let txrep = """ - type: ENVELOPE_TYPE_TX - tx.sourceAccount: GAMLIXLKO3GIC2K5CLQ42573BBRTODKWIQQCUJSLHPUPUWBNFTIKZOND - tx.fee: 100 - tx.seqNum: 1410007698505729 - tx.cond.type: PRECOND_NONE - tx.memo.type: MEMO_NONE - tx.operations.len: 1 - tx.operations[0].sourceAccount._present: false - tx.operations[0].body.type: INVOKE_HOST_FUNCTION - tx.operations[0].body.invokeHostFunctionOp.function.type: HOST_FUNCTION_TYPE_INSTALL_CONTRACT_CODE - tx.operations[0].body.invokeHostFunctionOp.function.installContractCodeArgs.code: 0061736d01000000010f0360017e017e60027e7e017e6000000219040176015f000001780138000001760134000101760136000103030200020503010001060b027f0141000b7f0141000b071d030568656c6c6f0004066d656d6f727902000873646b737461727400050c01060ac70302b20302067f027e4202100021082300220441046a2201411c6a22053f002203411074410f6a41707122064b04402003200520066b41ffff036a4180807c714110762206200320064a1b40004100480440200640004100480440000b0b0b200524002004411c360200200141046b22034100360204200341003602082003410336020c200341083602102001420037031020012008370310419c0928020041017641094b044042831010011a0b03402002419c092802004101764804402002419c092802004101764f047f417f05200241017441a0096a2f01000b220341fa004c200341304e7104402007420686210842002107200341ff017141df004604404201210705200341ff0171220441394d200441304f710440200341ff0171ad422e7d210705200341ff0171220441da004d200441c1004f710440200341ff0171ad42357d210705200341ff0171220441fa004d200441e1004f710440200341ff0171ad423b7d21070542831010011a0b0b0b0b200720088421070542831010011a0b200241016a21020c010b0b200120012903102007420886420e841002370310200120012903102000100337031020012903100b1100230104400f0b4101240141ac0924000b0b8d010600418c080b013c004198080b2f010000002800000041006c006c006f0063006100740069006f006e00200074006f006f0020006c00610072006700650041cc080b013c0041d8080b25010000001e0000007e006c00690062002f00720074002f0073007400750062002e0074007300418c090b011c004198090b11010000000a000000480065006c006c006f001e11636f6e7472616374656e766d657461763000000000000000000000002000430e636f6e747261637473706563763000000000000000000000000568656c6c6f000000000000010000000000000002746f00000000001100000001000003ea00000011 - tx.operations[0].body.invokeHostFunctionOp.footprint.readOnly.len: 1 - tx.operations[0].body.invokeHostFunctionOp.footprint.readOnly[0].type: CONTRACT_CODE - tx.operations[0].body.invokeHostFunctionOp.footprint.readOnly[0].contractCode.hash: 3c2852fb06f47f4f371ac1b13472ae65ce3354c8af3001e66896cea08358b554 - tx.operations[0].body.invokeHostFunctionOp.footprint.readWrite.len: 0 - tx.operations[0].body.invokeHostFunctionOp.auth.len: 0 - tx.ext.v: 0 - signatures.len: 1 - signatures[0].hint: 2d2cd0ac - signatures[0].signature: a3bf28aa1433bb74ae8531009355b8921d8ba22b369a3e0e4a922aa3a211d27f5d9fcace1d0415089668f305320e1bf8f1929012accfe4b4990ee2a2d01bda02 - """; - - let expected = "AAAAAgAAAAAYtF1qdsyBaV0S4c13+whjNw1WRCAqJks76PpYLSzQrAAAAGQABQJlAAAAAQAAAAAAAAAAAAAAAQAAAAAAAAAYAAAAAgAAAywAYXNtAQAAAAEPA2ABfgF+YAJ+fgF+YAAAAhkEAXYBXwAAAXgBOAAAAXYBNAABAXYBNgABAwMCAAIFAwEAAQYLAn8BQQALfwFBAAsHHQMFaGVsbG8ABAZtZW1vcnkCAAhzZGtzdGFydAAFDAEGCscDArIDAgZ/An5CAhAAIQgjACIEQQRqIgFBHGoiBT8AIgNBEHRBD2pBcHEiBksEQCADIAUgBmtB//8DakGAgHxxQRB2IgYgAyAGShtAAEEASARAIAZAAEEASARAAAsLCyAFJAAgBEEcNgIAIAFBBGsiA0EANgIEIANBADYCCCADQQM2AgwgA0EINgIQIAFCADcDECABIAg3AxBBnAkoAgBBAXZBCUsEQEKDEBABGgsDQCACQZwJKAIAQQF2SARAIAJBnAkoAgBBAXZPBH9BfwUgAkEBdEGgCWovAQALIgNB+gBMIANBME5xBEAgB0IGhiEIQgAhByADQf8BcUHfAEYEQEIBIQcFIANB/wFxIgRBOU0gBEEwT3EEQCADQf8Bca1CLn0hBwUgA0H/AXEiBEHaAE0gBEHBAE9xBEAgA0H/AXGtQjV9IQcFIANB/wFxIgRB+gBNIARB4QBPcQRAIANB/wFxrUI7fSEHBUKDEBABGgsLCwsgByAIhCEHBUKDEBABGgsgAkEBaiECDAELCyABIAEpAxAgB0IIhkIOhBACNwMQIAEgASkDECAAEAM3AxAgASkDEAsRACMBBEAPC0EBJAFBrAkkAAsLjQEGAEGMCAsBPABBmAgLLwEAAAAoAAAAQQBsAGwAbwBjAGEAdABpAG8AbgAgAHQAbwBvACAAbABhAHIAZwBlAEHMCAsBPABB2AgLJQEAAAAeAAAAfgBsAGkAYgAvAHIAdAAvAHMAdAB1AGIALgB0AHMAQYwJCwEcAEGYCQsRAQAAAAoAAABIAGUAbABsAG8AHhFjb250cmFjdGVudm1ldGF2MAAAAAAAAAAAAAAAIABDDmNvbnRyYWN0c3BlY3YwAAAAAAAAAAAAAAAFaGVsbG8AAAAAAAABAAAAAAAAAAJ0bwAAAAAAEQAAAAEAAAPqAAAAEQAAAAEAAAAHPChS+wb0f083GsGxNHKuZc4zVMivMAHmaJbOoINYtVQAAAAAAAAAAAAAAAAAAAABLSzQrAAAAECjvyiqFDO7dK6FMQCTVbiSHYuiKzaaPg5KkiqjohHSf12fys4dBBUIlmjzBTIOG/jxkpASrM/ktJkO4qLQG9oC"; - - let xdr = try! TxRep.fromTxRep(txRep: txrep) - print(xdr) - XCTAssert (xdr == expected) - let txRepRes = try! TxRep.toTxRep(transactionEnvelope: xdr); - print(txRepRes) - XCTAssert (txRepRes == txrep) - } - - func testTxRepSorobanCreateContract() { - let txrep = """ - type: ENVELOPE_TYPE_TX - tx.sourceAccount: GCB6HTJLKSPZF6GDBKKNUMAFIMUOSIQGLHRF2TWE7TXLJYU5TEJE73JB - tx.fee: 100 - tx.seqNum: 1411291893727234 - tx.cond.type: PRECOND_NONE - tx.memo.type: MEMO_NONE - tx.operations.len: 1 - tx.operations[0].sourceAccount._present: false - tx.operations[0].body.type: INVOKE_HOST_FUNCTION - tx.operations[0].body.invokeHostFunctionOp.function.type: HOST_FUNCTION_TYPE_CREATE_CONTRACT - tx.operations[0].body.invokeHostFunctionOp.function.createContractArgs.source.type: SCCONTRACT_CODE_WASM_REF - tx.operations[0].body.invokeHostFunctionOp.function.createContractArgs.source.wasm_id: 3c2852fb06f47f4f371ac1b13472ae65ce3354c8af3001e66896cea08358b554 - tx.operations[0].body.invokeHostFunctionOp.function.createContractArgs.contractID.type: CONTRACT_ID_FROM_SOURCE_ACCOUNT - tx.operations[0].body.invokeHostFunctionOp.function.createContractArgs.contractID.salt: 7ccb2e253efe9a989b8fee36ed4579bd9eeaa6800016e2d9b592b643940c1486 - tx.operations[0].body.invokeHostFunctionOp.footprint.readOnly.len: 1 - tx.operations[0].body.invokeHostFunctionOp.footprint.readOnly[0].type: CONTRACT_CODE - tx.operations[0].body.invokeHostFunctionOp.footprint.readOnly[0].contractCode.hash: 3c2852fb06f47f4f371ac1b13472ae65ce3354c8af3001e66896cea08358b554 - tx.operations[0].body.invokeHostFunctionOp.footprint.readWrite.len: 1 - tx.operations[0].body.invokeHostFunctionOp.footprint.readWrite[0].type: CONTRACT_DATA - tx.operations[0].body.invokeHostFunctionOp.footprint.readWrite[0].contractData.contractID: 10267e32179a6026aa64a975774d6abcf35b1880aaaaafaaaabbdef5c323530e - tx.operations[0].body.invokeHostFunctionOp.footprint.readWrite[0].contractData.key.type: SCV_LEDGER_KEY_CONTRACT_EXECUTABLE - tx.operations[0].body.invokeHostFunctionOp.auth.len: 0 - tx.ext.v: 0 - signatures.len: 1 - signatures[0].hint: 9d99124f - signatures[0].signature: 8b1aae1df97130436042a55c435350e7f12fb93c3c1ead0e7da41d009b730539cfb4183a7c75359ab5f1d2d5d5a46e8e88352bedd107df4d4831d290d9f9590c - """; - - let expected = "AAAAAgAAAACD480rVJ+S+MMKlNowBUMo6SIGWeJdTsT87rTinZkSTwAAAGQABQOQAAAAAgAAAAAAAAAAAAAAAQAAAAAAAAAYAAAAAQAAAAB8yy4lPv6amJuP7jbtRXm9nuqmgAAW4tm1krZDlAwUhgAAAAA8KFL7BvR/TzcawbE0cq5lzjNUyK8wAeZols6gg1i1VAAAAAEAAAAHPChS+wb0f083GsGxNHKuZc4zVMivMAHmaJbOoINYtVQAAAABAAAABhAmfjIXmmAmqmSpdXdNarzzWxiAqqqvqqq73vXDI1MOAAAAFAAAAAAAAAAAAAAAAZ2ZEk8AAABAixquHflxMENgQqVcQ1NQ5/EvuTw8Hq0OfaQdAJtzBTnPtBg6fHU1mrXx0tXVpG6OiDUr7dEH301IMdKQ2flZDA=="; - - - let xdr = try! TxRep.fromTxRep(txRep: txrep) - print(xdr) - XCTAssert (xdr == expected) - let txRepRes = try! TxRep.toTxRep(transactionEnvelope: xdr); - print(txRepRes) - XCTAssert (txRepRes == txrep) - } - - func testTxRepSorobanInvokeContract() { - let txrep = """ - type: ENVELOPE_TYPE_TX - tx.sourceAccount: GBEJEYTTA2DN5UXTLIUWLWMC7FBHH4XMSXE5A6DA7T2PZHC2SYM3Y2FU - tx.fee: 100 - tx.seqNum: 1412116527448067 - tx.cond.type: PRECOND_NONE - tx.memo.type: MEMO_NONE - tx.operations.len: 1 - tx.operations[0].sourceAccount._present: false - tx.operations[0].body.type: INVOKE_HOST_FUNCTION - tx.operations[0].body.invokeHostFunctionOp.function.type: HOST_FUNCTION_TYPE_INVOKE_CONTRACT - tx.operations[0].body.invokeHostFunctionOp.function.invokeArgs.len: 3 - tx.operations[0].body.invokeHostFunctionOp.function.invokeArgs[0].type: SCV_BYTES - tx.operations[0].body.invokeHostFunctionOp.function.invokeArgs[0].bytes: e7b601e7e77e1cc41c6de03fd5ca53c0acfa980264932f8fcff79a617b95db0d - tx.operations[0].body.invokeHostFunctionOp.function.invokeArgs[1].type: SCV_SYMBOL - tx.operations[0].body.invokeHostFunctionOp.function.invokeArgs[1].sym: hello - tx.operations[0].body.invokeHostFunctionOp.function.invokeArgs[2].type: SCV_SYMBOL - tx.operations[0].body.invokeHostFunctionOp.function.invokeArgs[2].sym: friend - tx.operations[0].body.invokeHostFunctionOp.footprint.readOnly.len: 2 - tx.operations[0].body.invokeHostFunctionOp.footprint.readOnly[0].type: CONTRACT_DATA - tx.operations[0].body.invokeHostFunctionOp.footprint.readOnly[0].contractData.contractID: e7b601e7e77e1cc41c6de03fd5ca53c0acfa980264932f8fcff79a617b95db0d - tx.operations[0].body.invokeHostFunctionOp.footprint.readOnly[0].contractData.key.type: SCV_LEDGER_KEY_CONTRACT_EXECUTABLE - tx.operations[0].body.invokeHostFunctionOp.footprint.readOnly[1].type: CONTRACT_CODE - tx.operations[0].body.invokeHostFunctionOp.footprint.readOnly[1].contractCode.hash: 3c2852fb06f47f4f371ac1b13472ae65ce3354c8af3001e66896cea08358b554 - tx.operations[0].body.invokeHostFunctionOp.footprint.readWrite.len: 0 - tx.operations[0].body.invokeHostFunctionOp.auth.len: 0 - tx.ext.v: 0 - signatures.len: 1 - signatures[0].hint: 5a9619bc - signatures[0].signature: 8e7e685df4479133e7b3d60fed6f33b868c88f256495394eabcf27ac0708de910906d21dea6760f34b6fdd0cd9b534ffc9323e728f0c21657dc4b109a7a97201 - """; - - let expected = "AAAAAgAAAABIkmJzBobe0vNaKWXZgvlCc/LslcnQeGD89PycWpYZvAAAAGQABQRQAAAAAwAAAAAAAAAAAAAAAQAAAAAAAAAYAAAAAAAAAAMAAAANAAAAIOe2AefnfhzEHG3gP9XKU8Cs+pgCZJMvj8/3mmF7ldsNAAAADwAAAAVoZWxsbwAAAAAAAA8AAAAGZnJpZW5kAAAAAAACAAAABue2AefnfhzEHG3gP9XKU8Cs+pgCZJMvj8/3mmF7ldsNAAAAFAAAAAc8KFL7BvR/TzcawbE0cq5lzjNUyK8wAeZols6gg1i1VAAAAAAAAAAAAAAAAAAAAAFalhm8AAAAQI5+aF30R5Ez57PWD+1vM7hoyI8lZJU5TqvPJ6wHCN6RCQbSHepnYPNLb90M2bU0/8kyPnKPDCFlfcSxCaepcgE="; - - let xdr = try! TxRep.fromTxRep(txRep: txrep) - print(xdr) - XCTAssert (xdr == expected) - let txRepRes = try! TxRep.toTxRep(transactionEnvelope: xdr); - print(txRepRes) - XCTAssert (txRepRes == txrep) - } - - func testTxRepSorobanDeploySACSrcAcc() { - let txrep = """ - type: ENVELOPE_TYPE_TX - tx.sourceAccount: GCKN6CVKZWE6VH67G6FMRESA5PEKBU3H3EKYDXCGSTBZMCU2BP3F5BU7 - tx.fee: 100 - tx.seqNum: 1460817161617412 - tx.cond.type: PRECOND_NONE - tx.memo.type: MEMO_NONE - tx.operations.len: 1 - tx.operations[0].sourceAccount._present: false - tx.operations[0].body.type: INVOKE_HOST_FUNCTION - tx.operations[0].body.invokeHostFunctionOp.function.type: HOST_FUNCTION_TYPE_CREATE_CONTRACT - tx.operations[0].body.invokeHostFunctionOp.function.createContractArgs.source.type: SCCONTRACT_CODE_TOKEN - tx.operations[0].body.invokeHostFunctionOp.function.createContractArgs.contractID.type: CONTRACT_ID_FROM_SOURCE_ACCOUNT - tx.operations[0].body.invokeHostFunctionOp.function.createContractArgs.contractID.salt: 8084ab5bf8fe1b1b20ad25e4a80318143abe222f09985ded4a34ef47b5e5f13c - tx.operations[0].body.invokeHostFunctionOp.footprint.readOnly.len: 0 - tx.operations[0].body.invokeHostFunctionOp.footprint.readWrite.len: 1 - tx.operations[0].body.invokeHostFunctionOp.footprint.readWrite[0].type: CONTRACT_DATA - tx.operations[0].body.invokeHostFunctionOp.footprint.readWrite[0].contractData.contractID: 36ac11aebe84ff51242e5a92e95bf5b0b0f56b5be6d195e575bdc9b9c611c969 - tx.operations[0].body.invokeHostFunctionOp.footprint.readWrite[0].contractData.key.type: SCV_LEDGER_KEY_CONTRACT_EXECUTABLE - tx.operations[0].body.invokeHostFunctionOp.auth.len: 0 - tx.ext.v: 0 - signatures.len: 1 - signatures[0].hint: 9a0bf65e - signatures[0].signature: 20eda6e11d3a7d748d5a8e7f3ac06a8774d2aa7f9b33d92ab74395db63f1b54eb50f14f23ae877b292f3e936c6c9717524989e95b0758a3addbe8da6b8c28006 - """; - - let expected = "AAAAAgAAAACU3wqqzYnqn983isiSQOvIoNNn2RWB3EaUw5YKmgv2XgAAAGQABTCbAAAABAAAAAAAAAAAAAAAAQAAAAAAAAAYAAAAAQAAAACAhKtb+P4bGyCtJeSoAxgUOr4iLwmYXe1KNO9HteXxPAAAAAEAAAAAAAAAAQAAAAY2rBGuvoT/USQuWpLpW/WwsPVrW+bRleV1vcm5xhHJaQAAABQAAAAAAAAAAAAAAAGaC/ZeAAAAQCDtpuEdOn10jVqOfzrAaod00qp/mzPZKrdDldtj8bVOtQ8U8jrod7KS8+k2xslxdSSYnpWwdYo63b6NprjCgAY="; - - let xdr = try! TxRep.fromTxRep(txRep: txrep) - print(xdr) - XCTAssert (xdr == expected) - let txRepRes = try! TxRep.toTxRep(transactionEnvelope: xdr); - print(txRepRes) - XCTAssert (txRepRes == txrep) - } - - func testTxRepSorobanDeploySACAsset() { - let txrep = """ - type: ENVELOPE_TYPE_TX - tx.sourceAccount: GAES5UHZXUGHLCIFPG2HOP55Z5BNIPHDX25F7T5IRGZRT2AOZZVXDPGU - tx.fee: 100 - tx.seqNum: 1460842931421186 - tx.cond.type: PRECOND_NONE - tx.memo.type: MEMO_NONE - tx.operations.len: 1 - tx.operations[0].sourceAccount._present: false - tx.operations[0].body.type: INVOKE_HOST_FUNCTION - tx.operations[0].body.invokeHostFunctionOp.function.type: HOST_FUNCTION_TYPE_CREATE_CONTRACT - tx.operations[0].body.invokeHostFunctionOp.function.createContractArgs.source.type: SCCONTRACT_CODE_TOKEN - tx.operations[0].body.invokeHostFunctionOp.function.createContractArgs.contractID.type: CONTRACT_ID_FROM_ASSET - tx.operations[0].body.invokeHostFunctionOp.function.createContractArgs.contractID.asset: IOM:GCKN6CVKZWE6VH67G6FMRESA5PEKBU3H3EKYDXCGSTBZMCU2BP3F5BU7 - tx.operations[0].body.invokeHostFunctionOp.footprint.readOnly.len: 0 - tx.operations[0].body.invokeHostFunctionOp.footprint.readWrite.len: 3 - tx.operations[0].body.invokeHostFunctionOp.footprint.readWrite[0].type: CONTRACT_DATA - tx.operations[0].body.invokeHostFunctionOp.footprint.readWrite[0].contractData.contractID: 31f630224066f7d5be0ec6f108ea6cc9aeb65de5f8343a02e1add61ff3c99a1f - tx.operations[0].body.invokeHostFunctionOp.footprint.readWrite[0].contractData.key.type: SCV_VEC - tx.operations[0].body.invokeHostFunctionOp.footprint.readWrite[0].contractData.key.vec._present: true - tx.operations[0].body.invokeHostFunctionOp.footprint.readWrite[0].contractData.key.vec.len: 1 - tx.operations[0].body.invokeHostFunctionOp.footprint.readWrite[0].contractData.key.vec[0].type: SCV_SYMBOL - tx.operations[0].body.invokeHostFunctionOp.footprint.readWrite[0].contractData.key.vec[0].sym: Admin - tx.operations[0].body.invokeHostFunctionOp.footprint.readWrite[1].type: CONTRACT_DATA - tx.operations[0].body.invokeHostFunctionOp.footprint.readWrite[1].contractData.contractID: 31f630224066f7d5be0ec6f108ea6cc9aeb65de5f8343a02e1add61ff3c99a1f - tx.operations[0].body.invokeHostFunctionOp.footprint.readWrite[1].contractData.key.type: SCV_VEC - tx.operations[0].body.invokeHostFunctionOp.footprint.readWrite[1].contractData.key.vec._present: true - tx.operations[0].body.invokeHostFunctionOp.footprint.readWrite[1].contractData.key.vec.len: 1 - tx.operations[0].body.invokeHostFunctionOp.footprint.readWrite[1].contractData.key.vec[0].type: SCV_SYMBOL - tx.operations[0].body.invokeHostFunctionOp.footprint.readWrite[1].contractData.key.vec[0].sym: Metadata - tx.operations[0].body.invokeHostFunctionOp.footprint.readWrite[2].type: CONTRACT_DATA - tx.operations[0].body.invokeHostFunctionOp.footprint.readWrite[2].contractData.contractID: 31f630224066f7d5be0ec6f108ea6cc9aeb65de5f8343a02e1add61ff3c99a1f - tx.operations[0].body.invokeHostFunctionOp.footprint.readWrite[2].contractData.key.type: SCV_LEDGER_KEY_CONTRACT_EXECUTABLE - tx.operations[0].body.invokeHostFunctionOp.auth.len: 0 - tx.ext.v: 0 - signatures.len: 1 - signatures[0].hint: 0ece6b71 - signatures[0].signature: aa5a440d98b085bed69f223ec351ffb95fb438fd64cdbdda7a79ee784733183ddc685ac5a963b584535dfece6d366d277870e6d2c956800f661397b52a3ebc06 - """; - - let expected = "AAAAAgAAAAAJLtD5vQx1iQV5tHc/vc9C1Dzjvrpfz6iJsxnoDs5rcQAAAGQABTChAAAAAgAAAAAAAAAAAAAAAQAAAAAAAAAYAAAAAQAAAAIAAAABSU9NAAAAAACU3wqqzYnqn983isiSQOvIoNNn2RWB3EaUw5YKmgv2XgAAAAEAAAAAAAAAAwAAAAYx9jAiQGb31b4OxvEI6mzJrrZd5fg0OgLhrdYf88maHwAAABAAAAABAAAAAQAAAA8AAAAFQWRtaW4AAAAAAAAGMfYwIkBm99W+DsbxCOpsya62XeX4NDoC4a3WH/PJmh8AAAAQAAAAAQAAAAEAAAAPAAAACE1ldGFkYXRhAAAABjH2MCJAZvfVvg7G8QjqbMmutl3l+DQ6AuGt1h/zyZofAAAAFAAAAAAAAAAAAAAAAQ7Oa3EAAABAqlpEDZiwhb7WnyI+w1H/uV+0OP1kzb3aennueEczGD3caFrFqWO1hFNd/s5tNm0neHDm0slWgA9mE5e1Kj68Bg=="; - - let xdr = try! TxRep.fromTxRep(txRep: txrep) - print(xdr) - XCTAssert (xdr == expected) - let txRepRes = try! TxRep.toTxRep(transactionEnvelope: xdr); - print(txRepRes) - XCTAssert (txRepRes == txrep) - } - func testTxRepSorobanInvokeAuthTest1() { - let txrep = """ - type: ENVELOPE_TYPE_TX - tx.sourceAccount: GCXYRGD4U77MEGDSXBXGGDI2UASQTLEJVT7YFKKZ2S7YQYFNZKKZJTMQ - tx.fee: 100 - tx.seqNum: 1461521536253955 - tx.cond.type: PRECOND_NONE - tx.memo.type: MEMO_NONE - tx.operations.len: 1 - tx.operations[0].sourceAccount._present: false - tx.operations[0].body.type: INVOKE_HOST_FUNCTION - tx.operations[0].body.invokeHostFunctionOp.function.type: HOST_FUNCTION_TYPE_INVOKE_CONTRACT - tx.operations[0].body.invokeHostFunctionOp.function.invokeArgs.len: 4 - tx.operations[0].body.invokeHostFunctionOp.function.invokeArgs[0].type: SCV_BYTES - tx.operations[0].body.invokeHostFunctionOp.function.invokeArgs[0].bytes: 6d7e4ac1fefd1fae961f4bae47836dc8b815f1df3b27ef79c10a9a3e48119b09 - tx.operations[0].body.invokeHostFunctionOp.function.invokeArgs[1].type: SCV_SYMBOL - tx.operations[0].body.invokeHostFunctionOp.function.invokeArgs[1].sym: auth - tx.operations[0].body.invokeHostFunctionOp.function.invokeArgs[2].type: SCV_ADDRESS - tx.operations[0].body.invokeHostFunctionOp.function.invokeArgs[2].address.type: SC_ADDRESS_TYPE_ACCOUNT - tx.operations[0].body.invokeHostFunctionOp.function.invokeArgs[2].address.accountId: GCDANTQJGICA2BJOZWOECPIC33FZZGJA5EIVCODZ6QCNF5XPATYQQXI4 - tx.operations[0].body.invokeHostFunctionOp.function.invokeArgs[3].type: SCV_U32 - tx.operations[0].body.invokeHostFunctionOp.function.invokeArgs[3].u32: 3 - tx.operations[0].body.invokeHostFunctionOp.footprint.readOnly.len: 3 - tx.operations[0].body.invokeHostFunctionOp.footprint.readOnly[0].type: ACCOUNT - tx.operations[0].body.invokeHostFunctionOp.footprint.readOnly[0].account.accountID: GCDANTQJGICA2BJOZWOECPIC33FZZGJA5EIVCODZ6QCNF5XPATYQQXI4 - tx.operations[0].body.invokeHostFunctionOp.footprint.readOnly[1].type: CONTRACT_DATA - tx.operations[0].body.invokeHostFunctionOp.footprint.readOnly[1].contractData.contractID: 6d7e4ac1fefd1fae961f4bae47836dc8b815f1df3b27ef79c10a9a3e48119b09 - tx.operations[0].body.invokeHostFunctionOp.footprint.readOnly[1].contractData.key.type: SCV_LEDGER_KEY_CONTRACT_EXECUTABLE - tx.operations[0].body.invokeHostFunctionOp.footprint.readOnly[2].type: CONTRACT_CODE - tx.operations[0].body.invokeHostFunctionOp.footprint.readOnly[2].contractCode.hash: 185b8c6d92815faa9da6b69fdb8ec62f439bf967ffd51751b6e8c116b15edd26 - tx.operations[0].body.invokeHostFunctionOp.footprint.readWrite.len: 2 - tx.operations[0].body.invokeHostFunctionOp.footprint.readWrite[0].type: CONTRACT_DATA - tx.operations[0].body.invokeHostFunctionOp.footprint.readWrite[0].contractData.contractID: 6d7e4ac1fefd1fae961f4bae47836dc8b815f1df3b27ef79c10a9a3e48119b09 - tx.operations[0].body.invokeHostFunctionOp.footprint.readWrite[0].contractData.key.type: SCV_ADDRESS - tx.operations[0].body.invokeHostFunctionOp.footprint.readWrite[0].contractData.key.address.type: SC_ADDRESS_TYPE_ACCOUNT - tx.operations[0].body.invokeHostFunctionOp.footprint.readWrite[0].contractData.key.address.accountId: GCDANTQJGICA2BJOZWOECPIC33FZZGJA5EIVCODZ6QCNF5XPATYQQXI4 - tx.operations[0].body.invokeHostFunctionOp.footprint.readWrite[1].type: CONTRACT_DATA - tx.operations[0].body.invokeHostFunctionOp.footprint.readWrite[1].contractData.contractID: 6d7e4ac1fefd1fae961f4bae47836dc8b815f1df3b27ef79c10a9a3e48119b09 - tx.operations[0].body.invokeHostFunctionOp.footprint.readWrite[1].contractData.key.type: SCV_LEDGER_KEY_NONCE - tx.operations[0].body.invokeHostFunctionOp.footprint.readWrite[1].contractData.key.nonce_key.nonce_address.type: SC_ADDRESS_TYPE_ACCOUNT - tx.operations[0].body.invokeHostFunctionOp.footprint.readWrite[1].contractData.key.nonce_key.nonce_address.accountId: GCDANTQJGICA2BJOZWOECPIC33FZZGJA5EIVCODZ6QCNF5XPATYQQXI4 - tx.operations[0].body.invokeHostFunctionOp.auth.len: 1 - tx.operations[0].body.invokeHostFunctionOp.auth[0].addressWithNonce._present: true - tx.operations[0].body.invokeHostFunctionOp.auth[0].addressWithNonce.address.type: SC_ADDRESS_TYPE_ACCOUNT - tx.operations[0].body.invokeHostFunctionOp.auth[0].addressWithNonce.address.accountId: GCDANTQJGICA2BJOZWOECPIC33FZZGJA5EIVCODZ6QCNF5XPATYQQXI4 - tx.operations[0].body.invokeHostFunctionOp.auth[0].addressWithNonce.nonce: 0 - tx.operations[0].body.invokeHostFunctionOp.auth[0].rootInvocation.contractID: 6d7e4ac1fefd1fae961f4bae47836dc8b815f1df3b27ef79c10a9a3e48119b09 - tx.operations[0].body.invokeHostFunctionOp.auth[0].rootInvocation.functionName: auth - tx.operations[0].body.invokeHostFunctionOp.auth[0].rootInvocation.args.len: 2 - tx.operations[0].body.invokeHostFunctionOp.auth[0].rootInvocation.args[0].type: SCV_ADDRESS - tx.operations[0].body.invokeHostFunctionOp.auth[0].rootInvocation.args[0].address.type: SC_ADDRESS_TYPE_ACCOUNT - tx.operations[0].body.invokeHostFunctionOp.auth[0].rootInvocation.args[0].address.accountId: GCDANTQJGICA2BJOZWOECPIC33FZZGJA5EIVCODZ6QCNF5XPATYQQXI4 - tx.operations[0].body.invokeHostFunctionOp.auth[0].rootInvocation.args[1].type: SCV_U32 - tx.operations[0].body.invokeHostFunctionOp.auth[0].rootInvocation.args[1].u32: 3 - tx.operations[0].body.invokeHostFunctionOp.auth[0].rootInvocation.subInvocations.len: 0 - tx.operations[0].body.invokeHostFunctionOp.auth[0].signatureArgs.len: 1 - tx.operations[0].body.invokeHostFunctionOp.auth[0].signatureArgs[0].type: SCV_MAP - tx.operations[0].body.invokeHostFunctionOp.auth[0].signatureArgs[0].map._present: true - tx.operations[0].body.invokeHostFunctionOp.auth[0].signatureArgs[0].map.len: 2 - tx.operations[0].body.invokeHostFunctionOp.auth[0].signatureArgs[0].map[0].key.type: SCV_SYMBOL - tx.operations[0].body.invokeHostFunctionOp.auth[0].signatureArgs[0].map[0].key.sym: public_key - tx.operations[0].body.invokeHostFunctionOp.auth[0].signatureArgs[0].map[0].val.type: SCV_BYTES - tx.operations[0].body.invokeHostFunctionOp.auth[0].signatureArgs[0].map[0].val.bytes: 8606ce0932040d052ecd9c413d02decb9c9920e911513879f404d2f6ef04f108 - tx.operations[0].body.invokeHostFunctionOp.auth[0].signatureArgs[0].map[1].key.type: SCV_SYMBOL - tx.operations[0].body.invokeHostFunctionOp.auth[0].signatureArgs[0].map[1].key.sym: signature - tx.operations[0].body.invokeHostFunctionOp.auth[0].signatureArgs[0].map[1].val.type: SCV_BYTES - tx.operations[0].body.invokeHostFunctionOp.auth[0].signatureArgs[0].map[1].val.bytes: e2da2f393e7c0a71bf8c4de1c4bb21841bc4727864d81457406d362715e1634577e6085a91803e726003c443e8dac679f0da912c5fb24433c1bc2722d4ae2708 - tx.ext.v: 0 - signatures.len: 1 - signatures[0].hint: adca9594 - signatures[0].signature: 60046a4ee45a44791aafdd250913a5b1ecf46cf8dfffec4033cec4f526e89eafd0ace2e6dd6c99576d70f2ed5006e9b19144ab4b814c0f754bb3255c57aaa203 - """; - - let expected = "AAAAAgAAAACviJh8p/7CGHK4bmMNGqAlCayJrP+CqVnUv4hgrcqVlAAAAGQABTE/AAAAAwAAAAAAAAAAAAAAAQAAAAAAAAAYAAAAAAAAAAQAAAANAAAAIG1+SsH+/R+ulh9LrkeDbci4FfHfOyfvecEKmj5IEZsJAAAADwAAAARhdXRoAAAAEwAAAAAAAAAAhgbOCTIEDQUuzZxBPQLey5yZIOkRUTh59ATS9u8E8QgAAAADAAAAAwAAAAMAAAAAAAAAAIYGzgkyBA0FLs2cQT0C3sucmSDpEVE4efQE0vbvBPEIAAAABm1+SsH+/R+ulh9LrkeDbci4FfHfOyfvecEKmj5IEZsJAAAAFAAAAAcYW4xtkoFfqp2mtp/bjsYvQ5v5Z//VF1G26MEWsV7dJgAAAAIAAAAGbX5Kwf79H66WH0uuR4NtyLgV8d87J+95wQqaPkgRmwkAAAATAAAAAAAAAACGBs4JMgQNBS7NnEE9At7LnJkg6RFROHn0BNL27wTxCAAAAAZtfkrB/v0frpYfS65Hg23IuBXx3zsn73nBCpo+SBGbCQAAABUAAAAAAAAAAIYGzgkyBA0FLs2cQT0C3sucmSDpEVE4efQE0vbvBPEIAAAAAQAAAAEAAAAAAAAAAIYGzgkyBA0FLs2cQT0C3sucmSDpEVE4efQE0vbvBPEIAAAAAAAAAABtfkrB/v0frpYfS65Hg23IuBXx3zsn73nBCpo+SBGbCQAAAARhdXRoAAAAAgAAABMAAAAAAAAAAIYGzgkyBA0FLs2cQT0C3sucmSDpEVE4efQE0vbvBPEIAAAAAwAAAAMAAAAAAAAAAQAAABAAAAABAAAAAQAAABEAAAABAAAAAgAAAA8AAAAKcHVibGljX2tleQAAAAAADQAAACCGBs4JMgQNBS7NnEE9At7LnJkg6RFROHn0BNL27wTxCAAAAA8AAAAJc2lnbmF0dXJlAAAAAAAADQAAAEDi2i85PnwKcb+MTeHEuyGEG8RyeGTYFFdAbTYnFeFjRXfmCFqRgD5yYAPEQ+jaxnnw2pEsX7JEM8G8JyLUricIAAAAAAAAAAGtypWUAAAAQGAEak7kWkR5Gq/dJQkTpbHs9Gz43//sQDPOxPUm6J6v0Kzi5t1smVdtcPLtUAbpsZFEq0uBTA91S7MlXFeqogM="; - - - let xdr = try! TxRep.fromTxRep(txRep: txrep) - print(xdr) - XCTAssert (xdr == expected) - let txRepRes = try! TxRep.toTxRep(transactionEnvelope: xdr); - print(txRepRes) - XCTAssert (txRepRes == txrep) - } - - func testTxRepSorobanInvokeAuthTest2() { - let txrep = """ - type: ENVELOPE_TYPE_TX - tx.sourceAccount: GDIDLIH2NRQZZ74TAI2X67T7YZH52WBW2UOVDNUSUGHATSVJVF5LFUPR - tx.fee: 100 - tx.seqNum: 1461328262725635 - tx.cond.type: PRECOND_NONE - tx.memo.type: MEMO_NONE - tx.operations.len: 1 - tx.operations[0].sourceAccount._present: false - tx.operations[0].body.type: INVOKE_HOST_FUNCTION - tx.operations[0].body.invokeHostFunctionOp.function.type: HOST_FUNCTION_TYPE_INVOKE_CONTRACT - tx.operations[0].body.invokeHostFunctionOp.function.invokeArgs.len: 4 - tx.operations[0].body.invokeHostFunctionOp.function.invokeArgs[0].type: SCV_BYTES - tx.operations[0].body.invokeHostFunctionOp.function.invokeArgs[0].bytes: 9f6008b315824093556aef0c9dd50338bb1e1e36b48b68f03f5f510a731e3ab3 - tx.operations[0].body.invokeHostFunctionOp.function.invokeArgs[1].type: SCV_SYMBOL - tx.operations[0].body.invokeHostFunctionOp.function.invokeArgs[1].sym: auth - tx.operations[0].body.invokeHostFunctionOp.function.invokeArgs[2].type: SCV_ADDRESS - tx.operations[0].body.invokeHostFunctionOp.function.invokeArgs[2].address.type: SC_ADDRESS_TYPE_ACCOUNT - tx.operations[0].body.invokeHostFunctionOp.function.invokeArgs[2].address.accountId: GDIDLIH2NRQZZ74TAI2X67T7YZH52WBW2UOVDNUSUGHATSVJVF5LFUPR - tx.operations[0].body.invokeHostFunctionOp.function.invokeArgs[3].type: SCV_U32 - tx.operations[0].body.invokeHostFunctionOp.function.invokeArgs[3].u32: 3 - tx.operations[0].body.invokeHostFunctionOp.footprint.readOnly.len: 2 - tx.operations[0].body.invokeHostFunctionOp.footprint.readOnly[0].type: CONTRACT_DATA - tx.operations[0].body.invokeHostFunctionOp.footprint.readOnly[0].contractData.contractID: 9f6008b315824093556aef0c9dd50338bb1e1e36b48b68f03f5f510a731e3ab3 - tx.operations[0].body.invokeHostFunctionOp.footprint.readOnly[0].contractData.key.type: SCV_LEDGER_KEY_CONTRACT_EXECUTABLE - tx.operations[0].body.invokeHostFunctionOp.footprint.readOnly[1].type: CONTRACT_CODE - tx.operations[0].body.invokeHostFunctionOp.footprint.readOnly[1].contractCode.hash: 185b8c6d92815faa9da6b69fdb8ec62f439bf967ffd51751b6e8c116b15edd26 - tx.operations[0].body.invokeHostFunctionOp.footprint.readWrite.len: 1 - tx.operations[0].body.invokeHostFunctionOp.footprint.readWrite[0].type: CONTRACT_DATA - tx.operations[0].body.invokeHostFunctionOp.footprint.readWrite[0].contractData.contractID: 9f6008b315824093556aef0c9dd50338bb1e1e36b48b68f03f5f510a731e3ab3 - tx.operations[0].body.invokeHostFunctionOp.footprint.readWrite[0].contractData.key.type: SCV_ADDRESS - tx.operations[0].body.invokeHostFunctionOp.footprint.readWrite[0].contractData.key.address.type: SC_ADDRESS_TYPE_ACCOUNT - tx.operations[0].body.invokeHostFunctionOp.footprint.readWrite[0].contractData.key.address.accountId: GDIDLIH2NRQZZ74TAI2X67T7YZH52WBW2UOVDNUSUGHATSVJVF5LFUPR - tx.operations[0].body.invokeHostFunctionOp.auth.len: 1 - tx.operations[0].body.invokeHostFunctionOp.auth[0].addressWithNonce._present: false - tx.operations[0].body.invokeHostFunctionOp.auth[0].rootInvocation.contractID: 9f6008b315824093556aef0c9dd50338bb1e1e36b48b68f03f5f510a731e3ab3 - tx.operations[0].body.invokeHostFunctionOp.auth[0].rootInvocation.functionName: auth - tx.operations[0].body.invokeHostFunctionOp.auth[0].rootInvocation.args.len: 2 - tx.operations[0].body.invokeHostFunctionOp.auth[0].rootInvocation.args[0].type: SCV_ADDRESS - tx.operations[0].body.invokeHostFunctionOp.auth[0].rootInvocation.args[0].address.type: SC_ADDRESS_TYPE_ACCOUNT - tx.operations[0].body.invokeHostFunctionOp.auth[0].rootInvocation.args[0].address.accountId: GDIDLIH2NRQZZ74TAI2X67T7YZH52WBW2UOVDNUSUGHATSVJVF5LFUPR - tx.operations[0].body.invokeHostFunctionOp.auth[0].rootInvocation.args[1].type: SCV_U32 - tx.operations[0].body.invokeHostFunctionOp.auth[0].rootInvocation.args[1].u32: 3 - tx.operations[0].body.invokeHostFunctionOp.auth[0].rootInvocation.subInvocations.len: 0 - tx.operations[0].body.invokeHostFunctionOp.auth[0].signatureArgs.len: 0 - tx.ext.v: 0 - signatures.len: 1 - signatures[0].hint: a9a97ab2 - signatures[0].signature: 4544495e9410e037faaf02e0939bea4ca708c598af51b8b40436c302dbbec6be81ec735df068e600f163190c75b196f79461305a65992b6a94b8cdff47362508 - """; - - let expected = "AAAAAgAAAADQNaD6bGGc/5MCNX9+f8ZP3Vg21R1RtpKhjgnKqal6sgAAAGQABTESAAAAAwAAAAAAAAAAAAAAAQAAAAAAAAAYAAAAAAAAAAQAAAANAAAAIJ9gCLMVgkCTVWrvDJ3VAzi7Hh42tIto8D9fUQpzHjqzAAAADwAAAARhdXRoAAAAEwAAAAAAAAAA0DWg+mxhnP+TAjV/fn/GT91YNtUdUbaSoY4JyqmperIAAAADAAAAAwAAAAIAAAAGn2AIsxWCQJNVau8MndUDOLseHja0i2jwP19RCnMeOrMAAAAUAAAABxhbjG2SgV+qnaa2n9uOxi9Dm/ln/9UXUbbowRaxXt0mAAAAAQAAAAafYAizFYJAk1Vq7wyd1QM4ux4eNrSLaPA/X1EKcx46swAAABMAAAAAAAAAANA1oPpsYZz/kwI1f35/xk/dWDbVHVG2kqGOCcqpqXqyAAAAAQAAAACfYAizFYJAk1Vq7wyd1QM4ux4eNrSLaPA/X1EKcx46swAAAARhdXRoAAAAAgAAABMAAAAAAAAAANA1oPpsYZz/kwI1f35/xk/dWDbVHVG2kqGOCcqpqXqyAAAAAwAAAAMAAAAAAAAAAAAAAAAAAAABqal6sgAAAEBFRElelBDgN/qvAuCTm+pMpwjFmK9RuLQENsMC277GvoHsc13waOYA8WMZDHWxlveUYTBaZZkrapS4zf9HNiUI"; - - - - let xdr = try! TxRep.fromTxRep(txRep: txrep) - print(xdr) - XCTAssert (xdr == expected) - let txRepRes = try! TxRep.toTxRep(transactionEnvelope: xdr); - print(txRepRes) - XCTAssert (txRepRes == txrep) - } - - func testTxRepSorobanInvokeAuthTestSwap() { - let txrep = """ - type: ENVELOPE_TYPE_TX - tx.sourceAccount: GBRFC45ZFZBDRJS55WJRNJHCIPYV6OFAOCHLNSJBI3SXS6S32WVI6H6I - tx.fee: 100 - tx.seqNum: 1461783529259021 - tx.cond.type: PRECOND_NONE - tx.memo.type: MEMO_NONE - tx.operations.len: 1 - tx.operations[0].sourceAccount._present: false - tx.operations[0].body.type: INVOKE_HOST_FUNCTION - tx.operations[0].body.invokeHostFunctionOp.function.type: HOST_FUNCTION_TYPE_INVOKE_CONTRACT - tx.operations[0].body.invokeHostFunctionOp.function.invokeArgs.len: 10 - tx.operations[0].body.invokeHostFunctionOp.function.invokeArgs[0].type: SCV_BYTES - tx.operations[0].body.invokeHostFunctionOp.function.invokeArgs[0].bytes: 112c004b721d38e74658968ad5cd7dd02f527ee73eeb77353b905b4d1517f061 - tx.operations[0].body.invokeHostFunctionOp.function.invokeArgs[1].type: SCV_SYMBOL - tx.operations[0].body.invokeHostFunctionOp.function.invokeArgs[1].sym: swap - tx.operations[0].body.invokeHostFunctionOp.function.invokeArgs[2].type: SCV_ADDRESS - tx.operations[0].body.invokeHostFunctionOp.function.invokeArgs[2].address.type: SC_ADDRESS_TYPE_ACCOUNT - tx.operations[0].body.invokeHostFunctionOp.function.invokeArgs[2].address.accountId: GADWQEOKGQVUYHKMCOL2UULZSMZ7AVPVICQ66OUJPG5K4NRXNEXCMHDI - tx.operations[0].body.invokeHostFunctionOp.function.invokeArgs[3].type: SCV_ADDRESS - tx.operations[0].body.invokeHostFunctionOp.function.invokeArgs[3].address.type: SC_ADDRESS_TYPE_ACCOUNT - tx.operations[0].body.invokeHostFunctionOp.function.invokeArgs[3].address.accountId: GBNAILGAXUP2X5R43GAEZPPUMSV2DUWE3YNXULVS5VWNPQNVAET6TYV7 - tx.operations[0].body.invokeHostFunctionOp.function.invokeArgs[4].type: SCV_BYTES - tx.operations[0].body.invokeHostFunctionOp.function.invokeArgs[4].bytes: 81cea9e83693dec2a1ca191cdc644a3b09bbc519ea5530ae03b5a8312d747789 - tx.operations[0].body.invokeHostFunctionOp.function.invokeArgs[5].type: SCV_BYTES - tx.operations[0].body.invokeHostFunctionOp.function.invokeArgs[5].bytes: 3af0c6e968c82179ef046f2666b3dc70c35b677913a86f27004bdb32e0278b71 - tx.operations[0].body.invokeHostFunctionOp.function.invokeArgs[6].type: SCV_I128 - tx.operations[0].body.invokeHostFunctionOp.function.invokeArgs[6].i128.lo: 1000 - tx.operations[0].body.invokeHostFunctionOp.function.invokeArgs[6].i128.hi: 0 - tx.operations[0].body.invokeHostFunctionOp.function.invokeArgs[7].type: SCV_I128 - tx.operations[0].body.invokeHostFunctionOp.function.invokeArgs[7].i128.lo: 4500 - tx.operations[0].body.invokeHostFunctionOp.function.invokeArgs[7].i128.hi: 0 - tx.operations[0].body.invokeHostFunctionOp.function.invokeArgs[8].type: SCV_I128 - tx.operations[0].body.invokeHostFunctionOp.function.invokeArgs[8].i128.lo: 5000 - tx.operations[0].body.invokeHostFunctionOp.function.invokeArgs[8].i128.hi: 0 - tx.operations[0].body.invokeHostFunctionOp.function.invokeArgs[9].type: SCV_I128 - tx.operations[0].body.invokeHostFunctionOp.function.invokeArgs[9].i128.lo: 950 - tx.operations[0].body.invokeHostFunctionOp.function.invokeArgs[9].i128.hi: 0 - tx.operations[0].body.invokeHostFunctionOp.footprint.readOnly.len: 9 - tx.operations[0].body.invokeHostFunctionOp.footprint.readOnly[0].type: ACCOUNT - tx.operations[0].body.invokeHostFunctionOp.footprint.readOnly[0].account.accountID: GADWQEOKGQVUYHKMCOL2UULZSMZ7AVPVICQ66OUJPG5K4NRXNEXCMHDI - tx.operations[0].body.invokeHostFunctionOp.footprint.readOnly[1].type: ACCOUNT - tx.operations[0].body.invokeHostFunctionOp.footprint.readOnly[1].account.accountID: GBNAILGAXUP2X5R43GAEZPPUMSV2DUWE3YNXULVS5VWNPQNVAET6TYV7 - tx.operations[0].body.invokeHostFunctionOp.footprint.readOnly[2].type: CONTRACT_DATA - tx.operations[0].body.invokeHostFunctionOp.footprint.readOnly[2].contractData.contractID: 112c004b721d38e74658968ad5cd7dd02f527ee73eeb77353b905b4d1517f061 - tx.operations[0].body.invokeHostFunctionOp.footprint.readOnly[2].contractData.key.type: SCV_LEDGER_KEY_CONTRACT_EXECUTABLE - tx.operations[0].body.invokeHostFunctionOp.footprint.readOnly[3].type: CONTRACT_DATA - tx.operations[0].body.invokeHostFunctionOp.footprint.readOnly[3].contractData.contractID: 3af0c6e968c82179ef046f2666b3dc70c35b677913a86f27004bdb32e0278b71 - tx.operations[0].body.invokeHostFunctionOp.footprint.readOnly[3].contractData.key.type: SCV_SYMBOL - tx.operations[0].body.invokeHostFunctionOp.footprint.readOnly[3].contractData.key.sym: Authorizd - tx.operations[0].body.invokeHostFunctionOp.footprint.readOnly[4].type: CONTRACT_DATA - tx.operations[0].body.invokeHostFunctionOp.footprint.readOnly[4].contractData.contractID: 3af0c6e968c82179ef046f2666b3dc70c35b677913a86f27004bdb32e0278b71 - tx.operations[0].body.invokeHostFunctionOp.footprint.readOnly[4].contractData.key.type: SCV_LEDGER_KEY_CONTRACT_EXECUTABLE - tx.operations[0].body.invokeHostFunctionOp.footprint.readOnly[5].type: CONTRACT_DATA - tx.operations[0].body.invokeHostFunctionOp.footprint.readOnly[5].contractData.contractID: 81cea9e83693dec2a1ca191cdc644a3b09bbc519ea5530ae03b5a8312d747789 - tx.operations[0].body.invokeHostFunctionOp.footprint.readOnly[5].contractData.key.type: SCV_SYMBOL - tx.operations[0].body.invokeHostFunctionOp.footprint.readOnly[5].contractData.key.sym: Authorizd - tx.operations[0].body.invokeHostFunctionOp.footprint.readOnly[6].type: CONTRACT_DATA - tx.operations[0].body.invokeHostFunctionOp.footprint.readOnly[6].contractData.contractID: 81cea9e83693dec2a1ca191cdc644a3b09bbc519ea5530ae03b5a8312d747789 - tx.operations[0].body.invokeHostFunctionOp.footprint.readOnly[6].contractData.key.type: SCV_LEDGER_KEY_CONTRACT_EXECUTABLE - tx.operations[0].body.invokeHostFunctionOp.footprint.readOnly[7].type: CONTRACT_CODE - tx.operations[0].body.invokeHostFunctionOp.footprint.readOnly[7].contractCode.hash: 45f7a27e1e9c33ba1ac0f13ad276a1929367624c5edd95dbdfeeba0ab959b991 - tx.operations[0].body.invokeHostFunctionOp.footprint.readOnly[8].type: CONTRACT_CODE - tx.operations[0].body.invokeHostFunctionOp.footprint.readOnly[8].contractCode.hash: ff0071b0fe9460c8ffb06b993822fd121b2bcdabf76facb19852787793cfb4a0 - tx.operations[0].body.invokeHostFunctionOp.footprint.readWrite.len: 6 - tx.operations[0].body.invokeHostFunctionOp.footprint.readWrite[0].type: CONTRACT_DATA - tx.operations[0].body.invokeHostFunctionOp.footprint.readWrite[0].contractData.contractID: 112c004b721d38e74658968ad5cd7dd02f527ee73eeb77353b905b4d1517f061 - tx.operations[0].body.invokeHostFunctionOp.footprint.readWrite[0].contractData.key.type: SCV_LEDGER_KEY_NONCE - tx.operations[0].body.invokeHostFunctionOp.footprint.readWrite[0].contractData.key.nonce_key.nonce_address.type: SC_ADDRESS_TYPE_ACCOUNT - tx.operations[0].body.invokeHostFunctionOp.footprint.readWrite[0].contractData.key.nonce_key.nonce_address.accountId: GADWQEOKGQVUYHKMCOL2UULZSMZ7AVPVICQ66OUJPG5K4NRXNEXCMHDI - tx.operations[0].body.invokeHostFunctionOp.footprint.readWrite[1].type: CONTRACT_DATA - tx.operations[0].body.invokeHostFunctionOp.footprint.readWrite[1].contractData.contractID: 112c004b721d38e74658968ad5cd7dd02f527ee73eeb77353b905b4d1517f061 - tx.operations[0].body.invokeHostFunctionOp.footprint.readWrite[1].contractData.key.type: SCV_LEDGER_KEY_NONCE - tx.operations[0].body.invokeHostFunctionOp.footprint.readWrite[1].contractData.key.nonce_key.nonce_address.type: SC_ADDRESS_TYPE_ACCOUNT - tx.operations[0].body.invokeHostFunctionOp.footprint.readWrite[1].contractData.key.nonce_key.nonce_address.accountId: GBNAILGAXUP2X5R43GAEZPPUMSV2DUWE3YNXULVS5VWNPQNVAET6TYV7 - tx.operations[0].body.invokeHostFunctionOp.footprint.readWrite[2].type: CONTRACT_DATA - tx.operations[0].body.invokeHostFunctionOp.footprint.readWrite[2].contractData.contractID: 3af0c6e968c82179ef046f2666b3dc70c35b677913a86f27004bdb32e0278b71 - tx.operations[0].body.invokeHostFunctionOp.footprint.readWrite[2].contractData.key.type: SCV_SYMBOL - tx.operations[0].body.invokeHostFunctionOp.footprint.readWrite[2].contractData.key.sym: Allowance - tx.operations[0].body.invokeHostFunctionOp.footprint.readWrite[3].type: CONTRACT_DATA - tx.operations[0].body.invokeHostFunctionOp.footprint.readWrite[3].contractData.contractID: 3af0c6e968c82179ef046f2666b3dc70c35b677913a86f27004bdb32e0278b71 - tx.operations[0].body.invokeHostFunctionOp.footprint.readWrite[3].contractData.key.type: SCV_SYMBOL - tx.operations[0].body.invokeHostFunctionOp.footprint.readWrite[3].contractData.key.sym: Balance - tx.operations[0].body.invokeHostFunctionOp.footprint.readWrite[4].type: CONTRACT_DATA - tx.operations[0].body.invokeHostFunctionOp.footprint.readWrite[4].contractData.contractID: 81cea9e83693dec2a1ca191cdc644a3b09bbc519ea5530ae03b5a8312d747789 - tx.operations[0].body.invokeHostFunctionOp.footprint.readWrite[4].contractData.key.type: SCV_SYMBOL - tx.operations[0].body.invokeHostFunctionOp.footprint.readWrite[4].contractData.key.sym: Allowance - tx.operations[0].body.invokeHostFunctionOp.footprint.readWrite[5].type: CONTRACT_DATA - tx.operations[0].body.invokeHostFunctionOp.footprint.readWrite[5].contractData.contractID: 81cea9e83693dec2a1ca191cdc644a3b09bbc519ea5530ae03b5a8312d747789 - tx.operations[0].body.invokeHostFunctionOp.footprint.readWrite[5].contractData.key.type: SCV_SYMBOL - tx.operations[0].body.invokeHostFunctionOp.footprint.readWrite[5].contractData.key.sym: Balance - tx.operations[0].body.invokeHostFunctionOp.auth.len: 2 - tx.operations[0].body.invokeHostFunctionOp.auth[0].addressWithNonce._present: true - tx.operations[0].body.invokeHostFunctionOp.auth[0].addressWithNonce.address.type: SC_ADDRESS_TYPE_ACCOUNT - tx.operations[0].body.invokeHostFunctionOp.auth[0].addressWithNonce.address.accountId: GADWQEOKGQVUYHKMCOL2UULZSMZ7AVPVICQ66OUJPG5K4NRXNEXCMHDI - tx.operations[0].body.invokeHostFunctionOp.auth[0].addressWithNonce.nonce: 0 - tx.operations[0].body.invokeHostFunctionOp.auth[0].rootInvocation.contractID: 112c004b721d38e74658968ad5cd7dd02f527ee73eeb77353b905b4d1517f061 - tx.operations[0].body.invokeHostFunctionOp.auth[0].rootInvocation.functionName: swap - tx.operations[0].body.invokeHostFunctionOp.auth[0].rootInvocation.args.len: 4 - tx.operations[0].body.invokeHostFunctionOp.auth[0].rootInvocation.args[0].type: SCV_BYTES - tx.operations[0].body.invokeHostFunctionOp.auth[0].rootInvocation.args[0].bytes: 81cea9e83693dec2a1ca191cdc644a3b09bbc519ea5530ae03b5a8312d747789 - tx.operations[0].body.invokeHostFunctionOp.auth[0].rootInvocation.args[1].type: SCV_BYTES - tx.operations[0].body.invokeHostFunctionOp.auth[0].rootInvocation.args[1].bytes: 3af0c6e968c82179ef046f2666b3dc70c35b677913a86f27004bdb32e0278b71 - tx.operations[0].body.invokeHostFunctionOp.auth[0].rootInvocation.args[2].type: SCV_I128 - tx.operations[0].body.invokeHostFunctionOp.auth[0].rootInvocation.args[2].i128.lo: 1000 - tx.operations[0].body.invokeHostFunctionOp.auth[0].rootInvocation.args[2].i128.hi: 0 - tx.operations[0].body.invokeHostFunctionOp.auth[0].rootInvocation.args[3].type: SCV_I128 - tx.operations[0].body.invokeHostFunctionOp.auth[0].rootInvocation.args[3].i128.lo: 4500 - tx.operations[0].body.invokeHostFunctionOp.auth[0].rootInvocation.args[3].i128.hi: 0 - tx.operations[0].body.invokeHostFunctionOp.auth[0].rootInvocation.subInvocations.len: 1 - tx.operations[0].body.invokeHostFunctionOp.auth[0].rootInvocation.subInvocations[0].contractID: 81cea9e83693dec2a1ca191cdc644a3b09bbc519ea5530ae03b5a8312d747789 - tx.operations[0].body.invokeHostFunctionOp.auth[0].rootInvocation.subInvocations[0].functionName: incr_allow - tx.operations[0].body.invokeHostFunctionOp.auth[0].rootInvocation.subInvocations[0].args.len: 3 - tx.operations[0].body.invokeHostFunctionOp.auth[0].rootInvocation.subInvocations[0].args[0].type: SCV_ADDRESS - tx.operations[0].body.invokeHostFunctionOp.auth[0].rootInvocation.subInvocations[0].args[0].address.type: SC_ADDRESS_TYPE_ACCOUNT - tx.operations[0].body.invokeHostFunctionOp.auth[0].rootInvocation.subInvocations[0].args[0].address.accountId: GADWQEOKGQVUYHKMCOL2UULZSMZ7AVPVICQ66OUJPG5K4NRXNEXCMHDI - tx.operations[0].body.invokeHostFunctionOp.auth[0].rootInvocation.subInvocations[0].args[1].type: SCV_ADDRESS - tx.operations[0].body.invokeHostFunctionOp.auth[0].rootInvocation.subInvocations[0].args[1].address.type: SC_ADDRESS_TYPE_CONTRACT - tx.operations[0].body.invokeHostFunctionOp.auth[0].rootInvocation.subInvocations[0].args[1].address.contractId: 112c004b721d38e74658968ad5cd7dd02f527ee73eeb77353b905b4d1517f061 - tx.operations[0].body.invokeHostFunctionOp.auth[0].rootInvocation.subInvocations[0].args[2].type: SCV_I128 - tx.operations[0].body.invokeHostFunctionOp.auth[0].rootInvocation.subInvocations[0].args[2].i128.lo: 1000 - tx.operations[0].body.invokeHostFunctionOp.auth[0].rootInvocation.subInvocations[0].args[2].i128.hi: 0 - tx.operations[0].body.invokeHostFunctionOp.auth[0].rootInvocation.subInvocations[0].subInvocations.len: 0 - tx.operations[0].body.invokeHostFunctionOp.auth[0].signatureArgs.len: 1 - tx.operations[0].body.invokeHostFunctionOp.auth[0].signatureArgs[0].type: SCV_MAP - tx.operations[0].body.invokeHostFunctionOp.auth[0].signatureArgs[0].map._present: true - tx.operations[0].body.invokeHostFunctionOp.auth[0].signatureArgs[0].map.len: 2 - tx.operations[0].body.invokeHostFunctionOp.auth[0].signatureArgs[0].map[0].key.type: SCV_SYMBOL - tx.operations[0].body.invokeHostFunctionOp.auth[0].signatureArgs[0].map[0].key.sym: public_key - tx.operations[0].body.invokeHostFunctionOp.auth[0].signatureArgs[0].map[0].val.type: SCV_BYTES - tx.operations[0].body.invokeHostFunctionOp.auth[0].signatureArgs[0].map[0].val.bytes: 076811ca342b4c1d4c1397aa51799333f055f540a1ef3a8979baae3637692e26 - tx.operations[0].body.invokeHostFunctionOp.auth[0].signatureArgs[0].map[1].key.type: SCV_SYMBOL - tx.operations[0].body.invokeHostFunctionOp.auth[0].signatureArgs[0].map[1].key.sym: signature - tx.operations[0].body.invokeHostFunctionOp.auth[0].signatureArgs[0].map[1].val.type: SCV_BYTES - tx.operations[0].body.invokeHostFunctionOp.auth[0].signatureArgs[0].map[1].val.bytes: 20137346dfc6bf7aa957e62b6bd0b6bd48fa3ef4334e612dd3d0e9ba75386042f3e725eae7e512f875b6899f76f28ee31736f3ed6a1cf62a448246288a321e0e - tx.operations[0].body.invokeHostFunctionOp.auth[1].addressWithNonce._present: true - tx.operations[0].body.invokeHostFunctionOp.auth[1].addressWithNonce.address.type: SC_ADDRESS_TYPE_ACCOUNT - tx.operations[0].body.invokeHostFunctionOp.auth[1].addressWithNonce.address.accountId: GBNAILGAXUP2X5R43GAEZPPUMSV2DUWE3YNXULVS5VWNPQNVAET6TYV7 - tx.operations[0].body.invokeHostFunctionOp.auth[1].addressWithNonce.nonce: 0 - tx.operations[0].body.invokeHostFunctionOp.auth[1].rootInvocation.contractID: 112c004b721d38e74658968ad5cd7dd02f527ee73eeb77353b905b4d1517f061 - tx.operations[0].body.invokeHostFunctionOp.auth[1].rootInvocation.functionName: swap - tx.operations[0].body.invokeHostFunctionOp.auth[1].rootInvocation.args.len: 4 - tx.operations[0].body.invokeHostFunctionOp.auth[1].rootInvocation.args[0].type: SCV_BYTES - tx.operations[0].body.invokeHostFunctionOp.auth[1].rootInvocation.args[0].bytes: 3af0c6e968c82179ef046f2666b3dc70c35b677913a86f27004bdb32e0278b71 - tx.operations[0].body.invokeHostFunctionOp.auth[1].rootInvocation.args[1].type: SCV_BYTES - tx.operations[0].body.invokeHostFunctionOp.auth[1].rootInvocation.args[1].bytes: 81cea9e83693dec2a1ca191cdc644a3b09bbc519ea5530ae03b5a8312d747789 - tx.operations[0].body.invokeHostFunctionOp.auth[1].rootInvocation.args[2].type: SCV_I128 - tx.operations[0].body.invokeHostFunctionOp.auth[1].rootInvocation.args[2].i128.lo: 5000 - tx.operations[0].body.invokeHostFunctionOp.auth[1].rootInvocation.args[2].i128.hi: 0 - tx.operations[0].body.invokeHostFunctionOp.auth[1].rootInvocation.args[3].type: SCV_I128 - tx.operations[0].body.invokeHostFunctionOp.auth[1].rootInvocation.args[3].i128.lo: 950 - tx.operations[0].body.invokeHostFunctionOp.auth[1].rootInvocation.args[3].i128.hi: 0 - tx.operations[0].body.invokeHostFunctionOp.auth[1].rootInvocation.subInvocations.len: 1 - tx.operations[0].body.invokeHostFunctionOp.auth[1].rootInvocation.subInvocations[0].contractID: 3af0c6e968c82179ef046f2666b3dc70c35b677913a86f27004bdb32e0278b71 - tx.operations[0].body.invokeHostFunctionOp.auth[1].rootInvocation.subInvocations[0].functionName: incr_allow - tx.operations[0].body.invokeHostFunctionOp.auth[1].rootInvocation.subInvocations[0].args.len: 3 - tx.operations[0].body.invokeHostFunctionOp.auth[1].rootInvocation.subInvocations[0].args[0].type: SCV_ADDRESS - tx.operations[0].body.invokeHostFunctionOp.auth[1].rootInvocation.subInvocations[0].args[0].address.type: SC_ADDRESS_TYPE_ACCOUNT - tx.operations[0].body.invokeHostFunctionOp.auth[1].rootInvocation.subInvocations[0].args[0].address.accountId: GBNAILGAXUP2X5R43GAEZPPUMSV2DUWE3YNXULVS5VWNPQNVAET6TYV7 - tx.operations[0].body.invokeHostFunctionOp.auth[1].rootInvocation.subInvocations[0].args[1].type: SCV_ADDRESS - tx.operations[0].body.invokeHostFunctionOp.auth[1].rootInvocation.subInvocations[0].args[1].address.type: SC_ADDRESS_TYPE_CONTRACT - tx.operations[0].body.invokeHostFunctionOp.auth[1].rootInvocation.subInvocations[0].args[1].address.contractId: 112c004b721d38e74658968ad5cd7dd02f527ee73eeb77353b905b4d1517f061 - tx.operations[0].body.invokeHostFunctionOp.auth[1].rootInvocation.subInvocations[0].args[2].type: SCV_I128 - tx.operations[0].body.invokeHostFunctionOp.auth[1].rootInvocation.subInvocations[0].args[2].i128.lo: 5000 - tx.operations[0].body.invokeHostFunctionOp.auth[1].rootInvocation.subInvocations[0].args[2].i128.hi: 0 - tx.operations[0].body.invokeHostFunctionOp.auth[1].rootInvocation.subInvocations[0].subInvocations.len: 0 - tx.operations[0].body.invokeHostFunctionOp.auth[1].signatureArgs.len: 1 - tx.operations[0].body.invokeHostFunctionOp.auth[1].signatureArgs[0].type: SCV_MAP - tx.operations[0].body.invokeHostFunctionOp.auth[1].signatureArgs[0].map._present: true - tx.operations[0].body.invokeHostFunctionOp.auth[1].signatureArgs[0].map.len: 2 - tx.operations[0].body.invokeHostFunctionOp.auth[1].signatureArgs[0].map[0].key.type: SCV_SYMBOL - tx.operations[0].body.invokeHostFunctionOp.auth[1].signatureArgs[0].map[0].key.sym: public_key - tx.operations[0].body.invokeHostFunctionOp.auth[1].signatureArgs[0].map[0].val.type: SCV_BYTES - tx.operations[0].body.invokeHostFunctionOp.auth[1].signatureArgs[0].map[0].val.bytes: 5a042cc0bd1fabf63cd9804cbdf464aba1d2c4de1b7a2eb2ed6cd7c1b50127e9 - tx.operations[0].body.invokeHostFunctionOp.auth[1].signatureArgs[0].map[1].key.type: SCV_SYMBOL - tx.operations[0].body.invokeHostFunctionOp.auth[1].signatureArgs[0].map[1].key.sym: signature - tx.operations[0].body.invokeHostFunctionOp.auth[1].signatureArgs[0].map[1].val.type: SCV_BYTES - tx.operations[0].body.invokeHostFunctionOp.auth[1].signatureArgs[0].map[1].val.bytes: f70bf155b1510da9b6465afbfed7541e491045c191e86a8d08d06c50d3b7504b2dc06250d94b4c35e84beb94fc763fdd8b2ee308f0a6d19b734a87194e18fe09 - tx.ext.v: 0 - signatures.len: 1 - signatures[0].hint: 5bd5aa8f - signatures[0].signature: 44f9ab3d05a61577658c799d2c3d2a67eef5cdb64af669dd368e969eb238a980b1293baa096afd01ddb244125f7e4693782aa53828d63f0e8141bef954baec09 - """; - - let expected = "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"; - - let xdr = try! TxRep.fromTxRep(txRep: txrep) - print(xdr) - XCTAssert (xdr == expected) - let txRepRes = try! TxRep.toTxRep(transactionEnvelope: xdr); - print(txRepRes) - XCTAssert (txRepRes == txrep) - } - */ func testTransactionEnvelopeXDRStringInit() { let xdrStringV1 = "AAAAAgAAAABlfpQzRFiTdhYZiWYK6zm44YWGBfNHvoXOPM+imIUMTQAAA+gAD7FZAAAABAAAAAAAAAAAAAAAAQAAAAEAAAAAZX6UM0RYk3YWGYlmCus5uOGFhgXzR76FzjzPopiFDE0AAAABAAAAAByH6g1uUljaFtnxQRIrC6x47kLp1vHEcml+WhdzQjWKAAAAAAAAAAAA5OHAAAAAAAAAAAGYhQxNAAAAQMRhbj+98fzgU++ft/Sd5Nd/2qLPofcgLyRKyJafSKM4jSNNkLGQKL5oFSJnaBnaOxZ7Jc4q6s5GV9y1bcnIdQc="