New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More

@broxus/airdrop-ui

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@broxus/airdrop-ui - npm Package Compare versions

Comparing version

to
1.0.1

import { TonConnectUI } from '@tonconnect/ui';
import { ProviderRpcClient, Subscriber as RpcSubscriber } from 'everscale-inpage-provider';
import { Clock } from 'everscale-standalone-client';
import { ClaimData, StorageData } from './types';
import { AirdropStatus, ClaimData, StorageData } from './types';
declare class State<T extends object> {

@@ -28,2 +28,3 @@ value: T;

claimLoading: boolean;
status: AirdropStatus;
};

@@ -54,2 +55,3 @@ export declare class AirdropUI {

protected syncClaimLoading(): void;
protected syncStatus(): void;
protected initSyncClaimData(): void;

@@ -56,0 +58,0 @@ protected initClaimListener(): Promise<void>;

@@ -54,2 +54,3 @@ "use strict";

var abi_1 = require("./abi");
var types_1 = require("./types");
var State = /** @class */ (function () {

@@ -128,2 +129,3 @@ function State(initialValue) {

claimLoading: false,
status: types_1.AirdropStatus.Loading
});

@@ -143,2 +145,3 @@ this.getState = this.state.getState.bind(this.state);

this.state.subscribe(this.syncClaimLoading.bind(this), 'storageData');
this.state.subscribe(this.syncStatus.bind(this));
this.state.set('userAddress', (_a = this.tonConnectUI.account) === null || _a === void 0 ? void 0 : _a.address);

@@ -322,2 +325,26 @@ this.tonConnectUnsubscribe = this.tonConnectUI.onStatusChange(function (e) {

};
AirdropUI.prototype.syncStatus = function () {
var _a, _b, _c;
var status = types_1.AirdropStatus.Loading;
var state = this.getState();
if (!state.userAddress) {
status = types_1.AirdropStatus.NoUser;
}
else if (state.claimed === true) {
status = types_1.AirdropStatus.HasClaimed;
}
else if (state.claimed === false && ((_a = state.claimData) === null || _a === void 0 ? void 0 : _a.status) === 'signed' && state.storageKey) {
status = types_1.AirdropStatus.CanClaim;
}
else if (((_b = state.claimData) === null || _b === void 0 ? void 0 : _b.status) === 'inQueue') {
status = types_1.AirdropStatus.InQueue;
}
else if (((_c = state.claimData) === null || _c === void 0 ? void 0 : _c.status) === 'noReward') {
status = types_1.AirdropStatus.NoReward;
}
else if (!state.airdropName) {
status = types_1.AirdropStatus.NoAirdrop;
}
this.state.set('status', status);
};
AirdropUI.prototype.initSyncClaimData = function () {

@@ -324,0 +351,0 @@ var _this = this;

@@ -20,1 +20,10 @@ export type ClaimData = {

};
export declare enum AirdropStatus {
NoUser = "NoUser",
HasClaimed = "HasClaimed",
CanClaim = "CanClaim",
InQueue = "InQueue",
NoReward = "NoReward",
NoAirdrop = "NoAirdrop",
Loading = "Loading"
}
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.AirdropStatus = void 0;
var AirdropStatus;
(function (AirdropStatus) {
AirdropStatus["NoUser"] = "NoUser";
AirdropStatus["HasClaimed"] = "HasClaimed";
AirdropStatus["CanClaim"] = "CanClaim";
AirdropStatus["InQueue"] = "InQueue";
AirdropStatus["NoReward"] = "NoReward";
AirdropStatus["NoAirdrop"] = "NoAirdrop";
AirdropStatus["Loading"] = "Loading";
})(AirdropStatus || (exports.AirdropStatus = AirdropStatus = {}));
{
"name": "@broxus/airdrop-ui",
"version": "1.0.0",
"version": "1.0.1",
"description": "Ton aidrop ui utils",

@@ -5,0 +5,0 @@ "main": "dist/index.js",

@@ -6,3 +6,3 @@ import { Address as TonAddress } from '@ton/core'

import { AirdropAbi, AirdropFactoryAbi } from './abi'
import { ClaimData, StorageData } from './types'
import { AirdropStatus, ClaimData, StorageData } from './types'

@@ -74,2 +74,3 @@ class State<T extends object> {

claimLoading: boolean
status: AirdropStatus
}

@@ -99,2 +100,3 @@

claimLoading: false,
status: AirdropStatus.Loading
})

@@ -122,2 +124,3 @@

this.state.subscribe(this.syncClaimLoading.bind(this), 'storageData')
this.state.subscribe(this.syncStatus.bind(this))

@@ -275,2 +278,21 @@ this.state.set('userAddress', this.tonConnectUI.account?.address)

protected syncStatus() {
let status = AirdropStatus.Loading
const state = this.getState()
if (!state.userAddress) {
status = AirdropStatus.NoUser
} else if (state.claimed === true) {
status = AirdropStatus.HasClaimed
} else if (state.claimed === false && state.claimData?.status === 'signed' && state.storageKey) {
status = AirdropStatus.CanClaim
} else if (state.claimData?.status === 'inQueue') {
status = AirdropStatus.InQueue
} else if (state.claimData?.status === 'noReward') {
status = AirdropStatus.NoReward
} else if (!state.airdropName) {
status = AirdropStatus.NoAirdrop
}
this.state.set('status', status)
}
protected initSyncClaimData() {

@@ -277,0 +299,0 @@ clearInterval(this.claimDataTimeout)

@@ -21,1 +21,11 @@ export type ClaimData = {

}
export enum AirdropStatus {
NoUser = 'NoUser',
HasClaimed = 'HasClaimed',
CanClaim = 'CanClaim',
InQueue = 'InQueue',
NoReward = 'NoReward',
NoAirdrop = 'NoAirdrop',
Loading = 'Loading'
}