@debridge-finance/intents-client 1.0.0-dev.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/README.md +103 -0
- package/dist/index.d.mts +2013 -0
- package/dist/index.d.ts +2013 -0
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -0
- package/dist/index.mjs +2 -0
- package/dist/index.mjs.map +1 -0
- package/package.json +42 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../idl/intents-program.ts","../src/helpers.ts","../src/client.ts","../src/addresses-list.ts","../src/intent.ts"],"names":["IDL","getComputeBudgetIxs","computeBudget","ixs","ComputeBudgetProgram","getVersionedTransaction","instructions","payer","blockhash","ALTs","VersionedTransaction","MessageV0","DEFAULT_RECORD_OFFSET","RECORD_META_DATA_SIZE","IntentsClient","_IntentsClient","connection","programId","recordProgramId","RECORD_PROGRAM_ID","AnchorProvider","setProvider","Program","length","budgets","accountInfo","data","intentId","intentStorage","initiator","rentPayer","id","SystemProgram","taker","maker","tokenMint","order","dlnSrc","PublicKey","programs","tokenProgram","TOKEN_PROGRAM_ID","accountsResolver","dlnSrcResolver","dlnSrcState","dlnSrcGiveOrderState","dlnSrcGiveOrderWallet","dlnSrcAuthorizedNativeSender","BN","dlnSrcFeeLedgerWallet","makerGiveToken","getAssociatedTokenAddressSync","ASSOCIATED_TOKEN_PROGRAM_ID","encodedIntentLength","inputTokensAmount","space","signature","delegate","nonce","tokens","enumArgs","approvedAmount","expiration","amount","target","inputMint","outputMint","inputTokenProgram","outputTokenProgram","feeLedger","makerInputToken","takerInputToken","takerOutputToken","intentOutputToken","SYSVAR_INSTRUCTIONS_PUBKEY","record","offset","authority","receiver","createCloseAccountInstruction","buffer","createWriteInstruction","currentLamports","currentSize","requiredSize","deltaLamports","transferIx","reallocIx","createReallocateInstruction","intent","initIntentIxs","recordAccount","Keypair","serializedIntent","lamports","budgetIxs","createAccountIx","initRecordIx","createInitializeInstruction","tx","txs","size","closeRecordIxs","tmpTx","tmpSize","transactions","constants","lastInstructions","writeIxs","low","high","lastGoodIx","lastGoodLen","mid","finalInstructions","combinedInstructions","combinedTx","combinedSize","updateTx","init","write","updateIntentIxs","reallocRecordIxs","bufferOffset","closeIntentIxs","swapBeginIxs","swapEndIxs","pubkey","user","AddressesList","addresses","address","key","index","sizeGroups","sizeGroup","sortedKeys","result","acc","k","dataOffset","currentGroup","a","b","addressesBuffer","Intent","addressSet","collect","addr","collectMap","list","collectTokenWithPrice","token","uniqueAddresses","hex","details","buffers","chainIds","buf","chainId","addrs","pk","parts","idBuf","tsBuf","string","keccak256"],"mappings":"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","file":"index.mjs","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: \"intueneJjzHttKp83gWH3GX1h1Uwuixuusj4T8vGDzk\";\n metadata: {\n name: \"intentsProgram\";\n version: \"0.0.0\";\n spec: \"0.1.0\";\n description: \"deBridge Intents Program\";\n };\n instructions: [\n {\n name: \"approveProtocolTransfers\";\n discriminator: [17, 3, 184, 144, 112, 130, 116, 98];\n accounts: [\n {\n name: \"owner\";\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: \"authorizedTransfer\";\n discriminator: [136, 178, 202, 213, 255, 92, 81, 119];\n accounts: [\n {\n name: \"protocolAuthority\";\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: \"from\";\n },\n {\n name: \"to\";\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: \"closeAccount\";\n discriminator: [125, 255, 149, 14, 110, 34, 72, 24];\n accounts: [\n {\n name: \"programAuthority\";\n signer: true;\n address: \"intueneJjzHttKp83gWH3GX1h1Uwuixuusj4T8vGDzk\";\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 writable: true;\n signer: true;\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 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: \"maker\";\n },\n {\n name: \"makerGiveToken\";\n writable: true;\n pda: {\n seeds: [\n {\n kind: \"account\";\n path: \"intentStorage\";\n },\n {\n kind: \"const\";\n value: [\n 6,\n 221,\n 246,\n 225,\n 215,\n 101,\n 161,\n 147,\n 217,\n 203,\n 225,\n 70,\n 206,\n 235,\n 121,\n 172,\n 28,\n 180,\n 133,\n 237,\n 95,\n 91,\n 55,\n 145,\n 58,\n 140,\n 245,\n 133,\n 126,\n 255,\n 0,\n 169,\n ];\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 args: [\n {\n name: \"dlnOrderArgs\";\n type: \"bytes\";\n },\n {\n name: \"dlnOrderNonce\";\n type: \"u64\";\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 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: \"systemProgram\";\n address: \"11111111111111111111111111111111\";\n },\n ];\n args: [\n {\n name: \"intentId\";\n type: {\n defined: {\n name: \"intentId\";\n };\n };\n },\n {\n name: \"space\";\n type: \"u32\";\n },\n ];\n },\n {\n name: \"initIntentUsingSig\";\n discriminator: [163, 186, 238, 179, 190, 181, 19, 185];\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: \"intentStorage\";\n writable: true;\n },\n {\n name: \"systemProgram\";\n address: \"11111111111111111111111111111111\";\n },\n ];\n args: [\n {\n name: \"intentId\";\n type: {\n defined: {\n name: \"intentId\";\n };\n };\n },\n {\n name: \"space\";\n type: \"u32\";\n },\n {\n name: \"maker\";\n type: \"pubkey\";\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: \"intueneJjzHttKp83gWH3GX1h1Uwuixuusj4T8vGDzk\";\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: \"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 args: [\n {\n name: \"defaultFeeBps\";\n type: \"u16\";\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: \"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: \"delegate\";\n type: \"pubkey\";\n },\n {\n name: \"nonce\";\n type: \"u64\";\n },\n {\n name: \"args\";\n type: {\n defined: {\n name: \"setApprovedTokenBudgets\";\n };\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: \"setLastValidTimestamp\";\n discriminator: [70, 101, 113, 35, 233, 224, 156, 184];\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: \"lastValidTimestamp\";\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: \"feeLedger\";\n writable: true;\n pda: {\n seeds: [\n {\n kind: \"account\";\n path: \"state\";\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: \"intentStorage\";\n writable: true;\n },\n {\n name: \"inputMint\";\n },\n {\n name: \"outputMint\";\n },\n {\n name: \"makerInputToken\";\n writable: true;\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 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: \"inputTokenProgram\";\n },\n {\n name: \"outputTokenProgram\";\n },\n {\n name: \"associatedTokenProgram\";\n address: \"ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL\";\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 },\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: \"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 args: [];\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 args: [\n {\n name: \"dataOrigin\";\n type: {\n defined: {\n name: \"dataOrigin\";\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 errors: [\n {\n code: 6000;\n name: \"protocolIsOnPause\";\n msg: \"Protocol is on pause\";\n },\n {\n code: 6001;\n name: \"unknownCaller\";\n msg: \"Unknown caller\";\n },\n {\n code: 6002;\n name: \"sigVerifyErr\";\n msg: \"Ed25519 signature is invalid or does not match provided intent hash and public key\";\n },\n {\n code: 6003;\n name: \"intentStorageIsInitialized\";\n msg: \"Intent storage is already initialized\";\n },\n {\n code: 6004;\n name: \"intentStorageIsSealed\";\n msg: \"Intent encoded data already matches expected hash\";\n },\n {\n code: 6005;\n name: \"intentHashMismatch\";\n msg: \"Intent ...\";\n },\n {\n code: 6006;\n name: \"intentIsInvalidatedByUser\";\n },\n {\n code: 6007;\n name: \"intentIsInvalidatedByProtocolAuthority\";\n },\n {\n code: 6008;\n name: \"intentIsExpired\";\n },\n {\n code: 6009;\n name: \"intentIsNotReadyYet\";\n msg: \"Intent is not ready for execution yet\";\n },\n {\n code: 6010;\n name: \"unknownInputToken\";\n },\n {\n code: 6011;\n name: \"insufficientInputTokenAmount\";\n },\n {\n code: 6012;\n name: \"intentArbitraryDataOverflow\";\n },\n {\n code: 6013;\n name: \"takerIsNotAllowed\";\n },\n {\n code: 6014;\n name: \"delegateNonceIsAdvanced\";\n },\n ];\n types: [\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: \"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: \"perToken\";\n fields: [\n {\n vec: {\n defined: {\n name: \"currentTokenBudget\";\n };\n };\n },\n ];\n },\n {\n name: \"any\";\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: \"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: \"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: \"rentPayer\";\n type: \"pubkey\";\n },\n {\n name: \"arbitraryData\";\n type: {\n array: [\"u8\", 100];\n };\n },\n {\n name: \"intentId\";\n type: {\n defined: {\n name: \"intentId\";\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: \"lastValidTimestamp\";\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: \"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: \"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: \"u16\";\n },\n {\n name: \"isPaused\";\n type: \"bool\";\n },\n {\n name: \"lastValidTimestamp\";\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: \"inProgress\";\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: \"closed\";\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: \"terminated\";\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 constants: [\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: \"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};\n\nexport const IDL: IntentsProgram = {\n address: \"intueneJjzHttKp83gWH3GX1h1Uwuixuusj4T8vGDzk\",\n metadata: {\n name: \"intentsProgram\",\n version: \"0.0.0\",\n spec: \"0.1.0\",\n description: \"deBridge Intents Program\",\n },\n instructions: [\n {\n name: \"approveProtocolTransfers\",\n discriminator: [17, 3, 184, 144, 112, 130, 116, 98],\n accounts: [\n {\n name: \"owner\",\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: \"authorizedTransfer\",\n discriminator: [136, 178, 202, 213, 255, 92, 81, 119],\n accounts: [\n {\n name: \"protocolAuthority\",\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: \"from\",\n },\n {\n name: \"to\",\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: \"closeAccount\",\n discriminator: [125, 255, 149, 14, 110, 34, 72, 24],\n accounts: [\n {\n name: \"programAuthority\",\n signer: true,\n address: \"intueneJjzHttKp83gWH3GX1h1Uwuixuusj4T8vGDzk\",\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 writable: true,\n signer: true,\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 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: \"maker\",\n },\n {\n name: \"makerGiveToken\",\n writable: true,\n pda: {\n seeds: [\n {\n kind: \"account\",\n path: \"intentStorage\",\n },\n {\n kind: \"const\",\n value: [\n 6, 221, 246, 225, 215, 101, 161, 147, 217, 203, 225, 70, 206,\n 235, 121, 172, 28, 180, 133, 237, 95, 91, 55, 145, 58, 140,\n 245, 133, 126, 255, 0, 169,\n ],\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 args: [\n {\n name: \"dlnOrderArgs\",\n type: \"bytes\",\n },\n {\n name: \"dlnOrderNonce\",\n type: \"u64\",\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 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: \"systemProgram\",\n address: \"11111111111111111111111111111111\",\n },\n ],\n args: [\n {\n name: \"intentId\",\n type: {\n defined: {\n name: \"intentId\",\n },\n },\n },\n {\n name: \"space\",\n type: \"u32\",\n },\n ],\n },\n {\n name: \"initIntentUsingSig\",\n discriminator: [163, 186, 238, 179, 190, 181, 19, 185],\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: \"intentStorage\",\n writable: true,\n },\n {\n name: \"systemProgram\",\n address: \"11111111111111111111111111111111\",\n },\n ],\n args: [\n {\n name: \"intentId\",\n type: {\n defined: {\n name: \"intentId\",\n },\n },\n },\n {\n name: \"space\",\n type: \"u32\",\n },\n {\n name: \"maker\",\n type: \"pubkey\",\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: \"intueneJjzHttKp83gWH3GX1h1Uwuixuusj4T8vGDzk\",\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: \"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 args: [\n {\n name: \"defaultFeeBps\",\n type: \"u16\",\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: \"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: \"delegate\",\n type: \"pubkey\",\n },\n {\n name: \"nonce\",\n type: \"u64\",\n },\n {\n name: \"args\",\n type: {\n defined: {\n name: \"setApprovedTokenBudgets\",\n },\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: \"setLastValidTimestamp\",\n discriminator: [70, 101, 113, 35, 233, 224, 156, 184],\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: \"lastValidTimestamp\",\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: \"feeLedger\",\n writable: true,\n pda: {\n seeds: [\n {\n kind: \"account\",\n path: \"state\",\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: \"intentStorage\",\n writable: true,\n },\n {\n name: \"inputMint\",\n },\n {\n name: \"outputMint\",\n },\n {\n name: \"makerInputToken\",\n writable: true,\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 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: \"inputTokenProgram\",\n },\n {\n name: \"outputTokenProgram\",\n },\n {\n name: \"associatedTokenProgram\",\n address: \"ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL\",\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 },\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: \"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 args: [],\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 args: [\n {\n name: \"dataOrigin\",\n type: {\n defined: {\n name: \"dataOrigin\",\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 errors: [\n {\n code: 6000,\n name: \"protocolIsOnPause\",\n msg: \"Protocol is on pause\",\n },\n {\n code: 6001,\n name: \"unknownCaller\",\n msg: \"Unknown caller\",\n },\n {\n code: 6002,\n name: \"sigVerifyErr\",\n msg: \"Ed25519 signature is invalid or does not match provided intent hash and public key\",\n },\n {\n code: 6003,\n name: \"intentStorageIsInitialized\",\n msg: \"Intent storage is already initialized\",\n },\n {\n code: 6004,\n name: \"intentStorageIsSealed\",\n msg: \"Intent encoded data already matches expected hash\",\n },\n {\n code: 6005,\n name: \"intentHashMismatch\",\n msg: \"Intent ...\",\n },\n {\n code: 6006,\n name: \"intentIsInvalidatedByUser\",\n },\n {\n code: 6007,\n name: \"intentIsInvalidatedByProtocolAuthority\",\n },\n {\n code: 6008,\n name: \"intentIsExpired\",\n },\n {\n code: 6009,\n name: \"intentIsNotReadyYet\",\n msg: \"Intent is not ready for execution yet\",\n },\n {\n code: 6010,\n name: \"unknownInputToken\",\n },\n {\n code: 6011,\n name: \"insufficientInputTokenAmount\",\n },\n {\n code: 6012,\n name: \"intentArbitraryDataOverflow\",\n },\n {\n code: 6013,\n name: \"takerIsNotAllowed\",\n },\n {\n code: 6014,\n name: \"delegateNonceIsAdvanced\",\n },\n ],\n types: [\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: \"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: \"perToken\",\n fields: [\n {\n vec: {\n defined: {\n name: \"currentTokenBudget\",\n },\n },\n },\n ],\n },\n {\n name: \"any\",\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: \"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: \"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: \"rentPayer\",\n type: \"pubkey\",\n },\n {\n name: \"arbitraryData\",\n type: {\n array: [\"u8\", 100],\n },\n },\n {\n name: \"intentId\",\n type: {\n defined: {\n name: \"intentId\",\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: \"lastValidTimestamp\",\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: \"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: \"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: \"u16\",\n },\n {\n name: \"isPaused\",\n type: \"bool\",\n },\n {\n name: \"lastValidTimestamp\",\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: \"inProgress\",\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: \"closed\",\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: \"terminated\",\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 constants: [\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: \"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};\n","import { ComputeBudget, GetTransactionParams } from \"./types\";\nimport {\n ComputeBudgetProgram,\n MessageV0,\n TransactionInstruction,\n VersionedTransaction,\n} from \"@solana/web3.js\";\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} from \"@coral-xyz/anchor\";\nimport {\n constants,\n dlnSrcResolver,\n programs,\n txs as transactions,\n} from \"@debridge-finance/solana-utils\";\nimport {\n Connection,\n Keypair,\n PublicKey,\n SystemProgram,\n SYSVAR_INSTRUCTIONS_PUBKEY,\n TransactionInstruction,\n VersionedTransaction,\n} from \"@solana/web3.js\";\nimport { ASSOCIATED_TOKEN_PROGRAM_ID } 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} from \"./types\";\nimport { getComputeBudgetIxs, getVersionedTransaction } from \"./helpers\";\n\nexport const DEFAULT_RECORD_OFFSET = RECORD_META_DATA_SIZE;\n\nexport class IntentsClient {\n public readonly programId: PublicKey;\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.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 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: Buffer.from(data.intentId[\"0\"]),\n };\n }\n\n // TODO vanilla solana delegation\n /*\n async approveProtocolTransfersIxs({\n owner,\n tokens,\n tokenProgram = TOKEN_PROGRAM_ID,\n }: ApproveProtocolTransfersParams): Promise<TransactionInstruction[]> {\n const { amounts, accounts } = tokens.reduce<TokenApproval>(\n ({ amounts, accounts }, { mint, amount }) => {\n return {\n amounts: amounts.concat(new BN(amount.toString())),\n accounts: accounts.concat({\n pubkey: getAssociatedTokenAddressSync(\n mint,\n owner,\n true,\n tokenProgram,\n ),\n isSigner: false,\n isWritable: true,\n }),\n };\n },\n { amounts: [], accounts: [] },\n );\n\n return [\n await this._intentsProgram.methods\n .approveProtocolTransfers(amounts)\n .accountsStrict({\n owner,\n state: this._state,\n tokenProgram,\n })\n .remainingAccounts(accounts)\n .instruction(),\n ];\n }\n */\n\n private async closeIntentIxs(\n initiator: PublicKey,\n rentPayer: PublicKey,\n id: Buffer,\n ): Promise<TransactionInstruction[]> {\n return [\n await this._intentsProgram.methods\n .closeIntent()\n .accountsStrict({\n initiator,\n rentPayer,\n intentStorage: IntentsClient.getIntentStoragePda(\n this._intentsProgram.programId,\n id,\n ),\n state: this._state,\n systemProgram: SystemProgram.programId,\n })\n .instruction(),\n ];\n }\n\n async executeIntentIxs({\n intentId,\n taker,\n maker,\n tokenMint,\n order,\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 order.id,\n );\n\n const [dlnSrcGiveOrderWallet] = accountsResolver.getGiveOrderWalletAddress(\n order.id,\n );\n\n const [dlnSrcAuthorizedNativeSender] =\n accountsResolver.getAuthorizedNativeSenderAddress(\n Buffer.from(new BN(order.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 const makerGiveToken = getAssociatedTokenAddressSync(\n tokenMint,\n intentStorage,\n true,\n tokenProgram,\n );\n\n return [\n await this._intentsProgram.methods\n .executeIntent(order.args, new BN(order.nonce.toString()))\n .accountsStrict({\n taker,\n state: this._state,\n intentStorage,\n maker,\n makerGiveToken,\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 })\n .instruction(),\n ];\n }\n\n async initIntentIxs(\n maker: PublicKey,\n payer: PublicKey,\n id: Buffer,\n encodedIntentLength: number,\n inputTokensAmount: number,\n ): Promise<TransactionInstruction[]> {\n const space = this.getSpace(encodedIntentLength, inputTokensAmount);\n\n return [\n await this._intentsProgram.methods\n .initIntent({ 0: Array.from(id) }, space)\n .accountsStrict({\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 })\n .instruction(),\n ];\n }\n\n async initIntentUsingSigIxs(\n maker: PublicKey,\n payer: PublicKey,\n id: Buffer,\n encodedIntentLength: number,\n inputTokensAmount: number,\n signature: Buffer,\n ): Promise<TransactionInstruction[]> {\n const space = this.getSpace(encodedIntentLength, inputTokensAmount);\n\n return [\n await this._intentsProgram.methods\n .initIntentUsingSig(\n { 0: Array.from(id) },\n space,\n maker,\n Array.from(signature),\n )\n .accountsStrict({\n rentPayer: payer,\n state: this._state,\n intentStorage: IntentsClient.getIntentStoragePda(\n this._intentsProgram.programId,\n id,\n ),\n systemProgram: SystemProgram.programId,\n })\n .instruction(),\n ];\n }\n\n async setDelegateApprovedBudgetsIxs({\n maker,\n payer,\n delegate,\n nonce,\n tokens,\n }: DelegateApprovedBudgetsParams): Promise<TransactionInstruction[]> {\n let enumArgs: any;\n if (\"set\" in tokens) {\n enumArgs = {\n set: tokens.set.map(({ tokenMint, approvedAmount, expiration }) => ({\n tokenMint: tokenMint,\n approvedAmount: new BN(approvedAmount.toString()),\n expiration: new BN(expiration.toString()),\n })),\n };\n } else if (\"setAny\" in tokens) {\n enumArgs = { setAny: {} };\n } else {\n enumArgs = { revoke: {} };\n }\n\n return [\n await this._intentsProgram.methods\n .setDelegateApprovedBudgets(\n delegate,\n new BN(nonce.toString()),\n enumArgs,\n )\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 amount, // 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 const feeLedger = getAssociatedTokenAddressSync(\n inputMint,\n this._state,\n true,\n inputTokenProgram,\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(amount.toString()),\n target === \"intent\" ? { intent: {} } : { taker: {} },\n )\n .accountsStrict({\n taker,\n state: this._state,\n feeLedger,\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 })\n .instruction(),\n ];\n }\n\n async swapEndIxs({\n taker,\n intentId,\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 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()\n .accountsStrict({\n taker,\n state: this._state,\n intentStorage,\n outputMint,\n takerOutputToken,\n intentOutputToken,\n instructions: SYSVAR_INSTRUCTIONS_PUBKEY,\n systemProgram: SystemProgram.programId,\n outputTokenProgram,\n associatedTokenProgram: ASSOCIATED_TOKEN_PROGRAM_ID,\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 })\n .instruction(),\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 authority,\n payer,\n intent,\n signature,\n blockhash,\n ALTs,\n computeBudget,\n }: InitIntentParams): Promise<{\n record: PublicKey;\n txs: VersionedTransaction[];\n }> {\n if (!payer) {\n payer = authority;\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 // delegateApprove + initIntentDelegate\n\n if (signature) {\n initIntentIxs = await this.initIntentUsingSigIxs(\n authority,\n payer,\n intent.id,\n serializedIntent.length,\n intent.inputTokensLength,\n signature,\n );\n } else {\n initIntentIxs = await this.initIntentIxs(\n authority,\n payer,\n intent.id,\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 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 tx.sign([recordAccount]);\n\n return {\n record: recordAccount.publicKey,\n txs: [tx],\n };\n }\n\n async writeIntentTxs({\n authority,\n payer,\n record,\n intent,\n blockhash,\n ALTs,\n computeBudget,\n }: WriteIntentParams): Promise<VersionedTransaction[]> {\n if (!payer) {\n payer = authority;\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,\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,\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 authority,\n payer,\n intent,\n signature,\n blockhash,\n ALTs,\n computeBudget,\n }: InitIntentParams): Promise<{\n init: VersionedTransaction[];\n write: VersionedTransaction[];\n record: PublicKey;\n }> {\n const { record, txs: init } = await this.initIntentTxs({\n authority,\n payer,\n intent,\n signature,\n blockhash,\n ALTs,\n computeBudget,\n });\n const write = await this.writeIntentTxs({\n authority,\n payer,\n record,\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 authority,\n payer,\n intent,\n signature,\n blockhash,\n ALTs,\n computeBudget,\n }: CreateAndUpdateIntentParams): Promise<VersionedTransaction[]> {\n if (!payer) {\n payer = authority;\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 authority,\n payer,\n intent.id,\n intent.data ? intent.data.length : intent.length,\n intent.inputTokensLength,\n signature,\n );\n } else {\n initIntentIxs = await this.initIntentIxs(\n authority,\n payer,\n intent.id,\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,\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 closeIntentTxs({\n authority,\n payer,\n record,\n receiver,\n id,\n blockhash,\n ALTs,\n computeBudget,\n }: CloseIntentParams): Promise<VersionedTransaction[]> {\n if (!payer) {\n payer = authority;\n }\n\n const ixs: TransactionInstruction[] = getComputeBudgetIxs(computeBudget);\n\n const closeIntentIxs = await this.closeIntentIxs(\n authority,\n receiver ?? authority,\n id,\n );\n\n ixs.push(...closeIntentIxs);\n\n if (record) {\n const closeRecordIxs = this.closeRecordIxs({\n record,\n authority,\n receiver,\n });\n\n ixs.push(...closeRecordIxs);\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 inputMint,\n outputMint,\n amount,\n target,\n inputTokenProgram = TOKEN_PROGRAM_ID,\n outputTokenProgram = TOKEN_PROGRAM_ID,\n instructions = [],\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 inputMint,\n outputMint,\n amount,\n target,\n inputTokenProgram,\n outputTokenProgram,\n });\n\n const swapEndIxs = await this.swapEndIxs({\n taker,\n intentId,\n outputMint,\n outputTokenProgram,\n });\n\n const tx = getVersionedTransaction({\n instructions: [\n ...budgetIxs,\n ...swapBeginIxs,\n ...instructions,\n ...swapEndIxs,\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","import { AddressType, Serializable } from \"./types\";\n\nexport class AddressesList implements Serializable {\n private 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","import { PublicKey } from \"@solana/web3.js\";\nimport { keccak256 } from \"js-sha3\";\nimport {\n AddressType,\n IntentType,\n ReceiverInfo,\n Serializable,\n TakeTokenInfo,\n TokenInfo,\n} from \"./types\";\nimport { AddressesList } from \"./addresses-list\";\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 collectTokenWithPrice = (list?: TokenInfo[] | TakeTokenInfo[]) => {\n if (!list) return;\n for (const token of list) {\n collect(token.inputAddress);\n collect(token.outputAddress);\n }\n };\n\n for (const token of intent.inputTokens) collect(token.address);\n collectTokenWithPrice(intent.giveTokens);\n collectTokenWithPrice(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 Buffer.from([0]);\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(0, 1);\n } else {\n buf = Buffer.alloc(1 + 1 + 1 + chainIds.length * 4);\n buf.writeUInt8(this.addressesList.lookupIndex(address), 0);\n buf.writeUInt8(1, 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 // any = length + (index + any = 0)\n // = length + (index + 1 + (chainId length, chainId, chainId, chainId)))\n\n return Buffer.concat([Buffer.from([buffers.length]), ...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.address);\n buf.writeBigUInt64LE(token.minPartialAmount, 1);\n buf.writeBigUInt64LE(token.maxPartialAmount, 9);\n buf.writeBigUInt64LE(token.budget, 17);\n return buf;\n });\n return Buffer.concat([Buffer.from([buffers.length]), ...buffers]);\n }\n\n private serializeTokenInfo(tokens?: TokenInfo[]): Buffer {\n if (!tokens || tokens.length === 0) return Buffer.from([0]);\n const buffers = tokens.map((token) => {\n const buf = Buffer.alloc(18);\n buf.writeUInt8(this.addressesList.lookupIndex(token.inputAddress), 0);\n buf.writeUInt8(this.addressesList.lookupIndex(token.outputAddress), 1);\n buf.writeBigInt64LE(token.price, 2);\n return buf;\n });\n return Buffer.concat([Buffer.from([tokens.length]), ...buffers]);\n }\n\n private serializeTakeTokenInfo(tokens?: TakeTokenInfo[]): Buffer {\n if (!tokens || tokens.length === 0) return Buffer.from([0]);\n const buffers = tokens.map((token) => {\n const buf = Buffer.alloc(22);\n buf.writeUInt8(this.addressesList.lookupIndex(token.inputAddress), 0);\n buf.writeUInt8(token.outputTokenChainId, 1);\n buf.writeUInt8(this.addressesList.lookupIndex(token.outputAddress), 5);\n buf.writeBigInt64LE(token.price, 6);\n return buf;\n });\n return Buffer.concat([Buffer.from([tokens.length]), ...buffers]);\n }\n\n private serializeOptionalBytes(buf?: Buffer): Buffer {\n return buf ? Buffer.concat([Buffer.from([1]), buf]) : Buffer.from([0]);\n }\n\n private serializeShortArray(buf?: Buffer): Buffer {\n if (!buf) {\n return Buffer.from([0]);\n }\n\n const length = Buffer.alloc(2);\n length.writeInt16LE(buf.length, 0);\n\n return Buffer.concat([Buffer.from([1]), length, buf]);\n }\n\n private serializeAddresses(addrs?: AddressType[]): Buffer {\n if (!addrs || addrs.length === 0) {\n return Buffer.from([0]);\n }\n\n return Buffer.concat([Buffer.from([addrs.length]), ...addrs]);\n }\n\n private serializeOptionalPubkey(pk?: PublicKey): Buffer {\n return pk\n ? Buffer.concat([Buffer.from([1]), pk.toBuffer()])\n : Buffer.from([0]);\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(this.data.authority.toBuffer());\n } else {\n parts.push(this.data.owner.toBuffer());\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<TokenInfo>, optional as empty array)\n parts.push(this.serializeTokenInfo(this.data.giveTokens));\n\n // 9. takeTokens (CharArray<TakeTokenInfo>, optional as empty array)\n parts.push(this.serializeTakeTokenInfo(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.serializeAddresses(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.executionMetadataHash));\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 if (this.data.externalCallHash === \"any\") {\n parts.push(Buffer.from([1]), Buffer.from([0]));\n } else if (this.data.externalCallHash) {\n parts.push(\n Buffer.from([1]),\n this.serializeOptionalBytes(this.data.externalCallHash),\n );\n } else {\n parts.push(Buffer.from([0]));\n }\n\n // 19. dlnMetadata (Option<AnyOr<ShortArray<u8>>>)\n if (this.data.dlnMetadata === \"any\") {\n parts.push(Buffer.from([1]), Buffer.from([0]));\n } else if (this.data.dlnMetadata) {\n parts.push(\n Buffer.from([1]),\n this.serializeShortArray(this.data.dlnMetadata),\n );\n } else {\n parts.push(Buffer.from([0]));\n }\n\n return Buffer.concat(parts);\n }\n\n getId(): { hex: string; buffer: Buffer } {\n const string = keccak256(this.serialize());\n\n return {\n hex: `0x${string}`,\n buffer: Buffer.from(string, \"hex\"),\n };\n }\n\n static getId(serializedIntent: Buffer): { hex: string; buffer: Buffer } {\n const string = keccak256(serializedIntent);\n\n return {\n hex: `0x${string}`,\n buffer: Buffer.from(string, \"hex\"),\n };\n }\n\n public static getTextToSign(intent: Intent): string {\n const string = intent.getId().hex;\n\n return string;\n }\n}\n"]}
|
package/package.json
ADDED
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@debridge-finance/intents-client",
|
|
3
|
+
"version": "1.0.0-dev.0",
|
|
4
|
+
"scripts": {
|
|
5
|
+
"build": "tsup",
|
|
6
|
+
"test": "jest -i --setupFiles=dotenv/config",
|
|
7
|
+
"test:ci": "npm test -- --coverage --testLocationInResults --json --outputFile=test-report.json -- ./tests/*",
|
|
8
|
+
"test:serializers": "npm test -- -- tests/serializers.test.ts",
|
|
9
|
+
"test:client": "npm test -- -- tests/client.test.ts"
|
|
10
|
+
},
|
|
11
|
+
"main": "./dist/index.js",
|
|
12
|
+
"module": "./dist/index.mjs",
|
|
13
|
+
"source": "./src/index.ts",
|
|
14
|
+
"types": "./dist/index.d.ts",
|
|
15
|
+
"files": [
|
|
16
|
+
"dist/**"
|
|
17
|
+
],
|
|
18
|
+
"dependencies": {
|
|
19
|
+
"@coral-xyz/anchor": "^0.31.1",
|
|
20
|
+
"@debridge-finance/solana-tx-sender": "*",
|
|
21
|
+
"@debridge-finance/solana-utils": "*",
|
|
22
|
+
"@solana/spl-record": "^0.1.0",
|
|
23
|
+
"@solana/spl-token": "^0.4.6",
|
|
24
|
+
"@solana/web3.js": "^1.98.2",
|
|
25
|
+
"bn.js": "^5.2.1",
|
|
26
|
+
"bs58": "^6.0.0",
|
|
27
|
+
"js-sha3": "^0.9.3",
|
|
28
|
+
"tweetnacl": "^1.0.3"
|
|
29
|
+
},
|
|
30
|
+
"devDependencies": {
|
|
31
|
+
"@debridge-finance/typescript-config": "*",
|
|
32
|
+
"@jest/globals": "^29.7.0",
|
|
33
|
+
"@types/jest": "^29.5.13",
|
|
34
|
+
"dotenv": "^16.4.5",
|
|
35
|
+
"jest": "^29.7.0",
|
|
36
|
+
"jest-sonar-reporter": "^2.0.0",
|
|
37
|
+
"ts-jest": "^29.2.5",
|
|
38
|
+
"ts-node": "^10.9.2",
|
|
39
|
+
"tsup": "^8.2.4",
|
|
40
|
+
"typescript": "latest"
|
|
41
|
+
}
|
|
42
|
+
}
|