@debridge-finance/intents-client 1.7.0 → 1.8.0
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.d.mts +374 -27
- package/dist/index.d.ts +374 -27
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +1 -1
- package/dist/index.mjs.map +1 -1
- package/package.json +4 -3
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","getTokenProgramId","conn","mint","result","spl","IntentProgramSigPrefix","DEFAULT_RECORD_OFFSET","RECORD_META_DATA_SIZE","IntentsClient","_IntentsClient","connection","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","keys","amounts","accounts","amount","currentTokenProgram","TOKEN_2022_PROGRAM_ID","getAssociatedTokenAddressSync","activeKeys","k","TOKEN_PROGRAM_ID","id","rentPayer","SystemProgram","tradeId","taker","tokenMint","dlnOrder","dlnMetadata","dlnSrc","PublicKey","programs","tokenProgram","accountsResolver","dlnSrcResolver","dlnSrcState","dlnSrcGiveOrderState","dlnSrcGiveOrderWallet","dlnSrcAuthorizedNativeSender","dlnSrcFeeLedgerWallet","intentGiveTokenATA","extcall","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","acc","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 TOKEN_2022_PROGRAM_ID,\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\nexport async function getTokenProgramId(\n conn: Connection,\n mint: PublicKey,\n): Promise<PublicKey> {\n const result = await spl.getTokenInfo(conn, mint, true);\n\n if (!result) {\n throw new Error(`Failed to get token info for ${mint}`);\n }\n\n return result.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 }: ApproveProtocolTransfersParams): Promise<TransactionInstruction[]> {\n const keys = [\"token\", \"token22\"] as const;\n\n const amounts = {\n token22: [] as BN[],\n token: [] as BN[],\n };\n\n type AccountMeta = {\n pubkey: PublicKey;\n isSigner: boolean;\n isWritable: boolean;\n };\n\n const accounts = {\n token22: [] as AccountMeta[],\n token: [] as AccountMeta[],\n };\n\n for (const { mint, amount } of tokens) {\n const currentTokenProgram = await getTokenProgramId(\n this._provider.connection,\n mint,\n );\n amounts[\n currentTokenProgram.equals(TOKEN_2022_PROGRAM_ID) ? \"token22\" : \"token\"\n ].push(new BN(amount.toString()));\n accounts[\n currentTokenProgram.equals(TOKEN_2022_PROGRAM_ID) ? \"token22\" : \"token\"\n ].push({\n pubkey: getAssociatedTokenAddressSync(\n mint,\n maker,\n true,\n currentTokenProgram,\n ),\n isSigner: false,\n isWritable: true,\n });\n }\n\n const activeKeys = keys.filter((k) => accounts[k].length > 0);\n\n return Promise.all(\n activeKeys.map((type) =>\n this._intentsProgram.methods\n .approveProtocolTransfers(amounts[type])\n .accountsStrict({\n maker,\n state: this._state,\n tokenProgram:\n type === \"token22\" ? TOKEN_2022_PROGRAM_ID : TOKEN_PROGRAM_ID,\n })\n .remainingAccounts(accounts[type])\n .instruction(),\n ),\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 // for raw data pass data as is, for hash pass hash instead of data\n const extcall =\n dlnOrder.args.externalCall?.type === \"rawData\"\n ? Buffer.from(dlnOrder.args.externalCall.externalCallData)\n : dlnOrder.args.externalCall?.type === \"hash\"\n ? Buffer.from(dlnOrder.args.externalCall.externalCallHash)\n : null;\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,\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/types.ts","../src/fee-config.ts","../src/helpers.ts","../src/client.ts","../src/addresses-list.ts","../src/intent.ts"],"names":["IDL","SignatureType","DISCRIMINATOR","SUPPORTED_VERSION","EVM_ADDRESS_SIZE","SOLANA_ADDRESS_SIZE","FeeConfig","_FeeConfig","data","pda","programId","chainId","chainIdBuffer","pubkey","PublicKey","constants","assertRemaining","offset","needed","field","version","inputTokensLen","inputTokens","i","takeTokensLen","takeTokenSize","takeTokens","feeValuesLen","feeValues","inputTokenIndex","takeTokenIndex","feeBps","connection","accountInfo","inputToken","takeToken","inputPk","pk","t","e","amount","bigintToArray","n","type","size","BN","getComputeBudgetIxs","computeBudget","ixs","ComputeBudgetProgram","getVersionedTransaction","instructions","payer","blockhash","ALTs","VersionedTransaction","MessageV0","getTokenProgramId","conn","mint","result","spl","IntentProgramSigPrefix","IntentProgramId","INTENT_PROGRAM_ID_TO_SIG_PREFIX","DEFAULT_RECORD_OFFSET","RECORD_META_DATA_SIZE","IntentsClient","_IntentsClient","recordProgramId","RECORD_PROGRAM_ID","AnchorProvider","setProvider","Program","message","signature","signerKey","rawReprAsBytes","hexReprAsBytes","signerBytes","nacl","length","budgets","error","intentId","intentStorage","maker","makerInfoPda","delegate","makerInfo","tokens","keys","amounts","accounts","currentTokenProgram","TOKEN_2022_PROGRAM_ID","getAssociatedTokenAddressSync","activeKeys","k","TOKEN_PROGRAM_ID","id","rentPayer","SystemProgram","tradeId","taker","tokenMint","dlnOrder","dlnMetadata","dlnSrc","programs","tokenProgram","accountsResolver","dlnSrcResolver","dlnSrcState","dlnSrcGiveOrderState","dlnSrcGiveOrderWallet","dlnSrcAuthorizedNativeSender","dlnSrcFeeLedgerWallet","intentGiveTokenATA","feeConfigPda","extcall","args","ASSOCIATED_TOKEN_PROGRAM_ID","receiver","unwrapTakeToken","unwrapNativeSol","receiverTakeToken","intentTakeTokenATA","NATIVE_MINT","feeLedger","ix","receiverIdx","meta","encodedIntentHash","encodedIntentLength","inputTokensAmount","space","sigType","sigTypeInternal","nonce","enumArgs","encodedApprovedTokenBudgets","timestamp","protocolAuthority","inputMint","customFees","fee","beginAmount","target","outputMint","inputTokenProgram","outputTokenProgram","makerInputToken","takerInputToken","takerOutputToken","intentOutputToken","SYSVAR_INSTRUCTIONS_PUBKEY","endAmount","bps","record","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","lastInstructions","writeIxs","low","high","lastGoodIx","lastGoodLen","mid","finalInstructions","combinedInstructions","combinedTx","combinedSize","updateTx","init","write","updateIntentIxs","reallocRecordIxs","bufferOffset","closeIntentIxs","withdrawIntentTokenAccountIxs","swapBeginIxs","swapEndIxs","user","intentProgramSigPrefix","chainBuffer","intentSigPrefix","approvedAmount","expiration","argsBuffer","BorshCoder","budgetsSigPrefix","discriminator","ensureBytes","readPublicKey","value","readU32","readBytes","readU64Number","readU8","feeCollector","defaultFeeBps","isPaused","cancelUntilTimestamp","bump","tailPrefix","possibleTrustedSendersLength","remainingBytes","reserved","trustedSendersLength","trustedSenders","AddressesList","_AddressesList","addresses","address","key","index","sizeGroups","sizeGroup","sortedKeys","acc","dataOffset","currentGroup","a","b","addressesBuffer","chunksCount","itemSize","itemsCount","j","anyBuffer","exactBuffer","emptyArrayBuffer","separationBuffer","BufferReader","val","buf","reader","lengthSize","Intent","_Intent","addressSet","collect","addr","collectMap","list","collectGiveTokens","token","collectTakeTokens","output","uniqueAddresses","hex","details","buffers","chainIds","lengthBuf","lenBuffer","addrs","parts","idBuf","tsBuf","string","keccak256","rawHash","owner","expirationTimestamp","addressesListStart","headerSize","dataSize","tempOffset","addressesListBuffer","addressesList","getAddress","idx","giveTokens","outputIdx","takeTokensMap","inputIdx","tokenAndPrice","outTokenIdx","price","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: \"DeintXmrdZFgSKzEWcJWhK793HuqnfDydAPvHmayY5Xz\";\n metadata: {\n name: \"intentsProgram\";\n version: \"0.1.0\";\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: \"addTrustedSender\";\n discriminator: [98, 59, 65, 43, 42, 143, 142, 200];\n accounts: [\n {\n name: \"protocolAuthority\";\n writable: true;\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 name: \"trustedSender\";\n },\n {\n name: \"payer\";\n writable: true;\n signer: true;\n optional: true;\n },\n {\n name: \"systemProgram\";\n address: \"11111111111111111111111111111111\";\n },\n ];\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 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 {\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: \"src5qyZHqTqecJV4aY6Cb6zDZLMDzrDKKezs22MPHr4\";\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: \"DeintXmrdZFgSKzEWcJWhK793HuqnfDydAPvHmayY5Xz\";\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: \"removeTrustedSender\";\n discriminator: [95, 255, 228, 80, 113, 240, 173, 55];\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: \"trustedSender\";\n },\n ];\n args: [];\n },\n {\n name: \"setCancelAuthority\";\n discriminator: [21, 43, 104, 169, 110, 210, 47, 107];\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: \"cancelAuthority\";\n },\n ];\n args: [];\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: \"setCustomFee\";\n discriminator: [58, 163, 242, 150, 43, 177, 147, 43];\n accounts: [\n {\n name: \"rentPayer\";\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: \"protocolAuthority\";\n signer: true;\n relations: [\"state\"];\n },\n {\n name: \"feeConfig\";\n writable: true;\n pda: {\n seeds: [\n {\n kind: \"const\";\n value: [102, 101, 101, 95, 99, 111, 110, 102, 105, 103];\n },\n {\n kind: \"arg\";\n path: \"chainId\";\n },\n ];\n };\n },\n {\n name: \"inputMint\";\n },\n {\n name: \"systemProgram\";\n address: \"11111111111111111111111111111111\";\n },\n ];\n args: [\n {\n name: \"chainId\";\n type: \"u32\";\n },\n {\n name: \"customFees\";\n type: {\n vec: {\n defined: {\n name: \"customFee\";\n };\n };\n };\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 },\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: \"canceledIntent\";\n discriminator: [129, 42, 89, 207, 195, 173, 63, 214];\n },\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: 6161;\n name: \"invalidTokenAccount\";\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: 6112;\n name: \"swapRecordStorageFull\";\n },\n {\n code: 6113;\n name: \"swapRecordCorrupted\";\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: 9795;\n name: \"invalidDlnOrderTakeTokenAddress\";\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: 67696;\n name: \"invalidFeeConfig\";\n },\n {\n code: 67700;\n name: \"inputTokenNotFound\";\n },\n {\n code: 67701;\n name: \"outputTokenNotFound\";\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: \"canceledIntent\";\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: \"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: \"customFee\";\n type: {\n kind: \"struct\";\n fields: [\n {\n name: \"takeTokenAddress\";\n type: \"bytes\";\n },\n {\n name: \"feeBps\";\n type: {\n option: \"u16\";\n };\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\", 10];\n };\n },\n {\n name: \"swapData\";\n type: {\n array: [\"u8\", 90];\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: \"intentOwner\";\n type: \"pubkey\";\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 name: \"cancelAuthority\";\n type: \"pubkey\";\n },\n {\n name: \"reserved\";\n type: {\n array: [\"u8\", 160];\n };\n },\n {\n name: \"trustedSenders\";\n type: {\n vec: \"pubkey\";\n };\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: \"feeConfigSeed\";\n type: \"bytes\";\n value: \"[102, 101, 101, 95, 99, 111, 110, 102, 105, 103]\";\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]\";\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: \"trustedSenderPlaceholder\";\n type: \"pubkey\";\n value: \"UseDeBridgeTrustedSender1111111111111111111\";\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: \"DeintXmrdZFgSKzEWcJWhK793HuqnfDydAPvHmayY5Xz\",\n metadata: {\n name: \"intentsProgram\",\n version: \"0.1.0\",\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: \"addTrustedSender\",\n discriminator: [98, 59, 65, 43, 42, 143, 142, 200],\n accounts: [\n {\n name: \"protocolAuthority\",\n writable: true,\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 name: \"trustedSender\",\n },\n {\n name: \"payer\",\n writable: true,\n signer: true,\n optional: true,\n },\n {\n name: \"systemProgram\",\n address: \"11111111111111111111111111111111\",\n },\n ],\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 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 {\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: \"src5qyZHqTqecJV4aY6Cb6zDZLMDzrDKKezs22MPHr4\",\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: \"DeintXmrdZFgSKzEWcJWhK793HuqnfDydAPvHmayY5Xz\",\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: \"removeTrustedSender\",\n discriminator: [95, 255, 228, 80, 113, 240, 173, 55],\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: \"trustedSender\",\n },\n ],\n args: [],\n },\n {\n name: \"setCancelAuthority\",\n discriminator: [21, 43, 104, 169, 110, 210, 47, 107],\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: \"cancelAuthority\",\n },\n ],\n args: [],\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: \"setCustomFee\",\n discriminator: [58, 163, 242, 150, 43, 177, 147, 43],\n accounts: [\n {\n name: \"rentPayer\",\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: \"protocolAuthority\",\n signer: true,\n relations: [\"state\"],\n },\n {\n name: \"feeConfig\",\n writable: true,\n pda: {\n seeds: [\n {\n kind: \"const\",\n value: [102, 101, 101, 95, 99, 111, 110, 102, 105, 103],\n },\n {\n kind: \"arg\",\n path: \"chainId\",\n },\n ],\n },\n },\n {\n name: \"inputMint\",\n },\n {\n name: \"systemProgram\",\n address: \"11111111111111111111111111111111\",\n },\n ],\n args: [\n {\n name: \"chainId\",\n type: \"u32\",\n },\n {\n name: \"customFees\",\n type: {\n vec: {\n defined: {\n name: \"customFee\",\n },\n },\n },\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 },\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: \"canceledIntent\",\n discriminator: [129, 42, 89, 207, 195, 173, 63, 214],\n },\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: 6161,\n name: \"invalidTokenAccount\",\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: 6112,\n name: \"swapRecordStorageFull\",\n },\n {\n code: 6113,\n name: \"swapRecordCorrupted\",\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: 9795,\n name: \"invalidDlnOrderTakeTokenAddress\",\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: 67696,\n name: \"invalidFeeConfig\",\n },\n {\n code: 67700,\n name: \"inputTokenNotFound\",\n },\n {\n code: 67701,\n name: \"outputTokenNotFound\",\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: \"canceledIntent\",\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: \"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: \"customFee\",\n type: {\n kind: \"struct\",\n fields: [\n {\n name: \"takeTokenAddress\",\n type: \"bytes\",\n },\n {\n name: \"feeBps\",\n type: {\n option: \"u16\",\n },\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\", 10],\n },\n },\n {\n name: \"swapData\",\n type: {\n array: [\"u8\", 90],\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: \"intentOwner\",\n type: \"pubkey\",\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 name: \"cancelAuthority\",\n type: \"pubkey\",\n },\n {\n name: \"reserved\",\n type: {\n array: [\"u8\", 160],\n },\n },\n {\n name: \"trustedSenders\",\n type: {\n vec: \"pubkey\",\n },\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: \"feeConfigSeed\",\n type: \"bytes\",\n value: \"[102, 101, 101, 95, 99, 111, 110, 102, 105, 103]\",\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]\",\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: \"trustedSenderPlaceholder\",\n type: \"pubkey\",\n value: \"UseDeBridgeTrustedSender1111111111111111111\",\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 { BN, IdlAccounts } from \"@coral-xyz/anchor\";\nimport {\n AddressLookupTableAccount,\n Blockhash,\n PublicKey,\n TransactionInstruction,\n} from \"@solana/web3.js\";\nimport { IntentsProgram } from \"../idl/intents-program\";\n\nexport enum SignatureType {\n RawBytes = 0,\n HexString = 1,\n Invalid = 0xffff,\n}\n\nexport type AddressType = Buffer<ArrayBuffer | ArrayBufferLike>;\n\nexport type Any = \"any\";\n\nexport type AnyOr<T> = T | \"any\";\n\nexport type GiveToken =\n | {\n output: AddressType;\n input: AddressType;\n price: bigint;\n }\n | {\n output: AddressType;\n input: Any;\n price?: never;\n };\n\nexport type TakeToken = {\n input: AddressType;\n output:\n | (\n | {\n chainId: number;\n token: AddressType;\n price: AnyOr<bigint>;\n }\n | {\n chainId: number;\n token: Any;\n price?: never;\n }\n )[]\n | Any;\n};\n\nexport type InputToken = {\n token: AddressType;\n minPartialAmount: bigint;\n maxPartialAmount: bigint;\n constraintBudget: bigint;\n};\n\nexport type ReceiverInfo = { chainIds: AnyOr<number[]>; address: AddressType };\n\nexport interface IntentType {\n chainId: number;\n owner: PublicKey;\n authority?: PublicKey;\n timestamp: number;\n expirationTimestamp: number;\n inputTokens: InputToken[];\n giveTokens?: GiveToken[];\n takeTokens: TakeToken[];\n receiverDetails: ReceiverInfo[];\n allowedSenders: AddressType[] | Any;\n preInteractions?: PublicKey;\n postInteractions?: PublicKey;\n validationRules?: Buffer;\n executionMetadata?: Buffer;\n srcAllowedCancelBeneficiary?: AddressType[];\n dstAuthorityAddress: ReceiverInfo[];\n externalCallHash?: Buffer | Any;\n dlnMetadata?: Buffer | Any;\n}\n\nexport type State = Omit<\n IdlAccounts<IntentsProgram>[\"state\"],\n \"cancelUntilTimestamp\" | \"cancelAuthority\" | \"reserved\"\n> & {\n cancelUntilTimestamp: number;\n lastValidTimestamp: number;\n cancelAuthority?: IdlAccounts<IntentsProgram>[\"state\"][\"cancelAuthority\"];\n reserved?: IdlAccounts<IntentsProgram>[\"state\"][\"reserved\"];\n};\n\nexport type IntentStorage = IdlAccounts<IntentsProgram>[\"intentStorage\"] & {\n intentId: Buffer;\n};\n\nexport interface Serializable {\n serialize(): Buffer;\n}\n\nexport type TokenApproval = {\n amounts: BN[];\n accounts: { pubkey: PublicKey; isSigner: boolean; isWritable: boolean }[];\n};\n\nexport type ComputeBudget = {\n limit?: number;\n price?: number;\n};\n\nexport type GetTransactionParams = {\n instructions: TransactionInstruction[];\n payer: PublicKey;\n blockhash: Blockhash;\n ALTs?: Array<AddressLookupTableAccount>;\n};\n\nexport interface ApproveProtocolTransfersParams {\n maker: PublicKey;\n tokens: {\n mint: PublicKey;\n amount: bigint;\n }[];\n tokenProgram?: PublicKey;\n}\n\ninterface UpdateIntent {\n payer?: PublicKey;\n id: Buffer;\n}\n\ninterface UpdateIntentOffsetLength extends UpdateIntent {\n record: PublicKey;\n data?: never;\n offset: number;\n length: number;\n}\n\ninterface UpdateIntentData extends UpdateIntent {\n record?: never;\n data: Buffer;\n offset?: never;\n length?: never;\n}\n\nexport type UpdateIntentParams = UpdateIntentOffsetLength | UpdateIntentData;\n\nexport interface InitIntentParams {\n maker: PublicKey;\n payer?: PublicKey;\n delegate?: PublicKey;\n intent: {\n id: Buffer;\n hash: Buffer;\n data: Buffer;\n inputTokensLength: number;\n };\n signature?: Buffer;\n blockhash: Blockhash;\n ALTs?: Array<AddressLookupTableAccount>;\n computeBudget?: ComputeBudget;\n}\n\nexport interface CreateAndUpdateIntentParams {\n maker: PublicKey;\n payer?: PublicKey;\n delegate?: PublicKey;\n intent: {\n hash: Buffer; // TODO\n inputTokensLength: number;\n } & UpdateIntentParams;\n signature?: Buffer;\n blockhash: Blockhash;\n ALTs?: Array<AddressLookupTableAccount>;\n computeBudget?: ComputeBudget;\n}\n\nexport interface UpdateRecordTxsParams {\n authority: PublicKey;\n payer?: PublicKey;\n record: PublicKey;\n serializedIntent: Buffer;\n offset?: number;\n blockhash: Blockhash;\n ALTs?: Array<AddressLookupTableAccount>;\n computeBudget?: ComputeBudget;\n}\n\nexport type WriteIntentParams = Omit<\n InitIntentParams,\n \"signature\" | \"delegate\"\n> & {\n record: PublicKey;\n};\n\nexport interface CloseRecordParams {\n record: PublicKey;\n authority: PublicKey;\n receiver?: PublicKey;\n}\n\nexport interface WriteRecordParams {\n record: PublicKey;\n authority: PublicKey;\n offset: number;\n buffer: Uint8Array;\n}\n\nexport interface UpdateRecordParams {\n record: PublicKey;\n authority: PublicKey;\n payer?: PublicKey;\n buffer: Buffer;\n offset: number;\n}\n\nexport interface CancelIntentParams {\n maker: PublicKey;\n payer?: PublicKey;\n id: Buffer;\n encodedIntentHash: Buffer;\n tokenMint?: PublicKey;\n tokenProgram?: PublicKey;\n blockhash: Blockhash;\n ALTs?: Array<AddressLookupTableAccount>;\n computeBudget?: ComputeBudget;\n}\n\nexport interface CloseIntentParams {\n maker: PublicKey;\n payer?: PublicKey;\n receiver?: PublicKey;\n id: Buffer;\n tokenMint?: PublicKey;\n tokenProgram?: PublicKey;\n blockhash: Blockhash;\n ALTs?: Array<AddressLookupTableAccount>;\n computeBudget?: ComputeBudget;\n}\n\nexport type DelegateApprovedBudgetsArgs =\n | {\n set: {\n tokenMint: PublicKey;\n approvedAmount: bigint;\n expiration: bigint;\n }[];\n }\n | { setAny: {} }\n | { revoke: {} };\n\nexport interface DelegateApprovedBudgetsParams {\n maker: PublicKey;\n payer: PublicKey;\n delegate: PublicKey;\n nonce: bigint;\n tokens: DelegateApprovedBudgetsArgs;\n signature?: Buffer;\n}\n\nexport interface SetMakerCancelUntilTimestampParams {\n maker: PublicKey;\n payer: PublicKey;\n timestamp: bigint;\n}\n\nexport interface SwapBeginParams {\n taker: PublicKey;\n maker: PublicKey;\n intentId: Buffer;\n tradeId: Buffer;\n inputMint: PublicKey;\n outputMint: PublicKey;\n beginAmount: bigint;\n target?: \"taker\" | \"intent\";\n inputTokenProgram?: PublicKey;\n outputTokenProgram?: PublicKey;\n}\n\nexport interface SwapEndParams {\n taker: PublicKey;\n intentId: Buffer;\n endAmount: bigint;\n bps: number;\n inputMint: PublicKey;\n outputMint: PublicKey;\n outputTokenProgram?: PublicKey;\n}\n\nexport interface ExecuteIntentParams {\n taker: PublicKey;\n maker: PublicKey;\n intentId: Buffer;\n tradeId: Buffer;\n tokenMint: PublicKey;\n dlnOrder: {\n id: Buffer;\n args: {\n giveOriginalAmount: bigint;\n take: {\n chainId: number;\n tokenAddress: Uint8Array;\n amount: bigint;\n };\n receiver: Uint8Array;\n externalCall: ExternalCallParams | null;\n givePatchAuthority: PublicKey;\n allowedCancelBeneficiary: PublicKey | null;\n orderAuthorityDstAddress: Uint8Array;\n allowedTaker: Uint8Array | null;\n };\n dstChainId: number;\n nonce: bigint;\n };\n dlnMetadata?: Buffer;\n dlnSrc?: PublicKey;\n tokenProgram?: PublicKey;\n}\n\nexport type ExternalCallParams =\n | {\n type: \"rawData\";\n externalCallData: Uint8Array;\n }\n | { externalCallHash: Uint8Array; type: \"hash\" };\n\nexport interface ExecuteIntentSameChainParams {\n taker: PublicKey;\n maker: PublicKey;\n tradeId: Buffer;\n intentId: Buffer;\n tokenMint: PublicKey;\n receiver: PublicKey;\n amount: bigint;\n tokenProgram?: PublicKey;\n unwrapTakeToken?: boolean;\n chainId?: number;\n}\n\nexport interface SwapParams extends SwapBeginParams, SwapEndParams {\n payer?: PublicKey;\n blockhash: Blockhash;\n ALTs?: Array<AddressLookupTableAccount>;\n instructions?: TransactionInstruction[];\n lastInstructions?: TransactionInstruction[];\n computeBudget?: ComputeBudget;\n}\n\nexport interface WithdrawClosedIntentTokenAccountParams {\n id: Buffer;\n tokenMint: PublicKey;\n tokenProgram?: PublicKey;\n}\n\nexport interface WithdrawIntentTokenAccountParams\n extends WithdrawClosedIntentTokenAccountParams {\n maker: PublicKey;\n receiver?: PublicKey;\n encodedIntentHash: Buffer;\n}\n\nexport interface SetCustomFeeParams {\n protocolAuthority: PublicKey;\n rentPayer: PublicKey;\n inputMint: PublicKey;\n chainId: number;\n customFees: {\n takeTokenAddress: Buffer;\n feeBps: number | null;\n }[];\n}\n\nexport type FeeConfigEntry = {\n inputTokenIndex: number;\n takeTokenIndex: number;\n feeBps: number;\n};\n\nexport type FeeConfigData = {\n chainId: number;\n version: number;\n inputTokens: PublicKey[];\n takeTokens: Buffer[];\n feeValues: FeeConfigEntry[];\n};\n","import { Connection, PublicKey } from \"@solana/web3.js\";\nimport { constants } from \"@debridge-finance/solana-utils\";\nimport { FeeConfigData, FeeConfigEntry } from \"./types\";\n\nconst DISCRIMINATOR = Buffer.from([\n 0x8f, 0x34, 0x92, 0xbb, 0xdb, 0x7b, 0x4c, 0x9b,\n]);\n\nconst SUPPORTED_VERSION = 1;\nconst EVM_ADDRESS_SIZE = 20;\nconst SOLANA_ADDRESS_SIZE = 32;\n\nexport class FeeConfig {\n public readonly data: FeeConfigData;\n public readonly pda: PublicKey;\n\n constructor(data: FeeConfigData, pda: PublicKey) {\n this.data = data;\n this.pda = pda;\n }\n\n static getPda(programId: PublicKey, chainId: number): PublicKey {\n const chainIdBuffer = Buffer.alloc(4);\n chainIdBuffer.writeUInt32LE(chainId, 0);\n const [pubkey] = PublicKey.findProgramAddressSync(\n [Buffer.from(\"fee_config\"), chainIdBuffer],\n programId,\n );\n return pubkey;\n }\n\n static getTakeTokenSize(chainId: number): number {\n return chainId === constants.SOLANA_CHAIN_ID\n ? SOLANA_ADDRESS_SIZE\n : EVM_ADDRESS_SIZE;\n }\n\n static parse(data: Buffer): FeeConfigData {\n const assertRemaining = (offset: number, needed: number, field: string) => {\n if (offset + needed > data.length) {\n throw new Error(\n `FeeConfig data truncated while reading ${field}: need ${needed} bytes at offset ${offset}, have ${data.length - offset}`,\n );\n }\n };\n\n let offset = 0;\n\n // [0..8) discriminator\n assertRemaining(offset, 8, \"discriminator\");\n const discriminator = data.subarray(offset, offset + 8);\n if (!discriminator.equals(DISCRIMINATOR)) {\n throw new Error(\"Invalid FeeConfig discriminator\");\n }\n offset += 8;\n\n // [8..12) chain_id: u32\n assertRemaining(offset, 4, \"chain_id\");\n const chainId = data.readUInt32LE(offset);\n offset += 4;\n\n // [12] version: u8\n assertRemaining(offset, 1, \"version\");\n const version = data[offset]!;\n if (version !== SUPPORTED_VERSION) {\n throw new Error(\n `Unsupported FeeConfig version ${version}, expected ${SUPPORTED_VERSION}`,\n );\n }\n offset += 1;\n\n // [13..15) input_tokens_len: u16\n assertRemaining(offset, 2, \"input_tokens_len\");\n const inputTokensLen = data.readUInt16LE(offset);\n offset += 2;\n\n // [...] input_tokens: [Pubkey; input_tokens_len]\n assertRemaining(\n offset,\n inputTokensLen * SOLANA_ADDRESS_SIZE,\n \"input_tokens\",\n );\n const inputTokens: PublicKey[] = [];\n for (let i = 0; i < inputTokensLen; i++) {\n inputTokens.push(\n new PublicKey(data.subarray(offset, offset + SOLANA_ADDRESS_SIZE)),\n );\n offset += SOLANA_ADDRESS_SIZE;\n }\n\n // [...] take_tokens_len: u16\n assertRemaining(offset, 2, \"take_tokens_len\");\n const takeTokensLen = data.readUInt16LE(offset);\n offset += 2;\n\n // [...] take_tokens: [TakeToken; take_tokens_len]\n const takeTokenSize = FeeConfig.getTakeTokenSize(chainId);\n assertRemaining(offset, takeTokensLen * takeTokenSize, \"take_tokens\");\n const takeTokens: Buffer[] = [];\n for (let i = 0; i < takeTokensLen; i++) {\n takeTokens.push(\n Buffer.from(data.subarray(offset, offset + takeTokenSize)),\n );\n offset += takeTokenSize;\n }\n\n // [...] fee_values: Vec<(u16, u16, u16)> — Borsh Vec with u32 length prefix\n assertRemaining(offset, 4, \"fee_values_len\");\n const feeValuesLen = data.readUInt32LE(offset);\n offset += 4;\n\n assertRemaining(offset, feeValuesLen * 6, \"fee_values\");\n const feeValues: FeeConfigEntry[] = [];\n for (let i = 0; i < feeValuesLen; i++) {\n const inputTokenIndex = data.readUInt16LE(offset);\n offset += 2;\n const takeTokenIndex = data.readUInt16LE(offset);\n offset += 2;\n const feeBps = data.readUInt16LE(offset);\n offset += 2;\n feeValues.push({ inputTokenIndex, takeTokenIndex, feeBps });\n }\n\n return { chainId, version, inputTokens, takeTokens, feeValues };\n }\n\n static async fetch(\n connection: Connection,\n programId: PublicKey,\n chainId: number,\n ): Promise<FeeConfig> {\n const pda = FeeConfig.getPda(programId, chainId);\n const accountInfo = await connection.getAccountInfo(pda);\n if (!accountInfo) {\n throw new Error(\n `FeeConfig account not found for chainId ${chainId} at ${pda.toBase58()}`,\n );\n }\n\n if (!accountInfo.owner.equals(programId)) {\n throw new Error(\"Invalid FeeConfig account owner\");\n }\n\n const data = FeeConfig.parse(accountInfo.data);\n return new FeeConfig(data, pda);\n }\n\n getFeeBps(inputToken: Buffer, takeToken: Buffer): number | null {\n const inputPk = new PublicKey(inputToken);\n const inputTokenIndex = this.data.inputTokens.findIndex((pk) =>\n pk.equals(inputPk),\n );\n if (inputTokenIndex === -1) return null;\n\n const takeTokenIndex = this.data.takeTokens.findIndex((t) =>\n t.equals(takeToken),\n );\n if (takeTokenIndex === -1) return null;\n\n const entry = this.data.feeValues.find(\n (e) =>\n e.inputTokenIndex === inputTokenIndex &&\n e.takeTokenIndex === takeTokenIndex,\n );\n\n return entry?.feeBps ?? null;\n }\n\n static applyFee(amount: bigint, feeBps: number): bigint {\n return amount - (amount * BigInt(feeBps)) / 10000n;\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 TOKEN_2022_PROGRAM_ID,\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 { Intent } from \"./intent\";\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 SetCustomFeeParams,\n} from \"./types\";\nimport { FeeConfig } from \"./fee-config\";\nimport {\n bigintToArray,\n getComputeBudgetIxs,\n getVersionedTransaction,\n} from \"./helpers\";\nimport nacl from \"tweetnacl\";\n\nexport async function getTokenProgramId(\n conn: Connection,\n mint: PublicKey,\n): Promise<PublicKey> {\n const result = await spl.getTokenInfo(conn, mint, true);\n\n if (!result) {\n throw new Error(`Failed to get token info for ${mint}`);\n }\n\n return result.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 enum IntentProgramId {\n prod = \"DeintXmrdZFgSKzEWcJWhK793HuqnfDydAPvHmayY5Xz\",\n dubai = \"intueneJjzHttKp83gWH3GX1h1Uwuixuusj4T8vGDzk\",\n hanoi = \"intV2u5xDE8T2ZMFP3W3X6sVqGHBT7zvYtTW3rRLmvE\",\n devnet = \"int1BXvjNz92Fu9dsRitghGc9Gu7ktQYSJTCcpbiVN1\",\n}\n\nexport const INTENT_PROGRAM_ID_TO_SIG_PREFIX = {\n [IntentProgramId.prod]: IntentProgramSigPrefix.prod,\n [IntentProgramId.dubai]: IntentProgramSigPrefix.dubai,\n [IntentProgramId.hanoi]: IntentProgramSigPrefix.hanoi,\n [IntentProgramId.devnet]: IntentProgramSigPrefix.devnet,\n} satisfies Record<IntentProgramId, IntentProgramSigPrefix>;\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 let data;\n try {\n data = this._intentsProgram.coder.accounts.decode(\n \"state\",\n accountInfo.data,\n );\n } catch (error) {\n try {\n return IntentsClient.decodeLegacyState(accountInfo.data);\n } catch {\n throw error;\n }\n }\n\n return {\n ...data,\n cancelUntilTimestamp: Number(data.cancelUntilTimestamp.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 }: ApproveProtocolTransfersParams): Promise<TransactionInstruction[]> {\n const keys = [\"token\", \"token22\"] as const;\n\n const amounts = {\n token22: [] as BN[],\n token: [] as BN[],\n };\n\n type AccountMeta = {\n pubkey: PublicKey;\n isSigner: boolean;\n isWritable: boolean;\n };\n\n const accounts = {\n token22: [] as AccountMeta[],\n token: [] as AccountMeta[],\n };\n\n for (const { mint, amount } of tokens) {\n const currentTokenProgram = await getTokenProgramId(\n this._provider.connection,\n mint,\n );\n amounts[\n currentTokenProgram.equals(TOKEN_2022_PROGRAM_ID) ? \"token22\" : \"token\"\n ].push(new BN(amount.toString()));\n accounts[\n currentTokenProgram.equals(TOKEN_2022_PROGRAM_ID) ? \"token22\" : \"token\"\n ].push({\n pubkey: getAssociatedTokenAddressSync(\n mint,\n maker,\n true,\n currentTokenProgram,\n ),\n isSigner: false,\n isWritable: true,\n });\n }\n\n const activeKeys = keys.filter((k) => accounts[k].length > 0);\n\n return Promise.all(\n activeKeys.map((type) =>\n this._intentsProgram.methods\n .approveProtocolTransfers(amounts[type])\n .accountsStrict({\n maker,\n state: this._state,\n tokenProgram:\n type === \"token22\" ? TOKEN_2022_PROGRAM_ID : TOKEN_PROGRAM_ID,\n })\n .remainingAccounts(accounts[type])\n .instruction(),\n ),\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 eventAuthority: IntentsClient.getEventAuthorityPda(\n this._intentsProgram.programId,\n ),\n program: this._intentsProgram.programId,\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 feeConfigPda = FeeConfig.getPda(\n this._intentsProgram.programId,\n dlnOrder.args.take.chainId,\n );\n\n // for raw data pass data as is, for hash pass hash instead of data\n const extcall =\n dlnOrder.args.externalCall?.type === \"rawData\"\n ? Buffer.from(dlnOrder.args.externalCall.externalCallData)\n : dlnOrder.args.externalCall?.type === \"hash\"\n ? Buffer.from(dlnOrder.args.externalCall.externalCallHash)\n : null;\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,\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 .remainingAccounts([\n { pubkey: feeConfigPda, isSigner: false, isWritable: false },\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 chainId = constants.SOLANA_CHAIN_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 feeConfigPda = FeeConfig.getPda(\n this._intentsProgram.programId,\n chainId,\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 .remainingAccounts([\n { pubkey: feeConfigPda, isSigner: false, isWritable: false },\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 sigType = IntentsClient.getSignatureType(\n IntentsClient.getBufferForIntentSignature(\n id,\n INTENT_PROGRAM_ID_TO_SIG_PREFIX[\n this.programId.toBase58() as IntentProgramId\n ],\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 setCustomFeeIxs({\n protocolAuthority,\n rentPayer,\n inputMint,\n chainId,\n customFees,\n }: SetCustomFeeParams): Promise<TransactionInstruction[]> {\n return [\n await this._intentsProgram.methods\n .setCustomFee(\n chainId,\n customFees.map((fee) => ({\n takeTokenAddress: fee.takeTokenAddress,\n feeBps: fee.feeBps,\n })),\n )\n .accountsStrict({\n rentPayer,\n state: this._state,\n protocolAuthority,\n feeConfig: FeeConfig.getPda(this._intentsProgram.programId, chainId),\n inputMint,\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 private static decodeLegacyState(data: Buffer): State {\n const discriminator = Buffer.from([216, 146, 107, 94, 104, 75, 182, 177]);\n\n if (!data.subarray(0, discriminator.length).equals(discriminator)) {\n throw new Error(\"Invalid state account discriminator\");\n }\n\n let offset = discriminator.length;\n\n const ensureBytes = (length: number) => {\n if (offset + length > data.length) {\n throw new Error(\"Invalid legacy state account layout\");\n }\n };\n\n const readPublicKey = () => {\n ensureBytes(32);\n const value = new PublicKey(data.subarray(offset, offset + 32));\n offset += 32;\n return value;\n };\n\n const readU32 = () => {\n ensureBytes(4);\n const value = data.readUInt32LE(offset);\n offset += 4;\n return value;\n };\n\n const readBytes = (length: number) => {\n ensureBytes(length);\n const value = data.subarray(offset, offset + length);\n offset += length;\n return value;\n };\n\n const readU64Number = () => {\n ensureBytes(8);\n const value = Number(data.readBigUInt64LE(offset));\n offset += 8;\n return value;\n };\n\n const readU8 = () => {\n ensureBytes(1);\n return data[offset++]!;\n };\n\n const protocolAuthority = readPublicKey();\n const feeCollector = readPublicKey();\n const defaultFeeBps = readU32();\n const isPaused = readU8() !== 0;\n const cancelUntilTimestamp = readU64Number();\n const bump = readU8();\n const tailPrefix = readBytes(4);\n const possibleTrustedSendersLength = tailPrefix.readUInt32LE(0);\n const remainingBytes = data.length - offset;\n const reserved =\n remainingBytes === possibleTrustedSendersLength * 32\n ? undefined\n : Array.from(tailPrefix);\n const trustedSendersLength =\n reserved === undefined\n ? possibleTrustedSendersLength\n : remainingBytes / 32;\n\n if (!Number.isInteger(trustedSendersLength)) {\n throw new Error(\"Invalid legacy state account layout\");\n }\n\n const trustedSenders = Array.from(\n { length: trustedSendersLength },\n readPublicKey,\n );\n\n if (offset !== data.length) {\n throw new Error(\"Invalid legacy state account layout\");\n }\n\n return {\n protocolAuthority,\n feeCollector,\n defaultFeeBps,\n isPaused,\n cancelUntilTimestamp,\n lastValidTimestamp: cancelUntilTimestamp,\n bump,\n reserved,\n trustedSenders,\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"]}
|