UNPKG

@coolwallet/sol

Version:
196 lines (184 loc) 13 kB
import base58 from 'bs58'; const SCRIPT = { TRANSFER: { script: `03000002C70700000001F5CAA0C70003CAAC170003CAAC570004CAAC5700241AAC57C044042D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D1507C005CAAC5700441AAC57C064042D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D1507C005CAAC5700641AAC57C084042D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D1507C005CAAC5700841AAC57C0A4042D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D1507C005CAAC5700A4CAAC5700C4CC071001CAAC1700E4CAAC1700E5CAAC1700E6CAAC1700E7CAAC1700E8CAACC700E904CAACC700ED08DC07C003534F4C1AAC17C0E70B00BAAC5F6C040804DDF097001AAC17C0E70B01BAAC5F6C240804DDF09700250F00BAACCECCED08080F10DAE097C009250E00D207CC05065052455353425554546F4E`, signature: `304502201feef74de887b6d8513f56371cebf5e9d7f05e2ddbef25eb6dd91cd088910018022100d4afd1ea9d5f9ae142cdab5419e8c0974f10651376af03a141a26e49b08691dc`.padStart( 144, '0' ), get scriptWithSignature(): string { return this.script + this.signature; }, }, TRANSFER_WITH_COMPUTE_BUDGET: { script: `03000002C70700000001F5CAA0C70003CAAC170003CAAC570004CAAC5700241AAC57C044042D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D1507C005CAAC5700441AAC57C064042D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D1507C005CAAC5700641AAC57C084042D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D1507C005CAAC5700841AAC57C0A4042D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D1507C005CAAC5700A4CAAC5700C4CC071003CAAC1700E4CAAC1700E5CAAC1700E6CAAC1700E7CAACC700E808CAAC1700F0CAAC1700F1CAAC1700F2CAAC1700F3CAACC700F404CAAC1700F8CAAC1700F9CAAC1700FACAAC1700FBCAAC1700FCCAACC700FD04CAADC700010108DC07C003534F4C1AAC17C0FB0B00BAAC5F6C040804DDF097001AAC17C0FB0B01BAAC5F6C240804DDF09700250F00BAADCECC010108080F10DAE097C009250E00D207CC05065052455353425554546F4E`, signature: `3044022032851d9ca464de5ae92c063f33ada384fa0dee27d6e3d469197a367ef9cc9cbe0220137ffa77407186912ffbb5fd74529b3818c7e8fa1d4eb13d4a924a44cb7caaf9`.padStart( 144, '0' ), get scriptWithSignature(): string { return this.script + this.signature; }, }, SMART_CONTRACT: { script: `03000002C70700000001F5CAA09700DC07C003534F4CD207C005534D415254D207CC05065052455353425554546F4E`, signature: `3045022100AFECB6EECB35BA13D924D61C3C6C468017CAE31835E59A6722CCF75E68CF788202207252A4E2777E8B289F8AE7902D0BEF521859A8C6077B2209AB7BD704C3899921`.padStart( 144, '0' ), get scriptWithSignature(): string { return this.script + this.signature; }, }, SPL_TOKEN: { script: `03000002C70700000001F5CAA0C70003CAAC170003CAAC570004CAAC570024CAAC570044CAAC5700641AAC57C084042D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D1507C005CAAC5700841AAC57C0A4042D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D1507C005CAAC5700A4CAAC5700C4CC071001CAAC1700E4CAAC1700E5CAACC700E604CAAC1700EACAAC1700EBCAACC700EC08CAAC1700F4DC07C003534F4C11ACC7CDF52904011E1507C004CC0F104012AC17C0F60401071507C002FF00B5AC1700F6CAACBF00F7DEF09700250F001AAC17C0E80701BAAC5F6C2408041AAC17C0E80702BAAC5F6C440804DDF09700250F00BAACCECCEC08080F1012AC17C0F50400141507C002FF00B5AC1700F5DAE097B0250E00D207CC05065052455353425554546F4E`, signature: `304402205671655342687abb29a7e8aa4754e37f9b5d5841b0cca514ad85582e08f633bf0220278585a59fd11d6728a0582365c790a14eedf5e2bde39d68c402e5c827520c83`.padStart( 144, '0' ), get scriptWithSignature(): string { return this.script + this.signature; }, }, SPL_TOKEN_WITH_COMPUTE_BUDGET: { script: `03000002C70700000001F5CAA0C70003CAAC170003CAAC570004CAAC570024CAAC570044CAAC5700641AAC57C084042D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D1507C005CAAC5700841AAC57C0A4042D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D1507C005CAAC5700A4CAAC5700C4CC071003CAAC1700E4CAAC1700E5CAAC1700E6CAAC1700E7CAACC700E808CAAC1700F0CAAC1700F1CAAC1700F2CAAC1700F3CAACC700F404CAAC1700F8CAAC1700F9CAACC700FA04CAAC1700FECAAC1700FFCAADC700010008CAAD17000108DC07C003534F4C11ADC7CD0109290401321507C004CC0F104012AD17C0010A0401071507C002FF00B5AD1700010ACAADBF00010BDEF09700250F001AAC17C0FC0701BAAC5F6C2408041AAC17C0FC0702BAAC5F6C440804DDF09700250F00BAADCECC010008080F1012AD17C001090400141507C002FF00B5AD17000109DAE097B0250E00D207CC05065052455353425554546F4E`, signature: `3046022100d2c497232419b42a67303108a9572b849c8e76db92c8aa877bda1733dedf3ca0022100a8088de1f75bd6ba8a519a717d8658812a21a7714f49a7af2c8c43f89cd09f1d`.padStart( 144, '0' ), get scriptWithSignature(): string { return this.script + this.signature; }, }, CREATE_AND_SPL_TOKEN: { script: `03000002C70700000001F5CAA0C70003CAAC170003CAAC570004CAAC570024CAAC570044CAAC570064CAAC570084CAAC5700A4CAAC5700C4CAAC5700E41AAD57C00104042D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D1507C006CAAD57000104CAAD57000124CC071002CAAD17000144CAAD17000145CAADC700014606CAAD1700014CCAAD1700014DCAAD1700014ECAADC700014F04CAAD17000153CAAD17000154CAADC700015508CAAD1700015DDC07C003534F4C11ADC7CD015E290401871507C004CC0F104012AD17C0015F0401071507C002FF00B5AD1700015FCAADBF000160DEF09700250F001AAD17C001510701BAAC5F6C2408041AAD17C001510702BAAC5F6C440804DDF09700250F00BAADCECC015508080F1012AD17C0015E0400141507C002FF00B5AD1700015EDAE097B0250E00D207CC05065052455353425554546F4E`, signature: `3046022100c12fa464f736ac82b5b486285a024f8f176f5300b2abee69076568eb97eba806022100fafd08f6d8836b6a659cd9e433231fdcd8e77c731fc28a6073fa9fc5bf438e59`.padStart( 144, '0' ), get scriptWithSignature(): string { return this.script + this.signature; }, }, CREATE_AND_SPL_TOKEN_WITH_COMPUTE_BUDGET: { script: `03000002C70700000001F5CAA0C70003CAAC170003CAAC570004CAAC570024CAAC570044CAAC570064CAAC570084CAAC5700A4CAAC5700C4CAAC5700E41AAD57C00104042D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D1507C006CAAD57000104CAAD57000124CC071004CAAD17000144CAAD17000145CAADC700014606CAAD1700014CCAAD1700014DCAAD1700014ECAAD1700014FCAAD17000150CAADC700015108CAAD17000159CAAD1700015ACAAD1700015BCAAD1700015CCAADC700015D04CAAD17000161CAAD17000162CAADC700016304CAAD17000167CAAD17000168CAADC700016908CAAD17000171DC07C003534F4C11ADC7CD01722904019B1507C004CC0F104012AD17C001730401071507C002FF00B5AD17000173CAADBF000174DEF09700250F001AAD17C001650701BAAC5F6C2408041AAD17C001650702BAAC5F6C440804DDF09700250F00BAADCECC016908080F1012AD17C001720400141507C002FF00B5AD17000172DAE097B0250E00D207CC05065052455353425554546F4E`, signature: `304502202bb3bdc762ca5fa9ac99d4156c78f178b375b6e8bb60071a5163e909d2db9ae4022100ca2639ddfc83ce9ff05a1d8728ec42bfcabd590a3b6c6ca924b09b1195a0ace2`.padStart( 144, '0' ), get scriptWithSignature(): string { return this.script + this.signature; }, }, UNDELEGATE: { script: `03000002C70700000001F5CAA0C70003CAAC170003CAAC570004CAAC570024CAAC570044CAAC5700641AAC57C084042D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D1507C005CAAC570084CAAC5700A4CAAC1700C41AAC17C0C704001507C01ACAAC1700C5CAAC1700C6CAAC1700C7CAAC1700C8CAACC700C9081AAC17C0D304001507C01ACAAC1700D1CAAC1700D2CAAC1700D3CAAC1700D4CAACC700D504CAAC1700D9CAAC1700DACAACC700DB03CAAC1700DECAACC700DF04DC07C003534F4CDC07C005556E44656CBAAC5F6C040804DDF09700D207CC05065052455353425554546F4E250F00`, signature: `3044022040054884f42bb7257f16c9cc121f15d2466ce8d9efb5e83f7b96973ed29d1f260220328d320b2ce9339123d923e3a2d81ffb6382a3588da19e93d8795d0265dfe561`.padStart( 144, '0' ), get scriptWithSignature(): string { return this.script + this.signature; }, }, DELEGATE_AND_CREATE_ACCOUNT_WITH_SEED: { script: `03000002C70700000001F5CAA0C70003CAAC170003CAAC570004CAAC570024CAAC570044CAAC570064CAAC570084CAAC5700A4CAAC5700C4CAAC5700E4CAAD570001041AAD57C00124042D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D1507C006CAAD57000124CAAD57000144CAAD170001641AAD17C0016704001507C01FCAAD17000165CAAD17000166CAAD17000167CAAD17000168CAADC7000169081AAD17C0017304001507C01FCAAD17000171CAAD17000172CAAD17000173CAAD17000174CAADC700017504CAAD17000179CAAD1700017ACAADC700017B02CAAD1700017DCAADC700017E04CAAD57000182CAADC70001A204CAADC70001A604CAADD70001AAFFE0CAADC70001CA08CAADC70001D208CAAD570001DACAAD170001FACAAD170001FBCAADC70001FC02CAAD170001FECAADC70001FF74CAAD17000273CAAD17000274CAAD17000275CAAD17000276CAADC700027704CAAD1700027BCAADC700027C04DC07C003534F4CDC07C0055354414B45BAAC5F6C640804DDF09700250F00BAADCECC01CA08080F10DAE097C009D207CC05065052455353425554546F4E250F00`, signature: `3044022026ea0b1c5ab42fc52fa4542db17b9a0a92b42ffc941a53b82ec8cedd7fa4fd1d02200b2edd468c0d6761add53a597774cdc1c5d1599b186a1ade4b2458c559771411`.padStart( 144, '0' ), get scriptWithSignature(): string { return this.script + this.signature; }, }, STAKING_WITHDRAW: { script: `03000002C70700000001F5CAA0C70003CAAC170003CAAC570004CAAC570024CAAC570044CAAC570064CAAC5700841AAC57C0A4042D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D1507C005CAAC5700A41AAC57C0C4042D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D1507C005CAAC5700C4CAAC5700E4CAAD170001041AAD17C0010704001507C01FCAAD17000105CAAD17000106CAAD17000107CAAD17000108CAADC7000109081AAD17C0011304001507C01FCAAD17000111CAAD17000112CAAD17000113CAAD17000114CAADC700011504CAAD17000119CAAD1700011ACAAD1700011BCAAD1700011CCAADC700011D03CAAD17000120CAADC700012104CAADC700012508DC07C003534F4CDC07C0065265776172641AAD17C0011C0E00BAAC5F6C040804DDF09700250F001AAD17C0011C0E01BAAC5F6C240804DDF09700250F001AAD17C0011C0E02BAAC5F6C440804DDF09700250F00BAADCECC012508080F10DAE097C009250E00D207CC05065052455353425554546F4E`, signature: `304402200329a67f8ce88f59b5dc7514488c07434fe0dc05cf9e25f151d964fff052eed102204ef7f0b5ae72bf209f093968bbaa48aeda3216103f04667cc6481fd49d82defc`.padStart( 144, '0' ), get scriptWithSignature(): string { return this.script + this.signature; }, }, SIGN_IN: { script: `03000002C70700000001F5B5A01700CAA1B700CC07C0302077616e747320796f7520746f207369676e20696e207769746820796f757220536f6c616e61206163636f756e743a0a6CADCF00048311BAF0976C0804B5ACC7008102CAACB70083DC07C003534F4CD207C0075349474E20494ED207CC05065052455353425554546F4E`, signature: `3045022100ce2624f80ac5234d77415ca9df9ad153fa1c8baea28497d937e619ce63dddb6302205bb1f1d8aa5a47e5c87c615be03cf0a375c40ed3e19746e3279fd74dbddca82a`.padStart( 144, '0' ), get scriptWithSignature(): string { return this.script + this.signature; }, }, SIGN_MESSAGE: { script: `03000002C70700000001F5CAA09700DC07C003534F4CD207C0074D455353414745D207CC05065052455353425554546F4E`, signature: `30450220482a5109dd908b886d4b8cd8b4bfb43a56c65232d68e4b30798d3cdbb55e31f3022100ee6e9c3d9468a8ad29ca6ac2b08719c7cbe7e857951a1b7ffa62e3445bc1bb10`.padStart( 144, '0' ), get scriptWithSignature(): string { return this.script + this.signature; }, }, MULTI_SIGN_TX: { script: ``, signature: ``.padStart(144, '0'), get scriptWithSignature(): string { return this.script + this.signature; }, }, }; const COIN_TYPE = '800001f5'; const LAMPORTS_PER_SOL = 1000000000; const SYSTEM_PROGRAM_ID = base58.decode('11111111111111111111111111111111'); // token const TOKEN_PROGRAM_ID = base58.decode('TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA'); const TOKEN_2022_PROGRAM_ID = base58.decode('TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb'); const ASSOCIATED_TOKEN_PROGRAM_ID = base58.decode('ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL'); // stake const STAKE_PROGRAM_ID = base58.decode('Stake11111111111111111111111111111111111111'); const STAKE_CONFIG_ID = base58.decode('StakeConfig11111111111111111111111111111111'); // sysvar const SYSVAR_RENT_PUBKEY = base58.decode('SysvarRent111111111111111111111111111111111'); const SYSVAR_CLOCK_PUBKEY = base58.decode('SysvarC1ock11111111111111111111111111111111'); const SYSVAR_STAKE_HISTORY_PUBKEY = base58.decode('SysvarStakeHistory1111111111111111111111111'); const COMPUTE_BUDGET_PROGRAM_ID = base58.decode('ComputeBudget111111111111111111111111111111'); const PADDING_PUBLICKEY = Buffer.from('--------------------------------', 'ascii').toString('hex'); const PACKET_DATA_SIZE = 1280 - 40 - 8; const VERSION_PREFIX_MASK = 0x7f; export const SIGNATURE_LENGTH_IN_BYTES = 64; /** * Size of public key in bytes */ const PUBLIC_KEY_LENGTH = 32; export { SCRIPT, COIN_TYPE, LAMPORTS_PER_SOL, SYSTEM_PROGRAM_ID, TOKEN_PROGRAM_ID, TOKEN_2022_PROGRAM_ID, STAKE_PROGRAM_ID, STAKE_CONFIG_ID, ASSOCIATED_TOKEN_PROGRAM_ID, SYSVAR_RENT_PUBKEY, SYSVAR_CLOCK_PUBKEY, SYSVAR_STAKE_HISTORY_PUBKEY, COMPUTE_BUDGET_PROGRAM_ID, PADDING_PUBLICKEY, PACKET_DATA_SIZE, VERSION_PREFIX_MASK, PUBLIC_KEY_LENGTH, };