4.10.23 • Published 12 months ago

@ixily/activ v4.10.23

Weekly downloads
-
License
ISC
Repository
-
Last release
12 months ago

Table of Contents

Installation

Installation:

IMPORTANT: Install node v18.x.x

npm i @ixily/activ

External packages to use activ correctly:

npm i @lit-protocol/lit-node-client-nodejs@2.1.123
npm i siwe@1.1.6
npm i jimp@0.16.1

Examples:

Go here to see and clone basic examples using activ: https://github.com/IXily

Basic initialization example:

You can install

  import {
      LitNodeProviderModule,
      CacheNodeStorageModule as CacheStorageModule,
      v4,
  } from '@ixily/activ'

  const {
      ActivV4Module,
  } = v4

  const activ = ActivV4Module;

  //@ts-ignore
  import * as LitJsSdk from '@lit-protocol/lit-node-client-nodejs'
  //@ts-ignore
  import * as Siwe from "siwe";
  //@ts-ignore
  import * as Jimp from 'jimp';

  const PRIVATE_KEY = 'your_private_wallet_key';

  // create the app here: https://nft.storage
  const nftStorageKey = 'your_nft_storage_key';

  const POLYGON_CONFIG: v4.IActivConfig = {
      defaultBlockchainNetwork: 'polygon',
      defaultContract: 'v4',
      defaultContractOptions: {
          userWalletPrivateKey: PRIVATE_KEY,
      },
      litConfig: {
          litProvider: LitNodeProviderModule,
          mock: false,
      },
      nftStorageKey,
      mockNftStorage: false,
      skipPricingSignature: false,
      ipfsProxyEnabled: true,
      showLogsToDebug: true,
      cacheStorageConfig: {
          isBrowser: false,
          module: CacheStorageModule,
          dbParams: {
              provider: 'none',
          }
      }
  };

  const state = {
      configured: {
          amoy: false as boolean,
      },
      instance: {
          amoy: null as any,
      },
      privateKey: {
          amoy: null as string,
      }
  };

  const getApi = async (
      network: NetworkType = 'amoy'
  ): Promise<typeof activ> => {
      if (!state.configured[network]) {

          const initObj = {
              LitJsSdkInstance: LitJsSdk,
              SiweInstance: Siwe,
              backendWalletPrivateKey: null,
          }

          // NOTE: maybe each account have a differents private keys, for this reason we are adding the set (PRIVATE_KEY) multiples time

          switch (network) {
              case 'amoy':
                  initObj.backendWalletPrivateKey = PRIVATE_KEY;
                  await (LitNodeProviderModule as any).init(initObj);
                  await v4.ImagesModule.init({ JimpInstance: Jimp });
                  await EnvModule.set('isProd', false);
                  await activ.config(AMOY_CONFIG);
                  break;
              case 'polygon':
                  initObj.backendWalletPrivateKey = PRIVATE_KEY;
                  await (LitNodeProviderModule as any).init(initObj);
                  await v4.ImagesModule.init({ JimpInstance: Jimp });
                  await EnvModule.set('isProd', true);
                  await activ.config(POLYGON_CONFIG);
                  break;
          }

          state.configured[network] = true;
          state.instance[network] = activ;
          state.privateKey[network] = initObj.backendWalletPrivateKey;
      };

      const networkChainObj = {
          amoy: 'amoy',
          polygon: 'polygon',
      };

      await activ.selectChainContract(networkChainObj[network], 'v4', {
          userWalletPrivateKey: state.privateKey[network],
      })

      return activ
  }

   

Creating Investment Ideas

  • Create A New Investment Idea

    import { v4 } from '@ixily/activ'
    
    const newIdea = {
    	public: {
    		title: 'My new idea/nft',
    		description:
    			'Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been',
    		image: 'data:image/svg+xml;base64,PCEtLSBieSBUcmFkaW5nVmlldyAtLT48c3ZnIHdpZHRoPSI1NiIgaGVpZ2h0PSI1NiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBmaWxsPSIjRjc5MzFBIiBkPSJNMCAwaDU2djU2SDB6Ii8+PHBhdGggZD0iTTM5LjkzNiAyNC43MDRjLjUxNS0zLjQ5NC0yLjEzLTUuMzU3LTUuNzczLTYuNjIybDEuMTgtNC43MDgtMi44NzctLjcxNi0xLjE0OCA0LjU5Mi0yLjI5Ni0uNTQ5IDEuMTY0LTQuNjI1LTIuODc4LS43MTUtMS4xODEgNC43MjUtMS44My0uNDMzdi0uMDE2bC0zLjk3Ni0uOTk5LS43NjYgMy4wNzhzMi4xMy41IDIuMDk2LjUxNmMxLjE2NS4zIDEuMzY1IDEuMDY1IDEuMzMyIDEuNjY0bC0xLjMzMiA1LjM5LjMuMS0uMzE2LS4wNjctMS44OCA3LjUzN2MtLjEzMy4zNS0uNS44ODItMS4zMTQuNjY1LjAzMy4wNS0yLjA4LS40OTktMi4wOC0uNDk5bC0xLjQzIDMuMjc4IDMuNzQzLjkzMSAyLjA0Ni41MzMtMS4xOTggNC43NzUgMi44NzguNzE1IDEuMTY1LTQuNzI1IDIuMzEyLjU5OS0xLjE4IDQuNzA4IDIuODc3LjcxNiAxLjE4MS00Ljc3NWM0LjkwOC45MzEgOC42MDIuNTY2IDEwLjE1LTMuODc3IDEuMjQ3LTMuNTc2LS4wNjctNS42MjMtMi42NDYtNi45ODcgMS44OC0uNDE2IDMuMjk0LTEuNjY0IDMuNjYtNC4yMWguMDE3em0tNi41NzIgOS4yMTdjLS44ODIgMy41NzctNi45MDQgMS42My04Ljg1IDEuMTY0bDEuNTgtNi4zMzhjMS45NDYuNDk5IDguMjAyIDEuNDQ3IDcuMjcgNS4xNTd2LjAxN3ptLjg4Mi05LjI2N2MtLjc5OSAzLjI0NC01LjgyMyAxLjU5Ny03LjQzNyAxLjE5OGwxLjQzLTUuNzRjMS42MzEuNCA2Ljg1NSAxLjE2NSA2LjAwNyA0LjU0MnoiIGZpbGw9IiNmZmYiLz48L3N2Zz4=',
    	},
    	content: {
    		reference: v4.generateUUID(),
    	},
    	strategy: {
    		reference: v4.generateUUID(),
    		name: 'Fake strategy',
    		description: 'Fake strategy just to test',
    		creatorName: 'Fake',
    		image: 'https://previews.123rf.com/images/varijanta/varijanta1601/varijanta160100039/51306453-thin-line-flat-design-banner-of-business-and-marketing-strategy-modern-vector-illustration-concept.jpg',
    	},
    	creator: {
    		name: 'William Wallace',
    		company: 'WW Company',
    		url: 'https://en.wikipedia.org/wiki/William_Wallace',
    		walletAddress: '0xaB31A127b112CcF2e97fC54A842A6a3b7070BEa9',
    	},
    	access: {
    		wallets: ['0x2767441E044aCd9bbC21a759fB0517494875092d'],
    	},
    	idea: {
    		kind: 'open',
    		asset: {
    			ticker: 'BTCUSDT',
    			description: 'BTC/USDT',
    		},
    		trade: {
    			conviction: 100,
    			direction: 'long',
    		},
    		notes: {
    			commentary: 'This trade idea was opened just to test',
    		},
    	},
    	pricing: {
    		provider: 'Binance',
    	},
    }
    
    const activ = await ActivModule.getApi()
    
    const data = await activ.createIdea(payload)

   

Adjusting Investment Ideas

  • Adjusting Inverstment Ideas

    const activ = await ActivModule.getApi()
    
    const adjustIdea = await activ.adjustIdea({
    	ticker: 'BTCUSDT',
    	strategyReference: 'c407705a-6248-451d-bc12-fb7ebb43d05b',
    	creatorWallet: '0xaB31A127b112CcF2e97fC54A842A6a3b7070BEa9',
    	adjustment: {
    		kind: 'increase',
    		percentage: 20,
    	},
    	pricingCredentials: {
    		provider: 'Binance',
    		auth: {
    			key: 'your_binance_key',
    		},
    	},
    	notes: 'Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been...',
    })

   

Closing Investment Ideas

  • Closing Investment Ideas

    const activ = await ActivModule.getApi()
    
    const closeIdea = await activ.closeIdea({
    	ticker: 'BTCUSDT',
    	strategyReference: 'c407705a-6248-451d-bc12-fb7ebb43d05b',
    	creatorWallet: '0xaB31A127b112CcF2e97fC54A842A6a3b7070BEa9',
    	pricingCredentials: {
    		provider: 'Binance',
    		auth: {
    			key: 'your_binance_key',
    		},
    	},
    	notes: 'Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been...',
    })

   

Retrieving Investment Ideas

  • Retrieve all public ideas

    const page = 1
    const limit = 10
    
    const activ = await ActivModule.getApi()
    const data = await activ.getAllPublicIdeas(page, limit)
  • Retrieve the ideas created by the user wallet in session (used in your browser)

    const page = 1
    const limit = 10
    const filter = ['open'] // 'open', 'adjust', 'close'
    
    const activ = await ActivModule.getApi()
    const data = await activ.getIdeasOwnedBy(page, limit, filter)
  • Retrieve the ideas with access by the user wallet in session (used in your browser)

    const page = 1
    const limit = 10
    const filter = ['open'] // 'open', 'adjust', 'close'
    
    const activ = await ActivModule.getApi()
    const data = await activ.getIdeasClientBy(page, limit, filter)
  • Retrieve ideas by strategy

    const strategyReference = 'c407705a-6248-451d-bc12-fb7ebb43d05b'
    const page = 1
    const limit = 10
    const filter = ['open'] // 'open', 'adjust', 'close'
    
    const activ = await ActivModule.getApi()
    const data = await activ.getIdeasByStrategy(
    	strategyReference,
    	page,
    	limit,
    	filter,
    )
  • Retrieve closed ideas history by strategy

    const activ = await ActivModule.getApi()
    
    const data = await activ.getClosedIdeasHistoryByStrategy({
    	strategyReference: 'c407705a-6248-451d-bc12-fb7ebb43d05b',
    	stages: true,
    })
  • Retrieve NFT content/info by ID

    const nftId = 10
    
    const activ = await ActivModule.getApi()
    const data = await activ.getIdeaByNftId(nftId)

   

Retrieving Investment Strategies

  • Retrieve all public strategies

    const page = 1
    const limit = 10
    
    const activ = await ActivModule.getApi()
    const data = await activ.getAllPublicStrategies(page, limit)
  • Retrieve the list of strategies created by the user wallet in session (used in your browser)

    const page = 1
    const limit = 10
    
    const activ = await ActivModule.getApi()
    const data = await activ.listMyStrategies(page, limit)
  • Retrieve the list of accesible strategies (strategies with permission/access)

    const page = 1
    const limit = 10
    
    const activ = await ActivModule.getApi()
    const data = await activ.listAccesibleStrategies(page, limit)
  • Retrieve the list of all strategies

    const page = 1
    const limit = 10
    
    const activ = await ActivModule.getApi()
    const data = await activ.listAllStrategies(page, limit)
  • Retrieve the list of all strategies by specific creator (wallet)

    const creatorWallet = '0xaB31A127b112CcF2e97fC54A842A6a3b7070BEa9'
    const type = 'all' // 'all' | 'my' | 'accesible' | 'public',
    const page = 1
    const limit = 10
    
    const activ = await ActivModule.getApi()
    const data = await activ.listAllStrategiesByCreator(
    	creatorWallet,
    	type,
    	page,
    	limit,
    )
  • Retrieve strategy info

    const strategyReference = 'c407705a-6248-451d-bc12-fb7ebb43d05b'
    
    const activ = await ActivModule.getApi()
    const data = await activ.getStrategyInfoDetails(strategyReference)

   

Provider Authorization (for enabling Copy Trade)

  • Authorize Provider

    const providerAddress = '0xaB31A127b112CcF2e97fC54A842A6a3b7070BEa9'
    
    const activ = await ActivModule.getApi()
    await activ.authorizeProvider(providerAddress)
  • Revoke Provider

    const providerAddress = '0xaB31A127b112CcF2e97fC54A842A6a3b7070BEa9'
    
    const activ = await ActivModule.getApi()
    await activ.revokeProvider(providerAddress)
  • Check Provider Authorization

    const providerAddress = '0xaB31A127b112CcF2e97fC54A842A6a3b7070BEa9'
    
    const activ = await ActivModule.getApi()
    const data = await activ.authorizeCheck(providerAddress)
  • Create an Idea/NFT in the name of another user (i.e. the provider can create the nft if the client used the method on: - Authorize Provider)

    const client = '0x3C44CdDdB6a900fa2b585dd299e03d12FA4293BC';
    const newIdea = {...} // content used like: - Create a new Idea/NFT
    
    const activ = await ActivModule.getApi();
    const data = await activ.providerCreateIdea(client, newIdea);

   

Additional Methods

  • Retrieve wallet info details

    const userWallet = '0xaB31A127b112CcF2e97fC54A842A6a3b7070BEa9'
    
    const activ = await ActivModule.getApi()
    const data = await activ.getWalletInfoDetails(userWallet)
  • Post mint granting of access/permission to an idea

    const nftId = 10
    const walletAddresses = ['0x023C04DB0Deb586F32444A4e154596094c52E7Da']
    
    const activ = await ActivModule.getApi()
    await activ.giveIdeaAccessTo(nftId, walletAddresses)
  • Retrieve wallet with access/permission to an idea

    const nftId = 10
    
    const activ = await ActivModule.getApi()
    const data = await activ.getIdeaViewers(nftId)
  • Search asset

    const payload = {
    	provider: 'Binance',
    	auth: {
    		key: '123',
    		secret: '456', // optional
    	},
    	params: {
    		symbol: 'BTCUSDT',
    	},
    }
    const data = await activ.getPricingAsset(payload)
  • Reset Cache

    // content: strategy and idea
    await activ.resetCache('idea')
    await activ.resetCache('strategy')
  • Retrieve estimated costs to create an NFT

    const newIdea = true
    
    const activ = await ActivModule.getApi()
    const data = await activ.getEstimatedCosts(newIdea)
  • Check if a wallet address is valid

    const walletAddressList = ['0xaB31A127b112CcF2e97fC54A842A6a3b7070BEa9']
    
    const activ = await ActivModule.getApi()
    const data = await activ.isValidWalletAddress(walletAddressList)

   

BRA Methods

What do I need to use the BRA methods?

To use the BRA methods you need be authorized for this reason you need generate your own apiKey, steps to get:

  1. Go here: https://ixily.io/activ/account/profile
  2. Click to the "API KEYS" section (left menu)
  3. Copy and pass in the method to call
  4. Done!

 

  • Create A New Investment Idea

    import { v4 } from '@ixily/activ'
    
    const network = 'amoy' // change as necessary
    
    const apiKey = 'your_api_key'
    
    const newIdea = {
    	public: {
    		title: 'My new idea/nft',
    		description:
    			'Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been',
    		image: 'data:image/svg+xml;base64,PCEtLSBieSBUcmFkaW5nVmlldyAtLT48c3ZnIHdpZHRoPSI1NiIgaGVpZ2h0PSI1NiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBmaWxsPSIjRjc5MzFBIiBkPSJNMCAwaDU2djU2SDB6Ii8+PHBhdGggZD0iTTM5LjkzNiAyNC43MDRjLjUxNS0zLjQ5NC0yLjEzLTUuMzU3LTUuNzczLTYuNjIybDEuMTgtNC43MDgtMi44NzctLjcxNi0xLjE0OCA0LjU5Mi0yLjI5Ni0uNTQ5IDEuMTY0LTQuNjI1LTIuODc4LS43MTUtMS4xODEgNC43MjUtMS44My0uNDMzdi0uMDE2bC0zLjk3Ni0uOTk5LS43NjYgMy4wNzhzMi4xMy41IDIuMDk2LjUxNmMxLjE2NS4zIDEuMzY1IDEuMDY1IDEuMzMyIDEuNjY0bC0xLjMzMiA1LjM5LjMuMS0uMzE2LS4wNjctMS44OCA3LjUzN2MtLjEzMy4zNS0uNS44ODItMS4zMTQuNjY1LjAzMy4wNS0yLjA4LS40OTktMi4wOC0uNDk5bC0xLjQzIDMuMjc4IDMuNzQzLjkzMSAyLjA0Ni41MzMtMS4xOTggNC43NzUgMi44NzguNzE1IDEuMTY1LTQuNzI1IDIuMzEyLjU5OS0xLjE4IDQuNzA4IDIuODc3LjcxNiAxLjE4MS00Ljc3NWM0LjkwOC45MzEgOC42MDIuNTY2IDEwLjE1LTMuODc3IDEuMjQ3LTMuNTc2LS4wNjctNS42MjMtMi42NDYtNi45ODcgMS44OC0uNDE2IDMuMjk0LTEuNjY0IDMuNjYtNC4yMWguMDE3em0tNi41NzIgOS4yMTdjLS44ODIgMy41NzctNi45MDQgMS42My04Ljg1IDEuMTY0bDEuNTgtNi4zMzhjMS45NDYuNDk5IDguMjAyIDEuNDQ3IDcuMjcgNS4xNTd2LjAxN3ptLjg4Mi05LjI2N2MtLjc5OSAzLjI0NC01LjgyMyAxLjU5Ny03LjQzNyAxLjE5OGwxLjQzLTUuNzRjMS42MzEuNCA2Ljg1NSAxLjE2NSA2LjAwNyA0LjU0MnoiIGZpbGw9IiNmZmYiLz48L3N2Zz4=',
    	},
    	content: {
    		reference: v4.generateUUID(),
    	},
    	strategy: {
    		reference: v4.generateUUID(),
    		name: 'Fake strategy',
    		description: 'Fake strategy just to test',
    		creatorName: 'Fake',
    		image: 'https://previews.123rf.com/images/varijanta/varijanta1601/varijanta160100039/51306453-thin-line-flat-design-banner-of-business-and-marketing-strategy-modern-vector-illustration-concept.jpg',
    	},
    	creator: {
    		name: 'William Wallace',
    		company: 'WW Company',
    		url: 'https://en.wikipedia.org/wiki/William_Wallace',
    		walletAddress: '0xaB31A127b112CcF2e97fC54A842A6a3b7070BEa9',
    	},
    	access: {
    		wallets: ['0x2767441E044aCd9bbC21a759fB0517494875092d'],
    	},
    	idea: {
    		kind: 'open',
    		asset: {
    			ticker: 'BTCUSDT',
    			description: 'BTC/USDT',
    		},
    		trade: {
    			conviction: 100,
    			direction: 'long',
    		},
    		notes: {
    			commentary: 'This trade idea was opened just to test',
    		},
    	},
    	pricing: {
    		provider: 'Binance',
    	},
    }
    
    const activ = await ActivModule.getApi()
    
    const data = await activ.createIdeaFromFiatMint(payload, apiKey)
  • Adjusting Inverstment Ideas

    const activ = await ActivModule.getApi();
    
    const apiKey = 'your_api_key';
    
    const adjustIdea = await activ.adjustIdeaFromFiatMint(
      {
        ticker: 'BTCUSDT',
        strategyReference: 'c407705a-6248-451d-bc12-fb7ebb43d05b',
        creatorWallet: '0xaB31A127b112CcF2e97fC54A842A6a3b7070BEa9',
        adjustment: {
          kind: 'increase',
          percentage: 20
        },
        pricingCredentials: {
          provider: 'Binance',
          auth: {
            key: 'your_binance_key',
          }
        },
        notes: 'Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been...',
      },
      apiKey
    });
  • Closing Investment Ideas

    const activ = await ActivModule.getApi();
    
    const apiKey = 'your_api_key';
    
    const closeIdea = await activ.closeIdeaFromFiatMint(
      {
        ticker: 'BTCUSDT',
        strategyReference: 'c407705a-6248-451d-bc12-fb7ebb43d05b',
        creatorWallet: '0xaB31A127b112CcF2e97fC54A842A6a3b7070BEa9',
        pricingCredentials: {
          provider: 'Binance',
          auth: {
            key: 'your_binance_key',
          }
        },
        notes: 'Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been...',
      },
      apiKey
    });

   

License

ACTIV is licensed under the MIT license. Open Sans is licensed under the Apache license

4.10.23

12 months ago

4.10.22

1 year ago

4.10.21

1 year ago

4.10.20

1 year ago

4.10.19

1 year ago

4.10.18

1 year ago

4.10.17

1 year ago

4.10.13

1 year ago

4.10.14

1 year ago

4.10.15

1 year ago

4.10.16

1 year ago

4.10.11

1 year ago

4.10.12

1 year ago

4.10.10

1 year ago

4.10.9

1 year ago

4.10.6

1 year ago

4.10.7

1 year ago

4.10.8

1 year ago

4.10.5

1 year ago

4.10.3

1 year ago

4.10.4

1 year ago

4.10.1

1 year ago

4.10.2

1 year ago

4.10.0

1 year ago

4.9.43

1 year ago

4.9.42

1 year ago

4.9.41

1 year ago

4.9.8

2 years ago

4.9.7

2 years ago

4.9.9

2 years ago

4.9.4

2 years ago

4.9.3

2 years ago

4.9.6

2 years ago

4.9.5

2 years ago

4.9.0

2 years ago

4.9.2

2 years ago

4.9.1

2 years ago

3.3.6

2 years ago

3.2.2

2 years ago

3.2.1

2 years ago

3.2.0

2 years ago

3.2.6

2 years ago

3.2.5

2 years ago

3.2.4

2 years ago

3.2.3

2 years ago

4.0.4

2 years ago

4.0.1

2 years ago

4.0.0

2 years ago

4.0.3

2 years ago

4.0.2

2 years ago

2.0.199

2 years ago

3.2.9

2 years ago

2.0.198

2 years ago

3.2.8

2 years ago

2.0.197

2 years ago

3.2.7

2 years ago

2.0.196

2 years ago

2.0.195

2 years ago

3.2.13

2 years ago

3.1.3

2 years ago

3.2.12

2 years ago

3.1.2

2 years ago

3.2.15

2 years ago

3.1.1

2 years ago

3.2.14

2 years ago

3.1.0

2 years ago

3.1.7

2 years ago

3.2.16

2 years ago

3.1.6

2 years ago

3.1.5

2 years ago

3.1.4

2 years ago

3.2.11

2 years ago

3.2.10

2 years ago

3.1.9

2 years ago

3.1.8

2 years ago

3.0.1

2 years ago

3.0.0

2 years ago

4.9.31

2 years ago

4.9.30

2 years ago

4.9.33

2 years ago

4.9.32

2 years ago

4.9.35

2 years ago

4.9.34

2 years ago

4.9.37

2 years ago

4.9.36

2 years ago

4.9.39

2 years ago

4.9.38

2 years ago

4.9.20

2 years ago

4.9.22

2 years ago

4.9.21

2 years ago

4.9.24

2 years ago

4.9.23

2 years ago

4.9.26

2 years ago

4.9.25

2 years ago

4.9.28

2 years ago

4.9.27

2 years ago

4.9.29

2 years ago

2.0.239

2 years ago

2.0.238

2 years ago

2.0.237

2 years ago

2.0.236

2 years ago

2.0.235

2 years ago

2.0.234

2 years ago

2.0.233

2 years ago

2.0.232

2 years ago

2.0.231

2 years ago

2.0.230

2 years ago

4.9.40

2 years ago

4.3.1

2 years ago

4.3.4

2 years ago

4.3.3

2 years ago

2.0.247

2 years ago

2.0.246

2 years ago

4.3.0

2 years ago

2.0.245

2 years ago

2.0.244

2 years ago

2.0.243

2 years ago

2.0.242

2 years ago

2.0.241

2 years ago

2.0.240

2 years ago

4.3.6

2 years ago

4.3.5

2 years ago

4.3.8

2 years ago

2.0.209

2 years ago

4.3.7

2 years ago

2.0.208

2 years ago

2.0.218

2 years ago

2.0.217

2 years ago

2.0.216

2 years ago

2.0.215

2 years ago

2.0.214

2 years ago

2.0.213

2 years ago

2.0.212

2 years ago

2.0.211

2 years ago

2.0.210

2 years ago

2.0.219

2 years ago

4.2.3

2 years ago

2.0.229

2 years ago

4.2.2

2 years ago

2.0.228

2 years ago

4.2.5

2 years ago

2.0.227

2 years ago

4.2.4

2 years ago

2.0.226

2 years ago

2.0.225

2 years ago

2.0.224

2 years ago

4.2.1

2 years ago

2.0.223

2 years ago

4.2.0

2 years ago

2.0.222

2 years ago

2.0.221

2 years ago

2.0.220

2 years ago

4.2.6

2 years ago

4.9.11

2 years ago

4.9.10

2 years ago

4.9.13

2 years ago

4.9.12

2 years ago

4.9.15

2 years ago

4.9.14

2 years ago

4.9.17

2 years ago

4.9.16

2 years ago

4.9.19

2 years ago

4.9.18

2 years ago

3.3.1

2 years ago

3.3.0

2 years ago

3.3.5

2 years ago

3.3.4

2 years ago

3.3.3

2 years ago

3.3.2

2 years ago

2.0.207

2 years ago

2.0.206

2 years ago

2.0.205

2 years ago

2.0.204

2 years ago

4.1.0

2 years ago

2.0.203

2 years ago

2.0.202

2 years ago

2.0.201

2 years ago

4.1.1

2 years ago

2.0.200

2 years ago

2.0.191

2 years ago

2.0.190

2 years ago

2.0.194

2 years ago

2.0.193

2 years ago

2.0.192

2 years ago

2.0.189

2 years ago

2.0.188

2 years ago

2.0.187

2 years ago

2.0.186

2 years ago

2.0.185

2 years ago

2.0.184

2 years ago

2.0.183

2 years ago

2.0.182

2 years ago

2.0.181

2 years ago

2.0.180

2 years ago

2.0.179

2 years ago

2.0.178

2 years ago

2.0.177

2 years ago

2.0.176

2 years ago

2.0.175

2 years ago

2.0.174

2 years ago

2.0.173

2 years ago

2.0.172

2 years ago

2.0.171

2 years ago

2.0.170

2 years ago

2.0.169

2 years ago

2.0.168

2 years ago

2.0.166

2 years ago

2.0.165

2 years ago

2.0.164

2 years ago

2.0.163

2 years ago

2.0.162

2 years ago

2.0.161

2 years ago

2.0.160

2 years ago

2.0.159

2 years ago

2.0.158

2 years ago

2.0.157

2 years ago

2.0.156

2 years ago

2.0.155

2 years ago

2.0.154

2 years ago

2.0.153

2 years ago

2.0.152

2 years ago

2.0.151

2 years ago

2.0.150

2 years ago

2.0.149

2 years ago

2.0.148

2 years ago

2.0.147

2 years ago

2.0.146

2 years ago

2.0.145

2 years ago

2.0.144

2 years ago

2.0.143

2 years ago

2.0.142

2 years ago

2.0.141

2 years ago

2.0.140

2 years ago

2.0.139

2 years ago

2.0.138

2 years ago

2.0.137

2 years ago

2.0.136

2 years ago

2.0.135

2 years ago

2.0.134

2 years ago

2.0.133

2 years ago

2.0.132

2 years ago

2.0.131

2 years ago

2.0.130

2 years ago

2.0.129

2 years ago

2.0.128

2 years ago

2.0.127

2 years ago

2.0.126

2 years ago

2.0.125

2 years ago

2.0.124

2 years ago

2.0.123

2 years ago

2.0.122

2 years ago

2.0.119

2 years ago

2.0.118

2 years ago

2.0.117

2 years ago

2.0.116

2 years ago

2.0.115

2 years ago

2.0.114

2 years ago

2.0.113

2 years ago

2.0.112

2 years ago

2.0.111

2 years ago

2.0.110

2 years ago

2.0.109

2 years ago

2.0.108

2 years ago

2.0.107

2 years ago

2.0.105

2 years ago

2.0.104

2 years ago

2.0.101

2 years ago

2.0.100

2 years ago

2.0.99

2 years ago

2.0.98

2 years ago

2.0.97

2 years ago

2.0.96

2 years ago

2.0.95

2 years ago

2.0.94

2 years ago

2.0.93

2 years ago

2.0.92

2 years ago

2.0.91

2 years ago

2.0.90

2 years ago

2.0.89

2 years ago

2.0.88

2 years ago

2.0.87

2 years ago

2.0.86

2 years ago

2.0.85

2 years ago

2.0.84

2 years ago

2.0.83

2 years ago

2.0.82

2 years ago

2.0.81

2 years ago

2.0.80

2 years ago

2.0.79

2 years ago

2.0.78

2 years ago

2.0.77

2 years ago

2.0.76

2 years ago

2.0.75

2 years ago

2.0.74

2 years ago

2.0.73

2 years ago

2.0.72

2 years ago

2.0.71

2 years ago

2.0.70

2 years ago

2.0.69

2 years ago

2.0.68

2 years ago

2.0.67

2 years ago

2.0.66

2 years ago

2.0.65

2 years ago

2.0.64

2 years ago

2.0.63

2 years ago

2.0.62

2 years ago

2.0.61

2 years ago

2.0.60

2 years ago

2.0.59

2 years ago

2.0.58

2 years ago

2.0.57

2 years ago

2.0.56

2 years ago

2.0.55

2 years ago

2.0.54

2 years ago

2.0.53

2 years ago

2.0.52

2 years ago

2.0.51

2 years ago

2.0.50

2 years ago

2.0.49

2 years ago

2.0.48

2 years ago

2.0.47

2 years ago

2.0.46

2 years ago

2.0.44

2 years ago

2.0.43

2 years ago

2.0.42

2 years ago

2.0.41

2 years ago

2.0.40

2 years ago

2.0.39

2 years ago

2.0.37

2 years ago

2.0.36

2 years ago

2.0.35

2 years ago

2.0.34

2 years ago

2.0.33

2 years ago

2.0.32

2 years ago

2.0.31

2 years ago

2.0.30

2 years ago

2.0.29

2 years ago

2.0.28

2 years ago

2.0.27

2 years ago

2.0.26

2 years ago

2.0.25

2 years ago

2.0.24

2 years ago

2.0.23

2 years ago

2.0.22

2 years ago

2.0.21

2 years ago

2.0.20

2 years ago

2.0.19

2 years ago

2.0.17

2 years ago

2.0.16

2 years ago

2.0.15

2 years ago

2.0.14

2 years ago

2.0.13

2 years ago

2.0.12

2 years ago

2.0.11

2 years ago

2.0.10

2 years ago

2.0.9

2 years ago

2.0.8

2 years ago

2.0.7

2 years ago

2.0.6

2 years ago

2.0.5

2 years ago

2.0.4

2 years ago

2.0.3

2 years ago

2.0.2

2 years ago

1.0.9

3 years ago

1.0.8

3 years ago

1.0.7

3 years ago

1.0.6

3 years ago

1.0.5

3 years ago

1.0.4

3 years ago

1.0.3

3 years ago

1.0.2

3 years ago

1.0.1

3 years ago

1.0.0

3 years ago