@debridge-finance/intents-client 1.6.2 → 1.6.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../idl/intents-program.ts","../src/helpers.ts","../src/client.ts","../src/addresses-list.ts","../src/intent.ts"],"names":["IDL","bigintToArray","n","type","size","BN","getComputeBudgetIxs","computeBudget","ixs","ComputeBudgetProgram","getVersionedTransaction","instructions","payer","blockhash","ALTs","VersionedTransaction","MessageV0","TOKEN_PROGRAM_CACHE","getTokenProgramId","conn","mint","mintStr","acc","programId","PublicKey","IntentProgramSigPrefix","DEFAULT_RECORD_OFFSET","RECORD_META_DATA_SIZE","IntentsClient","_IntentsClient","connection","recordProgramId","RECORD_PROGRAM_ID","AnchorProvider","setProvider","Program","message","signature","signerKey","rawReprAsBytes","hexReprAsBytes","signerBytes","nacl","length","budgets","accountInfo","data","intentId","intentStorage","maker","makerInfoPda","delegate","makerInfo","tokens","tokenProgram","TOKEN_PROGRAM_ID","amounts","accounts","amount","currentTokenProgram","getAssociatedTokenAddressSync","id","rentPayer","SystemProgram","tradeId","taker","tokenMint","dlnOrder","dlnMetadata","dlnSrc","programs","accountsResolver","dlnSrcResolver","dlnSrcState","dlnSrcGiveOrderState","dlnSrcGiveOrderWallet","dlnSrcAuthorizedNativeSender","dlnSrcFeeLedgerWallet","intentGiveTokenATA","args","ASSOCIATED_TOKEN_PROGRAM_ID","receiver","unwrapTakeToken","unwrapNativeSol","receiverTakeToken","intentTakeTokenATA","NATIVE_MINT","feeLedger","ix","receiverIdx","meta","encodedIntentHash","encodedIntentLength","inputTokensAmount","space","isHanoi","sigType","sigTypeInternal","nonce","enumArgs","encodedApprovedTokenBudgets","timestamp","beginAmount","target","inputMint","outputMint","inputTokenProgram","outputTokenProgram","makerInputToken","takerInputToken","takerOutputToken","intentOutputToken","SYSVAR_INSTRUCTIONS_PUBKEY","endAmount","bps","record","offset","intentTokenAccount","makerTokenAccount","authority","createCloseAccountInstruction","buffer","createWriteInstruction","currentLamports","currentSize","requiredSize","deltaLamports","transferIx","reallocIx","createReallocateInstruction","intent","initIntentIxs","recordAccount","Keypair","serializedIntent","lamports","budgetIxs","createAccountIx","initRecordIx","createInitializeInstruction","tx","txs","closeRecordIxs","tmpTx","tmpSize","transactions","constants","lastInstructions","writeIxs","low","high","lastGoodIx","lastGoodLen","mid","finalInstructions","combinedInstructions","combinedTx","combinedSize","updateTx","init","write","updateIntentIxs","reallocRecordIxs","bufferOffset","closeIntentIxs","withdrawIntentTokenAccountIxs","swapBeginIxs","swapEndIxs","pubkey","user","intentProgramSigPrefix","chainId","chainBuffer","intentSigPrefix","approvedAmount","expiration","argsBuffer","BorshCoder","budgetsSigPrefix","AddressesList","_AddressesList","addresses","address","key","index","sizeGroups","sizeGroup","sortedKeys","result","k","dataOffset","currentGroup","a","b","addressesBuffer","chunksCount","i","itemSize","itemsCount","j","anyBuffer","exactBuffer","emptyArrayBuffer","separationBuffer","BufferReader","val","buf","value","reader","lengthSize","Intent","_Intent","addressSet","collect","addr","collectMap","list","collectGiveTokens","token","collectTakeTokens","output","uniqueAddresses","hex","details","buffers","chainIds","lengthBuf","lenBuffer","addrs","pk","parts","idBuf","tsBuf","string","keccak256","rawHash","owner","expirationTimestamp","addressesListStart","headerSize","dataSize","tempOffset","addressesListBuffer","addressesList","getAddress","idx","inputTokens","giveTokens","outputIdx","takeTokensMap","inputIdx","tokenAndPrice","outTokenIdx","price","takeTokens","v","readReceiverInfo","addressIdx","receiverDetails","allowedSenders","preInteractions","postInteractions","validationRules","executionMetadata","srcAllowedCancelBeneficiary","dstAuthorityAddress","externalCallHash","intentData"],"mappings":"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","file":"index.js","sourcesContent":["/**\n * Program IDL in camelCase format in order to be used in JS/TS.\n *\n * Note that this is only a type helper and is not the actual IDL. The original\n * IDL can be found at `target/idl/intents_program.json`.\n */\nexport type IntentsProgram = {\n address: \"intV2u5xDE8T2ZMFP3W3X6sVqGHBT7zvYtTW3rRLmvE\";\n metadata: {\n name: \"intentsProgram\";\n version: \"0.0.1\";\n spec: \"0.1.0\";\n description: \"deBridge Intents Program\";\n };\n instructions: [\n {\n name: \"about\";\n discriminator: [62, 111, 52, 44, 118, 185, 179, 229];\n accounts: [];\n args: [];\n },\n {\n name: \"approveProtocolTransfers\";\n discriminator: [17, 3, 184, 144, 112, 130, 116, 98];\n accounts: [\n {\n name: \"maker\";\n signer: true;\n },\n {\n name: \"state\";\n pda: {\n seeds: [\n {\n kind: \"const\";\n value: [115, 116, 97, 116, 101];\n },\n ];\n };\n },\n {\n name: \"tokenProgram\";\n },\n ];\n args: [\n {\n name: \"amounts\";\n type: {\n vec: \"u64\";\n };\n },\n ];\n },\n {\n name: \"cancelIntent\";\n discriminator: [67, 73, 238, 244, 208, 89, 225, 59];\n accounts: [\n {\n name: \"initiator\";\n signer: true;\n },\n {\n name: \"intentStorage\";\n writable: true;\n },\n {\n name: \"state\";\n },\n ];\n args: [];\n },\n {\n name: \"closeAccount\";\n discriminator: [125, 255, 149, 14, 110, 34, 72, 24];\n accounts: [\n {\n name: \"programAuthority\";\n signer: true;\n address: \"intV2u5xDE8T2ZMFP3W3X6sVqGHBT7zvYtTW3rRLmvE\";\n },\n {\n name: \"target\";\n writable: true;\n },\n {\n name: \"rentReceiver\";\n writable: true;\n },\n ];\n args: [];\n },\n {\n name: \"closeIntent\";\n discriminator: [112, 245, 154, 249, 57, 126, 54, 122];\n accounts: [\n {\n name: \"initiator\";\n signer: true;\n },\n {\n name: \"maker\";\n docs: [\"CHECK\"];\n },\n {\n name: \"makerInfo\";\n writable: true;\n pda: {\n seeds: [\n {\n kind: \"const\";\n value: [109, 97, 107, 101, 114, 95, 105, 110, 102, 111];\n },\n {\n kind: \"account\";\n path: \"maker\";\n },\n ];\n };\n },\n {\n name: \"rentPayer\";\n writable: true;\n },\n {\n name: \"intentStorage\";\n writable: true;\n },\n {\n name: \"state\";\n },\n {\n name: \"systemProgram\";\n address: \"11111111111111111111111111111111\";\n },\n ];\n args: [];\n },\n {\n name: \"collectFee\";\n discriminator: [60, 173, 247, 103, 4, 93, 130, 48];\n accounts: [\n {\n name: \"feeCollector\";\n signer: true;\n relations: [\"state\"];\n },\n {\n name: \"state\";\n pda: {\n seeds: [\n {\n kind: \"const\";\n value: [115, 116, 97, 116, 101];\n },\n ];\n };\n },\n {\n name: \"feeLedger\";\n writable: true;\n pda: {\n seeds: [\n {\n kind: \"account\";\n path: \"state\";\n },\n {\n kind: \"account\";\n path: \"tokenProgram\";\n },\n {\n kind: \"account\";\n path: \"mint\";\n },\n ];\n program: {\n kind: \"const\";\n value: [\n 140,\n 151,\n 37,\n 143,\n 78,\n 36,\n 137,\n 241,\n 187,\n 61,\n 16,\n 41,\n 20,\n 142,\n 13,\n 131,\n 11,\n 90,\n 19,\n 153,\n 218,\n 255,\n 16,\n 132,\n 4,\n 142,\n 123,\n 216,\n 219,\n 233,\n 248,\n 89,\n ];\n };\n };\n },\n {\n name: \"destination\";\n writable: true;\n },\n {\n name: \"mint\";\n },\n {\n name: \"tokenProgram\";\n },\n ];\n args: [\n {\n name: \"amount\";\n type: \"u64\";\n },\n ];\n },\n {\n name: \"executeIntent\";\n discriminator: [53, 130, 47, 154, 227, 220, 122, 212];\n accounts: [\n {\n name: \"taker\";\n writable: true;\n signer: true;\n },\n {\n name: \"state\";\n },\n {\n name: \"maker\";\n relations: [\"intentStorage\"];\n },\n {\n name: \"makerInfo\";\n writable: true;\n pda: {\n seeds: [\n {\n kind: \"const\";\n value: [109, 97, 107, 101, 114, 95, 105, 110, 102, 111];\n },\n {\n kind: \"account\";\n path: \"maker\";\n },\n ];\n };\n },\n {\n name: \"intentStorage\";\n writable: true;\n },\n {\n name: \"intentGiveToken\";\n writable: true;\n pda: {\n seeds: [\n {\n kind: \"account\";\n path: \"intentStorage\";\n },\n {\n kind: \"account\";\n path: \"tokenProgram\";\n },\n {\n kind: \"account\";\n path: \"tokenMint\";\n },\n ];\n program: {\n kind: \"const\";\n value: [\n 140,\n 151,\n 37,\n 143,\n 78,\n 36,\n 137,\n 241,\n 187,\n 61,\n 16,\n 41,\n 20,\n 142,\n 13,\n 131,\n 11,\n 90,\n 19,\n 153,\n 218,\n 255,\n 16,\n 132,\n 4,\n 142,\n 123,\n 216,\n 219,\n 233,\n 248,\n 89,\n ];\n };\n };\n },\n {\n name: \"dlnSrc\";\n address: \"srch38nzfcgwJnfKE6xWD8vfNJtudazwisdcociAuQt\";\n },\n {\n name: \"dlnSrcState\";\n },\n {\n name: \"dlnSrcGiveOrderState\";\n writable: true;\n },\n {\n name: \"dlnSrcGiveOrderWallet\";\n writable: true;\n },\n {\n name: \"dlnSrcAuthorizedNativeSender\";\n },\n {\n name: \"dlnSrcFeeLedgerWallet\";\n writable: true;\n },\n {\n name: \"tokenMint\";\n },\n {\n name: \"systemProgram\";\n address: \"11111111111111111111111111111111\";\n },\n {\n name: \"tokenProgram\";\n },\n {\n name: \"associatedTokenProgram\";\n address: \"ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL\";\n },\n {\n name: \"eventAuthority\";\n pda: {\n seeds: [\n {\n kind: \"const\";\n value: [\n 95,\n 95,\n 101,\n 118,\n 101,\n 110,\n 116,\n 95,\n 97,\n 117,\n 116,\n 104,\n 111,\n 114,\n 105,\n 116,\n 121,\n ];\n },\n ];\n };\n },\n {\n name: \"program\";\n },\n ];\n args: [\n {\n name: \"dlnOrderArgs\";\n type: {\n defined: {\n name: \"createOrderArgs\";\n };\n };\n },\n {\n name: \"dlnOrderNonce\";\n type: \"u64\";\n },\n {\n name: \"dlnMetadata\";\n type: \"bytes\";\n },\n {\n name: \"tradeId\";\n type: {\n array: [\"u8\", 32];\n };\n },\n ];\n },\n {\n name: \"executeIntent2\";\n discriminator: [57, 145, 38, 151, 5, 101, 106, 72];\n accounts: [\n {\n name: \"taker\";\n writable: true;\n signer: true;\n },\n {\n name: \"state\";\n pda: {\n seeds: [\n {\n kind: \"const\";\n value: [115, 116, 97, 116, 101];\n },\n ];\n };\n },\n {\n name: \"maker\";\n writable: true;\n relations: [\"intentStorage\"];\n },\n {\n name: \"makerInfo\";\n writable: true;\n pda: {\n seeds: [\n {\n kind: \"const\";\n value: [109, 97, 107, 101, 114, 95, 105, 110, 102, 111];\n },\n {\n kind: \"account\";\n path: \"maker\";\n },\n ];\n };\n },\n {\n name: \"intentStorage\";\n writable: true;\n },\n {\n name: \"intentTakeToken\";\n writable: true;\n pda: {\n seeds: [\n {\n kind: \"account\";\n path: \"intentStorage\";\n },\n {\n kind: \"account\";\n path: \"tokenProgram\";\n },\n {\n kind: \"account\";\n path: \"tokenMint\";\n },\n ];\n program: {\n kind: \"const\";\n value: [\n 140,\n 151,\n 37,\n 143,\n 78,\n 36,\n 137,\n 241,\n 187,\n 61,\n 16,\n 41,\n 20,\n 142,\n 13,\n 131,\n 11,\n 90,\n 19,\n 153,\n 218,\n 255,\n 16,\n 132,\n 4,\n 142,\n 123,\n 216,\n 219,\n 233,\n 248,\n 89,\n ];\n };\n };\n },\n {\n name: \"feeLedger\";\n writable: true;\n pda: {\n seeds: [\n {\n kind: \"account\";\n path: \"state\";\n },\n {\n kind: \"account\";\n path: \"tokenProgram\";\n },\n {\n kind: \"account\";\n path: \"tokenMint\";\n },\n ];\n program: {\n kind: \"const\";\n value: [\n 140,\n 151,\n 37,\n 143,\n 78,\n 36,\n 137,\n 241,\n 187,\n 61,\n 16,\n 41,\n 20,\n 142,\n 13,\n 131,\n 11,\n 90,\n 19,\n 153,\n 218,\n 255,\n 16,\n 132,\n 4,\n 142,\n 123,\n 216,\n 219,\n 233,\n 248,\n 89,\n ];\n };\n };\n },\n {\n name: \"receiver\";\n },\n {\n name: \"receiverTakeToken\";\n writable: true;\n },\n {\n name: \"tokenMint\";\n },\n {\n name: \"systemProgram\";\n address: \"11111111111111111111111111111111\";\n },\n {\n name: \"tokenProgram\";\n },\n {\n name: \"associatedTokenProgram\";\n address: \"ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL\";\n },\n {\n name: \"eventAuthority\";\n pda: {\n seeds: [\n {\n kind: \"const\";\n value: [\n 95,\n 95,\n 101,\n 118,\n 101,\n 110,\n 116,\n 95,\n 97,\n 117,\n 116,\n 104,\n 111,\n 114,\n 105,\n 116,\n 121,\n ];\n },\n ];\n };\n },\n {\n name: \"program\";\n },\n ];\n args: [\n {\n name: \"amount\";\n type: \"u64\";\n },\n {\n name: \"tradeId\";\n type: {\n array: [\"u8\", 32];\n };\n },\n ];\n },\n {\n name: \"initIntent\";\n discriminator: [231, 255, 81, 23, 112, 148, 49, 134];\n accounts: [\n {\n name: \"maker\";\n signer: true;\n },\n {\n name: \"rentPayer\";\n writable: true;\n signer: true;\n },\n {\n name: \"state\";\n },\n {\n name: \"intentStorage\";\n writable: true;\n },\n {\n name: \"systemProgram\";\n address: \"11111111111111111111111111111111\";\n },\n {\n name: \"eventAuthority\";\n pda: {\n seeds: [\n {\n kind: \"const\";\n value: [\n 95,\n 95,\n 101,\n 118,\n 101,\n 110,\n 116,\n 95,\n 97,\n 117,\n 116,\n 104,\n 111,\n 114,\n 105,\n 116,\n 121,\n ];\n },\n ];\n };\n },\n {\n name: \"program\";\n },\n ];\n args: [\n {\n name: \"space\";\n type: \"u16\";\n },\n {\n name: \"reserved\";\n type: {\n array: [\"u8\", 2];\n };\n },\n {\n name: \"encodedIntentHash\";\n type: {\n defined: {\n name: \"encodedIntentHash\";\n };\n };\n },\n ];\n },\n {\n name: \"initIntentByDelegate\";\n discriminator: [85, 140, 35, 112, 240, 67, 16, 40];\n accounts: [\n {\n name: \"delegate\";\n signer: true;\n },\n {\n name: \"maker\";\n docs: [\"CHECK\"];\n },\n {\n name: \"makerInfo\";\n writable: true;\n pda: {\n seeds: [\n {\n kind: \"const\";\n value: [109, 97, 107, 101, 114, 95, 105, 110, 102, 111];\n },\n {\n kind: \"account\";\n path: \"maker\";\n },\n ];\n };\n },\n {\n name: \"rentPayer\";\n writable: true;\n signer: true;\n },\n {\n name: \"state\";\n },\n {\n name: \"intentStorage\";\n writable: true;\n },\n {\n name: \"systemProgram\";\n address: \"11111111111111111111111111111111\";\n },\n {\n name: \"eventAuthority\";\n pda: {\n seeds: [\n {\n kind: \"const\";\n value: [\n 95,\n 95,\n 101,\n 118,\n 101,\n 110,\n 116,\n 95,\n 97,\n 117,\n 116,\n 104,\n 111,\n 114,\n 105,\n 116,\n 121,\n ];\n },\n ];\n };\n },\n {\n name: \"program\";\n },\n ];\n args: [\n {\n name: \"space\";\n type: \"u16\";\n },\n {\n name: \"reserved\";\n type: {\n array: [\"u8\", 2];\n };\n },\n {\n name: \"encodedIntentHash\";\n type: {\n defined: {\n name: \"encodedIntentHash\";\n };\n };\n },\n ];\n },\n {\n name: \"initIntentByDelegateUsingSig\";\n discriminator: [113, 25, 150, 248, 204, 41, 36, 34];\n accounts: [\n {\n name: \"delegate\";\n docs: [\"CHECK\"];\n },\n {\n name: \"maker\";\n docs: [\"CHECK\"];\n },\n {\n name: \"makerInfo\";\n pda: {\n seeds: [\n {\n kind: \"const\";\n value: [109, 97, 107, 101, 114, 95, 105, 110, 102, 111];\n },\n {\n kind: \"account\";\n path: \"maker\";\n },\n ];\n };\n },\n {\n name: \"rentPayer\";\n writable: true;\n signer: true;\n },\n {\n name: \"state\";\n },\n {\n name: \"intentStorage\";\n writable: true;\n },\n {\n name: \"systemProgram\";\n address: \"11111111111111111111111111111111\";\n },\n {\n name: \"eventAuthority\";\n pda: {\n seeds: [\n {\n kind: \"const\";\n value: [\n 95,\n 95,\n 101,\n 118,\n 101,\n 110,\n 116,\n 95,\n 97,\n 117,\n 116,\n 104,\n 111,\n 114,\n 105,\n 116,\n 121,\n ];\n },\n ];\n };\n },\n {\n name: \"program\";\n },\n ];\n args: [\n {\n name: \"space\";\n type: \"u16\";\n },\n {\n name: \"signatureType\";\n type: {\n defined: {\n name: \"signatureType\";\n };\n };\n },\n {\n name: \"reserved\";\n type: \"u8\";\n },\n {\n name: \"encodedIntentHash\";\n type: {\n defined: {\n name: \"encodedIntentHash\";\n };\n };\n },\n {\n name: \"signature\";\n type: {\n array: [\"u8\", 64];\n };\n },\n ];\n },\n {\n name: \"initIntentUsingSig\";\n discriminator: [163, 186, 238, 179, 190, 181, 19, 185];\n accounts: [\n {\n name: \"maker\";\n docs: [\"CHECK\"];\n },\n {\n name: \"rentPayer\";\n writable: true;\n signer: true;\n },\n {\n name: \"state\";\n },\n {\n name: \"intentStorage\";\n writable: true;\n },\n {\n name: \"systemProgram\";\n address: \"11111111111111111111111111111111\";\n },\n {\n name: \"eventAuthority\";\n pda: {\n seeds: [\n {\n kind: \"const\";\n value: [\n 95,\n 95,\n 101,\n 118,\n 101,\n 110,\n 116,\n 95,\n 97,\n 117,\n 116,\n 104,\n 111,\n 114,\n 105,\n 116,\n 121,\n ];\n },\n ];\n };\n },\n {\n name: \"program\";\n },\n ];\n args: [\n {\n name: \"space\";\n type: \"u16\";\n },\n {\n name: \"signatureType\";\n type: {\n defined: {\n name: \"signatureType\";\n };\n };\n },\n {\n name: \"reserved\";\n type: \"u8\";\n },\n {\n name: \"encodedIntentHash\";\n type: {\n defined: {\n name: \"encodedIntentHash\";\n };\n };\n },\n {\n name: \"signature\";\n type: {\n array: [\"u8\", 64];\n };\n },\n ];\n },\n {\n name: \"initState\";\n discriminator: [124, 213, 73, 136, 80, 37, 141, 54];\n accounts: [\n {\n name: \"protocolAuthority\";\n signer: true;\n },\n {\n name: \"programAuthority\";\n signer: true;\n address: \"intV2u5xDE8T2ZMFP3W3X6sVqGHBT7zvYtTW3rRLmvE\";\n },\n {\n name: \"rentPayer\";\n writable: true;\n signer: true;\n },\n {\n name: \"state\";\n writable: true;\n pda: {\n seeds: [\n {\n kind: \"const\";\n value: [115, 116, 97, 116, 101];\n },\n ];\n };\n },\n {\n name: \"systemProgram\";\n address: \"11111111111111111111111111111111\";\n },\n ];\n args: [];\n },\n {\n name: \"reallocState\";\n discriminator: [67, 181, 233, 214, 215, 148, 245, 126];\n accounts: [\n {\n name: \"inner\";\n accounts: [\n {\n name: \"protocolAuthority\";\n signer: true;\n relations: [\"state\"];\n },\n {\n name: \"state\";\n writable: true;\n pda: {\n seeds: [\n {\n kind: \"const\";\n value: [115, 116, 97, 116, 101];\n },\n ];\n };\n },\n ];\n },\n {\n name: \"rentPayer\";\n writable: true;\n signer: true;\n },\n {\n name: \"systemProgram\";\n address: \"11111111111111111111111111111111\";\n },\n ];\n args: [\n {\n name: \"newSpace\";\n type: \"u32\";\n },\n ];\n },\n {\n name: \"setCancelUntilTimestamp\";\n discriminator: [206, 248, 194, 176, 4, 206, 30, 228];\n accounts: [\n {\n name: \"inner\";\n accounts: [\n {\n name: \"protocolAuthority\";\n signer: true;\n relations: [\"state\"];\n },\n {\n name: \"state\";\n writable: true;\n pda: {\n seeds: [\n {\n kind: \"const\";\n value: [115, 116, 97, 116, 101];\n },\n ];\n };\n },\n ];\n },\n ];\n args: [\n {\n name: \"cancelUntilTimestamp\";\n type: \"u64\";\n },\n ];\n },\n {\n name: \"setDefaultFee\";\n discriminator: [150, 137, 197, 111, 176, 227, 201, 110];\n accounts: [\n {\n name: \"inner\";\n accounts: [\n {\n name: \"protocolAuthority\";\n signer: true;\n relations: [\"state\"];\n },\n {\n name: \"state\";\n writable: true;\n pda: {\n seeds: [\n {\n kind: \"const\";\n value: [115, 116, 97, 116, 101];\n },\n ];\n };\n },\n ];\n },\n {\n name: \"eventAuthority\";\n pda: {\n seeds: [\n {\n kind: \"const\";\n value: [\n 95,\n 95,\n 101,\n 118,\n 101,\n 110,\n 116,\n 95,\n 97,\n 117,\n 116,\n 104,\n 111,\n 114,\n 105,\n 116,\n 121,\n ];\n },\n ];\n };\n },\n {\n name: \"program\";\n },\n ];\n args: [\n {\n name: \"defaultFeeBps\";\n type: \"u32\";\n },\n ];\n },\n {\n name: \"setDelegateApprovedBudgets\";\n discriminator: [82, 182, 181, 250, 30, 186, 95, 15];\n accounts: [\n {\n name: \"maker\";\n signer: true;\n },\n {\n name: \"delegate\";\n },\n {\n name: \"rentPayer\";\n writable: true;\n signer: true;\n },\n {\n name: \"makerInfo\";\n writable: true;\n pda: {\n seeds: [\n {\n kind: \"const\";\n value: [109, 97, 107, 101, 114, 95, 105, 110, 102, 111];\n },\n {\n kind: \"account\";\n path: \"maker\";\n },\n ];\n };\n },\n {\n name: \"state\";\n },\n {\n name: \"systemProgram\";\n address: \"11111111111111111111111111111111\";\n },\n ];\n args: [\n {\n name: \"nonce\";\n type: \"u64\";\n },\n {\n name: \"approvedTokenBudgets\";\n type: {\n defined: {\n name: \"setApprovedTokenBudgets\";\n };\n };\n },\n ];\n },\n {\n name: \"setDelegateApprovedBudgetsUsingSig\";\n discriminator: [26, 11, 76, 149, 162, 38, 128, 0];\n accounts: [\n {\n name: \"maker\";\n },\n {\n name: \"delegate\";\n },\n {\n name: \"rentPayer\";\n writable: true;\n signer: true;\n },\n {\n name: \"makerInfo\";\n writable: true;\n pda: {\n seeds: [\n {\n kind: \"const\";\n value: [109, 97, 107, 101, 114, 95, 105, 110, 102, 111];\n },\n {\n kind: \"account\";\n path: \"maker\";\n },\n ];\n };\n },\n {\n name: \"state\";\n },\n {\n name: \"systemProgram\";\n address: \"11111111111111111111111111111111\";\n },\n ];\n args: [\n {\n name: \"nonce\";\n type: \"u64\";\n },\n {\n name: \"encodedApprovedTokenBudgets\";\n type: \"bytes\";\n },\n {\n name: \"signature\";\n type: {\n array: [\"u8\", 64];\n };\n },\n ];\n },\n {\n name: \"setFeeCollector\";\n discriminator: [143, 46, 10, 113, 121, 157, 245, 166];\n accounts: [\n {\n name: \"inner\";\n accounts: [\n {\n name: \"protocolAuthority\";\n signer: true;\n relations: [\"state\"];\n },\n {\n name: \"state\";\n writable: true;\n pda: {\n seeds: [\n {\n kind: \"const\";\n value: [115, 116, 97, 116, 101];\n },\n ];\n };\n },\n ];\n },\n ];\n args: [\n {\n name: \"feeCollector\";\n type: \"pubkey\";\n },\n ];\n },\n {\n name: \"setMakerCancelUntilTimestamp\";\n discriminator: [144, 42, 186, 107, 205, 215, 55, 229];\n accounts: [\n {\n name: \"maker\";\n signer: true;\n },\n {\n name: \"rentPayer\";\n writable: true;\n signer: true;\n },\n {\n name: \"makerInfo\";\n writable: true;\n pda: {\n seeds: [\n {\n kind: \"const\";\n value: [109, 97, 107, 101, 114, 95, 105, 110, 102, 111];\n },\n {\n kind: \"account\";\n path: \"maker\";\n },\n ];\n };\n },\n {\n name: \"state\";\n },\n {\n name: \"systemProgram\";\n address: \"11111111111111111111111111111111\";\n },\n ];\n args: [\n {\n name: \"cancelUntilTimestamp\";\n type: \"u64\";\n },\n ];\n },\n {\n name: \"setPause\";\n discriminator: [63, 32, 154, 2, 56, 103, 79, 45];\n accounts: [\n {\n name: \"inner\";\n accounts: [\n {\n name: \"protocolAuthority\";\n signer: true;\n relations: [\"state\"];\n },\n {\n name: \"state\";\n writable: true;\n pda: {\n seeds: [\n {\n kind: \"const\";\n value: [115, 116, 97, 116, 101];\n },\n ];\n };\n },\n ];\n },\n ];\n args: [\n {\n name: \"pauseFlag\";\n type: \"bool\";\n },\n ];\n },\n {\n name: \"setProtocolAuthority\";\n discriminator: [96, 162, 46, 152, 72, 147, 175, 176];\n accounts: [\n {\n name: \"inner\";\n accounts: [\n {\n name: \"protocolAuthority\";\n signer: true;\n relations: [\"state\"];\n },\n {\n name: \"state\";\n writable: true;\n pda: {\n seeds: [\n {\n kind: \"const\";\n value: [115, 116, 97, 116, 101];\n },\n ];\n };\n },\n ];\n },\n {\n name: \"newProtocolAuthority\";\n signer: true;\n },\n ];\n args: [];\n },\n {\n name: \"swapBegin\";\n discriminator: [87, 236, 193, 120, 215, 245, 9, 37];\n accounts: [\n {\n name: \"taker\";\n writable: true;\n signer: true;\n },\n {\n name: \"state\";\n pda: {\n seeds: [\n {\n kind: \"const\";\n value: [115, 116, 97, 116, 101];\n },\n ];\n };\n },\n {\n name: \"maker\";\n relations: [\"intentStorage\"];\n },\n {\n name: \"makerInfo\";\n writable: true;\n pda: {\n seeds: [\n {\n kind: \"const\";\n value: [109, 97, 107, 101, 114, 95, 105, 110, 102, 111];\n },\n {\n kind: \"account\";\n path: \"maker\";\n },\n ];\n };\n },\n {\n name: \"intentStorage\";\n writable: true;\n },\n {\n name: \"inputMint\";\n },\n {\n name: \"outputMint\";\n },\n {\n name: \"makerInputToken\";\n writable: true;\n pda: {\n seeds: [\n {\n kind: \"account\";\n path: \"maker\";\n },\n {\n kind: \"account\";\n path: \"inputTokenProgram\";\n },\n {\n kind: \"account\";\n path: \"inputMint\";\n },\n ];\n program: {\n kind: \"const\";\n value: [\n 140,\n 151,\n 37,\n 143,\n 78,\n 36,\n 137,\n 241,\n 187,\n 61,\n 16,\n 41,\n 20,\n 142,\n 13,\n 131,\n 11,\n 90,\n 19,\n 153,\n 218,\n 255,\n 16,\n 132,\n 4,\n 142,\n 123,\n 216,\n 219,\n 233,\n 248,\n 89,\n ];\n };\n };\n },\n {\n name: \"takerInputToken\";\n writable: true;\n pda: {\n seeds: [\n {\n kind: \"account\";\n path: \"taker\";\n },\n {\n kind: \"account\";\n path: \"inputTokenProgram\";\n },\n {\n kind: \"account\";\n path: \"inputMint\";\n },\n ];\n program: {\n kind: \"const\";\n value: [\n 140,\n 151,\n 37,\n 143,\n 78,\n 36,\n 137,\n 241,\n 187,\n 61,\n 16,\n 41,\n 20,\n 142,\n 13,\n 131,\n 11,\n 90,\n 19,\n 153,\n 218,\n 255,\n 16,\n 132,\n 4,\n 142,\n 123,\n 216,\n 219,\n 233,\n 248,\n 89,\n ];\n };\n };\n },\n {\n name: \"takerOutputToken\";\n writable: true;\n pda: {\n seeds: [\n {\n kind: \"account\";\n path: \"taker\";\n },\n {\n kind: \"account\";\n path: \"outputTokenProgram\";\n },\n {\n kind: \"account\";\n path: \"outputMint\";\n },\n ];\n program: {\n kind: \"const\";\n value: [\n 140,\n 151,\n 37,\n 143,\n 78,\n 36,\n 137,\n 241,\n 187,\n 61,\n 16,\n 41,\n 20,\n 142,\n 13,\n 131,\n 11,\n 90,\n 19,\n 153,\n 218,\n 255,\n 16,\n 132,\n 4,\n 142,\n 123,\n 216,\n 219,\n 233,\n 248,\n 89,\n ];\n };\n };\n },\n {\n name: \"intentOutputToken\";\n writable: true;\n },\n {\n name: \"instructions\";\n address: \"Sysvar1nstructions1111111111111111111111111\";\n },\n {\n name: \"systemProgram\";\n address: \"11111111111111111111111111111111\";\n },\n {\n name: \"inputTokenProgram\";\n },\n {\n name: \"outputTokenProgram\";\n },\n {\n name: \"associatedTokenProgram\";\n address: \"ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL\";\n },\n {\n name: \"eventAuthority\";\n pda: {\n seeds: [\n {\n kind: \"const\";\n value: [\n 95,\n 95,\n 101,\n 118,\n 101,\n 110,\n 116,\n 95,\n 97,\n 117,\n 116,\n 104,\n 111,\n 114,\n 105,\n 116,\n 121,\n ];\n },\n ];\n };\n },\n {\n name: \"program\";\n },\n ];\n args: [\n {\n name: \"amount\";\n type: \"u64\";\n },\n {\n name: \"target\";\n type: {\n defined: {\n name: \"targetTokenAccount\";\n };\n };\n },\n {\n name: \"tradeId\";\n type: {\n array: [\"u8\", 32];\n };\n },\n ];\n },\n {\n name: \"swapEnd\";\n discriminator: [75, 178, 142, 132, 50, 126, 38, 31];\n accounts: [\n {\n name: \"taker\";\n writable: true;\n signer: true;\n },\n {\n name: \"state\";\n pda: {\n seeds: [\n {\n kind: \"const\";\n value: [115, 116, 97, 116, 101];\n },\n ];\n };\n },\n {\n name: \"intentStorage\";\n writable: true;\n },\n {\n name: \"inputMint\";\n },\n {\n name: \"outputMint\";\n },\n {\n name: \"takerOutputToken\";\n writable: true;\n pda: {\n seeds: [\n {\n kind: \"account\";\n path: \"taker\";\n },\n {\n kind: \"account\";\n path: \"outputTokenProgram\";\n },\n {\n kind: \"account\";\n path: \"outputMint\";\n },\n ];\n program: {\n kind: \"const\";\n value: [\n 140,\n 151,\n 37,\n 143,\n 78,\n 36,\n 137,\n 241,\n 187,\n 61,\n 16,\n 41,\n 20,\n 142,\n 13,\n 131,\n 11,\n 90,\n 19,\n 153,\n 218,\n 255,\n 16,\n 132,\n 4,\n 142,\n 123,\n 216,\n 219,\n 233,\n 248,\n 89,\n ];\n };\n };\n },\n {\n name: \"intentOutputToken\";\n writable: true;\n pda: {\n seeds: [\n {\n kind: \"account\";\n path: \"intentStorage\";\n },\n {\n kind: \"account\";\n path: \"outputTokenProgram\";\n },\n {\n kind: \"account\";\n path: \"outputMint\";\n },\n ];\n program: {\n kind: \"const\";\n value: [\n 140,\n 151,\n 37,\n 143,\n 78,\n 36,\n 137,\n 241,\n 187,\n 61,\n 16,\n 41,\n 20,\n 142,\n 13,\n 131,\n 11,\n 90,\n 19,\n 153,\n 218,\n 255,\n 16,\n 132,\n 4,\n 142,\n 123,\n 216,\n 219,\n 233,\n 248,\n 89,\n ];\n };\n };\n },\n {\n name: \"instructions\";\n address: \"Sysvar1nstructions1111111111111111111111111\";\n },\n {\n name: \"systemProgram\";\n address: \"11111111111111111111111111111111\";\n },\n {\n name: \"outputTokenProgram\";\n },\n {\n name: \"associatedTokenProgram\";\n address: \"ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL\";\n },\n {\n name: \"eventAuthority\";\n pda: {\n seeds: [\n {\n kind: \"const\";\n value: [\n 95,\n 95,\n 101,\n 118,\n 101,\n 110,\n 116,\n 95,\n 97,\n 117,\n 116,\n 104,\n 111,\n 114,\n 105,\n 116,\n 121,\n ];\n },\n ];\n };\n },\n {\n name: \"program\";\n },\n ];\n args: [\n {\n name: \"expectedOutputTokenAmount\";\n type: \"u64\";\n },\n {\n name: \"takerSurplusShareBps\";\n type: \"u32\";\n },\n ];\n },\n {\n name: \"updateIntent\";\n discriminator: [214, 203, 249, 158, 90, 27, 54, 17];\n accounts: [\n {\n name: \"rentPayer\";\n writable: true;\n signer: true;\n },\n {\n name: \"state\";\n },\n {\n name: \"intentStorage\";\n writable: true;\n },\n {\n name: \"systemProgram\";\n address: \"11111111111111111111111111111111\";\n },\n {\n name: \"buffer\";\n optional: true;\n },\n {\n name: \"eventAuthority\";\n pda: {\n seeds: [\n {\n kind: \"const\";\n value: [\n 95,\n 95,\n 101,\n 118,\n 101,\n 110,\n 116,\n 95,\n 97,\n 117,\n 116,\n 104,\n 111,\n 114,\n 105,\n 116,\n 121,\n ];\n },\n ];\n };\n },\n {\n name: \"program\";\n },\n ];\n args: [\n {\n name: \"dataOrigin\";\n type: {\n defined: {\n name: \"dataOrigin\";\n };\n };\n },\n ];\n },\n {\n name: \"withdrawIntentTokenAccount\";\n discriminator: [188, 114, 123, 239, 223, 164, 242, 101];\n accounts: [\n {\n name: \"state\";\n },\n {\n name: \"maker\";\n docs: [\"CHECK\"];\n },\n {\n name: \"intentStorage\";\n },\n {\n name: \"intentTokenAccount\";\n writable: true;\n pda: {\n seeds: [\n {\n kind: \"account\";\n path: \"intentStorage\";\n },\n {\n kind: \"account\";\n path: \"tokenProgram\";\n },\n {\n kind: \"account\";\n path: \"tokenMint\";\n },\n ];\n program: {\n kind: \"const\";\n value: [\n 140,\n 151,\n 37,\n 143,\n 78,\n 36,\n 137,\n 241,\n 187,\n 61,\n 16,\n 41,\n 20,\n 142,\n 13,\n 131,\n 11,\n 90,\n 19,\n 153,\n 218,\n 255,\n 16,\n 132,\n 4,\n 142,\n 123,\n 216,\n 219,\n 233,\n 248,\n 89,\n ];\n };\n };\n },\n {\n name: \"makerTokenAccount\";\n writable: true;\n pda: {\n seeds: [\n {\n kind: \"account\";\n path: \"maker\";\n },\n {\n kind: \"account\";\n path: \"tokenProgram\";\n },\n {\n kind: \"account\";\n path: \"tokenMint\";\n },\n ];\n program: {\n kind: \"const\";\n value: [\n 140,\n 151,\n 37,\n 143,\n 78,\n 36,\n 137,\n 241,\n 187,\n 61,\n 16,\n 41,\n 20,\n 142,\n 13,\n 131,\n 11,\n 90,\n 19,\n 153,\n 218,\n 255,\n 16,\n 132,\n 4,\n 142,\n 123,\n 216,\n 219,\n 233,\n 248,\n 89,\n ];\n };\n };\n },\n {\n name: \"rentReceiver\";\n writable: true;\n },\n {\n name: \"tokenMint\";\n },\n {\n name: \"tokenProgram\";\n },\n {\n name: \"associatedTokenProgram\";\n address: \"ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL\";\n },\n ];\n args: [\n {\n name: \"encodedIntentHash\";\n type: {\n option: {\n defined: {\n name: \"encodedIntentHash\";\n };\n };\n };\n },\n ];\n },\n ];\n accounts: [\n {\n name: \"intentStorage\";\n discriminator: [175, 239, 93, 146, 246, 119, 144, 249];\n },\n {\n name: \"makerInfo\";\n discriminator: [164, 184, 52, 218, 144, 52, 100, 40];\n },\n {\n name: \"state\";\n discriminator: [216, 146, 107, 94, 104, 75, 182, 177];\n },\n ];\n events: [\n {\n name: \"closedIntent\";\n discriminator: [197, 62, 20, 42, 191, 176, 242, 94];\n },\n {\n name: \"fulfilled\";\n discriminator: [210, 174, 131, 213, 40, 182, 83, 110];\n },\n {\n name: \"fulfilledDln\";\n discriminator: [42, 231, 52, 35, 155, 251, 144, 108];\n },\n {\n name: \"intentBudgetSpent\";\n discriminator: [106, 148, 20, 168, 115, 89, 145, 56];\n },\n {\n name: \"newIntent\";\n discriminator: [101, 118, 73, 187, 15, 74, 57, 97];\n },\n {\n name: \"sealedIntent\";\n discriminator: [28, 191, 234, 161, 83, 32, 138, 137];\n },\n {\n name: \"swapped\";\n discriminator: [217, 52, 52, 83, 147, 135, 96, 109];\n },\n ];\n errors: [\n {\n code: 6160;\n name: \"invalidArgument\";\n },\n {\n code: 6170;\n name: \"invalidAmount\";\n },\n {\n code: 6172;\n name: \"malformedRemainingAccounts\";\n },\n {\n code: 16782961;\n name: \"protocolPaused\";\n },\n {\n code: 16782979;\n name: \"timeParadox\";\n },\n {\n code: 6234;\n name: \"unknownCaller\";\n },\n {\n code: 6236;\n name: \"unknownCancelAuthority\";\n },\n {\n code: 6079;\n name: \"signatureVerificationFailed\";\n },\n {\n code: 6085;\n name: \"intentIdMiscalculated\";\n },\n {\n code: 6086;\n name: \"intentFromAnotherChain\";\n },\n {\n code: 6087;\n name: \"intentSameChainOnly\";\n },\n {\n code: 6088;\n name: \"intentInconsistentInputTokens\";\n },\n {\n code: 6089;\n name: \"intentInconsistentGiveTokens\";\n },\n {\n code: 6096;\n name: \"intentInconsistentTakeTokens\";\n },\n {\n code: 6097;\n name: \"intentInconsitentReceivers\";\n },\n {\n code: 6098;\n name: \"intentInconsitentDstAuthorities\";\n },\n {\n code: 6275;\n name: \"intentStorageAlreadyInitialized\";\n },\n {\n code: 6276;\n name: \"intentHashMismatch\";\n },\n {\n code: 6277;\n name: \"intentStorageSealed\";\n },\n {\n code: 6278;\n name: \"missedBufferAccount\";\n },\n {\n code: 6288;\n name: \"intentNotReady\";\n },\n {\n code: 6289;\n name: \"intentCancelled\";\n },\n {\n code: 6290;\n name: \"intentExpired\";\n },\n {\n code: 6291;\n name: \"intentInvalidatedByUser\";\n },\n {\n code: 6292;\n name: \"intentInvalidatedByProtocolAuthority\";\n },\n {\n code: 6293;\n name: \"expectedClosedIntent\";\n },\n {\n code: 6294;\n name: \"expectedCancelledIntent\";\n },\n {\n code: 9664;\n name: \"tokenAccountMissingProtocolDelegate\";\n },\n {\n code: 9665;\n name: \"unknownInputToken\";\n },\n {\n code: 9666;\n name: \"inputTokenAmountOutOfRange\";\n },\n {\n code: 9667;\n name: \"inputTokenAmountExceedsBudget\";\n },\n {\n code: 9668;\n name: \"swapOutputAmountLessThanExpected\";\n },\n {\n code: 9680;\n name: \"takerNotAllowed\";\n },\n {\n code: 9681;\n name: \"unknownRoute\";\n },\n {\n code: 9682;\n name: \"priceViolation\";\n },\n {\n code: 9683;\n name: \"invalidReceiver\";\n },\n {\n code: 9684;\n name: \"readonlyReceiver\";\n },\n {\n code: 6101;\n name: \"missedNativeUnwrapFlag\";\n },\n {\n code: 9793;\n name: \"invalidDlnOrderTakeAmount\";\n },\n {\n code: 9794;\n name: \"invalidDlnDstReceiver\";\n },\n {\n code: 9802;\n name: \"invalidDlnDstOrderAuthority\";\n },\n {\n code: 9803;\n name: \"invalidDlnDstAllowedTaker\";\n },\n {\n code: 9804;\n name: \"invalidDlnSrcAllowedCancelBeneficiary\";\n },\n {\n code: 9805;\n name: \"invalidDlnMetadata\";\n },\n {\n code: 9806;\n name: \"invalidDlnExtcallHash\";\n },\n {\n code: 9788;\n name: \"cantBeClosed\";\n },\n {\n code: 9787;\n name: \"invalidTokenAccountRentReceiver\";\n },\n {\n code: 9839;\n name: \"intentArbitraryDataOverflow\";\n },\n {\n code: 8832;\n name: \"takerMustBeFixedWhenExtcallAllowed\";\n },\n {\n code: 8833;\n name: \"ambiguousReceivers\";\n },\n {\n code: 9600;\n name: \"interactionAccountNotFound\";\n },\n {\n code: 9601;\n name: \"interactionProgramNotFound\";\n },\n {\n code: 6239;\n name: \"interactionFixedAccountNotFound\";\n },\n {\n code: 9536;\n name: \"unknownDelegate\";\n },\n {\n code: 9537;\n name: \"delegateNonceMismatchNext\";\n },\n {\n code: 9546;\n name: \"delegateHasNoApproval\";\n },\n {\n code: 9547;\n name: \"delegateExceedsApprovedBudget\";\n },\n {\n code: 9550;\n name: \"delegateApprovalExpired\";\n },\n {\n code: 9551;\n name: \"delegateRevoked\";\n },\n {\n code: 16767137;\n name: \"crossProgramInvokeRestricted\";\n },\n {\n code: 16770159;\n name: \"crossProgramInvokeHasIntentsProgramAccount\";\n },\n ];\n types: [\n {\n name: \"address\";\n type: {\n kind: \"type\";\n alias: {\n vec: \"u8\";\n };\n };\n },\n {\n name: \"approvedTokenBudget\";\n type: {\n kind: \"struct\";\n fields: [\n {\n name: \"tokenMint\";\n type: \"pubkey\";\n },\n {\n name: \"approvedAmount\";\n type: \"u64\";\n },\n {\n name: \"expiration\";\n type: \"u64\";\n },\n ];\n };\n },\n {\n name: \"closedIntent\";\n type: {\n kind: \"struct\";\n fields: [\n {\n name: \"status\";\n type: {\n defined: {\n name: \"closedIntentStatus\";\n };\n };\n },\n ];\n };\n },\n {\n name: \"closedIntentStatus\";\n repr: {\n kind: \"rust\";\n };\n type: {\n kind: \"enum\";\n variants: [\n {\n name: \"wiped\";\n },\n {\n name: \"terminated\";\n },\n ];\n };\n },\n {\n name: \"createOrderArgs\";\n docs: [\"Structure for forming a new order\"];\n type: {\n kind: \"struct\";\n fields: [\n {\n name: \"giveOriginalAmount\";\n docs: [\n \"Input amount for `create order` call, that will be transferred from the user's wallet.\",\n \"The dln commissions will be deducted from it and the resulting value will be used as [`Order::give.amount`]\",\n ];\n type: \"u64\";\n },\n {\n name: \"take\";\n docs: [\"Offer to take in destination chain\"];\n type: {\n defined: {\n name: \"offer\";\n };\n };\n },\n {\n name: \"receiverDst\";\n docs: [\n \"Address in dst chain\",\n \"Address of receiver_dst of tokens in target chain\",\n \"or\",\n \"address of external call executor if `external_call` presented\",\n ];\n type: {\n defined: {\n name: \"address\";\n };\n };\n },\n {\n name: \"extcall\";\n docs: [\n \"External call for automatically execution in target chain after execution of order\",\n ];\n type: {\n option: \"bytes\";\n };\n },\n {\n name: \"givePatchAuthoritySrc\";\n docs: [\n \"Address in source chain\",\n \"Can call `patch_order_give` method of src program\",\n ];\n type: \"pubkey\";\n },\n {\n name: \"allowedCancelBeneficiarySrc\";\n docs: [\n \"Address in source chain\",\n \"If the field is `Some`, then only this address can receive cancel\",\n ];\n type: {\n option: \"pubkey\";\n };\n },\n {\n name: \"orderAuthorityAddressDst\";\n docs: [\n \"Address in destination chain\",\n \"Can `send_order_cancel`, `process_fallback` and `patch_order_take`\",\n ];\n type: {\n defined: {\n name: \"address\";\n };\n };\n },\n {\n name: \"allowedTakerDst\";\n docs: [\n \"Address in destination chain\",\n \"If the field is `Some`, then only this address can call `fulfill_order` with this\",\n \"order\",\n ];\n type: {\n option: {\n defined: {\n name: \"address\";\n };\n };\n };\n },\n ];\n };\n },\n {\n name: \"currentTokenBudget\";\n type: {\n kind: \"struct\";\n fields: [\n {\n name: \"tokenMint\";\n type: \"pubkey\";\n },\n {\n name: \"approvedAmount\";\n type: \"u64\";\n },\n {\n name: \"expiration\";\n type: \"u64\";\n },\n {\n name: \"remainingAmount\";\n type: \"u64\";\n },\n ];\n };\n },\n {\n name: \"dataOrigin\";\n type: {\n kind: \"enum\";\n variants: [\n {\n name: \"instruction\";\n fields: [\"bytes\"];\n },\n {\n name: \"buffer\";\n fields: [\n {\n name: \"offset\";\n type: \"u32\";\n },\n {\n name: \"length\";\n type: \"u32\";\n },\n ];\n },\n ];\n };\n },\n {\n name: \"delegateBudgets\";\n type: {\n kind: \"enum\";\n variants: [\n {\n name: \"any\";\n },\n {\n name: \"perToken\";\n fields: [\n {\n vec: {\n defined: {\n name: \"currentTokenBudget\";\n };\n };\n },\n ];\n },\n {\n name: \"revoked\";\n },\n ];\n };\n },\n {\n name: \"delegateInfo\";\n type: {\n kind: \"struct\";\n fields: [\n {\n name: \"delegate\";\n type: \"pubkey\";\n },\n {\n name: \"nonce\";\n type: \"u64\";\n },\n {\n name: \"budgets\";\n type: {\n defined: {\n name: \"delegateBudgets\";\n };\n };\n },\n ];\n };\n },\n {\n name: \"encodedIntentHash\";\n type: {\n kind: \"struct\";\n fields: [\n {\n array: [\"u8\", 32];\n },\n ];\n };\n },\n {\n name: \"fulfilled\";\n type: {\n kind: \"struct\";\n fields: [\n {\n name: \"intentId\";\n type: {\n defined: {\n name: \"intentId\";\n };\n };\n },\n {\n name: \"tradeId\";\n type: {\n array: [\"u8\", 32];\n };\n },\n {\n name: \"executionMetadata\";\n type: {\n option: \"bytes\";\n };\n },\n {\n name: \"takeToken\";\n type: \"pubkey\";\n },\n {\n name: \"takeTokenAmount\";\n type: \"u64\";\n },\n {\n name: \"takeTokenFeeAmount\";\n type: \"u64\";\n },\n ];\n };\n },\n {\n name: \"fulfilledDln\";\n type: {\n kind: \"struct\";\n fields: [\n {\n name: \"intentId\";\n type: {\n defined: {\n name: \"intentId\";\n };\n };\n },\n {\n name: \"executionMetadata\";\n type: {\n option: \"bytes\";\n };\n },\n {\n name: \"tradeId\";\n type: {\n array: [\"u8\", 32];\n };\n },\n {\n name: \"orderId\";\n type: {\n defined: {\n name: \"u256\";\n };\n };\n },\n {\n name: \"giveTokenFeeAmount\";\n type: \"u64\";\n },\n ];\n };\n },\n {\n name: \"intentBudget\";\n type: {\n kind: \"struct\";\n fields: [\n {\n name: \"mintIndex\";\n type: \"u8\";\n },\n {\n name: \"remainingAmount\";\n type: \"u64\";\n },\n ];\n };\n },\n {\n name: \"intentBudgetSpent\";\n type: {\n kind: \"struct\";\n fields: [\n {\n name: \"intentId\";\n type: {\n defined: {\n name: \"intentId\";\n };\n };\n },\n {\n name: \"tradeId\";\n type: {\n array: [\"u8\", 32];\n };\n },\n {\n name: \"executionMetadata\";\n type: {\n option: \"bytes\";\n };\n },\n {\n name: \"inputToken\";\n type: \"pubkey\";\n },\n {\n name: \"inputTokenSpentAmount\";\n type: \"u64\";\n },\n ];\n };\n },\n {\n name: \"intentBudgets\";\n type: {\n kind: \"struct\";\n fields: [\n {\n vec: {\n defined: {\n name: \"intentBudget\";\n };\n };\n },\n ];\n };\n },\n {\n name: \"intentId\";\n type: {\n kind: \"struct\";\n fields: [\n {\n array: [\"u8\", 32];\n },\n ];\n };\n },\n {\n name: \"intentStorage\";\n type: {\n kind: \"struct\";\n fields: [\n {\n name: \"maker\";\n type: \"pubkey\";\n },\n {\n name: \"delegate\";\n type: {\n option: \"pubkey\";\n };\n },\n {\n name: \"rentPayer\";\n type: \"pubkey\";\n },\n {\n name: \"arbitraryData\";\n type: {\n array: [\"u8\", 100];\n };\n },\n {\n name: \"encodedIntentHash\";\n type: {\n defined: {\n name: \"encodedIntentHash\";\n };\n };\n },\n {\n name: \"version\";\n type: \"u8\";\n },\n {\n name: \"storedIntent\";\n type: {\n defined: {\n name: \"storedIntent\";\n };\n };\n },\n {\n name: \"bump\";\n type: \"u8\";\n },\n ];\n };\n },\n {\n name: \"makerInfo\";\n type: {\n kind: \"struct\";\n fields: [\n {\n name: \"cancelUntilTimestamp\";\n type: \"u64\";\n },\n {\n name: \"delegates\";\n type: {\n vec: {\n defined: {\n name: \"delegateInfo\";\n };\n };\n };\n },\n ];\n };\n },\n {\n name: \"newIntent\";\n type: {\n kind: \"struct\";\n fields: [\n {\n name: \"intentId\";\n type: {\n defined: {\n name: \"intentId\";\n };\n };\n },\n ];\n };\n },\n {\n name: \"offer\";\n type: {\n kind: \"struct\";\n fields: [\n {\n name: \"chainId\";\n type: {\n defined: {\n name: \"u256\";\n };\n };\n },\n {\n name: \"tokenAddress\";\n type: {\n defined: {\n name: \"address\";\n };\n };\n },\n {\n name: \"amount\";\n type: {\n defined: {\n name: \"u256\";\n };\n };\n },\n ];\n };\n },\n {\n name: \"sealedIntent\";\n type: {\n kind: \"struct\";\n fields: [\n {\n name: \"intentId\";\n type: {\n defined: {\n name: \"intentId\";\n };\n };\n },\n {\n name: \"encodedIntent\";\n type: \"bytes\";\n },\n ];\n };\n },\n {\n name: \"setApprovedTokenBudgets\";\n type: {\n kind: \"enum\";\n variants: [\n {\n name: \"set\";\n fields: [\n {\n vec: {\n defined: {\n name: \"approvedTokenBudget\";\n };\n };\n },\n ];\n },\n {\n name: \"setAny\";\n },\n {\n name: \"revoke\";\n },\n ];\n };\n },\n {\n name: \"signatureType\";\n repr: {\n kind: \"rust\";\n };\n type: {\n kind: \"enum\";\n variants: [\n {\n name: \"rawBytes\";\n },\n {\n name: \"hexString\";\n },\n ];\n };\n },\n {\n name: \"state\";\n type: {\n kind: \"struct\";\n fields: [\n {\n name: \"protocolAuthority\";\n type: \"pubkey\";\n },\n {\n name: \"feeCollector\";\n type: \"pubkey\";\n },\n {\n name: \"defaultFeeBps\";\n type: \"u32\";\n },\n {\n name: \"isPaused\";\n type: \"bool\";\n },\n {\n name: \"cancelUntilTimestamp\";\n type: \"u64\";\n },\n {\n name: \"bump\";\n type: \"u8\";\n },\n ];\n };\n },\n {\n name: \"storedIntent\";\n type: {\n kind: \"enum\";\n variants: [\n {\n name: \"uninitialized\";\n },\n {\n name: \"ready\";\n fields: [\n {\n name: \"encodedIntent\";\n type: \"bytes\";\n },\n {\n name: \"budgets\";\n type: {\n defined: {\n name: \"intentBudgets\";\n };\n };\n },\n ];\n },\n {\n name: \"cancelled\";\n fields: [\n {\n name: \"encodedIntent\";\n type: \"bytes\";\n },\n {\n name: \"budgets\";\n type: {\n defined: {\n name: \"intentBudgets\";\n };\n };\n },\n ];\n },\n ];\n };\n },\n {\n name: \"swapped\";\n type: {\n kind: \"struct\";\n fields: [\n {\n name: \"intentId\";\n type: {\n defined: {\n name: \"intentId\";\n };\n };\n },\n {\n name: \"tradeId\";\n type: {\n array: [\"u8\", 32];\n };\n },\n {\n name: \"executionMetadata\";\n type: {\n option: \"bytes\";\n };\n },\n {\n name: \"inputToken\";\n type: \"pubkey\";\n },\n {\n name: \"inputTokenAmount\";\n type: \"u64\";\n },\n {\n name: \"outputToken\";\n type: \"pubkey\";\n },\n {\n name: \"outputTokenAmount\";\n type: \"u64\";\n },\n {\n name: \"takerOutputTokenShareAmount\";\n type: \"u64\";\n },\n ];\n };\n },\n {\n name: \"targetTokenAccount\";\n type: {\n kind: \"enum\";\n variants: [\n {\n name: \"taker\";\n },\n {\n name: \"intent\";\n },\n ];\n };\n },\n {\n name: \"u256\";\n type: {\n kind: \"type\";\n alias: {\n array: [\"u8\", 32];\n };\n };\n },\n ];\n constants: [\n {\n name: \"budgetsSigPrefix\";\n type: \"bytes\";\n value: \"[98, 117, 100, 103, 101, 116, 115]\";\n },\n {\n name: \"clockDriftToleranceSecs\";\n type: \"u64\";\n value: \"300\";\n },\n {\n name: \"defaultFeeBps\";\n type: \"u32\";\n value: \"8\";\n },\n {\n name: \"intentsProgramSigPrefix\";\n type: \"bytes\";\n value: \"[105, 110, 116, 101, 110, 116, 115, 95, 112, 114, 111, 103, 114, 97, 109, 95, 104, 97, 110, 111, 105]\";\n },\n {\n name: \"intentIdHashPrefix\";\n docs: [\n \"Used **only** as sub-seed for [IntentId][`crate::types::IntentId`]\",\n ];\n type: \"bytes\";\n value: \"[105, 110, 116, 101, 110, 116, 95, 105, 100]\";\n },\n {\n name: \"intentSigPrefix\";\n type: \"bytes\";\n value: \"[105, 110, 116, 101, 110, 116, 115]\";\n },\n {\n name: \"intentStorageBaseSeed\";\n type: \"bytes\";\n value: \"[105, 110, 116, 101, 110, 116, 95, 115, 116, 111, 114, 97, 103, 101]\";\n },\n {\n name: \"interactionCallAuthority\";\n type: \"bytes\";\n value: \"[105, 110, 116, 101, 114, 97, 99, 116, 105, 111, 110, 95, 97, 117, 116, 104, 111, 114, 105, 116, 121]\";\n },\n {\n name: \"makerInfoSeed\";\n type: \"bytes\";\n value: \"[109, 97, 107, 101, 114, 95, 105, 110, 102, 111]\";\n },\n {\n name: \"stateSeed\";\n type: \"bytes\";\n value: \"[115, 116, 97, 116, 101]\";\n },\n {\n name: \"unwrapNativePseudoMint\";\n type: \"pubkey\";\n value: \"11111111111111111111111111111111\";\n },\n {\n name: \"unwrapNativeReceiverSeed\";\n type: \"bytes\";\n value: \"[117, 110, 119, 114, 97, 112, 95, 110, 97, 116, 105, 118, 101, 95, 114, 101, 99, 101, 105, 118, 101, 114]\";\n },\n ];\n};\n\nexport const IDL: IntentsProgram = {\n address: \"intV2u5xDE8T2ZMFP3W3X6sVqGHBT7zvYtTW3rRLmvE\",\n metadata: {\n name: \"intentsProgram\",\n version: \"0.0.1\",\n spec: \"0.1.0\",\n description: \"deBridge Intents Program\",\n },\n instructions: [\n {\n name: \"about\",\n discriminator: [62, 111, 52, 44, 118, 185, 179, 229],\n accounts: [],\n args: [],\n },\n {\n name: \"approveProtocolTransfers\",\n discriminator: [17, 3, 184, 144, 112, 130, 116, 98],\n accounts: [\n {\n name: \"maker\",\n signer: true,\n },\n {\n name: \"state\",\n pda: {\n seeds: [\n {\n kind: \"const\",\n value: [115, 116, 97, 116, 101],\n },\n ],\n },\n },\n {\n name: \"tokenProgram\",\n },\n ],\n args: [\n {\n name: \"amounts\",\n type: {\n vec: \"u64\",\n },\n },\n ],\n },\n {\n name: \"cancelIntent\",\n discriminator: [67, 73, 238, 244, 208, 89, 225, 59],\n accounts: [\n {\n name: \"initiator\",\n signer: true,\n },\n {\n name: \"intentStorage\",\n writable: true,\n },\n {\n name: \"state\",\n },\n ],\n args: [],\n },\n {\n name: \"closeAccount\",\n discriminator: [125, 255, 149, 14, 110, 34, 72, 24],\n accounts: [\n {\n name: \"programAuthority\",\n signer: true,\n address: \"intV2u5xDE8T2ZMFP3W3X6sVqGHBT7zvYtTW3rRLmvE\",\n },\n {\n name: \"target\",\n writable: true,\n },\n {\n name: \"rentReceiver\",\n writable: true,\n },\n ],\n args: [],\n },\n {\n name: \"closeIntent\",\n discriminator: [112, 245, 154, 249, 57, 126, 54, 122],\n accounts: [\n {\n name: \"initiator\",\n signer: true,\n },\n {\n name: \"maker\",\n docs: [\"CHECK\"],\n },\n {\n name: \"makerInfo\",\n writable: true,\n pda: {\n seeds: [\n {\n kind: \"const\",\n value: [109, 97, 107, 101, 114, 95, 105, 110, 102, 111],\n },\n {\n kind: \"account\",\n path: \"maker\",\n },\n ],\n },\n },\n {\n name: \"rentPayer\",\n writable: true,\n },\n {\n name: \"intentStorage\",\n writable: true,\n },\n {\n name: \"state\",\n },\n {\n name: \"systemProgram\",\n address: \"11111111111111111111111111111111\",\n },\n ],\n args: [],\n },\n {\n name: \"collectFee\",\n discriminator: [60, 173, 247, 103, 4, 93, 130, 48],\n accounts: [\n {\n name: \"feeCollector\",\n signer: true,\n relations: [\"state\"],\n },\n {\n name: \"state\",\n pda: {\n seeds: [\n {\n kind: \"const\",\n value: [115, 116, 97, 116, 101],\n },\n ],\n },\n },\n {\n name: \"feeLedger\",\n writable: true,\n pda: {\n seeds: [\n {\n kind: \"account\",\n path: \"state\",\n },\n {\n kind: \"account\",\n path: \"tokenProgram\",\n },\n {\n kind: \"account\",\n path: \"mint\",\n },\n ],\n program: {\n kind: \"const\",\n value: [\n 140, 151, 37, 143, 78, 36, 137, 241, 187, 61, 16, 41, 20, 142,\n 13, 131, 11, 90, 19, 153, 218, 255, 16, 132, 4, 142, 123, 216,\n 219, 233, 248, 89,\n ],\n },\n },\n },\n {\n name: \"destination\",\n writable: true,\n },\n {\n name: \"mint\",\n },\n {\n name: \"tokenProgram\",\n },\n ],\n args: [\n {\n name: \"amount\",\n type: \"u64\",\n },\n ],\n },\n {\n name: \"executeIntent\",\n discriminator: [53, 130, 47, 154, 227, 220, 122, 212],\n accounts: [\n {\n name: \"taker\",\n writable: true,\n signer: true,\n },\n {\n name: \"state\",\n },\n {\n name: \"maker\",\n relations: [\"intentStorage\"],\n },\n {\n name: \"makerInfo\",\n writable: true,\n pda: {\n seeds: [\n {\n kind: \"const\",\n value: [109, 97, 107, 101, 114, 95, 105, 110, 102, 111],\n },\n {\n kind: \"account\",\n path: \"maker\",\n },\n ],\n },\n },\n {\n name: \"intentStorage\",\n writable: true,\n },\n {\n name: \"intentGiveToken\",\n writable: true,\n pda: {\n seeds: [\n {\n kind: \"account\",\n path: \"intentStorage\",\n },\n {\n kind: \"account\",\n path: \"tokenProgram\",\n },\n {\n kind: \"account\",\n path: \"tokenMint\",\n },\n ],\n program: {\n kind: \"const\",\n value: [\n 140, 151, 37, 143, 78, 36, 137, 241, 187, 61, 16, 41, 20, 142,\n 13, 131, 11, 90, 19, 153, 218, 255, 16, 132, 4, 142, 123, 216,\n 219, 233, 248, 89,\n ],\n },\n },\n },\n {\n name: \"dlnSrc\",\n address: \"srch38nzfcgwJnfKE6xWD8vfNJtudazwisdcociAuQt\",\n },\n {\n name: \"dlnSrcState\",\n },\n {\n name: \"dlnSrcGiveOrderState\",\n writable: true,\n },\n {\n name: \"dlnSrcGiveOrderWallet\",\n writable: true,\n },\n {\n name: \"dlnSrcAuthorizedNativeSender\",\n },\n {\n name: \"dlnSrcFeeLedgerWallet\",\n writable: true,\n },\n {\n name: \"tokenMint\",\n },\n {\n name: \"systemProgram\",\n address: \"11111111111111111111111111111111\",\n },\n {\n name: \"tokenProgram\",\n },\n {\n name: \"associatedTokenProgram\",\n address: \"ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL\",\n },\n {\n name: \"eventAuthority\",\n pda: {\n seeds: [\n {\n kind: \"const\",\n value: [\n 95, 95, 101, 118, 101, 110, 116, 95, 97, 117, 116, 104, 111,\n 114, 105, 116, 121,\n ],\n },\n ],\n },\n },\n {\n name: \"program\",\n },\n ],\n args: [\n {\n name: \"dlnOrderArgs\",\n type: {\n defined: {\n name: \"createOrderArgs\",\n },\n },\n },\n {\n name: \"dlnOrderNonce\",\n type: \"u64\",\n },\n {\n name: \"dlnMetadata\",\n type: \"bytes\",\n },\n {\n name: \"tradeId\",\n type: {\n array: [\"u8\", 32],\n },\n },\n ],\n },\n {\n name: \"executeIntent2\",\n discriminator: [57, 145, 38, 151, 5, 101, 106, 72],\n accounts: [\n {\n name: \"taker\",\n writable: true,\n signer: true,\n },\n {\n name: \"state\",\n pda: {\n seeds: [\n {\n kind: \"const\",\n value: [115, 116, 97, 116, 101],\n },\n ],\n },\n },\n {\n name: \"maker\",\n writable: true,\n relations: [\"intentStorage\"],\n },\n {\n name: \"makerInfo\",\n writable: true,\n pda: {\n seeds: [\n {\n kind: \"const\",\n value: [109, 97, 107, 101, 114, 95, 105, 110, 102, 111],\n },\n {\n kind: \"account\",\n path: \"maker\",\n },\n ],\n },\n },\n {\n name: \"intentStorage\",\n writable: true,\n },\n {\n name: \"intentTakeToken\",\n writable: true,\n pda: {\n seeds: [\n {\n kind: \"account\",\n path: \"intentStorage\",\n },\n {\n kind: \"account\",\n path: \"tokenProgram\",\n },\n {\n kind: \"account\",\n path: \"tokenMint\",\n },\n ],\n program: {\n kind: \"const\",\n value: [\n 140, 151, 37, 143, 78, 36, 137, 241, 187, 61, 16, 41, 20, 142,\n 13, 131, 11, 90, 19, 153, 218, 255, 16, 132, 4, 142, 123, 216,\n 219, 233, 248, 89,\n ],\n },\n },\n },\n {\n name: \"feeLedger\",\n writable: true,\n pda: {\n seeds: [\n {\n kind: \"account\",\n path: \"state\",\n },\n {\n kind: \"account\",\n path: \"tokenProgram\",\n },\n {\n kind: \"account\",\n path: \"tokenMint\",\n },\n ],\n program: {\n kind: \"const\",\n value: [\n 140, 151, 37, 143, 78, 36, 137, 241, 187, 61, 16, 41, 20, 142,\n 13, 131, 11, 90, 19, 153, 218, 255, 16, 132, 4, 142, 123, 216,\n 219, 233, 248, 89,\n ],\n },\n },\n },\n {\n name: \"receiver\",\n },\n {\n name: \"receiverTakeToken\",\n writable: true,\n },\n {\n name: \"tokenMint\",\n },\n {\n name: \"systemProgram\",\n address: \"11111111111111111111111111111111\",\n },\n {\n name: \"tokenProgram\",\n },\n {\n name: \"associatedTokenProgram\",\n address: \"ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL\",\n },\n {\n name: \"eventAuthority\",\n pda: {\n seeds: [\n {\n kind: \"const\",\n value: [\n 95, 95, 101, 118, 101, 110, 116, 95, 97, 117, 116, 104, 111,\n 114, 105, 116, 121,\n ],\n },\n ],\n },\n },\n {\n name: \"program\",\n },\n ],\n args: [\n {\n name: \"amount\",\n type: \"u64\",\n },\n {\n name: \"tradeId\",\n type: {\n array: [\"u8\", 32],\n },\n },\n ],\n },\n {\n name: \"initIntent\",\n discriminator: [231, 255, 81, 23, 112, 148, 49, 134],\n accounts: [\n {\n name: \"maker\",\n signer: true,\n },\n {\n name: \"rentPayer\",\n writable: true,\n signer: true,\n },\n {\n name: \"state\",\n },\n {\n name: \"intentStorage\",\n writable: true,\n },\n {\n name: \"systemProgram\",\n address: \"11111111111111111111111111111111\",\n },\n {\n name: \"eventAuthority\",\n pda: {\n seeds: [\n {\n kind: \"const\",\n value: [\n 95, 95, 101, 118, 101, 110, 116, 95, 97, 117, 116, 104, 111,\n 114, 105, 116, 121,\n ],\n },\n ],\n },\n },\n {\n name: \"program\",\n },\n ],\n args: [\n {\n name: \"space\",\n type: \"u16\",\n },\n {\n name: \"reserved\",\n type: {\n array: [\"u8\", 2],\n },\n },\n {\n name: \"encodedIntentHash\",\n type: {\n defined: {\n name: \"encodedIntentHash\",\n },\n },\n },\n ],\n },\n {\n name: \"initIntentByDelegate\",\n discriminator: [85, 140, 35, 112, 240, 67, 16, 40],\n accounts: [\n {\n name: \"delegate\",\n signer: true,\n },\n {\n name: \"maker\",\n docs: [\"CHECK\"],\n },\n {\n name: \"makerInfo\",\n writable: true,\n pda: {\n seeds: [\n {\n kind: \"const\",\n value: [109, 97, 107, 101, 114, 95, 105, 110, 102, 111],\n },\n {\n kind: \"account\",\n path: \"maker\",\n },\n ],\n },\n },\n {\n name: \"rentPayer\",\n writable: true,\n signer: true,\n },\n {\n name: \"state\",\n },\n {\n name: \"intentStorage\",\n writable: true,\n },\n {\n name: \"systemProgram\",\n address: \"11111111111111111111111111111111\",\n },\n {\n name: \"eventAuthority\",\n pda: {\n seeds: [\n {\n kind: \"const\",\n value: [\n 95, 95, 101, 118, 101, 110, 116, 95, 97, 117, 116, 104, 111,\n 114, 105, 116, 121,\n ],\n },\n ],\n },\n },\n {\n name: \"program\",\n },\n ],\n args: [\n {\n name: \"space\",\n type: \"u16\",\n },\n {\n name: \"reserved\",\n type: {\n array: [\"u8\", 2],\n },\n },\n {\n name: \"encodedIntentHash\",\n type: {\n defined: {\n name: \"encodedIntentHash\",\n },\n },\n },\n ],\n },\n {\n name: \"initIntentByDelegateUsingSig\",\n discriminator: [113, 25, 150, 248, 204, 41, 36, 34],\n accounts: [\n {\n name: \"delegate\",\n docs: [\"CHECK\"],\n },\n {\n name: \"maker\",\n docs: [\"CHECK\"],\n },\n {\n name: \"makerInfo\",\n pda: {\n seeds: [\n {\n kind: \"const\",\n value: [109, 97, 107, 101, 114, 95, 105, 110, 102, 111],\n },\n {\n kind: \"account\",\n path: \"maker\",\n },\n ],\n },\n },\n {\n name: \"rentPayer\",\n writable: true,\n signer: true,\n },\n {\n name: \"state\",\n },\n {\n name: \"intentStorage\",\n writable: true,\n },\n {\n name: \"systemProgram\",\n address: \"11111111111111111111111111111111\",\n },\n {\n name: \"eventAuthority\",\n pda: {\n seeds: [\n {\n kind: \"const\",\n value: [\n 95, 95, 101, 118, 101, 110, 116, 95, 97, 117, 116, 104, 111,\n 114, 105, 116, 121,\n ],\n },\n ],\n },\n },\n {\n name: \"program\",\n },\n ],\n args: [\n {\n name: \"space\",\n type: \"u16\",\n },\n {\n name: \"signatureType\",\n type: {\n defined: {\n name: \"signatureType\",\n },\n },\n },\n {\n name: \"reserved\",\n type: \"u8\",\n },\n {\n name: \"encodedIntentHash\",\n type: {\n defined: {\n name: \"encodedIntentHash\",\n },\n },\n },\n {\n name: \"signature\",\n type: {\n array: [\"u8\", 64],\n },\n },\n ],\n },\n {\n name: \"initIntentUsingSig\",\n discriminator: [163, 186, 238, 179, 190, 181, 19, 185],\n accounts: [\n {\n name: \"maker\",\n docs: [\"CHECK\"],\n },\n {\n name: \"rentPayer\",\n writable: true,\n signer: true,\n },\n {\n name: \"state\",\n },\n {\n name: \"intentStorage\",\n writable: true,\n },\n {\n name: \"systemProgram\",\n address: \"11111111111111111111111111111111\",\n },\n {\n name: \"eventAuthority\",\n pda: {\n seeds: [\n {\n kind: \"const\",\n value: [\n 95, 95, 101, 118, 101, 110, 116, 95, 97, 117, 116, 104, 111,\n 114, 105, 116, 121,\n ],\n },\n ],\n },\n },\n {\n name: \"program\",\n },\n ],\n args: [\n {\n name: \"space\",\n type: \"u16\",\n },\n {\n name: \"signatureType\",\n type: {\n defined: {\n name: \"signatureType\",\n },\n },\n },\n {\n name: \"reserved\",\n type: \"u8\",\n },\n {\n name: \"encodedIntentHash\",\n type: {\n defined: {\n name: \"encodedIntentHash\",\n },\n },\n },\n {\n name: \"signature\",\n type: {\n array: [\"u8\", 64],\n },\n },\n ],\n },\n {\n name: \"initState\",\n discriminator: [124, 213, 73, 136, 80, 37, 141, 54],\n accounts: [\n {\n name: \"protocolAuthority\",\n signer: true,\n },\n {\n name: \"programAuthority\",\n signer: true,\n address: \"intV2u5xDE8T2ZMFP3W3X6sVqGHBT7zvYtTW3rRLmvE\",\n },\n {\n name: \"rentPayer\",\n writable: true,\n signer: true,\n },\n {\n name: \"state\",\n writable: true,\n pda: {\n seeds: [\n {\n kind: \"const\",\n value: [115, 116, 97, 116, 101],\n },\n ],\n },\n },\n {\n name: \"systemProgram\",\n address: \"11111111111111111111111111111111\",\n },\n ],\n args: [],\n },\n {\n name: \"reallocState\",\n discriminator: [67, 181, 233, 214, 215, 148, 245, 126],\n accounts: [\n {\n name: \"inner\",\n accounts: [\n {\n name: \"protocolAuthority\",\n signer: true,\n relations: [\"state\"],\n },\n {\n name: \"state\",\n writable: true,\n pda: {\n seeds: [\n {\n kind: \"const\",\n value: [115, 116, 97, 116, 101],\n },\n ],\n },\n },\n ],\n },\n {\n name: \"rentPayer\",\n writable: true,\n signer: true,\n },\n {\n name: \"systemProgram\",\n address: \"11111111111111111111111111111111\",\n },\n ],\n args: [\n {\n name: \"newSpace\",\n type: \"u32\",\n },\n ],\n },\n {\n name: \"setCancelUntilTimestamp\",\n discriminator: [206, 248, 194, 176, 4, 206, 30, 228],\n accounts: [\n {\n name: \"inner\",\n accounts: [\n {\n name: \"protocolAuthority\",\n signer: true,\n relations: [\"state\"],\n },\n {\n name: \"state\",\n writable: true,\n pda: {\n seeds: [\n {\n kind: \"const\",\n value: [115, 116, 97, 116, 101],\n },\n ],\n },\n },\n ],\n },\n ],\n args: [\n {\n name: \"cancelUntilTimestamp\",\n type: \"u64\",\n },\n ],\n },\n {\n name: \"setDefaultFee\",\n discriminator: [150, 137, 197, 111, 176, 227, 201, 110],\n accounts: [\n {\n name: \"inner\",\n accounts: [\n {\n name: \"protocolAuthority\",\n signer: true,\n relations: [\"state\"],\n },\n {\n name: \"state\",\n writable: true,\n pda: {\n seeds: [\n {\n kind: \"const\",\n value: [115, 116, 97, 116, 101],\n },\n ],\n },\n },\n ],\n },\n {\n name: \"eventAuthority\",\n pda: {\n seeds: [\n {\n kind: \"const\",\n value: [\n 95, 95, 101, 118, 101, 110, 116, 95, 97, 117, 116, 104, 111,\n 114, 105, 116, 121,\n ],\n },\n ],\n },\n },\n {\n name: \"program\",\n },\n ],\n args: [\n {\n name: \"defaultFeeBps\",\n type: \"u32\",\n },\n ],\n },\n {\n name: \"setDelegateApprovedBudgets\",\n discriminator: [82, 182, 181, 250, 30, 186, 95, 15],\n accounts: [\n {\n name: \"maker\",\n signer: true,\n },\n {\n name: \"delegate\",\n },\n {\n name: \"rentPayer\",\n writable: true,\n signer: true,\n },\n {\n name: \"makerInfo\",\n writable: true,\n pda: {\n seeds: [\n {\n kind: \"const\",\n value: [109, 97, 107, 101, 114, 95, 105, 110, 102, 111],\n },\n {\n kind: \"account\",\n path: \"maker\",\n },\n ],\n },\n },\n {\n name: \"state\",\n },\n {\n name: \"systemProgram\",\n address: \"11111111111111111111111111111111\",\n },\n ],\n args: [\n {\n name: \"nonce\",\n type: \"u64\",\n },\n {\n name: \"approvedTokenBudgets\",\n type: {\n defined: {\n name: \"setApprovedTokenBudgets\",\n },\n },\n },\n ],\n },\n {\n name: \"setDelegateApprovedBudgetsUsingSig\",\n discriminator: [26, 11, 76, 149, 162, 38, 128, 0],\n accounts: [\n {\n name: \"maker\",\n },\n {\n name: \"delegate\",\n },\n {\n name: \"rentPayer\",\n writable: true,\n signer: true,\n },\n {\n name: \"makerInfo\",\n writable: true,\n pda: {\n seeds: [\n {\n kind: \"const\",\n value: [109, 97, 107, 101, 114, 95, 105, 110, 102, 111],\n },\n {\n kind: \"account\",\n path: \"maker\",\n },\n ],\n },\n },\n {\n name: \"state\",\n },\n {\n name: \"systemProgram\",\n address: \"11111111111111111111111111111111\",\n },\n ],\n args: [\n {\n name: \"nonce\",\n type: \"u64\",\n },\n {\n name: \"encodedApprovedTokenBudgets\",\n type: \"bytes\",\n },\n {\n name: \"signature\",\n type: {\n array: [\"u8\", 64],\n },\n },\n ],\n },\n {\n name: \"setFeeCollector\",\n discriminator: [143, 46, 10, 113, 121, 157, 245, 166],\n accounts: [\n {\n name: \"inner\",\n accounts: [\n {\n name: \"protocolAuthority\",\n signer: true,\n relations: [\"state\"],\n },\n {\n name: \"state\",\n writable: true,\n pda: {\n seeds: [\n {\n kind: \"const\",\n value: [115, 116, 97, 116, 101],\n },\n ],\n },\n },\n ],\n },\n ],\n args: [\n {\n name: \"feeCollector\",\n type: \"pubkey\",\n },\n ],\n },\n {\n name: \"setMakerCancelUntilTimestamp\",\n discriminator: [144, 42, 186, 107, 205, 215, 55, 229],\n accounts: [\n {\n name: \"maker\",\n signer: true,\n },\n {\n name: \"rentPayer\",\n writable: true,\n signer: true,\n },\n {\n name: \"makerInfo\",\n writable: true,\n pda: {\n seeds: [\n {\n kind: \"const\",\n value: [109, 97, 107, 101, 114, 95, 105, 110, 102, 111],\n },\n {\n kind: \"account\",\n path: \"maker\",\n },\n ],\n },\n },\n {\n name: \"state\",\n },\n {\n name: \"systemProgram\",\n address: \"11111111111111111111111111111111\",\n },\n ],\n args: [\n {\n name: \"cancelUntilTimestamp\",\n type: \"u64\",\n },\n ],\n },\n {\n name: \"setPause\",\n discriminator: [63, 32, 154, 2, 56, 103, 79, 45],\n accounts: [\n {\n name: \"inner\",\n accounts: [\n {\n name: \"protocolAuthority\",\n signer: true,\n relations: [\"state\"],\n },\n {\n name: \"state\",\n writable: true,\n pda: {\n seeds: [\n {\n kind: \"const\",\n value: [115, 116, 97, 116, 101],\n },\n ],\n },\n },\n ],\n },\n ],\n args: [\n {\n name: \"pauseFlag\",\n type: \"bool\",\n },\n ],\n },\n {\n name: \"setProtocolAuthority\",\n discriminator: [96, 162, 46, 152, 72, 147, 175, 176],\n accounts: [\n {\n name: \"inner\",\n accounts: [\n {\n name: \"protocolAuthority\",\n signer: true,\n relations: [\"state\"],\n },\n {\n name: \"state\",\n writable: true,\n pda: {\n seeds: [\n {\n kind: \"const\",\n value: [115, 116, 97, 116, 101],\n },\n ],\n },\n },\n ],\n },\n {\n name: \"newProtocolAuthority\",\n signer: true,\n },\n ],\n args: [],\n },\n {\n name: \"swapBegin\",\n discriminator: [87, 236, 193, 120, 215, 245, 9, 37],\n accounts: [\n {\n name: \"taker\",\n writable: true,\n signer: true,\n },\n {\n name: \"state\",\n pda: {\n seeds: [\n {\n kind: \"const\",\n value: [115, 116, 97, 116, 101],\n },\n ],\n },\n },\n {\n name: \"maker\",\n relations: [\"intentStorage\"],\n },\n {\n name: \"makerInfo\",\n writable: true,\n pda: {\n seeds: [\n {\n kind: \"const\",\n value: [109, 97, 107, 101, 114, 95, 105, 110, 102, 111],\n },\n {\n kind: \"account\",\n path: \"maker\",\n },\n ],\n },\n },\n {\n name: \"intentStorage\",\n writable: true,\n },\n {\n name: \"inputMint\",\n },\n {\n name: \"outputMint\",\n },\n {\n name: \"makerInputToken\",\n writable: true,\n pda: {\n seeds: [\n {\n kind: \"account\",\n path: \"maker\",\n },\n {\n kind: \"account\",\n path: \"inputTokenProgram\",\n },\n {\n kind: \"account\",\n path: \"inputMint\",\n },\n ],\n program: {\n kind: \"const\",\n value: [\n 140, 151, 37, 143, 78, 36, 137, 241, 187, 61, 16, 41, 20, 142,\n 13, 131, 11, 90, 19, 153, 218, 255, 16, 132, 4, 142, 123, 216,\n 219, 233, 248, 89,\n ],\n },\n },\n },\n {\n name: \"takerInputToken\",\n writable: true,\n pda: {\n seeds: [\n {\n kind: \"account\",\n path: \"taker\",\n },\n {\n kind: \"account\",\n path: \"inputTokenProgram\",\n },\n {\n kind: \"account\",\n path: \"inputMint\",\n },\n ],\n program: {\n kind: \"const\",\n value: [\n 140, 151, 37, 143, 78, 36, 137, 241, 187, 61, 16, 41, 20, 142,\n 13, 131, 11, 90, 19, 153, 218, 255, 16, 132, 4, 142, 123, 216,\n 219, 233, 248, 89,\n ],\n },\n },\n },\n {\n name: \"takerOutputToken\",\n writable: true,\n pda: {\n seeds: [\n {\n kind: \"account\",\n path: \"taker\",\n },\n {\n kind: \"account\",\n path: \"outputTokenProgram\",\n },\n {\n kind: \"account\",\n path: \"outputMint\",\n },\n ],\n program: {\n kind: \"const\",\n value: [\n 140, 151, 37, 143, 78, 36, 137, 241, 187, 61, 16, 41, 20, 142,\n 13, 131, 11, 90, 19, 153, 218, 255, 16, 132, 4, 142, 123, 216,\n 219, 233, 248, 89,\n ],\n },\n },\n },\n {\n name: \"intentOutputToken\",\n writable: true,\n },\n {\n name: \"instructions\",\n address: \"Sysvar1nstructions1111111111111111111111111\",\n },\n {\n name: \"systemProgram\",\n address: \"11111111111111111111111111111111\",\n },\n {\n name: \"inputTokenProgram\",\n },\n {\n name: \"outputTokenProgram\",\n },\n {\n name: \"associatedTokenProgram\",\n address: \"ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL\",\n },\n {\n name: \"eventAuthority\",\n pda: {\n seeds: [\n {\n kind: \"const\",\n value: [\n 95, 95, 101, 118, 101, 110, 116, 95, 97, 117, 116, 104, 111,\n 114, 105, 116, 121,\n ],\n },\n ],\n },\n },\n {\n name: \"program\",\n },\n ],\n args: [\n {\n name: \"amount\",\n type: \"u64\",\n },\n {\n name: \"target\",\n type: {\n defined: {\n name: \"targetTokenAccount\",\n },\n },\n },\n {\n name: \"tradeId\",\n type: {\n array: [\"u8\", 32],\n },\n },\n ],\n },\n {\n name: \"swapEnd\",\n discriminator: [75, 178, 142, 132, 50, 126, 38, 31],\n accounts: [\n {\n name: \"taker\",\n writable: true,\n signer: true,\n },\n {\n name: \"state\",\n pda: {\n seeds: [\n {\n kind: \"const\",\n value: [115, 116, 97, 116, 101],\n },\n ],\n },\n },\n {\n name: \"intentStorage\",\n writable: true,\n },\n {\n name: \"inputMint\",\n },\n {\n name: \"outputMint\",\n },\n {\n name: \"takerOutputToken\",\n writable: true,\n pda: {\n seeds: [\n {\n kind: \"account\",\n path: \"taker\",\n },\n {\n kind: \"account\",\n path: \"outputTokenProgram\",\n },\n {\n kind: \"account\",\n path: \"outputMint\",\n },\n ],\n program: {\n kind: \"const\",\n value: [\n 140, 151, 37, 143, 78, 36, 137, 241, 187, 61, 16, 41, 20, 142,\n 13, 131, 11, 90, 19, 153, 218, 255, 16, 132, 4, 142, 123, 216,\n 219, 233, 248, 89,\n ],\n },\n },\n },\n {\n name: \"intentOutputToken\",\n writable: true,\n pda: {\n seeds: [\n {\n kind: \"account\",\n path: \"intentStorage\",\n },\n {\n kind: \"account\",\n path: \"outputTokenProgram\",\n },\n {\n kind: \"account\",\n path: \"outputMint\",\n },\n ],\n program: {\n kind: \"const\",\n value: [\n 140, 151, 37, 143, 78, 36, 137, 241, 187, 61, 16, 41, 20, 142,\n 13, 131, 11, 90, 19, 153, 218, 255, 16, 132, 4, 142, 123, 216,\n 219, 233, 248, 89,\n ],\n },\n },\n },\n {\n name: \"instructions\",\n address: \"Sysvar1nstructions1111111111111111111111111\",\n },\n {\n name: \"systemProgram\",\n address: \"11111111111111111111111111111111\",\n },\n {\n name: \"outputTokenProgram\",\n },\n {\n name: \"associatedTokenProgram\",\n address: \"ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL\",\n },\n {\n name: \"eventAuthority\",\n pda: {\n seeds: [\n {\n kind: \"const\",\n value: [\n 95, 95, 101, 118, 101, 110, 116, 95, 97, 117, 116, 104, 111,\n 114, 105, 116, 121,\n ],\n },\n ],\n },\n },\n {\n name: \"program\",\n },\n ],\n args: [\n {\n name: \"expectedOutputTokenAmount\",\n type: \"u64\",\n },\n {\n name: \"takerSurplusShareBps\",\n type: \"u32\",\n },\n ],\n },\n {\n name: \"updateIntent\",\n discriminator: [214, 203, 249, 158, 90, 27, 54, 17],\n accounts: [\n {\n name: \"rentPayer\",\n writable: true,\n signer: true,\n },\n {\n name: \"state\",\n },\n {\n name: \"intentStorage\",\n writable: true,\n },\n {\n name: \"systemProgram\",\n address: \"11111111111111111111111111111111\",\n },\n {\n name: \"buffer\",\n optional: true,\n },\n {\n name: \"eventAuthority\",\n pda: {\n seeds: [\n {\n kind: \"const\",\n value: [\n 95, 95, 101, 118, 101, 110, 116, 95, 97, 117, 116, 104, 111,\n 114, 105, 116, 121,\n ],\n },\n ],\n },\n },\n {\n name: \"program\",\n },\n ],\n args: [\n {\n name: \"dataOrigin\",\n type: {\n defined: {\n name: \"dataOrigin\",\n },\n },\n },\n ],\n },\n {\n name: \"withdrawIntentTokenAccount\",\n discriminator: [188, 114, 123, 239, 223, 164, 242, 101],\n accounts: [\n {\n name: \"state\",\n },\n {\n name: \"maker\",\n docs: [\"CHECK\"],\n },\n {\n name: \"intentStorage\",\n },\n {\n name: \"intentTokenAccount\",\n writable: true,\n pda: {\n seeds: [\n {\n kind: \"account\",\n path: \"intentStorage\",\n },\n {\n kind: \"account\",\n path: \"tokenProgram\",\n },\n {\n kind: \"account\",\n path: \"tokenMint\",\n },\n ],\n program: {\n kind: \"const\",\n value: [\n 140, 151, 37, 143, 78, 36, 137, 241, 187, 61, 16, 41, 20, 142,\n 13, 131, 11, 90, 19, 153, 218, 255, 16, 132, 4, 142, 123, 216,\n 219, 233, 248, 89,\n ],\n },\n },\n },\n {\n name: \"makerTokenAccount\",\n writable: true,\n pda: {\n seeds: [\n {\n kind: \"account\",\n path: \"maker\",\n },\n {\n kind: \"account\",\n path: \"tokenProgram\",\n },\n {\n kind: \"account\",\n path: \"tokenMint\",\n },\n ],\n program: {\n kind: \"const\",\n value: [\n 140, 151, 37, 143, 78, 36, 137, 241, 187, 61, 16, 41, 20, 142,\n 13, 131, 11, 90, 19, 153, 218, 255, 16, 132, 4, 142, 123, 216,\n 219, 233, 248, 89,\n ],\n },\n },\n },\n {\n name: \"rentReceiver\",\n writable: true,\n },\n {\n name: \"tokenMint\",\n },\n {\n name: \"tokenProgram\",\n },\n {\n name: \"associatedTokenProgram\",\n address: \"ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL\",\n },\n ],\n args: [\n {\n name: \"encodedIntentHash\",\n type: {\n option: {\n defined: {\n name: \"encodedIntentHash\",\n },\n },\n },\n },\n ],\n },\n ],\n accounts: [\n {\n name: \"intentStorage\",\n discriminator: [175, 239, 93, 146, 246, 119, 144, 249],\n },\n {\n name: \"makerInfo\",\n discriminator: [164, 184, 52, 218, 144, 52, 100, 40],\n },\n {\n name: \"state\",\n discriminator: [216, 146, 107, 94, 104, 75, 182, 177],\n },\n ],\n events: [\n {\n name: \"closedIntent\",\n discriminator: [197, 62, 20, 42, 191, 176, 242, 94],\n },\n {\n name: \"fulfilled\",\n discriminator: [210, 174, 131, 213, 40, 182, 83, 110],\n },\n {\n name: \"fulfilledDln\",\n discriminator: [42, 231, 52, 35, 155, 251, 144, 108],\n },\n {\n name: \"intentBudgetSpent\",\n discriminator: [106, 148, 20, 168, 115, 89, 145, 56],\n },\n {\n name: \"newIntent\",\n discriminator: [101, 118, 73, 187, 15, 74, 57, 97],\n },\n {\n name: \"sealedIntent\",\n discriminator: [28, 191, 234, 161, 83, 32, 138, 137],\n },\n {\n name: \"swapped\",\n discriminator: [217, 52, 52, 83, 147, 135, 96, 109],\n },\n ],\n errors: [\n {\n code: 6160,\n name: \"invalidArgument\",\n },\n {\n code: 6170,\n name: \"invalidAmount\",\n },\n {\n code: 6172,\n name: \"malformedRemainingAccounts\",\n },\n {\n code: 16782961,\n name: \"protocolPaused\",\n },\n {\n code: 16782979,\n name: \"timeParadox\",\n },\n {\n code: 6234,\n name: \"unknownCaller\",\n },\n {\n code: 6236,\n name: \"unknownCancelAuthority\",\n },\n {\n code: 6079,\n name: \"signatureVerificationFailed\",\n },\n {\n code: 6085,\n name: \"intentIdMiscalculated\",\n },\n {\n code: 6086,\n name: \"intentFromAnotherChain\",\n },\n {\n code: 6087,\n name: \"intentSameChainOnly\",\n },\n {\n code: 6088,\n name: \"intentInconsistentInputTokens\",\n },\n {\n code: 6089,\n name: \"intentInconsistentGiveTokens\",\n },\n {\n code: 6096,\n name: \"intentInconsistentTakeTokens\",\n },\n {\n code: 6097,\n name: \"intentInconsitentReceivers\",\n },\n {\n code: 6098,\n name: \"intentInconsitentDstAuthorities\",\n },\n {\n code: 6275,\n name: \"intentStorageAlreadyInitialized\",\n },\n {\n code: 6276,\n name: \"intentHashMismatch\",\n },\n {\n code: 6277,\n name: \"intentStorageSealed\",\n },\n {\n code: 6278,\n name: \"missedBufferAccount\",\n },\n {\n code: 6288,\n name: \"intentNotReady\",\n },\n {\n code: 6289,\n name: \"intentCancelled\",\n },\n {\n code: 6290,\n name: \"intentExpired\",\n },\n {\n code: 6291,\n name: \"intentInvalidatedByUser\",\n },\n {\n code: 6292,\n name: \"intentInvalidatedByProtocolAuthority\",\n },\n {\n code: 6293,\n name: \"expectedClosedIntent\",\n },\n {\n code: 6294,\n name: \"expectedCancelledIntent\",\n },\n {\n code: 9664,\n name: \"tokenAccountMissingProtocolDelegate\",\n },\n {\n code: 9665,\n name: \"unknownInputToken\",\n },\n {\n code: 9666,\n name: \"inputTokenAmountOutOfRange\",\n },\n {\n code: 9667,\n name: \"inputTokenAmountExceedsBudget\",\n },\n {\n code: 9668,\n name: \"swapOutputAmountLessThanExpected\",\n },\n {\n code: 9680,\n name: \"takerNotAllowed\",\n },\n {\n code: 9681,\n name: \"unknownRoute\",\n },\n {\n code: 9682,\n name: \"priceViolation\",\n },\n {\n code: 9683,\n name: \"invalidReceiver\",\n },\n {\n code: 9684,\n name: \"readonlyReceiver\",\n },\n {\n code: 6101,\n name: \"missedNativeUnwrapFlag\",\n },\n {\n code: 9793,\n name: \"invalidDlnOrderTakeAmount\",\n },\n {\n code: 9794,\n name: \"invalidDlnDstReceiver\",\n },\n {\n code: 9802,\n name: \"invalidDlnDstOrderAuthority\",\n },\n {\n code: 9803,\n name: \"invalidDlnDstAllowedTaker\",\n },\n {\n code: 9804,\n name: \"invalidDlnSrcAllowedCancelBeneficiary\",\n },\n {\n code: 9805,\n name: \"invalidDlnMetadata\",\n },\n {\n code: 9806,\n name: \"invalidDlnExtcallHash\",\n },\n {\n code: 9788,\n name: \"cantBeClosed\",\n },\n {\n code: 9787,\n name: \"invalidTokenAccountRentReceiver\",\n },\n {\n code: 9839,\n name: \"intentArbitraryDataOverflow\",\n },\n {\n code: 8832,\n name: \"takerMustBeFixedWhenExtcallAllowed\",\n },\n {\n code: 8833,\n name: \"ambiguousReceivers\",\n },\n {\n code: 9600,\n name: \"interactionAccountNotFound\",\n },\n {\n code: 9601,\n name: \"interactionProgramNotFound\",\n },\n {\n code: 6239,\n name: \"interactionFixedAccountNotFound\",\n },\n {\n code: 9536,\n name: \"unknownDelegate\",\n },\n {\n code: 9537,\n name: \"delegateNonceMismatchNext\",\n },\n {\n code: 9546,\n name: \"delegateHasNoApproval\",\n },\n {\n code: 9547,\n name: \"delegateExceedsApprovedBudget\",\n },\n {\n code: 9550,\n name: \"delegateApprovalExpired\",\n },\n {\n code: 9551,\n name: \"delegateRevoked\",\n },\n {\n code: 16767137,\n name: \"crossProgramInvokeRestricted\",\n },\n {\n code: 16770159,\n name: \"crossProgramInvokeHasIntentsProgramAccount\",\n },\n ],\n types: [\n {\n name: \"address\",\n type: {\n kind: \"type\",\n alias: {\n vec: \"u8\",\n },\n },\n },\n {\n name: \"approvedTokenBudget\",\n type: {\n kind: \"struct\",\n fields: [\n {\n name: \"tokenMint\",\n type: \"pubkey\",\n },\n {\n name: \"approvedAmount\",\n type: \"u64\",\n },\n {\n name: \"expiration\",\n type: \"u64\",\n },\n ],\n },\n },\n {\n name: \"closedIntent\",\n type: {\n kind: \"struct\",\n fields: [\n {\n name: \"status\",\n type: {\n defined: {\n name: \"closedIntentStatus\",\n },\n },\n },\n ],\n },\n },\n {\n name: \"closedIntentStatus\",\n repr: {\n kind: \"rust\",\n },\n type: {\n kind: \"enum\",\n variants: [\n {\n name: \"wiped\",\n },\n {\n name: \"terminated\",\n },\n ],\n },\n },\n {\n name: \"createOrderArgs\",\n docs: [\"Structure for forming a new order\"],\n type: {\n kind: \"struct\",\n fields: [\n {\n name: \"giveOriginalAmount\",\n docs: [\n \"Input amount for `create order` call, that will be transferred from the user's wallet.\",\n \"The dln commissions will be deducted from it and the resulting value will be used as [`Order::give.amount`]\",\n ],\n type: \"u64\",\n },\n {\n name: \"take\",\n docs: [\"Offer to take in destination chain\"],\n type: {\n defined: {\n name: \"offer\",\n },\n },\n },\n {\n name: \"receiverDst\",\n docs: [\n \"Address in dst chain\",\n \"Address of receiver_dst of tokens in target chain\",\n \"or\",\n \"address of external call executor if `external_call` presented\",\n ],\n type: {\n defined: {\n name: \"address\",\n },\n },\n },\n {\n name: \"extcall\",\n docs: [\n \"External call for automatically execution in target chain after execution of order\",\n ],\n type: {\n option: \"bytes\",\n },\n },\n {\n name: \"givePatchAuthoritySrc\",\n docs: [\n \"Address in source chain\",\n \"Can call `patch_order_give` method of src program\",\n ],\n type: \"pubkey\",\n },\n {\n name: \"allowedCancelBeneficiarySrc\",\n docs: [\n \"Address in source chain\",\n \"If the field is `Some`, then only this address can receive cancel\",\n ],\n type: {\n option: \"pubkey\",\n },\n },\n {\n name: \"orderAuthorityAddressDst\",\n docs: [\n \"Address in destination chain\",\n \"Can `send_order_cancel`, `process_fallback` and `patch_order_take`\",\n ],\n type: {\n defined: {\n name: \"address\",\n },\n },\n },\n {\n name: \"allowedTakerDst\",\n docs: [\n \"Address in destination chain\",\n \"If the field is `Some`, then only this address can call `fulfill_order` with this\",\n \"order\",\n ],\n type: {\n option: {\n defined: {\n name: \"address\",\n },\n },\n },\n },\n ],\n },\n },\n {\n name: \"currentTokenBudget\",\n type: {\n kind: \"struct\",\n fields: [\n {\n name: \"tokenMint\",\n type: \"pubkey\",\n },\n {\n name: \"approvedAmount\",\n type: \"u64\",\n },\n {\n name: \"expiration\",\n type: \"u64\",\n },\n {\n name: \"remainingAmount\",\n type: \"u64\",\n },\n ],\n },\n },\n {\n name: \"dataOrigin\",\n type: {\n kind: \"enum\",\n variants: [\n {\n name: \"instruction\",\n fields: [\"bytes\"],\n },\n {\n name: \"buffer\",\n fields: [\n {\n name: \"offset\",\n type: \"u32\",\n },\n {\n name: \"length\",\n type: \"u32\",\n },\n ],\n },\n ],\n },\n },\n {\n name: \"delegateBudgets\",\n type: {\n kind: \"enum\",\n variants: [\n {\n name: \"any\",\n },\n {\n name: \"perToken\",\n fields: [\n {\n vec: {\n defined: {\n name: \"currentTokenBudget\",\n },\n },\n },\n ],\n },\n {\n name: \"revoked\",\n },\n ],\n },\n },\n {\n name: \"delegateInfo\",\n type: {\n kind: \"struct\",\n fields: [\n {\n name: \"delegate\",\n type: \"pubkey\",\n },\n {\n name: \"nonce\",\n type: \"u64\",\n },\n {\n name: \"budgets\",\n type: {\n defined: {\n name: \"delegateBudgets\",\n },\n },\n },\n ],\n },\n },\n {\n name: \"encodedIntentHash\",\n type: {\n kind: \"struct\",\n fields: [\n {\n array: [\"u8\", 32],\n },\n ],\n },\n },\n {\n name: \"fulfilled\",\n type: {\n kind: \"struct\",\n fields: [\n {\n name: \"intentId\",\n type: {\n defined: {\n name: \"intentId\",\n },\n },\n },\n {\n name: \"tradeId\",\n type: {\n array: [\"u8\", 32],\n },\n },\n {\n name: \"executionMetadata\",\n type: {\n option: \"bytes\",\n },\n },\n {\n name: \"takeToken\",\n type: \"pubkey\",\n },\n {\n name: \"takeTokenAmount\",\n type: \"u64\",\n },\n {\n name: \"takeTokenFeeAmount\",\n type: \"u64\",\n },\n ],\n },\n },\n {\n name: \"fulfilledDln\",\n type: {\n kind: \"struct\",\n fields: [\n {\n name: \"intentId\",\n type: {\n defined: {\n name: \"intentId\",\n },\n },\n },\n {\n name: \"executionMetadata\",\n type: {\n option: \"bytes\",\n },\n },\n {\n name: \"tradeId\",\n type: {\n array: [\"u8\", 32],\n },\n },\n {\n name: \"orderId\",\n type: {\n defined: {\n name: \"u256\",\n },\n },\n },\n {\n name: \"giveTokenFeeAmount\",\n type: \"u64\",\n },\n ],\n },\n },\n {\n name: \"intentBudget\",\n type: {\n kind: \"struct\",\n fields: [\n {\n name: \"mintIndex\",\n type: \"u8\",\n },\n {\n name: \"remainingAmount\",\n type: \"u64\",\n },\n ],\n },\n },\n {\n name: \"intentBudgetSpent\",\n type: {\n kind: \"struct\",\n fields: [\n {\n name: \"intentId\",\n type: {\n defined: {\n name: \"intentId\",\n },\n },\n },\n {\n name: \"tradeId\",\n type: {\n array: [\"u8\", 32],\n },\n },\n {\n name: \"executionMetadata\",\n type: {\n option: \"bytes\",\n },\n },\n {\n name: \"inputToken\",\n type: \"pubkey\",\n },\n {\n name: \"inputTokenSpentAmount\",\n type: \"u64\",\n },\n ],\n },\n },\n {\n name: \"intentBudgets\",\n type: {\n kind: \"struct\",\n fields: [\n {\n vec: {\n defined: {\n name: \"intentBudget\",\n },\n },\n },\n ],\n },\n },\n {\n name: \"intentId\",\n type: {\n kind: \"struct\",\n fields: [\n {\n array: [\"u8\", 32],\n },\n ],\n },\n },\n {\n name: \"intentStorage\",\n type: {\n kind: \"struct\",\n fields: [\n {\n name: \"maker\",\n type: \"pubkey\",\n },\n {\n name: \"delegate\",\n type: {\n option: \"pubkey\",\n },\n },\n {\n name: \"rentPayer\",\n type: \"pubkey\",\n },\n {\n name: \"arbitraryData\",\n type: {\n array: [\"u8\", 100],\n },\n },\n {\n name: \"encodedIntentHash\",\n type: {\n defined: {\n name: \"encodedIntentHash\",\n },\n },\n },\n {\n name: \"version\",\n type: \"u8\",\n },\n {\n name: \"storedIntent\",\n type: {\n defined: {\n name: \"storedIntent\",\n },\n },\n },\n {\n name: \"bump\",\n type: \"u8\",\n },\n ],\n },\n },\n {\n name: \"makerInfo\",\n type: {\n kind: \"struct\",\n fields: [\n {\n name: \"cancelUntilTimestamp\",\n type: \"u64\",\n },\n {\n name: \"delegates\",\n type: {\n vec: {\n defined: {\n name: \"delegateInfo\",\n },\n },\n },\n },\n ],\n },\n },\n {\n name: \"newIntent\",\n type: {\n kind: \"struct\",\n fields: [\n {\n name: \"intentId\",\n type: {\n defined: {\n name: \"intentId\",\n },\n },\n },\n ],\n },\n },\n {\n name: \"offer\",\n type: {\n kind: \"struct\",\n fields: [\n {\n name: \"chainId\",\n type: {\n defined: {\n name: \"u256\",\n },\n },\n },\n {\n name: \"tokenAddress\",\n type: {\n defined: {\n name: \"address\",\n },\n },\n },\n {\n name: \"amount\",\n type: {\n defined: {\n name: \"u256\",\n },\n },\n },\n ],\n },\n },\n {\n name: \"sealedIntent\",\n type: {\n kind: \"struct\",\n fields: [\n {\n name: \"intentId\",\n type: {\n defined: {\n name: \"intentId\",\n },\n },\n },\n {\n name: \"encodedIntent\",\n type: \"bytes\",\n },\n ],\n },\n },\n {\n name: \"setApprovedTokenBudgets\",\n type: {\n kind: \"enum\",\n variants: [\n {\n name: \"set\",\n fields: [\n {\n vec: {\n defined: {\n name: \"approvedTokenBudget\",\n },\n },\n },\n ],\n },\n {\n name: \"setAny\",\n },\n {\n name: \"revoke\",\n },\n ],\n },\n },\n {\n name: \"signatureType\",\n repr: {\n kind: \"rust\",\n },\n type: {\n kind: \"enum\",\n variants: [\n {\n name: \"rawBytes\",\n },\n {\n name: \"hexString\",\n },\n ],\n },\n },\n {\n name: \"state\",\n type: {\n kind: \"struct\",\n fields: [\n {\n name: \"protocolAuthority\",\n type: \"pubkey\",\n },\n {\n name: \"feeCollector\",\n type: \"pubkey\",\n },\n {\n name: \"defaultFeeBps\",\n type: \"u32\",\n },\n {\n name: \"isPaused\",\n type: \"bool\",\n },\n {\n name: \"cancelUntilTimestamp\",\n type: \"u64\",\n },\n {\n name: \"bump\",\n type: \"u8\",\n },\n ],\n },\n },\n {\n name: \"storedIntent\",\n type: {\n kind: \"enum\",\n variants: [\n {\n name: \"uninitialized\",\n },\n {\n name: \"ready\",\n fields: [\n {\n name: \"encodedIntent\",\n type: \"bytes\",\n },\n {\n name: \"budgets\",\n type: {\n defined: {\n name: \"intentBudgets\",\n },\n },\n },\n ],\n },\n {\n name: \"cancelled\",\n fields: [\n {\n name: \"encodedIntent\",\n type: \"bytes\",\n },\n {\n name: \"budgets\",\n type: {\n defined: {\n name: \"intentBudgets\",\n },\n },\n },\n ],\n },\n ],\n },\n },\n {\n name: \"swapped\",\n type: {\n kind: \"struct\",\n fields: [\n {\n name: \"intentId\",\n type: {\n defined: {\n name: \"intentId\",\n },\n },\n },\n {\n name: \"tradeId\",\n type: {\n array: [\"u8\", 32],\n },\n },\n {\n name: \"executionMetadata\",\n type: {\n option: \"bytes\",\n },\n },\n {\n name: \"inputToken\",\n type: \"pubkey\",\n },\n {\n name: \"inputTokenAmount\",\n type: \"u64\",\n },\n {\n name: \"outputToken\",\n type: \"pubkey\",\n },\n {\n name: \"outputTokenAmount\",\n type: \"u64\",\n },\n {\n name: \"takerOutputTokenShareAmount\",\n type: \"u64\",\n },\n ],\n },\n },\n {\n name: \"targetTokenAccount\",\n type: {\n kind: \"enum\",\n variants: [\n {\n name: \"taker\",\n },\n {\n name: \"intent\",\n },\n ],\n },\n },\n {\n name: \"u256\",\n type: {\n kind: \"type\",\n alias: {\n array: [\"u8\", 32],\n },\n },\n },\n ],\n constants: [\n {\n name: \"budgetsSigPrefix\",\n type: \"bytes\",\n value: \"[98, 117, 100, 103, 101, 116, 115]\",\n },\n {\n name: \"clockDriftToleranceSecs\",\n type: \"u64\",\n value: \"300\",\n },\n {\n name: \"defaultFeeBps\",\n type: \"u32\",\n value: \"8\",\n },\n {\n name: \"intentsProgramSigPrefix\",\n type: \"bytes\",\n value:\n \"[105, 110, 116, 101, 110, 116, 115, 95, 112, 114, 111, 103, 114, 97, 109, 95, 104, 97, 110, 111, 105]\",\n },\n {\n name: \"intentIdHashPrefix\",\n docs: [\n \"Used **only** as sub-seed for [IntentId][`crate::types::IntentId`]\",\n ],\n type: \"bytes\",\n value: \"[105, 110, 116, 101, 110, 116, 95, 105, 100]\",\n },\n {\n name: \"intentSigPrefix\",\n type: \"bytes\",\n value: \"[105, 110, 116, 101, 110, 116, 115]\",\n },\n {\n name: \"intentStorageBaseSeed\",\n type: \"bytes\",\n value:\n \"[105, 110, 116, 101, 110, 116, 95, 115, 116, 111, 114, 97, 103, 101]\",\n },\n {\n name: \"interactionCallAuthority\",\n type: \"bytes\",\n value:\n \"[105, 110, 116, 101, 114, 97, 99, 116, 105, 111, 110, 95, 97, 117, 116, 104, 111, 114, 105, 116, 121]\",\n },\n {\n name: \"makerInfoSeed\",\n type: \"bytes\",\n value: \"[109, 97, 107, 101, 114, 95, 105, 110, 102, 111]\",\n },\n {\n name: \"stateSeed\",\n type: \"bytes\",\n value: \"[115, 116, 97, 116, 101]\",\n },\n {\n name: \"unwrapNativePseudoMint\",\n type: \"pubkey\",\n value: \"11111111111111111111111111111111\",\n },\n {\n name: \"unwrapNativeReceiverSeed\",\n type: \"bytes\",\n value:\n \"[117, 110, 119, 114, 97, 112, 95, 110, 97, 116, 105, 118, 101, 95, 114, 101, 99, 101, 105, 118, 101, 114]\",\n },\n ],\n};\n","import {\n ComputeBudget,\n ExternalCallParams,\n GetTransactionParams,\n} from \"./types\";\nimport {\n ComputeBudgetProgram,\n MessageV0,\n TransactionInstruction,\n VersionedTransaction,\n} from \"@solana/web3.js\";\nimport { BN } from \"@coral-xyz/anchor\";\nimport { helpers } from \"@debridge-finance/solana-utils\";\nimport { keccak256 } from \"js-sha3\";\n\nexport function bigintToArray(\n n: bigint | number,\n type: \"u64\" | \"u256\",\n): number[] {\n let size: number;\n switch (type) {\n case \"u256\":\n size = 32;\n break;\n case \"u64\":\n size = 8;\n break;\n }\n\n return new BN(n.toString()).toArray(\"be\", size);\n}\n\nexport const u64 = (v: bigint) => {\n const buf = Buffer.alloc(8);\n buf.writeBigUInt64LE(v);\n return buf;\n};\n\nexport const vecU8 = (data: Buffer) => {\n const len = Buffer.alloc(4);\n len.writeUInt32LE(data.length);\n return Buffer.concat([len, data]);\n};\n\nexport const getComputeBudgetIxs = (\n computeBudget?: ComputeBudget,\n): TransactionInstruction[] => {\n const ixs: TransactionInstruction[] = [];\n\n if (computeBudget?.limit) {\n ixs.push(\n ComputeBudgetProgram.setComputeUnitLimit({\n units: computeBudget.limit,\n }),\n );\n }\n\n if (computeBudget?.price) {\n ixs.push(\n ComputeBudgetProgram.setComputeUnitPrice({\n microLamports: computeBudget.price,\n }),\n );\n }\n\n return ixs;\n};\n\nexport const getVersionedTransaction = ({\n instructions,\n payer,\n blockhash,\n ALTs,\n}: GetTransactionParams) =>\n new VersionedTransaction(\n MessageV0.compile({\n instructions,\n payerKey: payer,\n recentBlockhash: blockhash,\n addressLookupTableAccounts: ALTs,\n }),\n );\n","import {\n AnchorProvider,\n BN,\n Program,\n setProvider,\n Wallet as AnchorWallet,\n BorshCoder,\n IdlAccounts,\n IdlTypes,\n} from \"@coral-xyz/anchor\";\nimport {\n constants,\n dlnSrcResolver,\n programs,\n txs as transactions,\n} from \"@debridge-finance/solana-utils\";\nimport {\n Connection,\n Keypair,\n PublicKey,\n SystemProgram,\n SYSVAR_INSTRUCTIONS_PUBKEY,\n TransactionInstruction,\n VersionedTransaction,\n} from \"@solana/web3.js\";\nimport { ASSOCIATED_TOKEN_PROGRAM_ID, NATIVE_MINT } from \"@solana/spl-token\";\nimport {\n getAssociatedTokenAddressSync,\n TOKEN_PROGRAM_ID,\n} from \"@solana/spl-token\";\nimport { IntentsProgram, IDL } from \"../idl/intents-program\";\nimport {\n createInitializeInstruction,\n createReallocateInstruction,\n createWriteInstruction,\n createCloseAccountInstruction,\n RECORD_PROGRAM_ID,\n RECORD_META_DATA_SIZE,\n} from \"@solana/spl-record\";\nimport {\n CloseIntentParams,\n CloseRecordParams,\n CreateAndUpdateIntentParams,\n ApproveProtocolTransfersParams,\n InitIntentParams,\n TokenApproval,\n UpdateIntentParams,\n UpdateRecordParams,\n WriteIntentParams,\n WriteRecordParams,\n UpdateRecordTxsParams,\n DelegateApprovedBudgetsParams,\n SwapBeginParams,\n SwapEndParams,\n ExecuteIntentParams,\n SwapParams,\n IntentStorage,\n State,\n ExecuteIntentSameChainParams,\n SetMakerCancelUntilTimestampParams,\n WithdrawIntentTokenAccountParams,\n WithdrawClosedIntentTokenAccountParams,\n CancelIntentParams,\n DelegateApprovedBudgetsArgs,\n SignatureType,\n} from \"./types\";\nimport {\n bigintToArray,\n getComputeBudgetIxs,\n getVersionedTransaction,\n} from \"./helpers\";\nimport nacl from \"tweetnacl\";\n\n// map token mint to tokenProgramId\nconst TOKEN_PROGRAM_CACHE = new Map<string, PublicKey>();\n\n// TODO: move to utils package\nexport async function getTokenProgramId(\n conn: Connection,\n mint: PublicKey,\n): Promise<PublicKey> {\n const mintStr = mint.toBase58();\n if (TOKEN_PROGRAM_CACHE.has(mintStr)) {\n return TOKEN_PROGRAM_CACHE.get(mintStr)!;\n } else {\n const acc = await conn.getAccountInfo(mint);\n if (!acc) {\n throw new Error(\"Mint account not found\");\n } else {\n const programId = new PublicKey(acc.owner);\n TOKEN_PROGRAM_CACHE.set(mintStr, programId);\n return programId;\n }\n }\n}\n\nexport enum IntentProgramSigPrefix {\n prod = \"intents_program\",\n dubai = \"intents_program_dubai\",\n hanoi = \"intents_program_hanoi\",\n devnet = \"intents_program_devnet\",\n}\n\nexport const DEFAULT_RECORD_OFFSET = RECORD_META_DATA_SIZE;\n\nexport class IntentsClient {\n public readonly programId: PublicKey;\n public readonly idl: IntentsProgram;\n public readonly recordProgramId: PublicKey;\n private readonly _provider: AnchorProvider;\n private readonly _intentsProgram: Program<IntentsProgram>;\n private readonly _state: PublicKey;\n\n constructor(\n connection: Connection,\n {\n programId,\n recordProgramId = RECORD_PROGRAM_ID,\n }: {\n programId: PublicKey;\n recordProgramId?: PublicKey;\n },\n ) {\n IDL.address = programId.toString() as typeof IDL.address;\n this.idl = IDL;\n this.programId = programId;\n this.recordProgramId = recordProgramId;\n this._provider = new AnchorProvider(connection, {} as AnchorWallet, {});\n setProvider(this._provider);\n this._intentsProgram = new Program(IDL, this._provider);\n this._state = IntentsClient.getStatePda(this._intentsProgram.programId);\n }\n\n static getSignatureType(\n message: Buffer,\n signature: Buffer,\n signerKey: PublicKey,\n ): SignatureType {\n const rawReprAsBytes = message;\n const hexReprAsBytes = new TextEncoder().encode(\n `0x${message.toString(\"hex\")}`,\n );\n const signerBytes = signerKey.toBytes();\n if (nacl.sign.detached.verify(rawReprAsBytes, signature, signerBytes)) {\n return SignatureType.RawBytes;\n } else if (\n nacl.sign.detached.verify(hexReprAsBytes, signature, signerBytes)\n ) {\n return SignatureType.HexString;\n } else {\n return SignatureType.Invalid;\n }\n }\n\n private getSpace(length: number, budgets: number) {\n return 198 + (1 + length + (4 + 9 * budgets)); // (min 100)\n }\n\n async getState(connection: Connection): Promise<State | null> {\n const accountInfo = await connection.getAccountInfo(this._state);\n\n if (!accountInfo) {\n return null;\n }\n\n const data = this._intentsProgram.coder.accounts.decode(\n \"state\",\n accountInfo.data,\n );\n\n return {\n ...data,\n lastValidTimestamp: Number(data.lastValidTimestamp.toString()),\n };\n }\n\n async getIntentStorage(\n connection: Connection,\n intentId: Buffer,\n ): Promise<IntentStorage | null> {\n const intentStorage = IntentsClient.getIntentStoragePda(\n this._intentsProgram.programId,\n intentId,\n );\n\n const accountInfo = await connection.getAccountInfo(intentStorage);\n\n if (!accountInfo) {\n return null;\n }\n\n const data = this._intentsProgram.coder.accounts.decode(\n \"intentStorage\",\n accountInfo.data,\n );\n\n return {\n ...data,\n intentId,\n };\n }\n\n async getMakerInfo(\n connection: Connection,\n maker: PublicKey,\n ): Promise<IdlAccounts<IntentsProgram>[\"makerInfo\"] | null> {\n const makerInfoPda = IntentsClient.getMakerInfoPda(\n this._intentsProgram.programId,\n maker,\n );\n\n const accountInfo = await connection.getAccountInfo(makerInfoPda);\n\n if (!accountInfo) {\n return null;\n }\n\n const data = this._intentsProgram.coder.accounts.decode(\n \"makerInfo\",\n accountInfo.data,\n );\n\n return data;\n }\n\n async getNonceForDelegate(\n connection: Connection,\n maker: PublicKey,\n delegate: PublicKey,\n ): Promise<bigint> {\n const makerInfo = await this.getMakerInfo(connection, maker);\n\n if (!makerInfo) {\n return 0n;\n }\n\n for (let data of makerInfo.delegates) {\n if (data.delegate.toBase58() === delegate.toBase58()) {\n return BigInt(data.nonce.toString());\n }\n }\n\n return 0n;\n }\n\n // TODO vanilla solana delegation\n async approveProtocolTransfersIxs({\n maker,\n tokens,\n tokenProgram = TOKEN_PROGRAM_ID,\n }: ApproveProtocolTransfersParams): Promise<TransactionInstruction[]> {\n const amounts = [];\n const accounts = [];\n for (const { mint, amount } of tokens) {\n const currentTokenProgram = await getTokenProgramId(\n this._provider.connection,\n mint,\n );\n amounts.push(new BN(amount.toString()));\n accounts.push({\n pubkey: getAssociatedTokenAddressSync(\n mint,\n maker,\n true,\n currentTokenProgram,\n ),\n isSigner: false,\n isWritable: true,\n });\n }\n\n return [\n await this._intentsProgram.methods\n .approveProtocolTransfers(amounts)\n .accountsStrict({\n maker,\n state: this._state,\n tokenProgram,\n })\n .remainingAccounts(accounts)\n .instruction(),\n ];\n }\n\n private async cancelIntentIxs(\n maker: PublicKey,\n id: Buffer,\n ): Promise<TransactionInstruction[]> {\n return [\n await this._intentsProgram.methods\n .cancelIntent()\n .accountsStrict({\n initiator: maker,\n intentStorage: IntentsClient.getIntentStoragePda(\n this._intentsProgram.programId,\n id,\n ),\n state: this._state,\n })\n .instruction(),\n ];\n }\n\n private async closeIntentIxs(\n maker: PublicKey,\n rentPayer: PublicKey,\n id: Buffer,\n ): Promise<TransactionInstruction[]> {\n return [\n await this._intentsProgram.methods\n .closeIntent()\n .accountsStrict({\n initiator: maker,\n rentPayer,\n intentStorage: IntentsClient.getIntentStoragePda(\n this._intentsProgram.programId,\n id,\n ),\n state: this._state,\n systemProgram: SystemProgram.programId,\n makerInfo: IntentsClient.getMakerInfoPda(\n this._intentsProgram.programId,\n maker,\n ),\n maker,\n })\n .instruction(),\n ];\n }\n\n async executeIntentIxs({\n tradeId,\n intentId,\n taker,\n maker,\n tokenMint,\n dlnOrder,\n dlnMetadata,\n dlnSrc = new PublicKey(programs.dlnSrc),\n tokenProgram = TOKEN_PROGRAM_ID,\n }: ExecuteIntentParams): Promise<TransactionInstruction[]> {\n const accountsResolver = dlnSrcResolver(dlnSrc).methods;\n\n const [dlnSrcState] = accountsResolver.getStateAccount();\n\n const [dlnSrcGiveOrderState] = accountsResolver.getGiveOrderStateAccount(\n dlnOrder.id,\n );\n\n const [dlnSrcGiveOrderWallet] = accountsResolver.getGiveOrderWalletAddress(\n dlnOrder.id,\n );\n\n const [dlnSrcAuthorizedNativeSender] =\n accountsResolver.getAuthorizedNativeSenderAddress(\n Buffer.from(new BN(dlnOrder.dstChainId.toString()).toArray(\"be\", 32)),\n );\n\n const [dlnSrcFeeLedgerWallet] =\n accountsResolver.getFeeLedgerWalletAddress(tokenMint);\n\n const intentStorage = IntentsClient.getIntentStoragePda(\n this._intentsProgram.programId,\n intentId,\n );\n\n tokenProgram = await getTokenProgramId(\n this._provider.connection,\n tokenMint,\n );\n const intentGiveTokenATA = getAssociatedTokenAddressSync(\n tokenMint,\n intentStorage,\n true,\n tokenProgram,\n );\n\n const args: Parameters<\n Program<IntentsProgram>[\"methods\"][\"executeIntent\"]\n >[0] = {\n giveOriginalAmount: new BN(dlnOrder.args.giveOriginalAmount.toString()),\n take: {\n amount: bigintToArray(dlnOrder.args.take.amount, \"u256\"),\n chainId: bigintToArray(dlnOrder.args.take.chainId, \"u256\"),\n tokenAddress: Array.from(dlnOrder.args.take.tokenAddress),\n },\n receiverDst: Array.from(dlnOrder.args.receiver),\n extcall: dlnOrder.args.externalCall?.externalCallData\n ? Buffer.from(dlnOrder.args.externalCall.externalCallData)\n : null,\n givePatchAuthoritySrc: dlnOrder.args.givePatchAuthority,\n orderAuthorityAddressDst: Array.from(\n dlnOrder.args.orderAuthorityDstAddress,\n ),\n allowedCancelBeneficiarySrc: dlnOrder.args.allowedCancelBeneficiary,\n allowedTakerDst: dlnOrder.args.allowedTaker\n ? Array.from(dlnOrder.args.allowedTaker)\n : null,\n };\n\n return [\n await this._intentsProgram.methods\n .executeIntent(\n args,\n new BN(dlnOrder.nonce.toString()),\n dlnMetadata ?? Buffer.from([]),\n Array.from(tradeId),\n )\n .accountsStrict({\n taker,\n state: this._state,\n intentStorage,\n maker,\n makerInfo: IntentsClient.getMakerInfoPda(\n this._intentsProgram.programId,\n maker,\n ),\n intentGiveToken: intentGiveTokenATA,\n dlnSrc,\n dlnSrcState,\n dlnSrcGiveOrderState,\n dlnSrcGiveOrderWallet,\n dlnSrcAuthorizedNativeSender,\n dlnSrcFeeLedgerWallet,\n tokenMint,\n systemProgram: SystemProgram.programId,\n tokenProgram,\n associatedTokenProgram: ASSOCIATED_TOKEN_PROGRAM_ID,\n eventAuthority: IntentsClient.getEventAuthorityPda(\n this._intentsProgram.programId,\n ),\n program: this._intentsProgram.programId,\n })\n .instruction(),\n ];\n }\n\n async executeSameChainIntentIxs({\n tradeId,\n intentId,\n taker,\n maker,\n tokenMint,\n receiver,\n amount,\n tokenProgram = TOKEN_PROGRAM_ID,\n unwrapTakeToken,\n }: ExecuteIntentSameChainParams): Promise<TransactionInstruction[]> {\n let unwrapNativeSol = false;\n let receiverTakeToken;\n\n const intentStorage = IntentsClient.getIntentStoragePda(\n this._intentsProgram.programId,\n intentId,\n );\n\n tokenProgram = await getTokenProgramId(\n this._provider.connection,\n tokenMint,\n );\n const intentTakeTokenATA = getAssociatedTokenAddressSync(\n tokenMint,\n intentStorage,\n true,\n tokenProgram,\n );\n\n if (unwrapTakeToken && tokenMint.toBase58() === NATIVE_MINT.toBase58()) {\n receiverTakeToken = IntentsClient.getNativePda(\n this._intentsProgram.programId,\n );\n unwrapNativeSol = true;\n } else {\n receiverTakeToken = getAssociatedTokenAddressSync(\n tokenMint,\n receiver,\n true,\n tokenProgram,\n );\n }\n\n const feeLedger = getAssociatedTokenAddressSync(\n tokenMint,\n this._state,\n true,\n tokenProgram,\n );\n\n const ix = await this._intentsProgram.methods\n .executeIntent2(new BN(amount.toString()), Array.from(tradeId))\n .accountsStrict({\n taker,\n state: this._state,\n maker,\n receiver,\n makerInfo: IntentsClient.getMakerInfoPda(\n this._intentsProgram.programId,\n maker,\n ),\n intentStorage,\n intentTakeToken: intentTakeTokenATA,\n feeLedger,\n receiverTakeToken,\n tokenMint,\n systemProgram: SystemProgram.programId,\n tokenProgram,\n associatedTokenProgram: ASSOCIATED_TOKEN_PROGRAM_ID,\n eventAuthority: IntentsClient.getEventAuthorityPda(\n this._intentsProgram.programId,\n ),\n program: this._intentsProgram.programId,\n })\n .instruction();\n\n if (unwrapNativeSol) {\n let receiverIdx = ix.keys.findIndex((meta) => meta.pubkey == receiver)!;\n ix.keys[receiverIdx]!.isWritable = true;\n }\n\n return [ix];\n }\n\n async initIntentIxs(\n maker: PublicKey,\n payer: PublicKey,\n delegate: PublicKey | null = null,\n id: Buffer,\n encodedIntentHash: Buffer,\n encodedIntentLength: number,\n inputTokensAmount: number,\n ): Promise<TransactionInstruction[]> {\n const space = this.getSpace(encodedIntentLength, inputTokensAmount);\n\n const method = delegate\n ? this._intentsProgram.methods.initIntentByDelegate(space, [0, 0], {\n 0: Array.from(encodedIntentHash),\n }) // rawHash\n : this._intentsProgram.methods.initIntent(space, [0, 0], {\n 0: Array.from(encodedIntentHash),\n }); // rawHash\n\n return [\n await method\n .accountsStrict({\n maker,\n ...(delegate && {\n delegate,\n makerInfo: IntentsClient.getMakerInfoPda(\n this._intentsProgram.programId,\n maker,\n ),\n }),\n rentPayer: payer,\n state: this._state,\n intentStorage: IntentsClient.getIntentStoragePda(\n this._intentsProgram.programId,\n id,\n ),\n systemProgram: SystemProgram.programId,\n eventAuthority: IntentsClient.getEventAuthorityPda(\n this._intentsProgram.programId,\n ),\n program: this._intentsProgram.programId,\n })\n .instruction(),\n ];\n }\n\n async initIntentUsingSigIxs(\n maker: PublicKey,\n payer: PublicKey,\n delegate: PublicKey | null = null,\n id: Buffer,\n encodedIntentHash: Buffer,\n encodedIntentLength: number,\n inputTokensAmount: number,\n signature: Buffer,\n ): Promise<TransactionInstruction[]> {\n const space = this.getSpace(encodedIntentLength, inputTokensAmount);\n\n const isHanoi =\n this.programId.toBase58() ==\n \"intV2u5xDE8T2ZMFP3W3X6sVqGHBT7zvYtTW3rRLmvE\";\n\n const sigType = IntentsClient.getSignatureType(\n IntentsClient.getBufferForIntentSignature(\n id,\n isHanoi ? IntentProgramSigPrefix.hanoi : IntentProgramSigPrefix.prod,\n ),\n signature,\n maker,\n );\n\n let sigTypeInternal: IdlTypes<IntentsProgram>[\"signatureType\"] | undefined =\n undefined;\n if (sigType == SignatureType.RawBytes) {\n sigTypeInternal = { rawBytes: {} };\n } else if (sigType == SignatureType.HexString) {\n sigTypeInternal = { hexString: {} };\n } else {\n throw new Error(\"Failed to get valid signature type\");\n }\n\n const method = delegate\n ? this._intentsProgram.methods.initIntentByDelegateUsingSig(\n space,\n sigTypeInternal,\n 0,\n { 0: Array.from(encodedIntentHash) },\n Array.from(signature),\n )\n : this._intentsProgram.methods.initIntentUsingSig(\n space,\n sigTypeInternal,\n 0,\n { 0: Array.from(encodedIntentHash) },\n Array.from(signature),\n );\n\n return [\n await method\n .accountsStrict({\n ...(delegate && {\n delegate,\n makerInfo: IntentsClient.getMakerInfoPda(\n this._intentsProgram.programId,\n maker,\n ),\n }),\n maker,\n rentPayer: payer,\n state: this._state,\n intentStorage: IntentsClient.getIntentStoragePda(\n this._intentsProgram.programId,\n id,\n ),\n systemProgram: SystemProgram.programId,\n eventAuthority: IntentsClient.getEventAuthorityPda(\n this._intentsProgram.programId,\n ),\n program: this._intentsProgram.programId,\n })\n .instruction(),\n ];\n }\n\n async setDelegateApprovedBudgetsIxs({\n maker,\n payer,\n delegate,\n nonce,\n tokens,\n signature,\n }: DelegateApprovedBudgetsParams): Promise<TransactionInstruction[]> {\n const enumArgs = IntentsClient.getDelegateApprovedBudgetsArgs(tokens);\n const encodedApprovedTokenBudgets = this._intentsProgram.coder.types.encode(\n \"setApprovedTokenBudgets\",\n enumArgs,\n );\n\n const method = signature\n ? this._intentsProgram.methods.setDelegateApprovedBudgetsUsingSig(\n new BN(nonce.toString()),\n encodedApprovedTokenBudgets,\n Array.from(signature),\n )\n : this._intentsProgram.methods.setDelegateApprovedBudgets(\n new BN(nonce.toString()),\n enumArgs,\n );\n\n return [\n await method\n .accountsStrict({\n maker,\n delegate,\n rentPayer: payer,\n state: this._state,\n makerInfo: IntentsClient.getMakerInfoPda(\n this._intentsProgram.programId,\n maker,\n ),\n systemProgram: SystemProgram.programId,\n })\n .instruction(),\n ];\n }\n\n async setMakerCancelUntilTimestampIxs({\n maker,\n payer,\n timestamp,\n }: SetMakerCancelUntilTimestampParams): Promise<TransactionInstruction[]> {\n return [\n await this._intentsProgram.methods\n .setMakerCancelUntilTimestamp(new BN(timestamp.toString()))\n .accountsStrict({\n maker,\n rentPayer: payer,\n state: this._state,\n makerInfo: IntentsClient.getMakerInfoPda(\n this._intentsProgram.programId,\n maker,\n ),\n systemProgram: SystemProgram.programId,\n })\n .instruction(),\n ];\n }\n\n async swapBeginIxs({\n taker,\n maker,\n intentId,\n tradeId,\n beginAmount, // 0 for tests // transfer from random wallet to taker output amount, input / output = intent price\n target,\n inputMint,\n outputMint,\n inputTokenProgram = TOKEN_PROGRAM_ID,\n outputTokenProgram = TOKEN_PROGRAM_ID,\n }: SwapBeginParams): Promise<TransactionInstruction[]> {\n const intentStorage = IntentsClient.getIntentStoragePda(\n this._intentsProgram.programId,\n intentId,\n );\n\n [inputTokenProgram, outputTokenProgram] = await Promise.all([\n getTokenProgramId(this._provider.connection, inputMint),\n getTokenProgramId(this._provider.connection, outputMint),\n ]);\n\n const makerInputToken = getAssociatedTokenAddressSync(\n inputMint,\n maker,\n true,\n inputTokenProgram,\n );\n\n const takerInputToken = getAssociatedTokenAddressSync(\n inputMint,\n taker,\n true,\n inputTokenProgram,\n );\n\n const takerOutputToken = getAssociatedTokenAddressSync(\n outputMint,\n taker,\n true,\n outputTokenProgram,\n );\n\n const intentOutputToken = getAssociatedTokenAddressSync(\n outputMint,\n intentStorage,\n true,\n outputTokenProgram,\n );\n\n return [\n await this._intentsProgram.methods\n .swapBegin(\n new BN(beginAmount.toString()),\n target === \"intent\" ? { intent: {} } : { taker: {} },\n Array.from(tradeId),\n )\n .accountsStrict({\n taker,\n maker,\n state: this._state,\n intentStorage,\n inputMint,\n outputMint,\n makerInputToken,\n takerInputToken,\n takerOutputToken,\n intentOutputToken,\n instructions: SYSVAR_INSTRUCTIONS_PUBKEY,\n systemProgram: SystemProgram.programId,\n inputTokenProgram,\n outputTokenProgram,\n associatedTokenProgram: ASSOCIATED_TOKEN_PROGRAM_ID,\n makerInfo: IntentsClient.getMakerInfoPda(\n this._intentsProgram.programId,\n maker,\n ),\n eventAuthority: IntentsClient.getEventAuthorityPda(\n this._intentsProgram.programId,\n ),\n program: this._intentsProgram.programId,\n })\n .instruction(),\n ];\n }\n\n async swapEndIxs({\n taker,\n intentId,\n endAmount,\n bps,\n inputMint,\n outputMint,\n outputTokenProgram = TOKEN_PROGRAM_ID,\n }: SwapEndParams): Promise<TransactionInstruction[]> {\n const intentStorage = IntentsClient.getIntentStoragePda(\n this._intentsProgram.programId,\n intentId,\n );\n\n outputTokenProgram = await getTokenProgramId(\n this._provider.connection,\n outputMint,\n );\n const takerOutputToken = getAssociatedTokenAddressSync(\n outputMint,\n taker,\n true,\n outputTokenProgram,\n );\n\n const intentOutputToken = getAssociatedTokenAddressSync(\n outputMint,\n intentStorage,\n true,\n outputTokenProgram,\n );\n\n return [\n await this._intentsProgram.methods\n .swapEnd(new BN(endAmount.toString()), bps)\n .accountsStrict({\n taker,\n state: this._state,\n intentStorage,\n inputMint,\n outputMint,\n takerOutputToken,\n intentOutputToken,\n instructions: SYSVAR_INSTRUCTIONS_PUBKEY,\n systemProgram: SystemProgram.programId,\n outputTokenProgram,\n associatedTokenProgram: ASSOCIATED_TOKEN_PROGRAM_ID,\n eventAuthority: IntentsClient.getEventAuthorityPda(\n this._intentsProgram.programId,\n ),\n program: this._intentsProgram.programId,\n })\n .instruction(),\n ];\n }\n\n async updateIntentIxs({\n payer,\n record,\n id,\n offset,\n length,\n data,\n }: UpdateIntentParams): Promise<TransactionInstruction[]> {\n const intentStorage = IntentsClient.getIntentStoragePda(\n this._intentsProgram.programId,\n id,\n );\n\n return [\n await this._intentsProgram.methods\n .updateIntent(\n data ? { instruction: [data] } : { buffer: { offset, length } },\n )\n .accountsStrict({\n rentPayer: payer,\n state: this._state,\n intentStorage,\n systemProgram: SystemProgram.programId,\n buffer: record ?? null,\n eventAuthority: IntentsClient.getEventAuthorityPda(\n this._intentsProgram.programId,\n ),\n program: this._intentsProgram.programId,\n })\n .instruction(),\n ];\n }\n\n async withdrawIntentTokenAccountIxs({\n maker,\n receiver,\n id,\n encodedIntentHash,\n tokenMint,\n tokenProgram = TOKEN_PROGRAM_ID,\n }: WithdrawIntentTokenAccountParams): Promise<TransactionInstruction[]> {\n if (!receiver) {\n receiver = maker;\n }\n\n const intentStorage = IntentsClient.getIntentStoragePda(\n this._intentsProgram.programId,\n id,\n );\n\n tokenProgram = await getTokenProgramId(\n this._provider.connection,\n tokenMint,\n );\n const intentTokenAccount = getAssociatedTokenAddressSync(\n tokenMint,\n intentStorage,\n true,\n tokenProgram,\n );\n\n const makerTokenAccount = getAssociatedTokenAddressSync(\n tokenMint,\n maker,\n true,\n tokenProgram,\n );\n\n return [\n await this._intentsProgram.methods\n .withdrawIntentTokenAccount({\n 0: Array.from(encodedIntentHash),\n })\n .accountsStrict({\n state: this._state,\n maker,\n intentStorage,\n intentTokenAccount,\n makerTokenAccount,\n rentReceiver: receiver,\n tokenMint,\n tokenProgram,\n associatedTokenProgram: ASSOCIATED_TOKEN_PROGRAM_ID,\n })\n .instruction(),\n ];\n }\n\n /*\n async withdrawClosedIntentTokenAccount({\n id,\n tokenMint,\n tokenProgram = TOKEN_PROGRAM_ID,\n }: WithdrawClosedIntentTokenAccountParams): Promise<\n TransactionInstruction[]\n > {\n const intentStorage = IntentsClient.getIntentStoragePda(\n this._intentsProgram.programId,\n id,\n );\n\n const intentTokenAccount = getAssociatedTokenAddressSync(\n tokenMint,\n intentStorage,\n true,\n tokenProgram,\n );\n\n const feeLedger = getAssociatedTokenAddressSync(\n tokenMint,\n this._state,\n true,\n tokenProgram,\n );\n\n return [\n await this._intentsProgram.methods\n .withdrawClosedIntentTokenAccount({ 0: Array.from(id) })\n .accountsStrict({\n state: this._state,\n intentStorage,\n intentTokenAccount,\n feeLedger,\n mint: tokenMint,\n tokenProgram,\n associatedTokenProgram: ASSOCIATED_TOKEN_PROGRAM_ID,\n })\n .instruction(),\n ];\n }\n */\n\n closeRecordIxs({\n record,\n authority,\n receiver,\n }: CloseRecordParams): TransactionInstruction[] {\n if (!receiver) {\n receiver = authority;\n }\n\n return [\n createCloseAccountInstruction(\n record,\n authority,\n receiver,\n this.recordProgramId,\n ),\n ];\n }\n\n writeRecordIxs({\n authority,\n record,\n buffer,\n offset,\n }: WriteRecordParams): TransactionInstruction[] {\n // TODO add realloc for wider usage?\n //const reallocIx = createReallocateInstruction(record, authority, BigInt(dataLength), this.recordProgramId);\n return [\n createWriteInstruction(\n record,\n authority,\n BigInt(offset),\n buffer,\n this.recordProgramId,\n ),\n ];\n }\n\n async reallocRecordIxs({\n authority,\n payer,\n record,\n buffer,\n offset,\n }: UpdateRecordParams): Promise<TransactionInstruction[]> {\n if (!payer) {\n payer = authority;\n }\n\n const accountInfo = await this._provider.connection.getAccountInfo(record);\n\n if (!accountInfo) {\n throw new Error(\"Record account not found\");\n }\n\n const currentLamports = accountInfo.lamports;\n const currentSize = accountInfo.data.length;\n const requiredSize = offset + buffer.length;\n\n const ixs: TransactionInstruction[] = [];\n\n if (requiredSize > currentSize) {\n const requiredLamports =\n await this._provider.connection.getMinimumBalanceForRentExemption(\n requiredSize + 1,\n );\n const deltaLamports = requiredLamports - currentLamports;\n\n const transferIx = SystemProgram.transfer({\n fromPubkey: payer,\n toPubkey: record,\n lamports: deltaLamports,\n });\n\n ixs.push(transferIx);\n\n const reallocIx = createReallocateInstruction(\n record,\n authority,\n BigInt(requiredSize - DEFAULT_RECORD_OFFSET),\n this.recordProgramId,\n );\n\n ixs.push(reallocIx);\n }\n\n return ixs;\n }\n\n async initIntentTxs({\n maker,\n payer,\n delegate,\n intent,\n signature,\n blockhash,\n ALTs,\n computeBudget,\n }: InitIntentParams): Promise<{\n record: Keypair;\n txs: VersionedTransaction[];\n }> {\n if (!payer) {\n payer = maker;\n }\n\n let initIntentIxs: TransactionInstruction[];\n const recordAccount = Keypair.generate();\n const serializedIntent = intent.data;\n const space = DEFAULT_RECORD_OFFSET + serializedIntent.length;\n const lamports =\n await this._provider.connection.getMinimumBalanceForRentExemption(\n space + 1,\n );\n const budgetIxs = getComputeBudgetIxs(computeBudget);\n\n if (signature) {\n initIntentIxs = await this.initIntentUsingSigIxs(\n maker,\n payer,\n delegate ?? null,\n intent.id,\n intent.hash,\n serializedIntent.length,\n intent.inputTokensLength,\n signature,\n );\n } else {\n initIntentIxs = await this.initIntentIxs(\n maker,\n payer,\n delegate ?? null,\n intent.id,\n intent.hash,\n serializedIntent.length,\n intent.inputTokensLength,\n );\n }\n\n const createAccountIx = SystemProgram.createAccount({\n fromPubkey: payer,\n newAccountPubkey: recordAccount.publicKey,\n lamports,\n space,\n programId: this.recordProgramId,\n });\n\n const initRecordIx = createInitializeInstruction(\n recordAccount.publicKey,\n payer, // authority\n this.recordProgramId,\n );\n\n const tx = getVersionedTransaction({\n instructions: [\n ...budgetIxs,\n ...initIntentIxs,\n createAccountIx,\n initRecordIx,\n ],\n payer,\n blockhash,\n ALTs,\n });\n\n return {\n record: recordAccount,\n txs: [tx],\n };\n }\n\n async writeIntentTxs({\n maker,\n payer,\n record,\n intent,\n blockhash,\n ALTs,\n computeBudget,\n }: WriteIntentParams): Promise<VersionedTransaction[]> {\n if (!payer) {\n payer = maker;\n }\n\n const txs: VersionedTransaction[] = [];\n const serializedIntent = intent.data;\n const size = serializedIntent.length;\n const budgetIxs = getComputeBudgetIxs(computeBudget);\n const closeRecordIxs = this.closeRecordIxs({\n record,\n authority: payer, // authority = payer\n receiver: payer,\n });\n\n const tmpTx = getVersionedTransaction({\n instructions: [\n ...budgetIxs,\n ...(await this.updateIntentIxs({\n // record,\n payer,\n id: intent.id,\n data: serializedIntent,\n })),\n ...closeRecordIxs,\n ],\n payer,\n blockhash,\n ALTs,\n });\n const tmpSize = transactions.getTransactionSize(tmpTx);\n\n if (tmpSize && tmpSize <= constants.MAX_TX_SIZE) {\n return [tmpTx];\n }\n\n let offset = 0;\n let lastInstructions: TransactionInstruction[] = [];\n while (offset < size) {\n let writeIxs;\n let ixs: TransactionInstruction[] = [...budgetIxs];\n let low = 1;\n let high = size - offset;\n let lastGoodIx: TransactionInstruction[] = [];\n let lastGoodLen = 0;\n\n while (low <= high) {\n const mid = Math.floor((low + high) / 2);\n const buffer = serializedIntent.subarray(offset, offset + mid);\n\n writeIxs = this.writeRecordIxs({\n authority: payer,\n record,\n buffer,\n offset,\n });\n\n const tx = getVersionedTransaction({\n instructions: [...ixs, ...writeIxs],\n payer,\n blockhash,\n ALTs,\n });\n\n const size = transactions.getTransactionSize(tx);\n if (size && size <= constants.MAX_TX_SIZE) {\n lastGoodIx = writeIxs;\n lastGoodLen = mid;\n low = mid + 1;\n } else {\n high = mid - 1;\n }\n }\n\n ixs.push(...lastGoodIx);\n lastInstructions = ixs;\n const tx = getVersionedTransaction({\n instructions: ixs,\n payer,\n blockhash,\n ALTs,\n });\n txs.push(tx);\n offset += lastGoodLen;\n }\n\n const updateIntentIxs = await this.updateIntentIxs({\n record,\n payer,\n id: intent.id,\n offset: DEFAULT_RECORD_OFFSET,\n length: size,\n });\n\n const finalInstructions = [...updateIntentIxs, ...closeRecordIxs];\n\n const combinedInstructions = [...lastInstructions, ...finalInstructions];\n const combinedTx = getVersionedTransaction({\n instructions: combinedInstructions,\n payer,\n blockhash,\n ALTs,\n });\n const combinedSize = transactions.getTransactionSize(combinedTx);\n if (combinedSize && combinedSize <= constants.MAX_TX_SIZE) {\n txs[txs.length - 1] = combinedTx;\n } else {\n const updateTx = getVersionedTransaction({\n instructions: finalInstructions,\n payer,\n blockhash,\n ALTs,\n });\n txs.push(updateTx);\n }\n\n return txs;\n }\n\n async createIntentTxs({\n maker,\n payer,\n delegate,\n intent,\n signature,\n blockhash,\n ALTs,\n computeBudget,\n }: InitIntentParams): Promise<{\n init: VersionedTransaction[];\n write: VersionedTransaction[];\n record: Keypair;\n }> {\n const { record, txs: init } = await this.initIntentTxs({\n maker,\n payer,\n delegate,\n intent,\n signature,\n blockhash,\n ALTs,\n computeBudget,\n });\n const write = await this.writeIntentTxs({\n maker,\n payer,\n record: record.publicKey,\n intent,\n blockhash,\n ALTs,\n computeBudget,\n });\n\n return {\n init,\n write,\n record,\n };\n }\n\n async createAndUpdateIntentTxs({\n maker,\n payer,\n delegate,\n intent,\n signature,\n blockhash,\n ALTs,\n computeBudget,\n }: CreateAndUpdateIntentParams): Promise<VersionedTransaction[]> {\n if (!payer) {\n payer = maker;\n }\n\n let initIntentIxs: TransactionInstruction[];\n let updateIntentIxs: TransactionInstruction[];\n\n const budgetIxs = getComputeBudgetIxs(computeBudget);\n\n // delegateApprove + initIntentDelegate\n\n if (signature) {\n initIntentIxs = await this.initIntentUsingSigIxs(\n maker,\n payer,\n delegate,\n intent.id,\n intent.hash,\n intent.data ? intent.data.length : intent.length,\n intent.inputTokensLength,\n signature,\n );\n } else {\n initIntentIxs = await this.initIntentIxs(\n maker,\n payer,\n delegate,\n intent.id,\n intent.hash,\n intent.data ? intent.data.length : intent.length,\n intent.inputTokensLength,\n );\n }\n\n if (intent.data) {\n updateIntentIxs = await this.updateIntentIxs({\n payer,\n id: intent.id,\n data: intent.data,\n });\n } else {\n updateIntentIxs = await this.updateIntentIxs({\n payer,\n record: intent.record,\n id: intent.id,\n offset: DEFAULT_RECORD_OFFSET + intent.offset,\n length: intent.length,\n });\n }\n\n const tx = getVersionedTransaction({\n instructions: [...budgetIxs, ...initIntentIxs, ...updateIntentIxs],\n payer,\n blockhash,\n ALTs,\n });\n\n const size = transactions.getTransactionSize(tx);\n\n if (size && size > constants.MAX_TX_SIZE) {\n throw new Error(\n `Tx size is ${size}, should be less than ${constants.MAX_TX_SIZE}`,\n );\n }\n\n return [tx];\n }\n\n async updateRecordTxs({\n authority,\n payer,\n record,\n serializedIntent,\n offset = DEFAULT_RECORD_OFFSET,\n blockhash,\n ALTs,\n computeBudget,\n }: UpdateRecordTxsParams): Promise<VersionedTransaction[]> {\n if (!payer) {\n payer = authority;\n }\n\n if (offset < DEFAULT_RECORD_OFFSET) {\n throw new Error(`Offset can't be less than ${DEFAULT_RECORD_OFFSET}`);\n }\n\n const txs: VersionedTransaction[] = [];\n const size = serializedIntent.length;\n const reallocRecordIxs = await this.reallocRecordIxs({\n authority,\n payer,\n record,\n buffer: serializedIntent,\n offset,\n });\n const budgetIxs = getComputeBudgetIxs(computeBudget);\n\n let bufferOffset = 0;\n while (bufferOffset < size) {\n let writeIxs;\n let ixs: TransactionInstruction[] = [\n ...budgetIxs,\n ...(bufferOffset === 0 ? reallocRecordIxs : []),\n ];\n let low = 1;\n let high = size - bufferOffset;\n let lastGoodIx: TransactionInstruction[] = [];\n let lastGoodLen = 0;\n\n while (low <= high) {\n const mid = Math.floor((low + high) / 2);\n const buffer = serializedIntent.subarray(\n bufferOffset,\n bufferOffset + mid,\n );\n\n writeIxs = this.writeRecordIxs({\n authority: payer,\n record,\n buffer,\n offset: bufferOffset,\n });\n\n const tx = getVersionedTransaction({\n instructions: [...ixs, ...writeIxs],\n payer,\n blockhash,\n ALTs,\n });\n\n const size = transactions.getTransactionSize(tx);\n if (size && size <= constants.MAX_TX_SIZE) {\n lastGoodIx = writeIxs;\n lastGoodLen = mid;\n low = mid + 1;\n } else {\n high = mid - 1;\n }\n }\n\n ixs.push(...lastGoodIx);\n\n const tx = getVersionedTransaction({\n instructions: ixs,\n payer,\n blockhash,\n ALTs,\n });\n txs.push(tx);\n bufferOffset += lastGoodLen;\n }\n\n return txs;\n }\n\n async cancelIntentTxs({\n maker,\n payer,\n id,\n encodedIntentHash,\n tokenMint,\n tokenProgram = TOKEN_PROGRAM_ID,\n blockhash,\n ALTs,\n computeBudget,\n }: CancelIntentParams): Promise<VersionedTransaction[]> {\n if (!payer) {\n payer = maker;\n }\n\n const ixs: TransactionInstruction[] = getComputeBudgetIxs(computeBudget);\n\n const closeIntentIxs = await this.cancelIntentIxs(maker, id);\n\n ixs.push(...closeIntentIxs);\n\n if (tokenMint) {\n const withdrawIntentTokenAccountIxs =\n await this.withdrawIntentTokenAccountIxs({\n maker,\n receiver: payer,\n id,\n encodedIntentHash,\n tokenMint,\n tokenProgram,\n });\n\n ixs.push(...withdrawIntentTokenAccountIxs);\n }\n\n const tx = getVersionedTransaction({\n instructions: ixs,\n payer,\n blockhash,\n ALTs,\n });\n\n return [tx];\n }\n\n async closeIntentTxs({\n maker,\n payer,\n receiver,\n id,\n tokenMint,\n tokenProgram = TOKEN_PROGRAM_ID,\n blockhash,\n ALTs,\n computeBudget,\n }: CloseIntentParams): Promise<VersionedTransaction[]> {\n if (!payer) {\n payer = maker;\n }\n\n const ixs: TransactionInstruction[] = getComputeBudgetIxs(computeBudget);\n\n const closeIntentIxs = await this.closeIntentIxs(\n maker,\n receiver ?? maker,\n id,\n );\n\n ixs.push(...closeIntentIxs);\n\n /*\n if (tokenMint) {\n const withdrawClosedIntentTokenAccount =\n await this.withdrawClosedIntentTokenAccount({\n id,\n tokenMint,\n tokenProgram,\n });\n\n ixs.push(...withdrawClosedIntentTokenAccount);\n }\n */\n\n const tx = getVersionedTransaction({\n instructions: ixs,\n payer,\n blockhash,\n ALTs,\n });\n\n return [tx];\n }\n\n async swapTxs({\n taker,\n maker,\n intentId,\n tradeId,\n inputMint,\n outputMint,\n beginAmount,\n endAmount,\n bps,\n target,\n inputTokenProgram = TOKEN_PROGRAM_ID,\n outputTokenProgram = TOKEN_PROGRAM_ID,\n instructions = [],\n lastInstructions = [],\n computeBudget,\n payer,\n blockhash,\n ALTs,\n }: SwapParams) {\n if (!payer) {\n payer = taker;\n }\n\n const budgetIxs = getComputeBudgetIxs(computeBudget);\n\n const swapBeginIxs = await this.swapBeginIxs({\n taker,\n maker,\n intentId,\n tradeId,\n inputMint,\n outputMint,\n beginAmount,\n target,\n inputTokenProgram,\n outputTokenProgram,\n });\n\n const swapEndIxs = await this.swapEndIxs({\n taker,\n intentId,\n endAmount,\n bps,\n inputMint,\n outputMint,\n outputTokenProgram,\n });\n\n const tx = getVersionedTransaction({\n instructions: [\n ...budgetIxs,\n ...swapBeginIxs,\n ...instructions,\n ...swapEndIxs,\n ...lastInstructions,\n ],\n payer,\n blockhash,\n ALTs,\n });\n\n return [tx];\n }\n\n static getStatePda(programId: PublicKey): PublicKey {\n const [pubkey] = PublicKey.findProgramAddressSync(\n [Buffer.from(\"state\")],\n programId,\n );\n return pubkey;\n }\n\n static getIntentStoragePda(\n programId: PublicKey,\n intentId: Buffer,\n ): PublicKey {\n const [pubkey] = PublicKey.findProgramAddressSync(\n [Buffer.from(\"intent_storage\"), intentId],\n programId,\n );\n return pubkey;\n }\n\n static getMakerInfoPda(programId: PublicKey, maker: PublicKey) {\n const [pubkey] = PublicKey.findProgramAddressSync(\n [Buffer.from(\"maker_info\"), maker.toBuffer()],\n programId,\n );\n return pubkey;\n }\n\n static getDelegatesPda(programId: PublicKey, user: PublicKey): PublicKey {\n const [pubkey] = PublicKey.findProgramAddressSync(\n [Buffer.from(\"user_delegates\"), user.toBuffer()],\n programId,\n );\n return pubkey;\n }\n\n static getEventAuthorityPda(programId: PublicKey): PublicKey {\n const [pubkey] = PublicKey.findProgramAddressSync(\n [Buffer.from(\"__event_authority\")],\n programId,\n );\n return pubkey;\n }\n\n static getNativePda(programId: PublicKey): PublicKey {\n const [pubkey] = PublicKey.findProgramAddressSync(\n [Buffer.from(\"unwrap_native_receiver\")],\n programId,\n );\n return pubkey;\n }\n\n static getBufferForIntentSignature(\n intentId: Buffer,\n intentProgramSigPrefix: IntentProgramSigPrefix = IntentProgramSigPrefix.prod,\n chainId: number = constants.SOLANA_CHAIN_ID,\n ): Buffer {\n const chainBuffer = Buffer.alloc(4);\n chainBuffer.writeUInt32LE(chainId, 0);\n\n const intentSigPrefix = Buffer.from([105, 110, 116, 101, 110, 116, 115]);\n\n return Buffer.concat([\n Buffer.from(intentProgramSigPrefix),\n chainBuffer,\n intentSigPrefix,\n intentId,\n ]);\n }\n\n static getDelegateApprovedBudgetsArgs(tokens: DelegateApprovedBudgetsArgs) {\n let enumArgs: any;\n if (\"set\" in tokens) {\n enumArgs = {\n set: {\n 0: tokens.set.map(({ tokenMint, approvedAmount, expiration }) => ({\n tokenMint: tokenMint,\n approvedAmount: new BN(approvedAmount.toString()),\n expiration: new BN(expiration.toString()),\n })),\n },\n };\n } else if (\"setAny\" in tokens) {\n enumArgs = { setAny: {} };\n } else {\n enumArgs = { revoke: {} };\n }\n\n return enumArgs;\n }\n\n static getBufferForBudgetSignature(\n delegate: PublicKey,\n nonce: bigint,\n tokens: DelegateApprovedBudgetsArgs,\n intentProgramSigPrefix: IntentProgramSigPrefix = IntentProgramSigPrefix.prod,\n chainId: number = constants.SOLANA_CHAIN_ID,\n ): Buffer {\n const enumArgs = IntentsClient.getDelegateApprovedBudgetsArgs(tokens);\n const coder = new BorshCoder(IDL);\n const argsBuffer = coder.types.encode(\"setApprovedTokenBudgets\", enumArgs);\n\n const chainBuffer = Buffer.alloc(4);\n chainBuffer.writeUInt32LE(chainId, 0);\n\n const budgetsSigPrefix = Buffer.from([98, 117, 100, 103, 101, 116, 115]);\n\n return Buffer.concat([\n Buffer.from(intentProgramSigPrefix),\n chainBuffer,\n budgetsSigPrefix,\n delegate.toBuffer(),\n Buffer.from(new BN(nonce.toString()).toArray(\"le\", 8)),\n argsBuffer,\n ]);\n }\n}\n","import { AddressType, Serializable } from \"./types\";\n\nexport class AddressesList implements Serializable {\n public readonly addresses: Buffer[];\n private lookupMap: Map<string, number> = new Map();\n\n constructor(addresses: AddressType[]) {\n this.addresses = addresses.map((address) => Buffer.from(address));\n }\n\n public lookupIndex(address: AddressType): number {\n const key = address.toString(\"hex\");\n const index = this.lookupMap.get(key);\n if (index === undefined) {\n throw new Error(`Address ${key} not found in AddressesList`);\n }\n return index;\n }\n\n serialize(): Buffer {\n const sizeGroups: Map<number, Buffer[]> = new Map();\n for (const address of this.addresses) {\n const sizeGroup = sizeGroups.get(address.length);\n if (sizeGroup === undefined) {\n sizeGroups.set(address.length, [address]);\n } else {\n sizeGroup.push(address);\n }\n }\n\n const sortedKeys = Array.from(sizeGroups.keys()).sort();\n /**\n * chunks size = items in chunk count * item length\n * chunk header size = 2 bytes\n * total header size = 1 byte + chunks count * chunk header size (2)\n */\n const result = Buffer.alloc(\n sortedKeys.reduce((acc, k) => acc + sizeGroups.get(k)!.length * k, 0) +\n sortedKeys.length * 2 +\n 1,\n );\n result[0] = sortedKeys.length;\n let offset = 1;\n let dataOffset = 1 + sortedKeys.length * 2;\n let index = 0;\n\n for (const key of sortedKeys) {\n const currentGroup = sizeGroups.get(key)!.sort((a, b) => a.compare(b));\n for (const address of currentGroup) {\n this.lookupMap.set(address.toString(\"hex\"), index);\n index += 1;\n }\n result[offset] = key; // item size;\n offset += 1;\n result[offset] = currentGroup.length; // items count\n offset += 1;\n\n const addressesBuffer = Buffer.concat(currentGroup);\n result.set(addressesBuffer, dataOffset);\n dataOffset += addressesBuffer.length;\n }\n\n return result;\n }\n\n static deserialize(buffer: Buffer): AddressesList | null {\n const addresses: AddressType[] = [];\n if (buffer.length == 0) {\n return null;\n }\n\n const chunksCount = buffer[0]!;\n let offset = 1;\n let dataOffset = 1 + chunksCount * 2;\n\n for (let i = 0; i < chunksCount; i++) {\n const itemSize = buffer[offset]!;\n offset += 1;\n const itemsCount = buffer[offset]!;\n offset += 1;\n\n if (offset > buffer.length) return null;\n\n for (let j = 0; j < itemsCount; j++) {\n const address = buffer.subarray(dataOffset, dataOffset + itemSize);\n addresses.push(address);\n dataOffset += itemSize;\n }\n }\n\n return new AddressesList(addresses);\n }\n}\n","import { PublicKey, SystemProgram } from \"@solana/web3.js\";\nimport { keccak256 } from \"js-sha3\";\nimport {\n AddressType,\n AnyOr,\n GiveToken,\n IntentType,\n ReceiverInfo,\n Serializable,\n TakeToken,\n} from \"./types\";\nimport { AddressesList } from \"./addresses-list\";\n\nenum AnyOrExact {\n Any = 1,\n Exact = 0,\n}\n\nconst anyBuffer = Buffer.from([AnyOrExact.Any]);\nconst exactBuffer = Buffer.from([AnyOrExact.Exact]);\nconst emptyArrayBuffer = Buffer.from([0]);\nconst separationBuffer = Buffer.from([1]);\n\nclass BufferReader {\n private offset: number = 0;\n\n constructor(private buffer: Buffer) {}\n\n // Базовые примитивы\n readU8(): number {\n return this.buffer[this.offset++]!;\n }\n\n readU16LE(): number {\n const val = this.buffer.readUInt16LE(this.offset);\n this.offset += 2;\n return val;\n }\n\n readU32LE(): number {\n const val = this.buffer.readUInt32LE(this.offset);\n this.offset += 4;\n return val;\n }\n\n readU64LE(): bigint {\n const val = this.buffer.readBigUInt64LE(this.offset);\n this.offset += 8;\n return val;\n }\n\n readBigIntBE(): bigint {\n const buf = this.buffer.subarray(this.offset, this.offset + 32);\n this.offset += 32;\n return BigInt(\"0x\" + buf.toString(\"hex\"));\n }\n\n readBytes(length: number): Buffer {\n const buf = this.buffer.subarray(this.offset, this.offset + length);\n this.offset += length;\n return buf;\n }\n\n // Проверка маркеров\n private peekU8(): number {\n return this.buffer[this.offset]!;\n }\n\n private consumeIfEquals(value: number): boolean {\n if (this.peekU8() === value) {\n this.offset++;\n return true;\n }\n return false;\n }\n\n private consumeSeparator(): void {\n this.consumeIfEquals(1);\n }\n\n // Generic: Option<T>\n readOption<T>(reader: () => T): T | undefined {\n if (this.consumeIfEquals(0)) {\n return undefined;\n }\n this.consumeSeparator();\n return reader();\n }\n\n // Generic: Array<T>\n readArray<T>(reader: () => T, lengthSize: \"u8\" | \"u16\" = \"u8\"): T[] {\n const length = lengthSize === \"u8\" ? this.readU8() : this.readU16LE();\n if (length === 0) return [];\n\n const result: T[] = [];\n for (let i = 0; i < length; i++) {\n result.push(reader());\n }\n return result;\n }\n\n // Generic: AnyOr<T>\n readAnyOr<T>(reader: () => T): AnyOr<T> {\n const anyOrExact = this.readU8();\n if (anyOrExact === AnyOrExact.Any) {\n return \"any\";\n }\n return reader();\n }\n\n // Generic: Option<AnyOr<T>>\n readOptionAnyOr<T>(reader: () => T): AnyOr<T> | undefined {\n if (this.consumeIfEquals(0)) {\n return undefined;\n }\n this.consumeSeparator();\n return this.readAnyOr(reader);\n }\n\n // Generic: ShortArray (length as u16)\n readShortArray(): Buffer | undefined {\n if (this.consumeIfEquals(0)) {\n return undefined;\n }\n this.consumeSeparator();\n const length = this.readU16LE();\n return this.readBytes(length);\n }\n\n // Generic: Fixed-size buffer with separator\n readFixedBuffer(size: number): Buffer | undefined {\n if (this.consumeIfEquals(0)) {\n return undefined;\n }\n this.consumeSeparator();\n return this.readBytes(size);\n }\n\n getOffset(): number {\n return this.offset;\n }\n\n setOffset(offset: number): void {\n this.offset = offset;\n }\n}\n\nexport class Intent implements Serializable {\n public data: IntentType;\n private addressesList: AddressesList;\n private serializedList: Buffer;\n\n constructor(intent: IntentType) {\n this.data = intent;\n this.addressesList = this.buildAddressesListFromIntent(intent);\n this.serializedList = this.addressesList.serialize();\n }\n\n private buildAddressesListFromIntent(intent: IntentType): AddressesList {\n const addressSet = new Set<string>();\n\n const collect = (addr: AddressType) => addressSet.add(addr.toString(\"hex\"));\n\n const collectMap = (list?: ReceiverInfo[]) => {\n if (!list) return;\n for (const { address } of list) collect(address);\n };\n\n const collectGiveTokens = (list?: GiveToken[]) => {\n if (!list) return;\n for (const token of list) {\n if (token.input !== \"any\") collect(token.input);\n collect(token.output);\n }\n };\n\n const collectTakeTokens = (list: TakeToken[]) => {\n if (!list) return;\n for (const token of list) {\n collect(token.input);\n\n if (token.output !== \"any\") {\n for (const output of token.output) {\n if (output.token && output.token !== \"any\") collect(output.token);\n }\n }\n }\n };\n\n for (const token of intent.inputTokens) collect(token.token);\n collectGiveTokens(intent.giveTokens);\n collectTakeTokens(intent.takeTokens);\n\n collectMap(intent.receiverDetails);\n collectMap(intent.dstAuthorityAddress);\n\n //intent.allowedSenders?.forEach(collect);\n //intent.srcAllowedCancelBeneficiary?.forEach(collect);\n\n const uniqueAddresses = Array.from(addressSet).map((hex) =>\n Buffer.from(hex, \"hex\"),\n );\n return new AddressesList(uniqueAddresses);\n }\n\n private serializeReceiversInfo(details: ReceiverInfo[]): Buffer {\n if (!details || details.length === 0) return emptyArrayBuffer;\n\n const buffers = details.map(({ chainIds, address }) => {\n let buf: Buffer;\n\n if (chainIds === \"any\") {\n buf = Buffer.alloc(2);\n buf.writeUInt8(this.addressesList.lookupIndex(address), 0);\n buf.writeUInt8(AnyOrExact.Any, 1);\n } else {\n buf = Buffer.alloc(1 + 1 + 1 + chainIds.length * 4);\n buf.writeUInt8(this.addressesList.lookupIndex(address), 0);\n buf.writeUInt8(AnyOrExact.Exact, 1);\n buf.writeUInt8(chainIds.length, 2);\n\n for (const [index, chainId] of chainIds.entries()) {\n buf.writeUInt32LE(chainId, 3 + index * 4);\n }\n }\n\n return buf;\n });\n\n const lengthBuf = Buffer.alloc(1);\n lengthBuf.writeUInt8(buffers.length, 0);\n\n return Buffer.concat([lengthBuf, ...buffers]);\n }\n\n private serializeInputTokens(): Buffer {\n const buffers = this.data.inputTokens.map((token) => {\n const buf = Buffer.alloc(25);\n buf[0] = this.addressesList.lookupIndex(token.token);\n buf.writeBigUInt64LE(token.minPartialAmount, 1);\n buf.writeBigUInt64LE(token.maxPartialAmount, 9);\n buf.writeBigUInt64LE(token.constraintBudget, 17);\n return buf;\n });\n const lengthBuf = Buffer.alloc(1);\n lengthBuf.writeUInt8(buffers.length, 0);\n\n return Buffer.concat([lengthBuf, ...buffers]);\n }\n\n private serializeGiveTokens(tokens?: GiveToken[]): Buffer {\n if (!tokens || tokens.length === 0) return emptyArrayBuffer;\n const buffers = tokens.map((token) => {\n let buf: Buffer;\n\n if (token.input === \"any\") {\n buf = Buffer.alloc(2);\n buf.writeUInt8(this.addressesList.lookupIndex(token.output), 0);\n buf.writeUInt8(AnyOrExact.Any, 1);\n } else {\n buf = Buffer.alloc(35);\n buf.writeUInt8(this.addressesList.lookupIndex(token.output), 0);\n buf.writeUInt8(AnyOrExact.Exact, 1);\n buf.writeUInt8(this.addressesList.lookupIndex(token.input), 2);\n buf.writeBigInt64LE(token.price, 3);\n\n let hex = token.price.toString(16).padStart(64, \"0\");\n const u256BufBE = Buffer.from(hex, \"hex\");\n u256BufBE.copy(buf, 3);\n }\n return buf;\n });\n\n const lengthBuf = Buffer.alloc(1);\n lengthBuf.writeUInt8(tokens.length, 0);\n\n return Buffer.concat([lengthBuf, ...buffers]);\n }\n\n private serializeTakeTokens(tokens: TakeToken[]): Buffer {\n let length = 0;\n const buffers = tokens.map((token) => {\n let buf: Buffer;\n\n if (token.output === \"any\") {\n length = 1;\n buf = Buffer.alloc(2);\n buf.writeUInt8(this.addressesList.lookupIndex(token.input), 0);\n buf.writeUInt8(AnyOrExact.Any, 1);\n } else {\n length += token.output.length;\n buf = Buffer.concat(\n token.output.map((output) => {\n if (output.token === \"any\") {\n const buf = Buffer.alloc(6);\n buf.writeUInt8(AnyOrExact.Exact, 0);\n buf.writeUInt8(output.chainId, 1);\n buf.writeUInt8(AnyOrExact.Any, 5);\n return Buffer.concat([\n Buffer.from([this.addressesList.lookupIndex(token.input)]),\n buf,\n ]);\n } else {\n let buf;\n\n if (output.price === \"any\") {\n buf = Buffer.alloc(8);\n buf.writeUInt8(AnyOrExact.Exact, 0);\n buf.writeUInt32LE(output.chainId, 1);\n buf.writeUInt8(AnyOrExact.Exact, 5);\n buf.writeUInt8(this.addressesList.lookupIndex(output.token), 6);\n buf.writeUInt8(AnyOrExact.Any, 7);\n } else {\n buf = Buffer.alloc(40);\n buf.writeUInt8(AnyOrExact.Exact, 0);\n buf.writeUInt32LE(output.chainId, 1);\n buf.writeUInt8(AnyOrExact.Exact, 5);\n buf.writeUInt8(this.addressesList.lookupIndex(output.token), 6);\n buf.writeUInt8(AnyOrExact.Exact, 7);\n\n let hex = output.price.toString(16).padStart(64, \"0\");\n const u256BufBE = Buffer.from(hex, \"hex\");\n u256BufBE.copy(buf, 8);\n }\n\n return Buffer.concat([\n Buffer.from([this.addressesList.lookupIndex(token.input)]),\n buf,\n ]);\n }\n }),\n );\n }\n\n return buf;\n });\n\n const lengthBuf = Buffer.alloc(1);\n // total count of buffers\n lengthBuf.writeUInt8(length, 0);\n\n return Buffer.concat([lengthBuf, ...buffers]);\n }\n\n private serializeExternalCallHash(buf?: AnyOr<Buffer>): Buffer {\n // Option<AnyOr<[u8; 32]>>\n if (!buf) {\n return emptyArrayBuffer;\n }\n\n if (buf === \"any\") {\n return Buffer.concat([separationBuffer, anyBuffer]);\n } else {\n return Buffer.concat([separationBuffer, exactBuffer, buf]);\n }\n }\n\n private serializeOptionalBytes(buf?: Buffer): Buffer {\n if (buf) {\n let lenBuffer = Buffer.alloc(2);\n lenBuffer.writeInt16LE(buf.length);\n return Buffer.concat([separationBuffer, lenBuffer, buf]);\n }\n return emptyArrayBuffer;\n }\n\n private serializeDlnMetadata(buf?: AnyOr<Buffer>): Buffer {\n if (!buf) {\n return emptyArrayBuffer;\n }\n\n if (buf === \"any\") {\n return Buffer.concat([separationBuffer, anyBuffer]);\n } else {\n const lengthBuf = Buffer.alloc(2);\n lengthBuf.writeInt16LE(buf.length, 0);\n\n return Buffer.concat([separationBuffer, exactBuffer, lengthBuf, buf]);\n }\n }\n\n private serializeShortArray(buf?: Buffer): Buffer {\n if (!buf) {\n return emptyArrayBuffer;\n }\n\n const lengthBuf = Buffer.alloc(2);\n lengthBuf.writeInt16LE(buf.length, 0);\n\n return Buffer.concat([separationBuffer, lengthBuf, buf]);\n }\n\n private serializeAllowedSenders(addrs: AnyOr<AddressType[]>): Buffer {\n if (this.data.allowedSenders === \"any\") {\n return anyBuffer;\n }\n\n const lengthBuf = Buffer.alloc(1);\n lengthBuf.writeUInt8(addrs.length, 0);\n\n return Buffer.concat([exactBuffer, lengthBuf, ...(addrs as AddressType[])]);\n }\n\n private serializeAddresses(addrs?: AddressType[]): Buffer {\n if (!addrs || addrs.length === 0) {\n return emptyArrayBuffer;\n }\n\n const lengthBuf = Buffer.alloc(1);\n lengthBuf.writeUInt8(addrs.length, 0);\n\n return Buffer.concat([lengthBuf, ...addrs]);\n }\n\n private serializeOptionalPubkey(pk?: PublicKey): Buffer {\n return pk\n ? Buffer.concat([separationBuffer, pk.toBuffer()])\n : emptyArrayBuffer;\n }\n\n serialize(): Buffer {\n const parts: Buffer[] = [];\n\n // 1. chainId\n const idBuf = Buffer.alloc(4);\n idBuf.writeUInt32LE(this.data.chainId, 0);\n parts.push(idBuf);\n\n // 2. owner\n // parts.push(this.data.owner.toBuffer());\n\n // 3. authority\n if (this.data.authority) {\n parts.push(separationBuffer, this.data.authority.toBuffer());\n } else {\n parts.push(emptyArrayBuffer);\n }\n\n // 4–5. timestamp, expirationTimestamp (u64 LE)\n const tsBuf = Buffer.alloc(16);\n tsBuf.writeBigUInt64LE(BigInt(this.data.timestamp), 0);\n tsBuf.writeBigUInt64LE(BigInt(this.data.expirationTimestamp), 8);\n parts.push(tsBuf);\n\n // 6. AddressesList\n parts.push(this.serializedList);\n\n // 7. inputTokens (CharArray<InputToken>)\n parts.push(this.serializeInputTokens());\n\n // 8. giveTokens (CharArray<GiveToken>, optional as empty array)\n parts.push(this.serializeGiveTokens(this.data.giveTokens));\n\n // 9. takeTokens (CharArray<TakeToken>)\n parts.push(this.serializeTakeTokens(this.data.takeTokens));\n\n // 10. receiverDetails (ReceiversInfo)\n parts.push(this.serializeReceiversInfo(this.data.receiverDetails));\n\n // 11. srcAllowedSenders (CharArray<GenericAddress>)\n parts.push(this.serializeAllowedSenders(this.data.allowedSenders));\n\n // 12. preInteractions (Option<Pubkey>)\n parts.push(this.serializeOptionalPubkey(this.data.preInteractions));\n\n // 13. postInteractions (Option<Pubkey>)\n parts.push(this.serializeOptionalPubkey(this.data.postInteractions));\n\n // 14. validationRules (Option<ShortArray<u8>>)\n parts.push(this.serializeShortArray(this.data.validationRules));\n\n // 15. executionMetadataHash (Option<CharArray<u8>>)\n parts.push(this.serializeOptionalBytes(this.data.executionMetadata));\n\n // 16. srcAllowedCancelBeneficiary (CharArray<GenericAddress>)\n parts.push(this.serializeAddresses(this.data.srcAllowedCancelBeneficiary));\n\n // 17. dstAuthorityAddress (ReceiversInfo)\n parts.push(this.serializeReceiversInfo(this.data.dstAuthorityAddress));\n\n // 18. externalCallHash (Option<AnyOr<[u8; 32]>>)\n parts.push(this.serializeExternalCallHash(this.data.externalCallHash));\n\n // 19. dlnMetadata (Option<AnyOr<ShortArray<u8>>>)\n parts.push(this.serializeDlnMetadata(this.data.dlnMetadata));\n\n return Buffer.concat(parts);\n }\n\n static getId(\n serializedIntent: Buffer,\n maker: PublicKey,\n programId: PublicKey,\n ): { hex: string; buffer: Buffer; rawHash: Buffer } {\n const string = keccak256(serializedIntent);\n const rawHash = Buffer.from(string, \"hex\");\n const [intentId] = PublicKey.findProgramAddressSync(\n [Buffer.from(\"intent_id\"), maker.toBuffer(), rawHash],\n programId,\n );\n return {\n hex: `0x${intentId.toBuffer().toString(\"hex\")}`,\n buffer: intentId.toBuffer(),\n rawHash,\n };\n }\n\n /*\n public static getTextToSign(intent: Intent): string {\n const string = intent.getId().hex;\n\n return string;\n }\n */\n\n static deserialize(buffer: Buffer, owner: PublicKey): Intent | null {\n const reader = new BufferReader(buffer);\n\n // 1. chainId\n const chainId = reader.readU32LE();\n\n // 3. authority (Option<PublicKey>)\n const authority = reader.readOption(\n () => new PublicKey(reader.readBytes(32)),\n );\n\n // 4-5. timestamp, expirationTimestamp\n const timestamp = Number(reader.readU64LE());\n const expirationTimestamp = Number(reader.readU64LE());\n\n // 6. AddressesList\n const addressesListStart = reader.getOffset();\n const chunksCount = reader.readU8();\n const headerSize = 1 + chunksCount * 2;\n\n // Вычисляем размер данных\n let dataSize = 0;\n const tempOffset = reader.getOffset();\n for (let i = 0; i < chunksCount; i++) {\n const itemSize = buffer[tempOffset + i * 2]!;\n const itemsCount = buffer[tempOffset + i * 2 + 1]!;\n dataSize += itemSize * itemsCount;\n }\n\n const addressesListBuffer = buffer.subarray(\n addressesListStart,\n addressesListStart + headerSize + dataSize,\n );\n const addressesList = AddressesList.deserialize(addressesListBuffer);\n if (addressesList == null) return null;\n reader.setOffset(addressesListStart + headerSize + dataSize);\n\n // Helper: получить адрес по индексу\n const getAddress = (idx: number): AddressType => {\n return addressesList.addresses[idx]!;\n };\n\n // 7. inputTokens\n const inputTokens = reader.readArray(() => ({\n token: getAddress(reader.readU8()),\n minPartialAmount: reader.readU64LE(),\n maxPartialAmount: reader.readU64LE(),\n constraintBudget: reader.readU64LE(),\n }));\n\n // 8. giveTokens\n const giveTokens = reader.readArray(() => {\n const outputIdx = reader.readU8();\n const anyOrExact = reader.readU8();\n\n if (anyOrExact === AnyOrExact.Any) {\n return {\n input: \"any\" as const,\n output: getAddress(outputIdx),\n };\n }\n\n return {\n input: getAddress(reader.readU8()),\n output: getAddress(outputIdx),\n price: reader.readBigIntBE(),\n };\n });\n\n // 9. takeTokens\n const takeTokensMap: Map<number, TakeToken[\"output\"][number][]> = new Map();\n reader.readArray(() => {\n const inputIdx = reader.readU8();\n const output: TakeToken[\"output\"][number] = reader.readAnyOr(() => {\n const chainId = reader.readU32LE();\n const tokenAndPrice = reader.readAnyOr(() => {\n const outTokenIdx = reader.readU8();\n const price = reader.readAnyOr(() => reader.readBigIntBE());\n\n return {\n token: getAddress(outTokenIdx),\n price,\n };\n });\n\n if (tokenAndPrice === \"any\") {\n return { chainId, token: \"any\" } as TakeToken[\"output\"][number];\n } else {\n return {\n chainId,\n token: tokenAndPrice.token,\n price: tokenAndPrice.price,\n } as TakeToken[\"output\"][number];\n }\n });\n\n let inputArray = takeTokensMap.has(inputIdx)\n ? takeTokensMap.get(inputIdx)!\n : takeTokensMap.set(inputIdx, []).get(inputIdx)!;\n inputArray.push(output);\n }, \"u8\");\n\n const takeTokens: TakeToken[] = [];\n for (const [k, v] of takeTokensMap.entries()) {\n takeTokens.push({\n input: getAddress(k),\n output: v as TakeToken[\"output\"],\n });\n }\n\n // let procesedTakeTokens = 0;\n // while procesedTakeTokens < takeTokensCount {\n // let processedOutputs = 0;\n\n // while (processedOutputs < takeTokensOutputCount) {\n // const anyOrExact = reader.readU8();\n\n // if (anyOrExact === AnyOrExact.Any) {\n // takeTokens.push({\n // input: getAddress(inputIdx),\n // output: 'any',\n // });\n // processedOutputs++;\n // } else {\n // const outputChain = reader.readU32LE();\n // let output: TakeToken['output'][number] | undefined = undefined;\n\n // const tokenAnyOrExact = reader.readU8();\n // if (tokenAnyOrExact === AnyOrExact.Any) {\n // output = {\n // chainId: outputChain,\n // token: 'any'\n // }\n // } else {\n // const token = getAddress(reader.readU8());\n // const priceAnyOrExact = reader.readU8();\n // output = {\n // token,\n // chainId: outputChain,\n // price: priceAnyOrExact === AnyOrExact.Any\n // ? 'any'\n // : reader.readBigIntBE()\n // }\n // }\n // if (output == undefined) return null;\n\n // takeTokens.push({\n // input: getAddress(inputIdx),\n // output: [output],\n // });\n // processedOutputs++;\n // }\n // }\n\n // Helper: ReceiverInfo deserializer\n const readReceiverInfo = (): ReceiverInfo => {\n const addressIdx = reader.readU8();\n const anyOrExact = reader.readU8();\n\n if (anyOrExact === AnyOrExact.Any) {\n return {\n address: getAddress(addressIdx),\n chainIds: \"any\",\n };\n }\n\n const chainIds = reader.readArray(() => reader.readU32LE());\n return {\n address: getAddress(addressIdx),\n chainIds,\n };\n };\n\n // 10. receiverDetails\n const receiverDetails = reader.readArray(readReceiverInfo);\n\n // 11. allowedSenders\n const allowedSenders = reader.readAnyOr(() =>\n reader.readArray(() => reader.readBytes(32)),\n );\n\n // 12. preInteractions\n const preInteractions = reader.readOption(\n () => new PublicKey(reader.readBytes(32)),\n );\n\n // 13. postInteractions\n const postInteractions = reader.readOption(\n () => new PublicKey(reader.readBytes(32)),\n );\n\n // 14. validationRules\n const validationRules = reader.readShortArray();\n\n // 15. executionMetadataHash\n const executionMetadata = reader.readShortArray();\n\n // 16. srcAllowedCancelBeneficiary\n const srcAllowedCancelBeneficiary = reader.readArray(() =>\n reader.readBytes(32),\n );\n\n // 17. dstAuthorityAddress\n const dstAuthorityAddress = reader.readArray(readReceiverInfo);\n\n // 18. externalCallHash\n const externalCallHash = reader.readOptionAnyOr(() => reader.readBytes(32));\n\n // 19. dlnMetadata\n const dlnMetadata = reader.readOptionAnyOr(() => {\n const length = reader.readU16LE();\n return reader.readBytes(length);\n });\n\n // Создаем IntentType\n const intentData: IntentType = {\n owner,\n chainId,\n authority,\n timestamp,\n expirationTimestamp,\n inputTokens,\n giveTokens: giveTokens.length > 0 ? giveTokens : undefined,\n takeTokens,\n receiverDetails,\n allowedSenders,\n preInteractions,\n postInteractions,\n validationRules,\n executionMetadata,\n srcAllowedCancelBeneficiary:\n srcAllowedCancelBeneficiary.length > 0\n ? srcAllowedCancelBeneficiary\n : undefined,\n dstAuthorityAddress,\n externalCallHash,\n dlnMetadata,\n };\n\n return new Intent(intentData);\n }\n}\n"]}
1
+ {"version":3,"sources":["../idl/intents-program.ts","../src/helpers.ts","../src/client.ts","../src/addresses-list.ts","../src/intent.ts"],"names":["IDL","bigintToArray","n","type","size","BN","getComputeBudgetIxs","computeBudget","ixs","ComputeBudgetProgram","getVersionedTransaction","instructions","payer","blockhash","ALTs","VersionedTransaction","MessageV0","getTokenProgramId","connection","mint","x","spl","IntentProgramSigPrefix","DEFAULT_RECORD_OFFSET","RECORD_META_DATA_SIZE","IntentsClient","_IntentsClient","programId","recordProgramId","RECORD_PROGRAM_ID","AnchorProvider","setProvider","Program","message","signature","signerKey","rawReprAsBytes","hexReprAsBytes","signerBytes","nacl","length","budgets","accountInfo","data","intentId","intentStorage","maker","makerInfoPda","delegate","makerInfo","tokens","tokenProgram","TOKEN_PROGRAM_ID","amounts","accounts","amount","currentTokenProgram","getAssociatedTokenAddressSync","id","rentPayer","SystemProgram","tradeId","taker","tokenMint","dlnOrder","dlnMetadata","dlnSrc","PublicKey","programs","accountsResolver","dlnSrcResolver","dlnSrcState","dlnSrcGiveOrderState","dlnSrcGiveOrderWallet","dlnSrcAuthorizedNativeSender","dlnSrcFeeLedgerWallet","intentGiveTokenATA","args","ASSOCIATED_TOKEN_PROGRAM_ID","receiver","unwrapTakeToken","unwrapNativeSol","receiverTakeToken","intentTakeTokenATA","NATIVE_MINT","feeLedger","ix","receiverIdx","meta","encodedIntentHash","encodedIntentLength","inputTokensAmount","space","isHanoi","sigType","sigTypeInternal","nonce","enumArgs","encodedApprovedTokenBudgets","timestamp","beginAmount","target","inputMint","outputMint","inputTokenProgram","outputTokenProgram","makerInputToken","takerInputToken","takerOutputToken","intentOutputToken","SYSVAR_INSTRUCTIONS_PUBKEY","endAmount","bps","record","offset","intentTokenAccount","makerTokenAccount","authority","createCloseAccountInstruction","buffer","createWriteInstruction","currentLamports","currentSize","requiredSize","deltaLamports","transferIx","reallocIx","createReallocateInstruction","intent","initIntentIxs","recordAccount","Keypair","serializedIntent","lamports","budgetIxs","createAccountIx","initRecordIx","createInitializeInstruction","tx","txs","closeRecordIxs","tmpTx","tmpSize","transactions","constants","lastInstructions","writeIxs","low","high","lastGoodIx","lastGoodLen","mid","finalInstructions","combinedInstructions","combinedTx","combinedSize","updateTx","init","write","updateIntentIxs","reallocRecordIxs","bufferOffset","closeIntentIxs","withdrawIntentTokenAccountIxs","swapBeginIxs","swapEndIxs","pubkey","user","intentProgramSigPrefix","chainId","chainBuffer","intentSigPrefix","approvedAmount","expiration","argsBuffer","BorshCoder","budgetsSigPrefix","AddressesList","_AddressesList","addresses","address","key","index","sizeGroups","sizeGroup","sortedKeys","result","acc","k","dataOffset","currentGroup","a","b","addressesBuffer","chunksCount","i","itemSize","itemsCount","j","anyBuffer","exactBuffer","emptyArrayBuffer","separationBuffer","BufferReader","val","buf","value","reader","lengthSize","Intent","_Intent","addressSet","collect","addr","collectMap","list","collectGiveTokens","token","collectTakeTokens","output","uniqueAddresses","hex","details","buffers","chainIds","lengthBuf","lenBuffer","addrs","pk","parts","idBuf","tsBuf","string","keccak256","rawHash","owner","expirationTimestamp","addressesListStart","headerSize","dataSize","tempOffset","addressesListBuffer","addressesList","getAddress","idx","inputTokens","giveTokens","outputIdx","takeTokensMap","inputIdx","tokenAndPrice","outTokenIdx","price","takeTokens","v","readReceiverInfo","addressIdx","receiverDetails","allowedSenders","preInteractions","postInteractions","validationRules","executionMetadata","srcAllowedCancelBeneficiary","dstAuthorityAddress","externalCallHash","intentData"],"mappings":"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","file":"index.js","sourcesContent":["/**\n * Program IDL in camelCase format in order to be used in JS/TS.\n *\n * Note that this is only a type helper and is not the actual IDL. The original\n * IDL can be found at `target/idl/intents_program.json`.\n */\nexport type IntentsProgram = {\n address: \"intV2u5xDE8T2ZMFP3W3X6sVqGHBT7zvYtTW3rRLmvE\";\n metadata: {\n name: \"intentsProgram\";\n version: \"0.0.1\";\n spec: \"0.1.0\";\n description: \"deBridge Intents Program\";\n };\n instructions: [\n {\n name: \"about\";\n discriminator: [62, 111, 52, 44, 118, 185, 179, 229];\n accounts: [];\n args: [];\n },\n {\n name: \"approveProtocolTransfers\";\n discriminator: [17, 3, 184, 144, 112, 130, 116, 98];\n accounts: [\n {\n name: \"maker\";\n signer: true;\n },\n {\n name: \"state\";\n pda: {\n seeds: [\n {\n kind: \"const\";\n value: [115, 116, 97, 116, 101];\n },\n ];\n };\n },\n {\n name: \"tokenProgram\";\n },\n ];\n args: [\n {\n name: \"amounts\";\n type: {\n vec: \"u64\";\n };\n },\n ];\n },\n {\n name: \"cancelIntent\";\n discriminator: [67, 73, 238, 244, 208, 89, 225, 59];\n accounts: [\n {\n name: \"initiator\";\n signer: true;\n },\n {\n name: \"intentStorage\";\n writable: true;\n },\n {\n name: \"state\";\n },\n ];\n args: [];\n },\n {\n name: \"closeAccount\";\n discriminator: [125, 255, 149, 14, 110, 34, 72, 24];\n accounts: [\n {\n name: \"programAuthority\";\n signer: true;\n address: \"intV2u5xDE8T2ZMFP3W3X6sVqGHBT7zvYtTW3rRLmvE\";\n },\n {\n name: \"target\";\n writable: true;\n },\n {\n name: \"rentReceiver\";\n writable: true;\n },\n ];\n args: [];\n },\n {\n name: \"closeIntent\";\n discriminator: [112, 245, 154, 249, 57, 126, 54, 122];\n accounts: [\n {\n name: \"initiator\";\n signer: true;\n },\n {\n name: \"maker\";\n docs: [\"CHECK\"];\n },\n {\n name: \"makerInfo\";\n writable: true;\n pda: {\n seeds: [\n {\n kind: \"const\";\n value: [109, 97, 107, 101, 114, 95, 105, 110, 102, 111];\n },\n {\n kind: \"account\";\n path: \"maker\";\n },\n ];\n };\n },\n {\n name: \"rentPayer\";\n writable: true;\n },\n {\n name: \"intentStorage\";\n writable: true;\n },\n {\n name: \"state\";\n },\n {\n name: \"systemProgram\";\n address: \"11111111111111111111111111111111\";\n },\n ];\n args: [];\n },\n {\n name: \"collectFee\";\n discriminator: [60, 173, 247, 103, 4, 93, 130, 48];\n accounts: [\n {\n name: \"feeCollector\";\n signer: true;\n relations: [\"state\"];\n },\n {\n name: \"state\";\n pda: {\n seeds: [\n {\n kind: \"const\";\n value: [115, 116, 97, 116, 101];\n },\n ];\n };\n },\n {\n name: \"feeLedger\";\n writable: true;\n pda: {\n seeds: [\n {\n kind: \"account\";\n path: \"state\";\n },\n {\n kind: \"account\";\n path: \"tokenProgram\";\n },\n {\n kind: \"account\";\n path: \"mint\";\n },\n ];\n program: {\n kind: \"const\";\n value: [\n 140,\n 151,\n 37,\n 143,\n 78,\n 36,\n 137,\n 241,\n 187,\n 61,\n 16,\n 41,\n 20,\n 142,\n 13,\n 131,\n 11,\n 90,\n 19,\n 153,\n 218,\n 255,\n 16,\n 132,\n 4,\n 142,\n 123,\n 216,\n 219,\n 233,\n 248,\n 89,\n ];\n };\n };\n },\n {\n name: \"destination\";\n writable: true;\n },\n {\n name: \"mint\";\n },\n {\n name: \"tokenProgram\";\n },\n ];\n args: [\n {\n name: \"amount\";\n type: \"u64\";\n },\n ];\n },\n {\n name: \"executeIntent\";\n discriminator: [53, 130, 47, 154, 227, 220, 122, 212];\n accounts: [\n {\n name: \"taker\";\n writable: true;\n signer: true;\n },\n {\n name: \"state\";\n },\n {\n name: \"maker\";\n relations: [\"intentStorage\"];\n },\n {\n name: \"makerInfo\";\n writable: true;\n pda: {\n seeds: [\n {\n kind: \"const\";\n value: [109, 97, 107, 101, 114, 95, 105, 110, 102, 111];\n },\n {\n kind: \"account\";\n path: \"maker\";\n },\n ];\n };\n },\n {\n name: \"intentStorage\";\n writable: true;\n },\n {\n name: \"intentGiveToken\";\n writable: true;\n pda: {\n seeds: [\n {\n kind: \"account\";\n path: \"intentStorage\";\n },\n {\n kind: \"account\";\n path: \"tokenProgram\";\n },\n {\n kind: \"account\";\n path: \"tokenMint\";\n },\n ];\n program: {\n kind: \"const\";\n value: [\n 140,\n 151,\n 37,\n 143,\n 78,\n 36,\n 137,\n 241,\n 187,\n 61,\n 16,\n 41,\n 20,\n 142,\n 13,\n 131,\n 11,\n 90,\n 19,\n 153,\n 218,\n 255,\n 16,\n 132,\n 4,\n 142,\n 123,\n 216,\n 219,\n 233,\n 248,\n 89,\n ];\n };\n };\n },\n {\n name: \"dlnSrc\";\n address: \"srch38nzfcgwJnfKE6xWD8vfNJtudazwisdcociAuQt\";\n },\n {\n name: \"dlnSrcState\";\n },\n {\n name: \"dlnSrcGiveOrderState\";\n writable: true;\n },\n {\n name: \"dlnSrcGiveOrderWallet\";\n writable: true;\n },\n {\n name: \"dlnSrcAuthorizedNativeSender\";\n },\n {\n name: \"dlnSrcFeeLedgerWallet\";\n writable: true;\n },\n {\n name: \"tokenMint\";\n },\n {\n name: \"systemProgram\";\n address: \"11111111111111111111111111111111\";\n },\n {\n name: \"tokenProgram\";\n },\n {\n name: \"associatedTokenProgram\";\n address: \"ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL\";\n },\n {\n name: \"eventAuthority\";\n pda: {\n seeds: [\n {\n kind: \"const\";\n value: [\n 95,\n 95,\n 101,\n 118,\n 101,\n 110,\n 116,\n 95,\n 97,\n 117,\n 116,\n 104,\n 111,\n 114,\n 105,\n 116,\n 121,\n ];\n },\n ];\n };\n },\n {\n name: \"program\";\n },\n ];\n args: [\n {\n name: \"dlnOrderArgs\";\n type: {\n defined: {\n name: \"createOrderArgs\";\n };\n };\n },\n {\n name: \"dlnOrderNonce\";\n type: \"u64\";\n },\n {\n name: \"dlnMetadata\";\n type: \"bytes\";\n },\n {\n name: \"tradeId\";\n type: {\n array: [\"u8\", 32];\n };\n },\n ];\n },\n {\n name: \"executeIntent2\";\n discriminator: [57, 145, 38, 151, 5, 101, 106, 72];\n accounts: [\n {\n name: \"taker\";\n writable: true;\n signer: true;\n },\n {\n name: \"state\";\n pda: {\n seeds: [\n {\n kind: \"const\";\n value: [115, 116, 97, 116, 101];\n },\n ];\n };\n },\n {\n name: \"maker\";\n writable: true;\n relations: [\"intentStorage\"];\n },\n {\n name: \"makerInfo\";\n writable: true;\n pda: {\n seeds: [\n {\n kind: \"const\";\n value: [109, 97, 107, 101, 114, 95, 105, 110, 102, 111];\n },\n {\n kind: \"account\";\n path: \"maker\";\n },\n ];\n };\n },\n {\n name: \"intentStorage\";\n writable: true;\n },\n {\n name: \"intentTakeToken\";\n writable: true;\n pda: {\n seeds: [\n {\n kind: \"account\";\n path: \"intentStorage\";\n },\n {\n kind: \"account\";\n path: \"tokenProgram\";\n },\n {\n kind: \"account\";\n path: \"tokenMint\";\n },\n ];\n program: {\n kind: \"const\";\n value: [\n 140,\n 151,\n 37,\n 143,\n 78,\n 36,\n 137,\n 241,\n 187,\n 61,\n 16,\n 41,\n 20,\n 142,\n 13,\n 131,\n 11,\n 90,\n 19,\n 153,\n 218,\n 255,\n 16,\n 132,\n 4,\n 142,\n 123,\n 216,\n 219,\n 233,\n 248,\n 89,\n ];\n };\n };\n },\n {\n name: \"feeLedger\";\n writable: true;\n pda: {\n seeds: [\n {\n kind: \"account\";\n path: \"state\";\n },\n {\n kind: \"account\";\n path: \"tokenProgram\";\n },\n {\n kind: \"account\";\n path: \"tokenMint\";\n },\n ];\n program: {\n kind: \"const\";\n value: [\n 140,\n 151,\n 37,\n 143,\n 78,\n 36,\n 137,\n 241,\n 187,\n 61,\n 16,\n 41,\n 20,\n 142,\n 13,\n 131,\n 11,\n 90,\n 19,\n 153,\n 218,\n 255,\n 16,\n 132,\n 4,\n 142,\n 123,\n 216,\n 219,\n 233,\n 248,\n 89,\n ];\n };\n };\n },\n {\n name: \"receiver\";\n },\n {\n name: \"receiverTakeToken\";\n writable: true;\n },\n {\n name: \"tokenMint\";\n },\n {\n name: \"systemProgram\";\n address: \"11111111111111111111111111111111\";\n },\n {\n name: \"tokenProgram\";\n },\n {\n name: \"associatedTokenProgram\";\n address: \"ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL\";\n },\n {\n name: \"eventAuthority\";\n pda: {\n seeds: [\n {\n kind: \"const\";\n value: [\n 95,\n 95,\n 101,\n 118,\n 101,\n 110,\n 116,\n 95,\n 97,\n 117,\n 116,\n 104,\n 111,\n 114,\n 105,\n 116,\n 121,\n ];\n },\n ];\n };\n },\n {\n name: \"program\";\n },\n ];\n args: [\n {\n name: \"amount\";\n type: \"u64\";\n },\n {\n name: \"tradeId\";\n type: {\n array: [\"u8\", 32];\n };\n },\n ];\n },\n {\n name: \"initIntent\";\n discriminator: [231, 255, 81, 23, 112, 148, 49, 134];\n accounts: [\n {\n name: \"maker\";\n signer: true;\n },\n {\n name: \"rentPayer\";\n writable: true;\n signer: true;\n },\n {\n name: \"state\";\n },\n {\n name: \"intentStorage\";\n writable: true;\n },\n {\n name: \"systemProgram\";\n address: \"11111111111111111111111111111111\";\n },\n {\n name: \"eventAuthority\";\n pda: {\n seeds: [\n {\n kind: \"const\";\n value: [\n 95,\n 95,\n 101,\n 118,\n 101,\n 110,\n 116,\n 95,\n 97,\n 117,\n 116,\n 104,\n 111,\n 114,\n 105,\n 116,\n 121,\n ];\n },\n ];\n };\n },\n {\n name: \"program\";\n },\n ];\n args: [\n {\n name: \"space\";\n type: \"u16\";\n },\n {\n name: \"reserved\";\n type: {\n array: [\"u8\", 2];\n };\n },\n {\n name: \"encodedIntentHash\";\n type: {\n defined: {\n name: \"encodedIntentHash\";\n };\n };\n },\n ];\n },\n {\n name: \"initIntentByDelegate\";\n discriminator: [85, 140, 35, 112, 240, 67, 16, 40];\n accounts: [\n {\n name: \"delegate\";\n signer: true;\n },\n {\n name: \"maker\";\n docs: [\"CHECK\"];\n },\n {\n name: \"makerInfo\";\n writable: true;\n pda: {\n seeds: [\n {\n kind: \"const\";\n value: [109, 97, 107, 101, 114, 95, 105, 110, 102, 111];\n },\n {\n kind: \"account\";\n path: \"maker\";\n },\n ];\n };\n },\n {\n name: \"rentPayer\";\n writable: true;\n signer: true;\n },\n {\n name: \"state\";\n },\n {\n name: \"intentStorage\";\n writable: true;\n },\n {\n name: \"systemProgram\";\n address: \"11111111111111111111111111111111\";\n },\n {\n name: \"eventAuthority\";\n pda: {\n seeds: [\n {\n kind: \"const\";\n value: [\n 95,\n 95,\n 101,\n 118,\n 101,\n 110,\n 116,\n 95,\n 97,\n 117,\n 116,\n 104,\n 111,\n 114,\n 105,\n 116,\n 121,\n ];\n },\n ];\n };\n },\n {\n name: \"program\";\n },\n ];\n args: [\n {\n name: \"space\";\n type: \"u16\";\n },\n {\n name: \"reserved\";\n type: {\n array: [\"u8\", 2];\n };\n },\n {\n name: \"encodedIntentHash\";\n type: {\n defined: {\n name: \"encodedIntentHash\";\n };\n };\n },\n ];\n },\n {\n name: \"initIntentByDelegateUsingSig\";\n discriminator: [113, 25, 150, 248, 204, 41, 36, 34];\n accounts: [\n {\n name: \"delegate\";\n docs: [\"CHECK\"];\n },\n {\n name: \"maker\";\n docs: [\"CHECK\"];\n },\n {\n name: \"makerInfo\";\n pda: {\n seeds: [\n {\n kind: \"const\";\n value: [109, 97, 107, 101, 114, 95, 105, 110, 102, 111];\n },\n {\n kind: \"account\";\n path: \"maker\";\n },\n ];\n };\n },\n {\n name: \"rentPayer\";\n writable: true;\n signer: true;\n },\n {\n name: \"state\";\n },\n {\n name: \"intentStorage\";\n writable: true;\n },\n {\n name: \"systemProgram\";\n address: \"11111111111111111111111111111111\";\n },\n {\n name: \"eventAuthority\";\n pda: {\n seeds: [\n {\n kind: \"const\";\n value: [\n 95,\n 95,\n 101,\n 118,\n 101,\n 110,\n 116,\n 95,\n 97,\n 117,\n 116,\n 104,\n 111,\n 114,\n 105,\n 116,\n 121,\n ];\n },\n ];\n };\n },\n {\n name: \"program\";\n },\n ];\n args: [\n {\n name: \"space\";\n type: \"u16\";\n },\n {\n name: \"signatureType\";\n type: {\n defined: {\n name: \"signatureType\";\n };\n };\n },\n {\n name: \"reserved\";\n type: \"u8\";\n },\n {\n name: \"encodedIntentHash\";\n type: {\n defined: {\n name: \"encodedIntentHash\";\n };\n };\n },\n {\n name: \"signature\";\n type: {\n array: [\"u8\", 64];\n };\n },\n ];\n },\n {\n name: \"initIntentUsingSig\";\n discriminator: [163, 186, 238, 179, 190, 181, 19, 185];\n accounts: [\n {\n name: \"maker\";\n docs: [\"CHECK\"];\n },\n {\n name: \"rentPayer\";\n writable: true;\n signer: true;\n },\n {\n name: \"state\";\n },\n {\n name: \"intentStorage\";\n writable: true;\n },\n {\n name: \"systemProgram\";\n address: \"11111111111111111111111111111111\";\n },\n {\n name: \"eventAuthority\";\n pda: {\n seeds: [\n {\n kind: \"const\";\n value: [\n 95,\n 95,\n 101,\n 118,\n 101,\n 110,\n 116,\n 95,\n 97,\n 117,\n 116,\n 104,\n 111,\n 114,\n 105,\n 116,\n 121,\n ];\n },\n ];\n };\n },\n {\n name: \"program\";\n },\n ];\n args: [\n {\n name: \"space\";\n type: \"u16\";\n },\n {\n name: \"signatureType\";\n type: {\n defined: {\n name: \"signatureType\";\n };\n };\n },\n {\n name: \"reserved\";\n type: \"u8\";\n },\n {\n name: \"encodedIntentHash\";\n type: {\n defined: {\n name: \"encodedIntentHash\";\n };\n };\n },\n {\n name: \"signature\";\n type: {\n array: [\"u8\", 64];\n };\n },\n ];\n },\n {\n name: \"initState\";\n discriminator: [124, 213, 73, 136, 80, 37, 141, 54];\n accounts: [\n {\n name: \"protocolAuthority\";\n signer: true;\n },\n {\n name: \"programAuthority\";\n signer: true;\n address: \"intV2u5xDE8T2ZMFP3W3X6sVqGHBT7zvYtTW3rRLmvE\";\n },\n {\n name: \"rentPayer\";\n writable: true;\n signer: true;\n },\n {\n name: \"state\";\n writable: true;\n pda: {\n seeds: [\n {\n kind: \"const\";\n value: [115, 116, 97, 116, 101];\n },\n ];\n };\n },\n {\n name: \"systemProgram\";\n address: \"11111111111111111111111111111111\";\n },\n ];\n args: [];\n },\n {\n name: \"reallocState\";\n discriminator: [67, 181, 233, 214, 215, 148, 245, 126];\n accounts: [\n {\n name: \"inner\";\n accounts: [\n {\n name: \"protocolAuthority\";\n signer: true;\n relations: [\"state\"];\n },\n {\n name: \"state\";\n writable: true;\n pda: {\n seeds: [\n {\n kind: \"const\";\n value: [115, 116, 97, 116, 101];\n },\n ];\n };\n },\n ];\n },\n {\n name: \"rentPayer\";\n writable: true;\n signer: true;\n },\n {\n name: \"systemProgram\";\n address: \"11111111111111111111111111111111\";\n },\n ];\n args: [\n {\n name: \"newSpace\";\n type: \"u32\";\n },\n ];\n },\n {\n name: \"setCancelUntilTimestamp\";\n discriminator: [206, 248, 194, 176, 4, 206, 30, 228];\n accounts: [\n {\n name: \"inner\";\n accounts: [\n {\n name: \"protocolAuthority\";\n signer: true;\n relations: [\"state\"];\n },\n {\n name: \"state\";\n writable: true;\n pda: {\n seeds: [\n {\n kind: \"const\";\n value: [115, 116, 97, 116, 101];\n },\n ];\n };\n },\n ];\n },\n ];\n args: [\n {\n name: \"cancelUntilTimestamp\";\n type: \"u64\";\n },\n ];\n },\n {\n name: \"setDefaultFee\";\n discriminator: [150, 137, 197, 111, 176, 227, 201, 110];\n accounts: [\n {\n name: \"inner\";\n accounts: [\n {\n name: \"protocolAuthority\";\n signer: true;\n relations: [\"state\"];\n },\n {\n name: \"state\";\n writable: true;\n pda: {\n seeds: [\n {\n kind: \"const\";\n value: [115, 116, 97, 116, 101];\n },\n ];\n };\n },\n ];\n },\n {\n name: \"eventAuthority\";\n pda: {\n seeds: [\n {\n kind: \"const\";\n value: [\n 95,\n 95,\n 101,\n 118,\n 101,\n 110,\n 116,\n 95,\n 97,\n 117,\n 116,\n 104,\n 111,\n 114,\n 105,\n 116,\n 121,\n ];\n },\n ];\n };\n },\n {\n name: \"program\";\n },\n ];\n args: [\n {\n name: \"defaultFeeBps\";\n type: \"u32\";\n },\n ];\n },\n {\n name: \"setDelegateApprovedBudgets\";\n discriminator: [82, 182, 181, 250, 30, 186, 95, 15];\n accounts: [\n {\n name: \"maker\";\n signer: true;\n },\n {\n name: \"delegate\";\n },\n {\n name: \"rentPayer\";\n writable: true;\n signer: true;\n },\n {\n name: \"makerInfo\";\n writable: true;\n pda: {\n seeds: [\n {\n kind: \"const\";\n value: [109, 97, 107, 101, 114, 95, 105, 110, 102, 111];\n },\n {\n kind: \"account\";\n path: \"maker\";\n },\n ];\n };\n },\n {\n name: \"state\";\n },\n {\n name: \"systemProgram\";\n address: \"11111111111111111111111111111111\";\n },\n ];\n args: [\n {\n name: \"nonce\";\n type: \"u64\";\n },\n {\n name: \"approvedTokenBudgets\";\n type: {\n defined: {\n name: \"setApprovedTokenBudgets\";\n };\n };\n },\n ];\n },\n {\n name: \"setDelegateApprovedBudgetsUsingSig\";\n discriminator: [26, 11, 76, 149, 162, 38, 128, 0];\n accounts: [\n {\n name: \"maker\";\n },\n {\n name: \"delegate\";\n },\n {\n name: \"rentPayer\";\n writable: true;\n signer: true;\n },\n {\n name: \"makerInfo\";\n writable: true;\n pda: {\n seeds: [\n {\n kind: \"const\";\n value: [109, 97, 107, 101, 114, 95, 105, 110, 102, 111];\n },\n {\n kind: \"account\";\n path: \"maker\";\n },\n ];\n };\n },\n {\n name: \"state\";\n },\n {\n name: \"systemProgram\";\n address: \"11111111111111111111111111111111\";\n },\n ];\n args: [\n {\n name: \"nonce\";\n type: \"u64\";\n },\n {\n name: \"encodedApprovedTokenBudgets\";\n type: \"bytes\";\n },\n {\n name: \"signature\";\n type: {\n array: [\"u8\", 64];\n };\n },\n ];\n },\n {\n name: \"setFeeCollector\";\n discriminator: [143, 46, 10, 113, 121, 157, 245, 166];\n accounts: [\n {\n name: \"inner\";\n accounts: [\n {\n name: \"protocolAuthority\";\n signer: true;\n relations: [\"state\"];\n },\n {\n name: \"state\";\n writable: true;\n pda: {\n seeds: [\n {\n kind: \"const\";\n value: [115, 116, 97, 116, 101];\n },\n ];\n };\n },\n ];\n },\n ];\n args: [\n {\n name: \"feeCollector\";\n type: \"pubkey\";\n },\n ];\n },\n {\n name: \"setMakerCancelUntilTimestamp\";\n discriminator: [144, 42, 186, 107, 205, 215, 55, 229];\n accounts: [\n {\n name: \"maker\";\n signer: true;\n },\n {\n name: \"rentPayer\";\n writable: true;\n signer: true;\n },\n {\n name: \"makerInfo\";\n writable: true;\n pda: {\n seeds: [\n {\n kind: \"const\";\n value: [109, 97, 107, 101, 114, 95, 105, 110, 102, 111];\n },\n {\n kind: \"account\";\n path: \"maker\";\n },\n ];\n };\n },\n {\n name: \"state\";\n },\n {\n name: \"systemProgram\";\n address: \"11111111111111111111111111111111\";\n },\n ];\n args: [\n {\n name: \"cancelUntilTimestamp\";\n type: \"u64\";\n },\n ];\n },\n {\n name: \"setPause\";\n discriminator: [63, 32, 154, 2, 56, 103, 79, 45];\n accounts: [\n {\n name: \"inner\";\n accounts: [\n {\n name: \"protocolAuthority\";\n signer: true;\n relations: [\"state\"];\n },\n {\n name: \"state\";\n writable: true;\n pda: {\n seeds: [\n {\n kind: \"const\";\n value: [115, 116, 97, 116, 101];\n },\n ];\n };\n },\n ];\n },\n ];\n args: [\n {\n name: \"pauseFlag\";\n type: \"bool\";\n },\n ];\n },\n {\n name: \"setProtocolAuthority\";\n discriminator: [96, 162, 46, 152, 72, 147, 175, 176];\n accounts: [\n {\n name: \"inner\";\n accounts: [\n {\n name: \"protocolAuthority\";\n signer: true;\n relations: [\"state\"];\n },\n {\n name: \"state\";\n writable: true;\n pda: {\n seeds: [\n {\n kind: \"const\";\n value: [115, 116, 97, 116, 101];\n },\n ];\n };\n },\n ];\n },\n {\n name: \"newProtocolAuthority\";\n signer: true;\n },\n ];\n args: [];\n },\n {\n name: \"swapBegin\";\n discriminator: [87, 236, 193, 120, 215, 245, 9, 37];\n accounts: [\n {\n name: \"taker\";\n writable: true;\n signer: true;\n },\n {\n name: \"state\";\n pda: {\n seeds: [\n {\n kind: \"const\";\n value: [115, 116, 97, 116, 101];\n },\n ];\n };\n },\n {\n name: \"maker\";\n relations: [\"intentStorage\"];\n },\n {\n name: \"makerInfo\";\n writable: true;\n pda: {\n seeds: [\n {\n kind: \"const\";\n value: [109, 97, 107, 101, 114, 95, 105, 110, 102, 111];\n },\n {\n kind: \"account\";\n path: \"maker\";\n },\n ];\n };\n },\n {\n name: \"intentStorage\";\n writable: true;\n },\n {\n name: \"inputMint\";\n },\n {\n name: \"outputMint\";\n },\n {\n name: \"makerInputToken\";\n writable: true;\n pda: {\n seeds: [\n {\n kind: \"account\";\n path: \"maker\";\n },\n {\n kind: \"account\";\n path: \"inputTokenProgram\";\n },\n {\n kind: \"account\";\n path: \"inputMint\";\n },\n ];\n program: {\n kind: \"const\";\n value: [\n 140,\n 151,\n 37,\n 143,\n 78,\n 36,\n 137,\n 241,\n 187,\n 61,\n 16,\n 41,\n 20,\n 142,\n 13,\n 131,\n 11,\n 90,\n 19,\n 153,\n 218,\n 255,\n 16,\n 132,\n 4,\n 142,\n 123,\n 216,\n 219,\n 233,\n 248,\n 89,\n ];\n };\n };\n },\n {\n name: \"takerInputToken\";\n writable: true;\n pda: {\n seeds: [\n {\n kind: \"account\";\n path: \"taker\";\n },\n {\n kind: \"account\";\n path: \"inputTokenProgram\";\n },\n {\n kind: \"account\";\n path: \"inputMint\";\n },\n ];\n program: {\n kind: \"const\";\n value: [\n 140,\n 151,\n 37,\n 143,\n 78,\n 36,\n 137,\n 241,\n 187,\n 61,\n 16,\n 41,\n 20,\n 142,\n 13,\n 131,\n 11,\n 90,\n 19,\n 153,\n 218,\n 255,\n 16,\n 132,\n 4,\n 142,\n 123,\n 216,\n 219,\n 233,\n 248,\n 89,\n ];\n };\n };\n },\n {\n name: \"takerOutputToken\";\n writable: true;\n pda: {\n seeds: [\n {\n kind: \"account\";\n path: \"taker\";\n },\n {\n kind: \"account\";\n path: \"outputTokenProgram\";\n },\n {\n kind: \"account\";\n path: \"outputMint\";\n },\n ];\n program: {\n kind: \"const\";\n value: [\n 140,\n 151,\n 37,\n 143,\n 78,\n 36,\n 137,\n 241,\n 187,\n 61,\n 16,\n 41,\n 20,\n 142,\n 13,\n 131,\n 11,\n 90,\n 19,\n 153,\n 218,\n 255,\n 16,\n 132,\n 4,\n 142,\n 123,\n 216,\n 219,\n 233,\n 248,\n 89,\n ];\n };\n };\n },\n {\n name: \"intentOutputToken\";\n writable: true;\n },\n {\n name: \"instructions\";\n address: \"Sysvar1nstructions1111111111111111111111111\";\n },\n {\n name: \"systemProgram\";\n address: \"11111111111111111111111111111111\";\n },\n {\n name: \"inputTokenProgram\";\n },\n {\n name: \"outputTokenProgram\";\n },\n {\n name: \"associatedTokenProgram\";\n address: \"ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL\";\n },\n {\n name: \"eventAuthority\";\n pda: {\n seeds: [\n {\n kind: \"const\";\n value: [\n 95,\n 95,\n 101,\n 118,\n 101,\n 110,\n 116,\n 95,\n 97,\n 117,\n 116,\n 104,\n 111,\n 114,\n 105,\n 116,\n 121,\n ];\n },\n ];\n };\n },\n {\n name: \"program\";\n },\n ];\n args: [\n {\n name: \"amount\";\n type: \"u64\";\n },\n {\n name: \"target\";\n type: {\n defined: {\n name: \"targetTokenAccount\";\n };\n };\n },\n {\n name: \"tradeId\";\n type: {\n array: [\"u8\", 32];\n };\n },\n ];\n },\n {\n name: \"swapEnd\";\n discriminator: [75, 178, 142, 132, 50, 126, 38, 31];\n accounts: [\n {\n name: \"taker\";\n writable: true;\n signer: true;\n },\n {\n name: \"state\";\n pda: {\n seeds: [\n {\n kind: \"const\";\n value: [115, 116, 97, 116, 101];\n },\n ];\n };\n },\n {\n name: \"intentStorage\";\n writable: true;\n },\n {\n name: \"inputMint\";\n },\n {\n name: \"outputMint\";\n },\n {\n name: \"takerOutputToken\";\n writable: true;\n pda: {\n seeds: [\n {\n kind: \"account\";\n path: \"taker\";\n },\n {\n kind: \"account\";\n path: \"outputTokenProgram\";\n },\n {\n kind: \"account\";\n path: \"outputMint\";\n },\n ];\n program: {\n kind: \"const\";\n value: [\n 140,\n 151,\n 37,\n 143,\n 78,\n 36,\n 137,\n 241,\n 187,\n 61,\n 16,\n 41,\n 20,\n 142,\n 13,\n 131,\n 11,\n 90,\n 19,\n 153,\n 218,\n 255,\n 16,\n 132,\n 4,\n 142,\n 123,\n 216,\n 219,\n 233,\n 248,\n 89,\n ];\n };\n };\n },\n {\n name: \"intentOutputToken\";\n writable: true;\n pda: {\n seeds: [\n {\n kind: \"account\";\n path: \"intentStorage\";\n },\n {\n kind: \"account\";\n path: \"outputTokenProgram\";\n },\n {\n kind: \"account\";\n path: \"outputMint\";\n },\n ];\n program: {\n kind: \"const\";\n value: [\n 140,\n 151,\n 37,\n 143,\n 78,\n 36,\n 137,\n 241,\n 187,\n 61,\n 16,\n 41,\n 20,\n 142,\n 13,\n 131,\n 11,\n 90,\n 19,\n 153,\n 218,\n 255,\n 16,\n 132,\n 4,\n 142,\n 123,\n 216,\n 219,\n 233,\n 248,\n 89,\n ];\n };\n };\n },\n {\n name: \"instructions\";\n address: \"Sysvar1nstructions1111111111111111111111111\";\n },\n {\n name: \"systemProgram\";\n address: \"11111111111111111111111111111111\";\n },\n {\n name: \"outputTokenProgram\";\n },\n {\n name: \"associatedTokenProgram\";\n address: \"ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL\";\n },\n {\n name: \"eventAuthority\";\n pda: {\n seeds: [\n {\n kind: \"const\";\n value: [\n 95,\n 95,\n 101,\n 118,\n 101,\n 110,\n 116,\n 95,\n 97,\n 117,\n 116,\n 104,\n 111,\n 114,\n 105,\n 116,\n 121,\n ];\n },\n ];\n };\n },\n {\n name: \"program\";\n },\n ];\n args: [\n {\n name: \"expectedOutputTokenAmount\";\n type: \"u64\";\n },\n {\n name: \"takerSurplusShareBps\";\n type: \"u32\";\n },\n ];\n },\n {\n name: \"updateIntent\";\n discriminator: [214, 203, 249, 158, 90, 27, 54, 17];\n accounts: [\n {\n name: \"rentPayer\";\n writable: true;\n signer: true;\n },\n {\n name: \"state\";\n },\n {\n name: \"intentStorage\";\n writable: true;\n },\n {\n name: \"systemProgram\";\n address: \"11111111111111111111111111111111\";\n },\n {\n name: \"buffer\";\n optional: true;\n },\n {\n name: \"eventAuthority\";\n pda: {\n seeds: [\n {\n kind: \"const\";\n value: [\n 95,\n 95,\n 101,\n 118,\n 101,\n 110,\n 116,\n 95,\n 97,\n 117,\n 116,\n 104,\n 111,\n 114,\n 105,\n 116,\n 121,\n ];\n },\n ];\n };\n },\n {\n name: \"program\";\n },\n ];\n args: [\n {\n name: \"dataOrigin\";\n type: {\n defined: {\n name: \"dataOrigin\";\n };\n };\n },\n ];\n },\n {\n name: \"withdrawIntentTokenAccount\";\n discriminator: [188, 114, 123, 239, 223, 164, 242, 101];\n accounts: [\n {\n name: \"state\";\n },\n {\n name: \"maker\";\n docs: [\"CHECK\"];\n },\n {\n name: \"intentStorage\";\n },\n {\n name: \"intentTokenAccount\";\n writable: true;\n pda: {\n seeds: [\n {\n kind: \"account\";\n path: \"intentStorage\";\n },\n {\n kind: \"account\";\n path: \"tokenProgram\";\n },\n {\n kind: \"account\";\n path: \"tokenMint\";\n },\n ];\n program: {\n kind: \"const\";\n value: [\n 140,\n 151,\n 37,\n 143,\n 78,\n 36,\n 137,\n 241,\n 187,\n 61,\n 16,\n 41,\n 20,\n 142,\n 13,\n 131,\n 11,\n 90,\n 19,\n 153,\n 218,\n 255,\n 16,\n 132,\n 4,\n 142,\n 123,\n 216,\n 219,\n 233,\n 248,\n 89,\n ];\n };\n };\n },\n {\n name: \"makerTokenAccount\";\n writable: true;\n pda: {\n seeds: [\n {\n kind: \"account\";\n path: \"maker\";\n },\n {\n kind: \"account\";\n path: \"tokenProgram\";\n },\n {\n kind: \"account\";\n path: \"tokenMint\";\n },\n ];\n program: {\n kind: \"const\";\n value: [\n 140,\n 151,\n 37,\n 143,\n 78,\n 36,\n 137,\n 241,\n 187,\n 61,\n 16,\n 41,\n 20,\n 142,\n 13,\n 131,\n 11,\n 90,\n 19,\n 153,\n 218,\n 255,\n 16,\n 132,\n 4,\n 142,\n 123,\n 216,\n 219,\n 233,\n 248,\n 89,\n ];\n };\n };\n },\n {\n name: \"rentReceiver\";\n writable: true;\n },\n {\n name: \"tokenMint\";\n },\n {\n name: \"tokenProgram\";\n },\n {\n name: \"associatedTokenProgram\";\n address: \"ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL\";\n },\n ];\n args: [\n {\n name: \"encodedIntentHash\";\n type: {\n option: {\n defined: {\n name: \"encodedIntentHash\";\n };\n };\n };\n },\n ];\n },\n ];\n accounts: [\n {\n name: \"intentStorage\";\n discriminator: [175, 239, 93, 146, 246, 119, 144, 249];\n },\n {\n name: \"makerInfo\";\n discriminator: [164, 184, 52, 218, 144, 52, 100, 40];\n },\n {\n name: \"state\";\n discriminator: [216, 146, 107, 94, 104, 75, 182, 177];\n },\n ];\n events: [\n {\n name: \"closedIntent\";\n discriminator: [197, 62, 20, 42, 191, 176, 242, 94];\n },\n {\n name: \"fulfilled\";\n discriminator: [210, 174, 131, 213, 40, 182, 83, 110];\n },\n {\n name: \"fulfilledDln\";\n discriminator: [42, 231, 52, 35, 155, 251, 144, 108];\n },\n {\n name: \"intentBudgetSpent\";\n discriminator: [106, 148, 20, 168, 115, 89, 145, 56];\n },\n {\n name: \"newIntent\";\n discriminator: [101, 118, 73, 187, 15, 74, 57, 97];\n },\n {\n name: \"sealedIntent\";\n discriminator: [28, 191, 234, 161, 83, 32, 138, 137];\n },\n {\n name: \"swapped\";\n discriminator: [217, 52, 52, 83, 147, 135, 96, 109];\n },\n ];\n errors: [\n {\n code: 6160;\n name: \"invalidArgument\";\n },\n {\n code: 6170;\n name: \"invalidAmount\";\n },\n {\n code: 6172;\n name: \"malformedRemainingAccounts\";\n },\n {\n code: 16782961;\n name: \"protocolPaused\";\n },\n {\n code: 16782979;\n name: \"timeParadox\";\n },\n {\n code: 6234;\n name: \"unknownCaller\";\n },\n {\n code: 6236;\n name: \"unknownCancelAuthority\";\n },\n {\n code: 6079;\n name: \"signatureVerificationFailed\";\n },\n {\n code: 6085;\n name: \"intentIdMiscalculated\";\n },\n {\n code: 6086;\n name: \"intentFromAnotherChain\";\n },\n {\n code: 6087;\n name: \"intentSameChainOnly\";\n },\n {\n code: 6088;\n name: \"intentInconsistentInputTokens\";\n },\n {\n code: 6089;\n name: \"intentInconsistentGiveTokens\";\n },\n {\n code: 6096;\n name: \"intentInconsistentTakeTokens\";\n },\n {\n code: 6097;\n name: \"intentInconsitentReceivers\";\n },\n {\n code: 6098;\n name: \"intentInconsitentDstAuthorities\";\n },\n {\n code: 6275;\n name: \"intentStorageAlreadyInitialized\";\n },\n {\n code: 6276;\n name: \"intentHashMismatch\";\n },\n {\n code: 6277;\n name: \"intentStorageSealed\";\n },\n {\n code: 6278;\n name: \"missedBufferAccount\";\n },\n {\n code: 6288;\n name: \"intentNotReady\";\n },\n {\n code: 6289;\n name: \"intentCancelled\";\n },\n {\n code: 6290;\n name: \"intentExpired\";\n },\n {\n code: 6291;\n name: \"intentInvalidatedByUser\";\n },\n {\n code: 6292;\n name: \"intentInvalidatedByProtocolAuthority\";\n },\n {\n code: 6293;\n name: \"expectedClosedIntent\";\n },\n {\n code: 6294;\n name: \"expectedCancelledIntent\";\n },\n {\n code: 9664;\n name: \"tokenAccountMissingProtocolDelegate\";\n },\n {\n code: 9665;\n name: \"unknownInputToken\";\n },\n {\n code: 9666;\n name: \"inputTokenAmountOutOfRange\";\n },\n {\n code: 9667;\n name: \"inputTokenAmountExceedsBudget\";\n },\n {\n code: 9668;\n name: \"swapOutputAmountLessThanExpected\";\n },\n {\n code: 9680;\n name: \"takerNotAllowed\";\n },\n {\n code: 9681;\n name: \"unknownRoute\";\n },\n {\n code: 9682;\n name: \"priceViolation\";\n },\n {\n code: 9683;\n name: \"invalidReceiver\";\n },\n {\n code: 9684;\n name: \"readonlyReceiver\";\n },\n {\n code: 6101;\n name: \"missedNativeUnwrapFlag\";\n },\n {\n code: 9793;\n name: \"invalidDlnOrderTakeAmount\";\n },\n {\n code: 9794;\n name: \"invalidDlnDstReceiver\";\n },\n {\n code: 9802;\n name: \"invalidDlnDstOrderAuthority\";\n },\n {\n code: 9803;\n name: \"invalidDlnDstAllowedTaker\";\n },\n {\n code: 9804;\n name: \"invalidDlnSrcAllowedCancelBeneficiary\";\n },\n {\n code: 9805;\n name: \"invalidDlnMetadata\";\n },\n {\n code: 9806;\n name: \"invalidDlnExtcallHash\";\n },\n {\n code: 9788;\n name: \"cantBeClosed\";\n },\n {\n code: 9787;\n name: \"invalidTokenAccountRentReceiver\";\n },\n {\n code: 9839;\n name: \"intentArbitraryDataOverflow\";\n },\n {\n code: 8832;\n name: \"takerMustBeFixedWhenExtcallAllowed\";\n },\n {\n code: 8833;\n name: \"ambiguousReceivers\";\n },\n {\n code: 9600;\n name: \"interactionAccountNotFound\";\n },\n {\n code: 9601;\n name: \"interactionProgramNotFound\";\n },\n {\n code: 6239;\n name: \"interactionFixedAccountNotFound\";\n },\n {\n code: 9536;\n name: \"unknownDelegate\";\n },\n {\n code: 9537;\n name: \"delegateNonceMismatchNext\";\n },\n {\n code: 9546;\n name: \"delegateHasNoApproval\";\n },\n {\n code: 9547;\n name: \"delegateExceedsApprovedBudget\";\n },\n {\n code: 9550;\n name: \"delegateApprovalExpired\";\n },\n {\n code: 9551;\n name: \"delegateRevoked\";\n },\n {\n code: 16767137;\n name: \"crossProgramInvokeRestricted\";\n },\n {\n code: 16770159;\n name: \"crossProgramInvokeHasIntentsProgramAccount\";\n },\n ];\n types: [\n {\n name: \"address\";\n type: {\n kind: \"type\";\n alias: {\n vec: \"u8\";\n };\n };\n },\n {\n name: \"approvedTokenBudget\";\n type: {\n kind: \"struct\";\n fields: [\n {\n name: \"tokenMint\";\n type: \"pubkey\";\n },\n {\n name: \"approvedAmount\";\n type: \"u64\";\n },\n {\n name: \"expiration\";\n type: \"u64\";\n },\n ];\n };\n },\n {\n name: \"closedIntent\";\n type: {\n kind: \"struct\";\n fields: [\n {\n name: \"status\";\n type: {\n defined: {\n name: \"closedIntentStatus\";\n };\n };\n },\n ];\n };\n },\n {\n name: \"closedIntentStatus\";\n repr: {\n kind: \"rust\";\n };\n type: {\n kind: \"enum\";\n variants: [\n {\n name: \"wiped\";\n },\n {\n name: \"terminated\";\n },\n ];\n };\n },\n {\n name: \"createOrderArgs\";\n docs: [\"Structure for forming a new order\"];\n type: {\n kind: \"struct\";\n fields: [\n {\n name: \"giveOriginalAmount\";\n docs: [\n \"Input amount for `create order` call, that will be transferred from the user's wallet.\",\n \"The dln commissions will be deducted from it and the resulting value will be used as [`Order::give.amount`]\",\n ];\n type: \"u64\";\n },\n {\n name: \"take\";\n docs: [\"Offer to take in destination chain\"];\n type: {\n defined: {\n name: \"offer\";\n };\n };\n },\n {\n name: \"receiverDst\";\n docs: [\n \"Address in dst chain\",\n \"Address of receiver_dst of tokens in target chain\",\n \"or\",\n \"address of external call executor if `external_call` presented\",\n ];\n type: {\n defined: {\n name: \"address\";\n };\n };\n },\n {\n name: \"extcall\";\n docs: [\n \"External call for automatically execution in target chain after execution of order\",\n ];\n type: {\n option: \"bytes\";\n };\n },\n {\n name: \"givePatchAuthoritySrc\";\n docs: [\n \"Address in source chain\",\n \"Can call `patch_order_give` method of src program\",\n ];\n type: \"pubkey\";\n },\n {\n name: \"allowedCancelBeneficiarySrc\";\n docs: [\n \"Address in source chain\",\n \"If the field is `Some`, then only this address can receive cancel\",\n ];\n type: {\n option: \"pubkey\";\n };\n },\n {\n name: \"orderAuthorityAddressDst\";\n docs: [\n \"Address in destination chain\",\n \"Can `send_order_cancel`, `process_fallback` and `patch_order_take`\",\n ];\n type: {\n defined: {\n name: \"address\";\n };\n };\n },\n {\n name: \"allowedTakerDst\";\n docs: [\n \"Address in destination chain\",\n \"If the field is `Some`, then only this address can call `fulfill_order` with this\",\n \"order\",\n ];\n type: {\n option: {\n defined: {\n name: \"address\";\n };\n };\n };\n },\n ];\n };\n },\n {\n name: \"currentTokenBudget\";\n type: {\n kind: \"struct\";\n fields: [\n {\n name: \"tokenMint\";\n type: \"pubkey\";\n },\n {\n name: \"approvedAmount\";\n type: \"u64\";\n },\n {\n name: \"expiration\";\n type: \"u64\";\n },\n {\n name: \"remainingAmount\";\n type: \"u64\";\n },\n ];\n };\n },\n {\n name: \"dataOrigin\";\n type: {\n kind: \"enum\";\n variants: [\n {\n name: \"instruction\";\n fields: [\"bytes\"];\n },\n {\n name: \"buffer\";\n fields: [\n {\n name: \"offset\";\n type: \"u32\";\n },\n {\n name: \"length\";\n type: \"u32\";\n },\n ];\n },\n ];\n };\n },\n {\n name: \"delegateBudgets\";\n type: {\n kind: \"enum\";\n variants: [\n {\n name: \"any\";\n },\n {\n name: \"perToken\";\n fields: [\n {\n vec: {\n defined: {\n name: \"currentTokenBudget\";\n };\n };\n },\n ];\n },\n {\n name: \"revoked\";\n },\n ];\n };\n },\n {\n name: \"delegateInfo\";\n type: {\n kind: \"struct\";\n fields: [\n {\n name: \"delegate\";\n type: \"pubkey\";\n },\n {\n name: \"nonce\";\n type: \"u64\";\n },\n {\n name: \"budgets\";\n type: {\n defined: {\n name: \"delegateBudgets\";\n };\n };\n },\n ];\n };\n },\n {\n name: \"encodedIntentHash\";\n type: {\n kind: \"struct\";\n fields: [\n {\n array: [\"u8\", 32];\n },\n ];\n };\n },\n {\n name: \"fulfilled\";\n type: {\n kind: \"struct\";\n fields: [\n {\n name: \"intentId\";\n type: {\n defined: {\n name: \"intentId\";\n };\n };\n },\n {\n name: \"tradeId\";\n type: {\n array: [\"u8\", 32];\n };\n },\n {\n name: \"executionMetadata\";\n type: {\n option: \"bytes\";\n };\n },\n {\n name: \"takeToken\";\n type: \"pubkey\";\n },\n {\n name: \"takeTokenAmount\";\n type: \"u64\";\n },\n {\n name: \"takeTokenFeeAmount\";\n type: \"u64\";\n },\n ];\n };\n },\n {\n name: \"fulfilledDln\";\n type: {\n kind: \"struct\";\n fields: [\n {\n name: \"intentId\";\n type: {\n defined: {\n name: \"intentId\";\n };\n };\n },\n {\n name: \"executionMetadata\";\n type: {\n option: \"bytes\";\n };\n },\n {\n name: \"tradeId\";\n type: {\n array: [\"u8\", 32];\n };\n },\n {\n name: \"orderId\";\n type: {\n defined: {\n name: \"u256\";\n };\n };\n },\n {\n name: \"giveTokenFeeAmount\";\n type: \"u64\";\n },\n ];\n };\n },\n {\n name: \"intentBudget\";\n type: {\n kind: \"struct\";\n fields: [\n {\n name: \"mintIndex\";\n type: \"u8\";\n },\n {\n name: \"remainingAmount\";\n type: \"u64\";\n },\n ];\n };\n },\n {\n name: \"intentBudgetSpent\";\n type: {\n kind: \"struct\";\n fields: [\n {\n name: \"intentId\";\n type: {\n defined: {\n name: \"intentId\";\n };\n };\n },\n {\n name: \"tradeId\";\n type: {\n array: [\"u8\", 32];\n };\n },\n {\n name: \"executionMetadata\";\n type: {\n option: \"bytes\";\n };\n },\n {\n name: \"inputToken\";\n type: \"pubkey\";\n },\n {\n name: \"inputTokenSpentAmount\";\n type: \"u64\";\n },\n ];\n };\n },\n {\n name: \"intentBudgets\";\n type: {\n kind: \"struct\";\n fields: [\n {\n vec: {\n defined: {\n name: \"intentBudget\";\n };\n };\n },\n ];\n };\n },\n {\n name: \"intentId\";\n type: {\n kind: \"struct\";\n fields: [\n {\n array: [\"u8\", 32];\n },\n ];\n };\n },\n {\n name: \"intentStorage\";\n type: {\n kind: \"struct\";\n fields: [\n {\n name: \"maker\";\n type: \"pubkey\";\n },\n {\n name: \"delegate\";\n type: {\n option: \"pubkey\";\n };\n },\n {\n name: \"rentPayer\";\n type: \"pubkey\";\n },\n {\n name: \"arbitraryData\";\n type: {\n array: [\"u8\", 100];\n };\n },\n {\n name: \"encodedIntentHash\";\n type: {\n defined: {\n name: \"encodedIntentHash\";\n };\n };\n },\n {\n name: \"version\";\n type: \"u8\";\n },\n {\n name: \"storedIntent\";\n type: {\n defined: {\n name: \"storedIntent\";\n };\n };\n },\n {\n name: \"bump\";\n type: \"u8\";\n },\n ];\n };\n },\n {\n name: \"makerInfo\";\n type: {\n kind: \"struct\";\n fields: [\n {\n name: \"cancelUntilTimestamp\";\n type: \"u64\";\n },\n {\n name: \"delegates\";\n type: {\n vec: {\n defined: {\n name: \"delegateInfo\";\n };\n };\n };\n },\n ];\n };\n },\n {\n name: \"newIntent\";\n type: {\n kind: \"struct\";\n fields: [\n {\n name: \"intentId\";\n type: {\n defined: {\n name: \"intentId\";\n };\n };\n },\n ];\n };\n },\n {\n name: \"offer\";\n type: {\n kind: \"struct\";\n fields: [\n {\n name: \"chainId\";\n type: {\n defined: {\n name: \"u256\";\n };\n };\n },\n {\n name: \"tokenAddress\";\n type: {\n defined: {\n name: \"address\";\n };\n };\n },\n {\n name: \"amount\";\n type: {\n defined: {\n name: \"u256\";\n };\n };\n },\n ];\n };\n },\n {\n name: \"sealedIntent\";\n type: {\n kind: \"struct\";\n fields: [\n {\n name: \"intentId\";\n type: {\n defined: {\n name: \"intentId\";\n };\n };\n },\n {\n name: \"encodedIntent\";\n type: \"bytes\";\n },\n ];\n };\n },\n {\n name: \"setApprovedTokenBudgets\";\n type: {\n kind: \"enum\";\n variants: [\n {\n name: \"set\";\n fields: [\n {\n vec: {\n defined: {\n name: \"approvedTokenBudget\";\n };\n };\n },\n ];\n },\n {\n name: \"setAny\";\n },\n {\n name: \"revoke\";\n },\n ];\n };\n },\n {\n name: \"signatureType\";\n repr: {\n kind: \"rust\";\n };\n type: {\n kind: \"enum\";\n variants: [\n {\n name: \"rawBytes\";\n },\n {\n name: \"hexString\";\n },\n ];\n };\n },\n {\n name: \"state\";\n type: {\n kind: \"struct\";\n fields: [\n {\n name: \"protocolAuthority\";\n type: \"pubkey\";\n },\n {\n name: \"feeCollector\";\n type: \"pubkey\";\n },\n {\n name: \"defaultFeeBps\";\n type: \"u32\";\n },\n {\n name: \"isPaused\";\n type: \"bool\";\n },\n {\n name: \"cancelUntilTimestamp\";\n type: \"u64\";\n },\n {\n name: \"bump\";\n type: \"u8\";\n },\n ];\n };\n },\n {\n name: \"storedIntent\";\n type: {\n kind: \"enum\";\n variants: [\n {\n name: \"uninitialized\";\n },\n {\n name: \"ready\";\n fields: [\n {\n name: \"encodedIntent\";\n type: \"bytes\";\n },\n {\n name: \"budgets\";\n type: {\n defined: {\n name: \"intentBudgets\";\n };\n };\n },\n ];\n },\n {\n name: \"cancelled\";\n fields: [\n {\n name: \"encodedIntent\";\n type: \"bytes\";\n },\n {\n name: \"budgets\";\n type: {\n defined: {\n name: \"intentBudgets\";\n };\n };\n },\n ];\n },\n ];\n };\n },\n {\n name: \"swapped\";\n type: {\n kind: \"struct\";\n fields: [\n {\n name: \"intentId\";\n type: {\n defined: {\n name: \"intentId\";\n };\n };\n },\n {\n name: \"tradeId\";\n type: {\n array: [\"u8\", 32];\n };\n },\n {\n name: \"executionMetadata\";\n type: {\n option: \"bytes\";\n };\n },\n {\n name: \"inputToken\";\n type: \"pubkey\";\n },\n {\n name: \"inputTokenAmount\";\n type: \"u64\";\n },\n {\n name: \"outputToken\";\n type: \"pubkey\";\n },\n {\n name: \"outputTokenAmount\";\n type: \"u64\";\n },\n {\n name: \"takerOutputTokenShareAmount\";\n type: \"u64\";\n },\n ];\n };\n },\n {\n name: \"targetTokenAccount\";\n type: {\n kind: \"enum\";\n variants: [\n {\n name: \"taker\";\n },\n {\n name: \"intent\";\n },\n ];\n };\n },\n {\n name: \"u256\";\n type: {\n kind: \"type\";\n alias: {\n array: [\"u8\", 32];\n };\n };\n },\n ];\n constants: [\n {\n name: \"budgetsSigPrefix\";\n type: \"bytes\";\n value: \"[98, 117, 100, 103, 101, 116, 115]\";\n },\n {\n name: \"clockDriftToleranceSecs\";\n type: \"u64\";\n value: \"300\";\n },\n {\n name: \"defaultFeeBps\";\n type: \"u32\";\n value: \"8\";\n },\n {\n name: \"intentsProgramSigPrefix\";\n type: \"bytes\";\n value: \"[105, 110, 116, 101, 110, 116, 115, 95, 112, 114, 111, 103, 114, 97, 109, 95, 104, 97, 110, 111, 105]\";\n },\n {\n name: \"intentIdHashPrefix\";\n docs: [\n \"Used **only** as sub-seed for [IntentId][`crate::types::IntentId`]\",\n ];\n type: \"bytes\";\n value: \"[105, 110, 116, 101, 110, 116, 95, 105, 100]\";\n },\n {\n name: \"intentSigPrefix\";\n type: \"bytes\";\n value: \"[105, 110, 116, 101, 110, 116, 115]\";\n },\n {\n name: \"intentStorageBaseSeed\";\n type: \"bytes\";\n value: \"[105, 110, 116, 101, 110, 116, 95, 115, 116, 111, 114, 97, 103, 101]\";\n },\n {\n name: \"interactionCallAuthority\";\n type: \"bytes\";\n value: \"[105, 110, 116, 101, 114, 97, 99, 116, 105, 111, 110, 95, 97, 117, 116, 104, 111, 114, 105, 116, 121]\";\n },\n {\n name: \"makerInfoSeed\";\n type: \"bytes\";\n value: \"[109, 97, 107, 101, 114, 95, 105, 110, 102, 111]\";\n },\n {\n name: \"stateSeed\";\n type: \"bytes\";\n value: \"[115, 116, 97, 116, 101]\";\n },\n {\n name: \"unwrapNativePseudoMint\";\n type: \"pubkey\";\n value: \"11111111111111111111111111111111\";\n },\n {\n name: \"unwrapNativeReceiverSeed\";\n type: \"bytes\";\n value: \"[117, 110, 119, 114, 97, 112, 95, 110, 97, 116, 105, 118, 101, 95, 114, 101, 99, 101, 105, 118, 101, 114]\";\n },\n ];\n};\n\nexport const IDL: IntentsProgram = {\n address: \"intV2u5xDE8T2ZMFP3W3X6sVqGHBT7zvYtTW3rRLmvE\",\n metadata: {\n name: \"intentsProgram\",\n version: \"0.0.1\",\n spec: \"0.1.0\",\n description: \"deBridge Intents Program\",\n },\n instructions: [\n {\n name: \"about\",\n discriminator: [62, 111, 52, 44, 118, 185, 179, 229],\n accounts: [],\n args: [],\n },\n {\n name: \"approveProtocolTransfers\",\n discriminator: [17, 3, 184, 144, 112, 130, 116, 98],\n accounts: [\n {\n name: \"maker\",\n signer: true,\n },\n {\n name: \"state\",\n pda: {\n seeds: [\n {\n kind: \"const\",\n value: [115, 116, 97, 116, 101],\n },\n ],\n },\n },\n {\n name: \"tokenProgram\",\n },\n ],\n args: [\n {\n name: \"amounts\",\n type: {\n vec: \"u64\",\n },\n },\n ],\n },\n {\n name: \"cancelIntent\",\n discriminator: [67, 73, 238, 244, 208, 89, 225, 59],\n accounts: [\n {\n name: \"initiator\",\n signer: true,\n },\n {\n name: \"intentStorage\",\n writable: true,\n },\n {\n name: \"state\",\n },\n ],\n args: [],\n },\n {\n name: \"closeAccount\",\n discriminator: [125, 255, 149, 14, 110, 34, 72, 24],\n accounts: [\n {\n name: \"programAuthority\",\n signer: true,\n address: \"intV2u5xDE8T2ZMFP3W3X6sVqGHBT7zvYtTW3rRLmvE\",\n },\n {\n name: \"target\",\n writable: true,\n },\n {\n name: \"rentReceiver\",\n writable: true,\n },\n ],\n args: [],\n },\n {\n name: \"closeIntent\",\n discriminator: [112, 245, 154, 249, 57, 126, 54, 122],\n accounts: [\n {\n name: \"initiator\",\n signer: true,\n },\n {\n name: \"maker\",\n docs: [\"CHECK\"],\n },\n {\n name: \"makerInfo\",\n writable: true,\n pda: {\n seeds: [\n {\n kind: \"const\",\n value: [109, 97, 107, 101, 114, 95, 105, 110, 102, 111],\n },\n {\n kind: \"account\",\n path: \"maker\",\n },\n ],\n },\n },\n {\n name: \"rentPayer\",\n writable: true,\n },\n {\n name: \"intentStorage\",\n writable: true,\n },\n {\n name: \"state\",\n },\n {\n name: \"systemProgram\",\n address: \"11111111111111111111111111111111\",\n },\n ],\n args: [],\n },\n {\n name: \"collectFee\",\n discriminator: [60, 173, 247, 103, 4, 93, 130, 48],\n accounts: [\n {\n name: \"feeCollector\",\n signer: true,\n relations: [\"state\"],\n },\n {\n name: \"state\",\n pda: {\n seeds: [\n {\n kind: \"const\",\n value: [115, 116, 97, 116, 101],\n },\n ],\n },\n },\n {\n name: \"feeLedger\",\n writable: true,\n pda: {\n seeds: [\n {\n kind: \"account\",\n path: \"state\",\n },\n {\n kind: \"account\",\n path: \"tokenProgram\",\n },\n {\n kind: \"account\",\n path: \"mint\",\n },\n ],\n program: {\n kind: \"const\",\n value: [\n 140, 151, 37, 143, 78, 36, 137, 241, 187, 61, 16, 41, 20, 142,\n 13, 131, 11, 90, 19, 153, 218, 255, 16, 132, 4, 142, 123, 216,\n 219, 233, 248, 89,\n ],\n },\n },\n },\n {\n name: \"destination\",\n writable: true,\n },\n {\n name: \"mint\",\n },\n {\n name: \"tokenProgram\",\n },\n ],\n args: [\n {\n name: \"amount\",\n type: \"u64\",\n },\n ],\n },\n {\n name: \"executeIntent\",\n discriminator: [53, 130, 47, 154, 227, 220, 122, 212],\n accounts: [\n {\n name: \"taker\",\n writable: true,\n signer: true,\n },\n {\n name: \"state\",\n },\n {\n name: \"maker\",\n relations: [\"intentStorage\"],\n },\n {\n name: \"makerInfo\",\n writable: true,\n pda: {\n seeds: [\n {\n kind: \"const\",\n value: [109, 97, 107, 101, 114, 95, 105, 110, 102, 111],\n },\n {\n kind: \"account\",\n path: \"maker\",\n },\n ],\n },\n },\n {\n name: \"intentStorage\",\n writable: true,\n },\n {\n name: \"intentGiveToken\",\n writable: true,\n pda: {\n seeds: [\n {\n kind: \"account\",\n path: \"intentStorage\",\n },\n {\n kind: \"account\",\n path: \"tokenProgram\",\n },\n {\n kind: \"account\",\n path: \"tokenMint\",\n },\n ],\n program: {\n kind: \"const\",\n value: [\n 140, 151, 37, 143, 78, 36, 137, 241, 187, 61, 16, 41, 20, 142,\n 13, 131, 11, 90, 19, 153, 218, 255, 16, 132, 4, 142, 123, 216,\n 219, 233, 248, 89,\n ],\n },\n },\n },\n {\n name: \"dlnSrc\",\n address: \"srch38nzfcgwJnfKE6xWD8vfNJtudazwisdcociAuQt\",\n },\n {\n name: \"dlnSrcState\",\n },\n {\n name: \"dlnSrcGiveOrderState\",\n writable: true,\n },\n {\n name: \"dlnSrcGiveOrderWallet\",\n writable: true,\n },\n {\n name: \"dlnSrcAuthorizedNativeSender\",\n },\n {\n name: \"dlnSrcFeeLedgerWallet\",\n writable: true,\n },\n {\n name: \"tokenMint\",\n },\n {\n name: \"systemProgram\",\n address: \"11111111111111111111111111111111\",\n },\n {\n name: \"tokenProgram\",\n },\n {\n name: \"associatedTokenProgram\",\n address: \"ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL\",\n },\n {\n name: \"eventAuthority\",\n pda: {\n seeds: [\n {\n kind: \"const\",\n value: [\n 95, 95, 101, 118, 101, 110, 116, 95, 97, 117, 116, 104, 111,\n 114, 105, 116, 121,\n ],\n },\n ],\n },\n },\n {\n name: \"program\",\n },\n ],\n args: [\n {\n name: \"dlnOrderArgs\",\n type: {\n defined: {\n name: \"createOrderArgs\",\n },\n },\n },\n {\n name: \"dlnOrderNonce\",\n type: \"u64\",\n },\n {\n name: \"dlnMetadata\",\n type: \"bytes\",\n },\n {\n name: \"tradeId\",\n type: {\n array: [\"u8\", 32],\n },\n },\n ],\n },\n {\n name: \"executeIntent2\",\n discriminator: [57, 145, 38, 151, 5, 101, 106, 72],\n accounts: [\n {\n name: \"taker\",\n writable: true,\n signer: true,\n },\n {\n name: \"state\",\n pda: {\n seeds: [\n {\n kind: \"const\",\n value: [115, 116, 97, 116, 101],\n },\n ],\n },\n },\n {\n name: \"maker\",\n writable: true,\n relations: [\"intentStorage\"],\n },\n {\n name: \"makerInfo\",\n writable: true,\n pda: {\n seeds: [\n {\n kind: \"const\",\n value: [109, 97, 107, 101, 114, 95, 105, 110, 102, 111],\n },\n {\n kind: \"account\",\n path: \"maker\",\n },\n ],\n },\n },\n {\n name: \"intentStorage\",\n writable: true,\n },\n {\n name: \"intentTakeToken\",\n writable: true,\n pda: {\n seeds: [\n {\n kind: \"account\",\n path: \"intentStorage\",\n },\n {\n kind: \"account\",\n path: \"tokenProgram\",\n },\n {\n kind: \"account\",\n path: \"tokenMint\",\n },\n ],\n program: {\n kind: \"const\",\n value: [\n 140, 151, 37, 143, 78, 36, 137, 241, 187, 61, 16, 41, 20, 142,\n 13, 131, 11, 90, 19, 153, 218, 255, 16, 132, 4, 142, 123, 216,\n 219, 233, 248, 89,\n ],\n },\n },\n },\n {\n name: \"feeLedger\",\n writable: true,\n pda: {\n seeds: [\n {\n kind: \"account\",\n path: \"state\",\n },\n {\n kind: \"account\",\n path: \"tokenProgram\",\n },\n {\n kind: \"account\",\n path: \"tokenMint\",\n },\n ],\n program: {\n kind: \"const\",\n value: [\n 140, 151, 37, 143, 78, 36, 137, 241, 187, 61, 16, 41, 20, 142,\n 13, 131, 11, 90, 19, 153, 218, 255, 16, 132, 4, 142, 123, 216,\n 219, 233, 248, 89,\n ],\n },\n },\n },\n {\n name: \"receiver\",\n },\n {\n name: \"receiverTakeToken\",\n writable: true,\n },\n {\n name: \"tokenMint\",\n },\n {\n name: \"systemProgram\",\n address: \"11111111111111111111111111111111\",\n },\n {\n name: \"tokenProgram\",\n },\n {\n name: \"associatedTokenProgram\",\n address: \"ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL\",\n },\n {\n name: \"eventAuthority\",\n pda: {\n seeds: [\n {\n kind: \"const\",\n value: [\n 95, 95, 101, 118, 101, 110, 116, 95, 97, 117, 116, 104, 111,\n 114, 105, 116, 121,\n ],\n },\n ],\n },\n },\n {\n name: \"program\",\n },\n ],\n args: [\n {\n name: \"amount\",\n type: \"u64\",\n },\n {\n name: \"tradeId\",\n type: {\n array: [\"u8\", 32],\n },\n },\n ],\n },\n {\n name: \"initIntent\",\n discriminator: [231, 255, 81, 23, 112, 148, 49, 134],\n accounts: [\n {\n name: \"maker\",\n signer: true,\n },\n {\n name: \"rentPayer\",\n writable: true,\n signer: true,\n },\n {\n name: \"state\",\n },\n {\n name: \"intentStorage\",\n writable: true,\n },\n {\n name: \"systemProgram\",\n address: \"11111111111111111111111111111111\",\n },\n {\n name: \"eventAuthority\",\n pda: {\n seeds: [\n {\n kind: \"const\",\n value: [\n 95, 95, 101, 118, 101, 110, 116, 95, 97, 117, 116, 104, 111,\n 114, 105, 116, 121,\n ],\n },\n ],\n },\n },\n {\n name: \"program\",\n },\n ],\n args: [\n {\n name: \"space\",\n type: \"u16\",\n },\n {\n name: \"reserved\",\n type: {\n array: [\"u8\", 2],\n },\n },\n {\n name: \"encodedIntentHash\",\n type: {\n defined: {\n name: \"encodedIntentHash\",\n },\n },\n },\n ],\n },\n {\n name: \"initIntentByDelegate\",\n discriminator: [85, 140, 35, 112, 240, 67, 16, 40],\n accounts: [\n {\n name: \"delegate\",\n signer: true,\n },\n {\n name: \"maker\",\n docs: [\"CHECK\"],\n },\n {\n name: \"makerInfo\",\n writable: true,\n pda: {\n seeds: [\n {\n kind: \"const\",\n value: [109, 97, 107, 101, 114, 95, 105, 110, 102, 111],\n },\n {\n kind: \"account\",\n path: \"maker\",\n },\n ],\n },\n },\n {\n name: \"rentPayer\",\n writable: true,\n signer: true,\n },\n {\n name: \"state\",\n },\n {\n name: \"intentStorage\",\n writable: true,\n },\n {\n name: \"systemProgram\",\n address: \"11111111111111111111111111111111\",\n },\n {\n name: \"eventAuthority\",\n pda: {\n seeds: [\n {\n kind: \"const\",\n value: [\n 95, 95, 101, 118, 101, 110, 116, 95, 97, 117, 116, 104, 111,\n 114, 105, 116, 121,\n ],\n },\n ],\n },\n },\n {\n name: \"program\",\n },\n ],\n args: [\n {\n name: \"space\",\n type: \"u16\",\n },\n {\n name: \"reserved\",\n type: {\n array: [\"u8\", 2],\n },\n },\n {\n name: \"encodedIntentHash\",\n type: {\n defined: {\n name: \"encodedIntentHash\",\n },\n },\n },\n ],\n },\n {\n name: \"initIntentByDelegateUsingSig\",\n discriminator: [113, 25, 150, 248, 204, 41, 36, 34],\n accounts: [\n {\n name: \"delegate\",\n docs: [\"CHECK\"],\n },\n {\n name: \"maker\",\n docs: [\"CHECK\"],\n },\n {\n name: \"makerInfo\",\n pda: {\n seeds: [\n {\n kind: \"const\",\n value: [109, 97, 107, 101, 114, 95, 105, 110, 102, 111],\n },\n {\n kind: \"account\",\n path: \"maker\",\n },\n ],\n },\n },\n {\n name: \"rentPayer\",\n writable: true,\n signer: true,\n },\n {\n name: \"state\",\n },\n {\n name: \"intentStorage\",\n writable: true,\n },\n {\n name: \"systemProgram\",\n address: \"11111111111111111111111111111111\",\n },\n {\n name: \"eventAuthority\",\n pda: {\n seeds: [\n {\n kind: \"const\",\n value: [\n 95, 95, 101, 118, 101, 110, 116, 95, 97, 117, 116, 104, 111,\n 114, 105, 116, 121,\n ],\n },\n ],\n },\n },\n {\n name: \"program\",\n },\n ],\n args: [\n {\n name: \"space\",\n type: \"u16\",\n },\n {\n name: \"signatureType\",\n type: {\n defined: {\n name: \"signatureType\",\n },\n },\n },\n {\n name: \"reserved\",\n type: \"u8\",\n },\n {\n name: \"encodedIntentHash\",\n type: {\n defined: {\n name: \"encodedIntentHash\",\n },\n },\n },\n {\n name: \"signature\",\n type: {\n array: [\"u8\", 64],\n },\n },\n ],\n },\n {\n name: \"initIntentUsingSig\",\n discriminator: [163, 186, 238, 179, 190, 181, 19, 185],\n accounts: [\n {\n name: \"maker\",\n docs: [\"CHECK\"],\n },\n {\n name: \"rentPayer\",\n writable: true,\n signer: true,\n },\n {\n name: \"state\",\n },\n {\n name: \"intentStorage\",\n writable: true,\n },\n {\n name: \"systemProgram\",\n address: \"11111111111111111111111111111111\",\n },\n {\n name: \"eventAuthority\",\n pda: {\n seeds: [\n {\n kind: \"const\",\n value: [\n 95, 95, 101, 118, 101, 110, 116, 95, 97, 117, 116, 104, 111,\n 114, 105, 116, 121,\n ],\n },\n ],\n },\n },\n {\n name: \"program\",\n },\n ],\n args: [\n {\n name: \"space\",\n type: \"u16\",\n },\n {\n name: \"signatureType\",\n type: {\n defined: {\n name: \"signatureType\",\n },\n },\n },\n {\n name: \"reserved\",\n type: \"u8\",\n },\n {\n name: \"encodedIntentHash\",\n type: {\n defined: {\n name: \"encodedIntentHash\",\n },\n },\n },\n {\n name: \"signature\",\n type: {\n array: [\"u8\", 64],\n },\n },\n ],\n },\n {\n name: \"initState\",\n discriminator: [124, 213, 73, 136, 80, 37, 141, 54],\n accounts: [\n {\n name: \"protocolAuthority\",\n signer: true,\n },\n {\n name: \"programAuthority\",\n signer: true,\n address: \"intV2u5xDE8T2ZMFP3W3X6sVqGHBT7zvYtTW3rRLmvE\",\n },\n {\n name: \"rentPayer\",\n writable: true,\n signer: true,\n },\n {\n name: \"state\",\n writable: true,\n pda: {\n seeds: [\n {\n kind: \"const\",\n value: [115, 116, 97, 116, 101],\n },\n ],\n },\n },\n {\n name: \"systemProgram\",\n address: \"11111111111111111111111111111111\",\n },\n ],\n args: [],\n },\n {\n name: \"reallocState\",\n discriminator: [67, 181, 233, 214, 215, 148, 245, 126],\n accounts: [\n {\n name: \"inner\",\n accounts: [\n {\n name: \"protocolAuthority\",\n signer: true,\n relations: [\"state\"],\n },\n {\n name: \"state\",\n writable: true,\n pda: {\n seeds: [\n {\n kind: \"const\",\n value: [115, 116, 97, 116, 101],\n },\n ],\n },\n },\n ],\n },\n {\n name: \"rentPayer\",\n writable: true,\n signer: true,\n },\n {\n name: \"systemProgram\",\n address: \"11111111111111111111111111111111\",\n },\n ],\n args: [\n {\n name: \"newSpace\",\n type: \"u32\",\n },\n ],\n },\n {\n name: \"setCancelUntilTimestamp\",\n discriminator: [206, 248, 194, 176, 4, 206, 30, 228],\n accounts: [\n {\n name: \"inner\",\n accounts: [\n {\n name: \"protocolAuthority\",\n signer: true,\n relations: [\"state\"],\n },\n {\n name: \"state\",\n writable: true,\n pda: {\n seeds: [\n {\n kind: \"const\",\n value: [115, 116, 97, 116, 101],\n },\n ],\n },\n },\n ],\n },\n ],\n args: [\n {\n name: \"cancelUntilTimestamp\",\n type: \"u64\",\n },\n ],\n },\n {\n name: \"setDefaultFee\",\n discriminator: [150, 137, 197, 111, 176, 227, 201, 110],\n accounts: [\n {\n name: \"inner\",\n accounts: [\n {\n name: \"protocolAuthority\",\n signer: true,\n relations: [\"state\"],\n },\n {\n name: \"state\",\n writable: true,\n pda: {\n seeds: [\n {\n kind: \"const\",\n value: [115, 116, 97, 116, 101],\n },\n ],\n },\n },\n ],\n },\n {\n name: \"eventAuthority\",\n pda: {\n seeds: [\n {\n kind: \"const\",\n value: [\n 95, 95, 101, 118, 101, 110, 116, 95, 97, 117, 116, 104, 111,\n 114, 105, 116, 121,\n ],\n },\n ],\n },\n },\n {\n name: \"program\",\n },\n ],\n args: [\n {\n name: \"defaultFeeBps\",\n type: \"u32\",\n },\n ],\n },\n {\n name: \"setDelegateApprovedBudgets\",\n discriminator: [82, 182, 181, 250, 30, 186, 95, 15],\n accounts: [\n {\n name: \"maker\",\n signer: true,\n },\n {\n name: \"delegate\",\n },\n {\n name: \"rentPayer\",\n writable: true,\n signer: true,\n },\n {\n name: \"makerInfo\",\n writable: true,\n pda: {\n seeds: [\n {\n kind: \"const\",\n value: [109, 97, 107, 101, 114, 95, 105, 110, 102, 111],\n },\n {\n kind: \"account\",\n path: \"maker\",\n },\n ],\n },\n },\n {\n name: \"state\",\n },\n {\n name: \"systemProgram\",\n address: \"11111111111111111111111111111111\",\n },\n ],\n args: [\n {\n name: \"nonce\",\n type: \"u64\",\n },\n {\n name: \"approvedTokenBudgets\",\n type: {\n defined: {\n name: \"setApprovedTokenBudgets\",\n },\n },\n },\n ],\n },\n {\n name: \"setDelegateApprovedBudgetsUsingSig\",\n discriminator: [26, 11, 76, 149, 162, 38, 128, 0],\n accounts: [\n {\n name: \"maker\",\n },\n {\n name: \"delegate\",\n },\n {\n name: \"rentPayer\",\n writable: true,\n signer: true,\n },\n {\n name: \"makerInfo\",\n writable: true,\n pda: {\n seeds: [\n {\n kind: \"const\",\n value: [109, 97, 107, 101, 114, 95, 105, 110, 102, 111],\n },\n {\n kind: \"account\",\n path: \"maker\",\n },\n ],\n },\n },\n {\n name: \"state\",\n },\n {\n name: \"systemProgram\",\n address: \"11111111111111111111111111111111\",\n },\n ],\n args: [\n {\n name: \"nonce\",\n type: \"u64\",\n },\n {\n name: \"encodedApprovedTokenBudgets\",\n type: \"bytes\",\n },\n {\n name: \"signature\",\n type: {\n array: [\"u8\", 64],\n },\n },\n ],\n },\n {\n name: \"setFeeCollector\",\n discriminator: [143, 46, 10, 113, 121, 157, 245, 166],\n accounts: [\n {\n name: \"inner\",\n accounts: [\n {\n name: \"protocolAuthority\",\n signer: true,\n relations: [\"state\"],\n },\n {\n name: \"state\",\n writable: true,\n pda: {\n seeds: [\n {\n kind: \"const\",\n value: [115, 116, 97, 116, 101],\n },\n ],\n },\n },\n ],\n },\n ],\n args: [\n {\n name: \"feeCollector\",\n type: \"pubkey\",\n },\n ],\n },\n {\n name: \"setMakerCancelUntilTimestamp\",\n discriminator: [144, 42, 186, 107, 205, 215, 55, 229],\n accounts: [\n {\n name: \"maker\",\n signer: true,\n },\n {\n name: \"rentPayer\",\n writable: true,\n signer: true,\n },\n {\n name: \"makerInfo\",\n writable: true,\n pda: {\n seeds: [\n {\n kind: \"const\",\n value: [109, 97, 107, 101, 114, 95, 105, 110, 102, 111],\n },\n {\n kind: \"account\",\n path: \"maker\",\n },\n ],\n },\n },\n {\n name: \"state\",\n },\n {\n name: \"systemProgram\",\n address: \"11111111111111111111111111111111\",\n },\n ],\n args: [\n {\n name: \"cancelUntilTimestamp\",\n type: \"u64\",\n },\n ],\n },\n {\n name: \"setPause\",\n discriminator: [63, 32, 154, 2, 56, 103, 79, 45],\n accounts: [\n {\n name: \"inner\",\n accounts: [\n {\n name: \"protocolAuthority\",\n signer: true,\n relations: [\"state\"],\n },\n {\n name: \"state\",\n writable: true,\n pda: {\n seeds: [\n {\n kind: \"const\",\n value: [115, 116, 97, 116, 101],\n },\n ],\n },\n },\n ],\n },\n ],\n args: [\n {\n name: \"pauseFlag\",\n type: \"bool\",\n },\n ],\n },\n {\n name: \"setProtocolAuthority\",\n discriminator: [96, 162, 46, 152, 72, 147, 175, 176],\n accounts: [\n {\n name: \"inner\",\n accounts: [\n {\n name: \"protocolAuthority\",\n signer: true,\n relations: [\"state\"],\n },\n {\n name: \"state\",\n writable: true,\n pda: {\n seeds: [\n {\n kind: \"const\",\n value: [115, 116, 97, 116, 101],\n },\n ],\n },\n },\n ],\n },\n {\n name: \"newProtocolAuthority\",\n signer: true,\n },\n ],\n args: [],\n },\n {\n name: \"swapBegin\",\n discriminator: [87, 236, 193, 120, 215, 245, 9, 37],\n accounts: [\n {\n name: \"taker\",\n writable: true,\n signer: true,\n },\n {\n name: \"state\",\n pda: {\n seeds: [\n {\n kind: \"const\",\n value: [115, 116, 97, 116, 101],\n },\n ],\n },\n },\n {\n name: \"maker\",\n relations: [\"intentStorage\"],\n },\n {\n name: \"makerInfo\",\n writable: true,\n pda: {\n seeds: [\n {\n kind: \"const\",\n value: [109, 97, 107, 101, 114, 95, 105, 110, 102, 111],\n },\n {\n kind: \"account\",\n path: \"maker\",\n },\n ],\n },\n },\n {\n name: \"intentStorage\",\n writable: true,\n },\n {\n name: \"inputMint\",\n },\n {\n name: \"outputMint\",\n },\n {\n name: \"makerInputToken\",\n writable: true,\n pda: {\n seeds: [\n {\n kind: \"account\",\n path: \"maker\",\n },\n {\n kind: \"account\",\n path: \"inputTokenProgram\",\n },\n {\n kind: \"account\",\n path: \"inputMint\",\n },\n ],\n program: {\n kind: \"const\",\n value: [\n 140, 151, 37, 143, 78, 36, 137, 241, 187, 61, 16, 41, 20, 142,\n 13, 131, 11, 90, 19, 153, 218, 255, 16, 132, 4, 142, 123, 216,\n 219, 233, 248, 89,\n ],\n },\n },\n },\n {\n name: \"takerInputToken\",\n writable: true,\n pda: {\n seeds: [\n {\n kind: \"account\",\n path: \"taker\",\n },\n {\n kind: \"account\",\n path: \"inputTokenProgram\",\n },\n {\n kind: \"account\",\n path: \"inputMint\",\n },\n ],\n program: {\n kind: \"const\",\n value: [\n 140, 151, 37, 143, 78, 36, 137, 241, 187, 61, 16, 41, 20, 142,\n 13, 131, 11, 90, 19, 153, 218, 255, 16, 132, 4, 142, 123, 216,\n 219, 233, 248, 89,\n ],\n },\n },\n },\n {\n name: \"takerOutputToken\",\n writable: true,\n pda: {\n seeds: [\n {\n kind: \"account\",\n path: \"taker\",\n },\n {\n kind: \"account\",\n path: \"outputTokenProgram\",\n },\n {\n kind: \"account\",\n path: \"outputMint\",\n },\n ],\n program: {\n kind: \"const\",\n value: [\n 140, 151, 37, 143, 78, 36, 137, 241, 187, 61, 16, 41, 20, 142,\n 13, 131, 11, 90, 19, 153, 218, 255, 16, 132, 4, 142, 123, 216,\n 219, 233, 248, 89,\n ],\n },\n },\n },\n {\n name: \"intentOutputToken\",\n writable: true,\n },\n {\n name: \"instructions\",\n address: \"Sysvar1nstructions1111111111111111111111111\",\n },\n {\n name: \"systemProgram\",\n address: \"11111111111111111111111111111111\",\n },\n {\n name: \"inputTokenProgram\",\n },\n {\n name: \"outputTokenProgram\",\n },\n {\n name: \"associatedTokenProgram\",\n address: \"ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL\",\n },\n {\n name: \"eventAuthority\",\n pda: {\n seeds: [\n {\n kind: \"const\",\n value: [\n 95, 95, 101, 118, 101, 110, 116, 95, 97, 117, 116, 104, 111,\n 114, 105, 116, 121,\n ],\n },\n ],\n },\n },\n {\n name: \"program\",\n },\n ],\n args: [\n {\n name: \"amount\",\n type: \"u64\",\n },\n {\n name: \"target\",\n type: {\n defined: {\n name: \"targetTokenAccount\",\n },\n },\n },\n {\n name: \"tradeId\",\n type: {\n array: [\"u8\", 32],\n },\n },\n ],\n },\n {\n name: \"swapEnd\",\n discriminator: [75, 178, 142, 132, 50, 126, 38, 31],\n accounts: [\n {\n name: \"taker\",\n writable: true,\n signer: true,\n },\n {\n name: \"state\",\n pda: {\n seeds: [\n {\n kind: \"const\",\n value: [115, 116, 97, 116, 101],\n },\n ],\n },\n },\n {\n name: \"intentStorage\",\n writable: true,\n },\n {\n name: \"inputMint\",\n },\n {\n name: \"outputMint\",\n },\n {\n name: \"takerOutputToken\",\n writable: true,\n pda: {\n seeds: [\n {\n kind: \"account\",\n path: \"taker\",\n },\n {\n kind: \"account\",\n path: \"outputTokenProgram\",\n },\n {\n kind: \"account\",\n path: \"outputMint\",\n },\n ],\n program: {\n kind: \"const\",\n value: [\n 140, 151, 37, 143, 78, 36, 137, 241, 187, 61, 16, 41, 20, 142,\n 13, 131, 11, 90, 19, 153, 218, 255, 16, 132, 4, 142, 123, 216,\n 219, 233, 248, 89,\n ],\n },\n },\n },\n {\n name: \"intentOutputToken\",\n writable: true,\n pda: {\n seeds: [\n {\n kind: \"account\",\n path: \"intentStorage\",\n },\n {\n kind: \"account\",\n path: \"outputTokenProgram\",\n },\n {\n kind: \"account\",\n path: \"outputMint\",\n },\n ],\n program: {\n kind: \"const\",\n value: [\n 140, 151, 37, 143, 78, 36, 137, 241, 187, 61, 16, 41, 20, 142,\n 13, 131, 11, 90, 19, 153, 218, 255, 16, 132, 4, 142, 123, 216,\n 219, 233, 248, 89,\n ],\n },\n },\n },\n {\n name: \"instructions\",\n address: \"Sysvar1nstructions1111111111111111111111111\",\n },\n {\n name: \"systemProgram\",\n address: \"11111111111111111111111111111111\",\n },\n {\n name: \"outputTokenProgram\",\n },\n {\n name: \"associatedTokenProgram\",\n address: \"ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL\",\n },\n {\n name: \"eventAuthority\",\n pda: {\n seeds: [\n {\n kind: \"const\",\n value: [\n 95, 95, 101, 118, 101, 110, 116, 95, 97, 117, 116, 104, 111,\n 114, 105, 116, 121,\n ],\n },\n ],\n },\n },\n {\n name: \"program\",\n },\n ],\n args: [\n {\n name: \"expectedOutputTokenAmount\",\n type: \"u64\",\n },\n {\n name: \"takerSurplusShareBps\",\n type: \"u32\",\n },\n ],\n },\n {\n name: \"updateIntent\",\n discriminator: [214, 203, 249, 158, 90, 27, 54, 17],\n accounts: [\n {\n name: \"rentPayer\",\n writable: true,\n signer: true,\n },\n {\n name: \"state\",\n },\n {\n name: \"intentStorage\",\n writable: true,\n },\n {\n name: \"systemProgram\",\n address: \"11111111111111111111111111111111\",\n },\n {\n name: \"buffer\",\n optional: true,\n },\n {\n name: \"eventAuthority\",\n pda: {\n seeds: [\n {\n kind: \"const\",\n value: [\n 95, 95, 101, 118, 101, 110, 116, 95, 97, 117, 116, 104, 111,\n 114, 105, 116, 121,\n ],\n },\n ],\n },\n },\n {\n name: \"program\",\n },\n ],\n args: [\n {\n name: \"dataOrigin\",\n type: {\n defined: {\n name: \"dataOrigin\",\n },\n },\n },\n ],\n },\n {\n name: \"withdrawIntentTokenAccount\",\n discriminator: [188, 114, 123, 239, 223, 164, 242, 101],\n accounts: [\n {\n name: \"state\",\n },\n {\n name: \"maker\",\n docs: [\"CHECK\"],\n },\n {\n name: \"intentStorage\",\n },\n {\n name: \"intentTokenAccount\",\n writable: true,\n pda: {\n seeds: [\n {\n kind: \"account\",\n path: \"intentStorage\",\n },\n {\n kind: \"account\",\n path: \"tokenProgram\",\n },\n {\n kind: \"account\",\n path: \"tokenMint\",\n },\n ],\n program: {\n kind: \"const\",\n value: [\n 140, 151, 37, 143, 78, 36, 137, 241, 187, 61, 16, 41, 20, 142,\n 13, 131, 11, 90, 19, 153, 218, 255, 16, 132, 4, 142, 123, 216,\n 219, 233, 248, 89,\n ],\n },\n },\n },\n {\n name: \"makerTokenAccount\",\n writable: true,\n pda: {\n seeds: [\n {\n kind: \"account\",\n path: \"maker\",\n },\n {\n kind: \"account\",\n path: \"tokenProgram\",\n },\n {\n kind: \"account\",\n path: \"tokenMint\",\n },\n ],\n program: {\n kind: \"const\",\n value: [\n 140, 151, 37, 143, 78, 36, 137, 241, 187, 61, 16, 41, 20, 142,\n 13, 131, 11, 90, 19, 153, 218, 255, 16, 132, 4, 142, 123, 216,\n 219, 233, 248, 89,\n ],\n },\n },\n },\n {\n name: \"rentReceiver\",\n writable: true,\n },\n {\n name: \"tokenMint\",\n },\n {\n name: \"tokenProgram\",\n },\n {\n name: \"associatedTokenProgram\",\n address: \"ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL\",\n },\n ],\n args: [\n {\n name: \"encodedIntentHash\",\n type: {\n option: {\n defined: {\n name: \"encodedIntentHash\",\n },\n },\n },\n },\n ],\n },\n ],\n accounts: [\n {\n name: \"intentStorage\",\n discriminator: [175, 239, 93, 146, 246, 119, 144, 249],\n },\n {\n name: \"makerInfo\",\n discriminator: [164, 184, 52, 218, 144, 52, 100, 40],\n },\n {\n name: \"state\",\n discriminator: [216, 146, 107, 94, 104, 75, 182, 177],\n },\n ],\n events: [\n {\n name: \"closedIntent\",\n discriminator: [197, 62, 20, 42, 191, 176, 242, 94],\n },\n {\n name: \"fulfilled\",\n discriminator: [210, 174, 131, 213, 40, 182, 83, 110],\n },\n {\n name: \"fulfilledDln\",\n discriminator: [42, 231, 52, 35, 155, 251, 144, 108],\n },\n {\n name: \"intentBudgetSpent\",\n discriminator: [106, 148, 20, 168, 115, 89, 145, 56],\n },\n {\n name: \"newIntent\",\n discriminator: [101, 118, 73, 187, 15, 74, 57, 97],\n },\n {\n name: \"sealedIntent\",\n discriminator: [28, 191, 234, 161, 83, 32, 138, 137],\n },\n {\n name: \"swapped\",\n discriminator: [217, 52, 52, 83, 147, 135, 96, 109],\n },\n ],\n errors: [\n {\n code: 6160,\n name: \"invalidArgument\",\n },\n {\n code: 6170,\n name: \"invalidAmount\",\n },\n {\n code: 6172,\n name: \"malformedRemainingAccounts\",\n },\n {\n code: 16782961,\n name: \"protocolPaused\",\n },\n {\n code: 16782979,\n name: \"timeParadox\",\n },\n {\n code: 6234,\n name: \"unknownCaller\",\n },\n {\n code: 6236,\n name: \"unknownCancelAuthority\",\n },\n {\n code: 6079,\n name: \"signatureVerificationFailed\",\n },\n {\n code: 6085,\n name: \"intentIdMiscalculated\",\n },\n {\n code: 6086,\n name: \"intentFromAnotherChain\",\n },\n {\n code: 6087,\n name: \"intentSameChainOnly\",\n },\n {\n code: 6088,\n name: \"intentInconsistentInputTokens\",\n },\n {\n code: 6089,\n name: \"intentInconsistentGiveTokens\",\n },\n {\n code: 6096,\n name: \"intentInconsistentTakeTokens\",\n },\n {\n code: 6097,\n name: \"intentInconsitentReceivers\",\n },\n {\n code: 6098,\n name: \"intentInconsitentDstAuthorities\",\n },\n {\n code: 6275,\n name: \"intentStorageAlreadyInitialized\",\n },\n {\n code: 6276,\n name: \"intentHashMismatch\",\n },\n {\n code: 6277,\n name: \"intentStorageSealed\",\n },\n {\n code: 6278,\n name: \"missedBufferAccount\",\n },\n {\n code: 6288,\n name: \"intentNotReady\",\n },\n {\n code: 6289,\n name: \"intentCancelled\",\n },\n {\n code: 6290,\n name: \"intentExpired\",\n },\n {\n code: 6291,\n name: \"intentInvalidatedByUser\",\n },\n {\n code: 6292,\n name: \"intentInvalidatedByProtocolAuthority\",\n },\n {\n code: 6293,\n name: \"expectedClosedIntent\",\n },\n {\n code: 6294,\n name: \"expectedCancelledIntent\",\n },\n {\n code: 9664,\n name: \"tokenAccountMissingProtocolDelegate\",\n },\n {\n code: 9665,\n name: \"unknownInputToken\",\n },\n {\n code: 9666,\n name: \"inputTokenAmountOutOfRange\",\n },\n {\n code: 9667,\n name: \"inputTokenAmountExceedsBudget\",\n },\n {\n code: 9668,\n name: \"swapOutputAmountLessThanExpected\",\n },\n {\n code: 9680,\n name: \"takerNotAllowed\",\n },\n {\n code: 9681,\n name: \"unknownRoute\",\n },\n {\n code: 9682,\n name: \"priceViolation\",\n },\n {\n code: 9683,\n name: \"invalidReceiver\",\n },\n {\n code: 9684,\n name: \"readonlyReceiver\",\n },\n {\n code: 6101,\n name: \"missedNativeUnwrapFlag\",\n },\n {\n code: 9793,\n name: \"invalidDlnOrderTakeAmount\",\n },\n {\n code: 9794,\n name: \"invalidDlnDstReceiver\",\n },\n {\n code: 9802,\n name: \"invalidDlnDstOrderAuthority\",\n },\n {\n code: 9803,\n name: \"invalidDlnDstAllowedTaker\",\n },\n {\n code: 9804,\n name: \"invalidDlnSrcAllowedCancelBeneficiary\",\n },\n {\n code: 9805,\n name: \"invalidDlnMetadata\",\n },\n {\n code: 9806,\n name: \"invalidDlnExtcallHash\",\n },\n {\n code: 9788,\n name: \"cantBeClosed\",\n },\n {\n code: 9787,\n name: \"invalidTokenAccountRentReceiver\",\n },\n {\n code: 9839,\n name: \"intentArbitraryDataOverflow\",\n },\n {\n code: 8832,\n name: \"takerMustBeFixedWhenExtcallAllowed\",\n },\n {\n code: 8833,\n name: \"ambiguousReceivers\",\n },\n {\n code: 9600,\n name: \"interactionAccountNotFound\",\n },\n {\n code: 9601,\n name: \"interactionProgramNotFound\",\n },\n {\n code: 6239,\n name: \"interactionFixedAccountNotFound\",\n },\n {\n code: 9536,\n name: \"unknownDelegate\",\n },\n {\n code: 9537,\n name: \"delegateNonceMismatchNext\",\n },\n {\n code: 9546,\n name: \"delegateHasNoApproval\",\n },\n {\n code: 9547,\n name: \"delegateExceedsApprovedBudget\",\n },\n {\n code: 9550,\n name: \"delegateApprovalExpired\",\n },\n {\n code: 9551,\n name: \"delegateRevoked\",\n },\n {\n code: 16767137,\n name: \"crossProgramInvokeRestricted\",\n },\n {\n code: 16770159,\n name: \"crossProgramInvokeHasIntentsProgramAccount\",\n },\n ],\n types: [\n {\n name: \"address\",\n type: {\n kind: \"type\",\n alias: {\n vec: \"u8\",\n },\n },\n },\n {\n name: \"approvedTokenBudget\",\n type: {\n kind: \"struct\",\n fields: [\n {\n name: \"tokenMint\",\n type: \"pubkey\",\n },\n {\n name: \"approvedAmount\",\n type: \"u64\",\n },\n {\n name: \"expiration\",\n type: \"u64\",\n },\n ],\n },\n },\n {\n name: \"closedIntent\",\n type: {\n kind: \"struct\",\n fields: [\n {\n name: \"status\",\n type: {\n defined: {\n name: \"closedIntentStatus\",\n },\n },\n },\n ],\n },\n },\n {\n name: \"closedIntentStatus\",\n repr: {\n kind: \"rust\",\n },\n type: {\n kind: \"enum\",\n variants: [\n {\n name: \"wiped\",\n },\n {\n name: \"terminated\",\n },\n ],\n },\n },\n {\n name: \"createOrderArgs\",\n docs: [\"Structure for forming a new order\"],\n type: {\n kind: \"struct\",\n fields: [\n {\n name: \"giveOriginalAmount\",\n docs: [\n \"Input amount for `create order` call, that will be transferred from the user's wallet.\",\n \"The dln commissions will be deducted from it and the resulting value will be used as [`Order::give.amount`]\",\n ],\n type: \"u64\",\n },\n {\n name: \"take\",\n docs: [\"Offer to take in destination chain\"],\n type: {\n defined: {\n name: \"offer\",\n },\n },\n },\n {\n name: \"receiverDst\",\n docs: [\n \"Address in dst chain\",\n \"Address of receiver_dst of tokens in target chain\",\n \"or\",\n \"address of external call executor if `external_call` presented\",\n ],\n type: {\n defined: {\n name: \"address\",\n },\n },\n },\n {\n name: \"extcall\",\n docs: [\n \"External call for automatically execution in target chain after execution of order\",\n ],\n type: {\n option: \"bytes\",\n },\n },\n {\n name: \"givePatchAuthoritySrc\",\n docs: [\n \"Address in source chain\",\n \"Can call `patch_order_give` method of src program\",\n ],\n type: \"pubkey\",\n },\n {\n name: \"allowedCancelBeneficiarySrc\",\n docs: [\n \"Address in source chain\",\n \"If the field is `Some`, then only this address can receive cancel\",\n ],\n type: {\n option: \"pubkey\",\n },\n },\n {\n name: \"orderAuthorityAddressDst\",\n docs: [\n \"Address in destination chain\",\n \"Can `send_order_cancel`, `process_fallback` and `patch_order_take`\",\n ],\n type: {\n defined: {\n name: \"address\",\n },\n },\n },\n {\n name: \"allowedTakerDst\",\n docs: [\n \"Address in destination chain\",\n \"If the field is `Some`, then only this address can call `fulfill_order` with this\",\n \"order\",\n ],\n type: {\n option: {\n defined: {\n name: \"address\",\n },\n },\n },\n },\n ],\n },\n },\n {\n name: \"currentTokenBudget\",\n type: {\n kind: \"struct\",\n fields: [\n {\n name: \"tokenMint\",\n type: \"pubkey\",\n },\n {\n name: \"approvedAmount\",\n type: \"u64\",\n },\n {\n name: \"expiration\",\n type: \"u64\",\n },\n {\n name: \"remainingAmount\",\n type: \"u64\",\n },\n ],\n },\n },\n {\n name: \"dataOrigin\",\n type: {\n kind: \"enum\",\n variants: [\n {\n name: \"instruction\",\n fields: [\"bytes\"],\n },\n {\n name: \"buffer\",\n fields: [\n {\n name: \"offset\",\n type: \"u32\",\n },\n {\n name: \"length\",\n type: \"u32\",\n },\n ],\n },\n ],\n },\n },\n {\n name: \"delegateBudgets\",\n type: {\n kind: \"enum\",\n variants: [\n {\n name: \"any\",\n },\n {\n name: \"perToken\",\n fields: [\n {\n vec: {\n defined: {\n name: \"currentTokenBudget\",\n },\n },\n },\n ],\n },\n {\n name: \"revoked\",\n },\n ],\n },\n },\n {\n name: \"delegateInfo\",\n type: {\n kind: \"struct\",\n fields: [\n {\n name: \"delegate\",\n type: \"pubkey\",\n },\n {\n name: \"nonce\",\n type: \"u64\",\n },\n {\n name: \"budgets\",\n type: {\n defined: {\n name: \"delegateBudgets\",\n },\n },\n },\n ],\n },\n },\n {\n name: \"encodedIntentHash\",\n type: {\n kind: \"struct\",\n fields: [\n {\n array: [\"u8\", 32],\n },\n ],\n },\n },\n {\n name: \"fulfilled\",\n type: {\n kind: \"struct\",\n fields: [\n {\n name: \"intentId\",\n type: {\n defined: {\n name: \"intentId\",\n },\n },\n },\n {\n name: \"tradeId\",\n type: {\n array: [\"u8\", 32],\n },\n },\n {\n name: \"executionMetadata\",\n type: {\n option: \"bytes\",\n },\n },\n {\n name: \"takeToken\",\n type: \"pubkey\",\n },\n {\n name: \"takeTokenAmount\",\n type: \"u64\",\n },\n {\n name: \"takeTokenFeeAmount\",\n type: \"u64\",\n },\n ],\n },\n },\n {\n name: \"fulfilledDln\",\n type: {\n kind: \"struct\",\n fields: [\n {\n name: \"intentId\",\n type: {\n defined: {\n name: \"intentId\",\n },\n },\n },\n {\n name: \"executionMetadata\",\n type: {\n option: \"bytes\",\n },\n },\n {\n name: \"tradeId\",\n type: {\n array: [\"u8\", 32],\n },\n },\n {\n name: \"orderId\",\n type: {\n defined: {\n name: \"u256\",\n },\n },\n },\n {\n name: \"giveTokenFeeAmount\",\n type: \"u64\",\n },\n ],\n },\n },\n {\n name: \"intentBudget\",\n type: {\n kind: \"struct\",\n fields: [\n {\n name: \"mintIndex\",\n type: \"u8\",\n },\n {\n name: \"remainingAmount\",\n type: \"u64\",\n },\n ],\n },\n },\n {\n name: \"intentBudgetSpent\",\n type: {\n kind: \"struct\",\n fields: [\n {\n name: \"intentId\",\n type: {\n defined: {\n name: \"intentId\",\n },\n },\n },\n {\n name: \"tradeId\",\n type: {\n array: [\"u8\", 32],\n },\n },\n {\n name: \"executionMetadata\",\n type: {\n option: \"bytes\",\n },\n },\n {\n name: \"inputToken\",\n type: \"pubkey\",\n },\n {\n name: \"inputTokenSpentAmount\",\n type: \"u64\",\n },\n ],\n },\n },\n {\n name: \"intentBudgets\",\n type: {\n kind: \"struct\",\n fields: [\n {\n vec: {\n defined: {\n name: \"intentBudget\",\n },\n },\n },\n ],\n },\n },\n {\n name: \"intentId\",\n type: {\n kind: \"struct\",\n fields: [\n {\n array: [\"u8\", 32],\n },\n ],\n },\n },\n {\n name: \"intentStorage\",\n type: {\n kind: \"struct\",\n fields: [\n {\n name: \"maker\",\n type: \"pubkey\",\n },\n {\n name: \"delegate\",\n type: {\n option: \"pubkey\",\n },\n },\n {\n name: \"rentPayer\",\n type: \"pubkey\",\n },\n {\n name: \"arbitraryData\",\n type: {\n array: [\"u8\", 100],\n },\n },\n {\n name: \"encodedIntentHash\",\n type: {\n defined: {\n name: \"encodedIntentHash\",\n },\n },\n },\n {\n name: \"version\",\n type: \"u8\",\n },\n {\n name: \"storedIntent\",\n type: {\n defined: {\n name: \"storedIntent\",\n },\n },\n },\n {\n name: \"bump\",\n type: \"u8\",\n },\n ],\n },\n },\n {\n name: \"makerInfo\",\n type: {\n kind: \"struct\",\n fields: [\n {\n name: \"cancelUntilTimestamp\",\n type: \"u64\",\n },\n {\n name: \"delegates\",\n type: {\n vec: {\n defined: {\n name: \"delegateInfo\",\n },\n },\n },\n },\n ],\n },\n },\n {\n name: \"newIntent\",\n type: {\n kind: \"struct\",\n fields: [\n {\n name: \"intentId\",\n type: {\n defined: {\n name: \"intentId\",\n },\n },\n },\n ],\n },\n },\n {\n name: \"offer\",\n type: {\n kind: \"struct\",\n fields: [\n {\n name: \"chainId\",\n type: {\n defined: {\n name: \"u256\",\n },\n },\n },\n {\n name: \"tokenAddress\",\n type: {\n defined: {\n name: \"address\",\n },\n },\n },\n {\n name: \"amount\",\n type: {\n defined: {\n name: \"u256\",\n },\n },\n },\n ],\n },\n },\n {\n name: \"sealedIntent\",\n type: {\n kind: \"struct\",\n fields: [\n {\n name: \"intentId\",\n type: {\n defined: {\n name: \"intentId\",\n },\n },\n },\n {\n name: \"encodedIntent\",\n type: \"bytes\",\n },\n ],\n },\n },\n {\n name: \"setApprovedTokenBudgets\",\n type: {\n kind: \"enum\",\n variants: [\n {\n name: \"set\",\n fields: [\n {\n vec: {\n defined: {\n name: \"approvedTokenBudget\",\n },\n },\n },\n ],\n },\n {\n name: \"setAny\",\n },\n {\n name: \"revoke\",\n },\n ],\n },\n },\n {\n name: \"signatureType\",\n repr: {\n kind: \"rust\",\n },\n type: {\n kind: \"enum\",\n variants: [\n {\n name: \"rawBytes\",\n },\n {\n name: \"hexString\",\n },\n ],\n },\n },\n {\n name: \"state\",\n type: {\n kind: \"struct\",\n fields: [\n {\n name: \"protocolAuthority\",\n type: \"pubkey\",\n },\n {\n name: \"feeCollector\",\n type: \"pubkey\",\n },\n {\n name: \"defaultFeeBps\",\n type: \"u32\",\n },\n {\n name: \"isPaused\",\n type: \"bool\",\n },\n {\n name: \"cancelUntilTimestamp\",\n type: \"u64\",\n },\n {\n name: \"bump\",\n type: \"u8\",\n },\n ],\n },\n },\n {\n name: \"storedIntent\",\n type: {\n kind: \"enum\",\n variants: [\n {\n name: \"uninitialized\",\n },\n {\n name: \"ready\",\n fields: [\n {\n name: \"encodedIntent\",\n type: \"bytes\",\n },\n {\n name: \"budgets\",\n type: {\n defined: {\n name: \"intentBudgets\",\n },\n },\n },\n ],\n },\n {\n name: \"cancelled\",\n fields: [\n {\n name: \"encodedIntent\",\n type: \"bytes\",\n },\n {\n name: \"budgets\",\n type: {\n defined: {\n name: \"intentBudgets\",\n },\n },\n },\n ],\n },\n ],\n },\n },\n {\n name: \"swapped\",\n type: {\n kind: \"struct\",\n fields: [\n {\n name: \"intentId\",\n type: {\n defined: {\n name: \"intentId\",\n },\n },\n },\n {\n name: \"tradeId\",\n type: {\n array: [\"u8\", 32],\n },\n },\n {\n name: \"executionMetadata\",\n type: {\n option: \"bytes\",\n },\n },\n {\n name: \"inputToken\",\n type: \"pubkey\",\n },\n {\n name: \"inputTokenAmount\",\n type: \"u64\",\n },\n {\n name: \"outputToken\",\n type: \"pubkey\",\n },\n {\n name: \"outputTokenAmount\",\n type: \"u64\",\n },\n {\n name: \"takerOutputTokenShareAmount\",\n type: \"u64\",\n },\n ],\n },\n },\n {\n name: \"targetTokenAccount\",\n type: {\n kind: \"enum\",\n variants: [\n {\n name: \"taker\",\n },\n {\n name: \"intent\",\n },\n ],\n },\n },\n {\n name: \"u256\",\n type: {\n kind: \"type\",\n alias: {\n array: [\"u8\", 32],\n },\n },\n },\n ],\n constants: [\n {\n name: \"budgetsSigPrefix\",\n type: \"bytes\",\n value: \"[98, 117, 100, 103, 101, 116, 115]\",\n },\n {\n name: \"clockDriftToleranceSecs\",\n type: \"u64\",\n value: \"300\",\n },\n {\n name: \"defaultFeeBps\",\n type: \"u32\",\n value: \"8\",\n },\n {\n name: \"intentsProgramSigPrefix\",\n type: \"bytes\",\n value:\n \"[105, 110, 116, 101, 110, 116, 115, 95, 112, 114, 111, 103, 114, 97, 109, 95, 104, 97, 110, 111, 105]\",\n },\n {\n name: \"intentIdHashPrefix\",\n docs: [\n \"Used **only** as sub-seed for [IntentId][`crate::types::IntentId`]\",\n ],\n type: \"bytes\",\n value: \"[105, 110, 116, 101, 110, 116, 95, 105, 100]\",\n },\n {\n name: \"intentSigPrefix\",\n type: \"bytes\",\n value: \"[105, 110, 116, 101, 110, 116, 115]\",\n },\n {\n name: \"intentStorageBaseSeed\",\n type: \"bytes\",\n value:\n \"[105, 110, 116, 101, 110, 116, 95, 115, 116, 111, 114, 97, 103, 101]\",\n },\n {\n name: \"interactionCallAuthority\",\n type: \"bytes\",\n value:\n \"[105, 110, 116, 101, 114, 97, 99, 116, 105, 111, 110, 95, 97, 117, 116, 104, 111, 114, 105, 116, 121]\",\n },\n {\n name: \"makerInfoSeed\",\n type: \"bytes\",\n value: \"[109, 97, 107, 101, 114, 95, 105, 110, 102, 111]\",\n },\n {\n name: \"stateSeed\",\n type: \"bytes\",\n value: \"[115, 116, 97, 116, 101]\",\n },\n {\n name: \"unwrapNativePseudoMint\",\n type: \"pubkey\",\n value: \"11111111111111111111111111111111\",\n },\n {\n name: \"unwrapNativeReceiverSeed\",\n type: \"bytes\",\n value:\n \"[117, 110, 119, 114, 97, 112, 95, 110, 97, 116, 105, 118, 101, 95, 114, 101, 99, 101, 105, 118, 101, 114]\",\n },\n ],\n};\n","import {\n ComputeBudget,\n ExternalCallParams,\n GetTransactionParams,\n} from \"./types\";\nimport {\n ComputeBudgetProgram,\n MessageV0,\n TransactionInstruction,\n VersionedTransaction,\n} from \"@solana/web3.js\";\nimport { BN } from \"@coral-xyz/anchor\";\nimport { helpers } from \"@debridge-finance/solana-utils\";\nimport { keccak256 } from \"js-sha3\";\n\nexport function bigintToArray(\n n: bigint | number,\n type: \"u64\" | \"u256\",\n): number[] {\n let size: number;\n switch (type) {\n case \"u256\":\n size = 32;\n break;\n case \"u64\":\n size = 8;\n break;\n }\n\n return new BN(n.toString()).toArray(\"be\", size);\n}\n\nexport const u64 = (v: bigint) => {\n const buf = Buffer.alloc(8);\n buf.writeBigUInt64LE(v);\n return buf;\n};\n\nexport const vecU8 = (data: Buffer) => {\n const len = Buffer.alloc(4);\n len.writeUInt32LE(data.length);\n return Buffer.concat([len, data]);\n};\n\nexport const getComputeBudgetIxs = (\n computeBudget?: ComputeBudget,\n): TransactionInstruction[] => {\n const ixs: TransactionInstruction[] = [];\n\n if (computeBudget?.limit) {\n ixs.push(\n ComputeBudgetProgram.setComputeUnitLimit({\n units: computeBudget.limit,\n }),\n );\n }\n\n if (computeBudget?.price) {\n ixs.push(\n ComputeBudgetProgram.setComputeUnitPrice({\n microLamports: computeBudget.price,\n }),\n );\n }\n\n return ixs;\n};\n\nexport const getVersionedTransaction = ({\n instructions,\n payer,\n blockhash,\n ALTs,\n}: GetTransactionParams) =>\n new VersionedTransaction(\n MessageV0.compile({\n instructions,\n payerKey: payer,\n recentBlockhash: blockhash,\n addressLookupTableAccounts: ALTs,\n }),\n );\n","import {\n AnchorProvider,\n BN,\n Program,\n setProvider,\n Wallet as AnchorWallet,\n BorshCoder,\n IdlAccounts,\n IdlTypes,\n} from \"@coral-xyz/anchor\";\nimport {\n constants,\n dlnSrcResolver,\n programs,\n spl,\n txs as transactions,\n} from \"@debridge-finance/solana-utils\";\nimport {\n Connection,\n Keypair,\n PublicKey,\n SystemProgram,\n SYSVAR_INSTRUCTIONS_PUBKEY,\n TransactionInstruction,\n VersionedTransaction,\n} from \"@solana/web3.js\";\nimport { ASSOCIATED_TOKEN_PROGRAM_ID, NATIVE_MINT } from \"@solana/spl-token\";\nimport {\n getAssociatedTokenAddressSync,\n TOKEN_PROGRAM_ID,\n} from \"@solana/spl-token\";\nimport { IntentsProgram, IDL } from \"../idl/intents-program\";\nimport {\n createInitializeInstruction,\n createReallocateInstruction,\n createWriteInstruction,\n createCloseAccountInstruction,\n RECORD_PROGRAM_ID,\n RECORD_META_DATA_SIZE,\n} from \"@solana/spl-record\";\nimport {\n CloseIntentParams,\n CloseRecordParams,\n CreateAndUpdateIntentParams,\n ApproveProtocolTransfersParams,\n InitIntentParams,\n TokenApproval,\n UpdateIntentParams,\n UpdateRecordParams,\n WriteIntentParams,\n WriteRecordParams,\n UpdateRecordTxsParams,\n DelegateApprovedBudgetsParams,\n SwapBeginParams,\n SwapEndParams,\n ExecuteIntentParams,\n SwapParams,\n IntentStorage,\n State,\n ExecuteIntentSameChainParams,\n SetMakerCancelUntilTimestampParams,\n WithdrawIntentTokenAccountParams,\n WithdrawClosedIntentTokenAccountParams,\n CancelIntentParams,\n DelegateApprovedBudgetsArgs,\n SignatureType,\n} from \"./types\";\nimport {\n bigintToArray,\n getComputeBudgetIxs,\n getVersionedTransaction,\n} from \"./helpers\";\nimport nacl from \"tweetnacl\";\n\nasync function getTokenProgramId(\n connection: Connection,\n mint: PublicKey,\n): Promise<PublicKey> {\n const x = await spl.getTokenInfo(connection, mint, true);\n if (!x) throw new Error(\"Failed to fetch token account info\");\n\n return x.tokenProgram;\n}\n\nexport enum IntentProgramSigPrefix {\n prod = \"intents_program\",\n dubai = \"intents_program_dubai\",\n hanoi = \"intents_program_hanoi\",\n devnet = \"intents_program_devnet\",\n}\n\nexport const DEFAULT_RECORD_OFFSET = RECORD_META_DATA_SIZE;\n\nexport class IntentsClient {\n public readonly programId: PublicKey;\n public readonly idl: IntentsProgram;\n public readonly recordProgramId: PublicKey;\n private readonly _provider: AnchorProvider;\n private readonly _intentsProgram: Program<IntentsProgram>;\n private readonly _state: PublicKey;\n\n constructor(\n connection: Connection,\n {\n programId,\n recordProgramId = RECORD_PROGRAM_ID,\n }: {\n programId: PublicKey;\n recordProgramId?: PublicKey;\n },\n ) {\n IDL.address = programId.toString() as typeof IDL.address;\n this.idl = IDL;\n this.programId = programId;\n this.recordProgramId = recordProgramId;\n this._provider = new AnchorProvider(connection, {} as AnchorWallet, {});\n setProvider(this._provider);\n this._intentsProgram = new Program(IDL, this._provider);\n this._state = IntentsClient.getStatePda(this._intentsProgram.programId);\n }\n\n static getSignatureType(\n message: Buffer,\n signature: Buffer,\n signerKey: PublicKey,\n ): SignatureType {\n const rawReprAsBytes = message;\n const hexReprAsBytes = new TextEncoder().encode(\n `0x${message.toString(\"hex\")}`,\n );\n const signerBytes = signerKey.toBytes();\n if (nacl.sign.detached.verify(rawReprAsBytes, signature, signerBytes)) {\n return SignatureType.RawBytes;\n } else if (\n nacl.sign.detached.verify(hexReprAsBytes, signature, signerBytes)\n ) {\n return SignatureType.HexString;\n } else {\n return SignatureType.Invalid;\n }\n }\n\n private getSpace(length: number, budgets: number) {\n return 198 + (1 + length + (4 + 9 * budgets)); // (min 100)\n }\n\n async getState(connection: Connection): Promise<State | null> {\n const accountInfo = await connection.getAccountInfo(this._state);\n\n if (!accountInfo) {\n return null;\n }\n\n const data = this._intentsProgram.coder.accounts.decode(\n \"state\",\n accountInfo.data,\n );\n\n return {\n ...data,\n lastValidTimestamp: Number(data.lastValidTimestamp.toString()),\n };\n }\n\n async getIntentStorage(\n connection: Connection,\n intentId: Buffer,\n ): Promise<IntentStorage | null> {\n const intentStorage = IntentsClient.getIntentStoragePda(\n this._intentsProgram.programId,\n intentId,\n );\n\n const accountInfo = await connection.getAccountInfo(intentStorage);\n\n if (!accountInfo) {\n return null;\n }\n\n const data = this._intentsProgram.coder.accounts.decode(\n \"intentStorage\",\n accountInfo.data,\n );\n\n return {\n ...data,\n intentId,\n };\n }\n\n async getMakerInfo(\n connection: Connection,\n maker: PublicKey,\n ): Promise<IdlAccounts<IntentsProgram>[\"makerInfo\"] | null> {\n const makerInfoPda = IntentsClient.getMakerInfoPda(\n this._intentsProgram.programId,\n maker,\n );\n\n const accountInfo = await connection.getAccountInfo(makerInfoPda);\n\n if (!accountInfo) {\n return null;\n }\n\n const data = this._intentsProgram.coder.accounts.decode(\n \"makerInfo\",\n accountInfo.data,\n );\n\n return data;\n }\n\n async getNonceForDelegate(\n connection: Connection,\n maker: PublicKey,\n delegate: PublicKey,\n ): Promise<bigint> {\n const makerInfo = await this.getMakerInfo(connection, maker);\n\n if (!makerInfo) {\n return 0n;\n }\n\n for (let data of makerInfo.delegates) {\n if (data.delegate.toBase58() === delegate.toBase58()) {\n return BigInt(data.nonce.toString());\n }\n }\n\n return 0n;\n }\n\n // TODO vanilla solana delegation\n async approveProtocolTransfersIxs({\n maker,\n tokens,\n tokenProgram = TOKEN_PROGRAM_ID,\n }: ApproveProtocolTransfersParams): Promise<TransactionInstruction[]> {\n const amounts = [];\n const accounts = [];\n for (const { mint, amount } of tokens) {\n const currentTokenProgram = await getTokenProgramId(\n this._provider.connection,\n mint,\n );\n amounts.push(new BN(amount.toString()));\n accounts.push({\n pubkey: getAssociatedTokenAddressSync(\n mint,\n maker,\n true,\n currentTokenProgram,\n ),\n isSigner: false,\n isWritable: true,\n });\n }\n\n return [\n await this._intentsProgram.methods\n .approveProtocolTransfers(amounts)\n .accountsStrict({\n maker,\n state: this._state,\n tokenProgram,\n })\n .remainingAccounts(accounts)\n .instruction(),\n ];\n }\n\n private async cancelIntentIxs(\n maker: PublicKey,\n id: Buffer,\n ): Promise<TransactionInstruction[]> {\n return [\n await this._intentsProgram.methods\n .cancelIntent()\n .accountsStrict({\n initiator: maker,\n intentStorage: IntentsClient.getIntentStoragePda(\n this._intentsProgram.programId,\n id,\n ),\n state: this._state,\n })\n .instruction(),\n ];\n }\n\n private async closeIntentIxs(\n maker: PublicKey,\n rentPayer: PublicKey,\n id: Buffer,\n ): Promise<TransactionInstruction[]> {\n return [\n await this._intentsProgram.methods\n .closeIntent()\n .accountsStrict({\n initiator: maker,\n rentPayer,\n intentStorage: IntentsClient.getIntentStoragePda(\n this._intentsProgram.programId,\n id,\n ),\n state: this._state,\n systemProgram: SystemProgram.programId,\n makerInfo: IntentsClient.getMakerInfoPda(\n this._intentsProgram.programId,\n maker,\n ),\n maker,\n })\n .instruction(),\n ];\n }\n\n async executeIntentIxs({\n tradeId,\n intentId,\n taker,\n maker,\n tokenMint,\n dlnOrder,\n dlnMetadata,\n dlnSrc = new PublicKey(programs.dlnSrc),\n tokenProgram = TOKEN_PROGRAM_ID,\n }: ExecuteIntentParams): Promise<TransactionInstruction[]> {\n const accountsResolver = dlnSrcResolver(dlnSrc).methods;\n\n const [dlnSrcState] = accountsResolver.getStateAccount();\n\n const [dlnSrcGiveOrderState] = accountsResolver.getGiveOrderStateAccount(\n dlnOrder.id,\n );\n\n const [dlnSrcGiveOrderWallet] = accountsResolver.getGiveOrderWalletAddress(\n dlnOrder.id,\n );\n\n const [dlnSrcAuthorizedNativeSender] =\n accountsResolver.getAuthorizedNativeSenderAddress(\n Buffer.from(new BN(dlnOrder.dstChainId.toString()).toArray(\"be\", 32)),\n );\n\n const [dlnSrcFeeLedgerWallet] =\n accountsResolver.getFeeLedgerWalletAddress(tokenMint);\n\n const intentStorage = IntentsClient.getIntentStoragePda(\n this._intentsProgram.programId,\n intentId,\n );\n\n tokenProgram = await getTokenProgramId(\n this._provider.connection,\n tokenMint,\n );\n const intentGiveTokenATA = getAssociatedTokenAddressSync(\n tokenMint,\n intentStorage,\n true,\n tokenProgram,\n );\n\n const args: Parameters<\n Program<IntentsProgram>[\"methods\"][\"executeIntent\"]\n >[0] = {\n giveOriginalAmount: new BN(dlnOrder.args.giveOriginalAmount.toString()),\n take: {\n amount: bigintToArray(dlnOrder.args.take.amount, \"u256\"),\n chainId: bigintToArray(dlnOrder.args.take.chainId, \"u256\"),\n tokenAddress: Array.from(dlnOrder.args.take.tokenAddress),\n },\n receiverDst: Array.from(dlnOrder.args.receiver),\n extcall: dlnOrder.args.externalCall?.externalCallData\n ? Buffer.from(dlnOrder.args.externalCall.externalCallData)\n : null,\n givePatchAuthoritySrc: dlnOrder.args.givePatchAuthority,\n orderAuthorityAddressDst: Array.from(\n dlnOrder.args.orderAuthorityDstAddress,\n ),\n allowedCancelBeneficiarySrc: dlnOrder.args.allowedCancelBeneficiary,\n allowedTakerDst: dlnOrder.args.allowedTaker\n ? Array.from(dlnOrder.args.allowedTaker)\n : null,\n };\n\n return [\n await this._intentsProgram.methods\n .executeIntent(\n args,\n new BN(dlnOrder.nonce.toString()),\n dlnMetadata ?? Buffer.from([]),\n Array.from(tradeId),\n )\n .accountsStrict({\n taker,\n state: this._state,\n intentStorage,\n maker,\n makerInfo: IntentsClient.getMakerInfoPda(\n this._intentsProgram.programId,\n maker,\n ),\n intentGiveToken: intentGiveTokenATA,\n dlnSrc,\n dlnSrcState,\n dlnSrcGiveOrderState,\n dlnSrcGiveOrderWallet,\n dlnSrcAuthorizedNativeSender,\n dlnSrcFeeLedgerWallet,\n tokenMint,\n systemProgram: SystemProgram.programId,\n tokenProgram,\n associatedTokenProgram: ASSOCIATED_TOKEN_PROGRAM_ID,\n eventAuthority: IntentsClient.getEventAuthorityPda(\n this._intentsProgram.programId,\n ),\n program: this._intentsProgram.programId,\n })\n .instruction(),\n ];\n }\n\n async executeSameChainIntentIxs({\n tradeId,\n intentId,\n taker,\n maker,\n tokenMint,\n receiver,\n amount,\n tokenProgram = TOKEN_PROGRAM_ID,\n unwrapTakeToken,\n }: ExecuteIntentSameChainParams): Promise<TransactionInstruction[]> {\n let unwrapNativeSol = false;\n let receiverTakeToken;\n\n const intentStorage = IntentsClient.getIntentStoragePda(\n this._intentsProgram.programId,\n intentId,\n );\n\n tokenProgram = await getTokenProgramId(\n this._provider.connection,\n tokenMint,\n );\n const intentTakeTokenATA = getAssociatedTokenAddressSync(\n tokenMint,\n intentStorage,\n true,\n tokenProgram,\n );\n\n if (unwrapTakeToken && tokenMint.toBase58() === NATIVE_MINT.toBase58()) {\n receiverTakeToken = IntentsClient.getNativePda(\n this._intentsProgram.programId,\n );\n unwrapNativeSol = true;\n } else {\n receiverTakeToken = getAssociatedTokenAddressSync(\n tokenMint,\n receiver,\n true,\n tokenProgram,\n );\n }\n\n const feeLedger = getAssociatedTokenAddressSync(\n tokenMint,\n this._state,\n true,\n tokenProgram,\n );\n\n const ix = await this._intentsProgram.methods\n .executeIntent2(new BN(amount.toString()), Array.from(tradeId))\n .accountsStrict({\n taker,\n state: this._state,\n maker,\n receiver,\n makerInfo: IntentsClient.getMakerInfoPda(\n this._intentsProgram.programId,\n maker,\n ),\n intentStorage,\n intentTakeToken: intentTakeTokenATA,\n feeLedger,\n receiverTakeToken,\n tokenMint,\n systemProgram: SystemProgram.programId,\n tokenProgram,\n associatedTokenProgram: ASSOCIATED_TOKEN_PROGRAM_ID,\n eventAuthority: IntentsClient.getEventAuthorityPda(\n this._intentsProgram.programId,\n ),\n program: this._intentsProgram.programId,\n })\n .instruction();\n\n if (unwrapNativeSol) {\n let receiverIdx = ix.keys.findIndex((meta) => meta.pubkey == receiver)!;\n ix.keys[receiverIdx]!.isWritable = true;\n }\n\n return [ix];\n }\n\n async initIntentIxs(\n maker: PublicKey,\n payer: PublicKey,\n delegate: PublicKey | null = null,\n id: Buffer,\n encodedIntentHash: Buffer,\n encodedIntentLength: number,\n inputTokensAmount: number,\n ): Promise<TransactionInstruction[]> {\n const space = this.getSpace(encodedIntentLength, inputTokensAmount);\n\n const method = delegate\n ? this._intentsProgram.methods.initIntentByDelegate(space, [0, 0], {\n 0: Array.from(encodedIntentHash),\n }) // rawHash\n : this._intentsProgram.methods.initIntent(space, [0, 0], {\n 0: Array.from(encodedIntentHash),\n }); // rawHash\n\n return [\n await method\n .accountsStrict({\n maker,\n ...(delegate && {\n delegate,\n makerInfo: IntentsClient.getMakerInfoPda(\n this._intentsProgram.programId,\n maker,\n ),\n }),\n rentPayer: payer,\n state: this._state,\n intentStorage: IntentsClient.getIntentStoragePda(\n this._intentsProgram.programId,\n id,\n ),\n systemProgram: SystemProgram.programId,\n eventAuthority: IntentsClient.getEventAuthorityPda(\n this._intentsProgram.programId,\n ),\n program: this._intentsProgram.programId,\n })\n .instruction(),\n ];\n }\n\n async initIntentUsingSigIxs(\n maker: PublicKey,\n payer: PublicKey,\n delegate: PublicKey | null = null,\n id: Buffer,\n encodedIntentHash: Buffer,\n encodedIntentLength: number,\n inputTokensAmount: number,\n signature: Buffer,\n ): Promise<TransactionInstruction[]> {\n const space = this.getSpace(encodedIntentLength, inputTokensAmount);\n\n const isHanoi =\n this.programId.toBase58() ==\n \"intV2u5xDE8T2ZMFP3W3X6sVqGHBT7zvYtTW3rRLmvE\";\n\n const sigType = IntentsClient.getSignatureType(\n IntentsClient.getBufferForIntentSignature(\n id,\n isHanoi ? IntentProgramSigPrefix.hanoi : IntentProgramSigPrefix.prod,\n ),\n signature,\n maker,\n );\n\n let sigTypeInternal: IdlTypes<IntentsProgram>[\"signatureType\"] | undefined =\n undefined;\n if (sigType == SignatureType.RawBytes) {\n sigTypeInternal = { rawBytes: {} };\n } else if (sigType == SignatureType.HexString) {\n sigTypeInternal = { hexString: {} };\n } else {\n throw new Error(\"Failed to get valid signature type\");\n }\n\n const method = delegate\n ? this._intentsProgram.methods.initIntentByDelegateUsingSig(\n space,\n sigTypeInternal,\n 0,\n { 0: Array.from(encodedIntentHash) },\n Array.from(signature),\n )\n : this._intentsProgram.methods.initIntentUsingSig(\n space,\n sigTypeInternal,\n 0,\n { 0: Array.from(encodedIntentHash) },\n Array.from(signature),\n );\n\n return [\n await method\n .accountsStrict({\n ...(delegate && {\n delegate,\n makerInfo: IntentsClient.getMakerInfoPda(\n this._intentsProgram.programId,\n maker,\n ),\n }),\n maker,\n rentPayer: payer,\n state: this._state,\n intentStorage: IntentsClient.getIntentStoragePda(\n this._intentsProgram.programId,\n id,\n ),\n systemProgram: SystemProgram.programId,\n eventAuthority: IntentsClient.getEventAuthorityPda(\n this._intentsProgram.programId,\n ),\n program: this._intentsProgram.programId,\n })\n .instruction(),\n ];\n }\n\n async setDelegateApprovedBudgetsIxs({\n maker,\n payer,\n delegate,\n nonce,\n tokens,\n signature,\n }: DelegateApprovedBudgetsParams): Promise<TransactionInstruction[]> {\n const enumArgs = IntentsClient.getDelegateApprovedBudgetsArgs(tokens);\n const encodedApprovedTokenBudgets = this._intentsProgram.coder.types.encode(\n \"setApprovedTokenBudgets\",\n enumArgs,\n );\n\n const method = signature\n ? this._intentsProgram.methods.setDelegateApprovedBudgetsUsingSig(\n new BN(nonce.toString()),\n encodedApprovedTokenBudgets,\n Array.from(signature),\n )\n : this._intentsProgram.methods.setDelegateApprovedBudgets(\n new BN(nonce.toString()),\n enumArgs,\n );\n\n return [\n await method\n .accountsStrict({\n maker,\n delegate,\n rentPayer: payer,\n state: this._state,\n makerInfo: IntentsClient.getMakerInfoPda(\n this._intentsProgram.programId,\n maker,\n ),\n systemProgram: SystemProgram.programId,\n })\n .instruction(),\n ];\n }\n\n async setMakerCancelUntilTimestampIxs({\n maker,\n payer,\n timestamp,\n }: SetMakerCancelUntilTimestampParams): Promise<TransactionInstruction[]> {\n return [\n await this._intentsProgram.methods\n .setMakerCancelUntilTimestamp(new BN(timestamp.toString()))\n .accountsStrict({\n maker,\n rentPayer: payer,\n state: this._state,\n makerInfo: IntentsClient.getMakerInfoPda(\n this._intentsProgram.programId,\n maker,\n ),\n systemProgram: SystemProgram.programId,\n })\n .instruction(),\n ];\n }\n\n async swapBeginIxs({\n taker,\n maker,\n intentId,\n tradeId,\n beginAmount, // 0 for tests // transfer from random wallet to taker output amount, input / output = intent price\n target,\n inputMint,\n outputMint,\n inputTokenProgram = TOKEN_PROGRAM_ID,\n outputTokenProgram = TOKEN_PROGRAM_ID,\n }: SwapBeginParams): Promise<TransactionInstruction[]> {\n const intentStorage = IntentsClient.getIntentStoragePda(\n this._intentsProgram.programId,\n intentId,\n );\n\n [inputTokenProgram, outputTokenProgram] = await Promise.all([\n getTokenProgramId(this._provider.connection, inputMint),\n getTokenProgramId(this._provider.connection, outputMint),\n ]);\n\n const makerInputToken = getAssociatedTokenAddressSync(\n inputMint,\n maker,\n true,\n inputTokenProgram,\n );\n\n const takerInputToken = getAssociatedTokenAddressSync(\n inputMint,\n taker,\n true,\n inputTokenProgram,\n );\n\n const takerOutputToken = getAssociatedTokenAddressSync(\n outputMint,\n taker,\n true,\n outputTokenProgram,\n );\n\n const intentOutputToken = getAssociatedTokenAddressSync(\n outputMint,\n intentStorage,\n true,\n outputTokenProgram,\n );\n\n return [\n await this._intentsProgram.methods\n .swapBegin(\n new BN(beginAmount.toString()),\n target === \"intent\" ? { intent: {} } : { taker: {} },\n Array.from(tradeId),\n )\n .accountsStrict({\n taker,\n maker,\n state: this._state,\n intentStorage,\n inputMint,\n outputMint,\n makerInputToken,\n takerInputToken,\n takerOutputToken,\n intentOutputToken,\n instructions: SYSVAR_INSTRUCTIONS_PUBKEY,\n systemProgram: SystemProgram.programId,\n inputTokenProgram,\n outputTokenProgram,\n associatedTokenProgram: ASSOCIATED_TOKEN_PROGRAM_ID,\n makerInfo: IntentsClient.getMakerInfoPda(\n this._intentsProgram.programId,\n maker,\n ),\n eventAuthority: IntentsClient.getEventAuthorityPda(\n this._intentsProgram.programId,\n ),\n program: this._intentsProgram.programId,\n })\n .instruction(),\n ];\n }\n\n async swapEndIxs({\n taker,\n intentId,\n endAmount,\n bps,\n inputMint,\n outputMint,\n outputTokenProgram = TOKEN_PROGRAM_ID,\n }: SwapEndParams): Promise<TransactionInstruction[]> {\n const intentStorage = IntentsClient.getIntentStoragePda(\n this._intentsProgram.programId,\n intentId,\n );\n\n outputTokenProgram = await getTokenProgramId(\n this._provider.connection,\n outputMint,\n );\n const takerOutputToken = getAssociatedTokenAddressSync(\n outputMint,\n taker,\n true,\n outputTokenProgram,\n );\n\n const intentOutputToken = getAssociatedTokenAddressSync(\n outputMint,\n intentStorage,\n true,\n outputTokenProgram,\n );\n\n return [\n await this._intentsProgram.methods\n .swapEnd(new BN(endAmount.toString()), bps)\n .accountsStrict({\n taker,\n state: this._state,\n intentStorage,\n inputMint,\n outputMint,\n takerOutputToken,\n intentOutputToken,\n instructions: SYSVAR_INSTRUCTIONS_PUBKEY,\n systemProgram: SystemProgram.programId,\n outputTokenProgram,\n associatedTokenProgram: ASSOCIATED_TOKEN_PROGRAM_ID,\n eventAuthority: IntentsClient.getEventAuthorityPda(\n this._intentsProgram.programId,\n ),\n program: this._intentsProgram.programId,\n })\n .instruction(),\n ];\n }\n\n async updateIntentIxs({\n payer,\n record,\n id,\n offset,\n length,\n data,\n }: UpdateIntentParams): Promise<TransactionInstruction[]> {\n const intentStorage = IntentsClient.getIntentStoragePda(\n this._intentsProgram.programId,\n id,\n );\n\n return [\n await this._intentsProgram.methods\n .updateIntent(\n data ? { instruction: [data] } : { buffer: { offset, length } },\n )\n .accountsStrict({\n rentPayer: payer,\n state: this._state,\n intentStorage,\n systemProgram: SystemProgram.programId,\n buffer: record ?? null,\n eventAuthority: IntentsClient.getEventAuthorityPda(\n this._intentsProgram.programId,\n ),\n program: this._intentsProgram.programId,\n })\n .instruction(),\n ];\n }\n\n async withdrawIntentTokenAccountIxs({\n maker,\n receiver,\n id,\n encodedIntentHash,\n tokenMint,\n tokenProgram = TOKEN_PROGRAM_ID,\n }: WithdrawIntentTokenAccountParams): Promise<TransactionInstruction[]> {\n if (!receiver) {\n receiver = maker;\n }\n\n const intentStorage = IntentsClient.getIntentStoragePda(\n this._intentsProgram.programId,\n id,\n );\n\n tokenProgram = await getTokenProgramId(\n this._provider.connection,\n tokenMint,\n );\n const intentTokenAccount = getAssociatedTokenAddressSync(\n tokenMint,\n intentStorage,\n true,\n tokenProgram,\n );\n\n const makerTokenAccount = getAssociatedTokenAddressSync(\n tokenMint,\n maker,\n true,\n tokenProgram,\n );\n\n return [\n await this._intentsProgram.methods\n .withdrawIntentTokenAccount({\n 0: Array.from(encodedIntentHash),\n })\n .accountsStrict({\n state: this._state,\n maker,\n intentStorage,\n intentTokenAccount,\n makerTokenAccount,\n rentReceiver: receiver,\n tokenMint,\n tokenProgram,\n associatedTokenProgram: ASSOCIATED_TOKEN_PROGRAM_ID,\n })\n .instruction(),\n ];\n }\n\n /*\n async withdrawClosedIntentTokenAccount({\n id,\n tokenMint,\n tokenProgram = TOKEN_PROGRAM_ID,\n }: WithdrawClosedIntentTokenAccountParams): Promise<\n TransactionInstruction[]\n > {\n const intentStorage = IntentsClient.getIntentStoragePda(\n this._intentsProgram.programId,\n id,\n );\n\n const intentTokenAccount = getAssociatedTokenAddressSync(\n tokenMint,\n intentStorage,\n true,\n tokenProgram,\n );\n\n const feeLedger = getAssociatedTokenAddressSync(\n tokenMint,\n this._state,\n true,\n tokenProgram,\n );\n\n return [\n await this._intentsProgram.methods\n .withdrawClosedIntentTokenAccount({ 0: Array.from(id) })\n .accountsStrict({\n state: this._state,\n intentStorage,\n intentTokenAccount,\n feeLedger,\n mint: tokenMint,\n tokenProgram,\n associatedTokenProgram: ASSOCIATED_TOKEN_PROGRAM_ID,\n })\n .instruction(),\n ];\n }\n */\n\n closeRecordIxs({\n record,\n authority,\n receiver,\n }: CloseRecordParams): TransactionInstruction[] {\n if (!receiver) {\n receiver = authority;\n }\n\n return [\n createCloseAccountInstruction(\n record,\n authority,\n receiver,\n this.recordProgramId,\n ),\n ];\n }\n\n writeRecordIxs({\n authority,\n record,\n buffer,\n offset,\n }: WriteRecordParams): TransactionInstruction[] {\n // TODO add realloc for wider usage?\n //const reallocIx = createReallocateInstruction(record, authority, BigInt(dataLength), this.recordProgramId);\n return [\n createWriteInstruction(\n record,\n authority,\n BigInt(offset),\n buffer,\n this.recordProgramId,\n ),\n ];\n }\n\n async reallocRecordIxs({\n authority,\n payer,\n record,\n buffer,\n offset,\n }: UpdateRecordParams): Promise<TransactionInstruction[]> {\n if (!payer) {\n payer = authority;\n }\n\n const accountInfo = await this._provider.connection.getAccountInfo(record);\n\n if (!accountInfo) {\n throw new Error(\"Record account not found\");\n }\n\n const currentLamports = accountInfo.lamports;\n const currentSize = accountInfo.data.length;\n const requiredSize = offset + buffer.length;\n\n const ixs: TransactionInstruction[] = [];\n\n if (requiredSize > currentSize) {\n const requiredLamports =\n await this._provider.connection.getMinimumBalanceForRentExemption(\n requiredSize + 1,\n );\n const deltaLamports = requiredLamports - currentLamports;\n\n const transferIx = SystemProgram.transfer({\n fromPubkey: payer,\n toPubkey: record,\n lamports: deltaLamports,\n });\n\n ixs.push(transferIx);\n\n const reallocIx = createReallocateInstruction(\n record,\n authority,\n BigInt(requiredSize - DEFAULT_RECORD_OFFSET),\n this.recordProgramId,\n );\n\n ixs.push(reallocIx);\n }\n\n return ixs;\n }\n\n async initIntentTxs({\n maker,\n payer,\n delegate,\n intent,\n signature,\n blockhash,\n ALTs,\n computeBudget,\n }: InitIntentParams): Promise<{\n record: Keypair;\n txs: VersionedTransaction[];\n }> {\n if (!payer) {\n payer = maker;\n }\n\n let initIntentIxs: TransactionInstruction[];\n const recordAccount = Keypair.generate();\n const serializedIntent = intent.data;\n const space = DEFAULT_RECORD_OFFSET + serializedIntent.length;\n const lamports =\n await this._provider.connection.getMinimumBalanceForRentExemption(\n space + 1,\n );\n const budgetIxs = getComputeBudgetIxs(computeBudget);\n\n if (signature) {\n initIntentIxs = await this.initIntentUsingSigIxs(\n maker,\n payer,\n delegate ?? null,\n intent.id,\n intent.hash,\n serializedIntent.length,\n intent.inputTokensLength,\n signature,\n );\n } else {\n initIntentIxs = await this.initIntentIxs(\n maker,\n payer,\n delegate ?? null,\n intent.id,\n intent.hash,\n serializedIntent.length,\n intent.inputTokensLength,\n );\n }\n\n const createAccountIx = SystemProgram.createAccount({\n fromPubkey: payer,\n newAccountPubkey: recordAccount.publicKey,\n lamports,\n space,\n programId: this.recordProgramId,\n });\n\n const initRecordIx = createInitializeInstruction(\n recordAccount.publicKey,\n payer, // authority\n this.recordProgramId,\n );\n\n const tx = getVersionedTransaction({\n instructions: [\n ...budgetIxs,\n ...initIntentIxs,\n createAccountIx,\n initRecordIx,\n ],\n payer,\n blockhash,\n ALTs,\n });\n\n return {\n record: recordAccount,\n txs: [tx],\n };\n }\n\n async writeIntentTxs({\n maker,\n payer,\n record,\n intent,\n blockhash,\n ALTs,\n computeBudget,\n }: WriteIntentParams): Promise<VersionedTransaction[]> {\n if (!payer) {\n payer = maker;\n }\n\n const txs: VersionedTransaction[] = [];\n const serializedIntent = intent.data;\n const size = serializedIntent.length;\n const budgetIxs = getComputeBudgetIxs(computeBudget);\n const closeRecordIxs = this.closeRecordIxs({\n record,\n authority: payer, // authority = payer\n receiver: payer,\n });\n\n const tmpTx = getVersionedTransaction({\n instructions: [\n ...budgetIxs,\n ...(await this.updateIntentIxs({\n // record,\n payer,\n id: intent.id,\n data: serializedIntent,\n })),\n ...closeRecordIxs,\n ],\n payer,\n blockhash,\n ALTs,\n });\n const tmpSize = transactions.getTransactionSize(tmpTx);\n\n if (tmpSize && tmpSize <= constants.MAX_TX_SIZE) {\n return [tmpTx];\n }\n\n let offset = 0;\n let lastInstructions: TransactionInstruction[] = [];\n while (offset < size) {\n let writeIxs;\n let ixs: TransactionInstruction[] = [...budgetIxs];\n let low = 1;\n let high = size - offset;\n let lastGoodIx: TransactionInstruction[] = [];\n let lastGoodLen = 0;\n\n while (low <= high) {\n const mid = Math.floor((low + high) / 2);\n const buffer = serializedIntent.subarray(offset, offset + mid);\n\n writeIxs = this.writeRecordIxs({\n authority: payer,\n record,\n buffer,\n offset,\n });\n\n const tx = getVersionedTransaction({\n instructions: [...ixs, ...writeIxs],\n payer,\n blockhash,\n ALTs,\n });\n\n const size = transactions.getTransactionSize(tx);\n if (size && size <= constants.MAX_TX_SIZE) {\n lastGoodIx = writeIxs;\n lastGoodLen = mid;\n low = mid + 1;\n } else {\n high = mid - 1;\n }\n }\n\n ixs.push(...lastGoodIx);\n lastInstructions = ixs;\n const tx = getVersionedTransaction({\n instructions: ixs,\n payer,\n blockhash,\n ALTs,\n });\n txs.push(tx);\n offset += lastGoodLen;\n }\n\n const updateIntentIxs = await this.updateIntentIxs({\n record,\n payer,\n id: intent.id,\n offset: DEFAULT_RECORD_OFFSET,\n length: size,\n });\n\n const finalInstructions = [...updateIntentIxs, ...closeRecordIxs];\n\n const combinedInstructions = [...lastInstructions, ...finalInstructions];\n const combinedTx = getVersionedTransaction({\n instructions: combinedInstructions,\n payer,\n blockhash,\n ALTs,\n });\n const combinedSize = transactions.getTransactionSize(combinedTx);\n if (combinedSize && combinedSize <= constants.MAX_TX_SIZE) {\n txs[txs.length - 1] = combinedTx;\n } else {\n const updateTx = getVersionedTransaction({\n instructions: finalInstructions,\n payer,\n blockhash,\n ALTs,\n });\n txs.push(updateTx);\n }\n\n return txs;\n }\n\n async createIntentTxs({\n maker,\n payer,\n delegate,\n intent,\n signature,\n blockhash,\n ALTs,\n computeBudget,\n }: InitIntentParams): Promise<{\n init: VersionedTransaction[];\n write: VersionedTransaction[];\n record: Keypair;\n }> {\n const { record, txs: init } = await this.initIntentTxs({\n maker,\n payer,\n delegate,\n intent,\n signature,\n blockhash,\n ALTs,\n computeBudget,\n });\n const write = await this.writeIntentTxs({\n maker,\n payer,\n record: record.publicKey,\n intent,\n blockhash,\n ALTs,\n computeBudget,\n });\n\n return {\n init,\n write,\n record,\n };\n }\n\n async createAndUpdateIntentTxs({\n maker,\n payer,\n delegate,\n intent,\n signature,\n blockhash,\n ALTs,\n computeBudget,\n }: CreateAndUpdateIntentParams): Promise<VersionedTransaction[]> {\n if (!payer) {\n payer = maker;\n }\n\n let initIntentIxs: TransactionInstruction[];\n let updateIntentIxs: TransactionInstruction[];\n\n const budgetIxs = getComputeBudgetIxs(computeBudget);\n\n // delegateApprove + initIntentDelegate\n\n if (signature) {\n initIntentIxs = await this.initIntentUsingSigIxs(\n maker,\n payer,\n delegate,\n intent.id,\n intent.hash,\n intent.data ? intent.data.length : intent.length,\n intent.inputTokensLength,\n signature,\n );\n } else {\n initIntentIxs = await this.initIntentIxs(\n maker,\n payer,\n delegate,\n intent.id,\n intent.hash,\n intent.data ? intent.data.length : intent.length,\n intent.inputTokensLength,\n );\n }\n\n if (intent.data) {\n updateIntentIxs = await this.updateIntentIxs({\n payer,\n id: intent.id,\n data: intent.data,\n });\n } else {\n updateIntentIxs = await this.updateIntentIxs({\n payer,\n record: intent.record,\n id: intent.id,\n offset: DEFAULT_RECORD_OFFSET + intent.offset,\n length: intent.length,\n });\n }\n\n const tx = getVersionedTransaction({\n instructions: [...budgetIxs, ...initIntentIxs, ...updateIntentIxs],\n payer,\n blockhash,\n ALTs,\n });\n\n const size = transactions.getTransactionSize(tx);\n\n if (size && size > constants.MAX_TX_SIZE) {\n throw new Error(\n `Tx size is ${size}, should be less than ${constants.MAX_TX_SIZE}`,\n );\n }\n\n return [tx];\n }\n\n async updateRecordTxs({\n authority,\n payer,\n record,\n serializedIntent,\n offset = DEFAULT_RECORD_OFFSET,\n blockhash,\n ALTs,\n computeBudget,\n }: UpdateRecordTxsParams): Promise<VersionedTransaction[]> {\n if (!payer) {\n payer = authority;\n }\n\n if (offset < DEFAULT_RECORD_OFFSET) {\n throw new Error(`Offset can't be less than ${DEFAULT_RECORD_OFFSET}`);\n }\n\n const txs: VersionedTransaction[] = [];\n const size = serializedIntent.length;\n const reallocRecordIxs = await this.reallocRecordIxs({\n authority,\n payer,\n record,\n buffer: serializedIntent,\n offset,\n });\n const budgetIxs = getComputeBudgetIxs(computeBudget);\n\n let bufferOffset = 0;\n while (bufferOffset < size) {\n let writeIxs;\n let ixs: TransactionInstruction[] = [\n ...budgetIxs,\n ...(bufferOffset === 0 ? reallocRecordIxs : []),\n ];\n let low = 1;\n let high = size - bufferOffset;\n let lastGoodIx: TransactionInstruction[] = [];\n let lastGoodLen = 0;\n\n while (low <= high) {\n const mid = Math.floor((low + high) / 2);\n const buffer = serializedIntent.subarray(\n bufferOffset,\n bufferOffset + mid,\n );\n\n writeIxs = this.writeRecordIxs({\n authority: payer,\n record,\n buffer,\n offset: bufferOffset,\n });\n\n const tx = getVersionedTransaction({\n instructions: [...ixs, ...writeIxs],\n payer,\n blockhash,\n ALTs,\n });\n\n const size = transactions.getTransactionSize(tx);\n if (size && size <= constants.MAX_TX_SIZE) {\n lastGoodIx = writeIxs;\n lastGoodLen = mid;\n low = mid + 1;\n } else {\n high = mid - 1;\n }\n }\n\n ixs.push(...lastGoodIx);\n\n const tx = getVersionedTransaction({\n instructions: ixs,\n payer,\n blockhash,\n ALTs,\n });\n txs.push(tx);\n bufferOffset += lastGoodLen;\n }\n\n return txs;\n }\n\n async cancelIntentTxs({\n maker,\n payer,\n id,\n encodedIntentHash,\n tokenMint,\n tokenProgram = TOKEN_PROGRAM_ID,\n blockhash,\n ALTs,\n computeBudget,\n }: CancelIntentParams): Promise<VersionedTransaction[]> {\n if (!payer) {\n payer = maker;\n }\n\n const ixs: TransactionInstruction[] = getComputeBudgetIxs(computeBudget);\n\n const closeIntentIxs = await this.cancelIntentIxs(maker, id);\n\n ixs.push(...closeIntentIxs);\n\n if (tokenMint) {\n const withdrawIntentTokenAccountIxs =\n await this.withdrawIntentTokenAccountIxs({\n maker,\n receiver: payer,\n id,\n encodedIntentHash,\n tokenMint,\n tokenProgram,\n });\n\n ixs.push(...withdrawIntentTokenAccountIxs);\n }\n\n const tx = getVersionedTransaction({\n instructions: ixs,\n payer,\n blockhash,\n ALTs,\n });\n\n return [tx];\n }\n\n async closeIntentTxs({\n maker,\n payer,\n receiver,\n id,\n tokenMint,\n tokenProgram = TOKEN_PROGRAM_ID,\n blockhash,\n ALTs,\n computeBudget,\n }: CloseIntentParams): Promise<VersionedTransaction[]> {\n if (!payer) {\n payer = maker;\n }\n\n const ixs: TransactionInstruction[] = getComputeBudgetIxs(computeBudget);\n\n const closeIntentIxs = await this.closeIntentIxs(\n maker,\n receiver ?? maker,\n id,\n );\n\n ixs.push(...closeIntentIxs);\n\n /*\n if (tokenMint) {\n const withdrawClosedIntentTokenAccount =\n await this.withdrawClosedIntentTokenAccount({\n id,\n tokenMint,\n tokenProgram,\n });\n\n ixs.push(...withdrawClosedIntentTokenAccount);\n }\n */\n\n const tx = getVersionedTransaction({\n instructions: ixs,\n payer,\n blockhash,\n ALTs,\n });\n\n return [tx];\n }\n\n async swapTxs({\n taker,\n maker,\n intentId,\n tradeId,\n inputMint,\n outputMint,\n beginAmount,\n endAmount,\n bps,\n target,\n inputTokenProgram = TOKEN_PROGRAM_ID,\n outputTokenProgram = TOKEN_PROGRAM_ID,\n instructions = [],\n lastInstructions = [],\n computeBudget,\n payer,\n blockhash,\n ALTs,\n }: SwapParams) {\n if (!payer) {\n payer = taker;\n }\n\n const budgetIxs = getComputeBudgetIxs(computeBudget);\n\n const swapBeginIxs = await this.swapBeginIxs({\n taker,\n maker,\n intentId,\n tradeId,\n inputMint,\n outputMint,\n beginAmount,\n target,\n inputTokenProgram,\n outputTokenProgram,\n });\n\n const swapEndIxs = await this.swapEndIxs({\n taker,\n intentId,\n endAmount,\n bps,\n inputMint,\n outputMint,\n outputTokenProgram,\n });\n\n const tx = getVersionedTransaction({\n instructions: [\n ...budgetIxs,\n ...swapBeginIxs,\n ...instructions,\n ...swapEndIxs,\n ...lastInstructions,\n ],\n payer,\n blockhash,\n ALTs,\n });\n\n return [tx];\n }\n\n static getStatePda(programId: PublicKey): PublicKey {\n const [pubkey] = PublicKey.findProgramAddressSync(\n [Buffer.from(\"state\")],\n programId,\n );\n return pubkey;\n }\n\n static getIntentStoragePda(\n programId: PublicKey,\n intentId: Buffer,\n ): PublicKey {\n const [pubkey] = PublicKey.findProgramAddressSync(\n [Buffer.from(\"intent_storage\"), intentId],\n programId,\n );\n return pubkey;\n }\n\n static getMakerInfoPda(programId: PublicKey, maker: PublicKey) {\n const [pubkey] = PublicKey.findProgramAddressSync(\n [Buffer.from(\"maker_info\"), maker.toBuffer()],\n programId,\n );\n return pubkey;\n }\n\n static getDelegatesPda(programId: PublicKey, user: PublicKey): PublicKey {\n const [pubkey] = PublicKey.findProgramAddressSync(\n [Buffer.from(\"user_delegates\"), user.toBuffer()],\n programId,\n );\n return pubkey;\n }\n\n static getEventAuthorityPda(programId: PublicKey): PublicKey {\n const [pubkey] = PublicKey.findProgramAddressSync(\n [Buffer.from(\"__event_authority\")],\n programId,\n );\n return pubkey;\n }\n\n static getNativePda(programId: PublicKey): PublicKey {\n const [pubkey] = PublicKey.findProgramAddressSync(\n [Buffer.from(\"unwrap_native_receiver\")],\n programId,\n );\n return pubkey;\n }\n\n static getBufferForIntentSignature(\n intentId: Buffer,\n intentProgramSigPrefix: IntentProgramSigPrefix = IntentProgramSigPrefix.prod,\n chainId: number = constants.SOLANA_CHAIN_ID,\n ): Buffer {\n const chainBuffer = Buffer.alloc(4);\n chainBuffer.writeUInt32LE(chainId, 0);\n\n const intentSigPrefix = Buffer.from([105, 110, 116, 101, 110, 116, 115]);\n\n return Buffer.concat([\n Buffer.from(intentProgramSigPrefix),\n chainBuffer,\n intentSigPrefix,\n intentId,\n ]);\n }\n\n static getDelegateApprovedBudgetsArgs(tokens: DelegateApprovedBudgetsArgs) {\n let enumArgs: any;\n if (\"set\" in tokens) {\n enumArgs = {\n set: {\n 0: tokens.set.map(({ tokenMint, approvedAmount, expiration }) => ({\n tokenMint: tokenMint,\n approvedAmount: new BN(approvedAmount.toString()),\n expiration: new BN(expiration.toString()),\n })),\n },\n };\n } else if (\"setAny\" in tokens) {\n enumArgs = { setAny: {} };\n } else {\n enumArgs = { revoke: {} };\n }\n\n return enumArgs;\n }\n\n static getBufferForBudgetSignature(\n delegate: PublicKey,\n nonce: bigint,\n tokens: DelegateApprovedBudgetsArgs,\n intentProgramSigPrefix: IntentProgramSigPrefix = IntentProgramSigPrefix.prod,\n chainId: number = constants.SOLANA_CHAIN_ID,\n ): Buffer {\n const enumArgs = IntentsClient.getDelegateApprovedBudgetsArgs(tokens);\n const coder = new BorshCoder(IDL);\n const argsBuffer = coder.types.encode(\"setApprovedTokenBudgets\", enumArgs);\n\n const chainBuffer = Buffer.alloc(4);\n chainBuffer.writeUInt32LE(chainId, 0);\n\n const budgetsSigPrefix = Buffer.from([98, 117, 100, 103, 101, 116, 115]);\n\n return Buffer.concat([\n Buffer.from(intentProgramSigPrefix),\n chainBuffer,\n budgetsSigPrefix,\n delegate.toBuffer(),\n Buffer.from(new BN(nonce.toString()).toArray(\"le\", 8)),\n argsBuffer,\n ]);\n }\n}\n","import { AddressType, Serializable } from \"./types\";\n\nexport class AddressesList implements Serializable {\n public readonly addresses: Buffer[];\n private lookupMap: Map<string, number> = new Map();\n\n constructor(addresses: AddressType[]) {\n this.addresses = addresses.map((address) => Buffer.from(address));\n }\n\n public lookupIndex(address: AddressType): number {\n const key = address.toString(\"hex\");\n const index = this.lookupMap.get(key);\n if (index === undefined) {\n throw new Error(`Address ${key} not found in AddressesList`);\n }\n return index;\n }\n\n serialize(): Buffer {\n const sizeGroups: Map<number, Buffer[]> = new Map();\n for (const address of this.addresses) {\n const sizeGroup = sizeGroups.get(address.length);\n if (sizeGroup === undefined) {\n sizeGroups.set(address.length, [address]);\n } else {\n sizeGroup.push(address);\n }\n }\n\n const sortedKeys = Array.from(sizeGroups.keys()).sort();\n /**\n * chunks size = items in chunk count * item length\n * chunk header size = 2 bytes\n * total header size = 1 byte + chunks count * chunk header size (2)\n */\n const result = Buffer.alloc(\n sortedKeys.reduce((acc, k) => acc + sizeGroups.get(k)!.length * k, 0) +\n sortedKeys.length * 2 +\n 1,\n );\n result[0] = sortedKeys.length;\n let offset = 1;\n let dataOffset = 1 + sortedKeys.length * 2;\n let index = 0;\n\n for (const key of sortedKeys) {\n const currentGroup = sizeGroups.get(key)!.sort((a, b) => a.compare(b));\n for (const address of currentGroup) {\n this.lookupMap.set(address.toString(\"hex\"), index);\n index += 1;\n }\n result[offset] = key; // item size;\n offset += 1;\n result[offset] = currentGroup.length; // items count\n offset += 1;\n\n const addressesBuffer = Buffer.concat(currentGroup);\n result.set(addressesBuffer, dataOffset);\n dataOffset += addressesBuffer.length;\n }\n\n return result;\n }\n\n static deserialize(buffer: Buffer): AddressesList | null {\n const addresses: AddressType[] = [];\n if (buffer.length == 0) {\n return null;\n }\n\n const chunksCount = buffer[0]!;\n let offset = 1;\n let dataOffset = 1 + chunksCount * 2;\n\n for (let i = 0; i < chunksCount; i++) {\n const itemSize = buffer[offset]!;\n offset += 1;\n const itemsCount = buffer[offset]!;\n offset += 1;\n\n if (offset > buffer.length) return null;\n\n for (let j = 0; j < itemsCount; j++) {\n const address = buffer.subarray(dataOffset, dataOffset + itemSize);\n addresses.push(address);\n dataOffset += itemSize;\n }\n }\n\n return new AddressesList(addresses);\n }\n}\n","import { PublicKey, SystemProgram } from \"@solana/web3.js\";\nimport { keccak256 } from \"js-sha3\";\nimport {\n AddressType,\n AnyOr,\n GiveToken,\n IntentType,\n ReceiverInfo,\n Serializable,\n TakeToken,\n} from \"./types\";\nimport { AddressesList } from \"./addresses-list\";\n\nenum AnyOrExact {\n Any = 1,\n Exact = 0,\n}\n\nconst anyBuffer = Buffer.from([AnyOrExact.Any]);\nconst exactBuffer = Buffer.from([AnyOrExact.Exact]);\nconst emptyArrayBuffer = Buffer.from([0]);\nconst separationBuffer = Buffer.from([1]);\n\nclass BufferReader {\n private offset: number = 0;\n\n constructor(private buffer: Buffer) {}\n\n // Базовые примитивы\n readU8(): number {\n return this.buffer[this.offset++]!;\n }\n\n readU16LE(): number {\n const val = this.buffer.readUInt16LE(this.offset);\n this.offset += 2;\n return val;\n }\n\n readU32LE(): number {\n const val = this.buffer.readUInt32LE(this.offset);\n this.offset += 4;\n return val;\n }\n\n readU64LE(): bigint {\n const val = this.buffer.readBigUInt64LE(this.offset);\n this.offset += 8;\n return val;\n }\n\n readBigIntBE(): bigint {\n const buf = this.buffer.subarray(this.offset, this.offset + 32);\n this.offset += 32;\n return BigInt(\"0x\" + buf.toString(\"hex\"));\n }\n\n readBytes(length: number): Buffer {\n const buf = this.buffer.subarray(this.offset, this.offset + length);\n this.offset += length;\n return buf;\n }\n\n // Проверка маркеров\n private peekU8(): number {\n return this.buffer[this.offset]!;\n }\n\n private consumeIfEquals(value: number): boolean {\n if (this.peekU8() === value) {\n this.offset++;\n return true;\n }\n return false;\n }\n\n private consumeSeparator(): void {\n this.consumeIfEquals(1);\n }\n\n // Generic: Option<T>\n readOption<T>(reader: () => T): T | undefined {\n if (this.consumeIfEquals(0)) {\n return undefined;\n }\n this.consumeSeparator();\n return reader();\n }\n\n // Generic: Array<T>\n readArray<T>(reader: () => T, lengthSize: \"u8\" | \"u16\" = \"u8\"): T[] {\n const length = lengthSize === \"u8\" ? this.readU8() : this.readU16LE();\n if (length === 0) return [];\n\n const result: T[] = [];\n for (let i = 0; i < length; i++) {\n result.push(reader());\n }\n return result;\n }\n\n // Generic: AnyOr<T>\n readAnyOr<T>(reader: () => T): AnyOr<T> {\n const anyOrExact = this.readU8();\n if (anyOrExact === AnyOrExact.Any) {\n return \"any\";\n }\n return reader();\n }\n\n // Generic: Option<AnyOr<T>>\n readOptionAnyOr<T>(reader: () => T): AnyOr<T> | undefined {\n if (this.consumeIfEquals(0)) {\n return undefined;\n }\n this.consumeSeparator();\n return this.readAnyOr(reader);\n }\n\n // Generic: ShortArray (length as u16)\n readShortArray(): Buffer | undefined {\n if (this.consumeIfEquals(0)) {\n return undefined;\n }\n this.consumeSeparator();\n const length = this.readU16LE();\n return this.readBytes(length);\n }\n\n // Generic: Fixed-size buffer with separator\n readFixedBuffer(size: number): Buffer | undefined {\n if (this.consumeIfEquals(0)) {\n return undefined;\n }\n this.consumeSeparator();\n return this.readBytes(size);\n }\n\n getOffset(): number {\n return this.offset;\n }\n\n setOffset(offset: number): void {\n this.offset = offset;\n }\n}\n\nexport class Intent implements Serializable {\n public data: IntentType;\n private addressesList: AddressesList;\n private serializedList: Buffer;\n\n constructor(intent: IntentType) {\n this.data = intent;\n this.addressesList = this.buildAddressesListFromIntent(intent);\n this.serializedList = this.addressesList.serialize();\n }\n\n private buildAddressesListFromIntent(intent: IntentType): AddressesList {\n const addressSet = new Set<string>();\n\n const collect = (addr: AddressType) => addressSet.add(addr.toString(\"hex\"));\n\n const collectMap = (list?: ReceiverInfo[]) => {\n if (!list) return;\n for (const { address } of list) collect(address);\n };\n\n const collectGiveTokens = (list?: GiveToken[]) => {\n if (!list) return;\n for (const token of list) {\n if (token.input !== \"any\") collect(token.input);\n collect(token.output);\n }\n };\n\n const collectTakeTokens = (list: TakeToken[]) => {\n if (!list) return;\n for (const token of list) {\n collect(token.input);\n\n if (token.output !== \"any\") {\n for (const output of token.output) {\n if (output.token && output.token !== \"any\") collect(output.token);\n }\n }\n }\n };\n\n for (const token of intent.inputTokens) collect(token.token);\n collectGiveTokens(intent.giveTokens);\n collectTakeTokens(intent.takeTokens);\n\n collectMap(intent.receiverDetails);\n collectMap(intent.dstAuthorityAddress);\n\n //intent.allowedSenders?.forEach(collect);\n //intent.srcAllowedCancelBeneficiary?.forEach(collect);\n\n const uniqueAddresses = Array.from(addressSet).map((hex) =>\n Buffer.from(hex, \"hex\"),\n );\n return new AddressesList(uniqueAddresses);\n }\n\n private serializeReceiversInfo(details: ReceiverInfo[]): Buffer {\n if (!details || details.length === 0) return emptyArrayBuffer;\n\n const buffers = details.map(({ chainIds, address }) => {\n let buf: Buffer;\n\n if (chainIds === \"any\") {\n buf = Buffer.alloc(2);\n buf.writeUInt8(this.addressesList.lookupIndex(address), 0);\n buf.writeUInt8(AnyOrExact.Any, 1);\n } else {\n buf = Buffer.alloc(1 + 1 + 1 + chainIds.length * 4);\n buf.writeUInt8(this.addressesList.lookupIndex(address), 0);\n buf.writeUInt8(AnyOrExact.Exact, 1);\n buf.writeUInt8(chainIds.length, 2);\n\n for (const [index, chainId] of chainIds.entries()) {\n buf.writeUInt32LE(chainId, 3 + index * 4);\n }\n }\n\n return buf;\n });\n\n const lengthBuf = Buffer.alloc(1);\n lengthBuf.writeUInt8(buffers.length, 0);\n\n return Buffer.concat([lengthBuf, ...buffers]);\n }\n\n private serializeInputTokens(): Buffer {\n const buffers = this.data.inputTokens.map((token) => {\n const buf = Buffer.alloc(25);\n buf[0] = this.addressesList.lookupIndex(token.token);\n buf.writeBigUInt64LE(token.minPartialAmount, 1);\n buf.writeBigUInt64LE(token.maxPartialAmount, 9);\n buf.writeBigUInt64LE(token.constraintBudget, 17);\n return buf;\n });\n const lengthBuf = Buffer.alloc(1);\n lengthBuf.writeUInt8(buffers.length, 0);\n\n return Buffer.concat([lengthBuf, ...buffers]);\n }\n\n private serializeGiveTokens(tokens?: GiveToken[]): Buffer {\n if (!tokens || tokens.length === 0) return emptyArrayBuffer;\n const buffers = tokens.map((token) => {\n let buf: Buffer;\n\n if (token.input === \"any\") {\n buf = Buffer.alloc(2);\n buf.writeUInt8(this.addressesList.lookupIndex(token.output), 0);\n buf.writeUInt8(AnyOrExact.Any, 1);\n } else {\n buf = Buffer.alloc(35);\n buf.writeUInt8(this.addressesList.lookupIndex(token.output), 0);\n buf.writeUInt8(AnyOrExact.Exact, 1);\n buf.writeUInt8(this.addressesList.lookupIndex(token.input), 2);\n buf.writeBigInt64LE(token.price, 3);\n\n let hex = token.price.toString(16).padStart(64, \"0\");\n const u256BufBE = Buffer.from(hex, \"hex\");\n u256BufBE.copy(buf, 3);\n }\n return buf;\n });\n\n const lengthBuf = Buffer.alloc(1);\n lengthBuf.writeUInt8(tokens.length, 0);\n\n return Buffer.concat([lengthBuf, ...buffers]);\n }\n\n private serializeTakeTokens(tokens: TakeToken[]): Buffer {\n let length = 0;\n const buffers = tokens.map((token) => {\n let buf: Buffer;\n\n if (token.output === \"any\") {\n length = 1;\n buf = Buffer.alloc(2);\n buf.writeUInt8(this.addressesList.lookupIndex(token.input), 0);\n buf.writeUInt8(AnyOrExact.Any, 1);\n } else {\n length += token.output.length;\n buf = Buffer.concat(\n token.output.map((output) => {\n if (output.token === \"any\") {\n const buf = Buffer.alloc(6);\n buf.writeUInt8(AnyOrExact.Exact, 0);\n buf.writeUInt8(output.chainId, 1);\n buf.writeUInt8(AnyOrExact.Any, 5);\n return Buffer.concat([\n Buffer.from([this.addressesList.lookupIndex(token.input)]),\n buf,\n ]);\n } else {\n let buf;\n\n if (output.price === \"any\") {\n buf = Buffer.alloc(8);\n buf.writeUInt8(AnyOrExact.Exact, 0);\n buf.writeUInt32LE(output.chainId, 1);\n buf.writeUInt8(AnyOrExact.Exact, 5);\n buf.writeUInt8(this.addressesList.lookupIndex(output.token), 6);\n buf.writeUInt8(AnyOrExact.Any, 7);\n } else {\n buf = Buffer.alloc(40);\n buf.writeUInt8(AnyOrExact.Exact, 0);\n buf.writeUInt32LE(output.chainId, 1);\n buf.writeUInt8(AnyOrExact.Exact, 5);\n buf.writeUInt8(this.addressesList.lookupIndex(output.token), 6);\n buf.writeUInt8(AnyOrExact.Exact, 7);\n\n let hex = output.price.toString(16).padStart(64, \"0\");\n const u256BufBE = Buffer.from(hex, \"hex\");\n u256BufBE.copy(buf, 8);\n }\n\n return Buffer.concat([\n Buffer.from([this.addressesList.lookupIndex(token.input)]),\n buf,\n ]);\n }\n }),\n );\n }\n\n return buf;\n });\n\n const lengthBuf = Buffer.alloc(1);\n // total count of buffers\n lengthBuf.writeUInt8(length, 0);\n\n return Buffer.concat([lengthBuf, ...buffers]);\n }\n\n private serializeExternalCallHash(buf?: AnyOr<Buffer>): Buffer {\n // Option<AnyOr<[u8; 32]>>\n if (!buf) {\n return emptyArrayBuffer;\n }\n\n if (buf === \"any\") {\n return Buffer.concat([separationBuffer, anyBuffer]);\n } else {\n return Buffer.concat([separationBuffer, exactBuffer, buf]);\n }\n }\n\n private serializeOptionalBytes(buf?: Buffer): Buffer {\n if (buf) {\n let lenBuffer = Buffer.alloc(2);\n lenBuffer.writeInt16LE(buf.length);\n return Buffer.concat([separationBuffer, lenBuffer, buf]);\n }\n return emptyArrayBuffer;\n }\n\n private serializeDlnMetadata(buf?: AnyOr<Buffer>): Buffer {\n if (!buf) {\n return emptyArrayBuffer;\n }\n\n if (buf === \"any\") {\n return Buffer.concat([separationBuffer, anyBuffer]);\n } else {\n const lengthBuf = Buffer.alloc(2);\n lengthBuf.writeInt16LE(buf.length, 0);\n\n return Buffer.concat([separationBuffer, exactBuffer, lengthBuf, buf]);\n }\n }\n\n private serializeShortArray(buf?: Buffer): Buffer {\n if (!buf) {\n return emptyArrayBuffer;\n }\n\n const lengthBuf = Buffer.alloc(2);\n lengthBuf.writeInt16LE(buf.length, 0);\n\n return Buffer.concat([separationBuffer, lengthBuf, buf]);\n }\n\n private serializeAllowedSenders(addrs: AnyOr<AddressType[]>): Buffer {\n if (this.data.allowedSenders === \"any\") {\n return anyBuffer;\n }\n\n const lengthBuf = Buffer.alloc(1);\n lengthBuf.writeUInt8(addrs.length, 0);\n\n return Buffer.concat([exactBuffer, lengthBuf, ...(addrs as AddressType[])]);\n }\n\n private serializeAddresses(addrs?: AddressType[]): Buffer {\n if (!addrs || addrs.length === 0) {\n return emptyArrayBuffer;\n }\n\n const lengthBuf = Buffer.alloc(1);\n lengthBuf.writeUInt8(addrs.length, 0);\n\n return Buffer.concat([lengthBuf, ...addrs]);\n }\n\n private serializeOptionalPubkey(pk?: PublicKey): Buffer {\n return pk\n ? Buffer.concat([separationBuffer, pk.toBuffer()])\n : emptyArrayBuffer;\n }\n\n serialize(): Buffer {\n const parts: Buffer[] = [];\n\n // 1. chainId\n const idBuf = Buffer.alloc(4);\n idBuf.writeUInt32LE(this.data.chainId, 0);\n parts.push(idBuf);\n\n // 2. owner\n // parts.push(this.data.owner.toBuffer());\n\n // 3. authority\n if (this.data.authority) {\n parts.push(separationBuffer, this.data.authority.toBuffer());\n } else {\n parts.push(emptyArrayBuffer);\n }\n\n // 4–5. timestamp, expirationTimestamp (u64 LE)\n const tsBuf = Buffer.alloc(16);\n tsBuf.writeBigUInt64LE(BigInt(this.data.timestamp), 0);\n tsBuf.writeBigUInt64LE(BigInt(this.data.expirationTimestamp), 8);\n parts.push(tsBuf);\n\n // 6. AddressesList\n parts.push(this.serializedList);\n\n // 7. inputTokens (CharArray<InputToken>)\n parts.push(this.serializeInputTokens());\n\n // 8. giveTokens (CharArray<GiveToken>, optional as empty array)\n parts.push(this.serializeGiveTokens(this.data.giveTokens));\n\n // 9. takeTokens (CharArray<TakeToken>)\n parts.push(this.serializeTakeTokens(this.data.takeTokens));\n\n // 10. receiverDetails (ReceiversInfo)\n parts.push(this.serializeReceiversInfo(this.data.receiverDetails));\n\n // 11. srcAllowedSenders (CharArray<GenericAddress>)\n parts.push(this.serializeAllowedSenders(this.data.allowedSenders));\n\n // 12. preInteractions (Option<Pubkey>)\n parts.push(this.serializeOptionalPubkey(this.data.preInteractions));\n\n // 13. postInteractions (Option<Pubkey>)\n parts.push(this.serializeOptionalPubkey(this.data.postInteractions));\n\n // 14. validationRules (Option<ShortArray<u8>>)\n parts.push(this.serializeShortArray(this.data.validationRules));\n\n // 15. executionMetadataHash (Option<CharArray<u8>>)\n parts.push(this.serializeOptionalBytes(this.data.executionMetadata));\n\n // 16. srcAllowedCancelBeneficiary (CharArray<GenericAddress>)\n parts.push(this.serializeAddresses(this.data.srcAllowedCancelBeneficiary));\n\n // 17. dstAuthorityAddress (ReceiversInfo)\n parts.push(this.serializeReceiversInfo(this.data.dstAuthorityAddress));\n\n // 18. externalCallHash (Option<AnyOr<[u8; 32]>>)\n parts.push(this.serializeExternalCallHash(this.data.externalCallHash));\n\n // 19. dlnMetadata (Option<AnyOr<ShortArray<u8>>>)\n parts.push(this.serializeDlnMetadata(this.data.dlnMetadata));\n\n return Buffer.concat(parts);\n }\n\n static getId(\n serializedIntent: Buffer,\n maker: PublicKey,\n programId: PublicKey,\n ): { hex: string; buffer: Buffer; rawHash: Buffer } {\n const string = keccak256(serializedIntent);\n const rawHash = Buffer.from(string, \"hex\");\n const [intentId] = PublicKey.findProgramAddressSync(\n [Buffer.from(\"intent_id\"), maker.toBuffer(), rawHash],\n programId,\n );\n return {\n hex: `0x${intentId.toBuffer().toString(\"hex\")}`,\n buffer: intentId.toBuffer(),\n rawHash,\n };\n }\n\n /*\n public static getTextToSign(intent: Intent): string {\n const string = intent.getId().hex;\n\n return string;\n }\n */\n\n static deserialize(buffer: Buffer, owner: PublicKey): Intent | null {\n const reader = new BufferReader(buffer);\n\n // 1. chainId\n const chainId = reader.readU32LE();\n\n // 3. authority (Option<PublicKey>)\n const authority = reader.readOption(\n () => new PublicKey(reader.readBytes(32)),\n );\n\n // 4-5. timestamp, expirationTimestamp\n const timestamp = Number(reader.readU64LE());\n const expirationTimestamp = Number(reader.readU64LE());\n\n // 6. AddressesList\n const addressesListStart = reader.getOffset();\n const chunksCount = reader.readU8();\n const headerSize = 1 + chunksCount * 2;\n\n // Вычисляем размер данных\n let dataSize = 0;\n const tempOffset = reader.getOffset();\n for (let i = 0; i < chunksCount; i++) {\n const itemSize = buffer[tempOffset + i * 2]!;\n const itemsCount = buffer[tempOffset + i * 2 + 1]!;\n dataSize += itemSize * itemsCount;\n }\n\n const addressesListBuffer = buffer.subarray(\n addressesListStart,\n addressesListStart + headerSize + dataSize,\n );\n const addressesList = AddressesList.deserialize(addressesListBuffer);\n if (addressesList == null) return null;\n reader.setOffset(addressesListStart + headerSize + dataSize);\n\n // Helper: получить адрес по индексу\n const getAddress = (idx: number): AddressType => {\n return addressesList.addresses[idx]!;\n };\n\n // 7. inputTokens\n const inputTokens = reader.readArray(() => ({\n token: getAddress(reader.readU8()),\n minPartialAmount: reader.readU64LE(),\n maxPartialAmount: reader.readU64LE(),\n constraintBudget: reader.readU64LE(),\n }));\n\n // 8. giveTokens\n const giveTokens = reader.readArray(() => {\n const outputIdx = reader.readU8();\n const anyOrExact = reader.readU8();\n\n if (anyOrExact === AnyOrExact.Any) {\n return {\n input: \"any\" as const,\n output: getAddress(outputIdx),\n };\n }\n\n return {\n input: getAddress(reader.readU8()),\n output: getAddress(outputIdx),\n price: reader.readBigIntBE(),\n };\n });\n\n // 9. takeTokens\n const takeTokensMap: Map<number, TakeToken[\"output\"][number][]> = new Map();\n reader.readArray(() => {\n const inputIdx = reader.readU8();\n const output: TakeToken[\"output\"][number] = reader.readAnyOr(() => {\n const chainId = reader.readU32LE();\n const tokenAndPrice = reader.readAnyOr(() => {\n const outTokenIdx = reader.readU8();\n const price = reader.readAnyOr(() => reader.readBigIntBE());\n\n return {\n token: getAddress(outTokenIdx),\n price,\n };\n });\n\n if (tokenAndPrice === \"any\") {\n return { chainId, token: \"any\" } as TakeToken[\"output\"][number];\n } else {\n return {\n chainId,\n token: tokenAndPrice.token,\n price: tokenAndPrice.price,\n } as TakeToken[\"output\"][number];\n }\n });\n\n let inputArray = takeTokensMap.has(inputIdx)\n ? takeTokensMap.get(inputIdx)!\n : takeTokensMap.set(inputIdx, []).get(inputIdx)!;\n inputArray.push(output);\n }, \"u8\");\n\n const takeTokens: TakeToken[] = [];\n for (const [k, v] of takeTokensMap.entries()) {\n takeTokens.push({\n input: getAddress(k),\n output: v as TakeToken[\"output\"],\n });\n }\n\n // let procesedTakeTokens = 0;\n // while procesedTakeTokens < takeTokensCount {\n // let processedOutputs = 0;\n\n // while (processedOutputs < takeTokensOutputCount) {\n // const anyOrExact = reader.readU8();\n\n // if (anyOrExact === AnyOrExact.Any) {\n // takeTokens.push({\n // input: getAddress(inputIdx),\n // output: 'any',\n // });\n // processedOutputs++;\n // } else {\n // const outputChain = reader.readU32LE();\n // let output: TakeToken['output'][number] | undefined = undefined;\n\n // const tokenAnyOrExact = reader.readU8();\n // if (tokenAnyOrExact === AnyOrExact.Any) {\n // output = {\n // chainId: outputChain,\n // token: 'any'\n // }\n // } else {\n // const token = getAddress(reader.readU8());\n // const priceAnyOrExact = reader.readU8();\n // output = {\n // token,\n // chainId: outputChain,\n // price: priceAnyOrExact === AnyOrExact.Any\n // ? 'any'\n // : reader.readBigIntBE()\n // }\n // }\n // if (output == undefined) return null;\n\n // takeTokens.push({\n // input: getAddress(inputIdx),\n // output: [output],\n // });\n // processedOutputs++;\n // }\n // }\n\n // Helper: ReceiverInfo deserializer\n const readReceiverInfo = (): ReceiverInfo => {\n const addressIdx = reader.readU8();\n const anyOrExact = reader.readU8();\n\n if (anyOrExact === AnyOrExact.Any) {\n return {\n address: getAddress(addressIdx),\n chainIds: \"any\",\n };\n }\n\n const chainIds = reader.readArray(() => reader.readU32LE());\n return {\n address: getAddress(addressIdx),\n chainIds,\n };\n };\n\n // 10. receiverDetails\n const receiverDetails = reader.readArray(readReceiverInfo);\n\n // 11. allowedSenders\n const allowedSenders = reader.readAnyOr(() =>\n reader.readArray(() => reader.readBytes(32)),\n );\n\n // 12. preInteractions\n const preInteractions = reader.readOption(\n () => new PublicKey(reader.readBytes(32)),\n );\n\n // 13. postInteractions\n const postInteractions = reader.readOption(\n () => new PublicKey(reader.readBytes(32)),\n );\n\n // 14. validationRules\n const validationRules = reader.readShortArray();\n\n // 15. executionMetadataHash\n const executionMetadata = reader.readShortArray();\n\n // 16. srcAllowedCancelBeneficiary\n const srcAllowedCancelBeneficiary = reader.readArray(() =>\n reader.readBytes(32),\n );\n\n // 17. dstAuthorityAddress\n const dstAuthorityAddress = reader.readArray(readReceiverInfo);\n\n // 18. externalCallHash\n const externalCallHash = reader.readOptionAnyOr(() => reader.readBytes(32));\n\n // 19. dlnMetadata\n const dlnMetadata = reader.readOptionAnyOr(() => {\n const length = reader.readU16LE();\n return reader.readBytes(length);\n });\n\n // Создаем IntentType\n const intentData: IntentType = {\n owner,\n chainId,\n authority,\n timestamp,\n expirationTimestamp,\n inputTokens,\n giveTokens: giveTokens.length > 0 ? giveTokens : undefined,\n takeTokens,\n receiverDetails,\n allowedSenders,\n preInteractions,\n postInteractions,\n validationRules,\n executionMetadata,\n srcAllowedCancelBeneficiary:\n srcAllowedCancelBeneficiary.length > 0\n ? srcAllowedCancelBeneficiary\n : undefined,\n dstAuthorityAddress,\n externalCallHash,\n dlnMetadata,\n };\n\n return new Intent(intentData);\n }\n}\n"]}