import { Cell } from "../../boc/cell"; import TonHttpProvider from "../../providers/httpProvider"; import { Options } from "../contract"; import { WalletContract } from "./walletContract"; export class WalletV2ContractBase extends WalletContract { /** * @override * @private * @param seqno? {number} * @return {Cell} */ createSigningMessage(seqno?: number) { seqno = seqno || 0; const message = new Cell(); message.bits.writeUint(seqno, 32); if (seqno === 0) { // message.bits.writeInt(-1, 32);// todo: dont work for (let i = 0; i < 32; i++) { message.bits.writeBit(1); } } else { const date = new Date(); const timestamp = Math.floor(date.getTime() / 1e3); message.bits.writeUint(timestamp + 60, 32); } return message; } } export class WalletV2ContractR1 extends WalletV2ContractBase { /** * @param provider {TonHttpProvider} * @param options? {any} */ constructor(provider: TonHttpProvider, options: Options) { options.code = Cell.oneFromBoc( "B5EE9C724101010100570000AAFF0020DD2082014C97BA9730ED44D0D70B1FE0A4F2608308D71820D31FD31F01F823BBF263ED44D0D31FD3FFD15131BAF2A103F901541042F910F2A2F800029320D74A96D307D402FB00E8D1A4C8CB1FCBFFC9ED54A1370BB6" ); super(provider, options); } getName() { return "v2R1"; } } export class WalletV2ContractR2 extends WalletV2ContractBase { /** * @param provider {TonHttpProvider} * @param options? {any} */ constructor(provider: TonHttpProvider, options: Options) { options.code = Cell.oneFromBoc( "B5EE9C724101010100630000C2FF0020DD2082014C97BA218201339CBAB19C71B0ED44D0D31FD70BFFE304E0A4F2608308D71820D31FD31F01F823BBF263ED44D0D31FD3FFD15131BAF2A103F901541042F910F2A2F800029320D74A96D307D402FB00E8D1A4C8CB1FCBFFC9ED54044CD7A1" ); super(provider, options); } getName() { return "v2R2"; } }