Skip to content

Commit

Permalink
Merge pull request #90 from lum-network/feature/lum-614
Browse files Browse the repository at this point in the history
[LUM-614] Add new messages
  • Loading branch information
ThibaultJRD committed Aug 22, 2023
2 parents 8aa0668 + 95cdeaa commit 17a9649
Show file tree
Hide file tree
Showing 14 changed files with 350 additions and 59 deletions.
3 changes: 3 additions & 0 deletions src/assets/images/messageTypes/millionsClaimPrize.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
5 changes: 5 additions & 0 deletions src/assets/images/messageTypes/millionsDeposit.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
11 changes: 11 additions & 0 deletions src/assets/images/messageTypes/millionsWithdraw.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
10 changes: 10 additions & 0 deletions src/assets/images/tickers/ticker_atom.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
6 changes: 5 additions & 1 deletion src/components/components/AssetsList/AssetsList.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ import React, { useEffect } from 'react';
import { Table, Card } from 'frontend-elements';
import { i18n } from 'utils';
import placeholderTx from 'assets/images/placeholderTx.svg';
import tickerAtom from 'assets/images/tickers/ticker_atom.svg';
import tickerLum from 'assets/images/tickers/ticker_lum.svg';
import tickerDfr from 'assets/images/tickers/ticker_dfr.svg';
import tickerUsdc from 'assets/images/tickers/ticker_usdc.svg';
Expand Down Expand Up @@ -33,6 +34,9 @@ const AssetsList = ({ head, assets, title }: IProps): JSX.Element => {
case 'ibc/05554A9BFDD28894D7F18F4C707AA0930D778751A437A9FE1F4684A3E1199728':
case 'uusdc':
return ['USDC', tickerUsdc];
case 'ibc/A8C2D23A1E6F95DA4E48BA349667E322BD7A6C996D8A4AAE8BA72E190F3D1477':
case 'uatom':
return ['ATOM', tickerAtom];
default:
return [i18n.t('unknown'), tickerUnknown];
}
Expand All @@ -43,7 +47,7 @@ const AssetsList = ({ head, assets, title }: IProps): JSX.Element => {
return (
<tr key={index}>
<td title={asset.denom} className="d-flex align-items-center" data-label={head[0]}>
<img className="me-2" alt={name} src={logo} /> {name}
<img width={26} height={26} className="me-2" alt={name} src={logo} /> {name}
</td>
<td data-label={head[1]}>
<SmallerDecimal nb={numeral(asset.amount).format('0,0.000000')} />
Expand Down
5 changes: 5 additions & 0 deletions src/constant/enums/MessagesType.ts
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ enum MessagesType {
SUBMIT_PROPOSAL = '/cosmos.gov.v1beta1.MsgSubmitProposal',
DEPOSIT = '/cosmos.gov.v1beta1.MsgDeposit',
VOTE = '/cosmos.gov.v1beta1.MsgVote',
VOTE2 = '/cosmos.gov.v1.MsgVote',
CREATE_VESTING_ACCOUNT = '/cosmos.vesting.v1beta1.MsgCreateVestingAccount',
BEGIN_REDELEGATE = '/cosmos.staking.v1beta1.MsgBeginRedelegate',
WITHDRAW_VALIDATOR_COMMISSION = '/cosmos.distribution.v1beta1.MsgWithdrawValidatorCommission',
Expand All @@ -23,6 +24,10 @@ enum MessagesType {
IBC_RECV_PACKET = '/ibc.core.channel.v1.MsgRecvPacket',
EXEC = '/cosmos.authz.v1beta1.MsgExec',
GRANT = '/cosmos.authz.v1beta1.MsgGrant',
MILLIONS_DEPOSIT = '/lum.network.millions.MsgDeposit',
MILLIONS_WITHDRAW = '/lum.network.millions.MsgWithdrawDeposit',
MILLIONS_CLAIM_PRIZE = '/lum.network.millions.MsgClaimPrize',
SET_WITHDRAW_ADDRESS = '/cosmos.distribution.v1beta1.MsgSetWithdrawAddress',
}

export default MessagesType;
94 changes: 47 additions & 47 deletions src/core/index.tsx
Original file line number Diff line number Diff line change
@@ -1,26 +1,26 @@
import React, { useEffect, useState } from 'react';
import React, { useEffect } from 'react';
import RootNavigator from 'navigation';
import { useDispatch } from 'react-redux';
import { Dispatch } from 'redux/store';
import { BlocksModel, TransactionsModel } from 'models';
import { ApiConstants, SocketConstants } from 'constant';
import { plainToClass } from 'class-transformer';
import io, { Socket } from 'socket.io-client';
// import { BlocksModel, TransactionsModel } from 'models';
// import { ApiConstants, SocketConstants } from 'constant';
// import { plainToClass } from 'class-transformer';
// import io, { Socket } from 'socket.io-client';

const Core = (): JSX.Element => {
const dispatch = useDispatch<Dispatch>();

let [socket] = useState<typeof Socket | null>(null);
// let [socket] = useState<typeof Socket | null>(null);

useEffect(() => {
fetch();
sockets();
// sockets();

return () => {
if (socket) {
socket.close();
}
};
// return () => {
// if (socket) {
// socket.close();
// }
// };
}, []);

const fetch = () => {
Expand All @@ -33,41 +33,41 @@ const Core = (): JSX.Element => {
dispatch.core.getAssets().finally(() => null);
};

const sockets = () => {
socket = io(String(ApiConstants.BASE_URL));
socket.on('connect', () => {
if (!socket) {
console.warn('cannot listen channel, null socket pointer');
return;
}

socket.emit(
SocketConstants.LISTEN_CHANNEL,
JSON.stringify({
name: SocketConstants.BLOCKS,
}),
);

socket.io.emit(
SocketConstants.LISTEN_CHANNEL,
JSON.stringify({
name: SocketConstants.TRANSACTIONS,
}),
);

socket.on(SocketConstants.NEW_TRANSACTION_EVENT, (data: Record<string, unknown>) => {
const transaction = plainToClass(TransactionsModel, data);

dispatch.transactions.addTransaction(transaction);
});

socket.on(SocketConstants.NEW_BLOCK_EVENT, (data: Record<string, unknown>) => {
const block = plainToClass(BlocksModel, data);

dispatch.blocks.addBlock(block);
});
});
};
// const sockets = () => {
// socket = io(String(ApiConstants.BASE_URL));
// socket.on('connect', () => {
// if (!socket) {
// console.warn('cannot listen channel, null socket pointer');
// return;
// }
//
// socket.emit(
// SocketConstants.LISTEN_CHANNEL,
// JSON.stringify({
// name: SocketConstants.BLOCKS,
// }),
// );
//
// socket.io.emit(
// SocketConstants.LISTEN_CHANNEL,
// JSON.stringify({
// name: SocketConstants.TRANSACTIONS,
// }),
// );
//
// socket.on(SocketConstants.NEW_TRANSACTION_EVENT, (data: Record<string, unknown>) => {
// const transaction = plainToClass(TransactionsModel, data);
//
// dispatch.transactions.addTransaction(transaction);
// });
//
// socket.on(SocketConstants.NEW_BLOCK_EVENT, (data: Record<string, unknown>) => {
// const block = plainToClass(BlocksModel, data);
//
// dispatch.blocks.addBlock(block);
// });
// });
// };

return <RootNavigator />;
};
Expand Down
11 changes: 11 additions & 0 deletions src/locales/locales/en.ts
Original file line number Diff line number Diff line change
Expand Up @@ -85,6 +85,13 @@ export default {
seconds: 'seconds',
active: 'Active',
inactive: 'Inactive',
winnerAddress: 'Winner address',
isSponsor: 'Sponsor',
prizeId: 'Prize id',
drawId: 'Draw id',
poolId: 'Pool id',
depositId: 'Deposit id',

// Layout
dashboard: 'Board',
blocks: 'Blocks',
Expand Down Expand Up @@ -141,6 +148,10 @@ export default {
ibcRecvPacketMessage: 'IBC Receive packet',
execMessage: 'Exec',
grantMessage: 'Grant',
setWithdrawAddressMessage: 'Set withdraw address',
millionsDepositMessage: 'Millions deposit',
millionsClaimPrizeMessage: "Millions Claim Prize",
millionsWithdrawMessage: "Millions Leave Pool",

// Badge status
badgeJailed: 'Jailed',
Expand Down
98 changes: 97 additions & 1 deletion src/models/models/message.ts
Original file line number Diff line number Diff line change
Expand Up @@ -215,6 +215,11 @@ export class Vote extends MessageModel {
value: VoteValue = new VoteValue();
}

export class Vote2 extends MessageModel {
@Type(() => VoteValue)
value: VoteValue = new VoteValue();
}

class OpenBeamValue {
id?: string;

Expand Down Expand Up @@ -320,6 +325,92 @@ export class Grant extends MessageModel {
value: GrantValue = new GrantValue();
}

class MillionsDepositValue {
@Expose()
@Transform(({ value }) => {
return new Long(value.low, value.high, value.unsigned);
})
poolId: Long = new Long(0);

@Expose()
isSponsor?: boolean;

@Expose()
winnerAddress?: string;

@Expose()
depositorAddress?: string;

@Expose()
@Type(() => CoinModel)
amount: CoinModel = new CoinModel();
}

export class MillionsDeposit extends MessageModel {
@Type(() => MillionsDepositValue)
value: MillionsDepositValue = new MillionsDepositValue();
}

class MillionsWithdrawValue {
@Expose()
@Transform(({ value }) => {
return new Long(value.low, value.high, value.unsigned);
})
poolId: Long = new Long(0);

@Expose()
@Transform(({ value }) => {
return new Long(value.low, value.high, value.unsigned);
})
depositId: Long = new Long(0);

@Expose({ name: 'toAddress' })
winnerAddress?: string;

@Expose()
depositorAddress?: string;
}

export class MillionsWithdraw extends MessageModel {
@Type(() => MillionsWithdrawValue)
value: MillionsWithdrawValue = new MillionsWithdrawValue();
}

class MillionsClaimPrizeValue {
@Expose()
@Transform(({ value }) => {
return new Long(value.low, value.high, value.unsigned);
})
drawId: Long = new Long(0);

@Expose()
@Transform(({ value }) => {
return new Long(value.low, value.high, value.unsigned);
})
poolId: Long = new Long(0);

@Expose()
@Transform(({ value }) => {
return new Long(value.low, value.high, value.unsigned);
})
prizeId: Long = new Long(0);

@Expose()
winnerAddress?: string;
}

export class MillionsClaimPrize extends MessageModel {
@Type(() => MillionsClaimPrizeValue)
value: MillionsClaimPrizeValue = new MillionsClaimPrizeValue();
}

class SetWithdrawAddressValue {}

export class SetWithdrawAddress extends MessageModel {
@Type(() => SetWithdrawAddressValue)
value: SetWithdrawAddressValue = new SetWithdrawAddressValue();
}

export type Value =
| Send
| CreateValidator
Expand All @@ -334,9 +425,14 @@ export type Value =
| SubmitProposal
| Deposit
| Vote
| Vote2
| CreateVestingAccount
| BeginRedelegate
| WithdrawValidatorCommission
| Unjail
| Exec
| Grant;
| Grant
| MillionsDeposit
| MillionsWithdraw
| MillionsClaimPrize
| SetWithdrawAddress;
Loading

0 comments on commit 17a9649

Please sign in to comment.